close

Вход

Забыли?

вход по аккаунту

?

SQL Server 2005 для администраторов

код для вставкиСкачать
 ќглавление ???????????...........................................................................................................1
????? 1. ????? ????? ???????????? SQL Server 2005..................................3
1.1. ????? ??????????? SQL Server 2005 ??? ???????????????....................................3
1.1.1. ????????? ? ?????? ???????????????? ???????.................................................3
1.1.2. ????? ??????????? ??? ??????????? ??????????????????..............................4
1.1.3. ????? ??????????? ??????? ????????????.........................................................7
1.1.4. ????? ??????????? ??? ??????????? ??????????????????...............................8
1.1.5. ????? ??????????? ??????? ??????????..........................................................10
1.1.6. ????? ????????? ?????? ??? ????????????? ?????????????????................12
1.2. ????? ??????????? SQL Server 2005 ??? ?????????????.....................................12
1.3. ????? ??????????? SQL Server Integration Services (DTSX).................................20
????? 2. ???????????? ? ????????? SQL Server 2005.................................23
2.1. ???????????? ????????? SQL Server 2005...............................................................23
2.1.1. ?????? ??????????? ?????????? ?? ?????? SQL Server 2005.........................23
2.1.2. ????? ????????????..............................................................................................26
2.1.3. ????? ???????????? ??????? ? ?? ???????????..............................................31
2.1.4. ????? ???????? SQL Server 2005........................................................................32
2.2. ????????? SQL Server 2005........................................................................................34
2.2.1. ????????? ???? ?? ?????????................................................................................34
2.2.2. ?????? ?????????. ????? ?????? ???????????.................................................35
2.2.3. ?????? ? ???????????? ????????????...............................................................38
2.2.4. ????? ??????? ?????? ??? ????? SQL Server....................................................40
2.2.5. ????? ?????? ?????????????? SQL Server 2005..............................................43
2.2.6. ????? ????????? ? ??????? ??????????............................................................46
2.2.7. ????????? ????????? ?????????.........................................................................48
2.3. ?????????????????? ? ????????? ?????????...........................................................49
2.4. ?????????? ?????????? ?????? SQL Server ? ???????? ? Microsoft Access.......50
2.5. ???????? ????????? ? ?????????? ????????????????? ?????...............................53
2.5.1. ???????? ??????????? ?????????..........................................................................53
2.5.2. ????????? ??????? ????????? ??? ??????? ????????........................................54
2.5.3. ?????? ????????????????? ??????......................................................................57
??????? ??? ??????????????? ?????? 2.1. ????????? ???????????? ?????????? SQL Server 2005..................................................................................................................58
ќглавление I
V
????? 3. ???????? ????????????????? SQL Server 2005............................61
3.1. SQL Server Management Studio..................................................................................61
3.1.1. ??? ????? SQL Server Management Studio............................................................61
3.1.2. ???? Registered Servers..........................................................................................62
3.1.3. ???? Object Explorer..............................................................................................64
3.1.4. ???? Document........................................................................................................66
3.1.5. ???? Solution Explorer...........................................................................................66
3.1.6. ?????? ???? SQL Server Management Studio.......................................................68
3.1.7. ?????? ?????? ?? ?????????..............................................................................70
3.2. Business Intelligence Development Studio...................................................................74
3.3. SQL Server Configuration Manager.............................................................................75
3.3.1. ??? ????? SQL Server Configuration Manager......................................................75
3.3.2. ?????? SQL Server 2005.......................................................................................76
3.3.3. ????????? ????????? ??????? ????????? ?????????? SQL Server Configuration Manager......................................................................................................78
3.3.4. ????????? ?????????? ??????? ????????? ?????????? SQL Server Configuration Manager. SQL Native Client......................................................................79
3.4. SQLCmd.......................................................................................................................81
3.4.1. ?????????? SQLCmd............................................................................................81
3.4.2. ??????????? ????? ??????????? Dedicated Administrator Connection.........83
3.5. SQL Server Surface Area Configuration......................................................................84
3.6. SQL Server Profiler......................................................................................................86
3.7. Database Engine Tuning Advisor.................................................................................88
3.8. ?????? ??????????? ??????? SQL Server 2005........................................................90
3.9. ?????? ?????????? ??????? SQL Server 2005.........................................................92
??????? ??? ??????????????? ?????? 3.1. ?????? ?? ????????? ? SQL Server Management Studio ? SQLCmd..........................................................................................94
??????? ??? ??????????????? ?????? 3.2. ?????? ? ?????????? ???????? ???????????? ? ????????????.........................................................................................95
????? 4. ???????? ??? ?????? ? ????????? ??????????.............................97
4.1. ????????? ? ??????? ???? ?????? SQL Server 2005.............................................97
4.2. ???????? ???????????????? ??? ??????...................................................................99
4.2.1. ???????? ???? ?????? ?? SQL Server Management Studio................................99
4.2.2. ???????? ???? ?????? ??? ?????? ??????? CREATE DATABASE.............100
4.2.3. ?????????????? ??????? ???????? ???? ??????............................................102
4.3. ????? ??? ?????? ? ???????? ??????????............................................................104
4.4. ?????????? ???????? ?????...................................................................................108
4.5. ????? ?????????????? ???? ??????.......................................................................110
4.6. ?????? ?????? ???? ??????...................................................................................112
4.7. ?????? ????????? ???? ??????..............................................................................114
4.8. ??????????? ???????? ??? ??????.........................................................................119
4.9. ?????????? ????????? ????????? ???????? ? ?????? ??????..........................120
4.9.1. ?????????? ??????? ???? ??????......................................................................121
4.9.2. ?????????? ??????? ???? ??????....................................................................121
ќглавление V
4.9.3. ??????? ?????? ???? ??????.............................................................................123
4.9.4. ?????????????? ???? ??????............................................................................124
4.9.5. ????????? ????????? ???? ??????....................................................................124
4.9.6. ???????? ???? ??????.........................................................................................124
4.9.7. ???????? ??????????? ???? ??????..................................................................125
??????? ??? ??????????????? ?????? 4.1. ??????? ??? ?????? ? SQL Server 2000 ?? SQL Server 2005...........................................................................................................125
????? 5. ???????????? SQL Server 2005........................................................129
5.1. ???????????? ? ?????? ??????? ???????????? SQL Server 2005.......................130
5.2. ?????? SQL Server 2005..........................................................................................131
5.2.1. ????? ???? ??????...............................................................................................131
5.2.2. ???????? ?????? ? ????????? ??? ??????????..................................................134
5.2.3. ?????? ??????????????. ????? ??????? ?????.............................................138
5.2.4. ??????, ??????????? ?? ?????????.................................................................140
5.2.5. ????????? ????. ?????????? ?? ?????? ???????.............................................141
5.3. ???????????? ??? ??????.........................................................................................144
5.3.1. ??? ????? ???????????? ???? ??????.................................................................144
5.3.2. ???????????? ? ?????...........................................................................................145
5.3.3. ????????, ????????? ? ???????? ????????????? ???? ??????.......................146
5.3.4. ?????????? ???????????? ???? ??????............................................................147
5.3.5. ???? ??? ??????....................................................................................................148
5.3.6. ?????????????? ???? ?? ??????? ? ???? ??????..............................................150
5.4. ???? ??????????......................................................................................................153
5.5. ????????? ????????? ??????????. ????????? EXECUTE AS.............................155
5.6. ?????????? ???????????? ? ?????????? ?????? ? SQL Server 2005................158
5.6.1. ?????? ?????????? ???????????? ? ?????????? ??????............................158
5.6.2. ?????? ???????? ??????? SQL Server 2005.......................................................160
5.6.3. ???????? ?????????? ?????????? ? ????? ?????? SQL Server 2005.......168
5.6.4. ???????? ???????????? ? ?????? ? ?????????? ????????????????? ???????...........................................................................................................................170
??????? ??? ??????????????? ?????? 5.1. ?????????? ???? ?? ??????? SQL Server 2005 ? ????????? ????????? ??????????...........................................................173
??????? ??? ??????????????? ?????? 5.2. ?????????? ?????????? ? ???????? ??? ??????........................................................................................................................176
????? 6. ????????? ??????????? ? ?????????????? ??? ?????? SQL Server 2005.................................................................................................179
6.1. ?????? ?????????? ??????????? SQL Server 2005................................................179
6.2. ???????????? ?????????? ???????????.................................................................180
6.2.1. ????? ??? ??????? ?????.....................................................................................180
6.2.2. ?????????? ?????????? ??? ???? ????????? ?????..........................................182
6.2.3. ???? ?????????? ???????????...........................................................................183
6.2.4. ?????????? ?????????? ???????????.................................................................186
ќглавление V
I
6.3. ?????????? ?????????? ???????????......................................................................187
6.3.1. ???????? ??? ?????????? ?????????? ???????????........................................187
6.3.2. ????????? ?????????? ???????????.................................................................188
6.3.3. ????????? ?????????? ? ????????? ??????????? ? ???????? ???????.......194
6.4. ?????? ?????????????? ??? ??????.......................................................................195
6.5. ?????????? ? ??????????????.................................................................................197
6.6. ?????????? ??????????????....................................................................................198
6.7. ??????????? ???????? ??????????????.................................................................203
6.7.1. ?????????????? ???? ?????? ? ??????????? ??????.....................................203
6.7.2. ?????????????? ????????? ??????? ???? ??????...........................................204
6.7.3. ?????????????? ????????? ??? ??????............................................................205
??????? ??? ??????????????? ?????? 6.1. ????????? ??????????? ? ?????????????? ???? ??????.......................................................................................207
????? 7. ???????? ??????????? ?????????????????? SQL Server 2005......209
7.1. ?????? SQL Server 2005 ? ????????..........................................................................209
7.1.1. ???????????? ?????????.....................................................................................209
7.1.2. ???????????? ? ???????? ???????????? ????????.........................................210
7.1.3. ????????? SQL Server 2005 ? ???????................................................................212
7.2. ?????????????? ???????? ????????........................................................................213
7.2.1. ??? ????? "?????????????? ???????? ????????"..............................................213
7.2.2. ???????????? ???????? ????????.....................................................................214
7.2.3. ????????? ???????? ????????............................................................................215
7.2.4. ?????????? ???????? ????????........................................................................221
7.2.5. ???????? ? ?????? ???? ????????? ???????.......................................................224
7.2.6. ??? ???????? ???????? ????????.......................................................................226
7.3. ?????????? ??????????? ??? ??????......................................................................227
7.3.1. ??? ????? "?????????? ??????????? ??? ??????"............................................227
7.3.2. ???????????? ??????????? ??????????? ??? ??????.....................................229
7.3.3. ????????? ??????????? ???????????.................................................................229
7.3.4. ?????????? ??????????? ???????????.............................................................232
7.3.5. ????? ????? ????????..........................................................................................233
7.3.6. ???????????? ? ?????? ??????????? ???????????..........................................235
??????? ??? ??????????????? ?????? 7.1. ????????? ???????? ????????................236
????? 8. ????????????? ????????????????? SQL Server 2005..............241
8.1. ????????????? ???????????????? ???????? ?????????? SQL Server Agent.....242
8.1.1. ??? ????? SQL Server Agent................................................................................242
8.1.2. ????????? ????????? SQL Server Agent...........................................................243
8.1.3. ?????? ? ????????? SQL Server Agent...............................................................248
8.1.4. ???????????? ??? ?????????? ???????.............................................................257
8.1.5. ???????? ??????? ?????????? ???????...........................................................260
8.1.6. ??????????????? ???????...................................................................................261
8.1.7. ?????? ? ????????????????...............................................................................264
8.1.8. ?????? ? ???????????...........................................................................................270
ќглавление VI
I
8.2. ????????? ??????????? ????? ? SQL Server 2005.................................................271
8.2.1. ????? ???????????? SQL Server 2005 ??? ?????? ? ??????????? ??????...271
8.2.2. ?????? ? Database Mail..........................................................................................273
8.2.3. ?????? ? SQLMail..................................................................................................278
8.2.4. ?????????????? ??????? ?????? ? ??????????? ?????? SQL Server ? SQL Server Agent.........................................................................................................281
8.3. ????? ???????????? ??? ??????............................................................................284
??????? ??? ??????????????? ?????? 8.1. ?????????? ???????, ?????????????? ? ??????????.....................................................................................................................288
????? 9. ?????????? ???????????????? ???????? ??? ?????? ????????? ??????? SMO, SQL-DMO ? WMI.......................293
9.1. ?????????? ???????? ??? ?????????? ???????????????? ????????................293
9.2. ????????? ?????? SMO............................................................................................295
9.2.1. ????? ????????? ?????? SMO...........................................................................295
9.2.2. ????? ?????? ?????? ? ????????? SMO........................................................298
9.2.3. ?????? SMO.Server...............................................................................................300
9.2.4. ?????? SMO.Database..........................................................................................305
9.3. ????????? ?????? SQL-DMO..................................................................................306
9.3.1. ????? ????????? ?????? SQL-DMO.................................................................306
9.3.2. ?????? SQLDMO.Application..............................................................................308
9.3.3. ?????? SQLDMO.SQLServer2.............................................................................308
9.3.4. ?????? SQLDMO.Database2................................................................................311
9.4. WMI ? SQL Server 2005............................................................................................312
9.4.1. ??? ????? WMI......................................................................................................312
9.4.2. WMI-?????????? ??? ?????? ? SQL Server......................................................315
9.4.3. ??????????? ???????? ??? ?????? ? WMI.......................................................316
9.4.4. ??????????? ? ?????? WMI..............................................................................319
9.4.5. ???? WQL: ??????????? ? ???????? WMI......................................................320
9.4.6. ?????? ? ????????? ? WMI.................................................................................323
9.4.7. ??????? WMI Provider for Configuration Management....................................326
9.4.8. ?????? ? WMI Provider for Server Events............................................................328
??????? ??? ??????????????? ?????? 9.1. ?????????? ????????? ?????? SMO.....330
??????? ??? ??????????????? ?????? 9.2. ?????????? ????????? ?????? SQL-DMO.........................................................................................................................331
??????? ??? ??????????????? ?????? 9.3. ?????? ? WMI Provider for Configuration Management.......................................................................................................................332
????? 10. ?????????? SQL Server Integration Services..............................335
10.1. ????? ????? SQL Server Integration Services.......................................................335
10.2. ???????? ??? ?????? ? SSIS...................................................................................336
10.3. ?????????? ??????? ??????? ? ???????? ??????...............................................339
10.4. ?????? ?????? ? SSIS Designer.............................................................................343
10.5. ????????? ???????????......................................................................................349
ќглавление VII
I
10.6. ?????? ? Data Flow Task..........................................................................................352
10.6.1. ??? ????? Data Flow Task...................................................................................352
10.6.2. ???????? Data Flow Task..................................................................................353
10.6.3. ????????? ? ?????????? Data Flow Task.........................................................354
10.6.4. ?????????????? Data Flow Task.......................................................................356
10.6.5. ???? ? ?????? ?????????? Data Flow Task.....................................................364
10.7. Script Task ? ActiveX Script Task...........................................................................366
10.8. Bulk Insert Task........................................................................................................368
10.9. Execute SQL Task....................................................................................................369
10.10. XML Task...............................................................................................................370
10.11. Message Queue Task..............................................................................................371
10.12. Execute Package Task ? Execute DTS 2000 Package Task...................................374
10.13. Transfer Database Task...........................................................................................375
10.14. ?????? ?????? ??????????? ???????? SQL Server.............................................376
10.15. File System Task ? FTP Task.................................................................................377
10.16. Send Mail Task.......................................................................................................377
10.17. Execute Process Task..............................................................................................378
10.18. Web Service Task...................................................................................................378
10.19. WMI Data Reader Task ? WMI Event Watcher Task............................................380
10.20. ?????? Analysis Services.......................................................................................383
10.21. ?????????? SSIS...................................................................................................383
10.22. ?????? ?????? ????????????...............................................................................386
10.23. ??????????? ????????????????.........................................................................387
10.24. ???????????????? ?????????? ???????............................................................389
10.25. ?????? ? ??????????????....................................................................................391
10.26. ???????? ???????..................................................................................................393
10.27. ???????????? ??????? SSIS...................................................................................395
10.28. ?????? ??????? SSIS ?? ??????????...................................................................398
??????? ??? ??????????????? ?????? 10.1. ???????? ??????? SSIS ??? ???????? ??????...............................................................................................................................401
????? 11. ?????????? ? ??????????? ?????????????????? SQL Server 2005.................................................................................................407
11.1. ???????? ? ?????????? ?????? ? ??????????? ?????????????????? SQL Server 2005........................................................................................................................407
11.2. ?????????? ?????????? ?????????????................................................................408
11.2.1. ?????????? Activity Monitor............................................................................408
11.2.2. ?????? ???????? ??????????? ?????????? ?????????????............................409
11.2.3. ?????? ? ???????????????..............................................................................410
??????? ??? ??????????????? ?????? 11.1. ???? ?????????? ? ????????, ??????????? ???????????............................................................................................418
11.2.4. ?????????? ????????? DDL.............................................................................419
11.2.5. ?????? ???????? ??????????? ?????????? ????????????? ? ??????????? ? ????????.......................................................................................................................421
11.3. ??????? SQL Server 2005......................................................................................422
ќглавление I
X
11.4. ?????????? ?????????????????? SQL Server 2005............................................423
11.4.1. ?????? ??????????? ??????????????????.....................................................423
11.4.2. ???????????? ? ????? ???????? ??????????? ??????????????????.......424
11.4.3. ???????? ??? ??????????? ? ??????? ??????????????????..........................426
11.4.4. ??????????? ????????????................................................................................427
11.4.5. ?????? ?????? ? ????????? ?????????......................................................430
11.4.6. ?????? ?????? ? ????????? ? ??????????.....................................................433
11.4.7. ???????? ??? ??????? ???????? ??????????....................................................434
11.4.8. ???????? ??? ??????? ???????? ??????????? ??????....................................437
11.4.9. ???????? ??? ??????? ?????????????????? ???????? ??????????.............439
11.4.10. ???????? ??? ??????? ?????????????????? ??????? ??????????.............441
11.4.11. ??????? ?????????? ???????? ??? ??????????? ?????? SQL Server 2005.......................................................................................................................444
??????? ??? ??????????????? ?????? 11.2. ?????? ?????? ? ????????? ?????????.................................................................................................449
11.5. ??????????? ?????? SQL Server..........................................................................452
11.5.1. ????? ??????? ??????????? ?????? SQL Server.........................................452
11.5.2. ??????????? ???????????? ??????? ??? ?????? ? SQL Server 2005.........453
11.5.3. ????? ??????????? ?????? SQL Server 2005 ? ??????? Best Practices Analyzer....................................................................................................457
11.5.4. ??????????? ??????????? ? SQL Server 2005..............................................459
11.5.5. ??????????? ??????? ????????......................................................................462
??????? ??? ??????????????? ?????? 11.3. ??????????? ??????? ????????...........466
11.5.6. ?????????????? ???????? ? ??????................................................................467
??????? ??? ??????????????? ?????? 11.4. ?????????????? ?????? ? ????????.....474
11.5.7. ?????? ? ????????????......................................................................................475
??????? ??? ??????????????? ?????? 11.5. ?????????? ??????? ??????????..........479
11.5.8. ??????????? ????????.......................................................................................480
????? 12. ?????????? ? SQL Server 2005.....................................................487
12.1. ????? ????? ??????????........................................................................................487
12.2. ????? ??????????? ?????????? SQL Server 2005..............................................489
12.3. ???????????? ??????? ??????????......................................................................490
12.4. ???? ??????????....................................................................................................492
12.5. ?????????? ? ????????? ??????????.....................................................................494
12.6. ????????? ??????????............................................................................................496
12.7. ???????? ????????????????? ? ??????????? ??????????.................................501
12.7.1. ???????? ????????????????? ??????????.....................................................501
12.7.2. ?????????? Replication Monitor.......................................................................504
12.7.3. ?????? ???????? ??????????? ??????????.....................................................507
??????? ??? ??????????????? ?????? 12.1. ????????? ???????????? ??????????..508
?????????? ?????????....................................................................................513
ѕредисловие 7 ?????? 2005 ?. ?????????? Microsoft ??????????? ????? ?????? ????? ??????????? ??????? ?????????? ?????? ?????? ? SQL Server 2005. C ??-
????? ?????? ?????????? ?????? SQL Server ?????? ???? ???. ????????? ? SQL Server 2005 ?? ????????? ? SQL Server 2000 ? ?????????. ????????? ?????????? ????? ??????????? (????????, ?????????? Service Broker ? ?????????? ??????????), ? ????????? ?????????? ???? ??????????? ?????-
?? ?????? (DTS/SSIS). ???? ???????????? ? ??????? ?????? ?????? ? SQL Server 2000 ?????? ?????????? ????????? ??????. ????? ???? ????? ? ????????????????? ????????????? Microsoft, ??????? ?????? ????? ?? SQL Server ??? ? ??????? 8 ??? (??????? ? ?????? 6.5). ??-
????????? ? ????????????? ?????? ????? ??????????? ?????? ????????, ???-
?????? ? SQL Server, ?? ????? ?????? ????????????. ????? ??? ??? ???? ????????? ??????? ???????????? ?????????. ????? ???????, ?????????? ???????????? ???? ??????? ????????? ???????, ???????? ?????? ?? ?????? ?????????, ?? ??????????? ???????. ? ?????? ???????, ?????? ???? ???????? ?????????? ???????????? ???????-
??? ?????????? ??? ??????????????? ??? ?????? ?? SQL Server 2005. ??????? ???????? ?????????? ? ???, ???????, ?????????? ???????????? ?? SQL Server 2005 (Books Online). ?? ?? ?????? ????????? ???? ????? ??????? ?????? Books Online ??? ?? ????, ??? ??? ?????? ????????????, ???????? ? ????????, ???????? ??????? ?????????. ?????? ????????????? ?????????? ?? SQL Server 2005 ?? ?????? ????????? ???? ????? ????? ??????????? ?? ???????????. ??? ???? ???????? ?????????? ?? SQL Server 2005 ? ??? ??????????? ????? Microsoft (MOC ? Microsoft Official Curriculum). ?? ???????????? ??-
???????? ? ??? ?? ??????? ????? ???. ????? ????, ? ?????? Microsoft ???? ???????????? ?????????? ? ?? ????????????? ??????????????. ? ????????-
???? ?????????? ?? ?????? ??????? ???????????? ?????????? ? ????????-
????? ? ????????????, ? ??????? ?????? ????????? ? ????????? SQL Server ? ??? ???????????. ?????? ??????????????? ?????????? ?????????????? ??-
???? ?????????? ? ?????????, ???????????? ? ???? ?? ????????. ?????? ??????? ????? ? ????? ???????? ??? ?????. ѕредисловие 2
?????? ???????? ?? ????? ???????? ????????? ???????: ??? ????? ????????? ?????? ????????, ????????? ? ?????????????????? SQL Server. ???????, ?????????? ?????????? ??? ?????? ? ?????????? SQL Server 2005, ????? ??????????? ? ?????? ?????, ??????? ????????? ? ?????? ? ???????????? "???-?????????". ??????? ???????? ????? ? "Microsoft SQL Server 2005 ??? ?????????????"; ????? ????????? ??????? ?????? ?? ???, ? ????? ?????? ????????, ??? ????????????? ????? ???????? ????? ???????????? ?? ??? ???? ????????. ??? ???? ????????? ??????????? ???????????, ?? ????? ?????? ??? ??-
??????? ???? ????????, ??????????. ????????, ?? ?????????? ?????? ???????? ???? ??????????, ??????????? ???????? ??????????. ????, ??-
??? ?????? ???????? ????????? ????? ????????????, ???????? ???????-
??? ???????? ????? ? ???????; ????? ?????????? ????????? ? ????? ?? ??????????, ???????, ?? ????? ?????????? ??????, ????? ???????????? ????????????????, ?? ???????-
????? ??????????????? ? ??????????? ??????? ??????. ????????, ????-
??? ???????? ????????? ????????, ????????? ? ???????????? ? ??????-
?????? ?????????????????? ??? ?????? SQL Server 2005, ???????????? ??????? ???????? ? ??????????, ?????????????? ?????????? ????????-
???????? ???????? ?????????? SMO ? SQL-DMO, ????????? ? ???????-
???????? ?????? ?????????? DTSX/SSIS, ??????? ?????????? ? ????? ?????? SQL Server 2005 ? ?. ?. ??? ????? ????? ???????????? ??? ??????? ??????? ??? ???????????????? ???????? ??? ??? ?????????? ???????? ????????????. ??? ?????? ????? ????????????? ??????? ??? ??????????????? ?????? ? ?????????? ????-
?????. ??? ??????? ????? ????? ???????????? ??? ????????? ?????????? ??? ?????????? ????????? ????????. ????? ???? ??????? ?? ????????? ???? ????? ? ????? ???, ???? ??? ??????? ??????. ?????????? ? ?????-?? ??????????? ??????? ?????? ? SQL Server ??? ?? ??????? ? ????? ????? ????? ??????? ? ??????????????. ? ??????? ????? ????????? ?? ??????????? ????? ???????????? mail@bhv.ru. ????? ????? ???????? ? ??????? ?????? ???????? ??????????? ?????? ?? ?????????????? ??????????? (?. ?????-?????????). ??????? ????? ???-
????? ???????? ??? ?? SQL Server 2005, ??? ? ?? ?????? ?????? ????????-
??? ????????? Microsoft ? ?????? ??????????????. ???????? ???????????? ??? ? ??????? ??????? ? ?????-??????????, ??? ? ?? ?????????? ??????????? ?? ???? ??????. ?????????? ? ????????? ??????? ?????? ????? ????? ? ????? ???? ????? ??? ?? ????? www.askit.ru. ???? ??????? ?? ?????- ??? ??????????? ?? ??????????? ????? info@askit.ru ??? ?? ???????? 8 (812) 922 47 60. √Ћј¬ј 1 ќбзор новых возможностей SQL Server 2005 ? SQL Server 2005 ????????? ????????? ????? ???????????? ?? ????????? ? ?????????? ??????? ????? ???????????? ???????? ? SQL Server 2000. ??-
???? ???? ????? ? ???? ????? ????? ???????????? SQL Server 2005 ??? ???-
?????????, ??????? ???????? ? ????? ??????? ???????? SQL Server. ??????-
??? ??????????? ???? ???????????? ????? ??????????? ? ????????? ??????. 1.1. Ќовые возможности SQL Server 2005 дл¤ администраторов 1.1.1. »зменени¤ в наборе административных средств ??????, ??? ????????? ? ????? ??? ?????????? ? SQL Server 2005, ? ??? ???-
????????? ????????? ?????? ??????? ?????????????????. ? SQL Server 2005 ?? ?? ??????? ?? Enterprise Manager, ?? Query Analyzer, ?? Service Manager, ?? ?????? ?????? ????????? ????????. ?????? ??? ????????? ??????, ??-
???????? ????? ????????. ???????, ?????? ??????????? ???????????? ?? ?????????? ??????, ?? ????????? ? ????? ??????. ???????? ???????? ????-
??? ??????? ????????????????? SQL Server 2005. SQL Server Management Studio ? ??????? ?????????? ??????????????. ??? ??????? ?????????????????, ??????? ???????? ?? Visual Studio, ??-
???????? ? ???? ??????????? Enterprise Manager, Query Analyzer, Analysis Manager, ??????? ????????????????? Reporting Services ? Notification Ser-
vices. ??? SQL Server Management Studio ????? ?????????? ? ????. 3.1. Business Intelligence Development Studio ? ??? ???? ???????, ?????????? ?? Visual Studio. ??? ????????? ???????? ? ????????? Analysis Services, √лава 1 4
Integration Services (??? ?????????? ????? ?????? Data Transformation Services, DTS), Reporting Services ? Report Model. ??????? Integration Services ? ?????? ? ???? ?????????? Business Intelligence Development Studio ????? ??????????????? ? ??. 10. SQLCmd ? ??? ??????? ????????? ??????, ?????????? ???????? isql
?
osql
?? ?????????? ?????? SQL Server. ? ??? ????????? ????????? ??-
??? ???????????? (????????, Dedicated Administrator Connection ? ???-
???????? ?????????? ???????????????? ????? ???????????). ?????? ? ???? ???????? ????? ??????????????? ? ????. 3.4. SQL Server Configuration Management ? ??? ????????? ?????????? ? ????????? ??????????? Service Manager, Server Network Utility ? Client Network Utility ?? ?????????? ?????? SQL Server. ?? ?????????? ??? ??-
??????? ????? SQL Server, ????????? ? ?????????? ??????? ????????? ????? ??????????????? ? ????. 3.3. SQL Server Surface Area Configuration ? ??????????? ????????, ? ????-
??? ?????????????? ?????????? ?????????? ????????????? SQL Ser-
ver 2005 (????????, ?? ???? ????? ???????? ? ????????? ??????????? ?????? ?? ???????? .NET ?? ???? Transact-SQL, ????????? ??? ?????? ? ??????????? ??????, ????????? ??????????? ????????????? ? ?. ?.). ??? ?????? ? ???? ??????????? ????????? ????? ?????????? ? ????. 3.5. 1.1.2. Ќовые возможности дл¤ оптимизации производительности ????? ?? ???????? ?????, ??????? ???????????? ???????? Microsoft ??? ?????????? SQL Server 2005, ???? ????????? ???????????????? ?? ??????-
??? ? ??????????? ???????? SQL Server. ???? ???????, ??? ??? ???? ???? ?? ?????? ??????????. ?????? ????? ??????????? ?????? ???? ???? ??????, ? SQL Server 2005 ???? ??????????? ????????? ????? ???????, ??????? ????? ???????????? ??? ??????????? ??????????????????: ??????????? ??????????????? (partitioning) ??? ?????? ? ????????. ??? ????? ?????? ???????????? ????????? ??????????? ????? ?????? ?????????? ??????????????????? ?????? ???????, ? ????? ???????? ???????? ?????????????????. ????????, ???????? ?????? ? ??????? (??-
????? ??????????? ?? ??????????, ? ????????? ? ??? ???????????? ???-
??) ????? ????????? ? ????? ???????, ? ??????? ??????, ? ???????? ??-
?????? ????????????, ? ? ??????. ?????? ?????? ? ???????? ??????? ????? ????????? ?? ????? ??????? RAID-??????. ????? ????? ?????-
?????? ????????? ???????? ?? ???????????? (????????, ???????????-
??? ????????) ?????? ??? ????? ???????. ќбзор новых возможностей SQL Server 2005 5
??????? ???????? ???????????? ??????? (snapshot isolation). ???? ????? ???? ???????? ?????????? ??????? ?????? ???????? ? ????????-
????, ??????? ?????????? ???????????? ?????? ??????? ??? ?????? ? ???-
???????? ???????? SQL Server. ??? ????????????? ????? ?????? ?????-
??? ?????????? ???????, ??????? ?????????? ? ?????? ?????? ?? ??????, ?? ??????????? ?????????? ?? ?????? ? ???????. ????????? ???????? ????? ??????????? SQL Server ?? ????? ?????-
?????. ?????? ?? ????? ?????????? ????? ?????????? ?? 50 ??????????? SQL Server 2005 Enterprise Edition. ??? ?????? ???????? SQL Server 2005 ????????? ?? ?? ???????????, ??? ? ??? SQL Server 2000, ? ???????? 16 ??????????? SQL Server ?? ??????????. ??? ?????? ? ???????????? ???????????? ????? ?????????? ? ????. 2.2.3. ??????????? ????????????? ?????? (instant file initialization). ??? ???????? ????????? ?? ????????? ?????? ???????????? ?????? ??? ?????? ??? ?? ???????? ??? ?????????? ????????? ?????? (??? ??? ???? ? ???-
??????? ??????? SQL Server). ? ?????????? ?????????? ????? ???????? ??????? ??????????. ??????? ??????, ??? ??? ??????????? ???????? ???? ??? ?????? SQL Server 2005 ?? Windows Server 2003 ??? Windows XP (??? ?????? ??? Windows 2000 ??? ??????????). ???????? ??? ??????????? ????????????? ?????? ????? ?????????????? ? ????. 4.3. ??????????? ?????????? ????????. ??? ??????????? ????? ?????????-
??, ????????, ??? ??????????? ???????. ????? ????, ???????????? ?????-
??????? ??????????????????? ??????? ??????? ??????? ?????? ????? ?? ?????. ?????????? ??????? ???????????? ??? ?????? ??????? ALTER INDEX ... DISABLE
(??. ????. 11.5.6). ??????????? ?????????? ??????????? ??? ???????? ????????, ????-
????? ? ???????? ???????? (???????? MAXDOP
). ???????? ? ????????? ??? ??????? ?????? ????? ????????? ????? ?????????????. ? ?????????? ?????? ????????????? ????? ???? ??????????. ????? ?????????? ??????-
??? ???????, ??????? ????????? ??? ?????????? ???????? ? ?????????, ? SQL Server 2005 ???????????? ????? ???????? MAXDOP
(MAXimum Degree of Parallelism ? ???????????? ??????? ?????????????????). ??? ?????? ????? ????????? ????? ?????????? ???????????? ?????????? ???????????, ??????? ????? ?????????????? ??? ?????????? ???????? ? ?????????. ?????????? ???????? ? ???????????? ??????? ????????. ??? ????? ??????????? ????????????? ???????????? SQL Server 2005 ??? ???????? ? ???????????? ?????? ????????, ??????? ???????? ????? ????? ? ???? ???-
??? (?????? 128 ?????????, ?. ?. ????? 8 ?????). ??? ???? ? ???? ?????? ?????????? ?????? ?????????? ???????? (?. ?. ??? ???????????? ??????? √лава 1 6
??? ?????? ????? ????????? ??? ????????? ? ??????? ??????). ??????-
???? ?? ???????? ? ??????????, ??????? ????? ??????????? ????????????? ???????, ???????????? ? ??????????? ?????? ????? ?????????? ???????-
???. ???????????? ????????????? (dynamic views). ????? ??? ??????????-
??? SQL Server 2005 ????????? ???????? ?????????? ? ????????? ?????-
??? ?????? SQL Server 2005. ????????, ?????????? ? ??????? ??????-
?????? ????????????? ????? ??????????? ??? ?????? ????????????? ????????????? sys.dm_exec_sessions
, ? ?????????? ? ??????????? ? sys.dm_tran_locks
. ???????????? ????????????? ????? ??????????????? ? ????. 11.2.2. ???????? DDL (DDL triggers). ??? ????? ??????????? ????? ????????-
?????? ??? ??????????? ?????????? ?????? DDL (Data Definition Language ? ???? ????????? ??????), ?. ?. ??????, ??????? ???????, ??-
?????? ??? ??????? ??????? ? ????? ??????. ????? ???????? ????? ??-
???????????? ??? ??????, ?????????????? ???????? ? ?. ?. ????????? ??? ???????? DDL ????? ?????????? ? ????. 11.2.4. ??????????? ? ???????? (event notifications). ??? ?????? ????? ??????-
?? ????? ??????????? ?????????? ?????? DDL ? ??????? ??????????? (?? ?? ??????? SQL Server, ??????? ????? ? ??????????????). ????? ??-
??????? ??????????? ? ???????? ??????????? ?????????? ? ??????? ???-
????????? ?????? Service Broker ? ???? ?????? XML. ??????????? ?????????? ?????????? (???????? AUTO_UPDATE_STATISTICS_ ASYNC
). ???? ???????? ???????????? ??? ????, ????? ??????? ????? ?????-
????? ??????? ????? ??????????????. ?? ????????? (???????? ????????? FALSE
) ??????, ??????????? ?? SQL Server, ????? ???????????? ???????-
??? ??????????, ???? ?????????, ??? ??????????, ??????????? ??? ?????? ??????????? ????? ?????????? ????? ???????, ????????. ?????? ?????? ????? ?????????? ?????? ???????????? ?????, ? ?????????? ???? ????? ????? ?????????? ??????? ????? ?????? ????????. ???? ?? ????????? ??? ????????? ???? ?????? AUTO_UPDATE_STATISTICS_ASYNC
???????? TRUE
, ?? ?????? ????? ????? ???????????? ?????????? ??????????. ?? ? ???? ?????? ?????????? ????? ??????????? ? ??????????? ??????, ??????????? ? ??????????? ??????? (??? ???? ???????????, ??? ??? ??????? ????? ??-
???? ????????????? ????). ??????? ?????????? ??????????? ?????? (hot-add memory). ???? ???? ???????????? ???????????? ?????????? ??????????? ?????? "?? ????", ?? SQL Server 2005 ?????? ???????????? ????? ??????????? ?????? ??? ??-
??????????? ??????????? ???????. ????? ??????? ????? ????????? ????? ??????? ??? ????????, ??????? ???????? ????????????? ? ????????? ??-
????? ????? ???????? ? ????????? ??? ?????????????. ќбзор новых возможностей SQL Server 2005 7
???????????? ?????????? ??????? ??? ????????????? AWE (Address Windowing Extensions ? ??????? ?????????? ?????????). ??? ???????? ????????? 32-????????? ??????????? ???????? ? ??????????? ??????? ???????? ????? 4 ?????. ? ?????????? ??????? ?????? ??????, ??????? ??? ???????????? SQL Server ??? ?????????? AWE, ??? ???????????. ? SQL Server 2005 ??? ????? ???????? ???????????. ??? ?????? ? AWE ????? ?????????? ? ????. 11.4.8. 1.1.3. Ќовые возможности системы безопасности ? ??????? ???????????? SQL Server 2005 ???? ??????? ????? ??????? ????-
?????. ??? ????? ????? ?????? ? ??????????????. ???????? ?????? ????? ??????????? ???????????? ?????. ??????? ?????????? ????? ??????????. ??? ?????????? ???????????-
?? ??? ?????? ???????, ??? ??? ?????? ? ??? ?????????????? ???????? ? ????? ??????. ??????????? ?????????????? ?????????? ???? ?????????-
?? ????????? ?? ????????? ? ??????????? ???????? SQL Server. ??? ?????????? SQL Server ???????? ????? ?????????? ? ??. 5. ?????????? ?????????? ? ????? (separation of users and schemas). ??? ????? ? ????? ??????? ??????????? ????????? ???????? ?????????? ? ??????????? ???????? (??????? ???????????? ??? ?????? ?????) ?? ???-
????? ?????????. ????? ????, ????? ????? ?????? ???????????? ? ? ???-
??? ?????????. ????????, ???????????? ????? ???????????? ?????????? ?? ????? (??? ???? ?? ??????? ????? ?? ??? ??????? ???? ?????), ?????-
???? ??? ????? ?? ????????? ? ?. ?. ??? ?????? ?? ??????? ????? ??????-
???????? ? ????. 5.3.2. ?????????? ???????? ?????????? ??????. ? SQL Server 2005 ?????? ????? ????????? ?????? ? ????????, ????????? ?????????? ??????????? ?????? ???????. ??? ???? ????????????? ????????? ???????? ???????-
???. ??? ???? ???? ????? ???????????? ???????????, ????????????? ? ???????????? ????? ? ?????? ??????. ????????? ??? ?????????? ?????-
????? ??????? ??? ?????????? ?????? ????? ?????????? ? ????. 5.6. ????????? ????????? ?????????? ???? Transact-SQL. ??? ??????-
????? ????????? ?????? ???????? ????? ? ???????? ?????????? ????? ????. ??? ????? ???????????? ????????? EXECUTE AS
(??. ????. 5.5). ??????????? ??????????? ?????? ? ???????? SQL Server. ????????, ?????? ??? ??????? ????? ????????? ????????? ????????, ?????????? ????????????? ?????? ?????? ??? ????????? ????? ? ??????? ? ?. ?. ??? ?????? ? ???????? ???? ?????? ? ????. 5.2. √лава 1 8
1.1.4. Ќовые возможности дл¤ обеспечени¤ отказоустойчивости ???? ?? ??????? ?????, ??????? ???? ?????????? ????? ?????????????? SQL Server 2005, ? ??? ??????????? ????????? ?????????????????? SQL Server 2005 ? ???????? ??????? ??????? ???????. ??? ??????? ???? ??????? ? SQL Server 2005 ????????? ????????? ???????????: ??????????? ????????, ????????? ? ???????? ???????? ? ????????-
??? ?????? (online). ???????????? ????? ???????????? ? ??????????? ???? ???????? ???????? ? ??????????????? ????????. ??? ??????????? ????? ????????? ????? ??????? ??? ????????, ??????? ?????? ???????? ? ?????????????? ??????. ??? ???????? ?????? ??? SQL Server 2005 Enterprise Edition. ??? ???? ????? ?? ???????????????, ???????????? ??-
??? ???????? ONLINE
??? ?????? CREATE INDEX
, ALTER INDEX
, DROP INDEX
? ALTER TABLE
. ????????? ???????? ????? ????? ??? ?????? ? ????????. ?????? ????-
?????? ????? ? ???????? SQL Server 2005 ?????????????? ?????? ??????-
??????? ???????????? ??????? (??? ??????????? ????? ?????? ??? ?????-
??? Enterprise Edition ? Developer Edition, ????????? SQL Server 2005 Standard Edition ???????????? ??????? ???????? ?? ???? ?????). ? ?????-
????? ??????? SQL Server ????? ???? ???????????? ???????? ???????? ?? ??????? ????? ??? 32-????????? ?????? ? ???????? ?? ?????? ????? ??? 64-????????? ??????. ??? ?????? ? ?????????? ????? ?????????? ? ????. 7.1. ?????????? ???????????????? ??????????? (Dedicated Administrator Connection). ??? ??????? SQL Server 2005 ??????????? ????????????? ??-
????? ?? ???? ???????????. ???? ?? SQL Server 2005 ???????? ?????-?? ???????? (????????, ??????????? ?????????? ?????? ?????? ???? ??? ??-
????? ???????), ?? ?????? ???????????? ????????????????? ??????? ??? ??????????? ? ???? ??????????? ??????. ????? ?? ??????, ? ???????, ??????? ??????????, ??????? ????????? ???? ??????. ?????????? ??????-
?????????? ??????????? ???????? ??????????? ????? ????? ??????????. ????? ????, ????????????? ? ???? ??????, ?? ????????? ???????????-
??? ????? ?? ?????????? ????????, ??????? ??? ??????? ??????????? ????????? (????????, ?? ???????? ????????? ???????? ? ??????? ???? ?????? master
). ???????? ??? ?????? ? ?????? ??????????? ??????????-
??????? ??????????? ????? ?????????????? ? ????. 3.4.2. ?????????? ??????????? ??? ?????? (database mirroring). ?????????? ??????????? ? ????? ?????? ????? ???????????, ??????? ????????? ???-
????????? ?????? ????? ??????? ???? ?????? ? ??????????? ?????? ќбзор новых возможностей SQL Server 2005 9
(online) ?? ?????? ???????, ? ????? ??????????? ?????????????? ???????-
????? ????????????? ????? ????????? ? ??? ??????, ???? ?????? ?????? ????? ?? ?????. ??????????? ??????????? ??????????? ??? ?????? ????? ?????? ?? ??????????? ????????, ?????? ??? ??? ????????? ??? ?? ????? ???????? ???????????? ????????????, ? ???? ???????, ??????? ???????-
?? ? ??? ???????, ????? ?????????? ????? ?????? ???? ?? ?????. ? ??????-
???, ??????? ???????????? ?????? ???????? ???? ?????????? ???? ?? ???-
????, ??????? Microsoft ?? ??????????? ???????????? ?????????? ??????-
????? ??? ??????? ????????. ????? ????, ????????, ?? ??????? ????????? ?????????? ???????????, ???????? ? ????????? ?? ??????? ????????????-
??? ????????????? Microsoft. ???????? ??? ?????????? ??????????? ??? ?????? ????? ?????????? ? ????. 7.3. ???????????? ?????? ??? ?????? (database snapshots). ? ????????-
???????? ????? ?????? ???????????? ?????? ???????????? ????? ?????? ???? ?????? ?? ????????? ?? ???????????? ?????? ???????. ?? ????? ???????????? ??? ????, ????? ????????? ? ????????? ???? ?????? ?? ??-
?????????? ?????? ???????, ????????, ?? ?????? ?? ?????? ?????????? ??????????? ???????? (?????????? ??????, ?????????? ?????????????? ??????????), ??? ??? ???????? ??????? (?? ?????? ??????, ???????? ? ?. ?.). ?????? ???????????? ?????? ??????????? ?????????? ?? ??????-
??? ????? ??? ??????, ??????? ????? ???????????? ??? ??? ?? ?????. ?????????? ???????????? ?????? ???? ?????? ? ??? ?????? ????? ???-
??? ??????? (??????? ?? ????????? ????? ??????). ??? ???????? ?????? ????????? ? ???? ?????? ?????? ??????? ????????, ? ??????? ???????? ?????????, ?????????? ? ???????????? ??????, ? ????????? ???????? ??? ? ????? ??????? ???? ????????. ??? ????? ???????????? ?????????? ??????? ??????????? ???????? ??????? NTFS. ?????? ??? ?????? ???-
????? ?????? ? ???????? Enterprise Edition. ??????????? ????? (checksums) ??? ???????? ??????????? ??????? ???? ??????. ? ?????????? ??????? SQL Server ??? ???????? ????????-
??? ??????? ???? ?????? ?????????????? ?????? ??????????? ????. ????? ?????????? ?????????? ???????????? ???????????? ??????? (torn page detection). ??? ???????? ? ? SQL Server 2005, ?? ????? ??? ????? ????? ???????????? ??????????? ????? ??? ??????? ???? ?????? (?? ??????-
??? ??? ??????????? ??? ?????? ????????? ?????? ????????????? ???-
???????? ????). ?????????? ??????????? ???? ????????? ????? ??????? ???????????? ????? ??????????? ? ?????? ??????. ???????? ??? ??-
??????????? ??????????? ???? ? ?????????????? ???????????? ??? ???-
????? ??????????? ??????? ????? ?????????????? ? ????. 4.7 (???????? PAGE_VERIFY
). √лава 1 10 ?????????????? ????????? ??? ????????? ??????????? (mirrored backup media). ?????? ??? ?????????? ?????????? ??????????? ????? ????????? ???????????? ????????? ?????????? ????? ??????????? ???-
???. ??? ??????????? ???????? ???????? ?????????? ?????????? ??????-
?????. ???????? ??? ??? ????? ?????????? ? ????. 6.3.2. ???????? ???? ?????? ??? ??????? ????????????? ? ???? ?????? ??? ?????????????? ????????????????? ?????????? (instance recovery). ??-
???? ???????????? ????? ???????? ? ????? ?????? ??? ?? ?????????? ??-
???? ???? ????????????? ?????????? ??? ?????????????? ???? ?????? ????? ????. ??? ??????????? ????????? ????????? ?????, ??????????? ??? ?????????????? ???????. ??? ???????? ?????? ? SQL Server 2005 Enterprise Edition. ????????? ? ??? ????? ???????????? ? ????. 6.4. ????????????? ?????? ?? ????? ???????? ??????????????. ???? ??? ?????????????? (??? ????????? ???????????) ???? ?????? ???????????? ?????-?? ??????, ? SQL Server 2005 ????? ?????????? ?? ???????????-
???? ? ??????????? ?????????? ?????????????? ??? ????????? ????????-
???. ??? ???? ???? ???????????? ????? ???????? ?????? BACKUP
? RESTORE
? CONTINUE_AFTER_ERROR
. ????????? ??? ???? ? ??? ?????? ????-
????? ????? ?????????????? ? ????. 6.6. ?????????????? ???????? ???? ?????? (online database restore). ??? ??????????? ???????? ????????? ????? ??????? ??? ?????. ?????? ??? ?????????????? ? ????? ?????? ????????????? ????????? ???????????, ????????, ? ????? ?????? ???? ??? ???????? ??????, ??? ??????? ?????-
????? ??? ??????????????, ?????? ???? ?????????? ? ?????????? ??- ??? (offline), ?????? ??????????? ?????????????? ??? ??????? ????? ???? ?????? ? ?. ?. ????? ????? ?????????????? ????? ??????????????? ? ????. 6.7.1. ????? EMERGENCY
??? ???? ??????. ???? ????? ???????????? ??? ?????-
????? ??????????? ??? ?????????? ?? ??????? ?????-?? ???????. ???? ?????? ? ???? ?????? ???????? ?????? ?? ??????, ?????? ? ?????? ????-
?????? ?? ????????????, ?????????? ? ??? ????? ?????? ?????????????? ???????. ???????? ??? ???? ????? ????? ?????????? ? ????. 4.6. 1.1.5. Ќовые возможности системы репликации ? ??????? ?????????? SQL Server 2005 ????????? ??? ??????????? ?????-
????? ??????. ? ?????????? ? ??? ????????? ??????? ?????????? ????? ???????, ??????? ????????? ????????? ???????????????? ???? ???????. ??????????? ?????? ??????? ??????? ??? ??????? ??????????. ???? ? ?????????? ??????? SQL Server ?????????? ??????????? ??????????? ќбзор новых возможностей SQL Server 2005 11 ?????? ?? ????? ??????? ??????, ??? ??????? ??????? SQL Server Agent, ?? ? SQL Server 2005 ? ??? ????????? ??????? ??????????? ????????? ???????????? ??? ?????? ??????? ??????????. ????? ??????????? ?????? ?? ????????? ?????????????? (identity columns). ????????? ??????????? ????????????? ??????? identity ?????? ??? ??????? ??????????????, ? ?? ??? ??????? ??????? ? ??????? ????? ?????? (????????, int
). ????? ????, ????????? ??????????? ???????????? ????????? ???????? ?????????????? ????? ?????????, ??????? ?????-
???? ??????? ? ?????????? ????????. ?????????????? ??????? (tracer tokens). ????? ??????? ???????????? ????? ????????? ?????? ????????? ??????, ??????? ????????????? ?????????? ??? ??????????? ??????????. ????? ???????? ?????? ??????-
?????????? ?????? ????? ?????????? ??? ???? ???????????? ?????????? ??????????? ??????????. ????????????? ?????? ?? ?????????? ??????? ??? ?????? ??????-
??? ?????. ??? ??????????? ????? ?????? ??? ????????? ?????????? ??????? ??????. ??? ????????? ?? ???????? ?????? ?????????? ??????? ??????? ??????. ??????????? ???????? ????????? ?????????????? ?????? (????????? ? ??????? ???????). ??? ????????? ????? ???????? ?????????? ????-
???????? ?????????? ??????????. ??????????? ???????????? ???????????? (peer-to-peer) ??????????. ??? ????????????? ????? ???? ?????????? ????????? ????? ??????? ?? ????? ???????, ??????? ????????? ? ??? ???????, ??? ????????? ???????-
?? ?? ???? ????????? ????????. ?????????? ????????? ?????????? ? ?????? ?????? ?????? ???????-
???????. ????????? ??????????? ???????? ????????????? ?? ???????-
??? ? ???? ?????? Oracle. ????? ????, ????? ???????????? ?????????? ???????????? ??????? ? ?????????????? ?????????? ? ???????, ????? ? ???? ???????? ????????? SQL Server 2005, ? ? ???? ?????????? ? Oracle ??? IBM DB2. ????? ????? ??????????? ???????? RMO (Replication Management Objects ? ??????? ?????????? ???????????). ??? ??????????? ?????-
?? ???????????? ??? ????????????? ?????????? ???????????. ?????????? ?????????? ??? ?????????? ???????? ??? ?????? ???-
???????? ??????????? ???????. ????? ?????? ????? ????????? ?? ??-
??? .NET-??????????? ?????. ?????????? ?????????? SQL Server 2005 ? ?? ????? ??????????? ????? ???-
???????????? ? ??. 12. √лава 1 1
2
1.1.6. Ќовые объектные модели дл¤ автоматизации администрировани¤ ????? ?? ????? ??????? ? ??????? ??? ??????????????? ????? ????????-
???? SQL Server 7.0 ? SQL Server 2000 ????? ????????? ?????? SQL-DMO (Distributed Management Objects), ??? ?????? ??????? ????? ????????????-
???? ????? ???????? ?? ????????????????? SQL Server (??? ?????? ???-
????????? ???? ?? ?????? VBScript ??? JavaScript ??? ?? ????? ?????? COM-??????????? ????? ???????????????? ? Visual Basic, VBA, C++, Java, Delphi ? ?. ?.). ????????? ????????? ?????? SQL-DMO ????????? ? ? SQL Server 2005, ??, ? ?????????, ??? ?? ???????????. ??? ?????? SQL-DMO ?????? ?????????? ? ????? ???????? SQL Server 2005 ? ?????? ? ???, ????-
??? ???? ? ? SQL Server 2000. ??????? ??????: ????????? ?????? SQL-DMO ?? ??????? ????????? .NET, ? ?????? .NET-??????????? ????????? ?????? Microsoft ????????? ????????? ? ?????? ???????. ???? ? SQL Server 2005 ??- ??????? ????? ????????? ?????? ??? ????????????? ?????????????????. ????????? ?????? SMO (SQL Management Objects). ??? ????????? ??-
???? ??????????? ??? ?????????? ???????????????? ???????? ?? SQL Server 2005 ? ???????? ???????? ????????? ?????? SQL-DMO, ??????? ?????????????? ? ?????????? ???????. ???????? ?????? SMO ???????? ??, ??? ??? ??????????? ?????????? .NET. ????????? ?????? SMO ????? ??????????????? ? ????. 9.2. ????? ?????????? (??????????) WMI (Windows Management Instru-
mentarium). ??? ???????????? ??????????? ????????? ? SQL Ser-
ver 2005 ?????????? ???????????? ?????????? WMI (??. ????. 9.4). WMI Provider for Configuration Management ???????????? ?????????? ??? ????-
?? ?? ???????? SQL Server ? ?????????? ???????? ???????????? (??. ????. 9.4.7), ? WMI Provider for Server Events ????????????? ??????-
????? ??? ?????? ? ????????????? ? ???????? SQL Server (event notifications) (??. ????. 9.4.8). 1.2. Ќовые возможности SQL Server 2005 дл¤ программистов ? ???? ??????? ?????? ????????????? ?? ????? ???????????, ??????? SQL Server 2005 ????????????? ??? ?????????????. ??? ??????????? ???????? ??????????? ? ?????? ????? ??????, ??????? ?????????? "SQL Server 2005 ??? ?????????????" ? ????????? ? ?????? ? ???????????? "???-?????????". CLR (Common Runtime Language) Integration ? ?????????? ????? ?????????? .NET. ?????? ????? ?????????? ? ??????? ?????? .NET ќбзор новых возможностей SQL Server 2005 1
3
????? ?? ???? Transact-SQL. ???, ? ????? ???????, ????? Oracle, ??? ???-
?? ?????????? ? ??????? Java, ? ? ?????? ???????, ?????????? ????????-
????, ????????????? ? ?????????? ??????? SQL Server ??? ?????? ???-
????? ???????? ????????????? (
SP_OACreate
, SP_OAMethod
? ?. ?.), ??????? ?????????????? ??? ????????? ? ??????? COM. ?????????? ? ??????? .NET ????? ?????? ?? ?????? ?????????. ????????, ????? ?? ?????? ??-
?????????? ??? ??????? ??????????? ??? (??? ?????????? ???????? ? ???????? ???????, ??? ?????? ? ??????????? ?????? ? ?. ?.), ????? ??? ????? ??????????? ?????????? ????????? ???????????? ???????? (??-
??????, ??????????) ?? ??????? ??????????? ???????, ????? ?? ?????? ???????????? ??????????? ??????????? ??????? ?????? ???????????-
????? ? ?. ?. ??????? ??????, ??? ??? ???? ??? ?????? SQL Server 2005 CLR Integration ?? ????????? ????????? (??? ? ??????????? ?????????? ???????? ???????? ????????????? SP_OACreate
, SP_OAMethod
? ??.). ????? ????? ??? ????????? ???? ???????????? ???????????? ??????? SQL Server Surface Area Configuration (??. ????. 3.5). ??????????? ????????? ???? ??????????? ?????????? ???????. ? ???-
??????? ??????? SQL Server ????? ???? ???????????? ?????? ???????-
??? ?????????? ??????? (
SUM()
, MAX()
, MIN()
, AVG()
? ?. ?.). ? SQL Server 2005 ????? ????????? ???? ??????????? ?????????? ??????? ?? ????? ??????????? ???????. ??? ??????? ?????? ???? ???????? ?? .NET-??????????? ?????? ? ???? ??????? ? ???????????? ??????? ??????? ? ???????. ????? ???????????????? ?????? ????? ????????????-
???? ? ???? ?????? ??? ?????? ??????? CREATE ASSEMBLY
, ? ????? ??? ??? ???????????????? ?? ? ???? ?????? ??? ??? ???????????????? ?????????? ??????? ??? ?????? ??????? CREATE AGGREGATE
. ??????????? ????????? ???? ???????????????? ???? ?????? .NET. ? ?????????? ??????? SQL Server ????? ????? ???? ????????? ????????-
???????? ???? ?????? (?? ?????? ??????????), ?? ????? ??????? ? ???? ?????????? ??????. ? SQL Server ?????????? ?????? ???????????????? ???? ?????? ?????????????? ? ???????? ??? ?????????????? ???????? ???????? ???????? ????????????? ???????? (???????????? ?????? ? ???????????????? ??? ?????? ??? ????????? ???????). ? SQL Server 2005 ????????? ??????????? ????????? ???????????????? ???? ?????? ? ???? ??????? .NET ?? ????? ??????? ??????? ? ???????. ????? ??? ???? ????? ???????????? ??? ???????? ??????, ??? ??? ?????????? ? ???? Transact-
SQL, ??? ??? ???????? ?????????? ???????? ?????????? ? ???????? ? ?. ?. ??? ???? ????? ????? ???? ????????? ???????????????? ???? ??????, ????? ??????? ??????? ?????? .NET ? ??????????????? ??????? ??????? ? ???????, ????? ???????????????? ?? ? ???? ?????? ??? ?????? ??????? √лава 1 1
4
CREATE ASSEMBLY
, ? ????? ??????? ???????????????? ??? ?????? ? ???? ???-
??? ??? ?????? ??????? CREATE TYPE
; ???????? ??????????? ???????? (???????? ????????, ?????????, ???????????????? ???????) ? ??????????? ???? .NET. ? ??????????-
???? ??????? .NET ????? ????????? ?? ?????? ?????????? ??????? ? ???????????????? ???? ??????. ??????????? ??? .NET ????? ????????-
???? ? ? ???????? ??????????, ????????? ? ???????????????? ????????. ?????????? ???? ??????????? ?????? ?? ?????? ? ????????????????? ??-
???? ??????: ??????? ??????? ?????? .NET ? ????????? ??????????? ????? ? ??????????? ??????? ??????? ? ???????, ????? ???????????? ??? ?????? ? ???? ?????? ??? ?????? ??????? CREATE ASSEMBLY
, ? ????? ??-
???????? ?? ??? ???????? ???????????? ???????. ????????, ??? ???????? ???????? ????????? ? ?????????????? ???? .NET ??? ??????????? ??????? CREATE PROCEDURE ... AS EXTERNAL NAME
. ??????????? ????????? ? SQL Server 2005 ??? ? Web-?????? (Native XML Web Services). ??? ?????? ????? ???????? ??????? ????? ????-
?????? ?? SQL Server ???????? ?? ????????? HTTP ? ?????????? ??????? ? XML-??????????? ??????? SOAP. ?????????? ??????? ???????????? ????? ? ??????? SOAP/XML. ??? ???? SQL Server ???????? ??? ????-
??????? Web-?????? ? ? ????????? ??????????? ???????????? ?? ????? WSDL (Web Services Definition Language ? ???? ??????????? Web-
?????), ?? ???????????? ?????????? ?????????????? ? ?????????? ???-
??? ? ?. ?. ???????????? ????????? ? SQL Server ??? ? Web-?????? ????????: ?????????? ?????????? ? ???????????? ? ?????????? ??????? ????. Web-?????? ? ??? ????????, ??????? ?????????????? ??????????? ????? ???????? ??????????????? ??????? ??????????; ???????? HTTP, ??????? ???????????? ??? ????????? ? Web-???????, ????? ?????? ??? ?????? ? ???????????????? ? ??????????? ?????-
???????, ? ????? ??? ?????????? ??????????? ????????. ? ?????????? ????? ?????????? ?????????? ????????? ? ????????? ????????; ?????????? ??????? ????????, ????????? ? ?????????????. ????????, ????? ????????? ?????? ? SQL Server 2005 ?? ????????????, ??? ??-
??????????? Web-?????? ??????????? ??????? ??????? ??????. ??? ????? ?????????????? ? ?????????? ?????? ????? ????? ????????-
???? ??????????? ????????, ??????????? ??? ?????? Web-????????. ??? ????????? SQL Server 2005 ??? Web-?????? ?????????? ?????????? ????? ??????????? ?? HTTP (HTTP Endpoints). ????? ????? ??????????? ????????? ? ???? ?????? ??? ?????? ??????? CREATE ENDPOINT
. ??????? ќбзор новых возможностей SQL Server 2005 1
5
??????, ??? ??? ?????? ? ???? ??????????? ??????????? ??????? HTTP.SYS, ??????? ???????????? ?????? ? Windows Server 2003 ? Win-
dows XP SP2. ??????? ????? ??????????? ????? ?????????? ??? SQL Server 2005, ?????????????? ?? Windows 2000. ????? ??? ?????? XML
. ?? ????? ?????????????? ??? ???????? ???????-
??? XML ? ?????????? ?????????? XML (?. ?. ??????????, ??? ??????? ?? ???????????? ???????? ???????) ? ???????? ??????. ????? ????, ???? ??? ?????? ????? ???????????? ??? ?????????? Transact-SQL, ??? ???????-
??? ???????? ???????? ? ??????? ? ?. ?. ??? ????? ???????????? ??? ???????? ?????? ? ??????? XML ???????? ?? 2 ?????. ???????, ??? ??? ????? ???? ?????? ? SQL Server 2005 ???????????? ???-
???????? ????? ???????, ??????? ?????????, ????????, ????????? ??? ????????? XML ??????? ?? ????? XQuery, ??????? ? ???? ????????? ??? ?????? ?????? ?? ??????????? ????? XML DML (XML Data Modification Language ? ???? ????????? ?????? XML) ? ?. ?. ????????? ??? ???????? ???????? ?????? ? ???? ?????????? XML. ? ?????????? ??????? SQL Server ????? ???? ?????????? ????????? ??-
??????? ???????? ???????? ?????? ??? ?????? ?????? ??????????????. ? ???? ?????? ????? ???? ??????? ???????????? ????? ????????? ? ???-
?????? ????? ? ? ??????? SQL Server, ??????? ?????? ?????? ??????? ? ?. ?. ? SQL Server 2005 ??? ???????? ???? ?????????? ????? ????????-
???? ????? XML (??????? ????? ??????? ??????? ??? ????????????? ??? ?????? ??????? bcp
). ??? ???????? ???????? ?????? ?????????? SSIS (SQL Server Integration Services) ????? ?????????? ? ????. 10.8. ??????????? ?????????? ??????????? TRY ... CATCH
??? ????????? ?????????? ? ???? Transact-SQL. ?????? ??????, ??????? ????????? ? ???? ?????????? ?????? Transact-SQL, ????? ????????????? ? ????????-
???? ??? ?????? ??? ?? ?????????????? ???????????, ??? ? ? .NET-
??????????? ??????, ????????, ? C#. ?? ???? ????? ??????????? ??????-
???? ??? ????????, ??? ? ?????????? ????????? ??????????. ????????? ????????????? ???????? ??? ??????. ? SQL Server 2005 ????????? ????????? ????? ????????? ?????????????, ??????????????? ??? ????????? ?????????? ?? ???????? ??? ??????. ???????? ??? ?????-
???? ????????? ??????? ?? ?????????? ?????? SQL Server (???? ?????-
?? ????????? ?????? ?????????? ????? ??????), ????????, sys.sysobjects
, ?? ?????? ?? ??? ??????? ????????? ? SQL Server 2005. ????? ??????? ???????????? (
RANK()
, DENSE_RANK()
, NTILE()
? ROW_NUMBER()
). ??? ??????? ????????? ?????????? "????" ??? ?????? ?????? ? ???????????? ?????? ?? ????????? ? ??????-?????? ????????, ????????, ? ????? ??????? ??? ?????????. √лава 1 1
6
????????? OUTPUT
??? ?????? INSERT
, UPDATE
? DELETE
. ? ??? ??????? ????? ??????? ????? ???????, ??? ??????? ???? ??????????? ???????? ???????, ????????? ??? ????????. ???? ???????????? ????? ?????? ??-
?????????? ??? ????????????????, ?????????????? ????????, ?????? ?????????????? ????????? ? ??????????? ? ?. ?. ??????????? max
??? ????? ?????? varchar
, nvarchar
? varbinary
. ??? ????????????? ???????????? max
??? ???? ?????? ????? ?????????????? ??? ???????? ?????????? ???????? ?? 2 ?????. ??????????, varchar(max)
???????? ??? ?????? text
, nvarchar(max)
? ntext
, ? varbinary(max)
? image
. ???????????? ???? ?????? text
, ntext
? image
????? ?????????, ?? ?????? ??? ??????????? ???????? ?????????????. ????????????? ?????? ??????? ???????? ??, ??? ? ???????? ?????????? ? ????????? ????????-
?? ?????? ????? ????????, ??? ? ???????? (???????? ?? ??? ?????? ???-
?????, ?????????? ????????? ???????? ????????? ???????? ? ?. ?.) ????? ????????? ????????? (Common Table Expression). ??? ?????-
?????? ????? ???????, ??????? ???????????? ??? ?????????? ??????? ? ????? ???? ??????????? ? ???? ??????? (????????, ??? ?????????? ? join
). ?????? ? ?????? ?????????? ??????????? ????? ?????? ?? ?????? ? ?????????? ?????????, ?????? ????? ????????? ????????? ?????. ??-
??????, ? ?????? ? ????? ????????? ????????? ????? ?????????? ??-
??????? ??? ? ?????? ?????? ???????. ???????? APPLY
. ???? ???????? ????????? ??????? ???????, ?????????-
??? ????????? ????? ???????, ??? ?????? ?????? ?? ?????? (??????? ???????) ? ???????? ?? ???????? ?? ??????? ???? ???????. ???????? APPLY
????? ???????????? ? ???? ?????????: CROSS APPLY
?????????, ?????????? ?? ??? ????????? ??????? ???????? ????? ????????, ? ???? ??, ?? ?????????? ? ???????????? ????? ??-
????????? ?????? ?? ??????? ???????; OUTER APPLY
?????????? ??? ?????? ?? ??????? ??????? (? ?? ?????? ??, ??? ??????? ????????? ??????? ??????? ???????? ????????). ?? ???? ????????? ??????? ?????????? NULL
, ?? ? ??? ???????, ? ??????? ????-
?? ????????????? ?? ????????, ????? ????? ???????????? NULL
. ????????, ??? ?????? ????????? APPLY
????? ?????? ?? ???? ??????? ??????? MyTable
, ??? ?????? ?????? ???????? ???????? ?? ??????? Column1
???? ??????? ??????? MyFunction
? ???????? ? ?????????? ?????? ?? ????-
?? ?? MyTable
, ??? ??????? ??? ??????? ?????????? ???????? ????????: SELECT * FROM MyTable CROSS APPLY MyFunction(MyTable.Column1); ????????? PIVOT
? UNPIVOT
. ??? ????????? ????????? ?????? ??????? ??????? ? ?????? ? ???????????? ???????????, ??? ????? ???? ????? ќбзор новых возможностей SQL Server 2005 1
7
?????? ??? ???????? ??????? (???????? ??????? ? ???? ???????????? ???-
??? ? cross-tabs). ? ???????? ?? ?? ????? ????? ???? ??????? ? ? ???-
??????? ??????? SQL Server, ?? ??? ????? ????????????? ?? ??????? ???-
???????? ??? ?? ????? Transact-SQL. ? SQL Server 2005 ?? ???? ??????-
????? ?????????? ???? ?????????? ?????????? ????? ???????? ??????????? ???????????. ??????????? ?? ?????????? ? ???? ?????? (Query notification). ??? ??? ???? ????? ? ????? ??????? ??????????? SQL Server 2005, ??????? ?????-
???? ??????????? ????????? ? ???????? ???? ?????? ? ??????????? ?? ??? ?????????. ??????? ?????? ????????????? ?????? ??????????? ???????? ???: ???????????, ??? ???? ?????????? ?????? ?????????? ?????-?? ?????????? ?? ???? ??????, ????????, ?????? ???? ?????????? ? ?????? ?????? ?? ???????. ??????, ??????? ?????????? ??? ??????????, ????-
???? ?????????? ????????????, ? ?? ?????????????? ? ???, ????? ?????-
???? ??? ??? ????? ????. ??????? ??????????, ???????? ???? ??????, ??-
?????????? ???????? ?? SQL Server 2005 ?????? ?? ???????????. ????? ??? ?????????? ???????????? ?????? ???????????? ???????. ??? ?????? ??????, ??????? ?????????????? ? ???????, ????????? ?? SQL Server, ???-
??????? ????? ?????? ??????????? ?? ?????????. ??? ??????? ??? ? ??-
?????? ?????? ??????. ??? ?????? ? ????????????? ?????????? ????????? ?????? Service Broker ??? ???? ??????. ?????????? Notification Services (???????????? ???-
????????? ?????????? SQL Server 2005) ??? ??????????? ? ???????? (event notifications) ?? ?????????. ????????? BULK
??? ??????? OPENROWSET()
. ? ??? ??????? ??????? OPENROWSET()
, ??????? ??????????? ?????????????? ??? ????????? ? ???-
?????? ?????????? ??????, ?????? ????? ??????????? ? ??? ???????? ???????? ?????? (bulk load) ?? SQL Server. ??? ???? ????? ????????? ??? ??????? ????????? ????? ???????, ??? ? ??????? ???????? ? ????????? ??????. ??? ???? ???? ? SQL Server 2005 ???????????? ??????????? ??? ?????????? ???????? ??????? ? BULK Provider. ??????????? ?????????? TOP
????????? ????????? ? ?????????????? ? ???????? INSERT
, UPDATE
? DELETE
. ?????? ??? ????? ????????? ????? ???? ????????? ?????? ???????? ????????. ?????? ??? ????? ?????????? ?????????, ??????? ????? ??????????? ? ?????? ?????????? (????????, ??????????). ?????? ???????? TOP
????? ???????????? ? ? ???????? INSERT
, UPDATE
? DELETE
, ????????, ????? ???????? ?? ????????? ??????? ?????? ? ?????? ????? ??????? ??????????. ???????? AT
??? ??????? EXECUTE
. ???? ???????? ????????? ????????? ???????? ????????? ?? ???????????? (linked) ???????. √лава 1 1
8
????????? TABLESAMPLE
. ??? ????????? ????????? ??????? ?????? ????-
???????? ?????????? ????? ? ?????? ???????. ??? ????? ??????????????, ????????, ??? ??????? ????????, ??????? ? ??????? ?????? ?????????? ??????? ?????????? ??????. ????? ??????? ??????? ?? ?????? ????? ????-
???, ??????? ????? ???????, ??? ???? ??????? ?????????? ???????. ? ??????? ?? ????????? TOP
, ???????????? ???????? ????????? ????????. ????????? SET NULL
? SET DEFAULT
??? ?????????? ?????????? ??????. ?????? ? ????????? REFERENCES ??? ???????? ??????? ????? ???????, ????? ????????? CASCADE
, ??? ? ??? ??? ????????. ???????? SET NULL
????-
????, ??? ??? ????????? ?????????? ?????? ??? ???????? ? ???????? ? ???????? ??????? ????? ??????????????? ???????? NULL
, ? ???????? SET DEFAULT
? ???????? ?? ?????????. ?????? ??????????? ?? ???????????? ?????? ?????? ? ??????? ? 8060 ????. ???? ?????????? ??????? ? 8060 ???? ???????? ??-?? ?????? ? ???????? nvarchar
, varchar
, varbinary
? sql_variant
, ?? ?????? ??? ?????-
?? ??? ????????? ?????? ?? ?????????. ???????? ?????????? ???? ???-
???????? ???????? ??? ??, ??? ? ??? ?????? ?? ????????? text
, ntext
? image
: ?? ????????, ????????????? ???????, ?????????? ?????????, ? ???? ?????? ???????????? ?? ?????? ????????. ????? ??????? ????? ??????? ??????????????????, ??, ? ?????? ???????, ? ????????? ????????? ????? ????????? ????? ???????. ??????????? ????????? ????? ?????????? ??????? ??? ???????? ??-
??????? ? ????? ??????? (??????????? ?? ???????? ? plan guides). ??? ????? ??????????? SQL Server 2005 ????? ?????????? ??????????????? ? ????????????, ??????? ???????? ? ??? ???????? ????????????. ??? ???-
????? ????? ?????????? ?? SQL Server 2005 ????????????? ???????? ???-
?????? sp_create_plan_guide
. ????????? ??? ??? ? ??? ?????? ? ??????? ?????????? ???????? ????? ?????????????? ? ????. 11.5.7. ????????????? ?????????????? (forced parameterization). ??? ??????-
??????? ???? ??????????? ????? ???? ???????????? ????????, ??????? ?????????? ??????? SELECT
, INSERT
, UPDATE
??? DELETE
, ????? ???????????? ??? ????????. ? ????????? ????????? ??? ?????????? ????? ??????????-
??? ?????????????? ????? ???????? ??????? ? ?????????????????? ?? ???? ???????? ????????? ?????????? ?????? ?????????? ?????? Trans-
act-SQL. ???????? PERSISTED
??? ??????????? ????????. ???? ???????? ?????-
???? ???????????? ???????? ??? ????? ??????????? ???????? ?? ? ?????? ?????????? ???????, ? ??? ????????? ?????? ? ???????. ???? ??????? ? ??????????? ??????? ????? ??????????? ???????????? ????????, ?? ????? ??????? ????? ????????? ????? ???????. ? ?????????? ??????? SQL ќбзор новых возможностей SQL Server 2005 1
9
Server ??????? ???????????? ???????? ??? ??????????? ???????? ????? ???? ?????? ??? ?????? ??????????????? ?????????????. ????????????? ???????? ?????? ??????????? MARS (Multiple Active Result Set). ??? ????? ???????????, ??????? ?????????????? ?????????? SQL Native Client, ? ????????? ????????? ????????? ????? ?????? ????-
???? ?????????????????? ?????? ?????????? ??????????. ?? ????? ????? ?????: ?????????? ????? ???????? ????? ??????, ?? ????????? ???????? ??????????? ???????????. ?????????? ??????? ?????? ????? ???????-
???? ? ??????????? ??????. ?????????? ???????????? ??? ??????? ????????. ? SQL Server 2005 ????????? ??????????? ??????????, ??? ?????? ????? ?????????? ?????-
????? ?? ???????? ???????: ?? ?????? ??????? (
ALLOW_ROW_LOCKS
) ??? ?? ?????? ??????? (
ALLOW_PAGE_LOCKS
). ??? ????????? ???????????? ??? ???-
????? ??? ????????? ??????? ??? ?????? ?????? CREATE INDEX
? ALTER INDEX
??????????????. ????? ??????? ????? ?????????? (?? ?????? ????-
???) ?????? ?????? ???????? ??? ?????? OLTP, ? ?????????? ?? ?????? ??????? ? ??? ???????? ??????. ??????? ??? ???????? ? ????? ?????? XML
. ???? ??????? ? ????? ???-
??? XML
????? ???????? ????? ???????????? SQL Server. ??????? ??? ????? ???????? ????????? ???????? ???????? ?????? ? ??????. ???????, ??????? ?????? ???? ????? ? ????????? ? ?????????, ????????? ?????-
??????????? ????? ????????? XML, ???? ? ??? ? ????????? XML, ?????-
??? ????????? ? ?. ?. ????? ????? ???????????? (optimizer hints). ??? ????????? ????? ???-
?? ?????????? ???? ? ??????????? ?????????? ????????. ? SQL Ser-
ver 2005 ????????????? ?????? ????? ?????: RECOMPILE
? ???? ?????????? ?????? ??????? ?? ????? ?????????????? ???????? ??? ??????????? ????????. ?????? ????? ???? ??????????? ??? ????????, ????????? ??????? ?????????? ????? ??????, ? ??????-
?????? ???? ????? ????????? ?????????????; OPTIMIZE FOR
? ????????? ?????????????? ???? ?????????? ??? ???-
??????? ???????? ????????????? ????????? ??? ???????; USE PLAN
? ???????????? ??????? ???????????? ???? ?????????- ??? ???? (??????? ??? ???? ? ???? ?????????? ???????? ? ??????? XML); PARAMETRIZATION
? ????????? ?????????????? ??? ??????? ????? ????-
??????????, ???? ??? ?????, ??????? ?????????? ?? ?????? ???? ???? ??????, ??? ??????? ??????? ???????????. √лава 1 20 ?????????? SQL Server Native Client. ???? ????? ??????????? ?????-
???? ??????????? ???????????? ????? ?????????? ??? ??????? ????????? OLE DB, ??????? ????????? ???????????? ????? ??????????? SQL Server 2005, ????????, ????????????? ???????? ?????? ??????????? (Multiple Active Result Set, MARS), ????????? ???? ?????? XML ? ?. ?. 1.3. Ќовые возможности SQL Server Integration Services (DTSX) ??? ????????? ?????? ? ????? ?????? DTS, ??????? ? SQL Server 2005 ????-
?????? SQL Server Integration Services (SSIS, ???????????? ????? ???????? DTSX), ??????? ?????????? ??????, ????????? ????? ???????? ??? ????????-
??. ????????? ?????? ??????? (?????? ?????? ? ??? ????? ? XML-?????-
?????? ???????), ?????????? ????? ?????????? ??????? (?????????? ??????? ???????????? ?? ????? Business Intelligence Development Studio, ?. ?. ???????-
??? ?? Visual Studio.NET 2005), ?????????? ????? ?????????? ??????? ? ?. ?. ??????? ????? ?? ??????? ?????? ????????? ????? ???????? ?????? ???-
???????? SSIS. ????????? ?????? ? SSIS ????? ??????????????? ? ??. 10. ?????????? ??????? SSIS ?????? ????? ??????????? ??? ??????????? ? SQL Server. ?????????? ?????? ?????? SSIS ? ??? ??????????? ??? ??????? Visual Studio, ? ?????????? ??????? ?????? ????? ??????????? ? ?????????? ??????, ??? ??????????? ? ?????????? ??????. ????????? ?????, ????? ?????? ???????? ??? ????? ??????? ? ???-
????????????? ?????? ???????. ?????? ??? ???? ???? ????? ????????-
???? ??? ??????????? ???????? Visual Studio, ??? ? ?????????????????? ???????? SSIS (Data Viewers ? ???????????? ??????, Log Providers ? ????? ????????? ??? ??????? ?????????? ?????????? ??????? ? ?. ?.). ???????? ????? ????? ????????? ??? ?????????? ??????? ?????? ??????? (Control Flow Tasks). ??? ?????? ???? ????????? ????? ?????? ?????????? ??????????? ?????? ?????????? ???????. ????????, ??? ??-
???? ?????????? Foreach Loop ????? ????????? ???????????? ?????-
??? ? ?????? ?????? ?????-?? ????????? (????????, ? ??????? ?????? ? ????????), ??? ?????? ?????????? For Loop ? ????????? ???????? ? ?????, ???? ????????? ???? ??????? ?? ?????? FALSE
, ? ?. ?. ? SSIS ????????????? ??????? ?????????? ????? ?????. ? ?? ????? ??????: Data Flow Task, Script Task, XML Task, File System Task, Web Service Task, WMI Data Reader Task, WMI Event Watcher Task ? ?. ?. ? ??-
???????? ???????????????? ??????? SSIS ??????????? ????????. ќбзор новых возможностей SQL Server 2005 21 ?????? ??????? SSIS ????? ?????????? ? ???????????? ????? (????? ????????????, ????????????? ?????? ? ?. ?.). ????? ??????????? ??-
??? ????????? ????? ??????? ??? ?????? ? ??????? ??????????? ??????. ?????? ?????? ????? ???????? ?? ?????? ??? ?????? ???????, ?? ? ??? ?????? ????? ???? ?????? MSDB. ????? ????, ????????? ????? ??????????? ? ?????? ??????? ?? ????????? ??? ?????? ???????? ????????. ??? ?????? ?????????? SSIS ? SQL Server 2005 ????? ?????? ????? ????-
??? ?????? ?? ??????????? ? ?????????????? ??????. √Ћј¬ј 2 ѕланирование и установка SQL Server 2005 2.1. ѕланирование установки SQL Server 2005 2.1.1. ќценка архитектуры приложени¤ на основе SQL Server 2005 ??? ????? ????????????? ??? ???????????????, ??????? ?????? ?? ????? ????????? ??????? ???????????? ????, ?? ????? ????????? ????? ???????? ??????????. ??? ???????, ?? ?????????? ??????????? ??? ??????? ??????? ?? ?????? SQL Server 2005. ?????? ??? ?????? ?????????? ? ????????????, ?. ?. ????? ???, ??? ??????????? ????????????? SQL Server 2005, ??????????-
???? ???????????? ????????????? ????????? ????????? ???????, ????????? ? ???????????? ??????????. ????? ??????? ??????? ????? ?????? ? ?????-
????????? ?? ????? ?????????? ? ????????????, ??? ???????? ?????? ????-
????? ? ?????????? ???????. ? ?????? ?????????, ?? ?????????? ??????, ????????????, ????????, ?? ??????????? ???????????. ???? ???????? ????? ??????. ???????????, ??? ? ???????????? ??????? ??????? ??????, ????????, ?? ????? ???????????? ???????????. ??????? ????? ?????????? ? ???? ?????? ?????????, ? ????-
???????? ???????? ?????? ?????????. ?????? ???????? ?????, ? ????? ????? ?????????? ????????? ?????????? ???????? ????????, ???????????? ??????-
?? ??????????: ??????? ??????????? ????? ?????, ?????? ?????????? "?? ????" ?? ??????????, ???????????? ??????? ????? ???????? ????????? ????? ? ?. ?. ????????????, ???????, ?????? ????, ?? ?????? ?????-?? ????? ????-
?????????? ?????????? ?? ??????. ????? ?? ?? ???????? ???????? ?? ??-
???? ?????????? ??????????, ?????????? ??????????? ?????????????????? ???????. ??????? ???????? ???????? ???: ?????? ????? ?????????? ?????? ????????????????? ?????? ? ??????? RAID-???????? ? ??????? ??????? ??????????? ??????; √лава 2 2
4
??????? ? ??????? ????????????????? (? ?????? ??????? ???????? ???-
?????? ??????????????); ???????????? ???????? (???????? ? ???????? ??????, ???????????? ??????? ??????? ? ?. ?.) ??????????? ?? ????????? ?????; ?????????????? ??????????? ????????????? (????????, ??????????? ?? ODBC ?????????? ?? ??????????? ?? OLE DB); ??????? ????????????? (????????, ??? ?????? ?????? ????????????) ????? ?????? ??????? ?????????????. ??????? ??, ??? ??? ???????? ????? ?????? ????????? ??????. ??????? ??? ?????-?? ?????, ?????? ?? ??? ??????????, ? ???? ?????? "???????" ??????-
??????. ??????? ???????? ??????????? ? ???, ??? ? ??????? ???? ?????? ???-
????? ?????? ?????? ?? ?????? ?????????, ???????? ???????? ? ?. ?. ????-
???????? ??????? ? ??? ??????? ?? ?? ??????? ???? ?????? ?? ?????????? ??????. ???????? ??????? ??????? ???????? ???: ???? ?????? ???? ????????? ?? ???. ??? ???? ?????? ???? ?????? ?????? ????????? ?? ????? ??????? (??? ????-
?????????? ?????????? ??-???????). ??????? ???? ??????, ? ??????? ????-
???????? ????????? ??????? ???????? (??????? ?????????? ? ????? ????-
?????, ????????? ??, ????????? ??????? ?????? ? ?. ?.), ?????????? ????? ?????? OLTP (OnLine Transaction Processing ? ??????????? ????????? ????-
??????). ?? ?????????? ?????? (??? ? ?????, ??? ? ?????, ??? ? ??????? ? ?. ?.) ?????????? ? ?????? ??????????? ??????????? ? ?????? ???? ?????? ? Data Warehouse (????????? ??????). ?????? ??? ???? ???? ???????????? ?????? SSIS/DTS. ?????????? ? Data Warehouse, ??? ???????, ???????? ?????? ?? ?????? ? ??-
?????????? ???: ???????????? ???????; ????????? ????????????? ?????????? (????????, ??? ???????? ??????-
??? ?? ???????????? ?????-?? ??????? ????????? ?? ??????????????? ??????). ????? ??? ??????? ?? ?????? ?????? ?? Data Warehouse ???????-
???? ??? ???? ???? ?????? ? OLAP (OnLine Analytical Processing ? ???-
???????? ????????????? ????????? ??????), ??? ?????? ?????? ????????-
???? ???? ? ?????????????????? ??????? (?? ??????, ?? ???????, ?? ???-
???????? ??????? ? ?. ?.). ?? ???????? ?? ?????? ??????? ? ?????? ?????? OLTP/Data Warehouse ???? ????? ?????? ??? ?????? ????????? ?????? ???? ??????, ? ???????? ????? ????, ? ??????? ??????????? ??????? ?? ??????. ? ?????? ??????? ?????? ??????? ?? ??????? ???? ??????, ?? ??? ???????? ??????? ???????, ??-
??????? ??? ?????? ????? ??? ????????????? ? ?????? ??????????. ѕланирование и установка SQL Server 2005 2
5
??? ??? ??????? ?????? ????? ???????????, ???? ? ??? ???????? ??????? ? ?? ????? ?????????????? ?????????? (??? ???? ?? ??? ????? ? ?????????-
???). ???? ?? ?????? ???????? ??? ????????? ??? ? "???????" ???????? ????-
??? ? ??????????????? ??????????, ?? ?????? ?? ????? ????? ??????. ?????? ????????, ? ??????? ???? ????? ???????? ?????: ????? ?? ? ????? ????? ?????? ???????? ????????? ?????????????? ????????????, ????????, ?? ????????, ?? ????? ????????????, ?? ???? ? ?. ?. ???? ??, ?? ????? ????-
?????? ????????????? ???????. ?????? ???????????? ????????? ????????: ?????????? ???????????? ?????????? (Microsoft Terminal Server ??? Citrix). ?????????????? ???? ?????????? ???????? ????????????, ?????-
????? ????????????? ????????????? ?? ???????????????? ?????????? ?????????? ?????????? (????? ??????? Terminal Server), ?????? ????????-
??? ? ?????? ????????????? ????????? (??? ????????????? Citrix). ? ??????????? ????? ??????? ??, ??? ???????? ????????? ????? ?????-
??????? ?????????? ??? ????????? ??-?? ???????? ????? ????, ?? ??? ??-
????? ?????????????? ???? ?? ??????. ????? ????, ?? ??? ?????????? ???-
??????? ???????? ??? ??????? ????? ???????????? ??????; ?????????? Web-?????????? (??????? ????? ???????????? ? ??? ????-
????????? ? ????????? ????). ? ??????????? ????? ??????? ????? ??????? ???????????? ????????????? ?????????????? ?????? ??????? HTTP, ??-
??????, ?????????? SSL (Secure Socket Layer); ?????????? ??????????. ???? ????????????? ? ??????? ?????, ? ??????? ?????????? ? ???? ???????? ???????????, ??, ????????, ???? ????? ????-
?????? ? ??????? ????????? SQL Server ? ????????? ?????????? (?? ?????????? ?????) ? ??????? ????????. ???????? ??? ???? ?????? ??? ??? ? ??????? ?? ????? ??????. ??? ???? ????????????? ??????, ??? ??????? ????? ???????? ? ????? ?? ????????? ?????????? ?????? ?????????? ?? ?????? ???????????. ??????? ??????????? ??????????, ??????? ????????? ?? ?????? SQL Server, ????? ????????? ?? ??? ??????: ??????? ?????? ? ???? ??????? ? ???????, ???????? ??????????? ????-
??????? ?????? ? ?????? ??????????, ??????? ??????????????? ??????? ? ????????? ??????; ??????? ??????-?????? ? ??, ??? ??????????? ???????? ?????? ?????-
?????, ????????, ?????????? ?????? ?????? ??? ???????. ???? ????? ???? ??????? ??????????? ??? ?????? ???????? ????????, ???? ????? ??-
?????????? ? COM-??????????, ? ?????????? ??????-?????? ?? ???????; ??????? ????????????? ?????? ? ????????? ??? ????????????? ?????? ????????????. ???? ????? ???????????? Windows- ??? Web-??????????. √лава 2 2
6
?? ?????? ???????????? ???????? ??? ?????????? ?? ????????? ????????-
??? ???, ????????, ?????????? ?? ????? ??????????. ??? ???? ??????? ???-
?????? ?? ????????: ??????????? ??????????????????. ?? ????? ?????? ????? ????? ??-
?????? ? ??????? ?????? ????? ???????? ??????-?????? ?? ?????? ??????; ??????????? ??????????????????. ????????, ??????? ???????????? ??????-?????? ??? ????????????? ?????? (???????????? ???????, Web-
???????) ????? ???? ?????????, ? ? ?????? ?????? ?????? ?? ??? ????????-
???? ????? ?????????? ?????? ? ?????? ????????; ??????????? ????????????. ????????, ???? ? ?????? SQL Server ?????? ?????? ?? ????????? ????? Web-??????????, ??, ???????, ?????????? ??-
??? ????????? Web-?????? ?? ????????? ?????????? ?? ????????? ? SQL Server. ??? ??? ??????? ????? ?????? ?????????? ? ???????????? ?????????????? ?????????? ??????????? ?????????. ??????? ??, ?????????? ????? ???????-
?? ?????? ????????, ?? ??????? ??????? ???????? ????????, ?? ? ??? ???? ?????? ? ????????? ????????. 2.1.2. ¬ыбор оборудовани¤ ?????????, ??? ????????? ??????? ??????????????, ? ??????? ?????????? "??????" ??? ?????? ???????. ???? ???????, ??? ??? ???????, ???????, ?? ????? ?????????? ??????. ??? ??-
???-?? ????? ?????? ?????????? ???????? ????????????? ??????????, ????-
??? ????? ????????? ? ???? ??????? (????????, ??? ??????????), ? ??? ?????? ????? ?? ?????? ???????? ????????? ??????? ????? ????????. ????? ???????-
??? ?????? ????? ? ??? ???????? ?????????? Performance Monitor/System Monitor ?????? ???????? (????????, ??????????? ??????) ?? ?????? ???????-
?? ???????????? ? ???????? ?????????? ???????? ?? ?????????? ????????? ????????????? (??? ???? ???? ?? ?????? ??? ??, ??? ?? ?????????? ? ??????? ????? ???????????). ????? ????? ??????????? ??????????? ???????? ??? ???????? ?????????? ??????????? ?????????? ??????????? ????????, ??-
??????, SQL Hammer ?? SQL Server 2000 Resource Kit. ????? ????? ??????????? ?????? ?? ????????? ???????????? ??????? ? ?????-
???? ??????????? ?????????? ??? SQL Server 2005 ? ? ?????????? ??????-
???????. ?????? ?????????? ? ?????????? ???????????? ??????????. ??????????? ?????????? ??? ???? ???????? SQL Server 2005 ? Pentium III 500 ???. ??? ???? ?????????? ? ???? ?????????? (?? ???? Pentium III) ???????? ?????????-
???, ? ?????????? ? ??????? ? ??????????? (????? ?????? ??????????????, ѕланирование и установка SQL Server 2005 2
7
?? ????????? ????? ????? ??????????). ??????? ??, ?????? ? "????????-
???" ??????????? ???????? ???????????? ??? ?? ????????, ??????????????? ?????????? Microsoft ? 1 ??? ? ???? (??? ????? ???????? SQL Ser-
ver 2005). ?????????? ????????, ??????? ?? ??? ???????? ?????????? ?? ????? ?????-
??, ????? ??? ?????? ?????????? ???????? (???? ???? | ????????? | ????????????????? | ??????????????????). ???????? ??? ?????? ? ???-
?????? ????????? ? ??? ?????????? ????? ?????????????? ? ????. 11.4. ???-
??? ??????? ?????????? ?????????: % ????????????? ?????????? (?? ??-
???????? ?? ????????? ? ????????? ????????). ? ???????????? ? Microsoft ???????? ????? ???????? ? ??????? ???????????????? ?????????? ??????? (????????, ? ??????? ???????? ???) ?? ?????? ????????? 80%. ? ??? ??????? ???????? ?? ??? ???????, ??????? ??????? ? ???????????? ???????????. ?????????? 64-?????? ?????? SQL Server 2005, ???????, ???????, ?????? ??-
????????????? ?? 64-?????? ?????? Windows. ???????????? ??????????, ??? ????????????? ???? ?????? ????????????? ???? ???????? ??????? ? ??????????????????. ?? ??????? ?????????, ??? 64-?????? ?????? SQL Server 2005 ? ??? ?????????? ?????? ???? ???? ??????. ???? ?? ?????????-
???? 64-?????? ??????? ????????????????? (???? ???????????????? ????? ?????? ???????? ? 32-?????? ??????? ???????), ????? ?????????? ?????? ??????????? ?????????? SSIS, ?????? ?????????? ??????????? ???????-
???, ?????? ?? ?????????????? Reporting Services, ??????????? ????????? ?????? ??????? ????????? ? ?. ?. ??? ??? ??? ?????? ????????? ??????????? ?????????, ??????? ?? ??? ?????? SQL Server ? ?????? ?????????????. ?????? ?????????? ? ??? ?????????? ??????????? ??????. ??????????? ?????????? ? ??????????, ?? ??????? ??????????????? SQL Server 2005, ? 512 ????? ??????????? ??????, ??? SQL Server 2005 Express Edition (?????? MSDE) ? 192 ?????. ??? ??????????? ???????? SQL Server 2005 ????????-
?? ???????????? ??????????? ?????? ???????????? ?????? ????????????? ???????????? ???????, ?? ???? ? ??????????: SQL Server 2005 Express Edi-
tion ?????????? ?? ????? 1 ????? ??????????? ??????, ? SQL Server 2005 Workgroup Edition ? ?? ????? 3 ?????. ? SQL Server 2005 ?? ???? ????????? ????????????? ????????? .NET ?????-
????? ? ??????????? ?????? ?????? ?????????? ??? ??? ???? ???? ??????, ??? ? ??? ??????? ?????????????????. ?????????? ???????, ?????????? ?? ? ??? ??????????? ??????, ????? ??? ?????? ???? ????????? ?????????? ??-
??????: ??????: ????? ??????? ? ???. ???? ???????? ??????????, ?????????? ?? ?????????? ??????????? ?????? ??? ????? ?????? ??????????. ????????? √лава 2 2
8
?? ?????????? ????? ????????? ? ????? ???????? ? ???????. ???????? Microsoft, ??? ?????? ? SQL Server 2005 ??????? ???????? ????? ????????? ?? ?????? ????????? 10 ??? ???????????????? ?????????? ???????; SQL Server Buffer Manager: Buffer cache hit ratio (???????? ?????? SQL Server: ??????? ????????? ? ???). ??? ?????????? ???????? ??????-
???????, ??????? ????????????? ?? ???? ??????? ???? ?????? ??? ????-
????????? ????????? ? ?????? ?????? ?? ?????. ???? ???????? ??????-
????, ?????????? ?? ??????????? ?????? ?????? SQL Server 2005. ??? ?????? OLTP, ? ??????? ????????? ??????????? ??????????? ??? ???-
???, ???????? ????? ???????? ?????? ???? ?? ?????? 90% (????? ??-
???????? ????? ?????? ??? ???????? ????????). ??? ???????? ?????? ? ????? ? ?? ?????????? (???? ????????? ? ????? ???????? ??????? ?????-
??????? ??????) ?????????? ? ??????????? ?????? ????, ???? ???? ???-
??????? ? ???????? ??????????. ?????? ?????????? ? ????????. ??????????? ?????????? ?? ????????? ???????????? ??? ????????? ???? ??????????? ? ????? 700 ????? ? ??????- ????? ?? ????????? ?????? SQL Server 2005. ??? ???? ?у????? ????? ?????-
???? ???????????? (390 ?????) ????? ?? ??????? ???? ??????, ???????, ??-
?????, ?? ??????? ??????? ??? ?? ?????. ? ????? ?????? ?????? ?????????-
????????? ???????? ??????????, ??????? ??????? ? ????????? ???????? ??? ??? ? ?????????? ????: % ?????????? ?????, ?. ?. ??????? ????????? ?? ?????? ??????? ???????? ?????????? ?????????? ????????. ? ???????????? ? Microsoft ???????? ????? ???????? ?? ?????? ???????????? ? 100% ?? ???-
??????? ???????????????? ?????????? ???????. ? ??????????? ??????? ?????? Microsoft ??????????? ????????? ???????-
????? ???????? ??????? ??? SQL Server. ???? ??????????, ??? ??? ???????-
????? ????????????? ???????? ???????? ???????. ???????? ??? ???: ?????? ?????? (??????? ??? ??????? C:) ????????? ??? ????? ???????-
????? ??????? ? ??????????? ????? (? ????? ????????? ???? ???-
???) ?????? SQL Server 2005. ??????????????? ?????? ? ?? ???? 4 ????? (???????? ??????? ??????????? ??????? ??????????, ????? ??-
?????????? ? ?????????????? ????????????). ???????, ???? ?????? ?????? ???? ?????????????? ? NTFS. ???? ?????? ????????????? ???????? ?? ??? ????????????????? ??????? ????? (??????? ???????? ?? ??? ??? ????? ?? ?????, ? ??? ????? ??????? ?????? ?????????? ?? ?????? ?????? ?? ????? ?????? ?????); ?????? ?????? (??????? D:) ????????? ?????? ??? ????? ??????? ???? ?????? (??? ???????? ?????????? ??? ?????-?? ?????? ??????). ???????-
?????? ???????????? ??? ???? ??????? RAID-?????? ?? ???? 5-?? ??????. ѕланирование и установка SQL Server 2005 2
9
??????? ? ??????, ??? ? ???? ?????? ??? ?????? ??????? ?? ??????? ?????? ?????????? ???? RAID-?????? ? ??????? ??????? ? ???????????? ? ???? ???? ??????? ???? ??????. ???????? ????????????? ????? ????? ????????? ?? SQL Server Management Studio ? ???? Object Explorer (???-
?????? ????????), ????????? ??????? Attach (????????????) ??????????-
?? ???? ??? ?????????? Databases (???? ??????). ??????? ?? ????? ???-
????? ?????? ??????? ??????, ??? ?? ?????????????? ? ?????. ???? ?? ??????????? ??????? RAID-??????, ???????? ? ?????? ??????-
?????? ???????????? (Hardware Compatibility List, HCL) Microsoft ??? Cluster Services, ?? ?? ?????? ??? ??????? ??????????? ??????? ??? SQL Server 2005. ????????? ???????????? ?? ???? ??????? ?????? ???? ?????. ?????????-
???? ??????????, ??????? ????? ??????????? ????? ???? ?????? ? ?????? ?? ????? ? ????????? ????, ? ???????? ?????????? ????? ?? ???. ??-
???????????? ???????? ???????????? ????? ?????????? ??? ????????? ??? ??? ?????????? ???????? ??????????????, ???????????? ???????? ? ?. ?. ???????, ???? ?????? ?????? ???? ?????????????? ? ???????? ??????? NTFS. ??? ???????????? ?????????????????? ?? ????????????? ? ?????-
??? ????? ? 64 ????? (????? ??????????????? ??????? ???????? SQL Server). ??? ?????????????? ?????????? ???????????? ?????????? ????? ?????? ?? ??????? ? ???????? ???????????? ??????? FORMAT
?? ????????? ??????; ?????? ?????? (??????? E:) ????????? ?????? ??? ??????? ?????????? ??????? ???? ??????. ?????????? ?????? ???????: ????? ???????? ?????????? ?????? ?????????? ?? ?????? ?????????? ?????? ?? ??????-
??? ? ?????? ??? ??????. ?????????? ????? ??????? ???????? ? ?????? ?????? ????? ???????????? ???? ?? ????????? ?? ?????? ????, ? ???????-
????? ? ?????? ?? ?????? ???????? ????????? ????????? ?????. ????? ????????? ?????????? ????? ??????? ?????? ??????? ?? ?????? ??-
?????. ????????, ? ??????????? ?? ?????????? ? ?????????????????? ??? ????? ???? ?????? ???? ?????? ????? ??????? ?? ????????? RAID-
???????, ?? ???? ????????????????? ?????? ??? ?????? ?? ????? ??????? ????? (?????? ???????? ??????????, ???? ??????????? ????? ??????, ??????? ????????? ?? ???????? ? ?? ????? ????? ?????? ????????????? ??????, ???????? ? ????? ????????? ???? ??????). ?????? ????? ??????? ?????? ????? ??????? ?? ???? ????????: ?????? ???-
??????????? ???? ?????? (Full, Bulk-logged ??? Simple ? ??. ????. 4.5), ???????? ?? ??????? Files (?????) ??????? ???? ??????), ????????????? √лава 2 30 ???????? ????????? ? ??????? ?????????? ???????????. ????????????? ??????? ??????? ?????????? ??????? ??????????? ????????????? ???? ?????? (staging databases), ? ??????? ?????? ???? ????? ??????????? ?????? ?? ?????? ??????????, ????????? ???????, ?????????????? ? ?????, ????? ?????? ??????????? ? ???? ??? ? ????????? ??????, ?????????. ??? ????? ??? ?????? ????????? ?????? ??????? ?????????? ????? ??????-
?????? ? ??????? ????? ???? ??????. ??????????? ?????????? ? ????? ??????? ??????????? ??????????????? ????????? ??????. ??????? ?????? ?????? ???????? ?????????? ? ????? ?????? OLTP ? ????? 10% ?? ?????? ?????? ??????? ???? ??????. ? ??????? ???????? ???????? ?????? ??? ???????, ?? ??????? ????????? ??????? ??????????, ????? ?? ?????????? ? ?????? ???????? ??????. ??-
????? ?????????? ??????, ??? ???? ?????? ???????? ????????????? ? ???-
????? ??????? FAT ??? FAT32. ? ???? ?????? ???????? ?????? ????? ???-
?????????? ??????? ? ????? ????? ????????????????? ???? ??????. ????-
?? Microsoft ??????????? ???????????? ??? SQL Server ?????? ??????? NTFS, ?, ?? ?????? ??????, ??????-?? ????????? ???????? ? ?????????-
????????? ??? ????????????? FAT ??? FAT32 ?? ????????. ?????? ?? ??? ?????????? ?????? ????? ???????: ?????????? ?????? ?????? ? ????? ??????? ? ???????? RAID-????????. ???? RAID-?????? ?????????? ????? ????????, ?? ??????? ?????????? ???: ? ??????????? ?????, ? ????? ??? ??????, ? ????? ???????? ??????????. ??????? ??, ????? ?????? ????-
???? ????????????. ????? ?????? "??????" RAID-??????? ?? ?????? ???, ? ???????, ?? ?????? ? ???????? SCSI-???????????, ??? ????? ???????? ? ?????? ???? ??????. ????? ????, ??? ????? ??????? ????? ?????????? ???-
????? ? ????????????? ?????. ????????? ?????????? ??????? ? ???????. ? ????? ?????? SQL Server, ?????? ????? ?? ??????????? ??????????? ? ??????????, ????? ??? ?????????? ????? ?? ????? ??????. ????????, ????? ????? ??????? ????????, ??????? ??????? ???????? ?????????? ? ?????????? ??????? (Access, FoxPro, Paradox) ?? SQL Server, ???????? ??, ??? ???? ?? ??????????? ? ????????????? ?? ??????????? ??????????? ?????? MDB, DBF, DB ? ????-??????? ?? ?????????? ??????-
??? ? ???????. ? SQL Server ????? ??????? ?? ?????????. ???????????? ?????? ? SQL Server 2005 ?? ??????? ?????????? ?? ??????-
???, ?? ??????? ??? ???????? ????????. ???? ?? ?????? ???????????????????? ? ???????? ????, ? ??????? ????? ? ??? ???, ?? ??????????? SQL Server 2005 ?????? ???????????? ??????????? ???????? ???????? ???????? ?? Micro-
soft ? ??????? Microsoft ????????? ?? ???? (Microsoft Loopback Adapter). ?? ??????? ? ???????????? Windows NT 4.0, Windows 2000, XP ? 2003 (???. 2.1). ѕланирование и установка SQL Server 2005 31 ???. 2.1. ????????? ???????????? ????????? ???????? ???????? 2.1.3. ¬ыбор операционной системы и ее компонентов ?? ??????? ?????? ???????????? ??? SQL Server 2005, ???????? ???, ????-
???? ? ?????????? ? ?????????. ????????? ?????? ? ??????? ???????????? ??????? ? ?????????? ? ??? ??????????? ????? ???????????. ????? ??????, ??? ???????? ????? ? ??? ???????. ?????????? ?? ????????-
?????? ?????? Windows Server 2003. ???????????? ????? ?????????? SQL Server 2005 ? ?? Windows 2000 Server, ?? ?????? ????? ?? ?????, ????????? ??? Windows 2000 ??? ?? ????? ???????? ????????? ??????????? SQL Server 2005, ????????, Native Web Services (?????? ???????? ? HTTP End-
points, Web-??????, ??????????? ?????????? ?????? SQL Server 2005). ????? ????, SQL Server 2005 ????? ?????????? ? ?? ?????? ???????????? ???????. ??? ??????? ????????????? ?????? ?????? SQL Server 2005 ? ???-
??????? ???????? ? ??????-?????? ???????????? ?????? ?? ????????? ?? ????? (?? ????? ?????????? ? ????????????), ??????? ?????? ????? ?????? ???????: SQL Server 2005 Enterprise Edition ????? ?????????? ?? ?????? ?? Windows Server 2003 Enterprise Edition, ?? ? ?? Windows Server 2003 Stan-
dard Edition; √лава 2 3
2
??? ???????? SQL Server 2005, ????? Enterprise Edition (? ??? ????? Standard Edition), ????? ????????????? ?? ?????????? ???????????? ???-
???? ? Windows 2000 Professional ? Windows XP. ?????? ????????? ? ??????????? ???????????? ???????, ??????? ???????-
???? ??? ????????? SQL Server 2005. ??? ?????????? ????, ? 90% ??????? ?? ????????????? ???????????? ??????????????? SQL Server 2005 Enterprise Edition ?? Windows Server 2003 Enterprise Edition, ??????? ?????????? ???-
??????? ?????? ??? ???? ????????. ??????, ? ???? ????? ?????? ?????????? ???????????? ???????, ? ???????-
?? Service Pack 1 ??? Windows Server 2003. ???? ?? ?????????? ???????????? Reporting Services, ?? ????????? ???? ???-
????? ? ????????? Internet Information Server (????? ???? | ????????? | ?????? ?????????? | ????????? ? ???????? ???????? | ????????? ???-
???????? Windows). ? Windows Server 2003 ?? ?????? ? ??????? ??? ?????-
???? Application Server. ????? ??????????? Application Server, ???????????? ?? ????????? ??? ????????? ???????, ?????? ????????. ??? ????????? SQL Server 2005 ?? Windows Server 2003 ?????? ?????? ?? ?????. ??? ????????? ??????????? ?????????? ????? ????????? ? ???????? ????????? SQL Server 2005 ?????????????. 2.1.4. ¬ыбор редакции SQL Server 2005 ???????????? ??????? ???????????, ??? ??????????? ?????????? ???????-
??, ? ??? ?????? ? ?????? ????????? SQL Server 2005. ?????????, ??? ??? ??-
???????? ???????, ? ??? ??????????, ????? ???????? SQL Server 2005 ??? ?????. ? ????? ???????????? ??????? ?????. Enterprise Edition ? ??? ???????? ??????????? ?????? SQL Server 2005 (? ????? ???????). ?????????????? ??? ??????????? SQL Server 2005. ????? ??????????????? ??? ?? Windows Server 2003 Enterprise Edition, ??? ? ?? Windows Server 2003 Standard Edition. Enterprise Edition 120-day Evaluation ? ? ???? ???????? ????????????? ??? ??????????? ??????? Enterprise Edition. ?????????? ??? ???, ??? ??-
?????? ?????? 120 ????, ?, ????? ????, ?? ????? ?????????? ?? ?????????? ???????????? ??????? (????????, ?? Windows XP). ??? ???????? ????? ????????? ??????? ? Web-????? Microsoft. Developer Edition ? ??? ???????? ????? ???????? ????? ????????????? Enterprise Edition (?? ????? ??????????? ???????). ???, ??? ??????? ?? ??-
??????, ????????????? ??? ?????????? ? ???????????? ??????????. ??? ????????????? ?? ? ???????? ???????? ??????? ?? ???????? ??????????? ? ѕланирование и установка SQL Server 2005 3
3
????????????? ?? ?????????? ????????????? ???????????. ???? ?????? ?????????? ? ??? ?????????? ???? ????????? ??????? ???????? ???????, ?? ?? ?????? ???????? ??? ???????? ?? Enterprise Edition. Standard Edition ? ?? ????????? ? ???????? Enterprise Edition ??? ????? ??????? ? ????? ?????????????? ?????? SQL Server 2005. ?? ????????? ? Enterprise Edition ? Developer Edition ??? ?? ????????????: ???????? ????? ??? ?? ???? ?????; ????????? ?????? ??????????? ??????????? ??? ??????; ?????? ??? ??????; ???????????? ?????????? ???? ?????? ??? ????????????? AWE (Address Windowing Extensions ? ??????????? ????????, ??????? ??-
??????? 32-????????? ??????????? ???????? ????? ??? ? 4 ????? ???-
???????? ??????; ??? ??????????? ? ??????? ??????? ?????? ?? ???????????); ?????????? ??????????? ?????? ? ?????? ????????? ???????????? ??? ?????????? ???????; ??????????????? ????????? ???????????; ???????? ? ????????? (????????????, ????????? ?????????? ? ?. ?.) ??? ?????????? ?????????????; ?????????????? ???? ?????? ??? ?????????? ????????????? (??????-
??? ??????? ? ??????); ??????????????? ?????? ? ????????; ?????????? ?????????????? ????????????? (??? ?????????????, ????-
??? ?????????? ? ???????? ?? ?????? ????????; ???????????? ??? ??-
??, ????? ???????????? ????? ??????? ??????? ?? ?????? ????????); ????????????????? ????????? ???????? ? ????????? ? ???????? DBCC. ????? ????, ??? ???????? ????? ???????? ?? ????? ??? ? 4 ????????????. ?? ????? ????? ???????? ?? Enterprise Edition. Workgroup Edition ? ??? ????? ????????, ???????? ??????? ?? ???? ? ?????????? ??????? SQL Server. ??? ??? ???????, ? ? ??? ?????? ????-
???, ??? ? Standard Edition. ?? ????????? ?? Standard Edition ????? ?????-
?????? ??????????? ???????????? ?????? .NET ? ????? ?????????? Transact-SQL (????? ?????????????????? ??????????? SQL Server 2005), ? ?????? ?? ?????????????? ???????? ? ?????????? ??????????? ??? ???-
???. ??? ???????? ???????? ???????? ? ????? ???????????? ? 3 ????? ??????????? ??????. ?? ???? ????????? ??? ????????? Standard Edition. √лава 2 3
4
??? ????????????? ??? ???????? ????? ???????? ?? Standard Edition ??? Enterprise Edition. Express Edition ? ??? ?????????? ?????????? ?????? SQL Server, ??????? ?????? ?????????? MSDE (Microsoft Database Engine). ? ???????? ??? ??-
?????? ????????????? ??? ????????? ?????? ? "???????????" ???????-
?????. ??? ??????????, ?? ?? ?????????? ?????????? ????? ?????????-
??? ???????????. ??? ?????????????? ??? ???????????? ?????????? ??-
??????????? ???????????. ?????????? ?? ???????????????? ? ??????? ?????????? ??? ??????: ?????????? Express Edition ? ??? ?????? ???? SQL Server 2005. ?????? ? ???? ????????? ?? ???????????? ??????? ???-
???????? ???????? ?????????????????. ???????? ?? Enterprise Edition ??-
????????, ?? ????? ????????? ?????? ?? "??????????" ??????. Mobile Edition ? ??? ?????? ????????????? ??? ????????????? ?? ????-
?????? ???????????, ?????????? ? Tablet PC. ?????? ??? ???????? ??-
?????????? ????????? ? ????? SQL Server ????? ???? ?? ?????????? ??-
??????????? ?? ????? ????, ??? ????? ?????? ?????????? ??? ????????-
?????, ????????, ??? ????????? ?????? Access ?? ??????????. ?? ??? ??????????? ????????? ???????????? ????????. ???????, ???? ??????? ?????? ????????? ?????????? "???????" SQL Server. ?? ???????????? ????? ??????? ?????? ?? ?????????? ?????????? ????? ?????????, ??? ?? ??????????? ??????????? ??????????? ???????????? ?????? Enterprise Edition ??? ????? ?????? SQL Server. ?????????????? ? ???????????? ???????? ??? ?????? ?? ???????? "????? ????? ???" (????? ??????? ?????????? ?? ?? ?????? ???????), ? ????????????????? ?? ?????? ??????. ????? ?????? ???, ??? ??????????? Enterprise Edition, ?????????? ??? ?? Standard Edition, ????? ?? ???????????? ???????. ???????? ??? ????????, ? ?????? ????? ????? ??????????? ??????????? ?????? Enterprise Edition. ???? ?? ????????? ????, ????? ???????, ??? ???? ???? ?????? ?? ???? ????????. 2.2. ”становка SQL Server 2005 2.2.1. Ќесколько слов об установке ????????? SQL Server 2005 ????? ?????? ? ?????-?? ??????? ?? ????????. ???????? ????? ?????????? ?????, ????? ?????????, ??? ??? ????????? ???? ??????? ?? ?? ?????????. ????????? ?? ????? ??????? ????? ?????? ????? ??????, ??? ??????? ?????? ????? ????????????? ????????????? ???????. ? ???? ??????? ?? ????????? ?? ???????? ?????? ????????? SQL Server 2005 ? ??????? ????????? ???????, ??????? ????? ???????? ?? ???-
????? ??????? ??? ?????? ????????? ?????????. ѕланирование и установка SQL Server 2005 3
5
2.2.2. Ќачало установки. ¬ыбор набора компонентов ?????? ???? ????????? ????????????????. ????????? ????????? SQL Server 2005 ?????? ??????????? ?????????? ???????????? ??????? (.NET Framework 2.0) ? ???????????? ????? ?????? SQL Server 2005. ????? ??????????? ?????? ??????????? ????????? System Configuration Checker. ??? ????????? ??? ????????? ?? 12 ??????????: ?? ???????????? ??????????? ? ????????????, ? ???????????? ???????, ? ????????????? ??????????? ???????????? ??????? ? ?. ?. ?????????? ????? ??????????? ? ??? ??????? ? ???????????????, ??????? ??? ???????????, ????? ?? ???-
????? ???????? ?????? ?? ??? ?????????, ?? ??????? ????????????. ??? ??-
???? ?????? Report (?????) ????? ??????????? ??? ????????? ???? ? ????-
???, ??????? ?????????? System Configuration Checker. ????? ????? ??????-
???? ???? ????????? ???????????? ??????????? SQL Server 2005. ????? ????? ?????????? ? ???????????? ? ????????? ?????? ?????? ?????? ?????? ? ??? ????? ??????????? ??????????? (???. 2.2). ????? ????????-
??? SQL Server 2005 ??????????? ?????????? ?? ?????? ??????????? ? ????-
????????? ?????????? ?????? SQL Server, ??????? ?? ??????????????? ?????? ????? (????? ????? ??????? ?? ??? ???? ????????? ?????????? ?? ?????? ??? ?????? ?????? Advanced (?????????????)). SQL Server Database Services ? ??? ???? ???? ???? ?????? ? ??????- ?????? ??????? ????????? ??????? ????????? ?????????? ? ???????????-
???? ??????. ????, ?????? ?????, ??? ????? ?????????? (???? ?????? ?? ?? ??????? ???? ???? ??????? ????????????????? ?? ??????? ???????), ???????? ?????????? ????? ?????? ?? ??????, ? ?????????????? ????? ? ???????? ??????????? ?????? ???????????? ?????? ????? (????????? ????????? ???????? ????? ??? ??????????????? ?????? ? SQL Server 2005 ?? ?????????????). Analysis Services ? ??? ???? ??? ?????? OLAP, ??????? ????????????? ??? ?????? ? ???????????? ?????? ?????? ????????? ?????? (??? ? ??????? ????? ??????), ? ????? ???????? ????????????????? ??? ?????? OLAP, ???????????? ???????????? ? ?. ?. ???? ?? ???? ?? ??????????? ??-
???????? ?????? OLAP, ??, ?????? ?????, Analysis Services ??? ?? ?????. ? SQL Server 2000 Enterprise Edition ????????? Analysis Services ??????-
????? ?? ???????-????? ? ????????????? SQL Server, ?? ????????????? ??? ???? ???? ????????. Reporting Services ? ????? ?????????? ? ?????? ???????? ??????????? ????????????? ??????? ???????. ??? ?????? ????????? ?? ??????????? √лава 2 3
6
XML-??????????? ????? RDL (Report Definition Language ? ???? ????-
??????? ???????), ??? ????, ???????, ?????? ????? ????????? ???????-
????? ?????????? Report Designer. ???????????? ?????????? ? ??????? ????? Web-?????????. ??????? ??, ?????????? Reporting Services ????? ????????? ?????? ?? ?????? ??? ??????, ??????? ????????? ?? SQL Server, ?? ? ??? ????? ?????? ?????????? ??????, ????????? ?? OLE DB. Reporting Services ? ??? ????? ??????????????, ?????? ? ?????????? ???????, ?? ?? ????????? ? ???????? Access ??? Crystal Reports ????????? ???????????. Reporting Services ?? ???????????? ? ????????????? SQL Server 2000, ?? ??? ???? ?????? ??????? ?? ????? ????????? ??????? ? ????? Microsoft. ???. 2.2. ????? ??????????? SQL Server 2005 ??? ????????? Notification Services ? ??? ??????????? ?????????? ??? SQL Server 2005, ???????? ?????????? ??????? ? ?????????? ??????? ???? ??????????? (?????? ?? ??????????? ?????) ? ?????-?? ???????, ?? ??????? ??? ????-
??????????????: ????????? ? ????? ??????????? ?????, ????????? ?????, ?????????? ??????? ? ?. ?. ?????? ???????, ?? ??????? ????????? Notifi-
cation Services, ? ??? ????????? ? ??????? ???? ?????? SQL Server. ?? ???????? Notification Services ???????????? ?????????? ?????. ѕланирование и установка SQL Server 2005 3
7
Notification Services ?? ???????????? ? ????????????? SQL Server 2000, ??, ??? ? Reporting Services, ?? ????? ??????? ? ????? Microsoft ?????????. ? SQL Server 2005 ??? ?????? ????????? ? ????? ??????????? ??? ????-
?????. Integration Services ? ??? ? ????? ?????? ?????????? ???????? DTS ?? ?????????? ?????? SQL Server. Integration Services ???????????? ??? ??????????? ????? ??????????? ? ?????????? ?????? ? ??????????? ????????, ??????? ?????????? ??????? ? ???????????? ?????? ????? ??-
????????? ? ????????? ?? ???????????????. ???? ????? Integration Services ???????????? ??? ??????????? ???????? ?????? ?? ???? ?????? OLTP ? ???? ?????? Data Warehouse, ???? ?????? ?? ?????? ??? ??????-
?????? ?? ? ??? ?????? ????? (?????? ?? ????????? ???????). ??? ???? ??-
???? ?????????????, ????? ? ???????? ????????? ??? ?????????? ?????? ???????? SQL Server ? ?????????? Integration Services, ????????, ????? ????? ?????? ??????????? ????????? ?????? ? FoxPro ?? Oracle ??? ????? ?????? ??????? ??????????? ??????, ? ??????? ????? ?????????? ?? OLE DB ??? ODBC. Integration Services ????? ?????? ?????????? ?? ????-
????? ? DTS 2000. ?????????????? ??????????? ???? ??????? ???????? ???????????. ???????? ?????? ? Integration Services ????? ?????????????-
?? ? ??. 10. Workstation components, Books Online and development tools (????????-
?? ??????? ???????, ??????? ? ???????? ??????????) ? ??? ??????? ???-
??????? ??? ??????????? ? SQL Server 2005, ??????????? ? ?????????? ???????, ??????????? ?????????? ??? ?????????????, ???????????? ? ???????, ??????? ???? ??????. ??? ???????, ??? ??? ??????????, ????? ??????? ?????????, ?? ??????????????? ?? ??????? ??????. ?????????? ????? ?????????? ??????? ????????????????? ? ???????????? ?? ????-
??? ??????? ??????????????, ? ??????? ????? ?????? ?????? ?? ????? ?? ??????? ???????. ???????, ??? ????? ??????? ????????????????? ????? ?????? ????????? ?? ????????? ? ??????????? ???????? SQL Server (????????, ?? ??? ?? ???-
???? ?? Enterprise Manager, ?? Query Analyzer). ? ????? ???????? ????????-
????????? ???? ?????? ? ????????? ?????. ????? ? ????? SQL Server 2005 ??? ????????? ??????? ??? ?????? Northwind
? Pubs
(???? ?? ????? ?????-
?????? ? ???????? ?????????? ?????? ??? ??????? ? ????? Microsoft), ?????? ??? ???????????? ???? ?????? AdventureWorks
? AdventureWorksDW
(??????? ????????? ??????). ?????? ??????? ???? ?? ????????? CHM, ? ????? ?????? ????????? Document Explorer, ??? ??? ??????? ????? ?????? ??????-
???, ????????, ?? ?????????? ?????????. ??? ???????????? ??????????? ??????? ?????????? ??? ?????????? ????? ?????????? ???? (?. ?. ?????????? ?????? SQL Server Database Services ? √лава 2 3
8
???? ?????? ???????????) ?? ?????? ? ??????? ????????????????? ? ????-
????????? ?? ??????? ??????? ??????????????. ??? ????????? ?????????? ????? ????? ????????? ?? ???? ?????????????. ??? ???? SQL Server Database Services ? Analysis Services ???????????? ??? ???? ???????? ? Create a failover cluster (??????? ???????????????? ???????). ?? ???????????? ??? ????????? SQL Server 2005 ??? Analysis Services ? ???????. ??????????????? ?????? ?????????? ???????? ?????? ?????, ????? ????????? ????????? ????????? ?? ?????????? ?????????? Cluster Server. ??? ?????? SQL Server ? ???????? ???????? ????? ?????????? ? ????. 7.1. 2.2.3. –абота с именованными экземпл¤рами ????????? ????? ??????? ????????? SQL Server 2005 ????????? ?????????? ??? ?????????? ?? ????????? ??? ?????? ??????????? ????????? SQL Server (???. 2.3). ???. 2.3. ???? ?????? ????? ?????????? ??????? ????????? ??????????? ??????????? ????????? ? SQL Server 2000. ????????? ??? ????????? ?????????? ????????? ???????????? ?????????? ??????????? SQL Server (? ??? ????? ? ?????? ??????) ?? ????? ??????????. ѕланирование и установка SQL Server 2005 3
9
?????? ????????? ?????? ????? ??????????? ?? ????????? (default instance). ??? ??? ????????? ? ?????? ??????????, ?? ??????? ?? ??????????. ??? ??-
??????? ?????????? ????? ????????????, ? ????? ??? ??? ??? ???????? ??????????? ??????????????. ????????, ???? ??? ????????? ?????????? MyComputer
, ? ??????????? ??-
??????? ? MyInstance
, ?? ????????? ? ???? ????? ????????? ??? MyComputer \MyInstance
(???. 2.4). ???. 2.4. ??????????? ? ???????????? ?????????? SQL Server 2005 ?? ??? ?????? ?????????? ?????????? ????? ??? ??????????? ?????????? ? ????? ?????????? ? ??? ?? ????? ?? ??????. ????? ?? ???? ???????? ???-
?? ??? ?????? ?????????? (alias) ??? SQL Server, ??????? ????? ????????? ? SQL Server 2005 ??? ?????? ??????? SQL Computer Manager. ??? ????????? ?????????? SQL Server ?? ????? ?????????? ????? ???-
????????, ???????????????? ??????? Installed Instances (????????????? ??-
????????) (??. ???. 2.3). ??? ???? ????? ??????????? ??????????? ???? ?? ?? ?????? ?? ????????-
???? ?? ??????? ???????. ?????? ??? ????? ?????????? ?????????? ? ?????-
??????? ??? ????? ??????. ????????, ?? ?????? ?????????? ??? ?????????? SQL Server 2005 ?? ????? ?????????? ? ?????????? ??????? ??????????? ? ????????, ??? ??? ????? ????????. ?????? ??????? (??????? ????????? ???-
????? ?? ???? ?????? ?????????????) ? ?????????? ? ???????? ?????????? ?? ????????? SQL Server 2000, ? ? ???????? ???????????? ?????????? ? SQL Server 2005 ? ???????? ? ?????? ???????? ????????????. ?????? ????-
??? ? ?????????? ? ???????? ?????????? ?? ????????? SQL Server 7.0, ? ??-
√лава 2 40 ?????? ?????? ???????????? ?????????? ? SQL Server 2000, ? ? ???????? ???????? ??????? ? SQL Server 2005. ? ?????????? ?? ??????? ???????? ??-
?????????? ? ????? ???????? SQL Server! ??????? ??????, ??? SQL Server 7.0 ????? ?????????? ?????? ? ???????? ??-
???????? ?? ?????????, ? SQL Server 2000 ?? ????? ???? ??????????? ??-
?????????, ???? ??????????? ?? ????????? ?????????? SQL Server 2005. ????????? ???????????? ?????????? ? ?????????? ? ??? ?????????? ? ???-
????????? SQL Server 2005 ?????????? side-by-side installation. ????? ???-
????????? SQL Server 2005 ???????? ??, ??? ?????? ??????????? ????????-
?? ????? ???????????? ?? ?????? ??? ?????? SQL Server, ?? ? ??? Analysis Services, Reporting Services ? Notification Services. ??????????? ?????????? ????????????? ???? ??? SQL Server 2005 Mobile Edition. ????? ????, ???? SQL Server 2000 ??????????? ???????? 16 ??????????? ??????????? ?? ???? ?????????, ?? ???????? Enterprise Edition ? Developer Edition ? SQL Server 2005 ???????????? ?? 50 ??????????? ??????????? ?? ????? ??????????. ???? ? ??? ?????????? ?????? ?????????, ? ?? ?? ?????? ????????? ????-
????????? ???????????? ????????, ?? ??? ???????????? SQL Server 2005 ?????? ????? ???????????? ??????????? ???????????? ???????, ???????-
??? ??? VMWare ??? Virtual PC. 2.2.4. ¬ыбор учетной записи дл¤ служб SQL Server ????????? ????? ??????? ???????? ?????? ??????? ?????? ??? ????? SQL Server (???. 2.5). ? ??? ??????? ?? ?????? ??????? ??????? ?????? ??? ??-
???? SQL Server, SQL Server Agent, Analysis Services ? Reporting Services. ? ???? ????? ???????????, ??????? ?????????? ????????? SQL Server 2005, ????? ????????? ??????. ?????? ??????, ? ??????? ?? ?????? ????????????, ? ?????? ?? ?? ??????-
?????? ????????? ????????? ??????? ?????? ??? ???????? ??????? ?????? (??? ??? ???? ???????, ????? ????? ???????????? ???????, ?? ?????????, ????????? ??????? ?????? ?????? ??????????)? ????????? ????????? ??????? ?????? ? ??? ??????????? ??????? ??????, ??-
????? ???? ?? ?????? ??????????. ?? ????? ???? ??????? ?????? ???????? ???? ???????????? ??????? ? ??????????? ????? Windows. ??? ???????? ???????? ????? ???????????? ??????? ?? ????????? ??????????, ?? ????-
??? ??????????????? SQL Server 2005, ? ?? ????? ???????????? ??? ????? SQL Server 2005 ? ????? ??????? ?????????. ?????? ???????, ??? ??? ???? ?? ??????? ??????????? ????????? SQL Server ? ????? ??????? ???????? ѕланирование и установка SQL Server 2005 41 ?????? ??????. SQL Server 2005 ?? ?????? ????????????????? ? Exchange Server, ?????????? ? ??????? ?????????? SQL Server ??? ?????????? ?????-
??, ??????????? ????????? ??????????? ?? ??????? ?????, ????? ?????? ??-
???????? ????????? ??????????. ??????? ?? ??????????? ??????????? ???-
??????? ????? ????????????? ???????? ??????? ??????. ???. 2.5. ????? ??????? ??????, ?? ????? ??????? ????? ???????? ?????? SQL Server 2005 ?????? ?????? ? ????? ?????? ???? ??? ???????? ??????? ??????? ?????? ?????????????? SQL Server ? ???? ???? ??????? ??????????? ????????? ????? ?????? ??????? ?????? (????????, ????? ?? ?? ??????? ?????????? ? ????????? ? ?????????????? ????). ??? ???????, ????? ??????? ???????? ? ?????????? ??????????. ???????? ???????? ???????? ???: ????? ????????? ??????? ????????????? SQL Server ?????? ?????? ????? ??????? ?????? ? ???????? ??? ???????? ??? ????? SQL Server. ?????? ??? ?????????? ????-
???? ?????????, ????????? SQL Server ??? ??????? ? ???????? ?? ???????, ??????? ????? ?? ??????????????? ????? ?????. ?????? ????? ?????-?? ????? ????????????? ? ???????????? ???-???? ????????? (????????, ?????????????-
?? ????????? ????), ? ????? ??????????? SQL Server, ???????, ?? ????????. ??? ???? ???????? ?????????? ????????? ?? ??????, ??????? ????? ????-
????? ???????? ???: "??? ??????? ?????? ???????? ??????, ?? ??? ?? ????-
?? ??????". ???? ?? ?? ???????????, ? ??? ????, ??? ????? ??????????? ????-
?????????? ?? ? ??? ?? ????????? ???????. √лава 2 4
2
??????? ?????????? ??????? ? ??? ???????? ??????? ??????, ?????????? ????????? ??? ????? SQL Server 2005. ??? ???? ??????? ?????? ????????-
?? ????? ?????? User must change password at next logon (???????????? ?????? ??????? ?????? ??? ????????? ?????) ? ?????????? ?????? Password never expires (?????? ??????? ?? ??????????). ?????? ??? ??? ???-
??? ???? ???????, ??? ????? ???????? ? ??????? ? ?????????? ????? (??-
??????? ??? ????? ????????? ??????? ??????? ?????? ???? ?? ??????? ?????????). ?????????? ????? ???????? ??? ??????? ?????? ????????????, ????? ?????????????? ???? ?? ??????, ??? ??? ????? ? ?? ????????? ?? ?? ?????? ??????. ?????? ?????? ? ?????? ??????? ?????? ???????? ??? ??????? ??????? ??-
?????? ????????????? Microsoft, ??????? ?????? SQL Server Agent ?????? ???????? ????????????????? ??????? ?? ??? ??????????, ?? ??????? ????-
??????????? SQL Server, ? ??????? ?????? ?????? SQL Server 2005 ?????? ??-
?????? ? ???????????? ???????, ??????? ?????? ???? ????????????? ?? ???????. ????????, ??????, ??????????, ??? ? ??????? ?????? SQL Server 2005 ????? ????????? ? ????????? ?????? ??????????????? ?? ???? ??????????. ?????????? ????? ???????: ?????? ?????? ?????? ?? ?????????????? ??????????; ?? ??????????, ?? ??????? ?????????? SQL Server 2005, ?????? ??? ???-
??? ?????? ??????????, ????? ??? ?????? ?????? SQL Server. ? ?? ???? ???? ?????? ??????? ??????, ?? ????? ??????? ???????? SQL Server, ????? ???????? ??????? ??????? ? ????? ??????; ? ????? ??????? ? ??? ????????????? ?????????????????? ??????? ????-
?? ?? ??? ????? ???? ??? ?????? ??????????? ? ????????, ?????????? ????????? ???? (?? ??????? ? ???????? ???????, ?? ??????? ??????? ? ?. ?.). ??????? ?? ??? ???? ?????? ?????????? ?? ??????? ? ??????????. ??????? ????? ????????????? ????????? ? ????????? ?????? Administrators (??????????????) ??? ??????? ??????, ???????????? ??? ?????? ????? SQL Server 2005 (?????? ???????????? ???? ?????? ??? ????). ???? ?? ??? ?????-
???? ????????? ???????????? ?????? ???????????, ?? ??? ?????? ???????-
??? ???????????????? ??????? Books Online "Setting Up Windows Service Accounts" (????????? ??????? ??????? ????? Windows). ????? ??? ?????? ????? ?? ?????? ? ??????? SQL Server ? ? Books Online. ???????? ???????? ????? ?? ??, ??? ??????? ??????, ?? ????? ??????? ????-
???? ?????? SQL Server 2005, ????????? ????????? ????????????? ??????-
??????? ????????? ????????? ????? ?? ????????? ??????????: Log on as a service (??????? ? ??????? ??? ??????); Act as part of the operating system (???????? ??? ????? ???????????? ???- ????); ѕланирование и установка SQL Server 2005 4
3
Log on as a batch job (??????? ? ?????? ?????????? ?????? ??????); Replace a process-level token (???????? ?????? ???????????? ????????); Bypass traverse checking (????????? ?????? ????????, ?? ??????? ???? ??????? ?????? ?? ????????????? ??????????); Adjust memory quotas for a process (??????????? ????? ?? ????????????? ?????? ??? ????????). ???? ?? ??????? ?????????????? ??????? ?????? ?? ?????? (????????, ???-
??? ???? ???????? ???????), ?? ???????? ???????????? ??? ?????????? ????-
???. ? ????????? ??????, ????????? ? ??????? ??????? ??????, ? SQL Server ????????????? ??? ??????????? ???????????? ??? ???? ????? SQL Server 2005 ???? ??????? ?????? ??? ?????????? ??? ?????? ?????? ??????-
???. ??? ?? ???????? ????? ????? ??????????? ????????, ????? ?????????? ?????? ??????? ????-
??? ??? ????? SQL Server ?????? ?? ?????-?? ????????????. ??????? ????? ????????????? ???????????? ????? ??????? ??????? ? ?????????? ???? ??-
?????? ??????? ?????? ? ????????????????? ??????? ?? ?????? ???-
??????? ??? ???? ????? SQL Server 2005. ????????? ???? ????? ? ???????? ? ??????? ???????? ???????? ????? ????? ?????? ?????, ????? ??? ???????-
??? ????????????? ?????????? ??? ?????? ???????????? ?????? ???????-
????. ???????? ????? ???????? ?? ??, ??? ??? ?????? ? ???? ???????, ?????????? ?? ???. 2.5, ?????????? ??????? ??? NetBIOS (?. ?. ????? ????? ????? ?????-
?? ????????? ?????). ????????, ???? ??? ????? ?????????? NWTRADERS.MSFT
, ?? ? ???? Domain (?????) ????? ?????? NWTRADERS
. ? ???? ???? ???? ??? ???? ?????? ??????? ? Start services at the end of setup (????????? ?????? ?? ????????? ?????????). ??? ?????? ??????????, ????? ?? ?????? SQL Server 2005 ????????????? ??????????? ??? ???????? ??????????. ?????????, ??? ??? ???????. 2.2.5. ¬ыбор режима аутентификации SQL Server 2005 ?? ????????? ?????? ??????? ????????? (???. 2.6) ??? ??????????????? ???-
???????? ??????? ????? ?????????????? SQL Server 2005. ??????? ???????????? SQL Server 2005 (? ??????? ????? ????? ????????? ?? ????????? ? ??????????? ????????) ????????? ??. 5. ?????? ????????? ??????? ??? ????? ????????? ??? ? ???????? ????????? ???????, ?????? ?????????????? ???????, ?? ?????? ??????? ??? ???????? ??????? ?????. √лава 2 4
4
???. 2.6. ????? ????????? ??????? ?????????????? ? SQL Server 2005, ??? ? ? ?????????? ???????, ????????????? ??? ???? ??????? ??????? ??? ??????????? SQL Server (logins, ?? ??????? ? users ? ?????????????? ???? ??????!): ?????? Windows (Windows Authentification) ? ?????? SQL Server (SQL Server Authentification). ?????? Windows ????-
???? ?? ??????? ??????? Windows, ??????? ??????????????? ????? ??????-
?????? ? ??????? SQL Server. ????????????? ??? ????????????? ??????? ??-
???-?? ?????? ??? ??????????? ? SQL Server, ???? ??? ??? ????? ? ???? Windows. ? ??????? ?? ??????? Windows, ?????? SQL Server ? ??? ??????????????? ??????? ?????? ?? ?????? ??????? ? ????????, ?????????? ? ??????? ???-
????? ? ???? ?????? master
?? SQL Server. ??? ??????????? ? ??????? ??? ?????? ?????? SQL Server ??? ???????? ???? ??????? ??? ?????? ? ??????. ??? ????? ???????????? ? ?????? Windows ??? ?????? SQL Server? Microsoft ?????????? ??????????? ?????? ????????? ???????????? ?????? ??-
???? Windows (???? ? ??? ???? ?????). ????????? ?????? ? ?????????: ???????????? ??? ????????????? ?????????? ?????????????? ??????, ????? ??????, ??? ??????? ?? ?????? ? ????; ????? ????????????? ?????????? ??? ?????? ????? Windows, ??? ????? ?????? ?? ??????? ????????????; ѕланирование и установка SQL Server 2005 4
5
?????? Windows ????? ???????? (? ? ????? ?????? ??????????? ????-
???? ???????, ? ? ????? ?????? ??????????? ????????? ????????? ????? ?? ????); ??? ????????????? ??????? Windows ??????????? ???????????? ???????. ??????, ?? ????? ??????, ???????? ?? 80% ????????????? SQL Server ?? ???????????? ???????????? ?????? SQL Server. ???, ??? ???????? ???? ???-
???, ???? ????? ??????: ????? ????? ?? ??????????? ?? ??????? ?????? ?????? ? ?? SQL Server ??-
?????? ?????? ???????????. ????????????? ??????? SQL Server ???????-
?? ???????? ??? ????????? ? ?????????????? ???? ??? ????????? ?????? ????????????; ??????????? ????? ??????????? ???????? ??????????? ??????? SQL Server (? ????? ????????? ?? ????????????? ??? ??????, ????????????? ????? ? ?. ?.) ? ???????????? ??????? ??? ?????? ??????????. ? ????????-
?? ?????????? ????? ??? ?????? ? ????????????? ? ??????? ??????????-
??? ????????? ?????-???? ?????????????? ????????, ????????? ?? "????-
???" ???????. ???????? ??? ?????? ??? "??????????" ??????????; ?????? SQL Server ????? ???????? ? ? ??????, ???? ? ??? ???? ????? Windows NT/2000/2003, ? ?????, ????? ?????? ? ??? ?? ??????????? ???. ???? ?? ??????????? ????????????? ??????????, ?????????? ??????? ?????-
?????????, ?? ?????? ? ??? ??? ? ???????? ???????????? ??? ??? ???????, ??????? ??? ???????????? ??????????????. ???? ?? ???? ???????????, ?? ??????? ??? ???????? ????????? ??????????????, ??????????? ?? ???????-
???, ?????????????? ?????. ? SQL Server ?????? Windows ????? ???????????? ?????? (????????? ???? ??? ??????????? ???????????? ???????? ???????? ????? SQL Server). ??-
???? SQL Server ????? ???????????? ?????? ?????, ????? ????? ?????????-
????? ?????????? ? ????????? ????? (Mixed Mode). ?????? ?? ???????? SQL Server ??? ????????? ????? ??????????? ? ????????? ?????. ???????? ????????????? ?????? ??????? Windows (Windows Authentification Mode) ????? ????? ???? ?????, ????? ? ??? ???????? ????? ?????????????? ?????? ?????? Windows ??? ????? ??????? ???????? ???????????? ?????? ???????-
????. ? ??? ???? ??????. ???? ?? ???????? ????? ?????????????? Mixed Mode, ??? ??????????? ?????????? ?????? ??? ??????? ?????? SA
(?????????? ????-
?????????? ???????). ? ??????? ?? ?????????? ??????, ? SQL Server 2005 ? ?????? ??? ?????? SA
??????????? ?? ?? ??????????, ??? ? ??????? ??? ??????? ??????? Windows ? ????? ??????. ???? ?? ?????????????? SQL Server 2005 ?? ?????????, ????????????? ?????? Windows 2003 ? ???????-
√лава 2 4
6
???? ?? ?????????, ?? ?? ?? ??????? ?? ???????? ?????? ??????, ?? ??-
?????????? ??????? ??????? ?????? ???? "password". ????????? ??? ??-
??????? ???????? ? SQL Server 2005 ????? ?????????? ? ??. 5. 2.2.6. ¬ыбор кодировки и пор¤дка сортировки ????????? ????? ??????? ????????? ? ????? ????????? ? ??????? ?????-
????? (???. 2.7). ???. 2.7. ????? ????????? ? ??????? ?????????? ?????? ?? ???? ?????? ????? ??????????? ???????? ?????, ????????? ????-
??? ?????????? ??????. ???? ?? ??????????? ????????? SQL Server ??? ??????? ??????????, ??????-
??? ?????????? ??????????????, ?? ????? ?? ??????, ? ?????????? ? ????-
???????? ?? ????? ??????????. ???? ?? ? ???????????? ?????? ?? ???????, ?? ???????????? ????????????? ?????????? ????????? ? ?????????? ?? ?????-
?????? ? ?????????????. ??? ?????????? ????, ???????, ????? ?????????? ???????????? ???????????? ??? ???????? ?????? ??????????, ????? ??????. ??? ??????? ?? ????, ????? ?????? SQL Server ?????????????? ??? ????? ???-
???????, ???????? ?? ??? ?????????? ?? ?????? ???????? ?????????? ??? ?????? ? ?. ?. ѕланирование и установка SQL Server 2005 4
7
??? ???? ??????? ? ???? ?????????? ????????: ???? ?? ???????? ??? ??????? ???????? ????????? ? ??????? ??????????, ?? ??????? ????? ? ?? ???????? ?????-?? ???????. ??? ???????? ????? (??? ?????????? ???????? ? ???????????, ??? ??????????? ? ?. ?.). ??? ???????, ? ????? ??????? ? ???? ?????? ??? ???????? ???????????? ???-
?? ??????????, ??? ?????????? ??????????? ????????; ? ????????, ? SQL Server 2005 ????? ?????????? ???? ????????? ? ????-
??? ?????????? ?? ?????? ?? ?????? ????? ???????, ?? ? ?? ?????? ??????-
??? ???? ??????, ??????? ? ???? ?????????? ??????? ???????. ?????? ???? ? ????? ?????????? ???????????? ????????? ???????, ??????????-
???, ???????? ????????? ?? ???? ?????? master
(? ? ???????? ???????-
???? ??? ?????? ????? ?????), ?? ???????? ??? ????? ????? ?????????. ???????????? ??????? ????? ? ??????????? ???? ?????? (?????????? ??-
??????????? ???????). ? ?????????? ??????? SQL Server ??? ????? ????? ???? ???????????? ??????? rebuildm
(?? ????. rebuild master). ? SQL Server 2005 ???? ??????? ??? ???, ? ??? ??????????? ????? ???????? ??-
?????????? ?????? ?????????. ? ????? ???? ? ???????????? ? ??????????? Microsoft ?????????? ????? ????????? ?????????? ?? ?????? ??????? ? ????????? ????? ? ????????????? ??? ??????? ? ???? ??????, ????? ????? ????????????? ??????? ????? ???? ?????????? ??? ??????. ????????? ?? ?????? ???????? ????????????? ??????????? ?????-
?????????? ???????????? ??????, ??? ?? ???????? ??????????? ???????? ????????? ??? ???? ?????? ???????? 7 ?????. ??????? ? ??? ?? ??? ? ??? ???? ????? ?????. ???? ?? ?? ???? ????????? ????????????? ? ?????? ??????????? ???????? ????????? ? ??????? ?????????? ??? ???????, ?? ????? ????? ??????????, ????? ????????? ???????????? ?? ?????? SQL-???????? ?????? ???????????. ???????????? ? ???? ??????? ????? ?? ?????? ????????? ????????? ????? ???????. ???? ?? ????????? ? SQL Server ?????????? ?????? ?????????? ?????, ?? ????????? ?????, ??? ??? ???????? ???????????? ?????????? ?????? ????-
??? ?? ?????? SQL Collations (????????? SQL Server) ????? Dictionary order, case-insensitive, for use with 1251 (Cyrillic) Character Set (????????? ???????, ???????????????? ? ????????, ??? ????????????? ? ??????? ?????-
??? 1251 (Cyrillic)). ???? ?? ???????? ?????????? ????? ??????????, ?? ??-
??? ??????? ????????? ????? ????????? Unicode Cyrillic_General ?? ???-
??? ??????? Case-sensitive (???????????????? ? ????????). ??? ????????? ?????????? ? ?????? Collation Designator ans Sort Order (??????????? ??-
??????????? ? ??????? ??????????) ? ??????? ????? ??????. ??, ??? ?????????? ??? ?????? ????????? ?? ?????????, ??????? ?? ?????-
??????? ???????? ?????? ??????????. ???? ??????????? ??????? ?????????-
√лава 2 4
8
??? ?????????, ?? ?? ????????? ????? ?????????? ????????? Unicode Cyrilic_General, ???? ???????????? ? Latin1_General. ????????????? ?????? Binary (????????) ????????, ??? ????? ????????-
?????? ???????? ??????? ?????????? ?????? ?????????? (?. ?. ????? ??????-
?????? ???????? ???????? ????? ????????). ?????? Case-sensitive, ???????, ????????, ????? ?? ??????????? ??????? (??? ???????, ??? ?? ?????????). ??-
??????? Accent-sensitive, Kana-sensitive ? Width-sensitive ??????????? ?????? ??? ??????????????? ??????. ????? ???????????? SQL Server 2005 ???????? ??, ??? ????????? ? ??????? ?????????? ????? ??????? ?? ?????? ??? ?????? SQL Server, ?? ? ??? Analysis Services. ???????? ?????? ????????? ??? Analysis Services ????? ??, ??? ? ??? ?????? SQL Server. ??? ???? ????? ??????, ??? ???? ???????? ?????????? ?????? ??? ????? OLAP ? ??? ????????? ????????? ??????, ????????????? ?? SQL Server, ?? ? ????? ?????? ?????????? ?????????????? ? ????????? ?????? ???????? ??????? ????? ?????????? ?? Analysis Services ?? ?? ????????? ? ??????? ??????????, ??? ? ?? ???? SQL Server. 2.2.7. ќстальные параметры установки ???? ? ????? ??????????????? ??????????? ?? ??????? Reporting Services, ?? ?? ???? ????????? ??????? ??????? ????????? ??? ????? ????? ??????? ????????? ??? ???? ??????. Reporting Services, ??? ??? ?????????? ?????, ? ??? ???????? ??? ??????????? ??????? ????????????? ??????? ? ??????- ?????? ???????? ???????, ?????????? ??? (?????????? ? ??????, ????????? ?????????? ? ?. ?.) ? ?????????????? ????????????? (????? Web-?????????). ??????? ?????????? ?? ?????????, ??????? ?? ?????? ?????????. ??????????? ???????? Report Server ? Report Manager ? ??? ???????? ?? ??????? Internet Information Server, ??????? ????? ???????????? ??? ???? ??????? ?????????? Reporting Services ? Report Server (????? ??-
???????? ???????) ? Report Manager (???????? ?? ?????????? ? ????????-
????????? ???????). ??? ????????? ?????? ????? ????? ?????? ?????? ? ??? ??????, ????? ??????????? ??????? ? ???????????? ?????? ?? ???-
??????? ??? ??????????. ??????????????? ???? ?????? Report Server ? Reporting Services ? ???????? ?????????? ??? ??????? ????? ???????????? ????? ????????? ?? OLE DB ? ODBC ????????? ??????. ?????? ????????? ?????????? ??-
???? Report Server (?????????, ??????????? ??????? ? ??????? XML, ???-
??????? ? ?. ?.) ??????????? ?????? ????????? ? ???? ?????? SQL Server ? ??? ????????????? ??? ????????????????. ? ???? ????????? ?? ?????? ?????????? ??????, ?? ??????? ????? ??????? ??? ???? ??????, ??? ѕланирование и установка SQL Server 2005 4
9
???? ?????? Reporting Services ? ????? ?????????????? ??? ??????? ??????, ??? ?????? ??????? ????? ????????????? ????????? ???? ????. ??? ????? ??? ??????? SMTP ? ???????? ????? ??????????? ? Report Server ????? ???????????? ?????? ?? ?????????? ? ?????????? ?? ??????-
??????? ?? ??????????? ?????. ????????? ??????????? ????? ??? Report-
ing Services ??????????????? ?? ???? ??????. ?????????, ??? ?? ?????? ??????? ??? ?????? ??????? ?????????, ? ??? ??-
???????? ????????????? ?????????? ? ????????????? ????????? ?????? ? ?????? ??????? ?? Web-???? Microsoft ??? ???. ??????? ????? ????????? ???, ?? ?? ??????????? ??????????? ?? ??????????? ???????????? ??? ??????-
????? ?????????. ??? ?????? ????????? ????????? (?????????? ?????????? ??????, ????????? SQL Server 2005 ? ???????) ????? ??????? ??????? ????????? ????? ????????-
??. ?? ???????? ????????, ??????? ????? ????????? ??? ???????? ????????, ????? ?????????? ????? ? ??????????????? ????????. ????? ????, ??? ?? ??????????? ????????? ???? ????????? ?? ?????? Ready to install (?????????? ? ?????????), ???????? ???? ?????????. ??? ???????-
????? ?????????, ??? ????????? ?????????? ?????? SQL Server, ?? ??????? ???????, ???, ????????, ????????? Oracle. 2.3. јвтоматизированна¤ и удаленна¤ установка ?????? ????? ?????????? ????????????? ???????? ????????? SQL Ser-
ver 2005 ? ?????????????? ?????? ??? ?? ????????? ??????????. ????????, ???????????? "??????????? ??????????" ????? ????????????? ??????????-
??? ????????? SQL Server 2005 ??? ????????? ?????? ??????????. ?????? ?????? ? ??????????????? ?? ???????????? ????? ??????????? ????? ??-
??????????? ???????? ????????????? ????????? SQL Server ??? ?????-?? ?????? ?? ???? ????????. ? ???? ?? ????????, ????????, ?????????? ? ???-
?????? ?????????. ? SQL Server 2000 ??? ?????????????????? ????????? ????? ???? ???????-
?????? ???? ? ??????????? ini ??? ?????? ???????????? ?????????? ?????-
?? ?????????. ?? ???? ?? ???????????? ?????????? ????? ???? ???????? ? ????????? ?????????. ? SQL Server 2005 ??? ??????????? ??????-?? ??????, ?????? ?????? ?? ????? ?? ???????????. ??? ?????????????????? ????????? ?????????? ???????????? ???? ??????? ?? ?????????? ??????????, ??????? ??? ??????? ????????? ?????????? ?? ??????????? ??????????. ????? ??????? ?????? ??????? ???? ??????? ? ??????????? ???? template.ini ?? ????????? ???????? ???????-????? ??????-
√лава 2 50 ?????? SQL Server 2005 ? ???????????? ??? ??? ??????. ???? ???? ?????? ????????????????, ? ??????? ? ??? ??????????????? ?????? ?? ?????????. ????? ??????? ??????? ??????? ?? ?????? ?????????????????? ????????? ????? ????????? ???: setup.exe /settings c:\setup\mysettings.ini ??? c:\setup\mysettings.ini
? ??? ????????? ???? ???? ???????. ????? ???????????? ? ????? ??????? ???????? ????????? ??????, ????? ????? ??-
???????? ???????????? ?? ? ini-?????, ? ? ????? ????????? ??????. ? ?????? ???????? ?? ?????????? ??????? setup.exe
????? ???????????? ? ?????? "Running Setup from the Command Prompt" (?????? ????????? ?? ????????? ??????) ?? SQL Server Setup Help (???? ???? ??????? ??????????? ??? ????-
??? ?? ?????? Help (???????) ?? ????? ?????? ??????? ?????????). ??????? ?????? ??? ?????? ?????????, ??? ??????? ???????? ????????? ??????????-
???????? ????????? ?? ?????????: /qn
? ?????? ?????????? ????? ?????????? ???? ??? ?????????? ????-
?????; /qb
? ????? ???????????? ?????? ?????????? ???????? ??????????, ??? ?????? ??????? ????? ??????? ?? ????? ?????????. ??????? ???????? ???????????? ?????????? ?? ?????. ???????? ????????, ??? ??? ?????? ?????????????????? ????????? ?? ??-
???? ?? ?????? ?????????? SQL Server 2005, ?? ? ??????? ???, ???????? ???-
???????, ??????????? ???? ?????? master
, ???????????? ?????????? ????-
????? ? ???????, ??????????? ??? ?????? SQL Server 2005, ? ?. ?. ????????? ????????? ???????? ????? ??? ??, ??? ? ??????????????????. ???????????? ??????? ? ? ini-????? ?????????? ??????????? ??????? ????-
????? TARGETCOMPUTER
(??????? ??? ??????????, ?? ??????? ????? ???????-
?????? ?????????), ADMINACCOUNT
(??????? ?????? ? ??????? ?????????????? ?? ????????? ??????????, ??????? ????? ?????????????? ??? ?????????? ????-
?????) ? ADMINPASSWORD
(?????? ??? ???? ??????? ??????). ????????? ????????? ????? ????????? ?????? ?????, ????? ? ??? ? ???? ??-
???????? ?????, ? ?????? ? ?????????????? ???????? ??????? ??????. ???? ????????? ????????? ?? ?????? ? ?????, ?? ???????? ????????? ????????? SQL Server 2005 ?? ???? ????? ??????????. 2.4. ќбновление предыдущих версий SQL Server и миграци¤ с Microsoft Access ??????????? ??????????????? ? ????????????? ????????? ?? ???????????? ?????????? ?????? ???????? ?? ????? ????? ??????, ? ????? ????????? ???-
ѕланирование и установка SQL Server 2005 51 ?????? ?? ??????. ???????? ??????????? ? ???, ??? ????? ????? ????? ?????-
????? ?????? ?????????? ???????? ???????? ???????????. ??????? ????? ??-
????, ???? ?????????? ???????? ?????????? ? ????????? ???????? SQL Server ??? ?????????? ?????-???? ????????????? ???????????. ????? ????? ????????? ???????? ???????? ??????? (job) SQL Server Agent, ?????? DTS, ??????? ?????????? ???????????, ??????????, ??????????? ???????? ???-
?????? ? ?. ?. ? SQL Server 2005 ????????? ? ???????????????? ????????-
???? ?????????? ?????? ????? ?????, ??????? ???? ??? ??????. ?? ?????? ???????????? ? ????????? ????? ?????????? ???????? ??????? ?? SQL Server 6.0 ? SQL Server 6.5, ? ?????? ??? ?? ???????? ??????? ???-
????. ?????????? ?? SQL Server 2005 ????? ????? ?????? ???????????? ? ????? ??????? ?????? ??????????, ??????? ?????????? ??????????? ??? ??-
??????????? ? SQL Server 2005. ???? ???? ?????????? ???? ??????? ?? ?????? SQL Server 7.0 ??? SQL Server 2000, ? ??? ?????? ?????? ??? ????? ?????????? ?? ??? ?? ?????? SQL Server 2005, ??????? ? ??????????? ????????????? ??????????? ????????-
???. ?????? ??? ????? ???????? ? ??????? ?????? ?????????? ??????????-
????? ??????????, ?????????? ? ??????? ???????? SQL Server. ??? ???? "??????" ??????? ? ?????????? SQL Server 2005 ?? ?????? ?????-
???? (??? ??? ?????? ??????????? ?????????) ? ????????? ?? ???? ???? ???-
??? ? ?????????? ?????? ? ????????????? ???????????. ??? ???? ??, ?? ??????? ????, ????????????, ??? ?????? ?????? ?? ?????? ?????? ? ??? ????-
????? ? ??????????????????. ??????? ??? ?????? ? ??????????? ????? ????? ?????????? ???: ??? ??? ?????? SQL Server 7.0 ? 2000 ??????? ????? ????????? ??? ??-
???? Copy Database Wizard (??????? ??????????? ??? ??????). ??? ???-
?? ?????????? ???????????? ? ??????? ??????? ?? SQL Server Management Studio, ???????? ?????? ??????? ???? ?? ??????? ??????????? ???? ?????? ? ?????????? Databases (???? ??????) ? ? ??????????? ???? Tasks (??????) ??????? ????? Copy Database (??????????? ???? ??????); ??? ??? ?????? SQL Server 6.0 ? 6.5 (? ????? ??? ?????? Access, FoxPro, Oracle, ???? Excel, ????????? ??????) ????????????? ???????????? SSIS Import and Export Wizard (?????? ??????? ? ???????? SSIS), ??????? ? ?????????? ??????? ????????? DTS Import and Export Wizard. ??? ????? ????????? ?? Business Intelligence Development Studio, ? ????? ? ??? ??-
???? ????? DTSWizard.exe, ??????? ????? ????? ? ??????????? ?????? SQL Server 2005. ????? ?????? ???????? ? ??????????? ??? ???????????? ???? ?????? ????? ????????? ????? ????????????? ? ??????????? ????????: ?? ?????? 60 (?. ?. ????????????? ? SQL Server ?????? 6.0) ?? 90 (?. ?. SQL Server 2005). √лава 2 5
2
? ??????????? ?? ????, ????? ??????? ????????????? ??????, ? ????? ?????? ????? ???????? ?????? ???????????, ? ??????? Transact-SQL ???? ????? ????? ???? ??-???????. ?????????? ??????? ????????????? ??? ?????? ???-
?? ??? ?????? ???????????? ?????????? SQL Server Management Studio (?? ???? ??????? ???? ?????? ?? ??????? Options (?????????)) ??? ??? ?????? ???????? ????????? sp_dbcmptlevel
. ?????? ??????? ? ????????? ? ??????-
??? ??? ?????? ? ??????? ???????? ????????????? ????? ? ??????? ?? ???? ???????? ????????? ? Books Online. ?????? ???????????, ??? ??? ???-???? ?????????? ?????????? ?????????? ?????? ????????????? ??????? ?? SQL Server 2005. ??? ??? ???? ????? ??????? ??-??????, ???????? ????? ???????? ?????? SQL Server ?????? 7.0 ? 2000 (? ????? ??????-?????). ???? ??? ?????????? ?????????? ?????????? SQL Server 4.2, 6.0 ??? 6.5, ?? ???????? ??????? ???????? ??? ?????? ?? SQL Server 7.0 ??? 2000. ??-??????, ? ????? Microsoft ????? ??????? ??????????, ??????? ?????????? Upgrade Advisor (SQLUAsetup.msi). ??? ??????? ??????????? ???????????? ??????? SQL Server 7.0 ? 2000 ? ????????????? ?? ??? ???? ?????? ?? ????-
??? ????????????? ???????, ??????? ????? ?????????? ??? ?????????? ?? SQL Server 2005. ?? ?????? ???????????? ???????????? ????? ?? ??????? ??????? ? ?????????????? ?? ?? ???????????. ???????????? Upgrade Advisor ? ??????? Best Practices Analyzer, ??????? ????? ????? ??????? ? ????? Microsoft. ??? ??????? ????????? ??? ?????? ? ????????????? ???? ?????? ?? ???????????? ???????????? ???????? ? ?????????????. ????? ?????? ????????? ? ????????????? ? SQL Server 2005. ???????? ??? ?????? ? Best Practices Analyzer ????? ?????????????? ? ????. 11.5.3. ????????????? ????? ?? ?????????? ?????? ?? ??? ???????, ?? ? ????????? ?????? ?? ??????? Backward Compatibility (???????? ?????????????) ? Books Online, ???????? ?????? "Breaking Changes to Database Engine Features in SQL Server 2005" ("????????? ????????? ? ???? ???? ?????? ? SQL Server 2005"). ????? ????? ????? ?????????? ? ??????????, ?? ????? ?? ????? ???????? ?????? ????????? ??????????? ??????? ???????, ??????? ??????????? ???-
??, ???????????????? ? ????????? ???? ??????. ?????????? ??????????? ??? ?????? ???? ?? ???????, ??? ? ??????? ????????? SQL Server 2005. ???-
?? ??? ?? ????? ?????????? ?????????? Analysis Services, Reporting Services ? Notification Services. ????? ?????????? ??????? ????????????? ??? ??????, ??????? ?????????? ?????? ? ????????, ????????????? ??????????????? ? ???????????? ? ??????? ??????? ???????. ѕланирование и установка SQL Server 2005 5
3
?? ???????????? ????? ????????? ????????, ????? ?? SQL Server ????? ????-
????? ???? ?????? Access. ????????, ?????????? ???? ?????? ??? ???????? ???? ??????? ?? Access, ?????????? ??? ????? ?????????????? ????? ??????? ????? ??????? ??????????? ?????????????, ? ???????? ? ??? ? Access ????? ????????. ??? ????? ????????? ???????? ? ????????, ??? ???????? ?????? ?????? ? ??????? ????? ???????????? ?? ?? Integration Services (?. ?. ????? DTS), ????????, SSIS Import and Export Wizard, ? ??????? ?????????? ?????. ?????? ??? ??? ????????????? ???????-
?? ???????????? ???????? ? ?? ?? ????????? ????? ????? ????????? (??-
??????, ????????? ?????????/??????? ????). ???? ? ????? ???? ?????? ??????? ? ????? ??????, ?? ???? ?????????? ????? ???? ????????? ?????????-
???: ????????? ?????? ?????? ?? ?????? ????? ? ????????. ??????? ??? ??-
?????? ?? SQL Server 2005 (??? 2000) ????? ????? ???????????? ??????????? ????????, ??????? ???????? ??????????????? ? Access. ? ????????????? ???-
??? Access ??? ?????????? "?????? ?????????????? ? ?????? Microsoft Access", ? ? ?????????? ? Upsizing Wizard. ????? ??????????? ???????? ???-
??? ? ???????, ????????, ?????? ????? ?????????, ???????? ? ???????? ?? ?????????, ???? ?????? ????? ????????????? ????????????????? ??????-
?????? ????? ? ?????? ?????????? Access ?? ????????????? ?????? SQL Server. ?????? ?? Access 2003 ?????? ????????? ???????? ? SQL Server 2005. 2.5. ѕроверка установки и выполнение послеустановочных задач 2.5.1. ѕроверка результатов установки ???? ?? ?????????????? SQL Server 2005 ?????????? ???????? ??????? ????-
?????, ? ? ???????? ????????? ??? ?? ??????????? ?? ????????? ?? ???????, ?? ??????????????, ??, ?????? ?????, ??? ???????????? ?????????. ???? ?? ?? ?????????? ?????????????????? ?????????, ?? ?? ?? ????????? ???????-
?????? ?????????, ????????????? ?? SQL Server 2005 ??????????? ?????????. ????? ??????? ?????? ???????? ???????? ? ????????? SQL Server Management Studio ? ? ???? ?????? master
????????? ????? ?????? ? ????-
?????????? ?????????? SQL Server, ????????: SELECT * FROM sysdatabases; ?????? ??????? ????????? ?????????? ????????? ????? ???? ??????: ?????????, ??? ? ??????? Services ????????? ?????? Analysis Services, Report Server, SQL Browser, SQL Server, SQL Server Agent, SQL Writer ? ?. ?., ? ??????????? ?? ?????? ????????????? ???? ???????????, ? ??? ??? ?????? ????? ????????????? ? ?????????; √лава 2 5
4
????? ??????????? ????? SQL Server 2005 (?? ????????? ??? ??????-
???? ? ??????? C:\Program Files\Microsoft SQL Server\90) ? ??????????? ??; ?????????, ??? ? ???? ???? | ????????? ? Windows Explorer ???????? ????? ?????? Microsoft SQL Server 2005 ? ???????? ??? ?????? ??????-
??????????? SQL Server 2005. ???? ?? ? ???????? ????????? ???????? ?????-?? ????????, ?? ????? ????-
?????? ? ????? ????????? SQL Server 2005. ???? ???? ??????????? ??? ???-
???? ?????????? SQL Server 2005. ??? ??? ????? ?????????? ?? ????????? ? ??????? C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Files. ????? ???? ??? ????????? ????????? ?????????, ????????????? ????????? ????????? ????????????????? ?????. 2.5.2. Ќастройка сетевых библиотек дл¤ доступа клиентов ?????? ????????, ??????? ?????? ?????????? ????????? ????? ????????? SQL Server 2005, ????? ?????????? ??????????? ??????????? ? ???? ?????-
???, ? ????????? ????????? ??????? ??????????. ? SQL Server 2000 ?? ???-
?? ??????? ??????????? ??????? ?????????? ?? ????? ?????? ??????? ????-
?????. ? SQL Server 2005 ????????? ??????? ?????????? ????? ?????? ????? ????????? ??????? (??? ???????????? ??????????? ????????? ? ini-????? ??? ?????????? ?????????????????? ?????????). ??? ???? ????????? ?? ????-
????? ? ??????????? ???????? ? ???? ?????????? SQL Server ????? ?????, ? ????????????? ?????????????? ??????????? ?????. ??? ????? ????????? ??????? ??????????? ??? ??????????? ??????????? ??-
????, ??????? ????????? ?? ???????? ??????? ?? ????????? ?????????? ? SQL Server 2005. ??? ????????? ??????????????? ??? ????????? ??????-
???? ??????????, ??? ? ??????? ?????????????????, ?????? ??????? SQL Server ? ?. ?. ??????? ????? ???? ??? ?????????? (?. ?. ?????????? ?? ??? ?? ??????????, ??? ? SQL Server), ??? ? ???????? (?????????? ? SQL Server ?? ????). ???? ????????? ???????????? ?? ????, ?? ?? ?????????? ?????????? ?????? ???? ??????????? ?????????? ??????? ??????????, ??????????????? ???????-
?????? ?????????. ????????? ?????????? ??????? ?????????? ?? ?????????? ????????? ????? ?????????? ??? ?????? ??????? ????????? SQL Server 2005 (? ?????? ??????????? ????? ??????? Client Connectivity (??-
??????????? ????????), ? ????? ? ?????? ??????? ??????????). ?????? ??-
?? ????? ???? ?????????? ??? ?????????????, ????????? ?????????? ?????-
????? ?????????? ???????? OLE DB, ODBC ??? BDE ??? ??????????? ? ѕланирование и установка SQL Server 2005 5
5
SQL Server. ??? ???????? ???????????? ? ????????? ??????? ?????????? TCP/IP. ? SQL Server 2005 ????????????? ?????? ??????? ??????????. Shared Memory (? ?????? ? SQL Computer Management ???????? ??? Sm) ? ??? ?????????? ???????????? ?????? ??? ????????? ??????????? (?. ?. ??????????? ? ???? ?? ??????????, ?? ??????? ?????????? SQL Server 2005), ??? ???????, ????????? ?????????????????. ??? ????? ????-
??? ??????????, ??????? ?? ???? ? ?????????? ??????? SQL Server. ?? ????????? ??? ???????? ?? ??? ???????? SQL Server 2005. Named Pipes (Np) ? ??????????? ????? ? ??????????? ??????, ? ????-
??? ???? ??????? ???????? ??????????, ? ?????? ? ?????????. ????? ?????????????? ??? ??? ?????????, ??? ? ??? ????????? ???????????. ???? ????? ?? ???????????? ??? ?????????? ??????????? ?????? ??????-
??????????? ?????????? ?????? SQL Server, ????????, SQL Server 2000. ?? ????????? ??? ???? ???????? SQL Server 2005 ??? ?????????? ?????-
????. TCP/IP (Tcp) ? ????? ?????????? ??????? ??????????, ??????? ????????-
???? ? ??????????? ??????????? ??????? ? ????? ????? ??????????? ????????????. ??? ?? ???????????, ?? ? SQL Server 2005 ??? ?? ??????-
??? ???????? ?????? ? ???????? Enterprise Edition. ??? ???? ????????? ???????? ?? ???????? ???????? ??????? ????? ?????????. VIA (Via, Virtual Interface Adapter ? ??????? ???????????? ??????????) ? ???????????? ??????? ??????????, ??????? ???????????? ?????? ?? ?????-
?????? ??????? ?????????????. ????? ?? ????????? ????????? ?? ???? ????????? SQL Server 2005. ???????? ????????, ??? ? SQL Server 2005 ?????? ??? ????????? ????? ??-
????? ?????????, ??? Multiprotocol, NWLink IPX/SPX, AppleTalk ? Banyan VINES. ?????????? Multiprotocol, ? ??????? ??????????? ??????????? ????-
????? ?????????? ??????, ?????? ???????????? ?? ????????????? ????-
????????, ? ????? ?? ?? ????????? ????? ????? ?????????? ????????? ??? ???, ??? ?????????? ???????????? SQL Server 2005. ?? ?????? ?????? ?????????? ??? ???: ???? ?? ??????????? ????? ?????-
??? SQL Server 2005, ???????? ?? Enterprise Edition, ?? ??? ??????????? ????????????????? ?????? ?????????? ?????????? ??? ???????? ????? ????????? ??????? ???????? ??????? ?????????? TCP/IP! ??? ?? ????????? ????????? ??????? ??????????? ? SQL Server 2000 ??? ???? ???? ?????????????? ??????????? ???????? ??? ????????? Server Network Utility. ? SQL Server 2005 ??? ?????? ???. ?????? ????? ?????????? ???????????? ??????? ??? ????????? SQL Server Configuration Manager. ?? √лава 2 5
6
????? ????????? ?? ???? ???? | ????????? | Microsoft SQL Server 2005 ??? ?? ??????? Computer Management (????????? Services and Applications (?????? ? ??????????)). ???????? ?????????????? ???? ??????? ? ?????-
????? ???????? SQL Server 2005, ? ????? ?????????? ? ??????????? ????-
???? ????????????. ?????? ? ?????????? ???????? ???????????? ???????-
????? ?? ?????????? Server Network Configuration (??????? ???????????? ???????), ? ??????????? ? ?? ?????????? Client Network Configuration (??-
????? ???????????? ???????). ??? ?????????? ??????? ?????? ??????? ?????????? (??? ??????????? Protocols for ???_??????????), ? ??????????? ???? ??????? ????? Properties (????????) ? ?????????? ?????? ???????? ??????? (????????, Yes (??) ??? ???????? Enabled (????????)). ?????? ? SQL Server Configuration Manager ????? ??????????????? ? ????. 3.3. ? ??? ??? ???????, ????????? ? ???????? ????????????. ??-??????, ? ????????? TCP/IP ???????????? ????? ? ?????????????? ??-
??????? ????????-?????????? ??????. ????? ????? ?????????????? SQL Server ?????????? ???????????? ?????????????? ???? ?????????? ? ???, ????? ????? ?????? ???? ??????? ?? ???????????, ??? ???????? ??????-
?????? SQL Server ???? (????????, ???? ????? ??????? ???????? ?????????-
??? ????? ????????). ?? ????????? SQL Server ???????? ???: ????????? ?? ????????? (default instance) ???????? ???? TCP 1433 ??? ?????? ?????????? ???????????, ? ??????????? ?????????? ???????? ? ????????????? ?????-
??. ??? ??????, ??? ?????????? ????? ???? TCP ?? ????????? ?? ????????-
??. ?????????? ????????? ?????????? ?? ???? 1433, ? ????? ??????? ??????-
????, ?????????? ???? ????, ?????????, ??? ?????? ?????????? ? ????????-
???? ??????????, ?????????????? ??? ?? ?????? ????. ????? ????????? ?? ?????? ??????, ????????? ??????? ???????? ???? ?????? ??????? ?? ?????-
??????. ???????? ??? ????????? ? ????????? ??????????? ????????? ?? ??????????-
??? ????????????? ????? (??? ????????? ????????? ?? ????????? ?? ?????? ????) ????? ???: ???????? SQL Server Configuration Manager; ????????? ? ??? ????????? Server Network Configuration | Protocols for ???_?????????? | Tcp; ? ?????? ????? ?????? ???????? ?????? IP-????? (??? ???????????? ??? IP1, IP2 ? ?. ?.; ??? IPAll ? ????????? ??? ???? IP-???????) ? ?? ??????-
?????? ???? ???????? ??? ????????, ? ?????? ?????????? ???????? ??????-
?? TcpPort. ????? ????????? ???????? ? ????, ??? ???????? ????????????? SQL Ser-
ver 2005. ѕланирование и установка SQL Server 2005 5
7
???? ??? ?????????? SQL Server 2005 ?? ????????? ??????? ? ???????? ??-
??????????? ????? ???? 0, ?? ?? ????? ????? ???? ??? ??????????? ??????-
???, ??????? ????? ????? ????????? ??????? ?? ????? ????????? ?? ?????-
?????. SQL Server 2005 ?????????? ??? ???? ????: UDP 1434. ???? ???? ??????????-
?? ??????? SQL Browser ??? ??????????? ????????????? ???????? SQL Server ? ???? ? ???????????? ?? ??????. ???? ??? ?????????? ???????? ???-
??? ?????????? ? ???? ???????? SQL Server, ?? ???????????? ?????????? ??????? ? ???? ????. ? ??? ???? ?????? ??????. ?? ????????? SQL Server 2005 ???????????? ? ????????? ???????? ? ??????? TDS (Tabular Data Stream ? ????????? ????? ??????), ??????? ?????????? ?? ???????? ?? ?????????. ???? ???-?? ? ??-
??? ???? ?????????? ??? ??????, ?? ?????? ????????? ? ?????? ????????????, ? ??????, ??????? ????????? ??????. ? ?????????? ??????? SQL Server ?? ????? ????????? ?????? ???????? ?????????????? ? SQL Server ????? ???-
??????: ?????????? ??????? ?????????? MultiProtocol ? ??? ?????? SSL (?. ?. ????????? ???????????). ? SQL Server 2005 ??????? ?????? ???? ???-
??? ? ?????????? SSL, ?? ???????????????? ????? ??????? ??????????? ?????????. ????????? ??? ?????????? SSL ??? ?????? ???????? ??????? SQL Server 2005 ????? ?????????? ? ????. 5.6.2. 2.5.3. ƒругие послеустановочные задачи ? ?????? ????????????????? ??????? ????? ???????: ???????? ???????????????? ???? ?????? ??? ????????? ?????? ???????-
???, ????????? ?? ?????????? ? ???????? ? ??? ??????????? ????????; ???????? ??????? ??????? ??? ??????????? ? SQL Server, ????????????? ??? ?????? ? ????????? ??????????; ??????????? ?????????????????? SQL Server 2005: ????????? ?????????? ???????????, ??????????? ??????????? ??? ?????? ? ?. ?.; ???????? ??????? ??????????? ? ??????????? ?????????????????? ??? ?????? ??????????; ????????????? ?????????? ??????????, ?? ????????? ? ????????????. ?????? ?????, ??? ??????????? ? ?????? ????????, ??????? ??????? ?? ?????? ??????????. ????????? ??? ??? ????? ?????????? ? ????????? ?????? ???? ?????. √лава 2 5
8
«адание дл¤ самосто¤тельной работы 2.1. ”становка именованного экземпл¤ра SQL Server 2005 ?????????? ??????????: ?? ??????????, ??????? ????? ?????????????? ??? ????? ???????, ?????? ???? ?????????? Windows Server 2003 Enterprise Edition SP1 ?? ?????????? ???????????: ???????????? ????????? ? ???????; ? ????? ??????????? Windows ?????? ???? ?????????? Application Server ? ??????????? ?? ????????? (????????? ??? ?????? Reporting Services ????? Internet Information Server); ?????? ???? ?????????? SQL Server 2000 Enterprise Edition ??? ????????? ?? ????????? (?? ??????????? ??? ?????????? ??????? ?? ???????? ??-
?????????? ??? ?????? ?? SQL Server 2005). ??? ???? ?????? ???? ??-
???? ?????? ????? ???????????. ??? ????????? ????????? Windows Server 2003 Enterprise Edition ????????? ?? ?????????. ??? ????? ????? ??????? ????????? ?????????? LONDON
. ???????: ?????????? ?? ????????? SQL Server 2005 Enterprise Edition ?? ?????????? ???????????: ?????? ???? ?????????? ?????? ????? ???????????; SQL Server 2005 ?????? ???? ?????????? ??? ??????????? ????????? ? ?????????? ? ??? ?????????????? SQL Server 2000. ??????????? ?????-
???? ?????? ?????????? SQL2005
; ??? ?????? SQL Server 2005 ?????? ???????? ?? ????? ????????? ???-
?????? ??????? ??????; ????? ?????????????? ? Mixed; ?????? ??? ??????? ?????? SA
? P@ssw0rd
; ????????? ?? ????????? ? Cyrillic_General; ?? ???????? ????????? ?? ??????? ? Microsoft. ??? ????????? ?????????? ???????? ???????? ?? ?????????. ????? ????????? ????????? ???????????? ? SQL Server 2005 ?? ??????? SQL Server Management Studio. ѕланирование и установка SQL Server 2005 5
9
???????: 1. ?? ????????? ???????? ???????-????? ? ????????????? SQL Server 2005 ????????? ???? setup.exe. 2. ??????????? ? ???????????? ??????????? ? ?? ?????? SQL Server Component Update ??????????? ????????? ??????????? ??? ????????? SQL Server 2005 ???????????. ?? ????????? ????????? ??????? ?????? Finish (?????????). 3. ?? ?????? ?????? ??????? ????????? SQL Server ??????? Next (??????). 4. ?? ?????? System Configuration Check (???????? ???????????? ???????) ?????????, ??? ??? ?? ?????? (Error), ?? ?????????????? (Warning). ??-
????? ?????? Continue (??????????). 5. ?? ?????? Registration Information (?????????? ? ???????????) ??????? ???? ??? ? ???????? ???????????, ? ????? ??????? ???????? ????? (Product Key) ? ??????? ?????? Next. 6. ?? ????????? ?????? Components to Install (?????????? ??? ?????????) ?????????? ?????? ???????? ???? ??????????? SQL Server 2005 (?????? Create a failover cluster ?????? ???????? ???????????). ????? ??????? ?????? Advanced, ????????? ????????? Client Components (?????????? ??????????), ???????? ?? ?????? Documentation, Samples and Sample Databases (????????????, ??????? ? ??????? ???? ??????) ? ???????? ???????? Entire Feature will be installed on local hard drive (???? ?????-
???? ????? ?????????? ?? ????????? ??????? ?????), ????? ???? ????-
??????? ??????? ???? ?????? ? ???????. ??????? ?????? Next. 7. ?? ?????? Instance Name (??? ??????????) ??????????? ????????????? ? ????????? Named Instance (??????????? ?????????) ? ??????? ??? ???-
????????? ?????????? SQL2005
. ???????? ?????? Next. 8. ?? ?????? Service Account (??????? ?????? ??????) ?????????? ???????-
?????? ? ????????? Use the built-in System Account (???????????? ?????-
????? ????????? ??????? ??????) ? ? ?????? ?????? ???????? Local system (????????? ?????????). ?????????? ?????? ??? ???? ????? ? ???-
???? Start services at the end of setup (????????? ?????? ?? ????????? ??-
???????) ? ??????? ?????? Next. ??? ???? ??????? ?????, ??? ??????? ???????? ????????????? ???????????? ?????? ???????? ??????? ??????. ??????, ????????? ??? ??????? ????????? ??-
????, ?? ? ???? ??????? ??? ???????? ?? ?????????? ????????? ????????? ??????? ?????? ??? ????? SQL Server. √лава 2 60 9. ?? ?????? Authentification Mode (????? ??????????????) ?????????? ????????????? ? ????????? Mixed Mode ? ??????? ?????? ??? ??????? ?????? SA
. ?? ??????? ??????? ?????? ?????? ????????? ??? P@ssw0rd
. 10. ?? ?????? Collation Settings (????????? ?????????????) ???????? ??-
??????? ?? ????????? ???????? Cyrillic_General. 11. ?? ??????? Report Server Installation Options (????????? ????????? Report Server) ???????? ????????????? ? ????????? Install the default configuration (?????????? ???????????? ?? ?????????) ? ??????? ?????? Next. 12. ?? ?????? Error Reporting (?????? ?? ???????) ??????? ??? ??????, ? ????? ?? ?????? Ready to Install (?????????? ? ?????????) ??????? Install (??????????). 13. ????? ????????? ????????? ? ???? ???? | ????????? | Microsoft SQL Server 2005 ???????? SQL Server Management Studio. ????????? SQL Server Management Studio ? ????? Connect to Server (???????????? ? ???????). ???????? ? ???? Server Type (??? ???????) ???????? SQL Server
, ? ???? Server Name (??? ???????) ??????? ???_??????_?????????? \???_??????????
(????????, LONDON\SQL2005
), ? ?????? Authentification ???????? Windows Authentification ? ??????? ?????? Connect. ? ???? Object Explorer ????????? ????????????? ???? SQL Server 2005. √Ћј¬ј 3 —редства администрировани¤ SQL Server 2005 ?????? ????????? ???????? ????? ????????? SQL Server ? ??? ???????? ???? ??????, ? ??????? ????? ???????? ???? ??????????. ?????? ? SQL Server 2005 ??????? ??????? ????????????????? ?????????? ????????? ????-
??, ??? ?????? ????? ???????????, ???????????? ? ??? ? ?????? ???. ? SQL Server 2005 ?? ?? ??????? ?? Enterprise Manager, ?? Query Analyzer, ?? Analy-
sis Manager, ?? ?????? ?????? ????????? ???????? ? ??????. ??????? ? ???? ????? ?? ?????????? ???????? ???????? ??? ?????? ? SQL Server 2005 ? ???????????? ? ?? ?????????????. 3.1. SQL Server Management Studio 3.1.1. „то такое SQL Server Management Studio SQL Server Management Studio ? ??? ??????? ??????? ?????????? ??????-
???????? ? SQL Server 2005. ? ??? ?????????? ??????????? Enterprise Manager, Query Analyzer (? ???????????? ???????? ???????? MDX ? XQuery), Analysis Manager, ??????? ????????????????? Reporting Services ? Notification Services, ? ??? Visual Studio (????????? ??? ???????? ???????? ?????? ???????????? ????????? ??????). ?????????? ??????, ? ?????? SQL Server Management Studio ????? ?????? ????? ?????????? Visual Studio, ??? ?????? ????? ?? ????????? ??? ????. ??????????? ????????????? Microsoft ???????????????? SQL Server 2005 ?? Visual Studio ???????? ????????? ??-
???????, ?? ?????????? ? ?????? ?????????? ????? ?????????? ??????. ? ?????? ????-??????? SQL Server 2005 ?????? SQL Server Management Studio ?????????????? ???????? "SQL Workbench", ??? ???????? ? ???????? ???????????? ????? (sqlwb.exe) ? ? ????????? ????????? ??????????. √лава 3 6
2
????????? SQL Server Management Studio ?????, ???????, ?? ?????????? ??-
?? ???? | ????????? | Microsoft SQL Server 2005. ?????? ??????? ? ???-
???????????? ???????? sqlwb
? ????????? ??????. ?????????? ??? ????????? ????????, ????????? ? ??????????? Management Studio. ???? ?? ???????? ???????????? ????????????? ???????????? ? Enterprise Manager, ?? ?? ?????? ????????, ?????, ??? ? SQL Server Management Studio ??? ?????? ????????. ??? ???? ??????? ?????????? ??? ????, ????? ??????? ????? ???????????? ?????????? ??????????? ??????? ?? ???????????? ? Visual Studio. ???? ?? ?????? ????????? ? ???? ??????, ??????? ??? ? Enterprise Manager, ?????????? ? ???? Tools (??????) ??????? Options (??-
???????), ???????? ????????? Environment (??????? ?????), ???????? ?????? Keyboard (??????????) ? ?????? ????????? Standard (???????????), ??????? ????????????? Visual Studio ? ??????????? ?? ?????????, ??????? SQL Server 2000. ??? ???? ?????? ? ??? ????????? ??????? ??????? ??? ??????? ??? ??-
???????? ????????? ?????? SQL Server Management Studio (????? ???? ??-
??????? ??????? ??????? ???????? ????????? ?? ???? ?????? SQL Server). ?????? ??? ???? ???? ???????????? ???? Tools | Customize (?????? | ??-
???????) (? ????? ? ??????????? ???? ?????? Keyboard), ?? ???? ? ?????? ???????. ????????? ? ??? ???????? ? ?????? "Customizing Menus and Shortcut Keys" (????????? ???? ? ???????????? ??????????) ? Books Online. ???? ? SQL Server Management Studio ????? ???????, ?????? ?? ????????? (????????, ?????? ?????????? ??? ???????????????) ? ?. ?. ????? ??????-
???? ???????? ????, ????? ??????????????? ???? View (???). ???? ? ??????-
?? ???????? ?? ?????? ? ?????? ?????????? ????????, ????? ???????????? ???????????? ????, ???????????? ?? ?????????, ??? ?????? ???? Window | Reset Window Layout (???? | ??????? ???????? ???????????? ????). ????? ?????????????? ? ??????? ????? SQL Server Management Studio. 3.1.2. ќкно Registered Servers ? ???? Registered Servers (?????????????????? ???????) (???. 3.1) ????????-
????, ??? ? ? Enterprise Manager ?????????? ?????? SQL Server, ?? ??????? SQL Server, ? ??????? ????? Management Studio (??? ?????? SQL Server 2005, ??? ? ?????????? ??????). ?????????? SQL Server, ??????? ??????????? ?? ??? ?? ??????????, ??? ???????? Management Studio, ?????????? ? ???? ???? ?????????????. ??? —редства администрировани¤ SQL Server 2005 6
3
???????? SQL Server, ????????????? ?? ?????? ???????????, ??????? ????-
?????? ??????? ??????????? (New | Server Registration (????? | ??????????? ???????) ? ??????????? ???? Microsoft SQL Servers). ???????????? ??? ???-
????? ??????????? ??????? ??????, ??? ? SQL Server 2000. ?? ?????? ??? ??????? ??????? ???? ???, ??? ??????? ?? ????? ????? ? ???? Registered Servers, ????????, ???? ??????, ? ??????? ?? ?????? ???????????? ?? ????-
?????, ??????? ????????, ?????? ?????? ? ????-????. ????? ????, ????? ??-
???????? ?????????????? ?????????? ????? ???????? ??????? Management Studio ? ????? ???????. ???. 3.1. ???? Registered Servers ? SQL Server Management Studio ????? ???????????? ????? ???? ???????? ??, ??? ?? ?????? ????????? ????-
??????? ?? ?????? ??? ????? ???????? SQL Server, ?? ? ??? ?? ???????????: ???????? Analysis Server, Report Server, ????? ?????????? DTS (DTS Server) ? ??? ???????? SQL Server, ????????????? ?? ?????????? ??????????? ? ?????????? (SQL Mobile). ??? ???????? ??????????? ?? ?????? ??????? ??? ???????, ? ???????? ????? ????????????? ???????????. ????? ?????????? ?????? ??? ????????, ?????????? ??????????????? ???????? ?? ?????? ??-
?????????? ???? Registered Servers. ?? ???? Registered Servers ????? ?????? ????????? ????????? ???? ?????? ? Object Explorer (????????? ????????) ??? ????????? ??? ???? ??? ??????-
?????? ? ??????? ???? ????????? ???? ????????. ??????????? ??? ???????? ?? ???????????? ???? ???????, ????????, Connect | New Query (??????-
?????? | ????? ??????) ??? Connect | Object Explorer (???????????? | ???-
?????? ????????). ??? ????? ????? ???????????? ????? ???? ???????? ??, ??? ?? ?????? ???-
??????????? ?????????? ? ???? ?????????????????? ? ???? ???? ???????? (?? ????? ??????????? ???????????, ??????? ????????? ??????? ?????????, ?????? ? ?. ?.) ? ???? XML, ? ????? ????????????? ??? ?????????? ? √лава 3 6
4
Management Studio, ????????, ?? ?????? ??????????, ??? ???????? ???? ??-
??????. ??? ???????? ??????????? ??? ?????? ?????? Import ? Export ?? ???????????? ???? ????????? ???????? ?????? (????????, ??? Database Engine) ? ???? ????. 3.1.3. ќкно Object Explorer ?? ????????? ????? ??? ????? Registered Servers ????????????? ???? Object Explorer. ?????????? ??? ???? ???????????? ????? Enterprise Manager, ??????? ??????? ? Management Studio. ???????? ????? ???????????????? ???????? ? ?????????, ?????? ?????? ? ????????? ??? ?????? ???????????? ??? ?????? ????? ????. ?? ????????? ? Enterprise Manager, ?????? ???????? ???????? SQL Server ? ???? ???? ????? ??????: ?????? ? ??? ????? ????? ?? ????????? ???????? ? ???????, ??????????? ???????????, ?????????, ???????? ? ???? ??????????. ????????, ?????????? ??? ??????? Sales.Store
??????? ???? ?????? AdventureWorks
???????? ???, ??? ???????????? ?? ???. 3.2. ?????????? ???? ?????? ????? ??????????? ??????????, ????? ???????? ????? ???????????????? SQL Server 2005. ????????, ????????? ???? ???-
??? AdventureWorks
??????????? ?? ???. 3.3. ???? ? ?????? Object Explorer ???????????? ????? ????? ????????, ? ??? ????? ?????? ????????? ?? ???, ?? ?????? ????????????? ???????????? ??????? ??? ?????? ?????? Filter (??????) ?? ?????? ???????????? ????? ????. ??? ?????? ?????? ?????? ?? ?????? ??????? ????? ?????????? ? ?? ????? ???????? ??? ?? ?????. ????????? ??????? (??????????? ???? ??????, ???????? ????? ???????????? ? ?. ?.) ?????? ????? ????????? ?????? ?? ???????????? ???? ? Object Explorer. ???????????? ?????? ? ???? Tools ? SQL Server Management Studio ??? ?? ?????????????. ??????????, ??????? ????? ????????? ?? Object Explorer, ????? ?????. ?? ?????????? ?? ? ??????????????? ???????? (????????, ???????? ??? ?????? ?????????? ? ????????? ??. 4). ??????? ??? ???? ??????????? Object Explorer: ??? ????????? ?? ?????? Enterprise Manager, ?? ? Object Explorer ?? Query Analyzer ? SQL Server 2000. ??????? ? ???? ???? ?? ?????? ?? ?????? ????????? ????????? ???????? ?? ??????????? ??????, ?? ? ?????-
???? ??????? ?????? ????? ??? ????? ?????? ????????. ????????, ??? ???-
??? ????? ????????? ??????? ?? ???????? ???????, ?? ????????, ???????, ???????, ????????? ? ???????? ??????, ??? ??????????? ??????????? ? ?? ????????, ???????? ? ?. ?. —редства администрировани¤ SQL Server 2005 6
5
???. 3.2. ?????????? ? ??????? ? ???? Object Explorer ???. 3.3. ????????? ???? ?????? AdventureWorks
? Object Explorer √лава 3 6
6
3.1.4. ќкно Document ??? ??????? ???? SQL Server Management Studio. ??? ???????????? ??? ???-
?????? ??????? ?????????? ??? ????????, ????????? ? Object Explorer, ??? ????????? ???????? ? ????????? ?? ???????????, ??????????? ?????? ?????-
??, ?????? ?????????? ? ?????????? ?????? ??????? ? ?. ?. ??? ???? ????? ???????? ? ???? ?????????: Tabbed ? ????? ??? ???? ????????? ?? ???????. ?? ?????? ??????? ???-
????????? ???? ??????????. ???? ????? ???????????? ?? ?????????; MDI ? ????? ??? ??????? ????????? (???????, ?????? ??????? ? ?. ?.) ??-
????????? ???? ????????? ????, ??????? ????? ?????????? ?? ?????? Management Studio. ????????? ??????? ??? ????? ??????????? ?????????? ????? ??? ?????? ???? Tools | Options, ?????????? Environment | General (??????? ????? | ?????), ?????? ????????? ?????????? Environment Layout (????? ??????? ?????). ?????? ? ???? Document ? ??? ?????????? ?????? ? ??????????, ??????? ? ??? ????????????: ??????? ?????????? ????????, ???????, ?????? ???????. ?????? ?? ????????? ????? ??????????? ????. 3.1.7. ??????? ??????, ??? ???-
???????? ??????? ?????????? ??? ??????????? ??????? ? Object Explorer ????? ??? ?????? ??????? <F7>. 3.1.5. ќкно Solution Explorer ?????? ???????? ?? ??? ???? ??? ?? ???? ? ?????????? ??????? SQL Server. ???? Solution Explorer (????????? ????????) (???. 3.4) ?????? ?? Visual Studio. ??? ????????? ???????? ?????? ????? ???????????: ??????? (????????, ?? ????? SQL ??? MDX) ?????? ????? ?????????????? ? ??????? ? ????? ??? ??, ??? ??? ???????? ? ???????? ???? ? ??????? ? Visual Studio. ???????, ? ???? ???????, ????? ?????????????? ? ??????? (solutions). ??? ???? ??? ???????????: ????????? ????????? ????? ????? ??????? (????????, ??????????? ? ??-
??? ??????) ????? ?????????? ??????; ????? ????????? ???????? ??????? ? ?????????? ???????; ?????? ? ??????? ????????, ??????? ?????? ?????????? ???????? ?????-
????? ???????? SQL Server Management Studio (?????????????? ??????? SQL, MDX ? SQL Server Mobile), ????? ??????? ?????????????? ?????-
—редства администрировани¤ SQL Server 2005 6
7
?????, ????????, ?????????? ? ????????????, ??????? ????? ????????-
?????? ??? ???? ???????? ?? ?????????, ??? ????? ?????? ????? (??-
??????, XML, BCP, TXT ? ?. ?.). ??? "???????????" ????? ????? ????? ?? ?????????? Miscellaneous (??????). ???????? ?? ?????, ????????????-
???? ???????? Add | Existing Item (???????? | ???????????? ???????) ???????????? ???? ???????; ???. 3.4. ???? Solution Explorer ??????? ? ??????? ????? ????????? ? ???? ?????? Visual Source Safe (??? ??????????? ??????????? ???????? ?? Microsoft, ??????????????? ??? ??-
????????? ?????????? ?????? ??? ????? ?????? ?????????????). ??? ???????? ?????? ?????????????? ?????? ? Visual Studio. ?????? ????????? ??????????? ???????????? ??? ? ??? ???????? SQL ? MDX. ??????? ??, ????????? ? ??????????? ???????? ? ?????????? ?????????, ?? ????????? ? ??????? ? ???????, ??? ??? ???? ? ?????????? ??????? SQL Server. ???? ?????? ? Solution Explorer ???????? ????? ??????. ??? ???? ????? ??????? ??????? ??? ?????? ???? View ??? ???????????? ??????????? <Ctrl>+<Alt>+<L>. ????? ??? ?????? ???? File | New (???? | ?????) ???-
????? ????? ??????. ?? ????????? ??? ???????????? ??????? ????? ??????? ????? ???????. ???? ?? ?????? ???????? ?????? ? ??? ????????????? ??-
?????, ?????? ????? ????????? ?? ???????????? ???? ????? ??????? ? ???? Solution Explorer. ????? ???? ??? ??????? ? ?????? ????? ???????, ??? ?????? ???????????? ???? ???? ???????? ? Solution Explorer ????? ????????? ????? ??????? ? ?????? ???????? ???????. √лава 3 6
8
?????????? ??????? ??????????? ? ???? ??????: ? ??????????? ssmssln ? ????, ?????????? ? ???????? ?????????? ? ????????, ??????? ?????? ? ???????, ? ????? ? ?????? ?????????? ???-
????? ? ????????? ???? ? ???. ??? ????????? ????, ??????? ????? ????-
???? ??????????????; ? ??????????? sqlsuo ? ???????? ????, ???????????? ????????? ???????????????? ????????? SQL Server Management Studio, ??????????? ??? ?????? ? ?????? ????????. ?????????? ? ???????? ???????? SQL ??????????? ? ?????? ? ??????????? ssmssqlproj (??? ???????? ???????? MDX ? ssmsasproj, ??? ???????? SQL Server Mobile ? ssmsmobileproj). ? ???? XML-??????????? ?????? ???????? ?????????? ? ??????????, ??????????? ???? ??? ??????? ????????, ? ????? ? ???? ????????? ??????? ??????? (????????, ???????????? ? ?????? ??????). ?? ????????? ?????????? ??????? ? ???????? ?????????? ? ??????? ??? ?????????\SQL Server Management Studio. ??? ??????????? ??????? ??? ??????? ?? ?????? ????????? ?????????? ?????? ??????????? ???? ????-
??? ?????????? Windows Explorer. 3.1.6. ƒругие окна SQL Server Management Studio ????????? ???? SQL Server Management Studio ?????? ??? ?? Visual Studio, ??? ?? ??????? ????????????????? ?????????? ?????? SQL Server. ???? Template Explorer (????????? ????????) ?????? ?? Query Analyzer ? SQL Server 2000. ??? ???? ????????? ????? ?????? ??????, ?. ?. ????????? ??????? ??? ?????????? ???????????? ????????. ? ??????? ?????????? ???????? ???? ??????????? ????????? (???????? ? ??????? ???????) ? ? ?????? ?????. ??? ???????, ??? ???????, ??? ?????????? ??????? ?? ???????. ???????? ????????, ??? ??????? ???????? ???????? ? ??????? ??????? ??? ?????? ?? ?????????. ??????? ??????? ??????????????? ??? ???? ???? ????? Specify Values for Template Parameters (??????? ???????? ??? ?????????? ????????) (???. 3.5). ??? ???? ????? ??????? ??? ?????? ??????????? ??????? ?? ???? Query (??????). ?????????? ????????, ??????? ???????????? ? SQL Server 2005, ???????? ???????????. ?? ????? ?????? ????????? ? ??? ???? ???????. ??? ????? ?????????? ?????? ??????? ????? ???? ? ??????????? sql ? ????????? ??? ? ?????? ???????. ???????, ? ??????? ????????? ????? ????????, ?? ??????-
??? ???????? ?? ???? C:\Program Files\Microsoft SQL Server\90\Tools \Binn\VSShell\Common7\IDE\sqlworkbenchnewitems. —редства администрировани¤ SQL Server 2005 6
9
???. 3.5. ???? ??????????? ???????? ?????????? ? ??????? ?? ?????????? ???????? Query Analyzer ? SQL Server 2000, ? SQL Server Management Studio ????????????, ????? ???????? ???????? SQL, ???-
?? ??????? ??? ???????? MDX ? SQL Server Mobile. ?? ????????? ???? Template Explorer ???????. ??????? ??? ????? ??? ??-
???? ???? View ??? ???????????? ??????????? <Ctrl>+<Alt>+<T>. ???? Properties (????????) ? SQL Server Management Studio ?????? ???? ?????: ???? ???????, ??????? ????????????? ??? ???????????????? ?????. ??? ???? ??????????? ?? ???????????? ???? ???????? ? Object Explorer, ??-
??????, ??? ??????, ?????? ??? ?????????????. ????????? ? ?????????? ????? ???? ????????? ??????? ?? ???? ?????????? ???????. ?????????? ???? ???? ?? ????? ????????????? ? ??????, ??????????? ????????????-
??? ????????; ???? ???????, ??????? ????????????? ??? ????????????? ? ??????? ?? ??????? ???? ??????? ? Visual Studio. ??? ???? ????????, ????????, ??? ???????, ???????? ??? ????????. ?? ????? ??????? ?? ???????????? ??-
?? ???? ???????? ??? ??? ?????? ???? View. ??????? ????? ?????????? ? ???? ????? ???????? ?????? ?? ??????, ? ?????? ? ???? ?? ???????? ??-
???-???? ???????. ???? Toolbox (???????? ??????????) ?????? ?? ?? ?????, ??? ? ? Visual Studio ? ????????? ????????????? ? ?????? ????? ??????????? ???????? ??????????. ?????? ????????? ? SQL Server Management Studio ??????? ???-
???????? ???? ?? ?????????????, ??? ???????????? ????? ?????. ????????, ??? ?????? ????? ???? ????? ???????? ????? ???????? ? ????? ???????-
????? ??? ?????? (database maintenance plans). √лава 3 70 ???? Bookmark (????????) ????? ?????? ?? Visual Studio. ? ???? ???? ???-
????????? ?????? ????????, ??????? ????? ?????????? ? ????? ?????? ????????. ??????????? ???????? ????? ??? ?????? ?????? ???????????? Text Editor (???????? ??????) (??? ?????? ????? ??????? ??????? ??? ????-
?? ???? View | Toolbars | Text Editor (??? | ?????? ???????????? | ??????-
??? ????????)). ??? ????????????? ? SQL Server Management Studio ??????????? ? ?????? ????: Internet Explorer, ????????? ??????, ????????? ?????????? ???????? ? ?. ?. ??? ?????? ????????, ? ????????????? ?? ?? ????? ?? ?????. 3.1.7. ѕриемы работы со скриптами ?????? ?????????????? ? ???????????? ??????????? ?????? ????? ???????? SQL. ???????, ??? ????? ???? ?????? ?????? ???? ??????? ?? ?????????-
?? ?? ?????? ??????????, ??? ???? ??????? ??????????? ????? ?? ????? ? ???? ?????????, ??????? ????? ???????????? ??? ???????? ???????? ? Query Analyzer ? SQL Server 2000. ? ? SQL Server Management Studio ????????? ??-
??? ??????????? ? ???? ???????. ??????, ? ??? ?????????? ???????, ? ??? ????? ?????????? ??? ??????????-
??? ????????? ?????? ? ????. ????? ?????????? ?????, ???? ??????????????? ?????????? ?????????????? ????????? ???? ????????. ?????? ???????????, ? ??????? ?? ??? ???????? ?????, ? ?????????????-
?? ???????? ????????? (??????????? ??? ???????????? ????) ??? ??-
???? Template Explorer. ?? ?????????? ?????????? ???????? ?????-
???????? ??????? ??? ????? ?????? ????????. ???????? ?????? ??, ??? ???? ?????????? ??? ???????, ??????????? ??? ??? ???? ????????, ???-
?? ? ?????????????? ??????, ????????? ?????????? ???? Specify Values for Template Parameters (??. ???. 3.5), ??????? ??????????? ??? ?????? ??????? Specify Values for Template Parameters ?? ???? Query. ?????? ??????? ? ??????????????? ?????????? ?????????????? ????????? ???????? ?? Object Explorer (???. 3.6). ????????, ??? ??????? ????? ????????????? ??????? ?? ?? ???????? (??? ???????? ??????? ???????), ????????, ??????? ?????? (????? ?????????-
?? ??? ??????? ???????), ?????????? ????? ??????, ????????? ??????-
?????? ??????? ? ???????? ??????. ???? ???????? ? ??????? ????? ? ?? ?? ??????? ???????? ??? ?? ?????, ????? ?????? ????? ?????????? ????? ???????. ?????? ??????? (? ????? ?????? ??????, ????? ???????) ? ?????????????-
?? ??????????? ???????????? ???????? Query Designer ? SQL Server Management Studio. ??? ???????? ???????? ?????? ? ??? ?????????, ????? —редства администрировани¤ SQL Server 2005 71 ??? ????? ??????? ??????? ?????? ?? ?????????? ??????????, ??????? ? ??????????. ? ??? ??????? ????? ????????? ????? ??????? ???????, ?????? ?? ???? ???????? ????????????? ? ?????????? ????? Transact-SQL. ???. 3.6. ?????????????? ????????? ???????? ?????????? SQL Server Management Studio ????? ????? ???????????? ??????????? ??????? ???: ????? ??????? ? ???? ????????? ???????? ?????? ?????? ? ???????? ?????? ??????? ???? ?? ???-
???? ???????????? ? ???? ????. ????? ? ??????????? ???? ????? ??????? ????? Design Query in Editor (?????????????? ?????? ? ?????????) (???. 3.7). ????????? ???? Query Designer, ? ??????? ????? ????? ??????? ?????? ???????, ??????? ? ???, ????????? ???????? ??????????, ??????? ??????? ??????????, ??????? ? ?. ?. (???. 3.8). ????? ????, ???? ?? ?????? ??????? ?????? ??? ?????-???? ???????????????? ???????? (???????? ??????, ?????????????? ?????????? ? ?. ?.), ?? ? ????? ???????????? ? ?????? Script (??????) ? ??????? ????? ???? SQL Server Management Studio (???. 3.9). ??? ?????? ???? ?????? ????? ????????????? √лава 3 7
2
??????? ??????, ? ??????? ????? ??????????? ????????? ???? ?? ???????-
???? ?????? ????????. ???. 3.7. ?????? ??????????? ???????? ???? ?? ????? ?????????????????? ????????????, ??????? ?? ???? ? Query Analyzer ? ??????? ????????? ? SQL Server Management Studio, ? Intellisense, ?. ?. ????????? ??? ????? ???? (??? ???? ?????? ?? Visual Studio). ? ??????-
???, ????????? ? Management Studio ?? ???????? ? ????????? ???? SQL, ??? ????? ??????? ?? ????????. ??? ??????????? ?????? ?? ??????????????? ??-
????????, ????????, ? ????????? ???? XML (XML Editor). ????????? ?????? ? ??????????? ????? ??? ?????? ???? Tools | Options, ????? ? ?????? ???-
?????? ????? ?????????? ???? Text Editor | All Languages | General (?????-
??? ?????? | ??? ????? | ?????). ?????? ????????? Statement Completion (?????????? ??????) ??? ??? ? ???????? ?? ?????????. ??????? ??? ???? ?????? ???????????. ???? ??? ????? ??????????? ??-
???????? ?????-?? ??????? ??? ?????? ? ??? ?????????, ?? ??? ????? ???-
???? ?? SQL Server Management Studio, ?? ?????????? ???? Transact-SQL. ??? ??? ????? ????????? ?? ?????????? ???????? ??????????? ??????????, ?????????? ????, ??? ??? ??????? ? Access. ??? ???? ????? ??????? ???????-
??? ???????? ?????? Management Studio, ?????????? ? ???? Object Explorer —редства администрировани¤ SQL Server 2005 7
3
???. 3.8. ??????????? ??????????? ???????? ???. 3.9. ?????????????? ????????? ???????? ??? ????????, ??????????? ?????????? Management Studio √лава 3 7
4
???. 3.10. ?????????? ???????? ?????? SQL Server Management Studio ???????? ?????? ??????? ???? ?? ??????? ??????? ? ? ??????????? ???? ??????? ????? Open Table (??????? ???????). ????????? ????, ??????????? ??????????????? ?? ???. 3.10, ? ??????? ?? ?????? ????????????? ? ????-
???? ?????? ???????. 3.2. Business Intelligence Development Studio Business Intelligence Development Studio ? ??? ?????? ????????? ???????-
???? ???????? ??? ?????? ? SQL Server 2005. Business Intelligence ???????? ??????????? ??? "??????-????????", ?, ?????? ??????, ???? ?????? ???????-
???? ????????? ? ?????????? Data Mining ? ?????? ??????. ????????? ???? ?????????? ???? ??????????? ? Analysis Services, ??????? ???????????? ? SQL Server 7.0 ? 2000. ??????, ???????? Business Intelligence Development Studio ???????? ?????????? Microsoft ???????? ?????????????? ???????? ? ???? ??????????? SQL Server 2005. Business Intelligence Development Studio, ??? ? SQL Server Management Studio, ?????????? ? ???? ??????????? ????? ?????????? ??????????? ???????, ??-
????? ? ?????????? ??????? SQL Server ???????????? ?? ???????????. —редства администрировани¤ SQL Server 2005 7
5
??????? ????? ????? ? Development (??????????): ??? ???????? ???????????-
?? ??? ?????? ? ???????????? ?????????. ??? ?????? Business Intelligence Development Studio ?? ?????? ???????? ? ????????? ????????? ?????: ??????? Analysis Services, ??????? ???????????? ????? ???? ?????? OLAP ? ???????????? ????????????: ??????, ?????? ???????????, ??-
?????? ?????? ?????? ? ?. ?.; ??????? Integration Services, ??????? ???????? ???????? ???????????-
????? ??????? DTS ?????????? ?????? SQL Server. ?????? Integration Services ? ??? ????????? SQL Server, ??????? ? ????? ?????? ?????????, ????????, ?????? ???? ?????????. ?????? ? ??? ????????? ??. 10; ??????? ???? Report Project ? ??? ?????? ? ????? ??????, ??????? ?????? ????? ???? ????????? ?????????? Report Designer. ?????? Reporting Services ???????????? ?????? ? SQL Server 2005, ? Report Designer ???????????? ? Business Intelligence Development Studio; ??????? ???? Report Model ? ??????????? ??? ??????, ????????????-
??? ??? ????, ????? ???????? ??????????? ????????? ????????? ??????. ??????? ?????????? ?????? ??????? ? ??? Data Source Views (?????????? ??? ????????? ??? ??????, ??????? ?????? ??????????? ? Enterprise Manager, ? ?????? ????????? ?? SQL Server Management Studio) ? Report Models (???????? ?????????, ????????? ? ?????? ????? ???? ? ???? ???-
???). ????????? Business Intelligence Development Studio ???? ?? ??????????? ??-
???????? ????????, ????????? ??? ??????? ????? ?????????? ??? ?????? ??-
????????? ????? ?????????? Visual Studio 2005. ? ??? ?? ?????? ??????? ??? ??????? ?????? ??????? ??? ???? ? ???????? ? ??? ???????????? ?????????? Visual Studio. 3.3. SQL Server Configuration Manager 3.3.1. „то такое SQL Server Configuration Manager SQL Server Configuration Manager ? ??? ??? ???? ????? ???????? ????????-
????????? SQL Server 2005. ??????????? ??? ?? ?????????? ???? ???? | ????????? | Microsoft SQL Server 2005 | Configuration Tools | SQL Server Configuration Manager. ??? ?????????? ? ???? ??????????? Service Manager, Server Network Utility ? Client Network Utility ?? SQL Server 2000. ?????? ?? ???? ?????? ?????? ????????????? ???? ????????? Configuration Manager (???. 3.11). ?????? ????????? SQL Server 2005 Services (?????? SQL Server 2005) ??-
?????????? ?? ?????? SQL Server 2005, ?????? ????????? SQL Server 2005 √лава 3 7
6
Network Configuration (??????? ???????????? SQL Server 2005) ? ?? ???-
?????? ??????? ?????????? SQL Server, ? ?????? ????????? SQL Native Client Configuration (???????????? SQL Native Client) ? ?? ????????? ??-
???? SQL Native Client. ? ?????? ?? ??? (? ? ??????????? SQL Server 2005, ???????? ????????? Configuration Manager) ?????????????? ? ????????? ????????. ???. 3.11. ??????? SQL Server Configuration Manager 3.3.2. —лужбы SQL Server 2005 SQL Server 2005, ??? ? ??? ????????? ???????? Microsoft, ?????????? ? ???? ?????? ?????. ?????? ????? ?????????? ??? ??????????? ?????????, ??-
????? ???????? ?? ????? ????? ??????????? ??????? ??????. ?????? ?????-
?????? ?????????? ?? ????, ????? ?? ???????????? ? ???????. ??? ?????? ?????? ????????? ??????????? ?????? ? ??????? ??????? HKEY_LOCAL_MACHINE \System\CurrentControlSet\Services
. ?? ????? ????, ??????? ????? ???????? ? ???????? ???????????? ?? ??? ?? ??????. ????? ?????????? Windows ????? ??????? ???????. ??? ????? ?????????? ??????? ? ??????? ??????????? ?????? ??????? ??? ?????????-
?????? ????????? ?? ?????? Windows Server 2000 Resource Kit: ???????? Service Installation Wizard (srvinstw.exe) ? ??????????? ??????????? ??? ?????????? ???????? Srvany.exe. ? ????????, ?????? ?????? ????? ?????-
???? ? ?????? ???????? ??????????. ????????, ? ?????? ???????? ?????-
—редства администрировани¤ SQL Server 2005 7
7
????? ????? ????????? ?????? SQL Server 2000 ? SQL Server 2005. ????? ????????? SQL Server 2005 ?? ????????? ??????, ?????????? ??????? ????????? ?????? ? Windows, ??????? ? ??????? ????????? SQL Server 2005 (?? ????????? ??? C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL \Binn) ? ????????? ??????? sqlservr
. ??? ???? ??????? ?????? ????????????, ??? ??????? ?? ?????????, ?????? ???????? ????? ???????????? ??????? ?? ????? ?????????? (??????? ? ??????? ??? ??????, ???????? ??? ????? ?????-
??????? ??????? ? ?. ?. ? ?????? ?????? ??? ???????? ? ????. 2.2.4), ????-
???? ?? ????????? ?? ???????? ??????? ?????? (???? ? ??????? ??????-
????????). ??? ??????? ??????? ?? ????????? ?????? ?? ??????? ????????? ????? ? ???? ???????. ?????? SQL Server ? ????? ?????? ????????? ???? ??? ??????????? ? ?????? ????? ??? ???????, ???? ??? ???????? ??? ????????? ??? ?????? ??? ???????????? ??????? ??????? (????????, ????? ????????, ?????????? ?? ???? ??? ?????????? ???????????? ????????). ????? ?????? ?????? ? ?????? SQL Server 2005? ???????? ?? ???????? ? ???????? ?????????????. SQL Server ? ??? ??? SQL Server, ???? ???? ??????. ??? ???????????? ?? ?????? ? ??????? ???? ??????, ????? ???????????????? ???????????, ?????????? ???????? ? ?. ?. SQL Server Agent ? ??????????? ??????, ??????? ???????????? ?? ????-
????????? ?????? ? SQL Server. ??? ???????? ?? ?????????? ??????? ?? ??????????, ?? ?????????????? ? ?????? ????????? ????????. ??? ???-
????? ?????????? ???? ?????? ?? SQL Server ????????? ??????????? ????????? ???? ?????? MSDB. ???????? ????????: ???? ?? ????????? ???????? ?? ????????? ?? ??????? ??????? ????????? SQL Server 2005, ?? ??? ?????? ????????????? ??????????? ?? ?????. Report Server ? ??? ?????? ???????????? ????????? ????????? Reporting Services. ??? ???????????? ?? ????????? ???????, ?????????????? ?? ????-
?????????, ?????????? ????????? ????????? ???????? ? ????????. Analysis Server ? ???? ??????? ??? ?????? OLAP. ??? ?????? ????????? ???????????? ?? ?????? ? ?????? ?????? OLAP ? ?? ????????????, ??-
??????, ? ??????. DTS Server ? ??? ??????, ????????????? ?? ?????? ? ????? ?????? DTS (?. ?. ?? ???????? ????????, ???????? ? ?????????????? ??????, ??????? ?????????? ??? ?????? ??????? DTS). msftesql ? ??? ?????? ?????? ?????????? Microsoft Search. ?? ??????? ?????? ? ?????? ? ??????????????? ????????? (??? ??? ????????, ??? SQL Server 2005 ?????? ???????????? ? ????????????? ?????????????? ?????). √лава 3 7
8
? ?????? SQL Server 2005 ?????? ??? ??? ??????, ?? ? Configuration Manager ??? ??????-?? ?? ????????????. SQL Browser ? ??? ?????? ???????????? ?? ???????????? ?????? ?????-
??? SQL Server ? ????. SQL Writer ? ???????? ? ???????? ??????? (shadow copies) ??? ?????? SQL Server 2005 ? ???????????? ??? ?????????? ?????????? ??????????? ? ??????????? ??????, ??? ?????????? ?????????????. ??? ?? ??????, ?? ????????? ? SQL Server 2000 ?????????? ????????? ????? ?????. ? ?????? ??????????? ?????? Distributed Transaction Coordinator, ????-
??? ??????? ? ?????? SQL Server 2000, ?? ??? ?????? ?? ??????: ?????? ??? ????????? ??????????? ???????????? ???????. ??? ????? ??????? ??? ?????? SQL Server 2005 ? ????? ?????? ??????????-
???? ??? ??????? ??-??????, ????????, ??? ?? ?????? ????????? ????????????????, ????? ?????? SQL Server ? ?????? SQL Server Agent ???????? ?? ????? ???????? ??????? ?????? (????????? ?? ???? ??. ????. 2.2.4). ??-??????, ?????? ?????? ????? ?????????. ?? ?????? ???????????? ?????? ?????????? ?????? ?????? SQL Server. ???? ?? ?? ????????? ? OLAP ??? Reporting Services ??? ??? ?? ????? ???????? ????????????? SQL Server Agent, ?? ??? ???????? ????????? ???????? ??? ?????? ????? ????????? ? ????? ??????? ??????? (manual). ??????, ?????????? ? ????????? ?????? ??????? ????? SQL Server 2005 ????? ?????????? ??? ?? ??????? ?????? ? ????????? ???? ???? | ????????? | ????????????????? ???????????? ???????, ??? ? ?? Configuration Manager. ?-???????, ?? ??????? Advanced (?????????????) ??????? ?????? ? Configuration Manager ?? ?????? ??????????? ??? ???????? ?????? ?????? ????????? ?????? ????? SQL Server 2005, ????????, ?????????? ?? ????????????? ??????? ??????????, ?????????? ??????? ? ?. ?. 3.3.3. Ќастройка серверных сетевых библиотек средствами SQL Server Configuration Manager ??? ???? ?????? ??????? SQL Server Configuration Manager ? ??????????? ????????? ????????? ? ?????????? ??????? ????????? (??, ??? ? SQL Server 2000 ??????????? ??? ?????? ?????? Server Network Utility ? Client Network Utility). ??????? ?????????? ? ??? ??????????? ??????, ??? ??-
???? ??????? ?????????? ??????????? ??????????? ???????????? ??????-
????? ? ??????? SQL Server. ??? ????? ????????? ??????? ????????? ???-
????? ?????????????? ? ????. 2.5.2, ? ????? ??????? ??????, ??? ???????? ??-
????? ?????????? ????? ?? ?? ???????????? ???? ? Configuration Manager. ?????????????? ??????????? ????? ?????????, ?????? ???????? ?????? —редства администрировани¤ SQL Server 2005 7
9
??????? ??????????. ??? ???????? ????? ???????????? ??????? ?????????? TCP/IP ????? ????????? ????????? ????????? ??? ??????? IP-??????, ??-
??????????? ??? ??????????, ?? ??????? ?????????? SQL Server 2005. ??? ???????? ???????????? ? ???? ??????? ???????? IP1, IP2 ? ?. ?., ??????? ??-
???????? ? ?????? ????? ??????? Configuration Manager, ????? ? ????? ????? ?????? ???????? TCP/IP. ??? ???? IP-???????, ??? ??????? ?? ?????????? ???? ?????????, ????????? ???????????? ??? ?????? ??????? IPAll. ?? ????????? ???????????? ?????? ???? ??????, ??? ????????? ??????? ??? ???-
??????? IP-??????? ?????????. ????? ??????, ??? ????? ?????????? ??? ??????? ??????????? IP-?????? ??? ???? IP-???????, ? ??? ?????? ??????, ?? ??????? ????? ????????? ??????-
?????????? ?????????? SQL Server. ????????? ?? ????????? (default instance) SQL Server 2005, ???? ?? ?? ???????? ???????? ?????????, ??????-
??????? ???????? ???? 1433. ????????? (???????????) ?????????? SQL Server 2005 ?????????? ???????????? ?????, ?. ?. ????? ????????? ????? ?? ???? ??????????. ??? ??????????? ???????????? ? ???????????? ?????-
????? ?????? SQL Server Browser (?????????? ?? ????? 1434) ???????? ???-
??????? ????? ????????????, ????? ???? ????? ??????????? ???????????? ? ????????? ?????. ???????? ???????????? ????? ??? ?????? ?????????? ????? ????? ??????: ?????????? ??? ??????????? TCP/IP ??? ????? ??????-
???? ???????? ?????? IP ? ?????? ??????? ? ???????? ???????? ???????? TCP Dynamic Ports (???????????? ?????) ????????? ???????? 0. ?????? ???? ????????? ????????? ???????? ???????? ? ????????? SQL Server ?? ?????? ?? ??????????? ?????? (?????? ????? ??????? ???????????? ?????-
??????). ??? ????????? ???????????? ????? ????? ?????? ?????? ????? ????? ? ????????? ??????? IP ??? ????????? TCP Port. ????????? ??????? ????? ????? ??????? ???????? ????????? ? ?? ????????????: ?? ???????? ?????-
???? ??????????? ?? ??????????? ? SQL Server 2005! SQL Server 2005 ????? ??????? ?????????? ? ????? ????, ????? ?? ?? ????-
????? ?????????? ? ???? ?????? ??????????? (? ?? ????????? ? ??????-
???????? ??????? ???????? SQL Server). ????????? ???? ???????? (HideIn-
stance) ????? ?? ??????? ?????????? Protocols for ???_??????????. ?????? ?? ????? ???????? ?????????? ???????????? ?? ???? SQL Server ?????? ?????????? SSL ? ??????? ???????????? ??? ????? ??????????. ????????? ??? ?????? ??????? SQL Server 2005 ????? ?????????? ? ????. 5.6.2. 3.3.4. Ќастройка клиентских сетевых библиотек средствами SQL Server Configuration Manager. SQL Native Client ??? ???? ??????????? Configuration Manager ? ?????????? ??????????? ???????? ????????????, ?. ?. ?????????? ?? ??????? ???????, ??? ?????? √лава 3 80 ??????? ???????????? ??????????? ? ????????? ??????? ??????????? (?. ?. ? SQL Server 2005). ????? ??????? ????????? ??????: ??? ?????????, ????-
??? ???????????? ?? Configuration Manager ??? ?????????? ?????????, ????-
????? ? SQL Native Client. ??? ??? ?????? SQL Native Client ? ??? ????? ??????????? ????????, ??????? ???????????? ? SQL Server 2005 ? ????????? ???????????? ????? ??????????? SQL Server 2005 (????? ??? MARS, ??????? ????????? ?????????? ?? SQL Server ????? ???????, ?? ????????? ???????? ??????????? ?????????? ??????????, ?????? ? ????? ?????? XML
? ?. ?.). SQL Native Client ?????????? ??????????? ????? ????????? ? ??????????? ???????? MDAC (Microsoft Data Access Component ? ?????????? ??????? ? ?????? Microsoft). SQL Native Client ????? ??????? ??????????? ??? ???????????? ???????????? ??????? ? ???-
??? OLE DB ? ODBC. ???? ????? ??????????? ???????? ????????? ? ADO, ? ??? ??????????? ????? ???????????? ?? ADO ????????. ????????????? SQL Native Client ?? ?????????? ?????????? ??? ???, ???- ?????? ??????? ?? ????, ??? ???????? ??????????, ??????? ????? ?????????? ? ??????????? ??????????. ??????????? ??????????? ?????????? ?????-
????? ?????? ?? ????? ? SQL Native Client ? ?????????? ??? ??????????? ??????????? ?????????? OLE DB, ODBC ??? BDE. ?? ?????? ????????? ???? ????? SQL Native Client ??? ????? ?????? ??????????, ???????????? ? ????? SQL Server 2005, ????????, SQL Server Management Studio. ?? ???? ???? ????? ?????????? SQL Native Client ?? ?????, ????????? ?????????, ??????????? ??? ???? (????????, ??????????), ???????? ? ??????????, ??-
???????? ????? OLE DB ? ODBC. ???????, ???????? ?? ??, ??? ? ???????-
???? ???????? ??????????? ????????? SQL Native Client (? ??????????? ??? ????????? ?????????? SQL Server Configuration Manager) ?? ?????????? ???-
??????? ?? ?????, ??????? ? ?????????? SQL Native Client ?????? ??????? ??????? ? ??????. ????????? SQL Native Client ????? ?????????? ???? ??? ?????? ????????? ????????? SQL Server 2005, ???? ???????????????? ???-
??? SQLNCLI.msi ? ???????? SETUP ?? ???????-????? ? ????????????? SQL Server 2005. ??? SQL Native Client ?? SQL Server Configuration Manager ????? ????????? ????????? ?????????: ???????? ?????????????? ?????????? ????? ???????, ??????? ?????? ????? ???????????? ? SQL Server, ? ??????????, ????? ?? ?????? ???????? ??????????? ??????? (??? ??????? ???????? ????? ??????????? ? ?????? ???????????? (Certification Authority)); ???????? ??? ????????? ???????????? ??????? ?????????? ? ????????? ?? ???????? (????????, ??? ?????????? TCP/IP ????????? ???? ?? ????-
????? ??? ????????? ?? SQL Server); ????????? ?????????? (aliases). —редства администрировани¤ SQL Server 2005 81 ??? ?????????? ????? ??????? ?????????. ??? ????????????? ????????, ??? ??????? ????? ????????. ?????? ????????? ????? ?????, ????? ? ?????????? ?????????? ?????? ????????? ??? ???????, ? ???????? ??? ?????????? ?????? ??????????, ? ???? ?????? ?????????? ?? ?????? ? ?????? ??????. ? ???? ?????? ????? ????? ??????? ????????? ?? ???????, ??? ?????? ????-
???? ??????, ????????? ?? ??????? ?????, ????? ???????????????? ?? ????? ??????. ?????? ????????, ????? ??? ????? ????????????? ?????????, ? ????? ?? ??????????? ?? SQL Server ?? ?????????????? ?????. ??????????, ??????? ????????????? ?????????? SQL Server Configuration Manager, ???????? ?? ?????? ??? SQL Native Client, ?? ? ??? ??????????? ?? OLE DB ? ODBC. 3.4. SQLCmd 3.4.1. ѕрименение SQLCmd SQLCmd
? ??? ??? ???? ????? (? ????? ??????) ???????, ???????? ? ?????? SQL Server 2005. ??? ????????????? ??? ?????????? ???????? Transact-SQL ?? ????????? ?????? ? ???????? ???????? ???????????????? ??? ???? ???? ? ?????????? ??????? SQL Server ??????? osql
? isql
. ??? ???? ??????? isql
(??????? ???????????? ??? ??????????? ?????????? ?????????? DBLibrary) ?????? ??????? ?? ???????? SQL Server 2005, ? osql
(??????? ???????? ?? ODBC) ???? ?????????, ?? ????????????? ?? ??????????? ?????? ????????-
???? ?????? SQLCmd
. ???? ??????? SQLCmd
???????? ?? OLE DB ??? ??????????-
??? SQL Native Client. SQLCmd
???????????? ??????, ????? ????? ????????? ??????? Transact-SQL, ?????? ??? ????? ???????? ?? ????????? ?????? ???????????? ???????. ??-
??????, ????? ??? ?????????? ??? ???????, ????? ???? ???????: ?? SQL Server 2005 ????? ??????? ? ????????? ???? ??????. ?????????? ???????? ????? ???? ??????, ???????? ? ???, ? ????? ????????? ???????-
??????? ???????? ?????? ??????? ????? ??? ?????? ???????? SQLCmd
(???? ?? ?? ??????????? ??? ???? ???? ????????? ????? ???? ??????); ?????????? ?????? ?????????? ? ???????????? ???? ??????, ????????, ???????? ?? ?????????. ???? ?? ? ???????????, ? ??? ????? ?????????? ????????????? ???????? ?????????, ????????, ?? ???? ????????, ?? ???-
??????? SQLCmd
????? ????????? ????? ??????? ? ???????? ????????; ????? ?????, ????? ?????????? ???????????? ?????? Transact-SQL ???-
????????? ???????????? ??????? (????????, ???? ?? ??????????? ?????-
?????? ???????????? ??????? ??? ?????????? ?????-?? ???????? ?? SQL Server ?? ??????????). √лава 3 8
2
SQLCmd
????? ???????? ? ???? ???????: ????????????? ? ????????. ??? ??-
???? ? ????????????? ?????? SQLCmd
???????????, ? ????? ? ??????????? ??????????? SQLCmd
???????? ???????. ? ???????? ?????? ?? ????? ????-
????? SQLCmd
?????? ?????? ??? ???? ???????. ?????? ????????? ?????? SQLCmd
??????????? ????? ?? ?????: ??? ?????? ????? ?????????? ? ????????????. ???????? ?????? ????? ?????????????-
??? ??????? ?????????? SQLCmd
. ???????????, ??? ??? ????? ????????? ?????? ?? ????? C:\SQLQuery.sql ? ???????? ?????????? ? ???? C:\Results.txt. ?????? ????? ????????? ?? ??????? LONDON\SQL2005
, ????????????? ?? ????? ???????????? SA
? ??????? P@ssw0rd
. ??????? ??? ???? ????? ???? ?????: sqlcmd -S LONDON7\SQL2005 -Usa -PP@ssw0rd -i C:\SQLQuery.sql -o C:\Results.txt ??????? ????????? ???????, ????????? ? ??????????? SQLCmd
: ??????? ??? SQLCmd
????? ???????? ? ?????????? ? ????????? ???????-
???? ????? SQL Server Management Studio (? ?????????? ???? ????????-
??? ?????? ? ???????????? SQLCmd
). ??? ????? ?????????? ????????? ??-
?????? ???? ? ??????????? ????? ????????? ???????? SQLCmd
. ??? ?????-
??? ???????????? ?? ???? Query | SQLCmd Mode (?????? | ????? SQLCmd). ??????, ?????????? ?????????, ??? ? ???? ?????? SQL Server Management Studio ????? ???????????? ??? ??????????? SQL Native Client (? ??????? ?? OLE DB, ????????????? SQLCmd
): ????? ???? ?????? ??????? ? ??????????? ?????????? ????????; SQLCmd
????? ???????????? ?????????? ????????? ???????????? ???????. ???? ?? ??????? ??????? ?? ?????????? ?????? ??? ?????????? ??????-
???, ????? ?? ????????? ? ???????, ????????, ?????, ???????????? ??? ???????????, ??????, ??? ???????, ??? ???? ?????? ? ?. ?. ? ??? ????-
??????? ?????????? SQLCmd
"?????????" ?????????????. ????? ???? ?????????? ??????????? ?????????? ????????? sqlcmdini
. ??????, ????-
??? ?? ??????? ??? ?????? ???? ?????????? ?????????, ????? ???????? ?????????????: set sqlcmdini=C:\SQLQuery.sql sqlcmd SQLCmd
????? ???????????? ??? ???????? ?????? ? SQL Server ? ??????? XML (??? ?????????? ?????? SELECT
? ??????????? FOR XML
? ?????? ??-
????????? ? ????). ??? ????? ?????????? ????????? SQLCmd
? ??????????? XML-????? ? ??????? ??????? :XML ON
. ????????? ???? ????? ????? ???????? :XML OFF
. —редства администрировани¤ SQL Server 2005 8
3
3.4.2. —пециальный режим подключени¤ Dedicated Administrator Connection ??? ?????? ? ??????????? ???????? SQL Server ?????? ????????? ????????, ????? ?????-?? ???????????? ?????? ??? ?????????? ?????????? ???????? ??? ??????? ???????. ?????? ?????????? ???????? ?? ??????? (? ??? ????? ? ?? ??????? ??????????? ?? ??????????????), ? ????? ?? ???? ???????? ????? ???? ?????? ??? ?????? ??????????? ???????. ??? ????, ???????, ???????? ??? ?????? ?????? ?????????????. SQL Server 2005 ????????? ?????? ????? ????????. ??? ??????? SQL Server 2005 ????? ??????????? ??????? ?? ???? ??????????? ????????????. ???? ???? ?????-?? ?????? ?????? ??? ???????, ????????????? ?????? ???-
????????? ? ??????? ?? ???? ???????. ????? ????? ??? ?????, ????????, ??-
????? ?????????? ????? ??? ?????? ??????? KILL
. ???????? ??? ??????????? ? SQL Server 2005 ?? ???? ?????????? ?????????-
???????? ??? ????? ???????? ?????????? DAC (Dedicated Administrator Con-
nection ? ?????????? ???????????????? ???????????). ??? ???? ????? ???????????? ? ??????? ? ???? ??????, ???????????? ??????? SQLCmd
? ????-
?????? -A
, ?????? ? ????????????? ?????? SQL Server 2005 ???? ????????? ??????????? ???????????? ??? ???? ???? ? SQL Server Management Studio. ????? ???????????? ? ?????? DAC ?? SQL Server Management Studio, ????? ????????? ????????? ????????: 1. ??????? ?????? New Query ?? ?????? ???????????? ? ? ???????????? ?????? ???????? Database Engine Query (?????? ? ???? ???? ??????). ????????? ???? Connect to Database Engine (??????????? ? ???? ???? ??????). 2. ? ???? Server Name ?????? ???????? ????? ???????, ????????, LONDON \SQL2005
??????? ADMIN:???_??????????
, ????????, ADMIN:LONDON\SQL2005
. 3. ???????? ????? ?????????????? ? ???????????? ? ???????. ??????????? ? ?????? DAC ???????? ?????????? ?????????????? ??????-
???????: ?? ????????? ?????????? ? ?????? DAC ????? ????????? ?????? ? ??-
???????? ?????????? (?. ?. ? ???? ??????????, ?? ??????? ???????? SQL Server 2005). ????? ????????? ????? ?????????? ? ?????????? ????????-
??, ?????????? ????????? ??? ????????? ??????? remote admin connection
???????? 1
: sp_configure 'remote admin connections', 1; ? ???? ?????? ? ??????? ???????????? ????? ???? ??????????? ?????? ???? ??????????; √лава 3 8
4
??????????? ? ?????? DAC ????? ????????????? ?????? ?? ????? ????-
??? ??????, ?????????? ?????? CONTROL SERVER
??? ?????????? SQL Server. ?? ????????? ???? ?????? ???????? ?????? ????????? ??????-
????????; ??????????? ? ???? ?????? ????? ???? ??????????? ?????? ? ????????-
?????? ??????? ?????????? TCP/IP; ??????????? ? ?????? DAC ???????? "???????????": ??? ?????? ??????? ???????? KILL
; ??? ??????????? ? ?????? DAC ?? ????????? ??????????? ???????? ??????????? ??????? ? ??????? ????????? ? ????????? ??????? ??????? ? ???? ?????? master
(? ?? ? ?????? ??? ??????? ??????????? ? SQL Server 2005 ?????????); ?????? ? ?????? DAC (? ?????? ?????, ????? ?????? ??????? ? ????????-
???????????? ??????) ?? ?????? ???????? ?????? ? ????????? ???? ?????? resource
(?????????? ? ??? ????? ?? ??????? USE mssqlsystemresource
). ??? ???? ?????? ???????? ????? ???? ????????? ???????? (????????, ????????? ?????? ? ????? ??????), ??????? ???????????? ? SQL Ser-
ver 2005. ????????? ? ??? ???????? ?????? ??? ????????? ??????? ?????-
????? ? ??????. ??? ??????????? ? ?????? DAC ???????????? ???? ??????????? ????????-
??? SQL Server, ??????? ???????????? ?????? ??????????? ????????? ??-
??? ????? ??????????. ??????? ????? ?????????? ??????? ???????????? ???? ????? ??? ?????????? ??????? ???????? ?? ??????????? ???????. ?????? ????? ?????????, ??? ??????????? ? ?????? DAC ???????? ??????????? ????????????? ????? ???????? (? ??? ???? ?? ????? ???????). ?? ???????-
??? ??????? ???????????????? ???????? ???? ???????? ?????? ???????, ?? ?? ?????????? ??????? ???????? ?? ????? ???? ? ?? ??????????. ??????? ????????????? ???????????? DAC ?????? ?? ?????? ??????? ??????????: ??? ??????????? ????????? ???????? ?? ???????. 3.5. SQL Server Surface Area Configuration ??? ??? ???? ???????? ????????????????? SQL Server 2005, ???????? ?? ??-
?? ? ?????????? ???????. ???????? SQL Server Surface Area Configuration ??????????? ??? "????????? ??????????? SQL Server" ??? "????????? ???-
??????? ???? SQL Server". ??? "?????????? ???????????" ??????????????? ??????????? ?????? ? SQL Server 2005 ??? ?????? ??????????, ??????? ? ?????????? ?????? ????? ???? ?? ?????. ????? ????? ???????? ? ?????-
?????? ??????? ????? ????????? ???????? ????????????? ? SQL Server ??? ??????? ?? ???? ?????????? "???????????, ????????? ??? ?????". —редства администрировани¤ SQL Server 2005 8
5
??? ??????? ????????? SQL Server Surface Area Configuration ????? ??????-
??? ???? ???? | ????????? | Microsoft SQL Server 2005 | Configuration Tools ????????? ????, ? ??????? ?? ?????? ??????? ???? ?? ???? ????????? ??????: Surface Area Configuration for Services and Connections ? ????-
????/????????? ?????? ? ??????? ?????????; Surface Area Configuration for Features ? ????????? ????????????/??-
???????????? ??????????? ???? ?????. ???? ?? ??????? ?? ??????? ????, ?? ???????????? ??? ?????? ? ??? ????? ?????? ???????: ?? ??????? ?????? ????????? ????????? ?????? ????? SQL Server (????????, ????????? ?????? ??? ???????? ?? ????? ??????? ??? ??-
?????? ??????????) ? ??????? ???????????? ??????? ?????????. ?????? ??-
????? ??????? ??????????. ? ??? ??????? ?? ?????? ???????, ????? ?? ?? ????? ??????? ???????? ?????? ???????????. ??? ?????? ??????? ???: ??????????? ????????????? ??????? OPENROWSET
? OPENDATASOURCE
(?? ????????? ??? ??? ?????????). ??? ??????? ????????? ????????????? ?????????? ? ??????? ?????????? ?????? ? ?????? ?????????? ???????; CLR Integration (?. ?. ??????????? ????????? ? ??????? .NET ?? ???? Transact-SQL) ? ??? ????? ?????????????????? ??????????? SQL Server 2005, ?? ??? ????? ?? ????????? ?????????; Database Mail ? ??????????? ??????, ??????? ????????? ?????????? ???????? ????????? ?? ???? Transact-SQL ?? ????????? SMTP. ?? ????-
????? ????????; Dedicated Administrator Connection (DAC) ? ????? ??????? ? ???? ???-
???????? ??????????? ? ???? ?????? ? ??????? ? ?????? ???????????. ??? ??? ?????????? ? ????. 3.4.2 ??? SQLCmd
, ??? ??????????? ?????????? ?????????; Native Web Services ? ????????? ?????????? HTTP Endpoints (????? ???-
???? ??????????? ? SQL Server 2005 ?? ????????? HTTP); OLE Automation ? ??? ??????? ??????? ?????????????? ???????? ????????? ????????????? (
SP_OACreate
, SP_OAMethod
? ?. ?.), ??????? ???-
?? ?? ????????? ? SQL Server 2005 ?? ????????; Service Broker Endpoints ? ????? ??????????? Service Broker. ??? ??-
???? ????? ?????? ?? ?????? ??????? ???????? ????? ???????????; SQL Mail ? ??????????? ??? ???????? ????????????? ? ??????????? ???????? SQL Server ??????? ?????? ? ??????????? ??????, ?????????? ?? MAPI. ??? ????????? ?? ?????????, ??????, ?????? ? Database Mail; √лава 3 8
6
xp_cmdshell ? ??? ??????????? ???????? ?????????, ??????????? ??-
??????? ?? ???? Transact-SQL ??????? ???????????? ???????. ????? ?? ????????? ?????????; Web Assistant ? ???????? ?????????, ??????? ????????? ???????????? ????? HTML ??? ?????????? ???????? ? ????? ??????. ??? ???? ?? ????????? ?? ???????? ? SQL Server 2005. ?????? ??????????? ????????? ?? ????????? ? ? Analysis Services. ?? ????? ???????? (??? ????? ?????????) ??? ?????? Surface Area Confi-
guration. ??? ????????? ??????????? Analysis Services: ??????? OPENROWSET
?? ????? ???????? DMX (Data Mining Extensions ? ?????????? SQL ??? ???????? ? ??????? ?????? ??????). ??? ? ????-
??????? ??????? ?? Transact-SQL, ??? ??????? OPENROWSET
???????? (???? ?? ????????) ????????????? ?????????? ? ??????? ?????????? ?????? ? ?????? ?????????? ???????; ??????????? ????????????? ????????? ?????????? ? Analysis Services (?????? ?????? OLAP); ??????????? ???????????? ??????? ???????, ????????? ? ??????? ????-
??? DLL ? ?????????????? COM; ??????????? ????????? ? ???? ???? ????????? ? ?????? ??????????? ? ?????? ????????. ? Reporting Services, ????????, ???????????, ??????????? Surface Area Configuration, ?? ????????? ????????, ? ?? ?????? ?? ?????????. ????? ???????????? ????? ???: ???????? ? ???????? ??????? ?? ?????????? ? ??????????? ????????? ? ??????? ?? ????????? HTTP (???? ?? ????????? ??? ???????????, ?? ??? ?????? ??????? ?????????? ? ????????????????? ? ??????? ?? ?????? ?????????? ?? ?????? ????????????, ?? ? ?? ????). ??????? ?????, ????? ???????, ??? SQL Server Surface Area Configuration ?? ????????? ? ????? ??????????? ??????????. ??????????? ????? ?????? ????? ? ????????/????????? ??????? ?????????? ????? ??? ?????? SQL Server Configuration Manager, ? ????????/????????? ??????????? ????????-
??? SQL Server ????? ??? ?????? ??????????? ???????, ????????, SQL Server Management Studio ??? ?? ???? Transact-SQL. ?????? ? Surface Area Configuration ?????????? ????? ????????????? ??????? ???????, ??? ????? ??????. 3.6. SQL Server Profiler SQL Server Profiler, ??????? ??????????? ?????? ???????? ????????????-
???, ? ???? ?? ????? ???????? ??????????? ???????, ???????? ? ?????? —редства администрировани¤ SQL Server 2005 8
7
SQL Server. ????????? ??? ?????????? ????? ?? ?????????? ???? ???? | ????????? | Microsoft SQL Server 2005 | Performance Tools ??? ?? ???? Tools ???? ?????? ?????????? ? SQL Server Management Studio ? Database Engine Tuning Advisor. ??????? ?????????? SQL Server Profiler ? ??? ???????? (??? ?????? ? ???? ??? ? ???????) ???? ??????? SQL Server, ??????? ??????????? ?? ??? ??????? Transact-SQL. ???????? ????????, ????? ??? ?????????????? ?? ????????, ???????? ???: ? ??? ???? ??????????, ?????????? ??????? ?????-
?????????, ??????? ?????????? ? ????????, ??????????????, ???????? ???-
??????? ????? ???? ?????? SQL Server. ??? ?????????? ????, ???????????? ????? ?????? ????????????? ?????? ?????????? (? ???????????????), ????-
??? ?? ???????????, ????????? ?????????????, ? ??????? ??????? ??????? ? ?????? ???????, ???????????? ???????????. ? ?? ?? ????? ????? ?????-
???? ????????, ????? ?????????? ???????? ?????????? ? ???, ????? ?????-
?? ????????? ?? ??????? ??????????, ????????: ??? ????? ????? ??????? ?????, ??????? ? ?????????? ?? ????????????, ? ?? ?? ??????, ? ????? ???????? ????????? ?????? ??? ??????; ??? ?????????? ??????????? ???????????? ???????? ?? ??????? ?????-
???? ??????, ? ?? ?????? ??????, ????? ??????? Transact-SQL ? ??? ???-
?????; ?? ?????? ??????, ????????? ?????????? ? ????? ?????? ???????????????-
??? ???????? ???????, ??????????? ???????????. ?? ???? ???? ????? ???????????????? ????????? ??? ??????? ???????- ??????. ?? ? ???? ???? ? ?????? ??????????. ????????, ????????????? ????? ??-
?????????? ??? ?????? ?????????? ????????????? ? ???? ??? ? ??????? SQL Server, ? ????? ???????????? ?????????? ?????? ??? ??????. ????? ?? ???? ??? ??????? ????? ???????????? ? ???????? ???????? ?????????? ??? Database Engine Tuning Advisor (??. ????. 11.5.5). ????????????? ??????????? ? ? ??????????? ???????? SQL Server, ?????? ? SQL Server 2005 ??? ??????????? ??????????? ?????????. ???? ????????? ????? ???????????: ???????????? Analysis Services ? ?????? ?? ?????? ????????????? ??????? ? ??????? ?? ?????? ??? ??????? ??? ??????, ?? ? ??? ??? ???-
??? OLAP; ???????????? ??????? Integration Services ? ?????? ?? ?????? ??? ??-
???? ?????????????? ??????????? ??? ?????????? ????? ??????? DTS; ??????????? ??? ?????? ?????????? ?????????? ??????? ?????????? ????????? ????????? ?? Performance Monitor; √лава 3 8
8
? ????????????? ????????? ????????? ????? ??????? ? ?????????? ??-
????????, ??????? ????? ?????????? ??? ?????? ? ???? ???????????. ??-
????????? ????, ??? ????? ?????????? ? ???? ???????????, ?????? ????? ????????? ? ??????? XML; ??????????? ????????? ? ??????? XML ? ?????????? ??????????? (???-
???????? ?????? ? ???????? ANSI, OEM, UNICODE ????? ?????????); ??????????? ????????? ? ??????? XML ???? ????? ?????????? ?????? Transact-SQL, ????????????? ???????????????. ????? ??????????? ? ??-
??? ??????? ????? ????? ??????? ? SQL Server Management Studio ??? ??????????? ???????; ??????????? ???????????? ??????? ????? ? ???? ??????????????. ? ?? ???????, ????????, ?? ?????? ????? ?????? ?????????, ??????? ??? ? ??-
????? ??? ?? ??????? ??????????? ?? ??? ???? ??????? Transact-SQL. ???????? ??? ?????? ? ??????????????? ????? ?????????? ? ????. 11.2.3. 3.7. Database Engine Tuning Advisor ??? ??????????? ???????? ? SQL Server 2005 ???????? ????????? Index Tuning Wizard ?? ?????????? ?????? SQL Server. ??? ???????? ? SQL Server 2005 ? ???? ?????????: ??????????? (??????????? ???? DTAShell.exe). ??? ????? ????????? ?? ???? ???? | ????????? | Microsoft SQL Server 2005 | Performance Tools, ??? ?? ???? Tools ? SQL Server Management Studio, ??? SQL Server Profiler. ????? ????, ??? ???????? ????????????? ??????????? ? ?????? ??????? ??????? ??? ??????? Transact-SQL, ???? ??? ??????? ??? ?????? ??????? ???????? ? ???? ????????? ???? SQL Server Management Studio ? ? ??????????? ???? ??????? Analyze Query in Database Tuning Advisor (????????????? ?????? ? Database Tuning Advisor); ??????????. ??????????? ?? ????????? ?????? ?? ??????? DTA
. ??? ??????????? ???????? ????????????? ??? ????, ????? ????????? ?????? ?? ??????????? ???????? ? ?????? ???????? ? ???? ??????. ??? ????????? ? ???????? ???????? ?????????? ???? ??? ??????? ???????????, ????????? ??? ?????? ??????????????. ?????? ? ????? ????? ??? ??????? ????????-
?? ?????????? ? ?????? ????????????? ?? ??????? ?? ??????????????? ???-
??????? ??????? (????????, ?? ??????? ????). ? ???????? ???????? ????? ???????? Tuning Advisor ??????? ??? ????? ?????? ?? ???? ????????? ???? SQL Server Management Studio. ????? Tuning Advisor ? ???????????? ? ???-
??????? ???? ??????????? ???????????? ????????? ???????? ???????? ??-
??????? ? ??????? ? ?????? ??????? ???? ?????? (????????, ????????? ??-
—редства администрировани¤ SQL Server 2005 8
9
?????? ? ????????????????) ? ?? ??????????? ??????? ?????????? ????? (? ??????? XML) ? ????????????. ????? ?????? ?????????? ????? ?????? ? ?? ??????? ?????????? ?????????????????? ????? ??????? ??? ?????????? ???????????? ????????????. ???? ???????????? (????????, ??????? ?? ????????, ?????????, ???????? ????????) ????? ????????? ? ???? ??????? SQL ??? ??????????? ??????? ??? ????????? ? ???? ??????. ???? ???? ?????? ? ??? ???????, ? ??? ?????????? ????????? ???????? ??-
??? ?????????? ???????? ? ???????????????????, ?? ??? ??????????? ?????-
?? ???????? ??? ?? ????????. Tuning Advisor ? ?? ??????????????? ??????-
??, ????????????? ???????? ??? ????????, ?? ??? ????? ????? ?? ???? ???????????? ????? ??????, ??????? ? ????????? ?????? ???????? ?? ??-
??????? ???????. ??? ??????????? ???????? ????????? ?????????? ???????? ???????????, ?? ??????? ????? ????????????? ?????? ??? ??????????? ???? ??????. ? ????????? ????????? ??? ?????????? ????? ????? ?? ???? ?????-
????? ??????? ??????? ? ??????????????????. ?? ????????? ? Index Tuning Wizard ? Database Engine Tuning Advisor ???? ??????? ???????????? ?????????: ????? ??????????? ?????? ??? ?????????? ??? ?????? ????????????. ??? ????? Tuning Advisor ????????? ??? ??????? USE
? ???????? ??????; ? ?????? ?????????? ???????, ?????????? ? ?????????? ?????????, ???????????????? ??????? ? ???????, ??????? ??????????? ??????????; ????? ?????? ???????? ???????, ??????? Tuning Advisor ???????? ?? ???-
??? ? ????????? ????????????. ????? ??????????? ????? ????????? ??-
??????, ???? ? ????? ???????????? ???? ?????? ????????? ????????? ??-
?? ??? ?????????? ??????? (????????, ? ????????? ????? ????????????? ????????? ?????? ??????). ?????? ????????????? ?? ???????????? Tuning Advisor ?? ???????: ??? ?????? ??????? ????? ???????? ?? ??????, ??? ???????????? ????????? ????????????. ? ???????? ???????? ????? ???-
???????? ??????????? ?????? Tuning Advisor ? ?????? ??????? ???? ???-
??? ?? ???????? ???????; ????????? ??????????? ??????????? ?????? Tuning Advisor ? ?????? "??-
????? ????? ??????? ?? ???????, ?????????? ?????? ??????????? ?????-
??? ???????????? ????????"; ????? ??????????? Tuning Advisor ? ?????? ?????????, ???????????? ?????????????, ????????: "? ??? ?????, ???? ???? ?????? ????????, ? ???? ? ????????"; ??????? ?????? ???????. ? ???? ??????, ????????, ????????? ?????????? ? ???? ??????? ?? ????? ???????????, ??????? ?? ??????? ???????????? ??? ???????; √лава 3 90 ????????? ??????????? ????????? ????????? ??????? ? XML-????? (??? ?????? ???? File | Export Session Definition (???? | ?????????????? ??-
????????? ??????)) ? ???????????? ?? ????????. ????? ????? ????? ????-
?????? ? ??????????? ???????? Tuning Advisor. ?????? ? ??????????? ???-
????, ??? ??? ?????????? ?????, ????? ??????????? ? ??????? XML (?? ????? ????????????? ??? ?? ??????????? ??????? ??? ?????? ? XML, ??? ? ??? ?????? ???????????? ?????????? Tuning Advisor). ???????? ??? ?????? ? Database Tuning Advisor ????? ?????????? ? ????. 11.5.5. 3.8. ƒругие графические утилиты SQL Server 2005 ? ???? ??????? ???????????? ??????? ?????????? ? ?????? ??????????? ???-
?????, ??????? ???????????? ?????? ? SQL Server 2005. ??? ??????????? ?? ??? ??? ???????, ????????? ?? ???? ????. ??? ??????? ???? ?????? ?????-
?????? ????? ?? ??????????? ???? ?? ????? (????????? ?? ??? ????? ????? ??????? ?? ?????? ??????????? ???????, ????? ??? SQL Server Management Studio). ????? ??? ??????????? ?? ????????. Analysis Services Deployment Wizard (Microsoft.AnalysisServices. Deployment.exe) ? ?????? ????????????? ???????? Analysis Services ?? ?????? ???????. ?????? ???????????? ??? ???????? ????????? ???? ?? ???????? ??????? ???? ?????? OLAP ?? ??????? ??????. ??? ??????? ????? ????????? ?? ???? ???? | ????????? | Microsoft SQL Server 2005 | Analysis Services. Analysis Services Instance Rename (ASInstanceRename.exe) ? ???????, ??????? ????????? ????????????? ????????? Analysis Services. ????????-
???? ?????? ??? ???????? ????????? ??????? Analysis Services ? ??????? ????? ? ??? ?????????, ????? ??? Analysis Services ?????? ????????? ? ?????????? ???????????. ????? ????????? ?? ???? ?? ????, ??? ? De-
ployment Wizard. Analysis Services Migration Wizard (MigrationWizard.exe) ? ????????, ??????????????? ??? ???????? ??? ?????? OLAP, ????????? ? ???????-
??? ?????? Analysis Services (?????????????? ? SQL Server 2000) ?? SQL Server 2005. ??????????? ?? ???? ?? ????. ? ???? ????????? ???? ???-
??????? ???????, ??????? ?????????? MigrationWizardConsole.exe. Replication Conflict Viewer (ConflictViewer.exe) ? ????????, ??????? ??-
??????? ????????????? ? ????????? ?????????, ??????????? ? ???????? ?????????? ???????? (merge replication). ?????? ??????????? ?? SQL Server Management Studio. —редства администрировани¤ SQL Server 2005 91 Configure Web Synchronization Wizard (ConnWiz30.exe) ? ??? ???-
???????? ???????? ???????????? ??? ????????? ????????????? ?? ?????-
???? HTTP ????? SQL Server Mobile Edition (???????? ??? ?????????? ??????????? ? ??????????) ? ??????? SQL Server 2005. ?????????? ??-
??????? ????????? ?????????? ????? ????? ????? ?????????? SQL Server 2005. ?????? ??????????? ?? SQL Server Management Studio. Copy Database Wizard (CopyDatabaseWizard.exe) ? ???? ?????? ???????-
?? ????????? ???? ?????? (?? ????? ?????????, ???????, ???????????? ? ?. ?.) ? SQL Server 2000 ??? SQL Server 2005 ?? ?????? ????????? SQL Server 2005. ??? ???? ?? ????? ??????? ???????? ?????????? ?????????? ???? ?????? SQL Server 2000 ?? SQL Server 2005. ?????? ??????????? ?? SQL Server Management Studio (? Object Explorer ????? ??????????? ???? ???? ?????? Tasks | Copy Database). Execute Package Utility (DTExecUI.exe) ? ?????????? ??????? DTSRunUI ? ?????????? ??????? SQL Server. ????????? ????????? ?? ?????????? ?????? SQL Server Integration Services (SSIS (? ?????????? ??????? ??? DTS), ????????????? ?? ?????????? ?? ?????????? ??? ? ?????? ????????? ?????? ??? ??????? ?????? ?? ??????????? ?????- ?? DTSExec.exe. ??? ?????? ? ???? ???????? ????? ?????????????? ? ????. 10.28. Replication Monitor (sqlmonitor.exe) ? ?????? ???????? ??? ??????????? ? ??????????? ??????????. ????? ????????? ??? ?? ????????? ??????, ??? ? ?? SQL Server Management Studio. ??? ?????? ? ??? ?????????????? ? ????. 12.7.2. Reporting Services Configuration (RSConfigTool.exe) ? ??? ????????? ????????????? ??? ?????????? ??????????? Reporting Services. ??? ???-
????? ????? ???? ???? | ????????? | Microsoft SQL Server 2005 | Configuration Tools. ?????????? ??????? ???? ????????? ?????????? rsconfig.exe. SQL Server Import and Export Wizard (DTSWizard.exe) ? ???????, ????-
?????? ? ????? ?????? SQL Server ?????? ?????? ??????? ? ???????? ?????? DTS Import/Export Wizard. ????????????? ??? ??? ??? ?? ???? ? ??????? ???????? ??????? ??????? ??? ????????/???????? ?????? ? SSIS (?????? DTS). ?????? ? ???? ???????? ????? ??????????????? ? ????. 10.3. SQL Server Integration Services Migration Wizard (DTSMigrationWizard.exe) ? ???????, ??????????????? ??? ???????? ? ??-
???????? ??????? DTS, ????????? ? SQL Server 7.0 ? 2000, ?? SQL Server 2005 ? ????? ????? SSIS. √лава 3 9
2
3.9. ƒругие консольные утилиты SQL Server 2005 ? ???? ??????? ???????????? ?????????? ? ?????????? ????????, ??????? ?????? ? ?????? SQL Server 2005. ????????? ??? ??? ??????????? ?? ??????-
??? ??????, ?? ??????? ?????????? ???????? ???????????? ?????, ? ? ??????? ?????? ???????? ??????? (???? ??? ?????????????). bcp.exe (Bulk Copy Program) ? ??? ???????-??????? ?????? ?????? ???? ? ? SQL Server 2005. ??? ????? ??????? ?????? ????????? ?????? ?? SQL Server 2005 ? ????????? ??. ????????? ?? ???????? ???????? ????????? ????????????????: ?? ?????? ????????? ?????? ?????? ?? ????????? ?????? ??? ????????? ?? ? ????????? ?????. ???? ????? ?????????? ??-
??? ??????? ? ??????? ??????????? ?????? ??? ??????????? ? ??????-
???/????????? ????????? ?????????????? ??? ????????, ?? ???????? ??-
?????????? ?????? SSIS (DTS). ????? ? SQL Server 2005 ???????? ??????-
????? ?????????? ??? ???? ????????? ????? ?????????????? XML (????????? ?????? ?????? ?????????????? ????? ?????????). cidump.exe ? ???????????????????, ?? ????? ?????????? ???????, ????-
??? ????????? ??????????? ???????? ??????????? ???????? ? ?????????? ?? ??????????. ????? ?????????????? ????? ??? ???????? (dump) ?????-
???: ??????? ??? ????????? ??????????. dta.exe ? ??? ??? ??????????, ??? ?????????? ??????? Database Engine Tuning Advisor (??. ????. 3.7 ? 11.5.5). dtattach.exe ? ??? ??????????????????? ??????? ????????? ?????????? ???????? ? ??????? SSIS, ? ??????? ???????????? Script Task. DTExec.exe ? ??? ??????? ????????? ????????? ?? ?????????? ?????? SSIS ?? ????????? ??????. ??????? ?? ?? ?????? ? ???????????? ????-
??????? ??????? ????? ????????? ??? ?????? ??????? DTExecUI
. DTSRun.exe ? ??????? ??? ??????? ??????? DTS, ??????? ???????????? ? SQL Server 2000. ??? ?????? ? ? SQL Server 2005, ?? ?????? ?? ?????????? ???????????? ?????? ??? ???????????? ???? ? ??? ????? ?????????? ??????? ??????? ??????? ? Reporting Services. DTUtil.exe ? ??????? ??? ?????????? ???????? SSIS (???????????, ???-
?????, ?????????????? ? ?. ?.) ?? ????????? ??????. lrtest.exe (Language Resource test) ? ???????, ??????????????? ??? ?????-
??????? ?????????, ??????? ???????? ? ???????? ??????? ???????????-
??? ???????? (???????? ??????? ???? ? ?. ?.). MigrationWizardConsole.exe ? ?????????? ??????? Analysis Services Migration Wizard ? ??????? ???????? ??? ?????? OLAP c Analysis Services ? SQL Server 2000 ?? SQL Server 2005. —редства администрировани¤ SQL Server 2005 9
3
nscontrol.exe (Notification Services Control Utility) ? ???????? ???????? ????????????????? ?????????? SQL Server 2005, ??????? ?????????? Notification Services. ??? ???????? ????????? ????????? ?????????? Notification Services, ??????????? ?? ?????????, ????????? ??????? ? ?. ?. nsservice.exe ? ??? ???? ?????? Notification Services. ???? ????????? ?? ? ?????????? -a
, ?? ??? ????? ???????? ??? ?????????? ??????????. osql.exe ? ??????? ??? ?????????? ?????? Transact-SQL ? ???????? ?? ????????? ??????. ????????? ? SQL Server 2005 ??? ??????????? ?????-
??? ?????????????. Microsoft ??????????? ?????? ???????????? ?????? ???? ??????? ??????? SQLCmd
. PSSDiag.exe ? ??? ??????? ???????? ???????? ??????? SQLDiag ?? ???-
??????? ?????? SQL Server. ??????? ?? ?????????? ? ??????????? ?????-
??. ??? ?????????? ???????????? ????????? ??????????? ??????? ? ????-
?? ?????????? ? ??????????? ????????. rsactivate.exe (Report Server Activation Tool) ? ???????, ??????? ????????? ???????????????? Report Server. ???????????? ????? ?????????? ?????-
??? ? ????????????? Report Server ??? ????????? ?????? ?????????? ??? ??????. rsconfig.exe (Report Server Configuration Management) ? ??? ??????? ??-
??????? ???????? ????????? Reporting Services ?? ????????? ??????. RSKeyMgmt.exe (Report Server Key Manager) ? ??????? ????????? ??-
??????? ????????? ???????? ? ????????????? Reporting Services. SqliMailWizard.exe ? ???????? ?????? ??????????? ? ???????????? ???-
???????. ??? ????????? ????????????? ??? ????????? ?????????? SQLiMail ? ????? ??????. ????????? ????????? ?????? ?? ????????? ??????, ?????? ????????? ?????? ? ??????????? ?????? ? ????????, ??-
?????, ????????, ????????? ????????? ????????? ?? ??????????? ????? ?????????? SQLiMail. sqlmaint.exe ? ? ??????? ?????? ??????????????? SQL Server 2000, ??? ??????? ????????? ? ? SQL Server 2005. ?????? ????????? ??? ?????????: ??? ? ????????? ?????? ?? ??????? ??????. ??? ??????? ????????? ?? ?? ???????, ??? ? ? SQL Server 2000 ? ????????? ????????? ??????????-
?????? ???????? (????????? ???????????, ???????? ???????????, ?????-
????? ??????????, ???????????? ???????) ?? ????????? ?????? ? ????????? ?????? ? ?? ?????????? ? ????????? ??????? ??? ? ??????? HTML, ? ????? ???????? ?? ?? ??????????? ?????. ?????? ???? ??????? ???????-
?????? ???????????? ????? ???????????? ??? ??????. tablediff.exe (Replication Table Diff Tool) ? ????? ?????????? ???????, ??-
????? ????????? ?????????? ?????????? ? ???? ???????? ? ???????? ???-
√лава 3 9
4
????? ???????? ? ???? ??? ? ??????? SQL Server. ??? ??????? ?? ?????-
???, ? ???????? ??? ??????? ????????????? ??? ??????????? ??????????, ?????? ?? ?????? ????? ???????????? ? ??? ?????? ?????. «адание дл¤ самосто¤тельной работы 3.1. –абота со скриптами в SQL Server Management Studio и SQLCmd ????????: ??? ?????????? ??????? ? ???? ?????? AdventureWorksDW
?? ????? ????????? ?????????? ??????? dbo.BuyerCopy
?? ??????????, ??????????? ????????? ??????? dbo.ProspectiveBuyer
? ???? ?? ???? ??????. ???????: 1. ???????? ??? ?????? ??????? ?????????????? ????????? ???????? ?????? ?? ???????? ??????? dbo.BuyerCopy
? ???????????? ? ????????????? ????-
?????, ????????? ???? ?????? ??? C:\Buyer_Creation.sql. 2. ???????? ???????? ???? C:\Buyer.bat. ? ???? ???????? ????? ?????? ??-
???????? ??????? ?? ???????? ??????? dbo.BuyerCopy
?????????? ??????? SQLCmd
? ?????????????? ?????????? ???? ????? C:\Buyer_Creation.sql. ??? ??????, ??????????? ??? ?????????? ?????? SQLCmd
?????? ??????-
?????? ? ???? C:\Buyer_Creation_Log.txt. 3. ????????? ???? ???????? ???? ?? ?????????? ? ?????????, ??? ??????? dbo.BuyerCopy
????????????? ???????. ???????: ? ?????? 1 ??????? ? ????????? ??????? ?? ???????? ???????: 1. ????????? SQL Server Management Studio ? ???????????? ? ?????? ??-
???????? ??????? ??? ?????? ?????????????? Windows. 2. ? ???? Object Explorer ????????? ????????? ???_??????_??????? | Databases | AdventureWorksDW | Tables. 3. ???????? ?????? ??????? ???? ?? ??????? ??????? dbo.ProspectiveBuyer
? ? ??????????? ???? ???????? Script Table as | Create to | New Query Editor Window (????????????? ??????? ??? | ??????? ? | ????? ???? ??-
??????? ????????). ????????? ????? ???? ????????? ????, ? ??????? ????? ??????? ??????????????? ?????? ?? ???????? ???????. —редства администрировани¤ SQL Server 2005 9
5
4. ? ???? ??????? ???????? ??????: CREATE TABLE [dbo].[ProspectiveBuyer]; ?? ??????: CREATE TABLE [dbo].[BuyerCopy]; ????????? ?????? ???????? ??? ?????????. 5. ??????? ?????????? ?????? <Ctrl>+<S>. ????????? ?????? ? ????? C:\Buyer_Creation.sql. ? ?????? 2 ? ???????? ????????? ?????: ??? ??? ????????? ????? Buyer.bat ????? ???? ?????: @echo off sqlcmd -S LONDON2\SQL2005 -i c:\Buyer_Creation.sql -o c:\Buyer_Creation_Log.txt «адание дл¤ самосто¤тельной работы 3.2. –абота с серверными сетевыми библиотеками и псевдонимами ???????: 1. ???????? ?? ??????? ????????? ??????? ?????????? TCP/IP. 2. ??????????, ?????????? ?? ????????? ???_??????_??????????\ SQLServer2005
??????????? ???? ??? ???????? ? ????????????? ???????. 3. ????????? ?? ????? ?????????? ????????? MyServer
. ??? ????????? ? ????? ?????????? ?????? ????????????? ??????????? ? ??????? ???_??????_??????????\SQL2005
. ???????: ? ??????? 1 ? 2 ??????? ? ????????? ??????? ?????????? ? ???????? ??-
???????? ?? ???????????? ??????: 1. ???????? SQL Server Configuration Manager (?? ?????????? ???? ???? | ????????? | Microsoft SQL Server 2005 | Configuration Tools). 2. ????????? ????????? SQL Server 2005 Network Configuration | Protocols for SQL2005, ???????? ?????? ??????? ???? ?? ??????? TCP/IP ? ???-
??? ????? ?????? ? ? ??????????? ???? ???????? ??????? Enable. √лава 3 9
6
3. ? ??? ?? ??????????? ???? ???????? ??????? Properties, ? ????? ?????-
???? ?? ??????? IP Addresses (IP-??????). ??? ???? IP-??????? ???????? TCP Port ?????? ???? ??????, ? ??? ????????? TCP Dynamic Ports ?????? ???? ??????????? ???????? 0. ?????????? ????????? ????? ??? ???????? ????????? TCP Dynamic Ports ? ?????????? ???????? ??? ????? ????????? ? ?????? ????? ??????. 4. ???????? ???? ??????? ??????? ?????????? TCP/IP, ????????? ? ??????-
??? SQL Server 2005 Services ? ????????????? ?????? SQL Server (SQL2005). ? ?????? 3 ??????? ? ????????? ?????????? ??? ????????? ? ???????: 1. ? SQL Server Configuration Manager ????????? ????????? SQL Native Client Configuration | Aliases, ???????? ?? ???? ?????? ??????? ???? ? ? ??????????? ???? ???????? New Alias (????? ?????????). 2. ??? ????????? Alias Name (??? ??????????) ???????????? ?????????? ??????? ???????? MyServer
. ???????? ??? ????????? Port No (????? ?????) ???????? ??????. ??? ????????? Protocol ???????? ???????????? ?? ????-
????? ???????? TCP/IP
, ? ??? ????????? Server ??????? ???????? ???_??????_??????????\SQL2005 (????????, LONDON\SQL2005
). 3. ??????? ?????? OK ? ???????? SQL Server Configuration Manager ? ??-
????????? ????????? ?????????. 4. ??? ???????? ????????????????? ?????????? ?????????? ???????????? ? ??????? MyServer
?? SQL Server Management Studio. √Ћј¬ј 4 —оздание баз данных и настройка параметров ?? ????????? ??????????? ????????? SQL Server 2005 ? ????????????? ? ???????????? ??????????, ??????? ????? ???????????? ??? ?????? ? ???. ?????? ????????? ?????? ?????????????? SQL Server ? ???????? ???? ???-
??? ? ????????? ?????????? ?? ??????. ??? ???? ? ????? ??????????? ? ???? ?????. 4.1. —лужебные и учебные базы данных SQL Server 2005 ?????? ??? ?? ????????? ? ?????????? ????????, ????????? ? ????????? ????? ??????????? ??????? ??? ??????, ?????? ????????? ???? ? ????????? ????? ?????? SQL Server, ??????? ????????? ????????????? ? ???????? ??? ?????????, ? ? ??????? ????? ??????, ??????? ????? ?????????? ? ???????? ??????????????? ??????????????? ??????????. ???? ?? ??????? ????????? Databases | System Databases (???? ?????? | ????????? ???? ??????) ? Object Explorer ? SQL Server Management Studio, ?? ?????? ??? ?? ????? ????????? ??? ??????, ??? ? ? SQL Server 2000: master
? ??????? ????????? ???? ?????? ????? ???????. ? ??? ???????? ????? ????????? ?????????? ???????: ????????? ??? ??????, ?????? ??? ?????? ?? ??????? ? ??????????? ? ?????????? ?????? ???? ?????? ? ?? ??????, ?????????? ?? ??????? ??????? ????????????? ??? ??????????? ? SQL Server (???????), ????????? ????? ? ?. ?. ??????? ???????? ???? ?????? master
SQL Server 2005 ?? ?????????? ?????? ???????? ??, ??? ??????????? ??? ?? ????????? ??????? (? ?????? ? ???? ???? ?????? ? ???) ?????? ?????????? ?? ?????? ??? ??????? ???????? ?????????, ?? ? ??? ?????????. ????? ??? ?? ???????? ????????? ??????? ???? ?????? ??? √лава 4 9
8
??????. ???????????? ??????????? ????????? ??????? ? ??????? ??????-
??? ? ??????? ???? ?????? master
???????? ? ??? ????????? ?????? ? ???????????????????? ????? ? ???????????? ? ?????? Dedicated Admin-
istrator Connection (??. ????. 3.4.2). ???? ????????? ??????? ? ???? ???-
??? master
????? ?????????? ????? ??????; msdb
? ??? ???? ?????? ? ???????? ???????????? ??? ???????? ???????-
??? ?????? SQL Server Agent (???????? ???????, ?????, ?????????????? ? ?. ?.), ?? ? ??? ???????????? ? ?????? ????????? ?????????? (????????, ??????? ?????????? ???????????); model
? ??? ???? ?????? ???????? ???????? ??? ???????? ????? ??? ???-
??? ? SQL Server. ???? ?????? ? ??? ?????????, ????????, ??????? ????? ??????, ?? ??? ??????? ????? ?????????????? ?? ???? ??????????? ????? ??????; tempdb
? ??? ???? ?????? ????????????? ??? ????????? ?????? ? ?????-
??? ????????, ??????????? ?????????????? ? ????? SQL Server, ? ????? ??? ???????? ????? ?????????? ?????? ? ?????? ???????? ?????????? ???????????? ??????? (snapshot isolation) ? ????????????? ?????? ??? ???????????? ????????. ??? ???? ?????? ????????? ?????? ??? ?????? ??-
????? SQL Server; distribution
? ???? ????????? ???? ?????? ?????????? ? SQL Server 2005 ???. ??? ?????????? ??? ????????? ?????????? (??? ??? ???-
?? ??????? ? ?????? ????????). ?????? ????????? ??? ?????? ? Object Explorer ?? ?????. ?? ???? ?? ??-
?????? ?? ????? ??????? Data ??? ?????? ?????????? SQL Server 2005, ?? ?? ??????? ????? ? ??? ?????? ????????? ??? ??????, ??????? ???????? ?? ???? ????????????? ? ???????????????: ???? ?????? resource
(?? ????????????? ???? mssqlsystemresource.mdf). ???????????? ? ??? ????? ?????? ? ?????? Dedicated Administrator Con-
nection (? ?????? ????? ?????? ??????? ? ???????????????????? ??????), ??? ???? ?????? ???????? ????? ???? ????????? ???????? (????????, ????????? ?????? ? ????? ??????), ??????? ???????????? ? SQL Server 2005. ????????? ? ??? ???????? ?????? ??? ????????? ??????? ??-
???????? ? ??????; ???? ?????? distmodel
(?? ????????????? ???? distmdl.mdf). ??? ??????, ???????????? ??? ???????? ???? ?????? distribution
??? ????????? ???-
???????. ???? ?? ?????????? ??????????? ????????? Reporting Services, ?? ?? SQL Server 2005 ????? ??????? ?????????????? ????????? ???? ?????? (??? ???????????? ? Object Explorer ?? ? System Databases, ? ??? ????????????-
—оздание баз данных и настройка параметров 9
9
???? ???? ??????). ?? ???????? ?? ????????? ?????????? ? ???????? ReportServer$
. ????? ????????? ??? ??????, ????? ????????? ?? SQL Server 2005 ????? ????????? ??? ??? ???? ??????: AdventureWorks
? AdventureWorksDW
(????? DW
???????? Data Warehouse, ?. ?. ??? ???? ???????? ??? ?????? ????????? ??????). ??? ????? ??????? ???? ??????, ??????? ???????? ????????? Pubs
? Northwind
. ?? ????????? ? Pubs
? Northwind
??? ?????? ?????? ???? ?????? ? ?? ?????????, ? ?? ?????? (???????? ??????? ???? ?????? AdventureWorks
???????? ?????? 180 ?????). ???????, ?? ??????? ??????? ??????? ??? ?????? ???? ?? ??????, ? ??? ?? ???????, ??????? ???????????? ??? ????? ??????????, ?? ?????? ????? ????-
????, ????????? ?????? ??????? ? ???????????? ?????????? ?????? ??? ??-
?? ??????. 4.2. —оздание пользовательских баз данных ?? ??????????? ? ???, ????? ???? ?????? ?????????? ????? ???? ?? SQL Server 2005. ??, ???????, ??? ???????? ?????????? ????? ?????????? ??? ??????????? ???? ??????????? ???????????????? ???? ??????. ?? ???????? ????????? ?????. ???????? ??? ?????? ?? SQL Server 2005 ????? ????????????? ?????????? ?????? ????????, ??????? ????? ??????????? ????? ? ???? ???????. 4.2.1. —оздание базы данных из SQL Server Management Studio ????? ??????? ?????? ??????? ???? ?????? ? ??????????????? ??????????? ??????????? SQL Server Management Studio. ???? ????????? ???????? ????-
???? ???????. ????? ???????? ?????? ??????? ???? ?? ?????????? Database ? Object Explorer ? ? ??????????? ???? ??????? New Database (????? ????). ????????? ?????????? ???? New Database, ? ??????? ? ????? ???????? ?????? ??? ?????????? ????? ?????? ?????? ??? ??????????? ???? ?????? (???. 4.1). ??? ???? ????????? ?????????? ????? ??????????? ?????-
??? ?? ?????????. ?????? ???? ????? ??? ???????? ???? ?????? ??? ??????????? ??????? ???? ??????????? ???????????? ?????? ? ???????? ?????, ????? ?? ????????? ????????? ???? ??????, ? ?????? ? ?????????? ??????????? ????????. ??? ???? ???? ???????? ????? ?????????? ? ????????? ???????? ???? ?????. √лава 4 100 ???. 4.1. ???? ???????? ????? ???? ?????? 4.2.2. —оздание базы данных при помощи команды CREATE DATABASE ????? ????? ??????? ???? ?????? ????????? ??? ?????? ??????? Transact-
SQL CREATE DATABASE
. ?????? ??? ??????? ?????????? ? ??????, ???????, ?????? ???????? ????? ???? ??????, ????????? ? ?????? ????????, ?????-
???, ????????? ?????????? ???? ?????? ? ???????? ? ??? ????????. ?????? ????????? ??????? CREATE DATABASE
????? ??????????? ?? ?????: ??? ?????? ?? ????????? ???????, ? ???????? ?? ????????? ??????????? ?????????-
???. ?????? ????? ?? ????????? ? ???, ??? ????? ?????? ????? ??????? ? ?????????????????? ??????. ?????? ???? ????? ?????? ??????? CREATE DATABASE
??????? (??? ????? ???? ?????????? ?????????? ????????, ????? ????, ?????? ???? ???? ????????? ??????), ?? ????? ????????????? ?????????????. ??? ????? ??????? ????? ?????????: ????????????? ?????? ??? ???????????? ???? ?????? ? ???????-
???????? ???????? ????????? ????. ?????? ??????? (? ?????????? ???????) ???????? ?????? ?????, ????? ? ??? ??? ???? ??????????????? ???? ?????? ?? ???????, ??????? ????????????? ??? ??????????, ? ?? ?????? ?????????? ?? ????? (????????, ??????? ?????-
??) ?? ?????? ??????? ??? ?? ????????? ???????? (????????, ? ????????). ??????? ?????? ????? ????? ?????????. —оздание баз данных и настройка параметров 101 ????? ??????? ? ????? ?????????????? ??????? ???????? ???: 1. ???????? SQL Server Management Studio ? ???????????? ? ???????, ?? ??-
????? ??????????? ???????????? ??? ???? ??????. 2. ????????? ????????? Databases. 3. ???????? ?????? ??????? ???? ?? ??????? ?????? ???? ?????? ? ? ???-
???????? ???? ???????? Script Database As | Create to | New Query Edi-
tor Window (????????????? ???? ?????? ??? | ??????? | ????? ???? ?????-
???? ????) (??? ???????, ????????? ?????? ????? ????? ????????? ? ???-
?? (????? ???????????? ???? File) ??? ????????? ? ????? ?????? (????? Clipboard)). ?????? ??? ???? ?? ????????? ?????? ?????? ?? ???????? ????? ???? ?????? ? ????????? ?? ??????????. ???? ??? ????? ????? ????????? ? ?????? ??????? ?? ???????? ???????? ??? ?????? (??????, ????????????? ? ?. ?.), ???????? ???????????? ?????? ??????: 1. ????? ??? ?? ???????? ??????????? ???? ?????? ???? ??????. 2. ? ??????????? ???? ???????? Tasks | Generate Scripts (?????? | ???????-
?????? ???????). ????? ????? ????????? ?????? ????????? ???????? Generate SQL Server Scripts Wizard. ?? ????????? ????? ??????? ?? ?????? ??????? ????????? ?????????? ????????? ???????: ??? ????? ???? ?????? ?? ?????????, ????? ?? ???????? ? ?????? ??????? ?? ???????? ???? ???????? ? ???? ???? ?????? ??? ?? ?????? ????????? ? ?????? ??????? ?????? ?? ???????? ???????? ??-
??????????? ???? (??????, ?????????????, ????????, ??????????? ????????-
???, ????????? ? ?. ?.), ??????????? ?? ????????????? ???? ?????? ? ???????-
???, ??????? ?? ????????????? ?? ???????, ???????? ? ??????? ?? ???????? ???????? ????????????? ???????? ? ?????? ?? ???????, ???????????? ?? ??????? ?? ???????? ???????? ? ?. ?. ????????????, ???, ???????, ?? ??????? ? ???? ??????? ? ??????????? ??-
?????????? ???????????? ??????? INSERT
??? ???????? ??????. ?? ??? ???-
????? ???? ?????? ? ???????????? ??????? ???????? ???????????? ?????? ???????, ??????? ????? ??????????? ? ????????? ???????. ?????? ?????? ????????? ???????? ???????
CREATE DATABASE
? ?????????-
?????? ???????? ????????? ????. ???????? ??? ???????? ???: 1. ???????? SQL Server Management Studio ? ? ???? File ???????? New | File. 2. ? ???? New File (????? ????) ? ?????? Categories (?????????) ???????? ????????? SQL Server Query | Database (?????? SQL Server | ???? ???-
???) ? ? ?????? ?????? ???????? ?????????? ?????? ??? ???????? ???? √лава 4 10
2
?????? (????? ??????? ?? ???????????? ????????? ?????????? create database
). 3. ?????? ????? ???????? ? ???? ????????? ???? SQL Server Management Studio. ??? ????? ?????????? ???????, ? ????? ??????????????? ?????-
?????? ????? ??? ?????????? ???????? ??????????. ??? ???? ????? ??-
????? ??? ?????? ???? Query | Specify Values for Template Parameters. 4.2.3. јльтернативные способы создани¤ базы данных ????? ???? ??????????? ???????????? ??????? ???????? ??? ??????: ??? ?????? ???????????? ?????????? ? ??? ?????? ??????? Create Database
. ??? ????? ??????? ???????, ?? ? ??? ???? ???????????? ?????????? ? ??? ?? ????????? ????????? ???? ?????? ? ?????????? ???????????? ???????. ? ?? ?? ????? ? ???????? ?????? ?????? ????????? ?? ?????? ??????? ???? ??????, ?? ? ????? ????????? ? ??? ????????? ??????, ????????, ???????-
??? ????????????. ??? ???? ???? ? ????? ???????????? ? ?????????????? ??????? ???????? ??? ??????: ?????????????? ? ????????? ?????; ??????????? ?????? ???????????? ???? ??????; ?????????? ??????? ??????????? ??? ??????; ????????????? ??????? SSIS (?????? DTSX). ??? ???? ???? ???????? ??????????, ????? ? ??? ??? ???????????? ??????? ???? ??????-??????? ? ???????????? ???????. ???? ????? ???????????? ?????? ?????? ? ? ????????? ???????????? ? ? ??????????????? ??? ??????. ??? ????????? ??????????? ? ?????????????? ????? ?????????????? ? ??. 6. ?????? ??????, ??????????, ????? ??????? ? ????????, ?????? ?????? ??-
???????????? ? ???????????? ??? ???? ????????. ??????? ????????? ? ??? ?????????. ??????????? ?????? ???????????? ???? ?????? ????? ???????????? ? ?????? ?????????: ??? ???????? ?????????????? ???? ?????? SQL Server ? ?????? ???? ???????, ????? ???? ????? ???? ?????? ???????????, ??? ????-
????? ???????? ???????????? ???????, ???, ??? ? ????? ??????, ??? ??????-
??????? ??????????? ???? ?????? ?? ?????? ??????. ???????????, ??? ??? ????? ??????????? ???? ???? ?????? ? ????????? ??????? ?? ???????. ??-
???????????????? ???????? ????? ????????? ???: 1. ??????, ??? ??? ????? ???????, ? ??????????? ????? ???? ?????? ? ???-
?????? ???????. ?????? ?????? ????? ? ??????????? ?? ?? ?? ??????: ??? —оздание баз данных и настройка параметров 10
3
??????? ???????? ? ??? ??????? ??????????? ????? ?????? ????????? ?? ??????. ????? ?? ????? ??????? ??? ?????, ????? ???????????? ??? ???????: ????? ??????? ??????: ??????????? ???? ??????. ??? ????? ? ??????-
????? ???? ???? ???? ?????? ? Object Explorer ???????? ??????? Tasks | Detach (?????? | ???????????); ????? ???????? ??????: ????????? ??????? ALTER DATABASE
. ??? ??????? ????????????? ??? ????????? ???? ??????, ? ??? ????? ? ??? ????????? ?? ?????????. ????????, ????? ????????? ???? ?????? DB1
? ?????????? ????? (offline), ??????? ????? ????????? ???: ALTER DATABASE DB1 SET OFFLINE; ?????? ??????????? ????????? ???? ?????? ? ?????????? ????? ? ???-
???????????? ???????? ???? Tasks | Take offline (?????? | ????????? ? ??-
???????? ?????) ? SQL Server Management Studio. ???? ??????, ??????? ????????? ? ?????????? ??????, ????? ???????? ? ???? Object Explorer ??????????? ??????? ??????. 2. ?????????? ????? ???? ?????? ? ?????? ??? ????? ???????? ????????-
?? Windows. ????? ??????????? ?? ?????? ????? ???? ??????, ?? ? ???-
??? ??????????. ? ????????, ???? ?????? ?????????? ???????, ?? ??? ????? ????????????? ??????, ?? ??? ???????? ??????? ????????????? (??? ???????? ???????????? ??????? CREATE DATABASE ... FOR_ATTACH_ REBUILD_LOG
). 3. ??????? ???????? ???? ?????? ? ??????? ?????????. ???? ??? ???? ????-
??????? ??? ?????? Object Explorer, ?????????? ?? ?????. ??? ????? ???-
?? ??????????????? ???????? Attach (????????????) ???????????? ???? ?????????? Databases. ???? ?? ???? ?????? ???? ?????????? ? ???????-
??? ????? (offline), ?? ??????? ?? ??????? ? ??????????? ????? (online): ALTER DATABASE DB1 SET ONLINE; 4. ???????????? ???? ?????? ? ?????? ???????. ??? ????? ? ??????????? ???? ?????????? Databases ? Object Explorer ???????? ??????? Attach ? ? ??????????? ???? Attach Database (????????????? ???? ??????) ??? ?????? ?????? Add ???????? ???? ?????????????? ???? ?????? (???? ?????? ?????????? ????? ? ??? ?? ????????, ?? ????? ????????? ??????-
???????), ? ????? ??????? OK. ???? ??? ????? ???????????? ???? ?????? ??? ?????? ??????, ?? ?? ?????? ?????? ????? ??? ? ??????? Attach As (???????????? ???). ??? ?????? ????? ??????? ????? ?????????? ???? ?????? ? ???? ?? ???????, ?? ??????? ??? ?????????? ??????, ?? ??? ? ???? ????? ???????????? ???? ?????? ? ??? ?????? ??????. √лава 4 10
4
?? ???????? ?? ?????????? ???? ???????? ????????? ??????? ?????? ?????-
??, ??? ?? ?????? ?? ????????. ????? ?? ???????? ????? ?????????? ?????????? ???? ?????? SQL Server 7.0 ??? 2000 ?? SQL Server 2005. ?????????? ????????? ???? ?????? ?? SQL Server ?????? ??????, ??????????? ?? ????? ? ???????????? ? SQL Server 2005. ?????????? ?????????? ????????????? ??? ?????????????. ? ?????????? ??????? SQL Server ??? ????????????? ??? ?????? ????? ???? ???????????? ???????? ????????? sp_attach_db
??? sp_attach_single_ file_db
. ??? ????????? ? SQL Server 2005 ??? ???????? ?????????????, ?? Microsoft ??????????? ???????????? ?????? ??? ??????? CREATE DATABASE
? ?????????? FOR_ATTACH
. ???????? ?????????, ??????? ?????????????? ??? ???????????? ???? ?????? (
sp_detach_db
), ???? ?????? ?? ????????. ?????? ?????? ???????? ???? ?????? ? ??? ??????????? ???? ?????? ??? ?????? ??????? Copy Database Wizard. ???? ?????? ???? ????? ?????. ? ??? ??????? ?? ?????? ?????????? ???? ?????? ?? ?????? ????? ????????? SQL Server 2005, ?? ? ? ??????? SQL Server 2000 ?? SQL Server 2000 ??? 2005: ? ????????? ?????? ?????????? ???? ?????? ?????????? ??????????-
???. ??????????? ????? ??????? ???????? ??, ??? ??? ??????? ? ? ????????, ? ??????-?????????? ? ?????? ???? ???????? ?? ????, ??????? ??????????? ???? ?????? ? ??????? ????? ???????? ?????????? ?? ??????. Copy Database Wizard ????? ????????? ??? ?? ???????????? ???? ?????????? Databases ? Object Explorer (??????? ???? Copy Database), ??? ??? ?????? ????????? ?????? ???????????? ??????? (??????? CopyDatabaseWizard
). ????????? ?????? ? ?????????? SSIS ??? ???????? ???? ?????? ? ???????-
??? ?? ???????. ?? ????? ?????????? ? ??. 10. 4.3. ‘айлы баз данных и журналов транзакций ???? ?? ????? ?????? ???????, ??????? ?????????? ??????? ??? ???????? ???? ??????, ? ??? ??????? ? ????????? ? ?????????? ?????? ?????? ? ???????? ??????????. ???????? ??????? ????? ??????????? ??????? ?????-
????????????? ? ?????????? ?????? ?????? ??????????. ??????? ???????? ??????? ????? ????????. ??? ????? ???? ?????? ????????? ????? ????? ???? ?????? ? ????? ???-
????? ??????????. ? ?????? ???? ?????? ???????? ??? ?????????? ? ????? ???? ??????. ? ????? ???????? ?????????? ???????????? ???????????????? ?????? ???? ?????????, ??????? ???????? ? ???? ??????. ??????????? ??-
??? ?????? ??? ????? ???? ?????? (?? ?? ???????????? ?? ?????????) ??-
—оздание баз данных и настройка параметров 10
5
?????? ???? ???? ??? ????? ???? ?????? ? ???? ???? ??? ??????? ?????- ?????. ? ?????? ???? ?????? ??????????? ???? ???? ??????? (primary) ????. ?? ????????? ??? ???? ???????????? ?????????? mdf (???? ???????????? ????-
?? ????? ?????????? ?? ??????????? ? ??? ????? ?????? ??? ?????? ? ???-
????? ?????????? ?????????? ????? ???? ??????, ? ????? ? ?????????????). ??????? ???? ???? ??????. ??? ???? ?????? ????? ??????? ? ???????????-
??? ????? (secondary), ??? ??????? ?? ????????? ???????????? ?????????? ndf. ????? ??? ?? ???? ??????? ? ?????????????? ????? ? ???????? ????-
??????, ??? ??? ?? ????????? ???????????? ?????????? ldf. ? ????????, ???? ?????? ????? ?????? ?????????? ??? ??????. ??? ??????-
????? ?????????? ??? ???? ????? ????????? ?? ????????????????? ?????. ????? ??????? ?????????? ?????????????? ????????????????? ???????? (raw partitions). ??????, ? ??????? ?? ?????? Unix/Oracle, ?????? Win-
dows/SQL Server ?????? ?? ?????????? ?? ?????????? ????????????? ?????-
???, ? ??????? ???? ??????? ???????????? ?????. ? ?????? ????????? ??????????? ?? ??? ????????, ??????? ??? ???????? ????????? ??? ???????? ???? ??????. ?????? ??????? ? ??? ??? ????? ????????? ????? ??? ?????? ? ???????? ??????????. ?? ????????? ? ????? ??? ??????, ? ????? ???????? ??????-
???? ? ??????? ?:\Program Files\Microsoft SQL Server\MSSQL.X\MSSQL\Data (??? X ? ????? ?????????? SQL Server 2005). ????? ??????????, ???????, ?? ??????????. ????????? ???????, ? ????? ?????? ?????????? ?????? ??? ??????, ? ??-
??????? ?? ?? ????????? ??????? ?????????? RAID-??????. ?????? ?? ???? RAID-??????? ?? ?????? ???? ??????, ????? ?????? ???? ??????, ?, ????? ????, ?? ??? ?????? ???? ??? ??????? 50% ??????? ????????????. ????? ??-
????? ???????????? ??? ???????????: RAID-?????? (? ??????????? ?? ?????????? ??????) ???????????? ????-
??? ?????????????????? ? ??????????????????; ??????? RAID-?????? ?????? ??????? ?????????????? ??????? ??? ???-
??? ????????? ??????? ? ???????. ???? ?? ??????? ???????? ?????-?? ????????, ? ? ??????? ???? ?????? ??? ? ???????, ?????????? ?????? ?????????? RAID-?????? ? ??????? ??????? ? ???????????? ???? ?????? (??. ????. 4.2.3); ???? ?? ???????? ??????? RAID-??????, ??????? ?????? ? ?????? ??-
?????????? ???????????? (Hardware Compatibility List) ??? ????????? Windows Server, ?? ??? ????????????? ?? ??????? ??? ?????? ???????? ?????????????????? ?? ???? ???????? ????????; √лава 4 10
6
???? ?? ????? ????? ?? ????? ???????? ???????????? ????????, ?? ???? ?? ?????????? ???? ?????????? ??????? ??? ?????????? ????????? ???-
?????? ????????, ????????, ??? ???????????? ???????????????? ?????-
??? ??? ??????? ??????. ???????, ??????? RAID-?????? ? ??? ????????? ???????. ?? ?? ?????? ???????????? ????? ?? ???? ????? ?????? ?? ????. ? ???? ?????? ?????????-
????, ?? ??????? ????, ???????????? ??? ?????? ??? ?????? ????????? ????-
??? ??????? ????. ????????????? ?? ????????????? ???????? ?? ??? ?? ????, ??? ????????? ????? ??? ??????, ??????????? ????? ???????????? ??????? ? SQL Server. ??????? ?????, ??? ?? ???????????? ??????? ??? ???-
?????, ?? ??????? ?????????? ???? ?????? Active Directory (?? ????????? ??? ????????? ? ???????? C:\Windows\NTDS), ??????????? ??????????? ?? ??????: ??????? ?????????????????? ????? ???? ?????? ???????????. ??????? ??, ??????? ?????? ??????? ??????? ????? ??? ?????? ?????????? NTFS ??? ???????? ?? ?? ?????? ?????. ?????? ? ? ?????????? ?????? ???????? ??????????. ?????????? ?? ?????????????????? ? ??? ??????? ??????, ??? ? ?????? ??? ?????? (???? ?? ?????? ??????? ? ???, ??? ? ????? ???????? ?????????? ??-
?????????? ?????? ?????????, ??????? ???????? ? ???? ?????? ? ??????? SELECT
?? ???, ?? ??????????? ??????????? ???????, ??????? ?? ?????????). ??? ????????? ??? ?????, ??????? ?? ?????????? ? ???? ?????? ? ??????? ?????? ???????????. ????? ???????????? ?????? ????????, ??????? ?? ???-
????? ???????????? ? ?????????? ???????? ???????: ?????? RAID-??????; ????????? ????? ?????? ?? ??? ?? RAID-???????, ??? ? ????? ??? ???-
???; ??? ??????? ?????, ??????? ??????????????? ?? ????????? ???? ? ?????; ?????? ??????? ????????? ????; ?????????? ?? ??? ?? ?????, ?? ??????? ????????? ????? ??? ?????? (???? ??????? ???????? ?????????, ?? ?????? ?? ?? ????????? ????????-
?? SQL Server 2005 ? ??????? ?? ???????????? ???????). ???????, ??? ??? ????? ??????????? ??????????, ? ??? ?????????? ?????-
??? ?????????? ?? ?????? ?????????? ????? ?? ????????? ? ?????? ??? ??????. ???? ?? ????????? ??? ???????, ?? ? ?????? ?????? ???????? ????? ??????? ???????? ?????????????? ?? ?????? ???? (???????, ??? ???????, ??? ????????? ??????????? ???-???? ?????????????). ???? ?? ????? ??? ?????? ? ???????? ?????????? ?????????? ?? ????? ?????, ? ???? ???? ???????, ???-
????????? ???? ?????? ??????? ?????? ?? ?????? ???????? ????????? ??????-
—оздание баз данных и настройка параметров 10
7
??? ?????. ? ???? ?????? ????????????? ???????? ?????? ??????? ??????, ????????, ?? ????????? ???? ??? ?? ????????? ?????? ? ? ??????????? ?? ????, ????? ????????? ??? ????????????? ????????? ???????????. ?????? ???????, ??????? ?? ?????? ??????? ??? ???????? ???? ??????, ? ????? ??????? ?????? ??? ?????? ? ???????? ??????????. ???????, ?????? ?????? ??? ?????? ????????? ??????? ?? ??????, ??? ????-
??? ???????????? ??? ???? ??????. ?????? ? ??? ???? ????? ? ????? ??????? ??????? ????? ??? ?????? ??? ????????? ??? ??? ????? ??????????????? ??????????, ????? ????? ??? ????????????? ????? ????????????? ???????-
??????. ???? ????? ??????????? ???????, ?????? ????? ? ?????? ?????? ???-
?????? ????? ????????????? ??????? (???, ?? ??????? ????, ??????????? ??-
???????????? ????? ???????? ???????, ????????, ? ????????? ????????), ???? ???????? ?? ??, ??? ? ??????? ???????????????? ??????? ???????????? ????? ???? ?????? ?????????????? ?? ?????. ???????????? ????? ?????? ? ????? ??????? ?? ???????? ???????????? ?????? ??? ??????, ??????? ??????????????????. ?? ????????? ??? ?????? ??? ?????? ????????????? ?????? ??????? ? ?????????????? ?????????? "????????": 1 ????? ??? ?????? ???? ?????? ? 10% ?? ????????????? ??????? ??? ?????? ???????? ??????????. ?????? ????? ???????, ??? ??? ?????????? ??????? ????? (????????, ??? ???????? ?????????? ?? ???? ??????) ??????? ??? ?????? ????????? ?????-
?? ?? ?????????. ??????? ????????? ????? ???????? ??????? ????? ????-
?????, ?????? ???????? ??? ????????. ????????? ?????? ?????????????? ??? ?????? ???????????? ?????????? ????? ????????? ? ???? New Database ??? ???????? ????? ???? ?????? ??? ?? ??????? General ??????? ???? ?????? ? SQL Server Management Studio. ????? ?????????????? ??????????????? ? ??????????????? ?????? ??? ???-
???? ????? ???? ?????? ???????? ?? ?????? ? ??????? Autogrowth (??????-
???????? ????) ??????? ??????? ????? (??. ???. 4.1). ???? ?? ??? ????????? ????? ??? ?????? ???????? ??????? (????????? ? ??????? ????????) ? SQL Server ?????????? ??????, ?? ????? ????????, ??? ?? ???????? ??????? ???????? ??????????? ???????. ??????? ??? ???? ? ???, ??? SQL Server ?????????? ?????? "????????????" ???????????? ?????? ??????????? ?????? ??????, ???????? ??? ????????? ??????. ? SQL Server 2005 ????????? ????? ???????????, ??????? ?????????? ??????????? ?????????????? ?????? (instant file initialization). ??? ????????? ?? ????????? ????? ?????? ??????, ??? ????? ????????? ?????, ????????? ??? ???????? ?????? ??? ?????? ??? ?? ??????????. ?????? ??? ??????????? ???????????? ?????? ??? ???? ????????: SQL Server ???????? ??? ??????????? ???????????? ??????? Windows Server 2003 ??? Windows XP; √лава 4 10
8
??????? ??????, ?? ????? ??????? ???????? SQL Server, ???????? ?????-
?????? ??????????? ???????????? ??????? SE_MANAGE_VOLUME_NAME
(?? ????????? ????? ?????????? ???? ? ?????????? ?????? Administrators). ??? ?? ????? ???????? ????????? ? ? ????????? ?????????????? ?????? ???????? ?????????? (??????? ??????, ??? ??????????? ????????????? ???-
??? ??? ???????? ?????? ???????? ?? ????????????). ?????? ??? ?????? ???????? ?????????? ????????? ??? ???? ??????: ? ????? ?????? ??????? ?????????? ????? ??? ?????????? ???? ??????? ????? ?? ???? ?????? ????-
??? ?? ????????? ????????: ?????? ?????? ? ? ????? ?????? ???????????? ???? ??????. ???? ??? ??-
?? ?????? OLTP (?. ?. ?????? ? ??? ?????????? ?????????, ???? ????? ?????????????? ??? ?????? ?????????? ??????????), ? ??????? ???????-
?? ?????????? ??????????? ???????????? ?? ???????????? ??? ??????, ?? Microsoft ??????????? ????????????? ??? ???????? ?????????? ?????? ?? 10 ?? 25% ?? ?????? ??????? ?????? ??? ??????. ??? ??? ?????? Data Warehouse (???????? ?????????, ??????? ? ??????? ?????? ????????-
???? ?????? ?? ?????? ? ???????????, ??? ???????, ?????????? ???????? ???????? ?????? ??? ???????? SSIS/DTS) ?????????? ????? ? ?????????? ????????? ?? ?????? ?????? ??? ??????; ?????? ?????? ? ????? ????? ?????????????? ???????? ??? ???? ??????. ????? ?????????????? (recovery model) ????????????? ?? ??????? Options ??????? ???? ??????, ????????? ? ??? ????? ?????????? ? ????. 4.5. ????? ?????????????? Simple ??????????? ??????????? ?????????? ? ??????? ?????? ??????? (????????? ?????? ?????? ? ??????? ????? ?? ????????-
????????), ? ????? ?????????????? Full ??????? ?????? ??????? ??????? ???????? ???????; ???? ???? ?????? ???????? ? ?????? ?????????????? Full, ?? ?????? ? ??????? ?????????? ????? ???????? ?? ?????????????, ???? ?? ????? ???-
???????? ????????? ??????????? ??????? ?????????? ??? ?????? ????-
?????? ?? ????? ?????? ???????. ??????? ??? ??????????? ??????????-
?? ??????? ?????? ???????? ?????????? ????? ????????? ? ??????? ??-
???????? ???????????. 4.4. ѕрименение файловых групп ??? ???????? ????? ???? ?????? ?? ?????? ???????, ? ????? ???????? ????-
?? ?? ????? ??????????. ???????? ?????? (Filegroup) ? ???, ??? ??????? ?? ????????, ?????? ??????????? ?????? ???? ??????. ?? ????????? ??? ??-
??? ???? ?????? ????????? ???????? ?????? PRIMARY
, ? ??? ??????????? ???-
?? ???? ?????? ?? ????????? ????? ?????????? ?????? ? ???. ? ????? —оздание баз данных и настройка параметров 10
9
????????? ??? ????? ????????????? ???????? ?????????????? ???????? ?????? ?????? ???????? ? ??????????? ?????????? ???????????. ???????????, ??? ?? ????????? ? ????? ??????, ??? ??????? ??????? ????? ??????? ????????? ?? ??? ?????: ???????????????? ???????, ??????? ????????? ?????????? ??????????- ????; ??????? ???????????, ??????? ???????? ????? ????? (????????, ????? ???????? ?????????? ?? ?????????????). ???????????, ??? ? ???????????????? ?????? ????? ?????????, ? ??????? ???????????, ????????, ???????? ????? ?????. ? ?? ?? ?????, ? ????? ?????? ?????????? ???????????, ??????? ?????? ???????????????? ???????. ????-
?????????? ????????? ??????????? ? ???? ???????? ????? ???: ??? ???????? ???? ?????? ??????? ?????????????? ???????? ?????? USERS
. ??????? ????? ???? ??????, ???????? users.mdf, ? ??????????, ??? ?? ????? ?????????? ? ???? ??????; ??? ???????? ???????????????? ?????? ? ???????? ? ??? ??????????, ??? ??? ????? ???????????? ???????? ?????? USERS
(??? ???? ???? ? ???????? CREATE TABLE
? CREATE INDEX
???????????? ???????? ????? ON
? ????????? ????? ???????? ??????). ???????? ????????, ??? ????????? ???????? ? ???????? ?????????? ????? ??????, ? ???????? ?????? ? ?????; ??????? ???????????? ????????? ? ???????? ?????? PRIMARY
??? ??????? ??? ??? ???? ???????? ??????. ????? ????? ??????????? ????????? ??????????? ????????? ???????? ????? ? ?????? ???????????. ????????, ????????? ??????????? ???????? ?????? USERS
????? ??????????? ?????? ????, ? ???????? ?????? PRIMARY
? ??? ? ?????. ???????????? ??????, ??????? ??? ???? ????? ??????, ?????? ? ???, ??? ??? ??????????? ??????????? ?????? ????? ????????? ???????? SQL Server ?? ????? ??????? ?????? ?????????? ?? ??? ???, ???? ?? ????? ??????????? ??-
??????? ??????????? ???? ???????? ????? (???????????? ??????? ??? ????-
?????? ????????? ????????? ?????). ????? ???????, ??????? ??????? ????-
?????? ? ???? ???????? ????? ????????????? ??? ? ?????. ?????? ????????, ????? ??? ????? ????????????? ???????????? ???????????-
??? ???????? ??????, ? ?????? ????????????? ???????? ? ???????? ??????-
????. ???????????, ????????, ??? ? ??? ?? ??????? ???? ??? ??????? ?????: ??????? ? ???????????? ?????????. ????? ?? ???????? ?????? USERS
???-
?? ?????????? ?? ??????? ?????, ? ????? ??? ????????????????? ???????-
√лава 4 110 ????? ? ?? ?????????, ?, ????? ???????, ????? ???????? ???????? ?????? ??????? ??? ?????????????. ?????? ???????? ? ?????? ????????????????? ???????? ? ???????? ??????-
????. ?????????, ????????, ? ?????? ???????? ??????? ??????? ? ??????? ? ???, ????? ????????, ????? ? ???????????? ??????? ? ???? ??????? ?????-
???? ??????? ??? ?????. ???????, ???????, ????????? ????????? (RAID-
??????, ? ????? ?????? ??????????????????, ???? ??????? ??????? ??????-
??????), ??? ?? ????? ????? ??????????? ??????????. ?, ???????, ?????????, ????? ???????????? ??????? ????????????? ?????-
??? ????? ? ??????????? ?????? ? ????????????????? ????????. ???? ? ???, ??? ??? ????????? ? ?????? ???????? ?????? ??????????? ????? ????? ???????????? ???????. ???????, ???????????? ??????? ? ?????????????-
????? ??? ???? ???????? ???? ?? ???????, ?? ??????????? ?????. ?? ????? ???????????? ??????? ?????? ?? SQL Server ? ?????????? ? ????-
???? ?? ?????? ???????????? ????? ???????, ??? ???????? ?????? ?? ????-
???????? ??????????? ????? ????? (? ?????? ?????????????? ? ?? ???????-
???? ?? ?? ?????????????). ??? ?? ????? ? ????????? ????????? ??? ?????? ????? ???????????. ??????? ????? ???????? ?????? ????? ??? ??? ?????? ???????????? ??-
???????? SQL Server Management Studio (?? ??????? Filegroups (???????? ??????) ??????? ???? ??????), ??? ??? ?????? ?????? CREATE DATABASE
, ALTER DATABASE
. ??????????? ???????? ?????? ????? ??????? ???????? ??????? ?? ?????????. ? ???? ?????? ??? ????? ??????? ? ??????? ? ???? ?????? ??? ???????? ????? ?? ????????? ?????????? ? ??? ???????? ??????. 4.5. –ежим восстановлени¤ базы данных ???? ?? ?????? ???????, ??????? ????? ??????? ??? ???????? ???? ???-
??? ? ? ????? ?????? ?????????????? ????? ???????? ????. ???? ???????? ?????????? ?? ??????? Options ??????? ???? ?????? ? ?????? Recovery Model (????? ??????????????) (??? ??????? ????????? ??????????). ????-
???? ????? ?????????????? ???? ?????? ????? ????? ??? ?????? ??????? ALTER DATABASE
. ????? ????????????? ??? ?????? ?????????????? ???? ??????. Full (????? ??????? ????????????????) ? ? ???? ?????? ???????????? ?????????? ???????? ???????????? ? ?????? ??????????. ?????? ???????-
??? ????????????? ?? ??????????. ???? ????? ???????????? ?????????-
??? ??????????? ?????????????? (?? ???? ???????? ??????????????????). ?????? ? ???? ?????? ?? ?????? ???????????? ?????????? ??????????? —оздание баз данных и настройка параметров 111 ??? ?????? ? ?????????????? ???????? ???????? (log shipping). ?????? ???? ????? ?????????? ?? ????????? ??? ???????????????? ??? ??????, ????????? ?? ???????? ??? ???? ?????? model
. ???? ???????? ????? ???-
??????????? ??? ???? ?????? model
, ?? ??? ??????????? ??? ?????? ?? ????????? ????? ?????????? ????? ?????. Bulk-logged (????? ????????? ????????????????) ? ??? ?????????? ??-
??? ???????????? ?????????????????? ? ????????????? ??????????????. ??? ????????????? ????? ?????? ?????? ? ?????? ??????????? ???????-
???? (? ???????????? Microsoft ? ?????????? ??????????? ???????????-
?????) ??? ???????? ????????? ?????: ???????? ??????? (??????? BULK INSERT
,
SELECT INTO
, ???????? ??????-
???? bcp
? ?. ?.); ???????/????????? ??????? ???????? ?????? (
text
, ntext
, image
); ???????? ?? ????????, ???????????? ? ???????? ????????. ?????????????? ?????????? ???????? ?????????? ??? ???? ?? ???????-
?????, ?????? ? ????????????, ?? ??????????? ? ???? ????????????? ????????, ???????????? ??? ??????. ??? ?????? ? ???? ?????? ?? ????????? ??????????? ???????????? ???-
??? ?????????? ??? ?????????????? (??? ?????? ?????? ??????, ?? ?????? ??????? ??? ?? ????? ??????????), ???? ? ??? ???? ???? ?? ???? ?????? ? ????????????? ????? ?????????. Microsoft ??????????? ?? ???????????? ???? ????? ?????????????? ?? ?????????? ??????, ? ????????????? ? ???? ?? ?????? Full ?? ????? ?????????? ??????? ???????? ???????? ???????, ? ????? ???????????? ???????. Simple (??????? ?????? ??????????????) ? ???????????? ??????? ? ?????????????????? ? ???????? ?????? ?? ???? ???????????? ?????????-
?????. ?????????? ??????????????? ?? ?? ????????, ??? ? ? ?????? ???-
??????????? Bulk-logged, ? ????? ?????, ?????? ?????????? ??????????-
??? ????????? (???????, ?????? ??????? ?????????? ????? 256 ?????, ?? ??? ????????????? ?? ????? ???? ????????????? ????????). ? ?????????? ?? ????????? ???????????? ?????????????????? ? ??????????? ?? ??-
???? ? ????????????? ???????? ????? ? ??????? ??????????. ?? ? ???? ?????? ???????????? ?????? ?????????? ??? ?????????????? ??? ??????-
??. ?? ?? ?????? ???? ????????? ????????? ??????????? ??????? ????-
??????: ??????? BACKUP LOG
? ???? ?????? ????? ?????? ??????. ????? ?? ????? ?????????????? ???????? Microsoft (? ????? ??????? ???-
???) ??????????? ??? ??????? ??? ?????? ???????? ?????? ????? Full. ??-
???? ?? ????? ?????????? ??????? ???? ????? ??????? ?????? ? ??????? ?? ??????????? ????? ???????, ??? ????? ?????? ??????? ?????????????? √лава 4 11
2
??????????? ??????????? ??? ????? ??? ?????? ????? ?????????????? Simple. ???????????? ????????? ?????????????????? ??? ????????? ?????-
??? ??????? ? ??? ?????? ? ???????? ????????? ??????? ?????? ???????-
???? ????????? ???????? ???????????? ?????????? ??????????? ? ??????-
????????. ??? ?????? ??? ????? ?????? ? ?????????????? ??????????? ?????????????? ??? ???????????? ??????????????????, ?????? ???. 4.6. –ежимы работы базы данных ??? ??? ?????? SQL Server 2005 ????????????? ????????? ??????? ?????? (??????? ?????????? ????? ??????????? ???? ??????, database state). ??-
??????????? ??? ??? ?????? ??????? Options ???? ??????? ???? ?????? ??? ??? ?????? ??????? ALTER DATABASE
(?? ??????????? ?????? ONLINE/ OFFLINE
, ??????? ?????????? ?? ?? ??????? Options, ? ?? ???????????? ???? ???? ?????? ? ???? Object Explorer). ????? ??????? ????????? ?????? ?????? ???? ??????: ?????? ONLINE/OFFLINE/EMERGENCY
. ????? ONLINE (??????????? ?????) ? ??? ?????????? ??????? ?????. ???? ????????? ???? ?????? ? ????? OFFLINE (?????????? ?????), ??: ???? ?????? ?????? ??????????? ??? ?????????????; ?? ??? ?????? ?? ????? ????????????? ??????????? ?????? ???????; ????? ???? ?????? ? ??????? ?????????? ???????????, ? ?? ????? ?????, ????????, ??????????? ?????????? ???????????? ???????. ????? EMERGENCY (?????????) ? ??? ????? ?????, ??????? ???????? ? SQL Server 2005. ???? ????????? ???? ?????? ? ????? EMERGENCY
, ??: ??? ?????? ????????? ?????? ?? ??????; ????? ????????? ???????????????? (?. ?. ?????? ? ??????? ???????-
???); ? ???? ?????? ?????? ?????????? ?????? ????????? ?????????????? (?. ?. ????? ????????? ???? sysadmin
). ???? ????? ????????????? ???????????? ??? ????? ??????????? ???? ???-
???, ???? ?? ????????????, ??? ? ??? ???????? ????????; ?????? READ-ONLY
/
READ-WRITE
. ?? ????????? ??? ???? ?????? ?????????, ???????, ? ?????? READ-WRITE
(?????? ? ??????). ??????? ???? ?????? ? ????? READ-ONLY
(?????? ??????) ?????? ????????????? ??????????? ???-
???? ????????? ? ??????, ?? ???????? ???????? ?????????? ?????? ?? ???? ????, ??? ??????? ?????????? ?? ?????????????. ????? ????????? ???? ?????? ? ????? READ-ONLY
, ????? ??????? ????????? ???? ?????????????. —оздание баз данных и настройка параметров 11
3
? ???? ?????? ????? ???????? ???????? ????????? ?????? Data Ware-
houses (?? ????? ???????? ???????? ?????? ?? ????? ???????? ?? READ-
WRITE
); ?????? MULTI_USER/RESTRICTED_USER/SINGLE_USER
. ????? MULTI_USER (???-
??????????????????) ? ??? ??????? ?????, ? ??? ?? ????????? ??????-
?? ??? ???? ??????. ? ?????? RESTRICTED_USER (??????????? ??????? ?????????????) ? ???? ?????? ??????????? ?????? ????????????, ??????? ??????????? ? ???? ???? ?????? db_owner
??? ? ????? ?? ????????? ??-
??? sysadmin
??? dbcreator
. ???? ????? ???????????? ? ????????, ????? ?????? ????????????? ? ????? ?????? ???????????? (???????? ???????? ??????, ?????????? ?????????, ??????????? ????????), ?? ????? ????? ??????????? ????????? ????????? ?????????? ? ????? ??????. ? ?????? SINGLE_USER (????????????????????) ??????????? ?????? ???? ????????-
??? ? ???? ??????. ???? ????? ????? ??????????????, ????????, ? ?????? ????????? ?????????, ????? ???????????? ?????????????? ???? ??????. ????????? ?????? ?????? ???? ?????? ??????? ?????????? ?????????????, ??????? ? ????????? ????? ???????? ? ????? ??????. ???? ? ???? ?????? ???????????? ?? ????????, ?? ????????? ?????? ??????? ??? ?????-???? ???????. ???? ?? ? ????????? ????? ? ???? ???? ?????? ??????? ???????-
???, ?? ??? ???????? ???? ???????? ?? ??????? ?? ??????????? ?????? SQL Server Management Studio, ???? ????????????? ??????????????? ???????? ? ??????? ALTER DATABASE
. ????????? ????????? ?????? ?????? ???? ?????? ? ??? ??????: ?????? ?????? ?? ?????????. ? ???? ?????? ??????? ALTER DATABASE
????? ????? ??????????? ?????, ???? ???????????? ?? ???????? ? ???? ?????? ???? ??????. ????? ????? ??????? ????????? ???? ?????? ? ?????? ??-
??? (???? ?? ?? ?????? ?????, ?????????? ??????? ????? ????????); ?????????? ????????? ???? ?????? ? ?????? ????? ??? ????????. ??? ????? ???????????? ???????? WITH NO_WAIT
. ??? ??, ??? ? ? ?????? ??????, ??????? ? ?????? ????? ??????????, ???? ??? ???????????????? ??????-
?????, ??????? ????? ??????. ???? ??????? ALTER DATABASE
?? ????? ??-
?????? ????? ?????? ??????????, ??? ?? ????? ?????, ? ????? ?????? ??????; ???????, ??????? ?????? ????? ???? ????????????? ??? ?????????? ?????? ? ?? ??????? ?? ??????????. ??? ???????? ??? ?????? ????????? WITH ROLLBACK AFTER ??????????_??????
. ????????, ???? ?? ?????? ???? ???? ????????????? ??? ???????????????? ???? 10 ????? ?? ??????????, ?? ??????? ????? ????????? ???: ALTER DATABASE testdb SET RESTRICTED_USER WITH ROLLBACK AFTER 600; √лава 4 11
4
?? ?????? ?????????????, ??????? ???????????? ? ???? ?????? ? ??????-
??????????? ??????? (?. ?. ? ??????? ??????????? ???? db_owner
) ??? ??????? ?? ????????; ????????? ????????????? ??????????, ????????? ?? ????????????? ????-
??????. ??? ???? ???? ???????????? ???????? WITH ROLLBACK IMMEDIATE
. ????? ??????????? ??? ???? ???????, ????? ?? ?????? ???????????? ?????-
????? ???? ????????????? ????? ???? Activity Monitor (??? ???????? ?? ???-
??????? Management (??????????) ? ???? SQL Server Management Studio), ? ??????????????, ??? ??? ??????, ? ????? ?????????? ??????? ?? ??????????? (????????, ?????????????? ??????????? ??). 4.7. ƒругие параметры базы данных ????? ?????? ?????????????? ? ??????? ??????, ? ??? ?????? SQL Server 2005 ???? ????????? ?????? ?????? ???????. ??? ???????? ????? ??-
??????? ??? ?????? ???????????? ?????????? ?? ??????? Options ??????? ???? ?????? ? SQL Server Management Studio (??? ???? ????? ???????? ?? ??? ?????????) ??? ??? ?????? ??????? ALTER DATABASE
. ??? ???? ???????? ?????????? ? ?? ???????? ?? ??????????? ?????????? ? ? ?????????? ?????-
?? ALTER DATABASE
???????? ??-???????. ????????, ?? ??????? Options ??? ????????? ANSI NULLS Enabled ????????????? ???????? TRUE
? FALSE
. ??? ????????????? ??????? ALTER DATABASE
??? ?? ???????? ?????????? ANSI_NULLS
, ? ??? ???? ???????????? ???????? ON
? OFF
. ????? ????????? ?????????? ??? ???? ?????????? ???? ??????, ??????? ?? ???? ??????? ? ???? ?????????? ????????. ???????? ?????????? ??? ?????? ? ?? ???????? ?????????? "? ???????" ??????? ALTER DATABASE
. ALLOW_SNAPSHOT_ISOLATION
? ??????????, ????? ?? ??? ?????? ? ???? ????? ?????? ???????????? ????? ????? ???????? ?????????? ???????????? ???????. ?? ????????? ???????? ??? ????? ????????? ??????????????? ? OFF
. ANSI_NULL_DEFAULT
? ??????????, ????? ?? ?? ????????? ??????? ? ???-
???????? ???????? ???? ???? ?????? ????????? ???????? ???? NULL
. ?? ????????? ???????? ????? ????????? ? OFF
(?. ?. ?? ?????????), ??? ??-
?????? ???????? ANSI. ???? ???????? ????? ???????? ?? ?????? ??????-
???? ??????. ??? ??????????? ?? OLE DB ? ODBC ?? ????????? ????-
???????? ??? ???????? ?? ?????? ?????? ? ON
. ANSI_NULLS
? ???? ???????? ???? ????????, ?? ????? ????????? ????????, ?? ??????? ????, ???? ?? ??????? ???????? NULL
, ????? ?????????? NULL
. ????? ????????? ?????????? ?????????? ANSI. ???? ?? ???? ???????? ??-
—оздание баз данных и настройка параметров 11
5
???????? ? OFF
(?? ?????????), ?? SQL Server ??? ????????? ???? ?????-
??? ???? NULL
????? ?????????? TRUE
. ???? ???????? ?????????????? ???-
???????? ????????????? ? ON
??? ???????? ??? ????????? ????????????-
??? ????????????? ??? ???????? ??? ??????????? ????????. ??? ???-
???????? ?? OLE DB ? ODBC ????? ?? ????????? ???????????? ??? ???????? ?? ?????? ?????? ? ON
. ANSI_PADDING
? ??????????, ????? ?? ??????????? ??????? ??????? ???-
????????? (????????, ???????) ??? ??????? ???????? ???? varchar
? nvarchar
? ??????? (???????? ON
?????????? ?????????? ANSI). ?? ????-
????? ? SQL Server ??????????? ???????? OFF
. ????? ??? ??, ??? ? ??? ??????????? ?????????, ???? ???????? ?????????????? ??????????? ????-
????????? ? ON
??? ???????? ??? ????????? ??????????????? ??????????-
??? ??? ???????? ??? ??????????? ????????, ? ????? ?? ??????????????? ? ON
?? ????????? ????? ????????????? OLE DB ? ODBC ?? ?????? ??-
????. ? ???????????? Microsoft ?????? ?????????????, ????? ???? ????-
???? ?????? ??? ?????????? ? ON
(?????? ???????? ?? ?????????, ??? ??? ???? ???????, ? OFF
). ANSI_WARNINGS
? ???? ???????? ??????????, ????? ?? ?????????????? ???-
???????????? ?????????, ???? ?????????? ??????? ?????????? ?????-
????? ??????? ?? ???? ??? ?????????? ?? ????????? ???? NULL
. ? ??????-
??? ???????? ??????????? ??? ?? ?? ?????, ??? ? ??? ??????????? ????-
?????: ???????? ON
????????????? ?????????? ANSI, ?? ????????? ??????????????? ?? ?????? ?????? ????????????? ?? OLE DB ? ODBC, ?????????? ??? ?????? ? ???????????????? ??????????????? ? ???????-
?? ??? ??????????? ????????. ?? ??? ??? ?????? SQL Server 2005 ?? ????????? ??????????? ???????? OFF
. ARITHABORT
? ???? ???? ???????? ?????????? ? ON
, ?? ?????????????? ?????? (???????????? ?????????? ??? ??????? ?? ????) ???????? ? ????-
????? ?????? ??? ?????? ??? ??????????, ? ??????? ??? ????????. ???? ???????? ????? ????????? ??????????? ? OFF
(?? ????????? ? SQL Server), ?? ??? ??????????? ??????????????? ??????????, ? ?????????? ????-
??/?????????? ????? ??????????. ??? ?????? ? ???????????????? ????-
??????????? ? ????????? ??? ??????????? ???????? ???????? ????? ??-
??????? ?????? ???? ??????????? ? ON
. AUTO_CLOSE
? ???? ???? ???????? ?????????? ? ON
, ?? ????? ?????????? ?? ???? ?????? ?????????? ???????????? ??? ????? ????????????? ??????? SQL Server. ?????????? ??? ???? ???? ?????? ???????? ? ?????????? ??-
???: ?? ????? ????? ????? ???????? ??????????. ??? ?????? ????????? ? ???? ???? ?????? ?? ??????? ????????????? ??? ????? ????????????? ??-
?????. ?? ????????? ???? ???????? ???????? ??? ???? ??? ??????. √лава 4 11
6
???????? ??? ????????????? ?????? ??? ????????????????? ??? ?????? ??? ???????? ????????. ???? ??? ???????? ??? ??????? ??????? ???? ??????, ? ??????? ????? ???????????? ????????????, ?? ??? ????? ????-
???? ????????? ??????. ? ???????? SQL Server 2005 Desktop Edition, ????-
??? ?????????? ?? ????????????? ? ???????? ??????????? ??????????, ???? ????????, ????????, ??????? ?? ????????? ??? ???? ??? ??????. AUTO_CREATE_STATISTICS
? AUTO_UPDATE_STATISTICS
? ???? ??? ????????? ???????? (?? ?????????), ?? SQL Server 2005 ????????????? ??????? ? ????????? ?????????? ??? ???????? ?????? ???? ???? ??????. ?????????? ? ??? ??????????? ????????? ?????????? ? ????????????? ?????? ? ???????? ??????, ??????? ???????????? ????????????? ????????. ???????????, ????????, ??? ? ??? ??????????? ??????, ??????? ?????? ??????? ???? ????????, ??????????? ? ?????? ?????-??????????. ??? ???? ???????????, ??? ? 90% ??????? ? ???? ??????? ???? ? ?? ?? ?????-
??? ? ??????? "?????" ? ?????-?????????. ???????, ? ????? ?????? ??-
???????? ???????, ??????? ???????? ??????? ? ??????? ???? ???????? (?? ???? ????? ?? 90%), ? ????? ??? ????????? ???????? ??????? "?????" ??? ?????? ?????????? ??????. ?????? ??? ????, ????? ??????, ??? ????????-
?????? ???????? ? ???????, ????? ??????? ????????? ??????. ??????? SQL Server ?????????????? ?????????? ?????????? ????? ????????, ? ??-
??? ????????? ?????????? ? ????????????? ?????? (????? ?????????? ? ?????????? ???????????) ? ????????? ???????? ???? ??????. ?????????? ????? ???????????, ????? ??????????? ?? ?????? ????????? ?????????? ????? ?????????? ????????. ????????? AUTO_CREATE_STATISTICS
? AUTO_UPDATE_STATISTICS
????? ????? ????????? ?????? ?????, ????? ???? ?????? ? ??? ????? ???????, ? ?? ???????, ??? ?????????? ?? ???????? ?????????? ????? ????????? ?????? ?????????????. ? ???? ?????? ????? ??????????? ?????????? ?????????? ???????, ????????, ?? ?????????? ?????. AUTO_SHRINK
? ??? ????????? ????? ????????? ????? ??? ?????? ? ???-
????? ?????????? ????????????? ????? ?????????, ????????? ????????-
?????? ???????????? ???????????? ???????. ?? ????????? ???? ???????? ????????. ??? ??????? ??? ?????? ????????? ????? ????????? ????? ???-
?????? ????? ??????? ??-?? ??????????? ????????????. CONCAT_NULL_YIELDS_NULL
? ???? ???????? ?????? ??????? ??????? ???-
????? ????????????? ? ???????????????. ???? ??? ???????? ??????????? ? ON
, ?? ??????? ???????? ?????????? ???????? ?? ????????? ???? NULL
???? ? ????? NULL
. ????????, ???? ?? ??????? ??? ? ??????? ? ???????-
?????? ?????????, ?? ?? ?????? ????????? ???????? ???? NULL
. ???? ?? ???????? ????? ????????? ??????????? ? OFF
(?? ????????? ? SQL Server), —оздание баз данных и настройка параметров 11
7
?? ????????, ??? ??????, ??? ? ???????. ???????? ??????????? ? ???, ??? ?? ????????? ??????????? ?? OLE DB ? ODBC ????????????? ?? ?????? ?????? ??? ????? ????????? ???????? ON
. ???? ?????????? ?? ?????????? ?? ??????, ?? ???? ?? ????????? ??????? ? ??????? ??? ???????, ? ????-
??? ????? ????????? ?????? ????????, ?????????? ???????? ?? ????????? (????????, ?????? ????????? ????????). ??? ?????? ? ???????????????? ??????????????? ? ???????????????? ????????? ???????? ????? ????-
????? ?????? ???? ??????????? ? ON
. CURSOR_CLOSE_ON_COMMIT
? ???? ???????? ???? ???????? (?? ????????? ?? ????????), ?? ?????? ????? ????????? ?? ?????? ????? ????? ?????????? ??????????. ? ????????? ?????? ?? ????? ?????????? ? ?????? ?? ?????-
??? ?????????? ??? ?? ?????? ???????? ??????? ?????????????. ??? ????????? ????? ????????? ?? ??????????? ? ???????? ?????????? ????????????? ????????? ????????, ???? ???????? ??????? ???????. ???? ???????? ????? ????????? ?? ?????? ?????????? ?????? ??? ????????? ??-
????????. CURSOR_DEFAULT
? ??? ????? ????????? ????? ???????????? ??? ????????: LOCAL
? GLOBAL
(?? ????????? ??????????? ???????? GLOBAL
). ?? ????????-
??, ??????? ?????? ???? ????? ??????????? ?? ?????????: ????????? (??-
????? ?????? ?? ?????? ??????????? ??????, ????????, ???????? ???????-
??) ??? ?????????? (??????? ?? ?????? ????? ???????????). ????? ???-
????? ???????? ? ?????? ?????????? ?????? ? ????????? ??????? ?? ?????????????. ????? ?? ????????????? ????????????? ?? ?????????? ?? ???????? ????? ?????????, ? ???? ?????????? ? ????? ???? ??????? ?????-
?? ????. DB_CHAINING
? ???? ???????? ??????????, ????? ?? ? ???? ???? ?????? ???-
?????? ??????? ? ???????? ???????? (chaining ownership) ?? ????????? ??? ??????. ?? ????????? ??????????? ???????? OFF
? ????? ??????? ?????-
????. ??????? ???????? ? ??? ????????, ??????? ?????????, ????? ???? ? ??? ?? ???????????? ??????? ? ??????? ???????? (????????, ????????), ? ??????????? (????????, ??????????????, ??????? ?????????? ? ???? ???-
????). ?? ???? ??????? ???????? ????? ????????????, ???????????? ?????-
?? ???????????? ????? ?? ?????????????, ??? ????? ?????? ???????????-
?? ???? ????? ?? ?????? ? ??????? ??????? ????? ??? ?????????????. NUMERIC_ROUNDABORT
? ???? ??? ?????????? ? ?????? ??????? ?????????? ?????? ????????, ? ???????? ????? ????????? ??????????? ? ON
, ?? ?????-
???? ??????. ?? ????????? ? SQL Server ??? ????? ????????? ??????????-
?? ???????? OFF
. ??? ??????????? ?????? ? ???????????????? ????????-
??????? ? ????????? ??? ??????????? ???????? ???????? ????? ????- ????? ?????? ???? ??????????? ? OFF
(? ?? ON
, ??? ??? ?????????? ????-
??????!). √лава 4 11
8
PAGE_VERIFY
? ???? ???????? ??????? ???????? ???????? TORN_PAGE_ DETECTION
? ?????????? ??????? SQL Server (???????? TORN_PAGE_DETECTION
???????? ??? ???????? ?????????????, ?? ???????????? ?? ??? ?? ????-
?????????). PAGE_VERIFY
?????????? ????? ??????????? ?????? ???-
??/?????? ??? ?????? ?? ?????????? ???? ??????. ?????? ????? ?????? ????????? ?? ???? ????????: ???????? ? ?????? (????????????, ????????? ??????????? ? ?. ?.). ? ???????? ?????? ? ???? ?????? ??????????? ???????. SQL Server ??-
?????? ?? ?????????? ???????? 8 ?????, ? ???????????? ??????? ???-
??????? ????/????? ?????? ??????? ?? 512 ????. ??? ?????????? ??-
????? ?????? ????? ????????? ????????, ????? ???????? ? ???? ?????? ???????? ?????? ????????. ??? ??????????? ????? ???????? ??????-
?????, ??????? ? ??? ??????????, ????????????? ???????????, ? ? ???-
??? ??????? ???????????? ?????? ? ????? 824. ??? ????????? PAGE_VERIFY
????????????? ??? ????????. CHECKSUM
? ??? ???????? ??????????? ??? ???? ???????????????? ??? ?????? ?? ?????????. ??? ????????????? ????? ???????? ??? ?????? ????????? ??? ???????? ????? ?????????????? ??????????? ????? ? ???????????? ? ????????? ????????. ???? ????? ????????? ??????? ???????? ??????????? ??????? ?? ?????????? ??? ?????? (???????? ???????? ????????), ?????? ? ???? ???? ??? ??????????: ?????????? ?????? ???????? ?? ????????? ? ????? ??????? ?????????? ? ????? ????????????, ??? ??? ???????? TORN_PAGE_DETECTION
, ??????????? ???????, ??????????? ??? ???????? ?????? ??????? ?? ????? ?????-
????? ???????. TORN_PAGE_DETECTION
? ?????? ??????????? ????? ???????????? ???-
???????? ??? ??? ??????? ?? ?????? (???????? 512 ????) ???????? ??????. ????? ????? ?????????? ??????? ?????????? ???????? ? ??-
??????? ?????, ??? ????? CHECKSUM
, ???????????? ?????? ???????? ?????? ???????. ?????? ??? ????????????? ????? ?????? ??? ??????-
??? ?????? ?????????????? ????. ???? ????? ?? ????????? ????-
?????? ?????? ??? ???? ?????? master
(? ???????? ??? ??? ???? ???? ?????? ??????). NONE
? ? ???? ?????? ?? ????? ?????????????? ?? ??????????? ?????, ?? ??????????? ????. ??????????? ?????????? ??????? ????? ??-
????????, ???? ?? ????????? ? ??????????????????. ???? ????? ????-
????????? ???????????? ?????? ?????, ????? ???? ?????? ??? ??????-
??????? ????? ????? ????? ?????????? (????????, ?????????? ? ??? ???? ?????? ????????? ??? ?????? ??????????). —оздание баз данных и настройка параметров 11
9
QUOTED_IDENTIFIER
? ???? ???????? ??????????, ????? ?? ???????????? ??????? ??????? ??? ???? ???????? (??????, ???????? ? ?. ?.). ?????? ????? ????????????? ?????????, ???? ???????????? ????????????? ??? ??????? (????????, ????????? ?? ???? ???? ? ????????). ?????? ? ????-
????? ANSI SQL ??? ????? ??????? ????????????? ?????????? ??????, ??-
?????? ? ????????????? ????????????. ?? ????????? ??? ????? ????????? ? SQL Server 2005 ??????????? ?????-
??? ON
? ???????????? ??????? ??????? ?????. ??????????? ?? OLE DB ? ODBC ????????????? ????????????? ???????? ??? ????? ????????? ?? ?????? ?????? ? ON
. ???????? ON
????? ?????????? ??? ?????? ? ?????-
??????????? ??????????????? ??? ????????? ??? ??????????? ?????-
???. RECURSIVE_TRIGGERS
? ???? ???????? ??????????, ????? ?? ????????, ??-
????????? ??? ???????, ?????? ?????????? ???????? ????????? ???????-
????? ????? ????. ?? ????????? ??? ????? ????????? ??????????? ?????-
??? OFF
, ?. ?. ?? ?????. ?????? ??? ????? ??????? ????? ???? ????????? ????? ??????? ?????????, ??????? ????? ???????? ???????????? ???? ???-
?? ?? ????????. ????? ????????? ? ????? ???????, ????? ?????????? ???-
????? ?????????? ????????? NESTED TRIGGERS
. TRUSTWORTHY
? ???? ???????? ??????????, ??????????? ?? ???????? ?????? ???? (??????????????, ???????????????? ????????, ???????? ???????-
???) ?????????? ? ???????? ?? ????????? ?????? ???? ?????? (????????, ? ???????? ? ?????? ???? ??????) ? ?????? ???????????? (?????? ?????-
??? ????? ?????? ? ?????????????). ? ?????? ???????????? ??? ????-
????? ? ???????? ??????? ??? ???? ?????????? ?????????? ?? ??????? ?????? ???? ????????????, ??????? ??????????? ? ????? ???? ??????. ??????????, ??? ????? ???????????? ??? ?? "????????" ????? ???? ???? ??????. ? ????? ???????????? ????? ????? ?????? ? SQL Server 2005 ?? ????????? ???????? ?? ?????? ???? ?????? (???????? TRUSTWORTHY
????-
?????? ? OFF
). 4.8. –асширенные свойства баз данных ????? ??????????? ???????????? ???????????? ???????? ??? ??????, ? ??-
??? ???????????? ????? ???? ??????????? ????????? ???????? ??????. ????????, ??????? ?? ?????? ??????? ????, ?????????? ???????????? (extended properties). ?? ????? ??????? ? ????????? ???? ?? ??????? ???? ?????? (? ???? Properties ?? ??????? Extended Properties (??????????? ????????)), ???? ?? ???? Transact-SQL ??? ?????? ???????? ???????? √лава 4 120 sp_addextendedproperty
, sp_updateextendedproperty
, sp_dropextendedproperty
. ??????????? ???????? ???? ??????? ????? ?? ??? ?? ??????? Extended Properties ???? ??? ?????? ??????? fn_listextendedproperty
. ??? ?????????? ????, ?????? ?????????????? ? ???????????? ?? ????? ? ????????????, ??????? ????????????? ??????????? ????????, ??????? ???-
?????? ? ??? ???? ?????????. ??????????? ???????? ????????????? ?? ?????? ??? ??? ??????, ?? ? ??? ?????? ?????? ???????? SQL Server 2005, ????????, ??? ??????, ???????? ??????, ?????????????, ???????? ????????, ?????????, ??????? ? ?. ?. ???-
???????? ??????? ? ???????? SQL Server 2005 ????? ???? ?????????????? ??????????. ??? ??????? ?? ??????? ???????????? ???????????? ??? ?????? SQL_VARIANT
, ??????? ??????? ? ???? ?? 7500 ???? ??????. ??????????? ???????? ???????????? ??? ???????? ????? ??????????, ??-
????? ??????????? ??? ????????????? ????? ????????? ?????? ? ?????? ????????. ???????? ????? ??????????? ???????? ??? ??? ?????? ????????-
???? ? ???????? ?????, ??????? ? ???-?? ?????????????. ????????, ? ?????-
?????? ???????? ????? ????????? ?????????? ? ??????? ????????? ?????-
??? ???????? ?????? ? ????, ? ?????? ????????? ???? ??????, ???? ????????-
???? ???????????? ?? ????????, ? ???, ?????????????? ?? ??? ?????-?? ???????? ??? ??????????? (????????, ???? ????? ?????????? ?? ???????-
??? ?????? ????????????? ??? ???????) ? ?. ?. ?? ?????? ??????? ??????? ? ??????????? ????????, ????????, ????? ????????? ?????????????? ??-
????????, ??????? ????? ???? ???????????? ?????????? ??????????? ??? ???????? ???????? ????????. ??? ???????, ??????? ?? ????????????? ??????????? ??????? ??????????? ?????????????, ? ????????? ? ?????? ??????????? ??????? ???????????? ??????? ??????????? ??? ?????? ?????? Transact-SQL ??? ??? ?????? ???????? ????????? ?????? SMO (SQL-DMO ? ?????????? ??????? SQL Server). 4.9. ¬ыполнение некоторых служебных операций с базами данных ????? ???? ??? ???? ?????? ??????? ? ?????????, ??? ??? ?????????? ? ????-
???????? ?????????????? ????????? ???????? ?? ????????????. ??????-
??? ?? ??? ????????? ????????? ????? ????? (????????, ?????????? ????-
??????? ? ??????????????, ????????????? ???????????????? ????????), ? ? ???? ??????? ???? ?????? ? ??? ?????????, ??????? ?? ??????????????? ? ?????? ??????. —оздание баз данных и настройка параметров 121 4.9.1. ”величение размера базы данных ??? ???????? ??????????? ????? ??????. ?? ??????????? ?????? SQL Server Management Studio ??? ????? ?????????? ??????? ???????? ???? ??????, ??-
????? ?? ??????? Files ? ?????? ????? ?????? ??? ????? ???? ?????? ? ??????? Initial Size (???????? ??????) (??? ???????? ? ?????? ????? ????). ????? ????? ???????????? ??????? Transact-SQL ALTER DATABASE
. ????????, ????? ????????? ?????? ????? testdb1 ??? ???? ?????? testdb
?? 10 ?????, ????? ???????????? ????????? ???????: USE master; GO ALTER DATABASE testdb MODIFY FILE (NAME = testdb1, SIZE = 10GB); GO ????? testdb1
? ??? ?????????? ??? ?????, ??????? ????? ??????? ? ??????? Logical Name (?????????? ???) ?? ??????? Files ??????? ???? ??????. ?? ?????? ?????? ????????, ??? ??-?? ????????? ???????????? ?? ???????-
?????? ???????? ??? ?????? ???? ?????? ????? ??????????????? ???????-
??? ???????. 4.9.2. ”меньшение размера базы данных ?????? ????? ?? ????????? ?????? ???? ??????, ? ????????? ?? ??????, ??-
??????? ???????? ???????????? ?? ???? ??????????????? ????? ? ?????? ???? ??????. ??????? ????????, ????? ???? ?????????? ??????????, ? ?????? ?????? ?????????? ? ????? ? ??????? ?? ??????? ???? ??????. ?????????? ??????? ?????? ?????? ????? ????? ?????????? ????? ?????-
????: 1. ?? ??????????? ?????? SQL Server Management Studio ? ??????????? ??-
?? ???? ?????? ??????? ??????? Tasks | Shrink (?????? | ?????), ? ????? ? ??????????? ???? ???????, ??? ?? ?????? ?????????: ??? ????? ???-
??? ? ???? ?????? ??? ?????? ????????? ????. 2. ?? ??????? Transact-SQL ??? ????? ??????? ??? ?????? ?????? DBCC SHRINKDATABASE
(??? ???? ?????? ???? ??????) ??? DBCC SHRINKFILE
(??? ?????????? ?????). ??? ?????????? ??????? ?????? ??? ?????? ????? ????????? ????????? ???????: ??? ?????????? ??????? ???? ???? ?????? ?? ?? ??????? ????????? ?? ????? ????????? ???????, ??????? ??? ????????? ??? ????????. ?? ??-
?????? ?????? ?????????? ?????, ???? ??????? ????? ???? ?????? ?? ??-
?????????; √лава 4 12
2
???? ?????????? ????? ????????????? ? ??????? ???????: ?? ????????? ? ??? ???????????? ???????? ??????????? ? ?????? ?????, ? ?????? ???????????? ????????????? ??? ????????????? ?????-
??????? ????????; ????? NOTRUNCATE
? ??? ???????????? ???????? ??????????? ? ?????? ?????, ?? ?????? ???????????? ?? ???????????? ???????????? ???????; ????? TRUNCATEONLY
? ???????? ?????? ????? ?? ???????????, ???? ??????????? ?????? ?? ???? ??????? ???????????? ? ?????; ????? EMPTYFILE
? ???? ?? ???????????, ?? SQL Server 2005 ???????? ????????? ??? ???????????? ???????? ? ??? ? ?????? ????? ??? ?? ???????? ??????. ???? ??? ???????, ?? ?????? ???? ????? ????? ???-
???? ??? ?????? ??????? ALTER DATABASE
; ???. 4.2. ?????????? ???? Shrink File —оздание баз данных и настройка параметров 12
3
????? ??????????? ????? ???? ??????? ???????? ?????????? ? ???, ??????? ????? ????? ??????????? ? ????? ??????. ??????? ????? ???-
???????? ??? ?????? ? ???? Shrink File (????? ????) ? SQL Server Man-
agement Studio (???. 4.2), ??????? ??????????? ??? ?????? ???????????? ???? Tasks | Shrink | Files ???? ??????. ?????????? Transact-SQL ??? ?????????? ????? ???????? ??? ?????? ??????? DBCC SHOWFILESTATS
(??? ?????? ???????? ?????????? ? DBCC SQLPERF(LOGSPACE)
); ???? ???? ??????, ?????? ??????? ?? ?????? ?????????, ????? ? ??????-
??? ??????? ????? ????? ? ???????, ?? ????? ?? ????????? ? ???????-
???: ??? ?????? ???????? ??? ?? ??????? ???????????? (? ???????? ???-
????), ??? ? ?? ?????????? (? ????? ?????? ??????????? ???????) ???????-
????? ?????? ??????. ? ????????, ??? ? ??????????? ??????????? ??????? ????????? ????????-
??????? ?????????? ???? ?????? ??? ?????? ????????? AUTO_SHRINK
? ??? ????? ??????? ????. 4.9.3. ѕеренос файлов базы данных ????? ??????????? SQL Server 2005 ? ??????????? ???????????? ??????-
????, ?? ???????? ? ?????? ?????? ???????? (????????, ?????????? ????-
??????? ? ??????????????, ???????????? ? ????????????? ??? ??????), ??????????? ????? ???? ?????? ? ?????? ?????. ????? ????????????? ?? ???????? ????????? ?????????? ?????, ????????, ??? ????????? ???????? ???????????? ???????. ??????? ?????? ???? ?????? ???????????? ????? ??????: ?????????? ???? ?????? ? ?????????? ?????, ????????: ALTER DATABASE testdb SET OFFLINE; ????? ?????????? ???????????? ??????? ?????????? ????? ??? ?????? ? ?????? ?????; ????? ????? ??????? SQL Server, ??? ????? ???? ?????? ?????? ????????? ? ?????? ?????: ALTER DATABASE testdb MODIFY FILE (NAME = testdb, FILENAME = 'D:\testdb1.mdf'); ??????? ???? ?????? ? ??????? ?????: ALTER DATABASE testdb SET ONLINE; ???????, ??? ????? ???????? ????? ?????????? ?? ?????? ????????????-
????, ?? ? ????????? ???? ?????? (?? ??????????? ???? ?????? resource
). √лава 4 12
4
4.9.4. ѕереименование базы данных ??? ???? ????? ???????? ??????????? SQL Server 2005 ? ??????????? ??-
??????????? ???? ??????. ??? ????? ??????? ????? ?????????: ?? ??????????? ?????? ?? ???????????? ???? ???? ?????? ? SQL Server Management Studio ??? ?????? ??????? Rename (?????????????); ??? ?????? ??????? ALTER DATABASE
, ????????: ALTER DATABASE currentdb MODIFY NAME = archivedb; ??? ?????? ???????? ????????? sp_renamedb
, ????????: sp_renamedb 'currentdb', 'archivedb'; ???????? ????????? sp_renamedb
????????? ?????? ??? ??????????? ???????? ????????????? ? ??????????? ???????? SQL Server, ? ?? ????????????? ?? ?????????????. ? ????? ?????? ????? ??????????????? ???? ?????? ??????? ??????????? ????????? ?? ??? ???? ?????????????. ? ???????????? ????????? ?????, ??? ????? ??????????????? ???? ?????? ????? ????????? ? ????????????????-
???? ?????, ??, ??? ?????????? ????????, ??? ?? ???????????. 4.9.5. »зменение владельца базы данных ? SQL Server 2005 ???? ??????????? ?????? ????????? ???? ??????. ?????-
??????? ??? ???????? ??? ?????? ????? ?? ???????? ????????? sp_changedbowner
, ??? ? SQL Server 2000. ?????? ?????? ???? ???????? ???-
?????? ????? ????????? ??? (???????? ???????? ??????? ???? ??????): sp_changedbowner 'user1'; ?? ??????????? ?????? SQL Server Management Studio ???????? ????????? ???? ?????? ??????. ?????????? ????? ????????? ??? ????????? ???? ?????? master
, model
? tempdb
??????????. 4.9.6. ”даление базы данных ??????? ???? ?????? ? SQL Server 2005 ????? ????? ?????????: ?? ???????????? ???? ???? ?????? ? SQL Server Management Studio ?? ??????? Delete (???????); ??? ?????? ??????? DROP DATABASE
, ????????: DROP DATABASE testdb; —оздание баз данных и настройка параметров 12
5
? ????? ?????? ????????? ???? ?????? ?? ?????? ???? ??????? ?? ??????-
????????, ?? ?????????? ??????????, ?????? ??? ??????????. ??? ???????? ???? ?????? SQL Server 2005 ???????????? ????????? ????? ???? ???? ?????? ?? ????? (???? ??? ?? ?????????? ? ?????????? ??????). 4.9.7. ѕроверка целостности базы данных ?????? ????????? ????????????? ????????? ? ????????????????? ???? ???-
???, ????????, ???? ???????? ???????? ? ?????-?? ??????????? ??? ????-
?? ?? ??????? ?????????????. ??????, ??? ????? ??????? ? ???? ????????, ? ?????????? ? ???????? ??????? ???????????? ??????? ? SQL Server 2005. ???? ? ??? ?????? ??????????????? ?? ????????, ????????, ????? ????? ???????? ???????? ??????????? ???? ??????. ??? ????? ? SQL Server ?????-
??????? ????? ?????? DBCC (DataBase Console Commands): DBCC CHECKDB
? ??????? ???????, ??????? ???????????? ??? ???????? ??-
????????? ???? ??????. ??? ??????? ????? ????????? ?????????? ? ??????????? ??????????? ???? ??????, ???????? ?????? ? ??????????? ?????? (????????, ??????? ? ?????). ? ?? ??????? ????? ????? ????-
?????? ????????? ???????????? ?????? ? ?????? ???????, ?? ???? ? ??? ???? ??????????????? ????????? ?????, ???????????????? ????? ???????-
???????? ?????? ??; DBCC CHECKALLOC
? ??? ??????? ???????? ? ??????? ????????, ??????? ??-
??????? DBCC CHECKDB
, ? ?????? ??? ?????????? ????? ???????????? DBCC CHECKDB
. ??????? DBCC CHECKALLOC
?????????? ???????? ?????? ?? ??????? ??????, ????????? ? ???????????? ?????? ?? ?????. ??? ?????? ??? ????? ????? ?????????? ????????? ???????????? ??????; DBCC CHECKCATALOG
? ??? ???? ???????, ??????? ????????? ????? ?????-
???, ??????????? DBCC CHECKDB
. ??????? DBCC CHECKCATALOG
????????? ????????? ????????? ?????? ????????? ???? ??????. ?????????? ?????? ??? ??????? ?? ?????. «адание дл¤ самосто¤тельной работы 4.1. ѕеренос баз данных с SQL Server 2000 на SQL Server 2005 ????????: ??? ?????????? ??????????? ???? ?????? Northwind
? Pubs
? SQL Server 2000, ??????? ?????????? ?? ????? ????????? ??????????, ?? SQL Server 2005 (????????? ???_??????_??????????\SQL2005
, ??????? ?? ????????-
√лава 4 12
6
?? ???????? ??????? 2.1). ??? ???? ???????? ???? ?????? ?????? ???????? ?? ??????? SQL Server 2000. ???????: 1. ????????? ?? ?????? SQL Server 2005 ???? ?????? Northwind
. ??????????? ??? ???? ???? ????????????? ???? ??????. 2. ?????????? ?? ??????? SQL Server 2005 ???? ?????? Pubs
. ??????????? ??? ????? Copy Database Wizard. ???????: ? ?????? 1 ??????? ? ????????????? ???? ?????? SQL Server 2000: 1. ???????? SQL Server Management Studio. ? ???? File ???????? Connect Server Explorer (?????????? Server Explorer). ? ???? Connect to Server (?????????? ? ???????) ? ???? Server Type (??? ???????) ???????? Database Engine (???? ???? ??????), ? ???? Server Name ???????? ???_??????_??????????
(????????, LONDON2
), ? ???? Authentification (??????????????) ???????? Windows Authentification ? ??????? ?????? Connect. SQL Server Management Studio ??????????? ? ??????? SQL Server 2000. 2. ????????? ????????? Databases ??? SQL Server 2000, ???????? ?????? ??????? ???? ?? ???? ?????? Northwind
? ? ??????????? ???? ???????? Tasks | Take Offline. ????? ????????? ???????? ???? ?????? Northwind
????? ???????? ??????????? ??????? ??????. 3. ??????? ????? ???? ?????? Northwind
(?? ????????? ??? ????????? ? ??-
?????? C:\Program Files\Microsoft SQL Server\MSSQL\Data) ? ?????????? ????? northwind.mdf ? northwind.ldf ? ???????? ??????? ????? C:. 4. ??? ??? ? SQL Server Management Studio ???????? ?????? ??????? ???? ?? ???? ?????? Northwind
?? SQL Server 2000 ? ? ??????????? ???? ????-
???? Tasks | Bring Online (?????? | ????????? ? ??????????? ?????). 5. ? ???? SQL Server Management Studio ????????? ????????? Databases ??? ??? SQL Server 2005, ???????? ?? ???? ?????? ??????? ???? ? ? ??????-
????? ???? ???????? Attach. 6. ? ???? Attach Database ??????? ?????? Add ? ???????? ???? Northwind.mdf ? ???????? ???????? ????? C:. ????? ??????? ?????? OK. ????? ????????? ????????????? ????? ???? ?????? Northwind
???????? ?? SQL Server 2005. —оздание баз данных и настройка параметров 12
7
? ?????? 2 ? ?????????? Copy Database Wizard: 1. ? ???? SQL Server Management Studio ????????? ????????? Databases ??? SQL Server 2000 ? ???????? ?????? ??????? ???? ?? ???? ?????? Pubs
. ? ??????????? ???? ???? ???? ???????? Tasks | Copy Database. ???????-
?? ?????? ????? Copy Database Wizard. ??????? ?? ??? ?????? Next. 2. ?? ?????? ??????? Select a source server (???????? ??????-????????) ??-
?????? ???????? ?? ????????? (
???_??????_??????????
) ? ??????? ?????? Next. 3. ?? ?????? Select a destination server (???????? ?????? ??????????) ????-
???? ?????? ?????? SQL Server 2005 (
???_??????_??????????\SQL2005
, ??-
??????, LONDON2\SQL2005
) ? ??????? ?????? Next. ???? ???????? ?????-
?????????? ????????? ? ???, ??? SQL Server Agent ?? ??????? ???????-
??? ?? ???????, ??????? ? ???? ???? ?????? No ? ????????? SQL Server Agent. ??? ????? ????? ? ???? SQL Server Management Studio ??????? ???? SQL Server Agent ? ??????????????? ???????? Start (?????) ??????-
?????? ???? ??? ????. 4. ?? ?????? Select the Transfer Method (???????? ????? ????????) ???????? ????????????? ? ????????? Use the detach and attach method (????????-
???? ????? ???????????? ? ?????????????) ? ??????? ?????? Next. 5. ?? ?????? Databases ?????????, ??? ?????????? ?????? ?????? ? ??????? Copy ???????? ???? ?????? Pubs
. 6. ?? ?????? Configure Destination Database (????????? ???? ?????? ?????-
?????) ???????? ?????????, ???????????? ?? ?????????. 7. ?? ?????? Select Database Objects (???????? ??????? ???? ??????) ??-
????? ?????? <<, ????? ???????? ??????????? ????????? ? ????? ?????? ???????. 8. ?? ??????? Configure the Package (????????? ?????) ? Schedule the Package (???????????? ????? ??? ??????????) ???????? ????????, ??????-
?????? ?? ?????????, ? ????? ?? ?????? Complete the Wizard (???????-
??? ?????? ???????) ??????? ?????? Finish. ????? ????????? ????????-
??? ???? ?????? Pubs
???????? ?? SQL Server 2005. √Ћј¬ј 5 Ѕезопасность SQL Server 2005 ????? ???? ??? SQL Server 2005 ?????????? ? ??????? ??????? ???? ??????, ???? ?? ????????? ???????????? ?????????????? ? ???????????? ? ??????-
??????? ??????? ? ?????? ?????? SQL Server 2005. ???????, ?? ???? ????? ?????? ?????? ? ??????????? ??? ???????? ??????????. ?????????????, ??-
???????? ??????????, ?????????? ? SQL Server 2005, ? ??? ????????? ??-
???????? ?????? ????????????? ? ???????????????. ?? ???????? ????? ????? ???????????? ?? ??????? ???????? ???????????? ???????? ????????, ? ??? ??????? ?? ??????????? ???????????? ??????? ?? ??????????????. ????????, ?????????? ????????? ???????????????? ???-
???????, ??????? ???????, ????? ??? ???????????? ???????????? ? ?????-
????? ? ??????? ?????????? ??????????????. ?????? ?????????? ??????-
???? ??? ?????????? ???????? ??????? ???? ??????????, ? ????????? ???-
?????? Web-?????????, ??? ??????????? ? ???????? ???????????? ???????? ???? ?????? ? ?????? ???????? ???????. ??????? ????????????-
??, ??????? ?????? ? ???????????? ?? ?????? ??????, ?????? ?? ?????? ???????????? ?????????? ?????? ??????????, ?? ? ??? ?????? ?????????? ? ???????????? ????????? ?? ????????????? (???? ???? ????? ???????????) ????????????? ??????? ?????? ??????. ??????? ???????????? SQL Server 2005 ?? ????????? ? ??????????? ???-
????? ?????????? ????? ??????. ?????????? ????????????, ?????????????? ???????????, ??????????? ?????????? ?? ?????????. ????????? ????????? ? ??????? ?????? ??? ?????????? ?????????? ?????????? ? ????? ??????. ?????????? ???????????? SQL Server ????? ??????? ?????? ? ???????. ? ???, ??? ???????? ??????? ???????????? SQL Server 2005, ? ? ????????-
???? ?????????? ?? ???????????? ?????? ???? ? ???? ?????. √лава 5 130 5.1. “ерминологи¤ и основы системы безопасности SQL Server 2005 ? ???? ??????? ???????????? ???????? ??????? ? ????????? ??????? ????-
????????, ??????? ??????? ??? ??????????????? ? ????????? ???????? ???? ?????. ?????????? (principals) ? ??? ?? ???????, ??????? ? SQL Server 2005 ????? ????????????? ??????????. ??? ????? ???? ??? ??????????????? (?????-
???, ??????? ??????), ??? ? ?????????? (????????, ????). ????? ???????? ?????? ?????? ??????????? ? ??????? ???????????? SQL Server 2005, ????-
??? ?????????? ?? ???? ???????: ?? ?????? ???????????? ??????? Windows: ????? ??? ???????? ??????? ?????? Windows (Windows Domain login) ? ??????? ??????, ????????? ?? ?????? SQL Server 2005 ??? ??????????? ?? ????? ??????? ?????? Windows. ????? ???????? ???????? ??????? ?????? ?? ??????? ??????? Windows, ? ???? ????? ?????? ????? ????-
?????? ???????? (??? ?????? ??? ? ?????????? ?? ????????????); ????? ??? ????????? ??????? ?????? Windows (Windows Local login); ?? ?????? ??????? SQL Server 2005: ????? SQL Server 2005 (SQL Server login); ?? ?????? ???? ??????: ???????????? ???? ?????? (database user); ???? ???? ?????? (database role); ???? ?????????? (application role). Securables (???????? "??????????") ? ??? ???? ????????? ????????? ???-
???? ???????????? SQL Server 2005. ??? ???, ?? ??? ? SQL Server 2005 ????? ????????? ??????????. ??? ????? ????????? ? ???? ??????? SQL Server 2005, ?? ?????? ??????: ?? ?????? ??????? SQL Server: ????? (?????? ????? ?????? ???????????? SQL Server 2005 ????????-
???? ?????????? ?? ?????? ??????? ????????????); ???? ??????; ????? ??????????? (endpoint), ?. ?. ????? ???????????? ?????????? ?? ????? ??????????? ?? HTTP; Ѕезопасность SQL Server 2005 131 ?? ?????? ???? ??????: ????????????; ????; ???? ??????????; ??????; ??? ?????????; ???????; ??????; ???????? ????????? ??????; ?????????????? ???????; ??????????; ????????????? ????; ???????????? ????; ????????; ?????; ?? ?????? ?????: ???????; ?????????????; ???????; ?????????; ??????????? ???????????; ???????; ??????????; ???????????????? ??? ??????; ???????; ???????; ????????? ???? XML. ??? ?? ??????, ? SQL Server 2005 ????????? ????????? ????? ????????, ?? ??????? ????? ????????????? ??????????. ? ??????????? ??????? ??????? ?????????????? ?????????? ???????? ????? ??????: 1. ??????? ????? ? ??????? ?????? ??? ??????????? ? SQL Server. 2. ????? ??????? ???????????? ???? ??????, ???????? ????????????? ???? ?????. 3. ???????????? ???????????? ??????????? ??????????. ?????? ? ???? ??????? ????? ??????? ????????? ????????? ? ???????????-
??? ????????????, ????????? ?? ??? ????????? ?????? ? SQL Server 2005. ?? ???????????? ????????? ????????? ??????? ???? ?????. 5.2. Ћогины SQL Server 2005 5.2.1. ¬ыбор типа логина ??????, ??? ????? ??????? ??? ?????????????? ?????????? ???????????? ?? ?????????? ? SQL Server 2005, ? ??? ???????????? ??? ?????, ?. ?. ??????? √лава 5 13
2
??????, ??????? ????? ?????????????? ??? ??????????? ? ??????? SQL Server. ?????? ??????, ??? ????????? ?????, ?????????? ??????, ????? ??? ?? ????-
?? ???????????? ??? ????? ??????. ? SQL Server 2005 ???????? ???????? ?? ??? ?? ???? ??????? ?????, ??????? ??????????? ? ?????????? ???????: ????? Windows (?????????????: ????? ??? ????????? ??????? ?????? Windows, ????? ??? ???????? ??????? ?????? Windows, ????? ??? ?????? Windows); ????? SQL Server. ??????? ????? ????? ????? ?????? ??????? ????? ??, ??? ? ? ?????????? ??????? SQL Server. ??? ????????????? ??????? Windows ? ????????? ???-
???? ???? ?????? master
???????????? ?????????? ?? ?????????????? ??????? ?????? ??? ?????? Windows (?? ?? ??????). ?????????????? (?. ?. ???????? ????? ???????????? ? ??????) ???????????? ???????? ?????????? Windows ??? ????? ???????????? ?? ???? ?????????. ??? ????????????? ?????? SQL Server ?????? ??? ????? ?????? (??????, ??? ???????????? ????????) ???????? ?????? ? ??????????????? ?????? ? ???? ?????? master
. ??? ??????????? ???????????? ? ??????? ??? ???????? ???-
???? ??? ?????? ? ??????. ?????????? ? ???? ?????? ???????????? ???????? ??????? ??? ?????? ?????/??????: ???? ? ??? ????? ?? ?????????, ? ???-
??? ? ??? ??????????? ? SQL Server. ????? ?? ???? ??????? ????? ??????? ??????? ????????? ?????? ????? ??-
????????????? ????? ?????? ?? ?????: ???????? ??????????? ??????????? ?????????? ? ??? ??????? ??????? ?????????? ????????????? ??????????. ???? ?? ???? ??????????? ? ?????? ??????????? ????????? ??????? ????-
??????????, ?? ????????? ??????? ?????? ??? ???????????? ? ??? ????? Win-
dows, ??? ???? ?? ??? ??????? ??????, ? ??? ?????? (????? ????? ??? ??????-
??? ???????? ??????). ??????????? ? ?????? ??????? ?????????: ???????????? ?????????? ??????? ???? ?????? ? ??? ????? ?? ???? ???-
??????. ?????????????? ?????, ??? ?????? ????????? ???????????? ??-
??????? ???? ?? ???? ??????? ??????. ????????????? ??????? ???????-
??????? ?????? (????????, ?????? ?????? SQL Server) ? ??? ?????? ??-
?????? ?? ????????????? ? ???????????????; ?????????? ??????? ???????????? SQL Server. ??? ??????????, ?? ????-
??? ????, ?? ???? ????, ??? ?????? ?? ????? ???????????? ?? ???? ???????? ???????, ??? ??? ?????????? ?? ????????? ??? ????????????? ?????? CREATE LOGIN ? ALTER LOGIN
. ????? ????, ???? Windows (? ?????? NTLMv2, ??????? ???????????? ? Windows 2000) ??????? ????? ??????-
??, ??? ???? ??????? SQL Server, ??????? ????? ??????? ?????????? Ѕезопасность SQL Server 2005 13
3
?????? (?????? ???????? ????????? ? ????????? ?????????, ??????? ??-
??????????? ???? SQL Server ? ????????? ??????, ? Cain&Abel); ???????? ??? ????? ???????????? ???????????? ???????. ??? ???????????? ??????????? ??? ????? ??????? Windows: ??? ??? ????-
??? ??????? ???????, ??? ? ??? ?????. ?? ????????? ??????? ???-???? ? ??-
??????????? ??????? ?????? ??????. ??????? ??????: ????????? ?????? ????????? ?????? ???? ?????? master
, ? ?????????? ??-
?? ?????????????? ???????????? ???????. ?? ????? ??????? SQL Server ?????? ????? ???? ????????? ????? ??????? ??? ????????????? Windows ???, ??? ??????????? ???????, ????? ???? ???????? ??????? ??? ?????; ????? ?????????? ?????????????? ?????????? ??? ????? ??????? ????-
???. ???????????, ??? ? ??? ???????? ????? ????????????. ???? ?? ????? ??????????? ??????? ????????????? ?????????? ??????? ???????????? ????????, ?? ??? ????? ???????????? ???????? ????????? ?????? ?? ?????? ??????? SQL Server (? ????? ???????? ?? ??????? ??????????? ?????? ??-
??? ???? ?????????). ???? ?? ?? ?????????? ??????????? ?????? ??? ????? Windows, ?? ????? ??? ????????? ?????? ???????????? ?????????? ????? ?? ?????? Windows ??????????? ??? ???? ??????? ?????? ??????? ???????????? ? ???????? ???????? ?????????????. ??? ??????????? ??????? ?????? Windows ???????? ? ??????? (? ??????? ?? ???? ????????-
??? ??????????) ??????????? ?? ???????? ??????: ? ?????????? ????????-
???? ??????? ????????? ????? ?? SQL Server ????? ???????? ? ??????. ?????? ?? ????? ?? ? ????????? ????. ???????, ?? ??????????? ??????, ???????? 80% ???????? ????? ?? ???????????? ?????????? ?????? SQL Server, ??????? ??? ???? ? ????????? ?????????????, ? ?????????????, ? ???????????????????. ???????? ? ?????? ????? ??????? ????? ??????? ? ??-
?????: ????? ????? ?? ???????????? ?????????????????? SQL Server ? ??-
???? Windows ?????????? ?????? ????, ??????? ?????? ????????????? ???? ????????. ?????? SQL Server ????????? ?????????????? SQL Server ???? ??????????? ?? ?????????????? ??????. ????? ????, ? ??????? SQL Server ???? ? ?????? ????????????, ??????? ??????????? ?? ???????? ???-
???????????: ?? ??????????? ?????? ????? ?? ????????? ?????? Windows (????, ?????-
???, ???? ????????? ?? ?????? NetWare ??? UNIX
)
; ???????????? SQL Server ????? ?? ??????? ? ????? (????????, ???? ??? ???????????? ? SQL Server ?? ???????? ??? ????? Web-????????? ? ??-
??????? ??????????). ??? ??? ??????? ???????? ?? ????. ?????? Windows ? ??? ???????? ? ????-
????????, ?????? SQL Server ? ??? ?у????? ???????? ? ????????????? ?? ?????????????? ????. √лава 5 13
4
5.2.2. —оздание логина и настройка его параметров ?????? ?????? ???? ????????? ?????????: ??? ?????? ???????????? ?????????? ? ?? ???? Login ? New (????? ?????). ??? ???? ??????????? ? ??????? ??????? New Login ??????????-
?? ???? ?????????? Security | Logins (???????????? | ??????) ? Object Explorer ? SQL Server Management Studio; ?? ??????? ? ??? ?????? ??????? CREATE LOGIN
. ???????? ????????? sp_addlogin
, ??????? ?????????????? ??? ???? ???? ? ?????????? ??????? SQL Server, ????????? ?????? ??? ??????????? ???????? ????????????? ? ? ????????????? ?? ?????????????. ????????, ??????? ?? ???????? ?????? SQL Server ? ?????? User1
? ??????? P@ssw0rd
(??? ???? ????????? ?????????? ????? ??????? ???????? ?? ????-
?????) ????? ????????? ???: CREATE LOGIN User1 WITH PASSWORD = 'P@ssw0rd'; ???? ?? ???????? ????? Windows, ??? ??????????? ??????? ????????????-
??? ??????? ?????? Windows (???????? ??? ?????????). ?? ???????? ? ??????????? ???????????? ?????? Windows. ???? ?? ???????? ????? SQL Server, ??? ???????? ?????? ??? ??? ? ??????. ?????? ?????? ???????????? ? ????????, ? ????? ? ?????? ?????, ????? ?????-
??????????? ? ???????? ???? ?????????? ??? ????????? SQL Server 2005. ???????, ????? ????? ? ?????? ??? ??????? ????? ?????????? ????????? ?????? ??????????. ????????? ?? ??? ????????? ?????? ? SQL Server 2005. ????? ??? ????????? ??????????? ? ?????????????. Enforce password policy (???????????? ????????? ????????) ? ??? ????? ??????????? (?? ????? ????????????, ?????? ???? SQL Server ???????? ??? ??????????? Windows 2003 Server) ????????? ?????????? ?????????? ? ????-
??? ??? ??????? SQL Server. ?????? ????????? ??? ?????????? ?? ?????? SQL Server ?? ?? ??????: ???? ?????? Enforce password policy ????? ????-
??????, ?? ?? ?????? ??? ??????? ?????? ?????? ????? ?????????????? ?? ??????????, ??????? ??????????? ? ????????? ??????? ??????? ?? ?????? ??????????. ????? ????? ??????????? ????????? ????????? ???????? ?? ????????? ????????? ????????, ????????? ??? ? ?????????? ??????????. ?????????????????? ???????? ??? ???? ?????? ????????? ???: 1. ?????????? ??????????? ??????? ?? ?????????. ??? ????? ? ????????? ?????? Windows 2000 Server ??? Windows 2003 ?????????? ????????? ??????? Adminpak.msi
. ? Windows XP ??????????? ?????????????? ?????-
Ѕезопасность SQL Server 2005 13
5
?????? ???? ???? ? ??????????, ?? ??????? ?????????? Windows Server 2003 (??? ? ???????????? Windows 2003 Server). 2. ??????? ??? ???????. ????? ????? ??? ??????? ???: ? ????????? ?????? ????????? ??????? MMC
; ? ???? ??????? ??????? ??????? ???????? ??? ??????? ????????; ? ??????????? ???? ?????? ?????? ????????; ? ?????? ???????? ??????? ???????? ???????? ????????? ????????; ?? ?????? ????? ??????? ????????? ???????? ??????? ????????? ?????????. 3. ???????? ???? ???????? "????????? ?????????" | ???????????? ?????????? | ???????????? Windows | ????????? ???????????? | ??-
?????? ??????? ??????? | ???????? ??????? ? ??????????, ??? ??????? ????????????? SQL Server. ???? ?????????, ?? ??????? ?????????? SQL Server 2005, ?? ?????? ? ?????, ?? ? ??????? SQL Server 2005 ?? ????????? ????? ??????????? ??????????, ?????????????? ?? ???. 5.1. ???. 5.1. ?????????? ? ???????, ??????????? ?? ????????? ??? ??????? SQL Server 2005 ???? ????????? ????????? ? ??????, ?? ??? ??????? ?? ?????????????? ??????. ???????? ????????, ??? ??? ????????????? ?????? Enforce password his-
tory (???????????? ????????? ????????) ?? ????? ???????????????? ?? ?????? ?????????? ? ???????, ?? ? ???????? ?????????? ??????? ???????, ???????? ?? ???? ??????????. ??? ????????????? ?? ??? ?? ??????? ??? ?????? ?????????? ???????? ?????????? ??????? ??????. ?? ?????????, ??????? ????? ?????????, ? ?? ???????? ?? ????????? ???????????? ?? ???. 5.2. √лава 5 13
6
???. 5.2. ????????? ?????????? ??????? ??? ??????? SQL Server 2005 ?? ????????? Enforce password expiration (???????? ??????????? ??????) ? ???? ????-
???? ??????????, ????? ?? ?? ????? SQL Server ???????????????? ?? ?? ???-
??????? ?? ????? ?????? ????? ???????????? ?????????? ???????, ??? ? ??? ??????? ??????? Windows. ???? ?????? ????? ?????????? ?????? ??? ????-
????????? ?????? Enforce password history. ? ????? ?????? ??????, ?????? Enforce password expiration ????? ?? ????-
?????????, ????????? ????? ?? ????????? ????? 42 ??? ??? ????? ????????-
???? ? ???? ??????????? ????? ??????. ? ??????????? ??????? ?????????? ?????????? ?? ???????????? ??????????? ?????????, ? ???????????? ?????? ?????????? ??????? ? SQL Server. User must change password at next logon (???????????? ?????? ???????? ?????? ??? ????????? ?????) ? ? ???? ??????? ????? ???? ???????????-
?? ??????????. ???? ??? ????? ?????? ?????????? ?????? ? SQL Server Management Studio. ??????????? ?????? ?????????? ??? ??????? ??????-
?????? ?? ????? ?????? ???????????? ?????? ?????? ??????. ???????? ???? ?????? ?????, ?????? ???? ??????????? ????? ?????? ???????????? ?????-
?????? ??????????? ??????????, ??? ?????? ?????? ?? ??????. ??????? ??? ???? ??????, ????????? ? ????????. ??? ?????????? ????, ??-
?? ???? ?????????? ?????????? ????????????? ???????????? ??????????? ???????? ???? ?????? ??? ?????? SQL Server ??????????????, ?? ????? ????-
????? ?? ??, ??? ???????????? ?????? ??? ????????? ????????????? ????-
?????? ??????, ? ?? ??????? ?????????? ???? "123". ?? ????????? ????-
????? ??????, ?????? ??? ????????????? ?????? ??????????? ???, ??? ????-
???? ?? ???????????? ???????, ?. ?. ????????????? SQL Server 2005. Mapped to certificate (???????? ? ???????????) ? Mapped to asymmetric key (???????? ? ?????????????? ?????) ? ??? ????????? ????????? ???????-
Ѕезопасность SQL Server 2005 13
7
???? ?????????? ??? ????????????? ????, ??????? ????? ??????????? ??? ??????? ????????????. ????????? ?????????? ????? ?????? ??? ?????? ??????? Transact-SQL CREATE LOGIN
. ????????? ??? ????????????? ???????-
????? ? ????????????? ?????? ??? ?????????????? ? ?????????? ?????? ????? ?????????? ? ????. 5.6. ???? ?????? Default database (???? ?????? ?? ?????????), ? ??????? ?? ????????? ????? ???????????? ???????????? ??? ????? ?? SQL Server. ?? ????????? ???????????? ???? ?????? master
. ??? ???????, ?????? ???? ????-
???? ?? ???????: ??? ??? ???????? ? ?????? ???? ?????? ??? ??????????? ???????????? ?????????? ??????????. Default language (???? ?? ?????????) ? ????, ??????? ????? ????????????-
?? ?? ????????? ?????? ????????????? ?? ????? ???????. ? ???????? ?? ?????? ?? ?????? ???? ? ???????, ??????? ?????????? SQL Server. ? ????-
??????? ??????? ??? ????? ????????? ??????????? ???????? ?? ????????? (?. ?. ????, ??????????? ?? ?????? ????? ???????), ???? ? ?????? ???????? ?????????? ?? ?????? ???????????. ?? ??????? Status (?????????) ??????? ?????? ????? ????????? ??? ????? ?????? ?????????????? ?????????: Permissions to connect to database engine (?????????? ?? ??????????? ? ???? ??? ??????) ? ?? ????????? ??? ???? ??????? ??????????????? ???-
????? Grant
, ?. ?. ???????????? ? SQL Server ?????????. ???????? Deny
, ??? ???????, ???????????? ?????? ? ????? ?????? ? ????? ?? ?????????-
????? ?????? ?? SQL Server 2005 ?????? ??? ?????? Windows, ? ?????? ??? ?????????? ?????? ???? ?????? ?????? ????? ?????????. ????????? ????? ?????? ?????? ????? ????????? ????? ???????????, ?? ?????????? ????? ??????? ???? ??????????? ?????? Windows ??? ???? ????????????? ? ?????????? ??? ??? ???????? Deny
. Login enabled/disabled (????? ???????/????????) ? ???????, ??? ?????? ?? ????????? ????????. ?????? ????????? ?? ?????????? ?????? ? ??-
??????, ????? ?????-?? ???????????? ??????????? ??? ????????? ?? ???-
??? ??????. ????? ?????????? ?????, ?????????? ?????? ????????? ???-
??? ?????, ? ??? ????????? ???????????? ?? ??????? ???????? ????????-
????? ????????????? ???? ?????, ???????? ?????? ? ????????. ?????????? ??????????????? ?????????? ?????? ? ???? ?????? ?? ????????. Login is locked out (????? ????????????) ? ?????????? ???? ?????? ?? ?? ?????? (?????? ????? ???). ??????? ?????? ???????????? ??????????? ??-
??????????? ????? ?????????? ??????? ????????? ????? ?????? ??? ????-
?? SQL Server, ???? ????? ?????????? ????????? ?? ?????? ???????????? ???????, ? ??? ?????? ?????????? ?????? Enforce password policy. √лава 5 13
8
??? ?????? ????????????? ????? ????????? "?????????" ???????, ??????? ???????? ?????? ??? ????????????? ?????? CREATE LOGIN
,
ALTER LOGIN
??? ??????????? ??????? Transact-SQL. ???????????? ?????????? ??? ?? ????-
????? ?? ?????????????. ??? ??? ???????? ???????? ?????? ?? ????????? ? ?????????? ??????? SQL Server, ??????? ????? ???????? ?? ???????? ? ?????????????. HASHED
? ?????????, ??? ?? ????????? ?? ??????, ? ??? ???????????? ???-
?????. ??? ???????? ????? ???????????? ?????? ? ??? ??????, ???? ?? ???-
????? ???? ??????? ???????????? ??? ??????????. CREDENTIAL
? ????????? ?????? ?????? Credential (??????? ???????????? ????? ????? "??? ??????? ?????? Windows/??????"). ?????? Credential ?????? ???????????? ? ?????????, ????? ???????????? ?? ???? Transact-
SQL ?????? ????????? ?????-?? ???????? ? ???????????? ??????? ??? ?? ?????? ??????? SQL Server. ??? ???????? ?? ?????? ????????? ?? ????? ??????? ??????, ??????? ?????????? ??? ?????? ??????? Credential. ??? ?????? ????? ??????? ?? ?????????? Credentials ? SQL Server Management Studio ??? ??? ?????? ??????? CREATE CREDENTIAL
. SID
? ????????? ???? ????????? ?????? ?????????-?????????? ????- ????????? ???????????? (???? ??? ?? ???????, ?? ?? ????? ???????- ????? ?????????????). ????????? ?? ?????, ????????, ???: 0xD3B670F1A11E6C41B8F965EA3C2E189E
. ??????????? ??? ??? ????????????? ???????????? ????? ??? ?????? ??????? SUSER_SID
. ??????????? ??? ????? ?????? ? ??? ??????, ???? ?? ????? ?????????????? ? ???????? ????? ??? ?????? ??? ??? ?????????????? ????????. ID
? ????????????? ?????? ? ????????? ???????? SQL Server. ???? SID
? ??? ?????????-?????????? ?????????????, ?? ID
? ??? ?????? ??-
???, ??????? ????? ?????????, ????????, ???: 266
. ????????? ??? ??????, ? ??????????? ????? ??? ?????? ??????? SUSER_ID
. ?????????, ??????? ???? ?? ?????? ???????? ??????? ?????? (Server Roles, User Mapping, Securables), ????? ??????????? ? ????????? ???????? ???-
??? ?????. 5.2.3. –ежимы аутентификации. јудит попыток входа ? ?????????? ??????? ??????????????? ???????? ??????? ? ??????? ????-
??? ??? ??????????? ? SQL Server 2005. ?? ???? ?? ??????? ?????? SQL Server 2005, ?? ?????? ?????? ??????????? ? ?????????, ????? ??? ???????? ?? ?????. ??????? ????? ??????????? ? ???, ??? ?? ???????? ????????? ??-
??? ?????????????? SQL Server 2005. Ѕезопасность SQL Server 2005 13
9
????? ?????????????? ??????????????? ??? ??? ????????? SQL Server 2005 (??. ????. 2.2.5). ???????? ???? ????? ????? ????????? ????? ?? ??????? Security ??????? SQL Server 2005 (???. 5.3) ? SQL Server Management Studio. ???. 5.3. ??????? Security ??????? SQL Server 2005 ??? ? ? SQL Server 2000, ? ????? ???????????? ??? ?????? ??????????????: Windows Authentification mode (????? ?????????????? Windows) ? ???? ?????, ??????? ?????????? ?? ????????? ??? ????????? SQL Server 2005, ????????? ???????????? ??? ??????????? ? ??????? ?????? ?????? Windows; SQL Server and Windows Authentification mode (????? ?????????????? SQL Server ? Windows) ? ? ???? ?????? ????? ???????????? ??? ???? ??????? ? ? ?????? SQL Server, ? ?????? Windows. ?????? ???????? ???-
?? ?????? ? Mixed mode (????????? ?????). √лава 5 140 ???????? ????????, ? ??????? ????????????? ??????? Windows ???? ?? ??-
???????, ?? ?????????????: ?????? ????? ???? ???????? ??????. ??? ????????? ?????? ?????????????? ?????? ????? ?????????????. ??????? ??? ???? ??????: ???? ?? ?????????? ?? ?????? ?????????????? Windows ? ????????? ?????, ?? ??????? ?????? sa
?? ????????? ????????? ???????????. ?? ???????? ???????? ??? ?????? ??????? ALTER LOGIN
??? ?? Management Studio (???????? Login Enabled/Disabled ?? ??????? Status ??????? ??????). ???? ? ?????? ??????? ??????????? ????????? ?????????? ?? ????????????, ?? ?? ?????? ???????? ????? ?????? ?? SQL Server 2005. ??????????? ??? ???????? ????? ?? ??????? Security ??????? ???????. ??? ?????? ???????-
?????? Login Auditing (????? ??????) ?? ?????? ???????, ????? ????? ????-
??? ????? ????? ?????????????: None ? ???????; Failed logins only ? ?????? ????????? (???? ????? ???????????? ?? ?????????); Successful logins only ? ?????? ???????; Both failed and successful logins ? ?????. ?????? ??????? ????????? ?????? ? ?????????? ?????? Enable C2 audit tracing (???????? ??????????? ?????? C2) ?? ??? ?? ??????? Security ??????? SQL Server. ? ???? ?????? ????????? ?????????? ? ????? ???????-
?? ????????????? (??????? ???? ?? ??????) ????? ???????????? ? ????????? ????? ? ??????? Data ??? ??????? ?????????? ???????. ? ???? ?????????? ????? ???? ????? ??????????, ?????? ??? ?????????? ????? ???????????? ????? ????? ? ????? ?? ????? ????? ???????????. 5.2.4. Ћогины, создаваемые по умолчанию ????? ?? ????? ????????? SQL Server 2005 ? ?????????? Logins ?????????? ????? ???????, ??????? ????????? ?????????????. ?????? ?????, ??? ??????-
????? ????????????? ?? ?? ?????? ?? ????????????. ??? ?? ????? ????????? ????????, ? ??????? ?????? ?????????? ??????? ????? ??????????? (?????-
???, ???? ????? ???????? ???????????? ??? ???????????????? ?????). BUILTIN\??????????????
(??? BUILTIN\Administrators
, ? ??????????? ?? ????? ???????????? ???????) ? ?????? ??? ???? ?????? Windows ????-
????????? ??????????????? ????? ?????????? ?????????????? SQL Server. ???????? ????????, ???, ???? ????????? ?????? ? ?????, ? ??? ?????? ????????????? ???????? ?????? Domain Admins (?????????????? ??????), ?, ????? ???????, ?????????????? ?????? ?? ????????? ????-
Ѕезопасность SQL Server 2005 141 ???? ??????? ??????? ?? SQL Server. ???? ????? ???????? ????????????, ?? ???? ????? ????? ???????. ?? ? ? ???? ?????? ??????????????? ?????? ???????? ?????? ? ?????? SQL Server ????? ????????. ???_???????2005MSFTEUser$???_???????$???_??????????
, ???_???????2005MSSQLUser$???_???????$???_??????????
, ???_???????2005SQLAgentUser$???_???????$???_??????????
? ??? ??? ?????? ??? ????? Windows ???????????? ??? ??????????? ????-
??????????? ????? ? SQL Server 2005. ?? ?????? SQL Server 2005 ? ???? ??? ????????????? ??????????? ?????-?? ????????, ????????? ??? ????-
??????? ????? ??? ?????????????. ? ?????? ????????? ??? ????? ?????-
???????? ???????? ? ??? ?????? ?? ?????? Windows ??????? ??????, ?? ????? ??????? ???????? ?????? SQL Server. NT AUTHORITY\NETWORK SERVICE
? ?? ????? ???? ??????? ?????? ? Windows Server 2003 ???????? ?????????? ASP.NET, ? ??? ????? ? ?????? Report-
ing Services (? Windows 2000 ??? ???? ???? ???????????? ??????? ?????? ASPNET
). ???? ????? Windows ???????????? ??? ??????????? ? SQL Server Reporting Services. ??? ????????????? ??????????????? ??????????? ????? ?? ???? ?????? master
, msdb
? ?? ???? ??????, ???????????? Re-
porting Services. NT AUTHORITY\SYSTEM
? ??? ????????? ????????? ??????? ?????? ???????-
????? ???????. ????? ????? ?????????? ? ??? ?????????, ????? ?? ??? ??-
??????? ????????? ?????? ?????? SQL Server ?? ????? ????????? ???-
?????? ??????? ??????. ????? ???????, ??? ??? ?????? ????? ?????? SQL Server ?????????? ? ?????? ????. ??????? ??, ???? ????? ???????? ??????? ?????????? ?????????????? SQL Server. sa
(?? System Administrator) ? ??? ???????????? ????? ???? SQL Server, ??????? ????????? ?? ?????????. ?? ???????? ??????? ?????????? ????-
?????????? SQL Server, ? ???????? ??? ????? ? ???? ??????. ??????? ???? ????? ????? ?? ?????????. ???? ??? ????? ????????????? ??? ?????????. ???? ??? SQL Server 2005 ????? ????????? ?????????????? ?????? ??????-
???? Windows, ?? ???????????? ???? ????? ??? ??????????? ? ??????? ?? ???????. 5.2.5. —ерверные роли. –азрешени¤ на уровне сервера ?? ?????????? ????????????? ??????????? ????? ?? SQL Server 2005, ?????? ??? ??? ??????. ?? ??? ?? ???? ???? ?? ?????? ?????? ?? ????: ???????????? ????? ????? ????? ?? ?????????? ???????????? ????????. ?????? ??? ???? ???? ????????? ???????????? ??? ???? ??? ?????? ? ?? ??????????????? √лава 5 14
2
?????????? (??? ??? ???????, ????? ??????????? ? ????. 5.3). ?????? ???? ? ?????? ??????. ???? ??? ????? ???????????? ???????????? ????? ?? ?????? ????? ???????, ? ?? ????????? ???? ??????, ????? ??????????????? ??????-
???? ??????. ?? ??????????? ?????? ?????? ? ?????? ??????? ???????????? ??? ?? ??????? ?????? (??????? Server Roles (????????? ????)), ??? ?? ??????? ????? ???-
?????? ???? (????????? Server Roles ? Management Studio). ?? ???? Transact-
SQL ??? ?????????? ?????? ????????? ???? ????? ???????????? ???????? ????????? sp_addsrvrolemember
. ????????, ????? ???????????? ???????????? User4
????? ???? SYSADMIN
, ??????????????? ??? ????? ???? ?????: EXEC sp_addsrvrolemember @loginame = 'user4', @rolename = 'sysadmin'; ????? ??????? ????????? ????????, ????????? ? ?????????? ??????: ????? ????????? ????? ???????? ?????????????. ?? ?? ?????? ????????? ???? ????????? ???? (? ??????? ?? ????? ???? ??????); ??? ?????????????? ???? ?? ?????? ????? ??????? ????????????? ????????-
???? ????????? ????. ?? ?????? ?????? ???????????? ??? ????? ???????? ?????? (??? ?????? ??????? Permissions (??????????) ??????? SQL Server). ?? ????????? ?????? ????? ???????? ?? ?????? ????? ??????? ????? ???????: CONNECT SQL
(?. ?. ???????????? ? ???????, ??? ????? ???-
???????????? ?????? ????????) ? VIEW ANY DATABASE (?. ?. ????????????? ?????? ??? ??????, ??? ????? ???????????? ???????? ????? ????????? ???? PUBLIC
); ????????? ???? ???????????? ?????? ? ??????????? ???????. ??? ????-
??????? ????????????? ??????????? ?? ?? ?????. ????????? ????? ?? ??? ?????, ??????? ???????? ?? ?????? ?????? ? ???-
??????????: PUBLIC
? ??? ???? ?? ?? ??????? ? ?????? ????????? ?????. ??? ?? ????? ??? ?????????? ? ??????? ????????????. ????? ???? ???? ????????????? ???????? ???, ??? ??????????? ? SQL Server, ? ?????? ???????????? ???????? ? ???? ???? ??????. ?????? ??? ???? ???????????? ??? ??????-
???????? ?????????? ???? ????????????? ??????? ???????; SYSADMIN
? ?????, ???????? ????????? ??? ????, ???????? ?????? ????? ?? ???? SQL Server (? ??????????? ?????????? ??? ????? ?????? ??????????-
???). ? ????? ?????? ????????? ??????????, ??? ????????????? ????? CONTROL SERVER
? ?????????? WITH GRANT
(?. ?. ? ???????????? ????????); SERVERADMIN
? ??? ???? ??? ?????????, ??????? ??????????? ??????. ????? ???????? ????? ????????? ?????? ??????? ? ????????? ??????, ?? ???????? ?????? ? ?????? ? ???????? ?????????? ??????; Ѕезопасность SQL Server 2005 14
3
SECURITYADMIN
? ??? ???? ??? ????, ??? ?????? ?????????? ?????????????, ?? ?????????? ? ?????? ???????. ?? ????? ????????? ?????? ??? ??????? ?????????????, ???????? ?? ??????, ????????????? ?????????? ? ????? ??????. ?????? ???????????? ????-???? ???????????????? ????? ??? ???????? ??????? ?????? ?????????????? ??? ???? ?? ?????????; BULKADMIN
? ???? ??? ???????????, ??????? ????????? ???????? ??????-
?? ?????? ? ??????? SQL Server; DBCREATOR
? ??? ???? ????????? ????????? ???? ?????? ?? SQL Server (? ???, ??? ?????? ???? ??????, ????????????? ?????????? ?? ??????????). ?????? ??? ???? ??????????????? ??????? ???????, ???????????? ???-
?????????, ??????? ?????? ???? ?????????? ?? SQL Server; DISKADMIN
? ??? ???? ????????? ????????? ????? ???????? ? ??????? ??? ?????? ?? ?????; PROCESSADMIN
? ??? ???? ????????????? ??? ?????????? ???????????? ???????????: ???????? ???????????????? ??????????? ? ??????? (?????-
???, ????????); SETUPADMIN
? ????? ???? ???? ????????? ?????????? ??????? ??????? SQL Server (linked servers). ?????????????? ??????????? ?????? ? ??????? ?? ?????? ??????? ???????? ?? ??????? ??????? ?? ??????? Permissions (???. 5.4). ?? ???? ??????? ?? ??????: ????? ????? ????????? ????? ??? ??????? ?????? (???? ????? ????????? ????? ??? ?? ??????????); ???????????? ????? ???? ????????????? ????? (??? ?????? ??????????? ????????? ???? PUBLIC
); ??????????, ??? ??????????? ?????? ????? ???????????? (???????? ? ??????? Grantor); ?????????? ???????? ????? ??? ??????? ???????????? ?? ?????? ???????. ??? ???? ???? ????????????? ?????? Effective Permissions (??????????? ??????????). ??? ???? ??????????? ???????????? ???????????? ?????????? ?? ??????? ??????? ? ??????????????? ???????? Securables ??????? ??????. ??? ????-
?? ???? ??????? ?? ?????? ???????????? ???????????? ?????????? ??: ?????? ??????? (?? ?? ?????, ??? ? ?? ??????? ???????); ??????? ??????????? ?? HTTP (HTTP Endpoints); ??????? ?????? ???????. √лава 5 14
4
???. 5.4. ??????? Permissions ??????? SQL Server ????????, ?? ?????? ????????? ????????????, ??????? ?????? ?????? ????-
?? ??? ??????? SQL Server ??????????? ?????? ??????. 5.3. ѕользователи баз данных 5.3.1. „то такое пользователь базы данных ????? ???????? ??????? ????????? ?????? ?????????????? ? ?????????? ?? ??????? ???? ?????? ? ??????? ??????? ????????????? ???? ??????. ??????-
?????? ??? ?????? ? ??? ??????????? ???????, ??????? ????????? ?? ?????? ???? ?????? ? ???????????? ??? ?????????????? ?????????? ? ???? ?????? (?? ???????, ?????????????, ???????? ?????????). ??? ????????????? ??-
?????????? ?????? database users (??? ?????? users), ? ??????? ?? ??????? Ѕезопасность SQL Server 2005 14
5
(logins) ? ??????? ??????? ??? ??????????? ? SQL Server. ?????? ? ??????-
?????? ??? ?????? ? ??? ?????????? ?????? ???????. ? ?????????? ?? ?????? ?? SQL Server (???????? ? ???, ??? ?????? ??????? ? Oracle) ????? ????????? ??????: ? ????? ????? ??? ???? ????? ??????? ????-
??? ? ???????????? ??? ??????? ???? ?????????? ?? ??? ????: ??? ?????? SQL Server. ? ????? ??????? ?????? SQL Server ????????????? ?????? ???? ???????????? ???? ??????. ??????? ?????? ????????????? ????? ? ???? ???-
??? ??????????????? ???????? ???????????? ????? ???????, ??????, ?????? ????????. ?? ?? ???????? ???-
??????? ??????? ? ????????????? ??? ?????? ???????????? ??????? ???-
?????. ????????, ????????????, ??????? ?????? ?? ????? ?????? ? ???? ?? ??????, ?????? ???????? ? ?????? ????? ?????? ?? ????? ?????? ??????????-
???. 5.3.2. ѕользователь и схема ? SQL Server 2000 ? ? ????? ?????? ??????? ?????? ???????????? ???? ???-
??? ??? ?? ???? ??????? ????????: ??-??????, ?? ????????????? ??? ??????-
???????? ?????????? ? ???? ??????, ? ??-??????, ??? ???????????? ???? ?????? ?????????????? ??? ????????????? ????????. ????????, ????????? ? ??????? ?? ??????? ?? ????? ????? ????????? ???: SELECT * FROM MyServer.MyDatabase.User1.Table1; ???? ??????????? ??????????? ? ???? ?????????? ?????? ??? ??????? (??-
??????, SELECT * FROM Table1
), ?? ??? ??????????? ? ??????? ?? ????? ???-
??????? ?? ????? ??????? ???????????? ????? ?????????? ????????, ??-
??????? ?????? User1
????????????? ??????? ??? ???????????? (? ???? ?????? ? ????? ?????? ?????? ?? ??? ?????????, ?? ??? ???????????? ??????????-
?? DBO
). ? SQL Server 2005 ??? ??? ??????? ?????????. ??? ?????????????? ???????-
??? ? ???? ??????, ??? ? ??????, ???????????? ?????? ????????????, ? ??? ?????????? ???????? ? ???? ?????? ???????????? ??????????? ?????? ???-
??. ?????? ? ?????????????? ??????? ??????? ????? ? SQL Server 2005 ??-
???? ?????? ????????? ???: SELECT * FROM MyServer.MyDatabase.Schema1.Table1; ????? ????????? ???????????? ??? ????? ???????? ? ???? ??????, ??????-
?????? ????? ????????????? ????. ????? ????? ??????????? ???? ????? ??? ????? ?????????? ????????? ? ???? ??????, ???????? ????? ???????????? ???????, ?????????????, ???????? ?????????, ???????????????? ???????, ??????????? ???????????, ???????????????? ???? ?????? ? ?????? ??????? √лава 5 14
6
???? ??????. ???? ????????? ?????? ???????????? ??? ??? ?????????? ???-
????? ? ?? ?????????? ???????????, ??? ? ??? ?????????????? ??????????. ????????, ???? ? ???? ?????? ???? ????? ?????? ? ?????????? ???????????, ?????? ????????? ?? ? ???? ????? ? ????????????? ????????????? ???????-
??? ?? ??? ????? (?. ?. ?? ???? ????? ??????). ???????????? ????? ????????? ????? ?? ?????????. ? ??? ????? SQL Server ????? ?? ????????? ???????? ???????, ??????? ??????? ???? ??????-
??????. ????? ????, ?????? ???????, ? ??????? ?????????? ???????????? (??-
??????, ? ?????? ??????? ???? SELECT * FROM Table1
), SQL Server ????? ????? ? ?????? ??????? ? ??? ????? ?? ?????????. ?????????? ????? ???? ??? ?????????????? ??????????? ?? ????????? ?? ?????? ????????: ?????????? ????????????? ????? ????????? ???? ? ?? ?? ????? ?? ????-
?????, ??? ????? ???? ?????? ??? ?????????? ??????????; ????????? ????????????? (????? ?????? Windows ??? ???? ??? ??????) ????? ??????? ????? ? ??? ?? ??????. ??? ???? ???? ???????????? ????? ???????? ?????????? ????? ?????????? ????; ??? ???????? ???????????? ?? ???? ?????? ?? ???????? ??????????????? ??? ???????; ??? ??? ??????????, ?????????? ?????????????? ?????????? ??? ??????? ???????? ? ???? ??????. ???????? ????? ???????????? ?? ?????????? ???_????_?????? | Security | Schemas ? Management Studio ??? ??? ?????? ??????? CREATE SCHEMA
. 5.3.3. —оздание, изменение и удаление пользователей базы данных ??????? ???????????? ???? ?????? ?????: ?? ??????????? ?????? ?? ?????????? ???_????_?????? | Security | Users ? Management Studio; ??? ?????? ??????? CREATE USER
(???????? ????????? sp_adduser
, ????-
??? ?????????????? ??? ???? ???? ? ?????????? ??????? SQL Server, ??-
??????? ?????? ??? ??????????? ???????? ?????????????). ????????, ??????? ?? ???????? ???????????? User1
, ???????? ????? ??????????????? ????? SQL Server Login1
?? ?????? ?? ????????? dbo
, ????? ????????? ???: CREATE USER User1 FOR LOGIN Login1 WITH DEFAULT_SCHEMA = dbo; Ѕезопасность SQL Server 2005 14
7
??? ???????? ???????????? ??? ????? ????? ???????: ??? ???????????? (User name), ? ???????? ??????????? ?? ?? ???????, ??? ? ??? ?????? ???????? SQL Server; ????? (SQL Server ??? Windows), ??????? ????? ???????? ???????????? ???? ???? ??????. ????? ???????? ???????????? ??????????? ??? ????? ???????? ????? ??????. ????? ??????? ????????????, ???????? ?? ????? ???????? ??????? ????? (??? ?????? ????????????? Without login). ??-
???? ???????????? ??? ?? ????????? ????????? ?????. ???????????? ???-
?? ???? ? ??? ??????? ? ???????????? ?????? ??? ?????????????? ??-
??????? ???????????? ? Service Broker. ??????? ?????, ??? ???? ?????-?? ????? ??? ??? ???????? ????????????, ?? ??????? ???????????? ????-
???????? ????????? ??? ??????; ?????????? (Certificate name) ??? ????????????? ???? (Key name); ????? ?? ????????? (Default schema); ??? ????? ???? ???? ???????????? ????? ???????? ?????????? (Owned schemas); ????? ???? ???? ?????? (Database roles) ????? ??? ?????????. ???????????? ?????????? ????? ??? ? ??? ???????????? ? ?????. ?? ??????? Securables ???????????? ????? ????? ?? ???????????? ???????-
??? ?? ??????? ???? ??????. ???? ? ?????????????? ?????????? ?????? ? ????????? ????????. ??????? Extended Properties ????????? ?????????? ??-
???????????? ???????????????? ???????? ??? ??????? ???????. ??????????? ??? ??? ??? ?? ?????, ??? ? ??????????? ???????? ??? ?????? (??. ????. 4.8). ????????? ??????? ???????????? ? ??? ???????? ???????????? ?? ???? ?? ?????????? ? Management Studio, ??? ? ???????? ????????????, ? ????? ??? ?????? ?????? ALTER USER/DROP USER
. ??????? ????????????, ?????????? ??????-???? ????????? ? ???? ??????, ??????. 5.3.4. ¬строенные пользователи базы данных ??? ???????? ????? ???? ?????? ? ??? ????????????? ????????? ?????? ??????????? ????????????: dbo
(?? database owner) ? ????????????-???????? ???? ??????. ?? ????-
????????? ????????? ??? ???? ??????, ?? ????? ???????? ???? ??????? ??? ???? ??????. ??????? ??, ??? ????????, ?? ???????? ?????? ????? ?? ???? ???? ?????? (??? ?????? ?????????? ???? ???? ?????? db_owner
). ? SQL Server 2005 (? ??????? ?? ?????????? ??????) dbo
????? ??????? ???? ???? ??????; √лава 5 14
8
guest
(?????) ? ???? ??????????? ???????????? ???????????? ??? ??????-
???????? ?????????? ???? ???????, ??????? ?? ????????????? ?? ???? ???????????? ? ???? ??????. ?? ????????? ? ????? ???????????? ??? ????? login
??? ???? ??????, ?, ?????????????, ???????? ?? ?? ?????. ???? ????-
???????? ???????????? ???? ????? ??? ?????????????? ?????????? ????-
??? ?? ?????-?? ???????/???????? ???? ?????? ??? ?? ???? ??????-
???????????, ????????? ?????? ?? ??????; INFORMATION_SCHEMA
? ????? ???????????? ?? ????? ??????????????? ?? ???? ?????. ??? ???????????? ???????? ? ???? ?????????? ????? INFORMATION_SCHEMA
, ? ??????? ???????? ????????????? ????????? ?????-
????? ??? ???? ??????; sys
? ????? ???????????? ????????????, ??? ? INFORMATION_SCHEMA
, ?? ????? ??????????????? ??????. ?? ???????? ?????????? ????? SYS
, ? ????-
??? ??????????? ????????? ??????? ???? ??????. 5.3.5. –оли баз данных ?????? ????? ???????? ?????? ? ???????????? ???? ?????? ?????????, ??? ????? ???????, ? ???????????? ???????????? ?????????? ? ???? ??????. ???? ?? ???????? ??????? ??? ? ??????????????? ?????? ???? ??????. ???? ???? ?????? ? ??? ??????????? ???????, ??????? ???????????? ??? ????????? ?????????????? ?????????? ? ????? ??????. ? ??????? ?? ??????-
??? ?????, ??????? ????? ???? ?????? ???????????, ???? ??? ?????? ????? ???? ??? ???????????, ??? ? ?????????????????. ?????????? ???? ??? ???-
??? ???????? ???????????????? ??????? ??????????, ? ???????????????? ???? ????? ???????????? ??? ??????????? ????????????? ??? ???????????-
??? ??????????. ?????? ???????????????? ???? ???????????? ?????? ??? ??????? SQL Server (???? ?? ????? ????????? ????? ????????????? ??? ???-
???, ? ??? ????? ????????? ?? ?????? ??????? Windows). ??? ??????????? ??????? Windows ?????? ??????? ? ????? ???????????? ?????? Windows. ??? ???? ??????????? ????????????? ????? ??? ?????? ? ???? ?????????? (application roles). ???? ? ??? ?????? ? ????. 5.4. ??????? ?????????? ?????????? ???? ??? ??????, ??????? "?????? ? ??????-
???????" ??? ?????????????? ??????????: public
? ??? ??????????? ???? ????????????? ??? ?????????????? ?????-
????? ????? ???? ????????????? ???? ??????. ???????? ???????? ?? ??, ??? ??? ????????? ?????? ??????? ?? ????????? ?? ??????????? ??????-
??????? guest
. ???????????? guest
???????????? ??? ?????????????? ???-
??????? ???????, ??? ??????? ?? ??????? ????????????? ? ???? ??????, ? public
? ?????? ???????????? ?????????????. Ѕезопасность SQL Server 2005 14
9
?????????? ??????? ???????????? ?????? ???? ???? ??? ?????? ??? ????-
???? ??????????. ??? ???????????? ???? ?????? ???????? ????? ???? ??-
?? ?????????????. ?????????, ??? ??? ?????????? ???????????? ???? ???? ??????? ?????? ?? ?????????, ?? ??? ????????? ???????? ?? ??????? ???????????? ???????? ?? ??????; db_owner
? ???? ???? ????????????? ??????????????? ?????? ????? ?? ???? ??????. ?????????? ????? ???? ???? ??????????????? ?????? ?????-
??????? ???????????? dbo
, ? ????? ???? ? ??????, ??????? ?????? ??? ??-
?? ??????; dbo_accessadmin
? ???? ??? ??????????, ?????????????? ?? ????????????? ???? ??????. ???? ????????? ??????? ??????????? ?????????, ???????? ? ??????? ??????? ????????????? ??? ??????, ? ???? ????????? ?????. ???-
??? ???? ? ???? ?????? ? ???? ???; dbo_securityadmin
? ??? ???? ????????? ???? dbo_accessadmin
. ????????? ? ??????? ???? ???? ???????? ??????????? ????????? ?????????? ?? ???-
???? ???? ?????? ? ???????? ???????? ?? ?????????? ? ???????????????? ?????. ???? ?? ???????? ? ????????? ???????? ????????????? ? ???? ???? ???; db_backupoperator
? ??? ???? ???? ?????, ??? ??????? ?? ?? ????????, ??-
??????? ????????? ??????????? ???? ??????; db_ddladmin
? ??? ???? ??????????? ? ?????? ?????????, ????? ????????-
???? ?????????? ???? ????? ?????????, ???????? ? ??????? ????? ?????-
?? ? ???? ??????, ?? ???????????? ???? ?? ??????????, ??????? ?????-
????? ? ???????????? ????????; db_datareader
? db_datawriter
? ??? ?????????? ???? ???? ????? ???-
?????????? ? ???????? ?????????????? (? ??? ????? ????????? ? ???????) ????? ?????????? ? ???? ??????. ????? ????? ???????????? ????????-
?? ???? ????? ?? ?????? ? ?????? ?????????? ?? ???? ???????? ???? ???-
???, ?? ???????????? ??? ?????? ???????????????? ?????????? (?? ???-
????? ? ???????? ????????, ????????? ???? ? ?. ?.). ????? ??????? ????-
??? ? ???? ???????? (? ??????? ???????? ????????? ??????????????) ? ??????????????? ????? ????? ??????. db_denydatareader
? db_denydatawriter
? ??? ????, ??? ??????? ?? ?????-
???, ?????????????? ????? db_datareader
? db_datawriter
. ???? db_denydatareader
???? ????????? ????????????? ?????-???? ??????, ? db_denydatawriter
????????? ???????? ?????????. ????? ?????? ?????? ????? ????????? ????? ???? ???????????????? ????????????. ?????? ??? ???? ???????????? ? ????????, ????? "????????? ????, ? ????? ????-
????? ?????????". √лава 5 150 ??? ??? ?????????? ?????, ? ??????? ?? ????????? ?????, ???? ??? ?????? ?? ?????? ????????? ??????????????. ??? ????? ??????? ?? ???????????? ???? ??? ?????????? ???_????_?????? | Security | Roles | Database Roles ??? ??? ?????? ??????? CREATE ROLE
, ????????: CREATE ROLE DBRole1; ????? ????? ????, ??? ???????? ????? ????? ??????? ?? ????????? (???? ??? ?? ???????, ?????????? ???? ????????????? ?????? ????????? ?? ????????-
???? ???? ??????). ???? ?? ???????? ???? ??? ?????? ???????????? ?????-
?????, ?? ?????? ????? ????????? ???? ?????????? ????? ? ???? ?????? ? ????????? ?????????????, ??????? ????? ???????? ??????? ???? ????. ?????????? ????? ????????? ???????????????? ?????, ???????? ??????? ??????????. ?????????????? ???? ???????????????? ????? ???????????? ????? ??? ??, ??? ? ??????? ????????????? ???? ??????. 5.3.6. ѕредоставление прав на объекты в базе данных ???? ?? ?????? ?? ????????? ?????????? ???? ??? ??????, ? ?????????????-
?? ???????? ????????? ????????????? (??? ????????????????? ??????), ?? ????????? ???????? ? ?????????????? ?????????? ?? ??????? ???? ??????. ???????? ? ???? ??????, ?? ??????? ????? ????????????? ??????????, ? SQL Server 2005 ????? ??????? ?????? ?? ????????? ? ??????????? ???????? SQL Server. ? ?????????? ? ????????? ????????, ??????????????, ?????-
??? ?????????? ? ???????? ?????? ????? ????????????? ?????????? ?? ????? ???????, ??? ????, ???????????? ??? ??????, ??????????? ? ???????-
?????? ?????, ?????? ???? XML, ?????? .NET ? ?. ?. ?????? ?????? ?????-
???, ?? ??????? ????? ????????????? ??????????, ??? ???????? ? ????. 5.1. ?????? ??????? ?????????????? ?????????, ??????? ????????? ? SQL Server 2005, ? ??? ????????? ??????????? ????????????? ?????????? ?? ?????? ?????. ? ????? ? SQL Server 2005 ????? ?????????? ???????, ????-
?????????, ???????? ?????????, ???????????????? ???????, ??????????? ???????????, ???????????????? ???? ?????? ? ?????? ???????, ?? ??????? ?????????? ????????????? ?????????? ???? ?????. ???? ?? ????????? ????-
???????? ?????????? ?? ?????, ?? ?? ??????? ?????????? ?? ??? ??????? ???? ?????. ?????? ? ???????????? ???????????? ????????? ??? ???? ???????? ???? ??????: ?? ??????? Permissions ??????? ????? ??????? (??? ???????, ??????, ?????-
???????? ?? ??? ???? ????????, ??? ??????? ????? ???????????? ?????-
?????); Ѕезопасность SQL Server 2005 151 ??? ?????? ?????? GRANT
(???????????? ??????????), DENY
(???? ?????-
???? ???-?? ??????) ? REVOKE
(???????? ???? ??????????????? ?????????? ??? ??????). ????? ??????????? ??????????, ??????? ????? ???????????? ?? ?????? ???-
??. ?? ???????? ?????? ?????????? ??? ????? ???????, ?????????, ??-
??????, ?????????? ? ??????????? ??????? ???????? ????????????? ?????? ?? ?????? ?????, ? ??-??????, ?????????? ????? ???????? ? ???? ???????-
???, ??????? ????? ???????????? ?????? ????????, ????????, ?????????? SELECT
??? ?????? ? ????????????? ? EXECUTE
??? ???????? ????????. ALTER
? ??????????? ??????? ????? ????????? ? ???????? ??????? (?? ??????????? ????? ?????????). ?? ?????? ???? ?????? ????? ????????? ????? ALTER ANY ...
? ??????????? ??????? ????????? ? ????? ??????? ??????? ???? ? ???? ??????, ????????, ALTER ANY TABLE
. CONTROL
? ?????????? ?????????? FULL CONTROL
? ???????????? ???????. ???, ???? ????????????? ????? ??????????, ???????? ?????? ????? ??? ?? ??? ??????, ??? ? ?? ?????????? ? ???. DELETE
? ??????????? ??????? ???????????? ?????????? ? ????????. ??????????? ? ????????, ?????????????? ? ????????. EXECUTE
? ????? ????????? ?? ??????????. ??????????? ? ???????? ???-
??????? ? ????????. INSERT
? ????? ?? ??????? ????? ?????? ? ???????. ??????????? ? ???-
?????, ?????????????? ? ????????. REFERENCES
? ??????????, ??????? ????? ???????????? ??? ???????? ??-
????????? ???????????. ????????, ???????????? ????? ????????? ?????? ? ??????? ? ??????? ??????, ? ?? ??????? ? ????????? ?????? ??? ?????? ????????????? ????? ?? ????????. ? ???? ?????? ?? ??????? ? ???-
?????? ?????? ??? ????? ???????????? ????? REFERENCES
? ? ?? ?????? ??????????? ??????? ?????? ? ??????? ? ??????? ??????, ?? ??????? ?????? ???? ?? ??????? ???????. ??? ?????????? ????? ????????????? ?? ???????, ?????????????, ??????? ? ???????. SELECT
? ????? ?? ?????? ??????????. ??????????????? ??? ??????, ?????????????, ???????? ? ????????? ????? ??????? (??????? ????????-
?? ????????? ?????? ???????). TAKE OWNERSHIP
? ????? ?? ???????? ?? ???? ???????? ?????? ????????. ???????? ????????????? ???????? ??????? ??????? ?? ???? ??????. ????? ????? ????? ????????? ??? ????? ????????. UPDATE
? ??????????? ??????? ????????? ? ???????????? ?????? ? ???-
????. ??????????????? ?? ???????, ????????????? ? ???????. √лава 5 15
2
VIEW DEFINITION
? ????? ?? ???????? ??????????? ??? ??????? ???????. ????????????? ??? ??????, ?????????????, ???????? ? ???????. ??? ??????? ?????????? ?? ????? ?????????? ??? ????????: GRANT
? ?????????? ????????????? ????; WITH GRANT
? ?????????? ?? ?????? ????????????? ??????? ??????????-
??, ?? ?? ????? ??????? ????? ????????????? ??? ?????????? ?????? ?????????????. ????? ?????????????, ???????, ?????? ?????? ? GRANT
; DENY
? ????? ?????? ?? ?????????? ????????, ????????????? ?????? ???????????. ??? ? ????? ???????? ????????????, ????? ?????? ????? ????????? ????? ???? ???????????????? ????????????. ?? ???? Transact-SQL ?????????? ????? ????????????? ????????? GRANT
, DENY
? REVOKE
. ????????, ????? ???????????? ???????????? User1
??????-
????? ????????????? ?????? ? ??????? Table1
? ????? dbo
, ????? ?????????-
?????? ????????: GRANT SELECT ON dbo.Table1 TO User1; ?????? ??? ????? ???????????????? ????? ????? ??? ?????? ???????: REVOKE SELECT ON dbo.Table1 TO User1; ??????? ??? ????????? ????????, ????????? ? ??????????????? ?????- ?????: ? ??????????? ???????? ????? ???????????? ??????? ? ???? ????? ?????? ? ?????? ???????? ???? ??????. ????????????? ??????? ???????????? ?????????? ?? ?????? ?? ???? ???????? ????? ????????. ???? ???? ???-
????????, ???????????? ???????????? ?????????? ?? ?????? ????? ??? ???? ???? ??????. ????? ????????? ?????????????? ?????????? ????? ? ?????????? ???? ??? ?????? (
db_datareader
? db_datawriter
); ?????????? ????? ???????: ?? ????? ?????????? ?? ??????????? ?????-
????? ? ???????? ???? ?????? ????????. ??? ????????? ?????? ????? ???????????? ???????? ?????????, ? ??? ???????? ?? ?????? ? ???????? ????????? ??? ????????????? (??? ???? ???????? ????????? ?????????-
???????). ??????? ??????: ?? ???????? ???????? ????????? ? ?????????? ??????????, ???? ????????????? ???????? ????????? ????? ???? ?????? (????????, ?????-?? ??????? ?????????? ?? ??????? ? ???????? ??? ??-
??????? ????? ???????). ??? ??????? ??????? ? ??? ?????????????? ???-
???????. ??????? ?????, ??? ??? ?????? ???????? ???????? ????? ????? ?????? ??????????? ?????????????? ???????? ? ?????????? ? ????-
??? ???????????; SQL Server ????????? ??????????? ?????????? ?? ?????? ????????? ????????. ?? ???????? ????? ?? ???????????? ?????? ???????????? ??-?? Ѕезопасность SQL Server 2005 15
3
??????? ?????????????????? ? ?????????? ??????? ??????????. ???? ???????????? ????? ??????? ?? ??? ??????? ? ??????? (????????, ??? ?? ????? ???????? ???????? ???????????), ?? ?????????? ????? ??????? ????????????? ??? ???????? ?????????, ??????? ????? ??????????????? ???????? ???????; ? SQL Server 2005 ????????? ????????????? ?????? Effective Permissions (??? ??????????? ?? ??????? Permissions). ??? ?????? ????????? ??????-
???? ???????? ?????????? ??? ???????????? ??? ???? ???? ?????? (??-
??????? ?????????? ?? ?????? ????? ???? ??????, ??????????? ????? ????????????, ???????????). 5.4. –оли приложений ?????????????? ????? ?????????????? ?????????? ? ???? ?????? SQL Server 2005 ? ??????????????? ????? ?????????? (application role). ??????-
?? ????? ?????? ???????? ??, ??? ?????????? ??????????????? ?? ??????????-
??, ? ??????????, ?? ???????? ???????????? ???????????? ? ???? ??????. ?????????? ????? ??????? ???????? ???: ???????????? ?? ????? ?????? ?????? (???????? ?????? ??????????????? ?????-?????? ?????? ???????????? ? ???? ?????? ? ?????? CONNECT
) ???-
????????? ? ??????? ? ?????? ?????? ???? ?????? ???????; ????? ???????????? ????????? ???????? ????????? sp_setapprole
, ????? ?????????????? ????????? ?? ???? ??????????. ??? ???? ? ???? ?????? ?? ???????? ????? ???? ???? ?????????? (? ?????? ???? ??????? ?????); ????? ????, ??? ????????????? ? ?????? ???? ?????????? ???????????, ???????????? ????? ????? ????????????? ?? ???? ???????? ??????? ?????? (? ???????? ??????????????? ?? ?????). ??? ????? ??????????? SQL Server 2005 ?????????????? ??? ?????? ???????? ????????? sp_unsetapprole
. ???? ????? ????? ???? ???????????? ? ???????????? ???????????, ????? ?????? ?????? ????? ????????????? ?? ????? ????????????????? ??????-
?????????. ???????????? ?????? ??????? ????????: ?????????????, ??? ?????????? ????? ???????? ???????????? ??????? ? ???? ??????; ?????????????? ?????????? ??????? ????? ????? ? ????? ??????? ?????? ? ???? ??????, ??? ????????????? ??????????? ????????? ?????- ?????. ?????? ? ????? ?????????? ??????? ????? ? ??????????. ? ?????? ???????, ??? ??????? ? ???, ??? ?????? ???? ?????????? ?????????? ?? ???? ???????? √лава 5 15
4
??????? (????????????? ??????????? ????????????? ??????? ODBC Encrypt
, ?? ???????? ?????? ??? ?? ????????????). ??? ???????, ???? ?????? ????? ??????? ? ?? ????????? ???? ??????????? ??????????. ????? ?? ???????????? ???? ??????????? ??? ??????? ?? ????????. ???? ?????????? ????? ???????? ?????? ?? ????? ??????????? ? ????????????? ????????????????? ???????????????, ?? ????? ???????????? ??????? ???????? ?????????????? ??????????. ???? ?? ?????????? ????? ?????????-
?????? ?? ???????? ? ?????? ??????????? ? ?? ???????????? ?????????????? ?? ?????????? ?? ??????, ?? ?????????? ???? ?????????? ????? ???? ????? ??????? ????????. ????? ? ???????? ???????????? ???????????? ??????? ????????????? ???? ????????????? ????? ????????? ???? ??????, ? ?????? ? ?????????? ?????????????? ???????, ???, ???????, ???????? ??????? ????-
??? ????. ???????? ???? ?????????? ???????????? ????? ??? ??, ??? ? ???????? ????-
??? ????? ? ?? ?????????? ???_????_?????? | Security | Roles | Applica-
tion Roles. ??????? ??????? ??????????? ? ???, ??? ????????? ????????????? ???? ???? ??????????, ???? ?? ????? ????? ??????? ??????, ??????? ????? ?????????????? ??? ???????????. ??????? Transact-SQL ?? ???????? ???? ?????????? ????? ????????? ???: CREATE APPLICATION ROLE AppRole1 WITH PASSWORD = 'password'; ?????????????? ???? ???? ???? ????? ?? ?????????? ?? ?????????????? ???? ??????? ????????????? ??? ????? ???? ??????. ??? ??????????? ? ???? ?????? ?????????? ?????????, ??????? ?????????? ???? ??????????, ?????? ????????? ???, ??????????? ??????????: -- ????????? ?????????? appCookie. -- ??? ??????????? ??? ??????????? ? ???????? ?????? DECLARE @appCookie varbinary(8000); -- ???????????? ???? ?????????? EXEC sp_setapprole 'AppRole1', 'password', 'none', TRUE, @appCookie OUTPUT; -- ????????? SELECT USER_NAME(); -- ???????????? ? ???????? ?????? EXEC sp_unsetapprole @appCookie; -- ????????? ??? ??? SELECT USER_NAME(); ??? ???????, ???????, ????? ? ?? ???????????? ? ???????? ??????. ??, ????????, ???? ??????????? ?? ????? ?????? ????? ???? ?????????? ????-
?????? ? ?????? ???? ??????, ?? ?? ??????? ???????? ? ??? ?????? ????, ????? ????, ??????????????? ??? ???????????? ???????????? guest
. Ѕезопасность SQL Server 2005 15
5
5.5. »зменение контекста выполнени¤. ¬ыражение EXECUTE AS ????? ??????????? SQL Server 2005 ? ????????? ????????? ?????????? ?????? Transact-SQL. ????????, ?? ???????????? ?? ????? ????????????, ? ???????? ??? ???? ?? ???????????? ???????. ?? ? ?? ?? ????? ?? ????????? ?????? ????????? ?? ????? ??????? ????????????, ? ???????? ????? ?? ??? ??????? ???? (????? ??????????? ?? ????? ??????? ???????????? ?????????? IMPERSONATE
). ?????? ???? ????? ????????? ?????????? ? SQL Server ? ???-
???? ?????? ?? ????? ??????? ????????????, ?? ?????? ?????? "??????????-
??" ?? ??????? ???????????? ??? ?????? ????????? EXECUTE AS
? ????????? ??????????? ??????? ? ??????? ?? ????? ????? ???????????? ? ? ??? ?????-
??, ? ?????, ??? ???????, ????????? ???????. ? ????????, ??????????? ?????? ???????? ?????????? ???? ? ? ?????????? ??????? SQL Server. ??? ?????????????? ???????? SETUSER
(??? ???????? ??-
??????????? ??? ??????? ????????? ? ? SQL Server 2005). ?????? ????????-
???? ? EXECUTE AS
??????? ??????: ??????? SETUSER
????????? ?????? ???????? ?????????? ?????? ????????-
????? ? ??????? ?????????? ?????????????? (?? ?????? ???????) ??? dbo
(?? ?????? ???? ??????). ????????? ???? ? ???? ????????????? ? ??? ?????? ??????????, ?? ?????? ??????? SETUSER
??????????? ?????? ??? ????????, ??? ?? ??? ???? ??????? ????? ??????????? ?? ????? ??????-
??????? ????????????. ????????? EXECUTE AS
????? ???????????? ????? ????????????, ??????? ???????? ?????????? ????? ????????? ? "??????-
?????" ???????????? ?????????????? ???? ?? ????? ?????????? ??????-
?????? ??????; ????????? EXECUTE AS
, ? ??????? ?? ??????? SETUSER
, ????????? ??????-
?????? "???????" ? ? ???????? ??????? ??????, ??????? ?????????????? ?? ????? ????????? ??????????. ??? ????? ???????????? ??????? REVERT
. ??? ???? ? ??????? EXECUTE AS
?? ?????? ?????? ???????? ???????? ??-
???????? ????????? ???. ?????? ??????????? ??????? REVERT
?????? ???-
????? ?????????? ?? ???? "???????" ?????. ?????? ? ?????????? EXECUTE AS
????? ??????. ???????????, ??? ? ??? ???? ???????????? ???? ?????? User1
, ? ???????? ??? ???? ?? ??????? Table2
, ? ???????????? User2
, ? ???????? ????? ????? ????. ?? ?????? ?????????? ??????? EXECUTE AS
?????????? ???????????? ???????????? User1
????? IMPERSONATE
?? ?????? ???????????? User2
, ????? ?? ??????? ??????????? ????????? ??????? ?? ????? ????? ????????????. √лава 5 15
6
?? ??????????? ?????? ??? ????? ??????? ???: ???????? ???????? ???????????? User1
? Management Studio ? ????????? ?? ??????? Securables; ??????? ?????? Add ??? ??????? Securables, ? ??????????? ???? ????-
?????? ????????????? ? ????????? All objects of the types (??? ??????? ????) ? ??????? ?????? OK; ? ?????? ????? ???????? ???????? Users ? ??????? ?????? OK; ? ??????????? ?????? ????????????? ???????? ???????????? User2
? ?????????? ??? ???? ?????? ? ??????? Grant ???????? ?????????? IMPERSONATE (???. 5.5). ???. 5.5. ?????????????? ????? IMPERSONATE
Ѕезопасность SQL Server 2005 15
7
??????????????? ??????? Transact-SQL ????? ????????? ???: GRANT IMPERSONATE ON USER::User2 TO User1; ????? ????? ????? ???????????? ??????????? ????????? EXECUTE AS
, ??-
??????, ???: -- ????????????? ? ???????? ?????????? User2 EXECUTE AS USER = 'User2'; -- ?????????? ? ??????? Table2 SELECT * FROM dbo.Table2; -- ???????????? ? ???????? ?????????? User1 REVERT; ???? ????? ????????? EXECUTE AS
???????????? ? ???????????? ??????????? ??????? Transact-SQL (???????? ??? ???????). ??? ????????? ?????? ???-
????? ?????????? ?????? ?? ????? ?????? ?????? ???????? ????????? ??? ???????, ????????: CREATE PROCEDURE SelectFromTable2 WITH EXECUTE AS 'User2' AS SELECT * FROM dbo.Table2; ???? ? ???????????? ???? ????? EXECUTE
?? ???????? ????????? SelectFromTable2
, ?? ????? ????????? ?? ?? ????? ???????????? User2
. ? ????? ???????? ????? ?? ???? ??????? ???, ????? ?????????? ???????? ????????? ? ??????? ??? ???? ? ??? ?? ????????????, ????? ??? ?? ????? ????? ????????? ? ????? ???????, ?? ??? ???????? ?? ??????. ???? ?? ??????????? ????????? EXECUTE AS
? ???????? ?????????? ? ????-
????, ??? ????? ???????? ????????? ????????????????? ????????, ??????? ????????????? ?????? ????? ????????????: EXECUTE AS CALLER
? ??? ??????? ? ???????? ????????? ??? ??????? ??-
??? ????????? ? ??????? ???????? ???????????? (??? ???? ???????, ??? ???????? ?????????? ???? ???????? ????????? ??? ???????); EXECUTE AS SELF
? ??? ??????? ? ???????? ????????? ??? ??????? ????? ??????????? ?? ????? ????????????, ??????? ??????? ??? ???????? ???-
??? ????????? ??? ???????. ??? ???????? ???????????? ? ?????? ?????-
??, ????? ??????????? ?????????? ????????? ????????? ???????? ???- ?????? ??? ??????? ? ????????? ?? ?? ????? ?????? ?????????????; EXECUTE AS OWNER
? ??? ??????? ???????? ????????? ??? ??????? ????? ??????????? ?? ????? ?? ???????? ?????????. ??? ???????? ???? ??????-
?????? ?????: ?????? ?????? ? ??? ?????????, ????? ???????? ???????? ????????? ??? ??????? ????? ????? ????????. √лава 5 15
8
????????? EXECUTE AS
????? ???????????? ?? ?????? ??? ????????? ??????-
??? ?????????? ?? ?????? ???? ??????, ?? ? ?? ?????? ??????? (?. ?. ????-
???). ??? ????? ???????? ????? USER
???????? ?? LOGIN
, ????????: EXECUTE AS LOGIN = 'Login2'; 5.6. ѕрименение сертификатов и шифрование данных в SQL Server 2005 5.6.1. ќсновы применени¤ сертификатов и шифровани¤ данных ?????? ??? ?????? ???????? ? ???????????? ?????????? ?????? ? ???????-
????? ? SQL Server 2005, ?????????? ?????????? ? ????????? ?????????? ? ????????, ????????? ? ??????????? ??????. ??????? ??????????? ?? ???????? ?????????? ??????????. ? ????????? ????? ??????????? ??? ????????????? ?????? ??????? ?????-
?????: ?????????? ? ?????????????? ????????????? ????? ? ???????-
??? ? ?????????????? ?????????????? ????? (??????, ???? ??????). ??? ?????????? ? ?????????????? ????????????? ????? ????, ??????? ?????-
?????? ??? ?????????? ??????, ???????????? ? ??? ???????????. ??? ???-
????????? ? ????? ?????? ???????????? ????? ?????????? ??????. ?? ??????? ???????????? ?????????? ???????? ?????????? ? ????? ??????????-
???. ? ???????? ???????? ????????????? ???????????? ?????? ????? ???-
????? ?????????? ??? ?????? ??????? ??????? ZIP, ?????? Office ? ?. ?. ?????? ?????? ?????????? ? ?????????? ????????????? ??????, ?. ?. ??-
?? ????? (public) ? ??????? (private) ?????. ??? ????????????? ????? ??-
???? ?????? ????????? ?????? ?????? ?? ???? (?????), ? ??? ?????????-
?? ????? ?????? ???? (???????). ??? ???? ???? ???-?? ??????? ?????? ? ??-
??????????? ?????? ? ?????? ?????, ??????? ????????????? ??? ??????????, ???????????? ?????? ?? ?? ??????: ??????????? ????? ???-
??????? ?????? ??? ?????? ???????? ?????. ??????????????? ???????? ?????? ????? ?????? ?? ??????? ???????. ???????????, ??? ???????????? ? ?????????? ???????? ?????????? ? ??-
??????????? ???? ???????????? ?. ??? ????? ???????????? ? (? ?? ?!) ????-
?????? ? ???? ???? ?????/??????? ????? ? ???????? ????? ???? ????????-
???? ?. ??? ??????? ?????????? ????? ?????? ?????? ? ???????? ?? ? ????????????? ???? ???????????? ?. ? ?? ??? ?????????????? ?? ??? ??-
???? ??????? ????? ?? ???? (????????), ??????? ????????? ? ???? ?? ???-
??????? ? ?????? ?? ???????????. Ѕезопасность SQL Server 2005 15
9
? ?????????? ? ?????????????? ????????????? ?????? ???? ????????? ????????????. ??? ?????????? ???????????? ?????? ??? ?????? ?????-
?????? ????????????? ?????????? ??????? ?????????? ???? ???????????? ??????, ??????? ? ???????? ???????? ????? ???????????. ???? ?? ?? ??-
????????? ????????????? ?????, ?? ??? ????????? ??? ??????? ???????? ?????? ??? ???????? ?? ???????????? ??????? ?????. ???? ????????, ??? ? ?????? ? ??????????? ????????????? ?????? ???? ?? ?????? ???????????, ?? ? ??????????. ??????? ?? ??? ??????????? ? ???, ??? ?????????? ? ?????????????? ????? ?????? ??????? ????? ??????? ???????? ???????????? ??????????. ??????? ?? ???????? ???? ????? ???????????? ??????????????? ???????. ?????? ????? ???????? ????? ????????? ???. ???????????, ??? ???????????? ? ?????????? ????? ???????? ?????????? ? ????????????? ???? ???????????? ?. ???????????? ?, ??? ? ? ??????? ??????, ?????????? ???? ?????/??????? ????? ? ???????? ????? ???? ????-
???????? ?. ???????????? ?, ?????? ???? ????? ???????? ????????? ???-
??? ??? ?????? ????? ?????, ?????????? ??? ???? ???? ? ????????????. ????? ????? ???????????? ? ??????? ????? ?????? ??????????????? ?? ???????????? ???? ? ???????? ??? ???????????? ?. ????? ???? ??? ??????-
?????? ? ???????? ?????????????, ??? ???????????? ???? ??????? ? ???-
???????? ????????????? ?, ???????????? ? ???????? ???????? ??????, ??-
??????????? ???????????? ??????. ? ??? ???? ??????, ????????? ? ?????????????? ????????????? ??????. ???????????, ??? ? ??????? ?????? ?????????? ????? ????????????? ? ? ????????????? ? ???????? ?????????? ????? ?. ?? ??????? ????? ???? ?? ????? ???????????? ?, ? ????? ??????????? ??? ????????? ??????????, ??????? ??????? ??? ???????????? ???????????? ?. ????? ?????? ?? ?????-
??????, ?????????? ????? ????? ??????? ????????? ? ??????????? ?????, ??????? ?????????? ????? ???????????? (Certificate Authority). ?????? ????? ???????????? ? ?????????? ???? ?????/??????? ?????. ? ????? ??????? ???????????? ?, ??????? ????? ????, ?????? ?????????? ? ????? ???????-
?????, ??????? ???????????? ???? ????, ????? ?????????, ??? ?????? ???? ????????????? ????? ???????????? ?, ??? ?? ?? ???????, ?? ??????? ? ?. ?. ??????? ??, ???????????? ? ?????? ???????? ????? ?????? ????????????. ?????? ??????? ????????????, ??????? ????????? ?????? ???????? Micro-
soft ? ??????? ?? ????????? ???????? ??? ?????????, ????? ??????????? ? Internet Explorer (??????? ????? ???? ?????? | ???????? ????????????, ? ??????????? ???? ??????? ?? ??????? ??????????, ?????? ?????? ???-
???????? ? ? ??????????? ???? ??????? ?? ??????? ?????????? ?????-
??? ?????? ????????????). ??? ???? ????????? ?????????? ?????? ? ??????????. ?????????? ? ??? ????????? ??? ???????? ?????? ?????. ? ?????????? ?????????? ???????-
√лава 5 160 ??? ? ?????? (? ???????????? ?? ?????????? International Telecommunication Union (?????????????? ????? ????????????????) X.509), ???????? ??????, ???? ????? ?????? ??????????, ??? ????? ?????, ??????? ??????? ?? ????? ??????????? ? ?. ?. ??? ?????????? ????????????? ??????????? ? ???????? ?????? (??? ?????? ????????? ????????? ? thumbprint), ??? ??? ???????? ?? ????? ??????. ? SQL Server 2005 ?????????? ???????????? ? ?????? ?????????. ?????? ???????? ? ?????????? ??????, ???????????? ????? ???????? ? ???????? (???, ????????, ????? ????? ????????? ??? ?????????? ??????-
????? ??? ?????? ??? ??????????). ??? ????? ???????????? ?????????? SSL (Secure Socket Layer), ??????? ??????????? ????? ??? ?????????? ??????? ????? Web-????????? ? Web-????????. ??? ?????????? ???? ? ? SQL Server 2000, ?? ? SQL Server 2005 ????????? ?????????????? ???????????, ? ????????? ? ????? ????? ????? ???????. ???????? ??? ?????????? ???????? ??????? ??? ??????????? ? SQL Server 2005 ????? ?????????? ? ????. 5.6.2. ?????? ???????? ? ?????????? ?????? ? ???????? ??? ??????. ??? ??-
???????? ????? ? ????? ?????? ??????????? SQL Server 2005. ??? ??? ????? ?????????????? ? ????. 5.6.3. ??????????? ????? ???????????? ? ??? ?????? ?????, ????????, ??? ?????-
??? ???????? ???????? ??? ??????????? ??????? SQL Server 2005 (?????-
???, ??? ???????? ????????). ?????? ??? ?????? ??????????? ??????????? ?????? ??????????? ???? ???????? ????????? ??? ???????. ???? ? ???? ??? ????? ??????? ??????????????????? ?????????, ?? ????? ???????? ???????-
?? ?????? ?? ????? ??????????? ?? ??????????. 5.6.2. «ащита сетевого трафика SQL Server 2005 ???? ?? ??????? ??????? ???????????? ??? ?????? ? SQL Server ????? ???-
???, ? ??? ????? ? 2005, ??????????? ? ???, ??? ?????? ???????? ??????????-
??? ? ??????? ?? ??? ??????? ???????????? ? ????????? ???????? ???? ???-
???? ?????? TDS (Tabular Data Stream ? ????? ????????? ??????). ??? ????-
????, ???, ???????????? ?????? ? ????????? ????, ????? ??????????? ??????????, ??????? ???????? ???????????? ? SQL Server (???. 5.6). ????-
?? ??????? SQL Server ?????????? ?????????? ? ?????????? ????, ?? ???? ???????????? ????? ???????? ???? ?????? ???????? ALTER USER
, ?? ????? ??-
???? ????? ??????? ?? ???? ???????? ???????. ??????? ?????, ??? ? ?????-
???? ????? ????? ????????? ????????, ??????? ????? ???????? ?????? ? ????????? ???? SQL Server ? ?????????????? ??. ?????? ????? ?? ????? ???????? ? Cain&Abel. Ѕезопасность SQL Server 2005 161 ???. 5.6. ???????? ????????????? ?? ???? ??????? (????? ??????? ????? ????????? ????? ???????? ? ???????????? ??????????) ????????? ????????? ?? ?????? ????????, ??? ??? ?? ??????????? ? ??????-
????? ????????? ?????? SQL Server ?? ????, ????????? ? ???? ?? ???????-
???? ???????????? ??????. ???????????? ?????? ?????? ?? ????????? ????? ??????????? ????????????? ?????? ?????? ???????????, ??????? ?? ?? ??-
??????. ?????? ?? ???????? ?????? ?? ???????????? ??????????? ??????? ???????? ?????? ??-?? ???????????? ????????? ARP, ??????? ?????? ? ???? ?????????? TCP/IP. ?????? ? ??????? ?????? ?????????? ? ????? ???????? ???? ????? ????????, ????????, ??? ?????? ????????? AntiSwitch (?? ???-
?? ????? ??????? ?? ?????????). ???? ?? ?? ?????? ?????????????, ????????? ? ???????????? ?????????? ??? ?????? SQL Server, ??????? ?????? ?????????? ????????. ????? ????-
????, ??? ?????? ????? ??????? ?? ?????????????. ?????? ????? ????????? ???, ??? ???????????? ??? ??????????? ?????????? ?? ???? ??????????? ???????????? ?????????? ???????? SQL Server 2005 ??? ?????? ???????? ???-
????. ? ???? ?????? ????? ??????????????? ???????????? ?????????? ??? ?????????? ???????? IPSec ??? ?????? ???????? ????? ?????? ??????????-
??? ? SQL Server ? ????????? ??????? ???????, ???????????? ?? ????????? ???? ???????????????. ????????????? ????? ???????????? ???????? ?????-
√лава 5 16
2
??? ??????, ????????? ??????? ?????????? ???????? ? ????? ???? ?????-
??????? ??????????? (????????, ProDetect ? PromiScan). ?????? ?? ?????? ???????????? ?? ??? ???????????? ????????????? ????, ?????? ??? ??????? ????????????? SQL Server ?? ?????. ? ???? ??????? ?? ?????????? ???????? ?????? ?????? ??? ??????????? ??-
????? ????????? SQL Server 2005. ??? ???????? ???????? ???????? ???????-
???? ??????????, ? ??? ????? Excel ? Access. ?? ?????????????? ?????? ???????, ???????????? ??????? ?????????? DBLibrary, ??????? ???? ????-
???????? ?? SQL Server 6.5, ? ???????, ???????????? ????? ????????? MDAC ?????? ?? 2.53 ????????????. ?????????????? ??? ?????? ???????-
??? ? 40 ? 128 ???, ??? ???? ?????????? ??????????? ????????? ???????, ?????????????? ???????????? ???????? ??????? ? ???????. ??????? ?????, ??? ??????? ?????????? Multiprotocol, ??????? ????? ???? ???????????? ??? ?????????? ?????? ? ?????????? ??????? SQL Server, ? SQL Server 2005 ?? ??????????????. ???????????? ??????????? ???????-
???? ?????? ? SQL Server 2005 ? ??????????????? ??????????? SSL. ??? ???-
??????? ???????? ??? ????? ??????? ?????????. ? SSL ??? ?????? ???????????? ????? ???????? ? ???????? ?????? ?????-
?????? ???????????? ???????????. ? SQL Server 2005 ????? ???????????? ??? ???? ????????????: ??????????, ??????? ????????????? ???????????? ? ????????????? ?????? SQL Server 2005 (? ????????????, ??????? ???????????? ? ????-
???????? ? self-signed (???????????????)). ????? ?????????? ????? ??-
??????????? ??????????? ? ?????????????? ? ????????, ????? ?????????? ????????, ?? ????? ?????? ?????????? ????????????, ???? ?? ???????. ????? ????, ????? ?????????? ?????? ???????????? ? ?????????????? ??-
???? ??? ?????????? ?????? ??? ??????????? ????????????? ?? ????? ??????? SQL Server, ???? ???? ?? ?? ??????????? ???????? ??????????; ?????????? ?? ???????? ?????? ???????????? (Certificate Authority). ????? ????? ???? ????????? ???????? ? ????? ????????????, ?????? ???????????? ?????? ???????? ? ?????? SQL Server 2005, ? ?????????? ?????????? (???? ??? ?????????? ??????????? ????? ?????????? ????-
???? ???????? ????? ????????? ????????????. ????????? ?????????? ???????????????? ??????????? ??? ????? ??????-
???? ??????????? ????? ??????. ??? ????? ?????????? ????????? SQL Server Configuration Manager, ???????? ????????? SQL Server 2005 Network Con-
figuration ? ???????? ?????? ??????? ???? ?? ???? Protocols for ???_???????, ????????, Protocols for SQL2005. ????? ? ??????????? ???? ????? ??????? ???????? ????? ???? ? ?? ??????? Flags (?????) ??? ????????? Ѕезопасность SQL Server 2005 16
3
ForceEncryption (?????????????? ??????????) ?????????? ???????? Yes. ???? ?? ???????? ???????, ??????? ?????????? Certificate (??????????), ?? ????? ?????? ??????? ??????????, SQL Server ????????????? ???????? ? ??-
??? ????????????? ???????????????? ??????????? (??? ???? ???????? ????-
????????? ?????? SQL Server). ???????, ???????????? ??????????? ?? OLE DB ? ODBC ? ?????????? ???????? MDAC (????? 2.53) ????????? ??-
???? ??? ?????-???? ???????. ?????????? ????? ????????????? ??????????-
??? (? ???? ????? ?????????, ?????????? ?????? ?????????). ???? ?? ??-
????????? ?? ??????? ??????? ODBC, ? ??????? ODBC ??? SQL Native Client, ?? ?? ?????? ?????????, ??? ????????? ?????????? ??? ???????? ?????????? ??????????? (???. 5.7). ???. 5.7. ??????????? ?? ODBC ? ??????????? ???????????????? ?????????? ??????????? ????? ????? ????? ?????? ? ?????? ????? ??????????? ? ??????????? ??-
??????. ?????? Microsoft ?????????????, ??? ??? ????????????? ?????????-
??????? ??????????? ?????? ???????? ????????? ????? ???? "??????? ? ????-
????" (man-in-the-middle). ??? ???? ????? ????? ?????????????? ???????? SQL Server, ????????? ?????????? ?????? ?? ????? ??????? ? ?????????????? ?? ?? ??????, ????????? ????? ?????????? ? ??????? ?????? ?????????????. ? ?????????? ? ?????? ????????? ????? ???? ??????, ???????? ???????????? ??????? ? ??????. ????? ????? ?????????? ????????? ??-?? ????, ??? ???- ???????, ???????????? ???????? (??? ???????) ???????, ????? ?? ???????-
????. √лава 5 16
4
????? ????, ???? ?? ??????? ????????? "????????? ??????????????? ?????-
????? ??? ??????????? ? SQL Server", ?? ??????????????? ?????????? ??-
???????????? ?? ?????. ??????? ? ????? ???????? ??? ???????? ???????????? ??? ?????????? ???-
??? ?????????? ?? ???????????????, ? ???????? ??????? ????????????, ???????? ???????? ? ??????, ? ??????. ???? ?? ?? ???????? ??????? ?????? ?? ??????????? ??????? ??????? ????????????, ??????? Windows ???????? ????????????? (??????? ?????, ??? ??? ???????? ???????? ??? ?????????-
??? ??????????? ?????????? ? ?????????? ??? ??? ???????, ??? ? ??? ?????-
??). ??????? ??? ????? ????? ??????? ???? ??????????? ????? ?????????-
???. ???, ??? ??? ????? ?????, ???????????? ?????? ? ?????????????? Win-
dows 2000 Server ? Windows Server 2003. ?????? ?????????????????? ?????????? ??????????? ??? ?????? ??????? SQL Server 2005. ??????, ? ???? ????? ??????, ? ????????? ?????? ????????????. ??? ????? ???? ?????????? ?????????????? ?????????????? ????????? Windows, ????-
??? ?????????? Certificate Services (?????? ????????????). ??? ????????? ???????????? ????? ??? ??, ??? ? ????????? ?????? ????????-
??? Windows ? ??? ?????? ??????? ????????? ? ???????? ???????? ? ?????? ??????????. ????? ????????? ??????????? ?????? ?????????? ???-
??? ????????? ?????? ????????????. ? ??? ????? ????? ??????? ????????? ?????? ??????????. ?????? ?? ??? ? ??? ?????? ????????????. ? ????? ???????????? ?????? ????: ???????? ????? ???????????? ???????????. ????? ??? ?????? ?????-
??????? ??????????? ????? ???????? ?????? ? ??? ??????, ???? ??????-
???, ?? ??????? ???????????? ????????? ????? ????????????, ?????? ? ?????. ???? ????? ???????????? ???????????? ??? ?????? ????????????, ???????????? ? ?????? Active Directory ? Windows 2000/2003. ??? ?????? ? SQL Server 2005 ?? ?? ????????; ??????????? ????? ???????????? ???????????. ????? ??? ?? ??????-
?????? ??????????? ??? ????????????? ? Active Directory. ?????? ????? ??????????? ?????? ???????????? ? ???????? ? ?????????????? ????-
???????; ????????????? ???????? ????? ????????????. ???? ????? ?????????-
??? ????? ????????? ??????????? ??? ?????? Web-????????, ?????????-
????? ???????? ??? ??????????? ? Web-????????, ???????? ??????? ??? ????????? ? ?. ?. ?????? ???? ??? ?????? ???????????? ????? ??? ?????? ??????? SQL Server 2005; ????????????? ??????????? ????? ????????????. ????? ????? ???-
????????? ?????????? ?? ?? ???? ????????????, ??? ? ??????????, ?? Ѕезопасность SQL Server 2005 16
5
??????? ????????????? ??????? ?????????????? ????????? ?????? ?????-
???????. ?????? ???????????? ? ???????? ? ??????????????. ? ??????????? ??????????? ??????? ??? ?????? ? SQL Server 2005 ??? ??-
????????? ????????????? ???????? ????? ????????????. ?? ?????? ???????? ? ?????? ???????????? ??? ??????????? ?????? ??? ? ??????? ??? ?????? ????????????. ? ????? ???? ?????????? ????? ????-
????? ????? ???????????: ?????? ?? ?????????? ????? ????? ?????? ?????-
????? ? ????? ???? ????? ??????????? ????? ???????????? ??? ???????? ????????????. ??? ?????? ??????????????? ????? DNS (hostname) ? ???????-
?? ????????? DNS-????????, ????????, LONDON2.nwtraders.msft
. ??? ???? ????????? ?????????? ????? ???????? ????????, ???????????? ?? ????- ?????. ?????????, ??? ????? ??????? ????? ????????? ?????????, ? ??????? ???-
???????, ??????? ????? ?????????????? SQL Server 2005. ????? ??????????? ? ??? ????????? ???????????? ??? ?????? Web-??????????. ????? ????-
?????? ?? Internet Explorer ?? ??? ?????????, ?? ??????? ???????? ?????? ????????????, ????????, http://london2.nwtraders.msft/certsrv. ?????????? ??????? ??? ? ??????????, ?? ??????? ???????? SQL Server 2005, ?. ?. ????? ??? ??????????? ?????????? ?????????? ?????????? ?? ???? ?????????. ?????? ??? ????????? ????? ???????????, ????? ?? ?????? ???????? ?? ????? ??? ??????? ??????, ?? ??????? ???????? SQL Server 2005. ?? ?????? ???????? Web-?????????? ????? ???????????? ????? ??????? ????? ?????? ???????????, ?? ????????? ???????? ???????? ?? ?????? ??????????? ?????? ???????????. ? ?? ????????? ?????? ????? ??????? ?? ?????? ??????? ? ?????? ?????? ? ????? ??. ????? ?????? ????? ??? ????????? ??????? ???????????? ??????????? ? ??????????? ?????? ??????????? (???. 5.8). ????? ???????? ???????? ?? ????????? ???????: ? ???? ??? ????? ???????? ??? ?????????? ? ??????? FQDN (Fully qualified domain name ? ????????? ????????????????? ???????? ???), ????????, LONDON2.NWTRADERS.MSFT
?????? LONDON2
; ? ?????? ?????? ??? ??????????? ??????????? ???????? ??? ???????-
??? ???????? ??????????? ???????. ???? ?? ???????? ????? ?? ???? ??????????, ?? SQL Server 2005 ?????? "?? ??????" ???? ?????????? ? ?? ???? ??? ?????????. ????? ???? ??? ?????????? ????? ????????, ???? ????????? ?????? ? ??-
??????? ?????? ???????????. ??? ????? ????? ????? ?? ??????????, ?? ????-
??? ???????? ?????? ????????????, ? ???? ???? | ????????? | ??????-
√лава 5 16
6
??????????? ????????? ??????? ????? ????????????, ???????? ???? ??-
????? ? ????????, ???????? ?????? ??????? ?? ?????????? ???? ??????? ? ?????? ??????????? ? ? ??????????? ???? ??????? ??? ?????? | ?????? (???. 5.9). ???. 5.8. ????? ??? ?????????? ??????? ???????????? ??????????? ???. 5.9. ?????? ??????????? ????????? ???????? ? ???????? ???????????? ?????????? ? ?????????? ??? ?? ?????????, ?? ??????? ???????? SQL Server 2005. ??? ????? ????? Ѕезопасность SQL Server 2005 16
7
? ???? ??????????, ? ???????? ?? ?????????? ??????????, ????? ???????? ?? ????? ??? ?? ??????? ??????, ????? ?????????? ? Web-?????????? ????? ???????????? (http://london2.nwtraders.msft/certsrv). ????? ?? ?????? ????-
???? ????? ??????? ?? ?????? ???????? ????????? ?????????? ??????? ???????????, ??????? ??? ?????????? ? ?????????? ??? ??? ?????? ?????? ?????????? ??????????. ??????????? ?????????? ?? ????????????? ?? ?????????? ???????????? ????? ??? ?????? Internet Explorer. ??? ????? ? ???? ?????? ????? ??-
????? ????? ???????? ????????????, ??????? ?? ??????? ?????????? ? ??-
???? ?????? ???????????. ?????? ?????????? ????? ?????????? ?? ?????-
?? ??????. ?????????, ??? ????? ???????, ? ????????? ????????? ???? ?????????? SQL Server 2005. ??? ????? ????? ??????? SQL Server Configuration Manager, ???????? ???? SQL Server 2005 Network Configuration ? ???????? ?????? ??????? ???? ?? ?????????? Protocols for ???_???????. ????? ????? ??-
????? ???????? ????? ??????????, ?? ??????? General ????????? ??? ???????-
?? ForceEncryption ???????? Yes, ? ?? ??????? Certificate ??????? ??? ???-
??????? (???. 5.10). ????? ????????? ???????? ? ????, ??????????? ??????-
??????? ?????? SQL Server. ???. 5.10. ?????????? ??????????? ??????? SQL Server 2005 √лава 5 16
8
?????????, ??? ??? ???????? ???????, ? ??? ????????? ??????????, ?? ????-
??? ???????? ?????? SQL Server, ? ???? ????????, ??? ?? ??????? ???????? ?????????? ???? ?????? ????????????, ??????? ????? ??????????. ??? ????? ??????? ????? ?????????: ??????? ?? ?????? ?????????? ??? ??? ?????? ????????? ???????? (???? ?? ????? ??????????? ???????????? ??-
??? Active Directory). ????? ?????????? ??? ???????? ???????, ????? ?????????????? ?????????? ?????? ???????????? ? ????. ??? ????? ??????? ??? ?????? ??????? ????? ????????????, ??????? ?????????????? ???? ??? ??????????? ?????? ???-
????????. ????? ?? ???????????? ???? ??????? ???????? ?????? ?????? ???-
?????????, ?? ??????? ????? ??????? ?????????? ?????? ????????????, ?????? ?????? ???????? ???????????, ??????? ?? ??????? ?????? ? ?????? ?????? ?????????? ? ????. ????? ????? ?? ??? ??????????, ??????? ???-
??? ???????? ?????? ?????? ????????????, ????? ??????? Internet Explorer, ? ???? ?????? ??????? ???????? ????????????, ??????? ?? ??????? ??-
????????, ?????? ?????? ???????????, ????? ??????? ?? ??????? ????-
?????? ???????? ?????? ???????????? ? ?????? ?????? ??????, ????? ????????????? ????????? ???? ????. ??? ????????????? ????????? ??????? ??????????? ???????? ????? ????? ? ?????????? ????????? ???????? ????????? ??????? ???????????? ????-
???????? | ???????????? Windows | ????????? ???????????? | ???????? ????????? ????? | ????????????? ????????? ? ???????????. ????? ????? ???????? ?????? ??????? ???? ?? ????? ?????????? ? ?????????-
???? ????????? ???? ??????????. ????????? ????? ?????????? ?????????? ????????, ?? ????? ??????, ??? ???-
??????? ?????????? ?? ???? ???, ????? ??????? ???????? ?????? ???????? SQL Server 2005 ? ????? ????. 5.6.3. ѕринципы шифровани¤ информации в базах данных SQL Server 2005 ??? ???? ??????? ????????, ????????? ? ????????????? SQL Server, ?????-
?????? ? ???, ??? ?????????? ???????? ? ????? ?????? ? ???????????? ??-
??. ?????????? ???????????? ????? ?????? ? ??? ?????????? ?????? SQL Server. ??? ?????? ??? ????????? ???????????, ?????????? ????????? ????-
????? ??????? ? ????? ?????????? ? ???? ??????. ???????? ????????? ??????? ????????, ????? ????? ????????? ????????? ??????? ???????????? SQL Server: ????????????? ???? ??????????? ?? ????????????? ??????? ??????? ? ??-
????. ? ?????????? ????????????? ???? ???????????? ? SQL Server ??? Ѕезопасность SQL Server 2005 16
9
?????? ??????? ??????, ?? ????? ??????? ???????? ?????? SQL Ser- ver (??? ??????? ?????? ???????? ??????? ?????????? ????????? ???? SYSADMIN
); ????????????? ???? ???????? ?????????? ?????? ? ??????????, ?? ??-
????? ???????? SQL Server, ? ?????????? ????? ???? ?????? (??? ????? ??????? ??????? ?????????, ????????, ???????????? ? ???????-????? ??? ????????? RAID-?????? ??????? ? ??????? ??????????). ????? ???-
?????????? ?????? ???????????? ??? ????? ? ??????? ??????? SQL Server, ?? ??????? ?? ???????? ??????? ?????????? ??????????????; ? ????? ???? ????? ???????? ? ????????? ?????? ???? ??????. ???????-
?????? ????? ?????? ???????????? ??? ????????? ????? ?? ?????? ?????-
??, ?? ??????? ?? ???????? ??????? ?????????? ??????????????, ? ????-
???? ????? ??????? ?????? ?? ???? ??????. ??? ???? ????? ??????????? ???? ?? ???????? ????????, ??????? ????????-
???? ??????????. ? SQL Server ?????????? ?????? ??????? ?????????? ??????? ??? ?????????? ?????? ? ????? ?????? ?? ???? (????? ??????????? ????????, ????????, ?????????? ??????????? ???????? ??? ??????? ????-
??? SQL Server). ? SQL Server 2005 ????? ??????????? ?????????. ??? ?????????? ?????? ? SQL Server 2005 ????????????? ?????? ???????: ?????????? ??? ?????? ????????????. ?????????? ??? ???? ?????? ?????????????? ? ???? ??????? ? ???? ?????? (? SQL Server Management Studio ????? ??????????? ????????? ??????????? ? ?????????? Data-
bases | ???_????_?????? | Security | Certificates); ?????????? ??? ?????? ????????????? ??????. ???????? ????? ????? ??, ??? ? ??? ????????????? ????????????. ?? ??????????? ??????????-
??? ???? ?????????? ???, ??? ? ??? ?? ????????????? ?????????????? ????? ? ??????????? ? ???, ???? ?? ?????, ??? ????? ?????, ?? ?????? ??????? ???????????? ? ?. ?. ????????? ????????????? ????? ????? ??????????? ? ?????????? Asymmetric Keys, ??????? ????????? ??? ??, ??? ? ????????? Certificates; ?????????? ??? ?????? ???????????? ??????. ???????????? ??????? ????? ??????? ?????????, ?? ????????? ? ?????????????? ???????. ???? ???????????? ????? ????? ????????? ? ???? ???????? ???? ?????? ? ????? ???? ???????? ????????????, ?????? ???????????? ??????, ????????????? ?????? ??? ?????? ???????. ??????????? ?? ????? ??? ?????? ?????????? Symmetric Keys; ??????? ?????????? ??? ?????? ???????. ??????? ?????, ??? ??? ?????? ????????????? ?????????????? ?????? ?????-
?????? ?????????? SQL Server 2005. ?? ????? ????????? ???????????? ? ???? √лава 5 170 Transact-SQL ?????? ? ??????? .NET. ??????? ??? ?????????? ?????? ????? ???????????? ?????? ?? ???????????? ???? System.Security.Cryptography
? .NET Framework ??? ???? ??????????? ??????. 5.6.4. —оздание сертификатов и ключей и применение криптографических функций ??????????? ???? ??????? ??????. ? ??? ???? ???? ?????? DB1
, ? ? ??? ? ???-
???? dbo.SecretTable
? ???????????? ???????? Secret
???? nvarchar
: USE DB1; GO CREATE TABLE dbo.SecretTable(Secret nvarchar(100)); ??? ????? ????????? ? ??? ??????? ????????? ??????????, ??????????-
??? ??? ?????? ???????????. ??????, ??? ??? ??????????? ???????, ? ??????? ??????????. ??? ????? ???-
???? ??? ?????? ??????? CREATE CERTIFICATE
. ????? ??????? ??????? ???? ??????? ????????? ???: USE DB1; CREATE CERTIFICATE SelfSignedCert1 ENCRYPTION BY PASSWORD = 'P@ssw0rd' WITH SUBJECT = ???????? ??????????', START_DATE = '03/10/2006'; ???????? ????????, ??? ??? ???????? ??????????? ??? ?? ????????? ??????? ????? ???????????? ? ??? ??????????? ???????? ??? ???????? ? SQL Server. ?????? ?? ?????? ?????? ????????? ? ???? ?????? ??????????, ????-
??? ??? ???????????? ??????? ??????? ???????????? ? ???????? ? ????? (? ????????? ????? ?????? ?????????? ??????? ????), ????????: USE DB1; CREATE CERTIFICATE ExternalCert1 FROM FILE = 'C:\Certificates\Cert1.cer' WITH PRIVATE KEY (FILE = 'C:\Certificates\Cert1Key.pvk', DECRYPTION BY PASSWORD = 'P@ssw0rd); GO ????? ?????, ??? ??????? ?????????? ????? ????? ??????? ?? ??????????? ???? ???????????? ?????? .NET ??? ?? ???????????? ???????????? ?????. ???????? DECRYPTION BY PASSWORD
????????? ??????? ??????, ??????? ??? ??-
????????? ??? ?????? ??????? ???????????. ???????? ENCRYPTION BY PASSWORD
?????????? ??????, ??????? ??????????? ??? ??????????? ??????, ?????????? ???????????? (??? ?????????? ???-
??? ?? ?? ?????). ???? ???? ???????? ??????????, ?? ??????????? ???????-
Ѕезопасность SQL Server 2005 171 ??? ????? ????????????? ??????? ??????? ?????? ???? ?????? (Database Master Key). ????????????? ???? ???? ?? ?????????. ????? ???????? ???-
???????? ???????? ? ???, ????? ?????????????? ??? ???????: USE DB1; CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'P@ssw0rd'; ????? ??????, ??????? ???? ???? ?????? ????????????? ?????????? ????? ??????? ?????? ?????? (Service Master Key). ???? ???? ????????????? ??-
?????????? SQL Server 2005 ? ???????? ?????????. ?????? ????? ??????????? ??? ????????????? ???????? ????? ???? ??????: ???? ?? ?????????????? ?????? (? ?????????????, ????????? ??????? ???? ??????), ????????????? ?????? ????? ???? ????????. ????? ????? ?? ?????????, ????? ??????????? ?????????? ??????????? ???? ?????? master
??? ?????????????? ??????? ???? ?????? ? ???? ??? ?????? ??????? BACKUP SERVICE MASTER KEY
. ???????????? ???????? SUBJECT
??????? CREATE CERTIFICATE
?????????? ???? ?????? ??????????? (??? ????????? ??????????? ??????????????? ???? ???-
???????? ? ???????????? ?? ?????????? X.509v1). ????? ???? ??? ?????????? ??????, ??? ????? ???????????? ??? ?????????? ??????. ??? ???? ???? ??????????? ??????????? ??????? EncryptByCert
: INSERT INTO SecretTable values(EncryptByCert(Cert_ID('SelfSignedCert1'), N'????????? ??????')); ???? ?????-?????? ???????????? ????? ????? ?????????? ?????? ? ??????? SecretTable
, ?????????? ????? ??? ??????? (???. 5.11). ???. 5.11. ????????? ?????????? ??????? ? ????????????? ?????? ???????? ????????, ??? ??????? EncryptByCert
????????? ? ???????? ?????-
?? ????????? ?? ??? ???????????, ? ??? ?????????????. ????????? ??????-
??????? ????? ???????? ??? ?????? ??????? Cert_ID
. ??????????? ????????????? ?????? ???????????? ??? ?????? ??????? DecryptByCert
. ????????????? ???????? ??? ?????? ? ???? ???????? ???????-
???? ? ???, ??? ??? ?????????? ?????????????? ?????????? ? ??????????-
√лава 5 17
2
???? ???? ?????? varbinary
, ??????? ????? ????? ?????????? ???????????-
??? ????? ???? ?????? ? nvarchar
: SELECT (Convert(Nvarchar(100), DecryptByCert(Cert_ID('SelfSignedCert1'), Secret, N'P@ssw0rd'))) FROM SecretTable; ?????? ????????, ??????? ????????? ??????? DecryptByCert
, ? ????????-
????? ???????????, ???????????? ??? ?? ???????? Cert_ID
, ?????? ????-
???? ? ????????? ???????? (??? ??????????, ???, ??? ? ????? ??????, ??? ???????), ?????? ???????? ? ??????, ??????? ??? ??????? ?????????? ??? ??? ????????. ?????? ? ????????????? ?????? ???????? ??????????? ??????????. ??????? ????? ??????? ????????????? ????: CREATE ASYMMETRIC KEY AsymKey1 WITH ALGORITHM = RSA_512 ENCRYPTION BY PASSWORD = 'P@ssw0rd'; ???????? ????????, ??? ??? ???????? ?????????????? ?????, ????? ??????, ????????? ??????? ????? ???????????? ?????. ? ????? ???????????? ??? ??-
??????: 512, 1024 ? 2048 ???. ????? ????? ??? ?????? ?????????? ????? ?? ?????? ??????????? ?????-
????? ??????: INSERT INTO SecretTable values(EncryptByAsymKey(AsymKey_ID('AsymKey1'), N'????????? ??????')); ? ?? ???????????: SELECT (Convert(Nvarchar(100), DecryptByAsymKey(AsymKey_ID('AsymKey1'),Secret, N'P@ssw0rd'))) FROM SecretTable; ??? ????????????? ???????????? ?????? ?????????? ???????????? ????-
???, ??? ??? ?????????? ????????????? ??????????, ??????? ??? ?????? ? ???????? ???????? ?????? ????????????? ???????????? ?????? ??. ?????-
????? ???????????? ?????? ???????? ????? ??????. ??????, ???? ? ??-
??????? ???????. ??-??????, ??? ???????? ????????????? ????? ??? ????? ???????? ?? ?????? ???????, ?? ? ?????? ???????????? ??????, ???????-
?????? ?????? ??? ????????????. ??-??????, ??? ???????? ????????????? ????? ?? ?????? ??????? ???? ?? ?????? ?????????? ??????????, ??????-
???????? SQL Server 2005 (DES, TRIPLE_DES, RC2, RC4, DESX, AES_128, AES_192, AES_256). ???? ???????? ????????????? ????? ????? ????????? ???: CREATE SYMMETRIC KEY SymKey1 WITH ALGORITHM = AES_128 ENCRYPTION BY PASSWORD = 'P@ssw0rd'; Ѕезопасность SQL Server 2005 17
3
????? ?????????????? ????? (??? ?????????? ??? ??????????? ??????) ??? ????? ??????????? ???????. ??? ?????????? ??????? ?????? ???? ??? ? ??????? ?????? ?????? ????????????: OPEN SYMMETRIC KEY SymKey1 DECRYPTION BY PASSWORD = 'P@ssw0rd'; ? ?????? ?????????? ??? ????????? ????????. ?????????? ?????? ???????? ???????: INSERT INTO SecretTable values(EncryptByKey(Key_GUID('SymKey1'), N'????????? ??????')); GO ???????? ????????, ??? ??? ??????????? ?????? ??? ????????????? ????-
?????? ??????? DecryptByKey
??? ????????????? ????? ? ??????. ????? ??-
??????????? ????????????? ?????? ????????? ??? ?????? ??????? OPEN SYMMETRIC KEY
?????: SELECT (Convert(Nvarchar(100), DecryptByKey(Secret))) FROM SecretTable; SQL Server 2005 ????????? ??????????? ?????????? ?????? ????? ?????? ??? ?????? ??????. ??? ????? ???????????? ??????? EncryptByPassPhrase
. ? ????? ??????? ???????? ??? ????????? ?????? ?????? ? ??????, ??????? ?????????? ???????????: INSERT INTO SecretTable values(EncryptByPassphrase('P@ssw0rd', N'????????? ??????')); GO ??????????? ???????????? ??? ?????? ??????? DecryptByPassphrase
: SELECT (Convert(Nvarchar(100), DecryptByPassphrase('P@ssw0rd', Secret))) FROM SecretTable; «адание дл¤ самосто¤тельной работы 5.1. Ќазначение прав на объекты SQL Server 2005 и изменение контекста выполнени¤ ???????: 1. ???????? ??? ?????? SQL Server 2005. ??? ??????? ?????? ??????????? ??? Login1
? ?????? P@ssw0rd1
, ? ??? ??????? ? Login2
? P@ssword2
. 2. ???????????? ?????? Login1
????? ?? ????? HumanResources
? ???? ?????? AdventureWorks
? ?????????, ??? ?? ????? ????????? ??????? ? ????? ???????? ???? ?????. ????????? ????? ?????????? ? ?????? Login2
???? ?? ?????????? ???????? ? ???????? ? ????? HumanResources
. √лава 5 17
4
3. ???????????? ?????? Login2
????? ?? ?????????? ??????? ?? ????? ?????? Login1
. ???????? ??? ??????? ? ?????????????? ??????????? EXECUTE AS
, ? ???? ???????? ???????????? Login2
???? ?? ????????? ?????? ? ??????? HumanResources.Employee
?? ????? ???????????? Login1
. ???????: ? ?????? 1 ??????? ? ???????? ???????: 1. ????????? SQL Server Management Studio ? ???????????? ? ?????? ??-
???????? ??????? SQL Server 2005 ??? ?????? ?????????????? Windows. ????? ??????? ?????? New Query, ????? ??????? ???????? ???? Transact-SQL. 2. ??????? ? ????????? ? ???? ????????? ???? ????????? ???????: USE master; GO CREATE LOGIN Login1 WITH PASSWORD = N'P@ssw0rd1', DEFAULT_DATABASE = master, CHECK_EXPIRATION = OFF, CHECK_POLICY = OFF; GO CREATE LOGIN Login2 WITH PASSWORD = N'P@ssw0rd2', DEFAULT_DATABASE = master, CHECK_EXPIRATION = OFF, CHECK_POLICY = OFF; GO ???????? ??????? SQL Server 2005 ????? ????? ??????????? ??? ?????? ???-
????????? ?????????? ? ?? ?????????? Security | Logins ? Object Explorer. ? ?????? 2 ??????? ? ?????????????? ?????????? ?? ????? ? ???????? ????: 1. ????? ??????? ?????? ???????????? ? ???? ?????? AdventureWorks
??? ??-
???? Login1
, ????? ????????? ????????? ???: USE AdventureWorks; GO CREATE USER Login1 FOR LOGIN Login1; GO ???????? ??????? ???????????? ????? ????? ?????????? ??? ?????? ???????-
????? ?????????? ? ?? ?????????? Databases | AdventureWorks | Security | Users ? Object Explorer. 2. ????? ???????????? ?????????? ???????????? Login1
????? ?? ?????? ??? ???????? ????? HumanResources
, ????? ????????? ???: GRANT SELECT ON SCHEMA::HumanResources TO Login1; Ѕезопасность SQL Server 2005 17
5
??? ?????? ???????????? ?????????? ??? ???????? ????? ?????????? ?? ??????? Permissions ??????? ??????? ????? HumanResources ? ?????????? Da-
tabases | AdventureWorks | Security | Schemas ? Object Explorer. 3. ??? ???????? ?????????? ???? ????? ???????????? ?? ????? ?????? Login1
(? ???? File | New ??????? Database Engine Query ? ??????????? ???? ?????? ??? ???????????? ? ?????? ??? ?????? Login1
). ????? ? ??-
????????? ?? ????? Login1
???? ????????? ???? ?????? ? ????????? ??-
????, ????????: USE adventureworks; GO SELECT * FROM HumanResources.Employee; ??? ???????????? Login1
?????? ????? ???????? ???????. ???? ?? ?????-
????? ????????? ????? ?????? ?? ????? ???????????? Login2
, ?? ???????? ??????. ? ?????? 3 ??????? ? ?????????????? ????? ?? ?????????? ? ??????? ??-
??????? EXECUTE AS
: 1. ??? ???? ????? ???????????? ????? ?????? Login2
????????? ??????? ?? ????? ?????? Login2
, ????? ????????? ????????? ??? (?? ????? ????-
?????????? ???????): USE master; GO GRANT IMPERSONATE ON LOGIN::Login1 TO Login2; GO ??? ?????? ???????????? ?????????? ????? ?????????????? ???? ????? ???-
??????? ?? ??????? ?????? Login2
(?? Login1
!) ?? ??????? Securables. 2. ??? ???????? ??????????????? ???? ? ????????? ????????? ?????????? ????? ??????????????? ????????? ???????? (??? ????? ?????????, ???-
?????????? ? ??????? ?? ????? ?????? Login2
): EXECUTE AS LOGIN = 'Login1'; GO USE Adventureworks; GO SELECT * FROM HumanResources.Employee; GO √лава 5 17
6
«адание дл¤ самосто¤тельной работы 5.2. Ўифрование информации в таблицах баз данных ????????: ? ???????????? ? ????? ????????? ????? ??????????? ?????????? ? ????-
?????? ????? ??????????? ?? ?????????? ??????? ?????? ????????? ?????? ? ????????????? ???? ? ?????????????? ????????? ?????????? AES ? ???-
??? ????? ?? ????? 256 ???. ???????: 1. ???????? ? ???? ?????? AdventureWorks
???????????? ???? PayKey
??? ?????????? ? ?????????? AES_256. ???? ?????? ???? ??????? ??????? P@ssw0rd
. 2. ???????? ? ???? ?????? AdventureWorks
????? ??????? HumanResources. EmployeePayHistory
. ????? ????? ?????? ?????????? HumanResources. EmployeePayHistoryEncrypted
, ? ??? ?????? ? ??? ?????? ???? ???????-
???? ??? ?????? ?????????? ???? ????????????? ?????. 3. ????????? ??????, ??????? ?? ?????? ??? ?????? ?? ????????????? ???-
???? HumanResources.EmployeePayHistoryEncrypted
. ????????????? ?????????? ?????? ????????? ? ??????? ???? int
, money
? ?. ?. ??????? ???????? ??????? EmployeePayHistoryEncrypted
???????? ?????-
?????? ???????. ??? ????? ??????? ??????????? ??? ???? ???????? ???? ?????-
?? ???? ? ??? ?? ??? ?????? ? nvarchar(100)
. ????? ????, ???????????? ???? ?????? ?????????? ????????????? ? ?????????? (????????, nvarchar(100)
) ????? ????????? ?? ????????? ???????. ???????: ? ?????? 1 ??????? ? ???????? ????????????? ?????: 1. ??????? ?? ???????? ????????????? ????? ? ???????????? ? ?????????-
???? ????????? ????? ????????? ???: USE AdventureWorks GO CREATE SYMMETRIC KEY PayKey WITH ALGORITHM = AES_256 ENCRYPTION BY PASSWORD = 'P@ssw0rd' Ѕезопасность SQL Server 2005 17
7
? ?????? 2 ??????? ? ???????? ????????????? ????? ???????: 1. ??? ??? ???????? ????????????? ????? ??????? HumanResources. EmployeePayHistory
????? ????????? ???: USE AdventureWorks GO -- ??????? ??????? ??? ??????? ??????????? ?????? CREATE TABLE HumanResources.EmployeePayHistoryEncrypted (EmployeeID nvarchar(100), RateChangeDate nvarchar(100), Rate nvarchar(100), PayFrequency nvarchar(100), ModifiedDate nvarchar(100)) GO -- ????????? ???????????? ???? OPEN SYMMETRIC KEY PayKey DECRYPTION BY PASSWORD = 'P@ssw0rd'; -- ????????? ?????? ? ??????? ??? ?????? INSERT INTO INSERT INTO AdventureWorks.HumanResources.EmployeePayHistoryEncrypted (EmployeeID, RateChangeDate, Rate, PayFrequency, ModifiedDate) SELECT EncryptByKey(Key_GUID('PayKey'), CONVERT(nvarchar(100), EmployeeID)), EncryptByKey(Key_GUID('PayKey'), CONVERT(nvarchar(100), RateChangeDate)), EncryptByKey(Key_GUID('PayKey'), CONVERT(nvarchar(100), Rate)), EncryptByKey(Key_GUID('PayKey'), CONVERT(nvarchar(100), PayFrequency)), EncryptByKey(Key_GUID('PayKey'), CONVERT(nvarchar(100), ModifiedDate)) FROM AdventureWorks.HumanResources.EmployeePayHistory ? ?????? 3 ??????? ? ?????? ? ????????????? ??????: 1. ??????, ???????????? ?????? ?? ????????????? ??????? EmployeePayHistory
, ????? ????????? ???: OPEN SYMMETRIC KEY PayKey DECRYPTION BY PASSWORD = 'P@ssw0rd'; SELECT Convert(Nvarchar(100), DecryptByKey(EmployeeID)) AS EmployeeID, Convert(Nvarchar(100), DecryptByKey(RateChangeDate)) AS RateChangeDate, Convert(Nvarchar(100), DecryptByKey(Rate)) AS Rate, Convert(Nvarchar(100), DecryptByKey(PayFrequency)) AS PayFrequency, Convert(Nvarchar(100), DecryptByKey(ModifiedDate)) AS ModifiedDate FROM AdventureWorks.HumanResources.EmployeePayHistoryEncrypted ? ???????? ????? ???, ????????, ????????????? ?? ?????????? ???????????-
??? ??????????????, ????? ??????? ?????????? ? ???? ???????? ? ?????? ?????? int
, money
? ?. ?. ? ???? ??????? ??? ???????? ??? ?????? ??????????-
?? ??? nvarchar(100)
. √Ћј¬ј 6 –езервное копирование и восстановление баз данных SQL Server 2005 ? ?????????? ?????? ?? ????????????? ? ???, ??? ???????????? ????????? SQL Server 2005, ????????? ????????? ? ??????????? ???? ??????, ?????????-
???? ????????????? ?????????? ? ???????? SQL Server. ?????? ?????????, ??? ????? ??????? ??????????????, ? ??? ????????? ? ????????? ??????? ?????????? ??????????? ?????? ?? SQL Server. ??? ??? ??????? ? SQL Server 2005, ??????????????? ????? ? ???? ?????. 6.1. ќсновы резервного копировани¤ SQL Server 2005 ???? ????????????? ?????: "??? ?? ???????? ????????? ???????????, ??? ??-
?????? ??????". ? ??? ????????????? ???. ??????? RAID-??????? ? ???????? ?? ???????? ???, ????????, ?? ?????? ????????????, ??????? ?????? ?????? ??????, ??? ?? ??????????? ?????????????? ??????????, ??????? ????? ???????? ???? ?????? ? ????????????????? ?????????. ???????, ??? ???????, ?? ???????????? ?? ????? ??????, ????????? ????????? ??????????? ??? ???-
??? SQL Server 2005 ??? ???. ???? ???? ? ???, ??? ????? ????? ??? ???????. ???????, ?????????? ????????? ????????, ??????? ????? ????????? ??? ???????? ??????? ? ?????????? ??????? ?????????? ?????????? ????????-
???: ?????????? ? ???????? ??????????????, ?????? ???? ??????, ??????, ??????? ???? ? ????? ????????????, ?????????? ? ?????????????????? ? ????????? ?????? ?????????????? ???? ?????? ? ?. ?. ??? ??????? ????? ??????????? ? ????????? ???????? ???? ?????. ???? ??????? ?????? ????-
????? ???????. √лава 6 180 ? ???? ????? ??????????????? ?????? ????????? ??????????? ???????????? ?????????? SQL Server 2005. ? ????????, ????????????? ????? ??????????? ???? ???????????? ?????? ??????????. ?????? ???????????? ??? ?????????? ??????????? ?????? ?????????? ???????? SQL Server 2005 ? ??? ??? ?????, ??? ??? ?????? ? ??????????? ???????????? ?????? ???????, ???????????? ? ???????????? ????????. ???????? ?????????, ???????, ? ??? ?????, ?? ? ????? ????????, ??? Word, ???????????? ??????????? ??????. ??? ?????? ??????? ???????????? ?????????? ?????????? ??????????? SQL Server 2005? ???????? ??????? ???????? ??????????? ????????????: ?????????? ??????????? ????????? ??????????? ?? ????????? ???????? (?????? ?? ???????????? ? ?????????? ??????????); ???? ? ??? ????????? ???????? SQL Server 2005, ?? ?? ??????? ????????? ????????? ?????????? ??????????? ?? ??????? ??????: ????????? ??????-
??? ??????????? ???????? ?? ?????? ??????? ????????; ??? ??????????? ????????? ????????? ????? ??? ??????????? ?????? ?????????? ?? ????????? ????? ?????? (???????????? ?????????? ????? ???????? ?????? ?????????? ??????, ???? ??? ?????????????? ??????????); ??? ??????????? ??????????? ????????? ??????????? ????????? ???????? ???? ?????? (?????? ??????? ???? ?????? ??? ????????? ????? ?????? ? ???????? ??????); ??? ??????????? ???????????? ?????? ? ?????????? ?????????? ????????-
??? ? ???????????????? ???????. ??????? ?? ?????? ???????????? ???????????? ???????????? ??????????? ???????? ??? ?????????? ?????????? ???????????. ?? ??????????? ??????, ?? ????????????? ???????????? ???? ????? ???????????? Veritas NetBackup, ArcServe ? Legato. ? ?????? ?? ???? ???????? ???? ???? ???????????, ???-
????????? ? ??????????. ????????????? ?? ????? ?? ?? ?????, ??????? ????-
??, ??? ??? ?????????? ?????????? ??????????? ??? ?????? SQL Server 2005 ??????????, ????? ? ????????? ???????? ???????? ??? ???????????? ???-
???????? ?????? ??? ?????????? ??????????? ?????? ???? ?????? SQL Server. 6.2. ѕланирование резервного копировани¤ 6.2.1. Ћента или жесткий диск? ?????? ??????, ??????? ????? ?????? ??? ?????????? ??????? ?????????? ???????????, ? ???? ???????? ????????? ?????. –езервное копирование и восстановление баз данных SQL Server 2005 181 ? ???????????? ??????????????? ?? ???????????? ???? ??? ????????: ????? ?????? ? ??????????? ????? ??????, ?? ? ????? ??????? ????-
??? ? ??? ????????????? ????????? ?????????. ??? ?????????? ??????-
???? ??????? ????????? ?????? ? ???????????. ????? ? ???? ????????-
???? ??????????? ??????????? ??????????? ??? ?????????? ?????????? ???????????. ??????? ?????????? ????????: ?? ?????? ??????????? ??-
??? ?????????? ?????????? ?????????? ? ??????? ????? ????????. ?????-
?? ?????? ????????? ?????????? ???????????? ?????? ??? ???????? ??? ??????, ?? ??????? ???????? ?????????? ?????? ??????????; ???????? ???????????? ??????? ? ?????????? ?????????? ??????????? ?? ???????? (?????????? ?????? ? ????????? ??????), ???????????? ??-
?????? ? ??????????, ?? ??????? ???????? SQL Server 2005; ?????? ??????? ? ?????????? ?????????? ??????????? ?? ??????? ???? ??? RAID-??????, ???????????? ???? ???????? ? ???? ??????????, ?? ??????? ???????? SQL Server, ???? ? ??????? ??????????. ?? ?????? ?????? ????????? ??????????? ????? ????????????? ?? ????. ??? ?? ???????? ???????, ???? ???? ???????????, ????? ????? ?????????? ????????? ???-
???????. ???? ?? ?????? IT-????????????? ????? ???????? ?? ???????????-
????, ????? ????? ?????????? ? ??????? ?????? ????? ????????? ????????? ???????. ? ?????? ????????? ??????? ??? ?????????, ???????? ? ??????????, ???????? ?????? ? ??????????????? (????????, ? ??????????? ????????? ?? ????????? ?????). ??????? ???????? ? ?????? ???????? ????? ? ???????? ??????. ???? ?? ????? ??????? ????? ? IDE-??????????? ??? ????? ??????-
?? ??????? ???????, ??? ?????????. ??????? ?? ???????? ??????????? ? ?? ???? ????, ??? ??????? ???? ? ??? ?????????? ?????????????, ? ?? ???????-
?????????? ???????, ??? ????????? ????? (?? ???? ?????? ????????????). ????? ????, ?? ??????? ????? ?????????? ?????? ??????????. ?? ?????? ????????? ???? ????? ??????? ????? IDE ???????? 200?300 ????? ???????-
???? ?? ?????, ?????? ????????? ?? ?????? ????????????, ?? ? ???????? ?????????????, ? ?????? ?????? ?????? ?????????? ??? ?????????? ????????-
?? ??????????? ??????????? ??? ??????. ????? ?????? ??????? ? ??? ?????????? ???????????? ??????? ?????? ? ????????? ????. ????? ????? ?????? ??????????? ????????? ??????????? ?????? ?? ??????? ???? (???????? ??? ?? ????), ? ?????? ??????? ?? ??????? ????? ?????? ????????? ????????? ????? (??? ????????? ????????? ??-
???). ? ??? ? ????? ???????? ????? ????? ??????????? ??????????? ?????? ?? ????????? ?????. √лава 6 18
2
??? ???? ??????????? ????? ????????? ?????: ????????? ??????????? (? ?????????????? ????????? ????????? ?????) ???????????? ?????? ? ?????????????? ?????, ? ??????, ????? ??????; ???????? ????? (?? ?????? ??????, ???????? ? ?. ?.) ????? ????????? ?? ??????? ? ??????????????? ??? ??????????? ???????? ??????????; ??????? ?????? ?? ???????? (??????? ?????? ??????? ????? ??????????) ????? ??????????? ? ??????? ?????, ?? ????? ?????? SQL Server. ???? ? ?????? ??????????? ??? ???????? ????????? ?????, ????????, ??-
??????? ??????????? ? ?????????????? ?????????????. ?? ??? ?????????-
?????? ?? ?????, ?????? ??? SQL Server 2005 ???????????? ????????? ????-
??????? ?????? ?? ????? (????????? ??? ???????) ? ?????????. ?????????? ?????? SQL Server ???????????? ??? ???? ?????????? ??????-
???? ???????????: ??????????? ? ??????????? ????? (Named Pipe). SQL Server 2005 ????? ?????????? ?? ????????????: ?????? ???? ????????????? ??????? ?????????? ??????????? ?????????? ???????????? ??????????? ???-
???????? ?????????, ?????????? ? SQL Server. 6.2.2. Ћогические устройства или ¤вно указанный путь? ????? ???? ??? ?? ??????????, ???? ?????? ???????? ????????? ?????, ???-
?????? ???????, ??????? ??? ????? ???????, ? ????? ?? ???? ??????????? ???? ??? ?????????? ????????? ????? ??? ??? ???? ???? ????? ??????????? ??????????????? ???????, ??????? ?????????? ???????????? ?????????? ???????????. ?????????? ?????????? ??????????? (backup devices) ? ??? ??????????? ???????, ??????? ???????? ? ???? ?????? master
. ?? ???????????? ???????-
??? ? ??????? ?????????? ? ???? ? ??????????? ????? ? ???????????? ??????? ??? ? ?????????. ??????? ????? ?????????? ?????: ?? ??????????? ?????????? ? ?? ?????????? Server Objects | Backup Devices (??????? ??????? | ?????????? ?????????? ???????????) ? Mana-
gement Studio; ?? ???? Transact-SQL ? ??? ?????? ???????? ????????? sp_addumpdevice
, ????????: USE [master]; GO EXEC sp_addumpdevice @devtype = 'disk', @logicalname = 'BackupDevice1', @physicalname = 'D:\SQLBackups\BackupFile1.bak'; –езервное копирование и восстановление баз данных SQL Server 2005 18
3
????? ???????? ?????????? ?????????? ????? ???????????? ??? ?????????? ???????????. ????????, ??????? ?? ?????????? ?????????? ??????????? ???? ?????? db1
??? ????????????? ??????????? ?????????? ????? ????????? ???: BACKUP DATABASE db1 TO DISK = 'D:\SQLBackups\BackupFile1.bak'; ???? ?? ?? ??????? ?????????? ?????????? ?????????? ???????????, ?? ???-
?? ???????????? ????? ???????: BACKUP DATABASE db1 TO BackupDevice1; ??????? ??? ?????, ??????????? ?? ?????????? ?????????? ?????????? ????-
??????? ??? ???. ??? ?????????? ????? ?? ???????? ?? ???????? ?????????? ???????????. ?? ????? ?? ??????? ??????? ??? ??????????? ?????????? ??-
???-?? ?????????????? ?????????. ?????? ????????????? ???-???? ??????-
?????? ?????????? ?????????? ??????????? ?? ????? ??????? ???????: ????? ????? ???????? ??????? ?????????? ???????????. ???????????, ??? ????? ?????????? ????????? ????? ?????????? (?? ?????? ????????? ????? ???? ??? ??? ??????? ????????). ??? ????????? ?????????? ??????????? ??? ???-
????? ?????????? ?????? ??????. ???? ?? ?? ??????? ???????????? ? ??????-
???? ??????????, ?????????? ????? ????????? ????????? ? ??? ???? (?????? ??????, ???? ????????? ??? ??????????? ?????????? ??????, ?? ????? ??????? ?????? ?????????? ? ??????? ????? ? ? ????? ?? ?????????, ?? ?????? ?????). 6.2.3. “ипы резервного копировани¤ ? SQL Server 2005 ????????????? ?????? ??????? ???? ?????????? ??????-
?????. ?????? ??? ? ?????? ????????? ??????????? (full backup ??? base backup, ? ?????????? ??????? SQL Server ? full database backup). ??? ????? ???-
?????? ??? ?????????? ???????????. ? ????????? ????? ???????????? ??? ??????, ??????? ???? ? ???? ??????. ?????? ???????? ??? ???? ?? ??????-
????, ??????? ????, ????????, ????? ????? ???? ?????? ????? ?????? ? 1 ?????, ? ??????? ?????? ? ??? ???????? ????? ???? 200 ?????, ?? ????-
????? ????????? ????? ???????? 200 ?????. ???????, ?????? ????????? ???????????, ??? ? ??? ?????? ???? ?????????? ???????????, ???????????? ? ??????????? ?????? (online), ??? ?????????? ?????????????. ???????????? ?????????? SQL Server 2005 ?????? ?????????? ????????? ??????????? ??? ??? ?????? ? ??????, ??????? ????????? ? ????-
?????? ?????? (offline). ?? ????????? ??????????? ??????? ??????????? ?????????? ???????????? ???????. √лава 6 18
4
???????? ???????? ?? ???? ??????, ? ??????? ????? ????????? ????????. ???????????, ??? ?????? ????????? ??????????? ???? ?????? ???????? ? 7 ?????, ? ??????????? ? 8. ?????? ?? ????????? ?? ????? ????? ????????? ???????? ? ????????? ????? ? ?? 7 ??? 8 ?????? ?????????? ????? ? ?? 8 ?????. ?????????????, ? ?????? ?????? ?????????? ??????????? ???? ?????? ??????????????? (?. ?. ??????? ????????? ? ?? ???-
?? ?? ???????? ??? ??????????? ??????????? ????????? ?????). ?????? ????? ????, ??? ??????? ????? ???? ?????? ????????, ? ????????? ????? ????????-
???? ?????????? ? ???? ??????????, ??????? ???? ??????? ? ???? ?????? ?? ????? ?????????? ???????????, ?. ?. ? 7 ?? 8 ?????. ??? ?????????????? ??-
??????? ????? ??? ?????????? ???????????? ? ?????????????? ??????. ?????? ??? ?????????? ??????????? ? ?????????? (differential backup, ???-
??? ????????, ??????? ????????? ? SQL Server 2005, ? full differential backup). ? ???? ?????? ?? ????????? ????? ???????????? ??? ?????????, ??????? ???? ??????????? ? ??????? ??????? ?????????? ???????????. ???????? ????????, ??? ?????? ? ??????? ?????????? ??????? ?????????? ????????-
???, ? ?? ??????? ???????????! ???? ?? ??????????? ?????? ????????? ????-
??????? ?? ?????????????, ? ?? ??? ????????? ??? ?????? ? ??????????, ?? ?? ??????? ? ????????? ????? ????? ???????? ?????????, ??????? ???-
?????? ? ???????????? ?? ???????, ? ????? ? ? ???????????? ?? ????? (? ?? ?? ???????? ?? ?????) ? ?. ?. ??????? ??, ?????????? ????????? ??????????? ????? ???????????? ?????? ? ?????????? ? ???????. ?????? ??? ?????????? ??????????? ? ????????? ??????????? ???????? ?????????? (transaction log backup). ???? ?? ??????????? ????? ?????????-
????? Full ??? Bulk-logged, ?? ?????????? ?????? ?????????? ??????????? ??????????? ???????????. ??????? ??????: ???? ?? ?? ?????? ??????????? ????????? ??????????? ???????? ??????????, ?? ?? ????? ????????????? ? ?? ???????. ? ?????????? ????? ? ?????? ???????? ?????????? ????? ?????????-
?? (? ???? ??? ??? ?????????? ?????????????? ??????, ?? ?????????? ? ????? ?? ?????). ??? ????????? ??????????? ????? ???????????? ??? ?????? ??????????? (incremental) ?????????? ???????????, ??????? ????????????? ? ?????????-
??? ???????. ????????, ????? ??????????? ?????? ????????? ??????????? ?? ?????????????, ? ? ?????? ?????? ???? ?????? ? ????????? ??????????? ???????? ??????????. ? ?????????? ?? ??????? ? ????????? ????? ????? ??-
?????? ?? ?????????, ??????? ????????? ? ???????????? ?? ???????, ? ???-
?? ????? ???????? ????????? ?? ???????? ?? ????? ? ?. ?. ????? ????????? ??????????? ????? ??????????? ???????, ??? ??????????, ?? ???????? ??-
?????????? ????????? ??????????????. ???? ???? ??????????, ????????, ? –езервное копирование и восстановление баз данных SQL Server 2005 18
5
???????, ?? ??? ????????????? ??????????? ?????????? ??????????? ??? ??-
????????? ??? ????????? ?????: ?? ??????????? (??????) ? ?? ??????? (?????-
?????). ? ??? ?? ???????? ??? ????????????? ?????????? ??????????? ?????? ???????? ?????????? ??? ???????????: ?????? ????? ?? ??????????? ? ??-
??? ???????? ?????????? ?? ???????, ????? ? ???????. ????????? ??? ?????????? ??????????? ???????? ?????? ? SQL Server 2005. ??? ??? ?????????? ?????????? ????????? ??????????? (copy-only backups). ??? ?????????????, ? ?????? ???????, ??? ???????? ?????? ????? ??????-
?????? ? ???? ????????? ?????. ????? ??? ?????????? ??????????? ???????-
???? ?? ?????? (? ????????? ????? ????? ???????? ?? ?? ??????, ??? ? ??? ??????? ?????? ????????? ???????????) ? ?????????? (?????? ???????? ??????????? ???????????). ???? ??? ?????????? ??????????? ?????????? ?????? ???, ??? ? ??????? is_copy_only
??????? backupset
???? ?????? msdb
(? ??? ??????? ?????????? ?????? ? ???? ????????? ????????? ??????) ??-
??? ????????? ????? ?????????? ??????????? ??????. ?? ???? ????? ????? ????????? ?????, ????????? ? ?????????? ??????, ?? ??????????? ? ??-
???????????????? ??????? ????????? ?????. ????????, ???? ????? ??????? ?????????? ????? ????? ??????? ?????? ??????????, ?? ??? ????????? ???-
??????? ????????? ??????????? ??? ?????? ?????, ????????? ? ?????? COPY_ONLY
, ????? ???????????????. ? ? ?????????? ????? ????? ???????? ??????????, ?????????? ? ??????? ???????? ??????? ?????????? ??????- ?????. ????????? ??????????? ? ?????? COPY_ONLY
(? ????? ?????????????? ??????-
??? ???? ???????? ?????) ?????????? ?????????? ??? ?????? ??????????-
?? ?????????? Management Studio. ?????? ????? ??? ????? ????? ????????-
???? ???????? ????? COPY_ONLY
? ???????? BACKUP
? RESTORE
. ? ???????? ??????????????? ???? ?????????? ??????????? ????? ?????????-
???? ????????? ??????????? ?????? (file backup) ? ???????? ????? (filegroup backup). ??????????? ??? ?????????? ????? ? ?????? ?????? ? ???? ?????????: ????? ????????? ????? ???? ???? ?????? ?? ?????????? ?? ???????? ?????????. ? ???? ?????? ?????? ?????? ??? ???????? ????? ?????????-
?? ??? ?????? ?????????; ????? ? ???? ?????? ??????? ????? ??????? ???????? ?? ??? ??????: ???-
????-???????????, ? ??????? ????????? ??????????? ?? ????????, ? ????-
???????????? ???????, ??????? ?????????? ???????. ? ???? ?????? ???-
??? ?????? ?????? ?????????? ? ???? ???????? ??????, ? ????? ?????-
????? ????????? ??????????? ?????? ???????? ?????? ?? ????? ????????. ??? ??????????? ??????????? ?????????? ??? ?????????? ?????????? ????-
??????? ?????? ? ???????? ????? SQL Server 2005 ????????????? ????????-
√лава 6 18
6
?? ????????? ????????? ?????. ???? ?? ????? ????????? ????????? ??????-
????? ???? ?????? ??? ???????? ????? ? ?????? ?????? ?????????, ?????? ?????????? ????????? ?? ?????. ??????? ?????????????? ????????? ???? ??? ?????????? ??????????? ?????. ?????????? ????? ?????????, ??? ?? ??? ???? ?????????? ??????????? ??? ?????? ?????? ????????. ????? ???? ?????????? ??????????? ??????? ?? ??-
???? ?????????????? ???? ??????. ???????? ??? ?????? ?????????????? ?????????????? ? ????. 4.5. ????? ?? ??????? ??????, ??? ????????? ??? ??-
??????????? ?????? ?????????????? Simple ?????? ?????????? ????????? ?????????????, ?? ? ???? ?????? ????????? ??????????? ??????? ?????????? ????????? ??????. ????? ????, ? ???? ?????? ????? ??????????? ????????? ??????????? ?????? ??? ???????? ?????, ??????? ???????? ?????? ?? ??????. ? ???????????? SQL Server 2005 ??????????? ????? ????????? ????????? ?????-??????? ??? ?????? (snapshot backups). ???????? ????? ????????? ????? ???????????? ??? ?????? ?????? Volume Shadow Copy (??????? ??-
????????? ????) ? Windows Server 2003, ?? ???????????? ?????????? SQL Server 2005/Windows Server 2003 ??????? ????? ????????? ????? ?? ???????. ??? ????? ????????? ??????????? ??????????? ?/??? ?????????? ???????? ??????? ????. ????????? ?????-?????? ??? ?????? (snapshot backups) ?? ??????? ?????? ?? ???????? ??? ?????? ?? ???????????? ?????? ??????? (database snapshots), ??????? ????????? ???????? ?????????? SQL Server 2005 ? ????? ????? ??-
???????????? ??? ?????????????? (??????, ??? ?????? ???? ?????? ? ??????-
??? ?? ???????????? ????? ? ???????). 6.2.4. –асписание резервного копировани¤ ?????????, ??? ??? ???????? ?????? ??? ???????????? ?????????? ????????-
???, ? ????? ?????????? ?? ?????? ????????????. ???????, ????? ????? ??-
????? ?? ?????????? ????????. ??? ???????, ????? ?????????: ?????? ???? ??????. ???? ??? ????? ???????, ?? ????? ???????? ? ?????-
????? ??????????? ?????????? ???????????; ????? ?????????????? (?? ???? ?????????? ? ?????????? ???????); ????????????? ???????? ????????? ? ???? ??????. ?????? ??? ?????? ????????? ???????? ? ???, ??? ???? ????? ??????????? ????????? ????-
???????. ????? ????, ??? ????? ??????? ??????? ?????????? ?????? ?????????? ??????????? ?????????? ??????????? ????? ????????? ????-
?????????; ????????? ?????? ? ?????? ???? ?????????? ?????? ???? ?????? ? ?????. ???? ??? ?????? ???? ????????????? ??????, ?? ??? ?????? ???????????? ??????? ??????? ????????? ????? ???????? ??????????. –езервное копирование и восстановление баз данных SQL Server 2005 18
7
?? ????? ?????? ?????? ? ??? ??????? ?? ??????????? ????? ?????? ????-
??????? ????? ????????, ??? ? 9 ?? 10 ??????? ?? ????????????? ???????-
????? ???????????? ????? ??????? ?????????? ?????????? ???????????: ???-
??? ???? ???????????? ?????? ????????? ??????????? ???? ???? ??????, ? ????? ????? ????? ? ????????? ??????????? ???????? ?????????? (??? ???-
????). ???? ???? ?????? ?? ????? ???????, ?? ????? ????? ?????? ????? ??????? ???????????. ??? ???? ?????? ???????? ??? ????????? ????? ?? ????????? ?????? ??? ??? ??????, ? ????? ????????? ????? ?? ?????? ?????? (????? ????? ???? ??? ????????????? ???????????? ???? ?????? ? ???????????? ?? ??? ?????-
??? ???????). ???????? ? ????????? ?????????? ??????? ???????????? ??-
??????. ?????????? Microsoft ??????? ????????? ????????? ?????? ?????????? ??-
???????? ??????????? (????? ????? ????? ??????? ?? ??????????? ??????? ?????? ? ???????????????? ?????????): ??? ? ?????? ? ?????? ????????? ???????????; ??? ? ????? (?????? ????) ? ?????????? ????????? ???????????; ????????? ??? ? ???? ? ????????? ??????????? ???????? ??????????. ???? ??????? ????????? ??????? ???????? ??? ??????? ??? ?????? (?????-
?? ? ????? ????????), ??????? ??????? ??????????. ????? ???????????? ? ?????? ???????? ?????????? ??????????? ? ????????-
??? ?? ?????????? ??????? ???????????. ????????, ??? ?? ????? ?????? ??? ?????? ?????? ????????? ??????????? ????? ????????? ??? ? ?????? ? ??? ? ???? ????????? ????????? ??????????? ???????? ??????????. ? ????? ?????? ????????? ??????????? ????? ??????????? ?????, ????? ??-
?????? ?? ?????? ?????????? (?????? ?????). ????????????? ?????? ???????????? ? ????????? ???????????? ????????-
???????? ??? ?????? ??????????? ????????? ??????????? ??? ?????? master
? msdb
. ?? ????????? ? ????????????????? ?????? ?????? ????? ??????????? ?????? ???????, ? ????????????????? ? ?????? ?????-?? ??????? ????? ?????-
?? ?????. 6.3. ѕроведение резервного копировани¤ 6.3.1. —редства дл¤ выполнени¤ резервного копировани¤ ????????? ??????????? ???? ????? ???????????? ??? ?????? ??????? Transact-SQL ? ???????? BACKUP
, ??????? ??????????? ?? ?????????? ? ????-
√лава 6 18
8
?????????? ?????? (??? ?????? ??????? SQL Server Agent). ??????, ????? ???????, ? ????? ???????????? ???? ? ?????? ????????: ??????????? ????????? Management Studio. ???????, ??? ? ??? ??????? ????? ?????? ????????????? ?????? Transact-SQL ?????????????. ??? ???-
?? ?? ?????? ?????????? ??????????? ????? ????????? ?????? ????????? ? ?????? ?????? Script ? ??????? ????? ??????; ???? ???????????? ???? ?????? (database maintenance plan). ??? ?????? ????? ???????????? ?? ?????? ?? ?????? ??????? ??????? ?? ????????? ??????????? ???? ??????, ?? ? ????????????? ??? ??? ?????????? ?? ???-
???????, ????????? ????????? ?????? ? ????????? ??????????? (?, ??-
??????, ??? ????????? ?? ??????????? ?????). ?? ?? ??????????? ???-
????? ? SQL Server 2005 ??? ?????? ??????? SSIS (DTS). ????????? ??? ?????? ? ??????? ???????????? ??? ?????? ????? ?????????????? ? ????. 8.3, ? ??? ?????? ? ???????? SSIS ? ? ??. 10; ??????? ????????? ?????? ???????????? ??????? sqlmaint
. ??? ??????? ????????? ??? ????? ??????????? ???????? ?????????????, ??, ??? ?? ??-
???, ??? ???????? ????? ??????? ???????? ?????????? ?????????? ????-
??????? ??? ?????? SQL Server ?? ?????????? ? ????????????? ???????-
?? ??????; ?????? ??? ?????????, ???????????? ????????? ?????? SQL-DMO ??? SMO. ???? ?? ???? ????????? ??????? ?????? ? ??. 9. ?????? ????? ?? ???????? ??? ?????????? ??????????? ?? ?? ???????, ??-
?????? ??????????? ??? ????? ????? ??????????? (?? ??????????? ?????? Management Studio ????? ?????????? ????????? ??????????????? ??????-
?????). 6.3.2. ѕараметры резервного копировани¤ ??? ?????????? ?????????? ??????????? ????? ??????? ????????? ???????-
???. ??? ????????? ??????????? ?????. ??? ??????? ?? ??? ????????? ??-
?????? ?? ??????????? ?????????? Management Studio ? ??????????????? ????????? ??????? BACKUP
. ???? ?????????? ??????????? ? Management Studio ????? ??????? ?? ???????????? ???? Tasks | Backup ??? ?????????-
?????? ???? ??????. ?????? ??????? ? ??????????????? ??????????? ???? ??? ?????????? Server Objects | Backup Devices. ????????? ?????????? ??????????? ?????????: Database ? ???, ???????, ??? ???? ??????, ????????? ??????????? ????-
??? ?? ?????? ???????????. ? ??????? BACKUP
??????????? ??? BACKUP DATABASE ???_???? ??????
; –езервное копирование и восстановление баз данных SQL Server 2005 18
9
Recovery model (????? ??????????????) ? ??? ?????? ?????????? ??-
???????? ? ??????? ?????? ?????????????? ???? ??????. ????? ??????-
???????? ???????? ?? ??????? ???? ??????; Backup type (??? ?????????? ???????????) ? ??? ?????????? ????????-
???. ??? ??????? ??? ??????????? ?????????? ??????????? ???????????? ??????? BACKUP DATABASE
(??? ??????????? ??? ??????????? ???????? WITH DIFFERENTIAL
), ??? ?????????? ??????????? ??????? ?????????? ? ?????-
?? BACKUP LOG
. ???????? ????????, ??? ? ??????? ?? ?????? ????? ??????? ???????? WITH COPY_ONLY
, ??????? ?????????? ?????????? ????? (??. ????. 6.2.3). ?? ??????????? ?????? ?? ??? ??????? ?? ???????; Backup component (????????? ??? ?????????? ???????????) ? ????????? ??????? ????????? ??????????? ???? ???? ?????? ??? ????????? ?????-
??? ????? (????????? ??????). ? ??????? BACKUP
??? ???????? ?????? ??? ???????? ????? ???????????? ???????? ????? FILE
? FILEGROUP
, ??- ??????: BACKUP DATABASE db1 FILEGROUP = 'PRIMARY' TO DISK = 'D:\SQLBackups\BackupFile1.bak'; Backup set name (??? ????????? ?????) ? ??? ????????? ????? (backup set ? ??? ????? ?????????, ??????? ????????? ? ????? ????????? ?????). ? ??????? BACKUP
??????????? ???????? NAME
. ???????? ?????????? ?? ????? ????????? ????? ????? ??? ?????? ?????? Contents (???????-
???) ?? ??? ?? ?????? ??? ??? ?????? ??????? RESTORE HEADERONLY
; Description (????????) ? ???????? ????????? ?????. ??????????? ??? ?????? ????????? DESCRIPTION
. ??????????? ????? ??? ??, ??? ? ??? ??-
??????? ?????; Backup set will expire (????????? ????? ????????) ? ????????? ??????? ???? (????), ????? ??????? ????????? ????? ????? ????????? ?????????? ? ????? ????????????? ???????????????? SQL Server. ???????? 0 ????? ??-
??????? ????????, ??? ????? ??????? ?? ????? ????????? ??????????. ? ??????? BACKUP
??? ???????? ?????/???? ??????????? ???????????? ??-
??????? RETAINDAYS
(??????? ??????? ?????????) ? EXPIREDATE
(???? ????-
???????). ???????, ??? ?????? ????? ????????? ?? ??????????? ?????? ????????? ????????? SQL Server. ?? ?????? ?????? ????????????? ???????????? ?????, ??????? ?? ?????? ????????, ??? ?? ?????????????? ??????? ????? (??? ????? ???? SQL Server ?? ?????????); Destination (??????????) ? ????? ?????????? ????????? ????? ? ???? ????? ?? ?????, ????????? ??? ??????????? ?????????? ?????????? ????-
??????? (??. ????. 6.2.2). ????? ??????? ????????? ?????????? ???????-
√лава 6 190 ????? (?? ?????? ?????? ????). ? ???? ?????? ?????? ????????? ????? ??-
??? ????????????? ??????????? ? ????????? ?????? ??? ?? ????????? ?????????? ??? ????????? ??????????????????. ???????, ??? ??????-
???????? ?????? ??? ??????????? ??? ????? ????????? ?????, ????????? ????? ???????. ? ??????? BACKUP
??? ???????? ????? ?? ????? ??????????-
?? ???????? ????? TO DISK
, ? ??? ???????? ????????? ? TO TAPE
. ???? ?? ??????????? ??????? BACKUP
, ? ?? ??????????? ?????????, ?? ? ????? ???????????? ??? ???? ???????????: ??? ?????? ????????? ???-
?? MIRROR TO
????? ??????? ????, ???????? ??? ?????????? ??????????, ?? ??????? ????? ??????????? ?????? ????????? ????? ????????? ????? (????????? ?????????? ???????). ????? ?????????????? ??? ???????? ??-
??????? ????? ????????????, ???????, ??? ????????? ?????????? ??-
???????? ???????????. ??? ????? ??????????? SQL Server 2005; Overwrite media (???????????? ????????) ? ????????? (?? ??????????? ?????? ??? ??????????? ?? ??????? Options), ??????????? ?????????? ????? ?????????? ???????? (????? ?? ????? ??? ????????? ?????). ? ??-
??? ???????????? ????????? ????????: Append to the existing media set (???????? ? ????????????? ?????? ????????). ????????????? ?????????? NOFORMAT
(?? ?????????????? ??-
??????? ????????) ? NOINIT
(?? ?????????????? ?????? ????????? ??-
???); Overwrite all existing backup sets (???????????? ??? ???????????? ?????? ????????). ????????????? ?????????? NOFORMAT
? INIT
(??????-
??? ???????? ??????????, ?? ??? ?????? ????????? ????? ????? ??????-
??????); Check media set name and backup set expiration (????????? ??? ????-
?? ????????? ? ??????????? ????????? ?????). ????????????? ???????-
??? NOFORMAT
, INIT
, NOSKIP
(?????????? ????? ??????????? ?????? ? ??? ??????, ???? ??? ????????? ????? ????????? ? ???????????? ?? ????-
????, ?? ???????????? ????????? ????? ????????); Backup to a new media set, and erase all existing backup sets (???????-
??? ????????? ??????????? ?? ????? ????? ????????? ? ??????? ??? ???????????? ????????? ?????). ????????????? ?????????? FORMAT
, INIT
, SKIP
(?????????? ?? ?????????? ? ??????? ??????????? ??????-
?????? ????????? ????? ???????? (????? ??? ????) ????? ????????? ???????????, ??????? ?????????). ??? ????????????? ??????? BACKUP
? ??? ???? ???? ???? ??????????? ???-
??????????? ?????????? ? ??????????? ?????? ??? ????????? ????? ??? ?????? ????????? MEDIAPASSWORD
. ? ??????? ?? ??????????? ?????? ????-
–езервное копирование и восстановление баз данных SQL Server 2005 191 ??? ???? ?????? ?? ???????????? ??? ?????? ??????. ?????? ?? ?????-
????, ? ??? ?????????????? ????????? ????? ?? ?????? ?????? ???? ?????? ?????? ???????????? ?? ?????. ???????????? ?????????? ?????? ????-
?? ? ?????? ?? ?????????? ?????? ????????? ????? ? ????????? ???-
???????????. ???????????? ????????? ?????, ?????????? ??????? ??? ???????????? ?? ??? ?????????????? ?? ??? ?? ??????? ????? ??????????, ???? ?? ?? ??????? ?????????? ??????. ?? ??????????? ?????????? ??-
???? ?????? ??? ????????? ????? ??????; Verify backup then finished (????????? ????????? ????? ????? ???????-
???) ? ???????? ??????????? ????????? ????? ????? ?????????? ??????-
???? ???????????. ??????????? ??????, ????????? ????????? ? ?????????-
??? ??????????? ????? (???? ??? ???? ????????). ???? ?????? ?????????-
???? ?? ????????, ?? ???????? ????? ????????????? ?????, ???????????? ? ????? ????????? ????????????. ??????? ???????? ??????? BACKUP
????? ????????? ?? ?????????????. ?????? ????? ????? ????????? ?????????? ??????????? ????? ????? ??-
??????? ??????? RESTORE VERIFYONLY
; Perform checksum before writing to media (????????? ???????? ???-
???????? ????? ????? ??????? ?? ????????) ? ??? ????????? ????? ????-
????? SQL Server ?????, ??-??????, ????????? ??????????? ????? (??? ??????????? ???) ??? ?????? ???????? ???? ??????, ? ??-??????, ????-
?????? ???? ??????????? ????? ??? ????????? ?????. ????? ????????? ????????????? ???????? ????? CHECKSUM
? ??????? BACKUP
. ? ?????????? ??????? SQL Server ?????? ????????? ?? ????; Continue on error (?????????? ??? ????????????? ??????) ? ????????, ???????????? ?????????? ??? ??? ????????? ???????????, ???? ??? ???-
????? ??????????? ???? ? ???? ?????? ???? ?????????? ??????. ????-
????????? ????????? CONTINUE_AFTER_ERROR
. ?? ????????? ???????????? ???????? STOP_AFTER_ERROR
? ??? ??????????? ???????? ?????? ??????-
??? ??????????? ???????????????; Truncate the transaction log (??????? ?????? ??????????) ? ?????????-
???? ??????????????? ? ??? ???????? ?? ?????????, ???? ?? ??????????? ????????? ??????????? ??????? ??????????. ?? ???????? "???????? ???-
??? ?????????? ????? ?????????? ???????????". ????????? ???? ????? ???????????? ?? ?????????, ?? ? ??????? BACKUP LOG
??? ?????? ?? ????-
?????????; Back up the tail of the log, and leave the database in the restoring state (???????? ????????? ??????????? ??????? ??????? ? ???????? ???? ???-
??? ? ?????? ??????????????) ? ????? ???????? ????????????? ????-
√лава 6 19
2
????????? ????????? NOTRUNCATE
(?? ??????? ??????) ? NORECOVERY (??? ??????????????) ? ??????? BACKUP LOG
. ??? ???????? "?????????? ??????-
??? ??????????? ??????? ??? ??? ??????? ? ????????? ???? ?????? ? ??-
??????? RESTORING
" (??? ???? ??? ?????? ??????????? ??? ?????????????). ????? ????? ???????????? ?????? ? ????????, ????? ??? ????? ???????? ????????? ?????????????? ???????? ???????? ?????????? (log shipping), ? ?? ?????? ???????? ?????? ??????? ? ????????? ???????; Unload the tape after backup (????????? ????? ????? ?????????? ??????-
?????) ? ????????????? ????????? UNLOAD
??????? BACKUP
. ??? ????????-
????? ????? ????????? ?? ????????? ?????????? ??????????? ???????? ????????????? ??????????? ?? ????????? (????? ?????? ? ???????? ??????? ?? ?????????). ???? ???????? ??????????????? ?? ????????? ??? ??????-
??????? ?????????. ????????? ?????????????? ?????????? ????? ??? ??-
???? ????????? NOUNLOAD
; Rewind the tape before unloading (?????????? ????? ????? ?????????) ? ????????????? ????????? REWIND
? ??????????????? ?? ?????????. ????? ??????????? ???????? ????????? ????? ????????? ?? ??????. ????????? ????????? ????? ??? ?????? ????????? NOREWIND
. ? SQL Server 2005 ????????? ????? ???????, ??????? ????????? ?????? ????-
?????? ????? ? ????????? ?? ??????, ?? ???????? ?????? ????????: RESTORE REWINDONLY
. ????? ???????????? ??? ????????? ?????????? ?????????? ???????????, ??-
????? ????? ???????????? ? ??????? BACKUP
, ?? ??????? ??? ???????? ?? ??????????? ??????: BLOCKSIZE
? ????????? ??????? ??????????? ?????? ????? ??? ?????????. ???????? ?????????????? ? ?????? ?????? ?? ?????????????????? (? ????-
????? ?????????); STATS
? ????? ??????? ????????? ?? ?????? ?????? ?????????? ????????-
??? ????? ?????????? ?????????????? ?????????. ?? ????????? ? ??-
??? ?????? 10%; COPY_ONLY
? ?????????? ??? ?????????? ??????????? (??. ????. 6.2.3); RESTART
? ? ?????????? ??????? SQL Server ???? ???????? ???????? ???-
??????? ???????????????? ???????? ?????????? ??????????? (????????, ????? ??????? ?????? ?????????, ????? ?? ?????? ??????????? ?????). ? SQL Server 2005 ???? ???????? ????????????; READ_WRITE_FILEGROUPS
? ?????? ????????? ??????????? ?????? ???????? ?????, ????????? ??? ?????? (???????? ?????? ?? ?????? ????? ????????-
??????). –езервное копирование и восстановление баз данных SQL Server 2005 19
3
? ??????? BACKUP LOG ???????? ??? ????????? ?????? ??????????, ??????? ??? ?? ??????????? ??????: STANDBY
? ???????????? ?????? NORECOVERY
? ??? ?? ????????. ?????????? ???, ??? ???? ?????? ??? ????????????? ????? ??????? ?????? ?? ??????, ?. ?. ? ?????? STANDBY
; NO_LOG
? TRUNCATE_ONLY
(??? ???????? ????? ???????? ??????????) ? ??-
?????????? ??? ??????? ??????? ?????????? ??? ?????????? ?????????? ???????????. ?????? ???????????? ?????, ????? ????? ? ??????? ????-
?????? ???????? ???????????, ? ??? ????? ??? ????? ??????? ?????????? ????????????? ??????????? ?????????? ??????. ???????? ????????? ???????? ??????? BACKUP
? ????? ???????????????? ???????. ????? ???????? ??????? ?????? ????????? ??????????? ???? ???-
??? db1
?? ????, ????? ???????????? ??????? ????: BACKUP DATABASE db1 TO DISK = 'D:\SQLBackups\BackupFile1.bak'; ????? ?????????? ?????????? ????????? ??????????? ??? ?? ???? ??????, ????? ???????????? ???????: BACKUP DATABASE db1 TO DISK = 'D:\SQLBackups\BackupFile1.bak' WITH DIFFERENTIAL; ??????? ?? ?????????? ?????????? ??????????? ??????? ?????????? ???? ???? ?????? ? ????? ??????? ???????? ????? ????????? ???: BACKUP LOG db1 TO DISK = 'D:\SQLBackups\BackupFile1.bak'; ??? ??? ????????, ??? ?????? ?????? ??? ?????????? ?????????? ??????-
????? ????? ????????????? ????????????? ??? ?????? ?????? Script ? Management Studio. ???? ??????????????? ??????? Script Action to Job (??-
??????????? ???????? ? ???????) ??????????????? ???? ??? ???? ??????, ?? ????? ????????????? ??????? ??????? SQL Server Agent, ??????? ????? ??-
??????? ????????? ??????????? ?? ??????????. ?????????? ?? ??????? Schedules (??????????) ??????? ???????????? ??????? ????????? ??? ???? ??????????, ? ?????? ????????????? ?????????? ??????????? ????? ??????. ????????? ????? ??? ???????????, ??????? ?????????? ?? ???? ?????? ??? ?????????? ?????????? ???????????. ? ??? ????? ??????: ????????? ????? ????? ???? ?????? ? ??????? ??????; ?????? ????????? ?????? ???????????? ??????. ?????? ????? ??????????? ????????? ??????????? ???? ??????, ??????? ??-
??????? ? ?????????? ?????? (offline). ???????, ????????????? ??????????? ????????? ??????????? ??? ?????? ?????? ? ?? ?????, ????? ???????? ?? ???-
??? ?? ??????? ????????????? ??????????. √лава 6 19
4
???? SQL Server ???????????? ??? ?????????? ?????????? ?? ??????????? ????????????? (????? ???????? ??????????? ?? ????????????), ?? ????? ??- ????? ????????????? ??????????? ????????? ??????????? ??????????????. ????? ???????? ?? ??????????? Management Studio ??? ??????? BACKUP
, ?? ????? ????? ??????? ?? ?????????? ???? ?????? ? ?????????? ????? ? ??-
??????? ????????? ??????????? ?????? ??? ?????? ? ???????? ?????????? ?????? ??? ?????? ??????????? ?????? ?????????? ???????????? ???????. 6.3.3. ѕолучение информации о резервном копировании и создание отчетов ????? ????? ??????????????? ?? ??????????? ?????????? ?? ?????? ?????-
???? ????????? ???????????, ?? ? ???????????? ?? ???? (????????, ???? ??? ???????? ? ????????). ???????, ?????????????? ????????? ???????? ? ??? ?????? ??????? BACKUP
, ?? ???????????? ?? ??? ???????? ??????? ??-
??????. ? ???????????? ??????????????? ??? ????????: ??????????????? ??????????? ???????? ??????? ? ????????? ??????- ?????; ??????? ????? ? ????? ??????????? ??????? ??? ?????? ?????????? ?? ?????? ? ???????? ?????????? ???????????. ??? ??????? ???????? ????? ????? ???????????? ??????????? ??????? ????????? ?????? sqlmaint
. ????????, ????? ???????? ?????? ????????? ??????????? ???? ?????? db1
? ????????? ?????? ? ????????? ??????????? ? ????? D:\BackupReport.html, ????? ??????????????? ????????? ????????: sqlmaint -S "LONDON7" -D "db1" -BkUpDB "D:\SQLBackups" -BkUpMedia DISK -HtmlRpt "D:\BackupReport.html" ? ?????????? ????? ??????????? ????????? ??????????? ? ?????? ?????, ???-
???????? ??????????????? ?? ???. 6.1. ???. 6.1. ??????????? ????? ?????? ? ????????? ??????????? –езервное копирование и восстановление баз данных SQL Server 2005 19
5
???? ????? ????? ??? ?? ??????????, ?? ???????? ????????? ???? ?????? ?? ?????? ?????? ? ???????? ?????????? ???????????. ????? ????? ??? ??????? ??? ?????? ??????? ?????????? ???????, ????? ??? Access, Crystal Reports ??? Reporting Services (Reporting Services ?????? ? ?????? SQL Server 2005). ?????? ?????, ??? ??????????? ?????????? ?? ??????? backupset
? ???? ???-
??? msdb
. ? ???? ??????? ???? ?????????? ? ????? ??????? ? ???? ??????, ??????? ?????????? ?????????? ???????????, ????????????, ??????? ?????-
??? ????????? ???????????, ????? ????????? ????? ? ?. ?. ???????????- ??? ?????????? ????? ????? ? ???????? backupfile
, backupfilegroup
, backupmediafamily
? backupmediaset
???? ?????? msdb
. 6.4. ќсновы восстановлени¤ баз данных ????????? ??????????? ?????? ???????????? ??? ????, ????? ? ?????? ???? ????? ???? ?????????? ??????????????. ?? ?????? ??? ??????????? ? ???-
??????? ?????????????? ??? ?????? SQL Server, ?????????? ???????? ?????-
??? ?????????? ????????. ?????? ?????? ? restore. ? ????? ?????? SQL Server, ???? ?????? ????? ????????? ??? "?????????????? ? ????????". ???? ????? ??????????????? ? ???????? ?????????? ?????????? ? ?????????, ????? ???? ?????? ?????????? ????????? ??? ????? ????????? ??????? ?????? ????????????. ?? ????? ????? ???????? ???????????? ??????? ?????? ?? ????????? ????? ?? ?????? ???? ??????. ?????? ?????? ? recovery. ??? ????? ????????? ??? "?????????????? ????-
?????????????". ?? ????? ????????? recovery ??????????? ??? ????????, ??????? ????? ???? ? ????? ?????? (????????, ????????? ??-?? ??????????-
??? ??????????), ? ???? ?????? ??????????? ??? ??????? ?????????????. ????????? recovery ?????? ???? ??????????? ????? ?????????????? ? ????-
???? ? restore, ?????? ??? ??????????? ? ? ?????? ?????????. ????????, ???? ?????? ??????? ???? ????????? ??????????? (????????, ??????? ???????), ?? ??? ????????? ?????? ??? ???? ?????? ? ??????????????? ?????????. ?????? failure (????) ?????? ???????? ???? ? ?????? ???? ??????, ????????, ????????? ?????? ?? ?????, ?? ??????? ???? ??????????? ???? ??????. ???????????? ??????? ? ??????????? ????? ??????? ??? ???? ???????? ? ??????? ?????????, ? ??? ????? ?????????? ?????????????? ?????? ???? ??????. ?????? disaster (??????????) ???????? ???????????????? ????? ???????, ??-
??????, ??-?? ?????? ??????????, ??????, ?????????? ? ?. ?. ??? ?????????-
????? ? ?????? ?????? ????????????????? ?????? ??? ???????? ??????? ????-
?????? ???????????? ??????? ? ??????????? ??????????? SQL Server, ? ??-
??? ??? ??????????? ?????????????? ??????? ??? ??????. √лава 6 19
6
????? ???? ?????????????? ?????? ???????? ????????? ???????: 1. ??????? ???????????? ????????? restore ? ??????????? ?????????? ???-
?????????????? ? ????????. ?? ?????? ???????????? ?????? ?????? ??-
??????? ?????, ? ??? ????? ????? ?????????? ?????????????? ?????????? ????????? ????? ? ????????? ????? ???????? ??????????. ??????????? ???????? ????? ????? ? ???? ??????????? ?????? (data copy phase). 2. ???? ???????????? ????? ?????????????? ???????? ??????????, ?? ???-
?????? ????????? SQL Server ?????????? ? ???? ?????? ??? ???????-
??? ? ??????????? ??????????? ?? ??????? ??????????. ??? ???????? ??-
???????? roll forward (??????????). ??? ???? ?????????? ????? ??????? (redo phase), ? ??? ?????? ????? ?????? ? ???? ?????????? (roll forward step). 3. ?????? ? ???????? SQL Server 2005 Enterprise Edition ????????????? ??-
????????? ?????? ? ???? ??????. ???????? ??????? ?? ???? ????? ? ??? ????? ??????????? SQL Server 2005. ??? ????? ???? ???????? ? fast recovery (??????? ??????????????). ???? ?? ???????????? ?????????? ??-
???????? ? ??????, ?????????? ?????????????? ????????????, ?? ???-
??? ??? ????? ?????? ?? ???? ????????? ??????????. 4. ????? SQL Server ???????????? ? ??????? ??? ????????????? ?????????? ? ???????? ??. ??? ???????? ?????????? rollback ? ????? ??????????, ? ??? ???? ?????????? ?????? ?????? (rollback phase). 5. ????? ????? ? ???? ?????? ??????????? ?????? ? ??????? ?????? ?? ???? ??????? SQL Server. ??????? ??? ????????? ????????, ????????? ? ????????? ?????????????? SQL Server 2005: ??? ?????????????? ?? ?????? ???????????? ?? ?????? ????????? ?????, ??????? ???? ??????? ? ?????? SQL Server 2005, ?? ? ??, ??????? ???? ??????? ?? ??????? 7.0 ? 2000. ?????????? ?? ?????? 2005 ?????????? ??-
???????????. ???????, ????? ??????????? ??????? ????????????? ??? ??? ???? ??????? ?????????? ??? ??????; ????????? SQL Server 2005 ??????? ??????????? ????? ??????????? ? ?????????????? ?? ???????? ???? ??????. ?? ????? ???? ????? ?????????-
????? ????? ??????????? ?????? ?????, ????? ? ???? ?????? ????????? ???????? ?????, ? ????????????????? ???????? ?????? ????????? ? ????-
?????? ?????? (offline). ??????? ?? ????? ???? ???????????? ???????? ? ?????????????????? ???????, ???????, ?? ??????; ? SQL Server 2005 ?????????????? ?????????????? ???????? ???????????? ?????? ? ?????? ??????; –езервное копирование и восстановление баз данных SQL Server 2005 19
7
?????????? ? ??????????????, ??? ? ?????????? ? ????????? ????????-
???, ???????????? ? ????????? ??????? ???? ?????? msdb
. ???????????? ??????? restorehistory
, restorefile
? restorefilegroup
. 6.5. ѕодготовка к восстановлению ????? ??????????????? ???, ?????? ?????, ??????????? ?????????? ????????? ???????????????? ????????. ??????, ??? ????? ???????, ? ??? ????????? ????????????? ?????? ? ???? ??????, ?????????? ??????????????. ??? ????? ??????? ??????? ?????- ????: ??? ??????????? ??? ?????? ?????????? ?????????? ??? ????????? Restrict Access (?????????? ??????) ??????? ???? ?????? ???????? Restricted
. ???? ?? ???????????? ????? ???? ?????? ????? ???????????? ? ??????? dbo
, ?? ??? ????? ????????? ????? ?????????? ???????? Single
; ???? ?? ??????? ??????? ?????? ???? ??????? ???? ??????, ?? ????? ???-
??? ?? ????? ?????????????? ????????? ??????? ?????? ? SQL Server. ??? ????? ?????, ????????, ?? ????? ?????????????? ????????? ???????? TCP/IP ? ?????????? SQL Server 2005 Network Configuration ? SQL Server Configuration Manager. ???? ? ???? ?????? ? ????????? ?????? ?????????? ????????????, ?? ?? ?????????? ???????? ???????. ????? ????????? ???, ??? ???? ?????? ?????????? ????????? ??????, ??? ???????? ?? ???????? ?? ???????. ??? ??? ???? ????? ?????????? ? ??????- ??? suspect (??????????????) ??? ? ?????????? ?????? offline (?????????? ? ????????? ????? ???????????, ????????, ?? ?????????? Dat?bases ? Management Studio). ???? ???? ?????? ????????? ? ?????????? ??????, ?? ????????? ?? ?????????????? ??? ?? ???????. ? ???? ???????? ????? ??????? ????? ? ??????????? (detach) ???????????? ???? ?????? ? ?????????? ???-
??????????? ? ????????? ????? ???, ??? ????? ??? ???? ?????? ??????????? ?? ??????? ??????. ???????, ??? ??? ????, ????? ??????????? ???? ??????, ??-
???????? ??? ?????????????? (suspect), ?? ?????????? ??????? ????????? ? ????????? "?????????? ?????????????" (emergency): ALTER DATABASE db1 SET emergency; ???? ???? ?????? ????????? ? ??????? ??????, ? ????? ? ??? ????, ?? ?????, ???????, ???????????????, ?????? ??? ????, ????? ?????? ????????? ????? ???? ???? ?????? ? ??????? ?????????? (??? ?????? ??????? ?????????? ? ??????????? ?? ????????). √лава 6 19
8
????? ????, ??? ?????? ????????????? ? ???? ?????? ??????, ????????????? ????????? ????????? ????? ????????? ?????. ??? ????? ????? ???????????? ????????? ???????: RESTORE FILELISTONLY
? ?????????? ?????????? ? ?????? ?????? ? ???-
????? ??????????, ??????? ???????? ? ?????? ????????? ?????. ??? ?????????? ??????? ?? ??????? backupfile
???? ?????? msdb
; RESTORE HEADERONLY
? ?????????? ?????????? ?? ????? ????????? ??-
???, ?? ????, ????????, ??????? ???????? ? ??????? ??????????? ? ?. ?. ??? ?????????? ??????? ?? ??????? backupset
???? ?????? msdb
; RESTORE LABELONLY
? ??????? ????????? ?????????? ? ????? ????????. ? ???????? ????? ????? ??? ?????????? ??????????, ?? ????? ?????-
?????? ? ??? ??????. ?????????? ??????? ? ??? ????? ? ?? ??????? backupmediaset
???? ?????? msdb
. ?????? ?????????? ??????? ?? ???????? ?????????? ? ????????? ????? ????? ????????? ???: RESTORE FILELISTONLY FROM backupdevice1; ???????, ?? ?????? ?????????? ? ???????? ? ???????? ?????????? ????????-
??? ? ???? ?????? msdb
? ????????. 6.6. ѕроведение восстановлени¤ ????? ???? ??? ?????????? ?????????, ????? ?????????? ? ?????? ??????-
????????. ????????? ?????????????? ????? ??? ?????? ???????????? ??-
???????? Management Studio (??????????? ???? Restore Database ??? ???-
??????? Databases ??? ??????????? ???? Tasks | Restore ??? ?????????? ??-
?? ??????) ??? ??? ?????? ??????? RESTORE
. ??? ??????, ?????? ???????????, ??????? ???????????? ??????????? ?????????, ? ???????? ??-
???????? ? ??? ?????????? ??????? RESTORE
, ??????? ??? ?????????????: Destination to restore ... To database (?????????? ?????????????? ... ? ???? ??????) ? ???, ???????, ??? ????????????????? ???? ??????. ???????? ????????, ??? ?????? ?????? ???? ?????? ?? ?????? ?? ?????? ?????? ???? ???. ? ???? ?????? ?? ????????? ????? ?? ??????? ????? ??????? ??-
??? ???? ??????. ? ????????? ??????? ????? ???? ?????? ???????????? ????? ???????????? ???? ?????? ??? ?????? ??????, ? ????? ??? ????-
????????? ?????? ???? ?????? ???????, ? ??????????????? ?????????-
????, ???????? ?? ?????? ????????. ??????? ?? ?????????????? ???? ?????? ? ????? ??????? ???????? ????? ????????? ???: RESTORE DATABASE db2 FROM DISK = 'D:\SQLBackups\BackupFile1.bak'; –езервное копирование и восстановление баз данных SQL Server 2005 19
9
??? ???? ????????? ????? ?????? ????? ???? ??????? ??? ???? ?????? db1
, ? ?? db2
; To a point of time (?? ?????? ???????) ? ????????? ?????? ???????????-
??? ?? ???????????? ?????? ???????. ?????? ???????????? ?????? ? ??-
??????, ????? ???????????? ???????? ?????? (????????, ?????? ?????? ??????) ? ?? ?????? ????????, ????? ??? ?????????. ???????????? ?????? ??? ?????????????? ???????? ??????????. ???? ????????????? ?????????-
???? ????????? STOPAT
??????? RESTORE
, ????????, WITH STOPAT = '01/06/2006 12:14:24'
. ??? ??????? RESTORE
????? ??????? ??? ??? ????-
?????: ?????????????? ?? ????? ??????????. ?????? ????? ?????????? ???-
???????? ????? ??????????? ??????????? ???????? (?????????? ??-
????????? ?? ?????????????, ??????? ??? ???????? ???????? ?????? ? ?. ?.). ??????? ????? ?????????? ????? ????? ??????: BEGIN TRAN mark1 WITH MARK; COMMIT TRAN; ??? ?????????????? ??????????? ???????????? ???????? WITH STOPATMARK = 'mark1'
, ????? ???????????? ????? ?? ???? ????? ??? WITH STOPBEFOREMARK = 'mark1'
??? ????????? ????? ????? ???? ??????; ?????????????? ?? ????? ?????????????????? ? ??????? ?????????? (log sequence number, LSN). ????? LSN ???? ? ?????? ????????, ????-
??? ????????????? ? ??????? ??????????. ? ?????????, ???????????? ?????????? ??????????? ?????? ?????????? ? ????? LSN ??? ???????-
???, ? ??????? ???????? ????????, ??????????. ??? ???? ???? ??????-
?? ???????????? ??????? ??????? ????, ????????, Lumigent Log Explorer. ????? ???? ??? ????? LSN ??????, ????? ???????????? ?? ?? ????????? STOPATMARK
? STOPBEFOREMARK
, ?? ????????? ????? ??????? ??????, ????????: RESTORE LOG db1 FROM DISK = 'D:\SQLBackups\BackupFile1.bak' WITH STOPATMARK = 'lsn:120'; From database (?? ???? ??????) ? ??? ??????????? ????????? ????? ????? ?????????????? ??????? ?????????? ??????????? ?? ?????? ???? ?????? msdb
. ? ?????? ????? ??????? ?? ?????? ??????? ???? ??????, ?? ? ?????? ???? ??????, ??????? ???? ?? ???? ???????; From device (?? ??????????) ? ??? ??????????? ??????? ??????????????? ????????? ????? ????. ??? ??????????? ???????????? ? ??? ?????????, ??-
??? ??? ????? ???????????? ???? ?????? ?? ?????? ?????? ??? ???????-
???????? ????????? ????? ??????????. ? ????? ?????? ??? ??????????? ??????? ?????????? ?????????? ?????????? ???????????, ???????? √лава 6 200 ????????? ??? ???? ?? ?????. ??? ???? ??????????? (????????? ?????? ? Enterprise Edition ? ?????? ??? ?????? ?????????????? ???? ???- ???) ? ???????????? ? ???????? ????????? ?????? ???? ?????? (database snapshot); Select the backup sets to restore (??????? ????????? ????? ??? ??????-
????????) ? ? ???? ?????? ??? ??????????? ?????????? ?????? ???????? ??? ????????? ?????, ??????? ?? ?????????? ????????????. ???????? ????????, ??? ?????? ????? ????????? ???????? ?????????? ????????? ?????. ? ???? ?????? ??? ?????? ????????? ????????? ????? ????? ??-
??????? ????????? ??????? RESTORE
. ??? ?????? ????? ?? ?????? ????? ???????? ????????? ?????????????? ?????????? ? ????????????????? ????????? ?????? (???? ?????????? ?????? ??????): ? ??????? ?????????? ???????????, ? ??????? ????????? ?????, ? ????????????, ??????? ?????????? ??? ???????????, ? ?. ?. ?????????????? ? ????? ?????? ????????? ?????????????? ???????????? ?? ??????? Options ???? ?????????????? ???? ?????? Management Studio: Overwrite the existing database (?????????????? ???????????? ???? ??????) ? ????????????? ?????? ????????? ???????????? ?????????-
??? ???? ??????. ?????????? ?? ???????? ????????, ??????? ???????? ?? ????????? ?????? ?????? ? ?????? ?????????? ??????????????. ????? ???????? ????????????? ???: ????????? ??????????????? ????????? ????? ????? ???? ?????? ?? ??????, ???? ??? ???? ?????? ?? ??????? ???? ???? ???? ??????; ????????? ?????????????? ?????, ??????? ????????? ? ????? ??????, ??????????? ? ?????????? ?????? (offline), ?, ????? ?????, ?????? ????? ?????, ??????? ?? ????????? ? SQL Server; ????????? ??????????? ?????????????? ???? ??????, ???? ?? ??? ????-
???? ????? ??????? ??????????, ????????? ??????????? ??????? ??? ?? ????????????? (tail-log). ??? ????? ????????, ??????? ????????? ?????? ? SQL Server 2005. ????? ??? ???????? ????????, ????? ?????????? ????????? ?????? ??? ???????????? ???????? WITH REPLACE
? ??????? RESTORE
; Preserve the replication settings (????????? ????????? ??????????) ? ??-
??????? ????????? ?????????? ??? ??????????????. ????????????? ????-
????? KEEP_REPLICATION
??????? RESTORE
. ?????? ???????????? ?????? ??-
???, ????? ???? ?????? ???????????? ????????? ? ? ??????????, ? ? ????-
?????????? ???????? ???????? (log shipping). Prompt before restoring each backup (???????? ??????????? ????? ???-
??? ???????????????) ? ???????? ??????????? ????? ??????????????? –езервное копирование и восстановление баз данных SQL Server 2005 201 ?????? ????????? ????????? ????? ?? ?????????? ???? ??????. ?????? ???? ???????? ???????????? ?????? ?????, ????? ?????? ????? ????? ?? ????? ????????? ?????????, ? ??? ????? ?? ??????. ???? ???????? ???-
?? ????????? ?????? ?? ??????????? ?????? Management Studio, ????????? ? ???? Transact-SQL ??? ?????????????? ?????? ????????? ????? ??? ???????? ???????????? ???? ??????????? ??????? RESTORE
; Restrict access to the restored database (?????????? ?????? ? ?????????-
???????? ???? ??????) ? ????? ?????????????? ?????? ????? ?????? ?????? ?????? ???? ???? ?????? db_owner
? ?????? ????????? ????? dbcreator
? sysadmin
. ???? ???????? ?????? ??????????? ? ??? ???????, ????? ????? ?????????????? ???? ?????? ??? ?????????? ?????????? ??-
???????????? ???????? ??? ?????? ???????????. ??? ????????????? ????-
???? ??????? RESTORE WITH RESTRICTED_USER
; Restore the database files as (???????????? ????? ???? ?????? ???) ? ????? ?????? ????????, ??????? ????????? ?????????? ????? ???? ??? ????????????????? ?????? ??? ??????. ??? ???? ?? ????????, ????????, ? ??? ?????????, ????? ?? ???????????????? ???? ?????? ?? ?????? ??????, ?? ??????? ???????????? ?????? ???????? ??-???????. ????? ?????? ? ??????? RESTORE
????????????? ???????? MOVE
, ????????: RESTORE DATABASE db1 FROM DISK = 'D:\SQLbackups\BackupFile1.bak' WITH MOVE 'db1' TO 'D:\db1.mdf', MOVE 'db1_log' TO 'D:\db1_log.mdf'; ????? db1
? db1_log
? ??? ?????????? ???????? ?????? ???? ?????? ? ??????? ?????????? ??????????????, ? 'D:\db1.mdf'
? 'D:\db1_log.mdf'
? ??? ????? ????? ??? ??????, ??????? ????? ????????????? ? ????????? ?????; Recovery state (????????? ??????????????) ? ??? ???? ????????? ????-
????, ??????? ??????????, ????? ?? ???? ?????? ??????? ??? ??????????-
??? ????? ????????? ?????????????? ? ????????. ? ????? ???????????? ??? ????????: WITH RECOVERY
? ?????????????? ? ??????? ??????. ????? ????????? ?????????????? ???????? ????????? RECOVERY
, ??? ????????????? ????-
?????? ????? ????????, ? ? ????? ???? ?????? ????? ??????? ??? ????-
?????????. ???? ???????? ???????????? ?? ?????????; WITH NORECOVERY
? ????? ????????? ???????? ?????????????? ? ??????-
?? ????????? RECOVERY
?? ????????. ???? ?????? ????????? ? ????????? ????????? ??????????????. ???? ???????? ???????????? ?????, ????? ????? ?????????????? ????????? ????? ?? ?????? ???????????? ?????-
????????? ?????, ????????, ????? ?????????????? ?????? ????????? ????? ???????????? ????????? ????? ??????? ??????????; √лава 6 20
2
WITH STANDBY
? ????????? RECOVERY
????????, ?? ??? ?????????? ? ???? ?????????? ????????????? ??????????? ????? ???????? ? ???? ?????? (??? ????? ????? ???????). ? ?????????? ???????????? ?????? ?????????? ? ??????????????? ???? ?????? ??? ?????? (????????, ??? ???????? ???????), ?? ? ?? ?? ????? ??????????? ??????????? ???????-
??? ????????? ????????? ????? ???????? ??????????. ????? ??????? ???????????? ?????? ?????? ??? ?????????? ?????????????? ???????? ???????? ?? ????????? ?????? (log shipping). ??? ? ? ?????? ? ???????? BACKUP
, ????????? ??????????? ??????? RESTORE
???????? ?????? ?? ???? Transact-SQL. ??? ????????? ?? ??? (????????, ??? ??????????? ?????????????? ?? ????? ?????????? ??? LSN) ??? ??????????. ????? ???????????? ??? ????????? ??????????, ??????? ?????? ??????? ??? ?????? ???????????? ??????????: PAGE
? ???? ???????? ????????? ??????? ???????????? ???????? ? ???? ??????, ??????? ????? ?????????????????. ??? ????? ??????????? SQL Server 2005 ????? ??????????? ? ????. 6.7.2; CHECKSUM | NOCHECKSUM
? ????????? ???????? ??? ????????? ???????? ??????????? ???? ??? ??????????????. ?? ????????? ????? ???????? ????????????, ? ? ?????? ????????? ??????????? ?????????????? ??????-
?????? ? ???????? ????????? ?? ??????; CONTINUE_AFTER_ERROR | STOP_ON_ERROR
? ????? ?? ??????????? ?????????-
????? ? ?????? ??????????? ?????? ? ??????????? ?????. ?? ????????? ?????????? ???????? STOP_ON_ERROR
; MEDIANAME
? ????????? ??????? ??? ????????, ? ???????? ???????????? ??????????????. ???????????? ?????? ??? ?????????????? ????????; MEDIAPASSWORD
? PASSWORD
? ??? ?????? ???? ?????????? ??? ??????????? ??????? ?????? ??? ???????? ? ????????? ????? ??????????????, ??????? ???? ???????????? ??? ????????? ???????????. ??? ????????? ????? ??????? ??????? ? ????????? ?????????????? ????????. ???? ?? ???????-
???? ?????????????? ????????? ????? ?? ?????? ?????? (?? ????????? ? ????, ?? ??????? ???? ??????? ????????? ?????), ?? ?????? ????????? ?? ?????; PARTIAL
? ??????????, ??? ? ???? ??????? ?????? ?????????????? ????? ????????????? ?????????????? ?????? ????? ???????? ?????? (???? ??-
??????? ??????????? ????????????? ?? ???????? ???????). ????????? ?????????????? ???? ?????? ?? ?????? (?. ?. ?? ???????? ???????) ????-
?????? piecemeal restore; RESTART
? ????????? ?????????? ???????? ?????????????? ? ???? ?????-
??, ????? ??? ???? ???????? (????????, ?????????? ???????? ????????? ???????? ? ????????); –езервное копирование и восстановление баз данных SQL Server 2005 20
3
REWIND | NOREWIND
? ??????????? ?? ????? ????????? ?????????????? ??-
??????? ????? ? ????????? ??? ???. ?? ????????? ???????????? ???????? REWIND
, ?. ?. ???????????; STATS
? ??? ??, ??? ? ??? ??????? BACKUP
, ???? ???????? ?????????? ???-
???? ????????? ?????????????? ?????????. ?? ????????? ?????????? ? ???? ?????????????? ????????? ????? ?????????????? ?????????????? ?????? 10% ????????? ?????; UNLOAD | NOUNLOAD
? ????????? ???????? ?? ????????? ????? ????????? ?????????????? ??? ???. ?? ????????? ???????????? ???????? UNLOAD
, ?. ?. ?????????. UNLOAD
???????? ? ???? ????? ? ????????? ????? ?? ??????, ??????? ?????? ? ?????????? REWIND
?????????????? ?? ?????. 6.7. —пециальные ситуации восстановлени¤ 6.7.1. ¬осстановление базы данных в оперативном режиме ?? ???? ?????????? ??????? SQL Server ????? ???? ????????? ?????????-
????? ???? ??????, ?????? ???????? ?? ??? ???? ?????????????. ? SQL Server 2005 ????????? ????? ??????????? ? ?????????????? ?? ?????????? ???? ??????. ?????? ???????? ?????? ???? ?????????????? ? ??????????? ?????????????? (online restore). ???????, ?? ???????? ???????? ?????? ??? ??????????? ??????? ??????????-
??? ?? ???????. ??? ?????????????? ?? ?????????? ???? ?????? ??? ? ????? ?????? ???????? ????????? ? ?????????? ????? (offline) ??? ???? ??? ?????-
??? ??????, ?????????????? ???????? ?? ??????????? ? ?????? ??????. ????????? ????? ??? ???????? ?????? ????? ?????????? ? ??????? ??????. ??? ?????????????? ?? ???????? ???? ?????? ????????????? ? ?????? ????-
???????: ????????? ??????????? ?? ?????????? ???? ?????? ????? ?????????????? ?????? ??? ??? ??????, ??????? ???????? ? ?????? ?????????????? Full ??? Bulk-logged; ??????????? ?????????????? ??????? ????? ???? ?????? ??? ????????? ???????? ?????? (? ??????? ????????? ????????? ??????? ? ????? ???-
??????? ??????) ??????????? ??????. ???? ??? ????????, SQL Server ????????????? ????????? ????? ??????????-
?? ?????????????? ??? ?????????????? ????????? ??????, ???????? ????? ? ?????????? ?????????????? (?? ?? ??? ??????? ?????????????? ???? ???? ??????). ???? ?? ?????? ????????? ?????????? ???????????? ?????????????? √лава 6 20
4
? ??????????? ?????????????? ??????, ???????? ????? ? ????????? ??????? ? ??????? ?????????? ??????, ?? ????? ????? ??????????????? ????????? ??????? BACKUP LOG WITH NORECOVERY
. ??? ???????, ??????? ?????? ???????-
???? ?????? ??? ????????????? ?????????????? ???????? ???????? (log shipping), ????????? ??????? ????????? ????? ??????? ?????????? ? ????-
????? ???? ?????? ? ??????????? ????????? RESTORING
. ? ???? ????????? ???-
??? ? ???? ?????? ????????????? ????? ??????, ? ?????????????? ????? ???-
?????????? ?????? ? ?????????? ??????. ????????? ?????? ??? ?????????? ???????????? ?????????????? ????? ?? ?????????? ?? ????????. ????????, ????? ? ??????????? ?????? ????????-
???? ???? db1file2
, ??? ???????????? ? ?????????? ?????, ????? ??????-
?????? ????????? ???????: RESTORE DATABASE db1 FILE = 'db1file2' FROM DISK = 'D:\SQLBackups\BackupFile1.bak' WITH NORECOVERY; RESTORE LOG db1 FROM DISK = 'D:\SQLBackups\BackupLogFile1.bak'; 6.7.2. ¬осстановление отдельных страниц базы данных ??? ???? ????? ??????????? SQL Server 2005, ????????? ? ?????????????-
??, ? ?????????????? ????????? ??????? ?????? (page restore). ?????? ? ????????? ????????? ????? ?????? ?????????????? ???? ???? ?????? ??? ?????-?? ??????, ???????????? ??????????????? ???? ????????? ???????. ??? ????????: ?????????? ?????; ?????????? ?????????????? ? ??????????? ??????, ??? ?????????? ????-
????????? ?? ???? ??????. ???????????? ??? ????????????? ????? ?????? ????????????????? ????????. ???? ????? ?????? ?? ????????? ??? ?????? ????????? ??-?? ????? ?????? ??? ???????? ????????????. ??????? ????? ????? ??????????????? ????? ?????????, ??? ? ???????? ??????????? ??????? ? ??? ??? ? ???????. ?????????????? ????????? ??????? ???? ?????? ????? ??????????? ?????? ??? ?????????? ????????? ???????: ?? ??????????? ???????? Enterprise Edition; ????????????????? ???????? ?? ????????? ? ??????? ??????????, ? ???-
?????? ????????? ???? ?????? ? ? ?????????????? ?????????; ???? ?????? ???????? ? ?????? Full ??? Bulk-logged; ???????? ??????, ? ??????? ????????? ????????????????? ????????, ???????? ? ?? ??????, ? ?? ??????. –езервное копирование и восстановление баз данных SQL Server 2005 20
5
??? ???????? ????????? ?????????????? ????????? ??????? ???? ??????? ??????? ???????? ?????? ?????: 1. ??????? ?? ?????????????, ??? ????????? ???????? ? ???? ?????? ??-
????????. ????? ?????????? ????? ???????? ??? ????????? ???????? ??????? SQL Server, ??? ?????? ?????? DBCC (????????, DBCC CHECKDB
) ? ?????? ??? ?????? ??????? ?????????, ??????? ???????????? ??????-
????? ??????????. ??? SQL Server ???????? ???????????? ???????? ??? ?????? ??????? ??????????? ???? ??? ??????????? ???. 2. ????? ??????????????? ??? ????? ???????? ?????????? ? ??????? ??-
?????????? ??????? ? ??????? ??????, ? ??????? ??? ???????? ???????-
??. ??? ?????????? ???????? ? ??????? suspect_pages
???? ?????? msdb
(??? ????????? ? ??? ??????? ?????????????). ?????? ??????? ????????? ? ??????? page_id
, ? ?????? ?????? ? ? ??????? file_id
. ???? ????????, ??? ? ??????? suspect_pages
?? ????? ???? ????? 1000 ???????. ?? ???????-
??? ????? ??????? ?????? ? ??????? ?????? ????????????. ??????? ????-
????????? ? ?????? ??????????? ??????????? ??? ?????? ????? ??????-
???????? ???????? ??? ???????. 3. ????? ?????????? ??????? ?? ?????????????? ???? ??????, ????????: RESTORE DATABASE db1 PAGE = '1:51, 1:52, 1:55' FROM DISK = 'D:\SQLBackups\BackupFile1.bak'; ?? ????????? ?????????????? ??????????? ? ??????????? ??????, ??? ??-
???????? ????????????? ?? ???? ??????. ?????? 1000 ???????????? ????-
??? ??????????????? ??????. 6.7.3. ¬осстановление системных баз данных ? ????????? ????????? ????? ????????????? ?????????? ?????????????? ????????? ???? ?????? master
, ? ??????? ???????? ????????? ?????????? ????? ??????? (????????, ?????????? ? ???????, ???????????????? ????? ??????, ?????????? ??????? ? ?. ?.). ????? ??? ??? ??????????? ?????????????? ???? ?????? master
, ????????? ?? ?????????????? ????????????. ???? ?????????? ?? ?????? ??? ???? ???-
???, ?? ? ???????????????? ???? ??????, ?? ???????? ????? ? ???????? ??-
??? ?????? ?????????????? ???? ??????, ? ????? ???????????? ????????????-
???? ???? ?????? ? ????????? ?????. ???? ?????????? ???? ?????? master
, ? ???????????????? ???? ?????? ?? ??????????, ?? ????? ?????? ? ???, ????? ?????????????? ?????? ??? ??????????? ???? ?????? master
, ? ????????????-
???? ???? ?????? ????????????. ????? ??????? ????? ???????? ????????. √лава 6 20
6
?????????????? ???? ?????? master
?????????? ?? ?????????????? ??????? ??? ?????? ?????????? ?????????????: ??????????? ?????????????? ???? ?????? master
????? ?????? ????? ??-
????????? ??????? ? ???????????????????? ??????. ????? ????? ??????? ???, ???????? SQL Server ?? ????????? ??????. ??? ????? ????? ??????? ? ???????, ? ??????? ????????? ???? sqlservr.exe (?? ????????? ??? C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn), ? ????? ??-
??????? ???????: sqlservr.exe -m ???? ???? ?????? master
??????????, ?? ?????? ?????? ????? ?? ?????-
??????. ? ???? ??????, ????? ???-???? ????? ???? ????????? ?????? ? ?????????? ????????? ??????????????, ????? ??????????? ???? ?????? master
. ??? ???????????? ???? ?????? master
???????????? ? ?????? ??-
??????? ????????? (????? ?????? ??? ?????? ??? ??????????). ? ?????-
????? ??????? SQL Server ??? ???????????? ???? ?????? master
??????-
???????? ??????????? ??????? rebuildm
. ? SQL Server 2005 ??? ???? ???? ???????????? ????????? ????????? SQL Server; ??? ???? ?????? master
???????? ?????? ???? ??? ?????????? ????????-
??? ? ?????? ????????? ??????????? ???? ???? ??????. ??????? ??????-
?????? ?? ?????? ?????? ??? ???? ?????? master
???????. ????????? ??-
????????? ? ?????????????? ???????? ??????????, ? ????? ????? ?????? ???????? ?????????????? (??????, ???????? ?????, ????????? ??????? ? ?. ?.) ??? ???? ???? ?????? ?? ?????????????; ????? ?????????????? ???? ?????? master
?????? ????????????? ??????-
????????. ????? ???? ??? ?????????????? ???? ?????? master
??????????, ????? ????-
????????? ?????????, ?? ???????? ?? ?????-?? ??????? ?? SQL Server. ????? ???????????? ????????: ? ????????. ??? ???????? ????? ???????????? ???????? ????????? sp_validatelogins
; ? ?????????????? ??? ??????. ???????? ????? ?????????? ??? ?????? ???????: sp_change_users_login @Action = 'Report'; ?? ??????? ??? ?????? ?? ???????. ???? ?????-?? ???? ?????? ? ?????? ???, ?? ????? ?? ???????? ?? ?????, ??? ???? ?????? ????? ?????? ???-
????????? ? ???????. ???? ?? ????????? ???????????? ???? ?????? master
, ?? ????? ?????????? ?????????????? ???? ???? ?????? ??????????? ????? ?????????? ?????????-
–езервное копирование и восстановление баз данных SQL Server 2005 20
7
????? ??? ?????? model
? msdb
. ? ?????????, ????????? ??????????? ? ???-
??????????? ???? ??? ???????????? ??? ??, ??? ? ????????????????. ?????????? ????????? ??????????? ???? ?????? tempdb
??????????. ??-
??????? ??? ???? ?????? ????????? ?????? ??? ?????? ??????? SQL Server, ?? ??????????????? ?? ?? ?????. «адание дл¤ самосто¤тельной работы 6.1. –езервное копирование и восстановление базы данных ???????: 1. ?????????? ???? ?????? AdventureWorks
? ????? ?????????????? Full. 2. ???????? ?? ????? C: ??????? Backup ? ??????????? ? ???? ?????? ??????-
??? ??????????? ???? ?????? AdventureWorks
. ???? ????????? ????? ???-
??? ?????????? AdventureWorksFull.bkp. 3. ????????? ?????????? ????????? ??????????? ???? ?????? AdventureWorks
. ???? ????????? ????? ?????? ?????????? AdventureWorksDiff.bkp. 4. ????????? ????????? ??????????? ??????? ?????????? ???? ?????? AdventureWorks
. ???? ????????? ????? ?????? ?????????? AdventureWorksLog.bkp. 5. ??????????? ???????????????? ?????????????? ???? ????????? ???? ??-
??????? ?????. ??? ????: ?????????????? ?????? ????????????? ??? ????? ???? ?????? AdventureWorks1
; ????? ???? ???? ?????? ?????? ?????????? ? ???????? ???????? ???-
?? C:. ???????: ? ?????? ??????? ???????????? ?????? ??????? Transact-SQL. ?????? ??? ???????? ????? ????????? ? ?????????? ???????????? ?????????? SQL Server Management Studio. ? ?????? 1 ??????? ? ??????? ???? ?????? AdventureWorks
? ????? ??????-
???????? Full: 1. ??????????????? ??????? ????? ????????? ???: ALTER DATABASE AdventureWorks SET RECOVERY FULL; √лава 6 20
8
? ?????? 2 ??????? ? ?????????? ??????? ?????????? ??????????? ???? ?????? AdventureWorks
: 1. ??????? ?? ?????????? ?????????? ??????????? ? ???????????? ? ??????-
??????? ????????? ????? ????????? ???: USE master; GO BACKUP DATABASE AdventureWorks TO DISK = N'c:\Backup\AdventureWorksFull.bkp' WITH NOFORMAT, NOINIT, NAME = N'AdventureWorks-Full Database Backup'; GO ? ?????? 3 ??????? ? ?????????? ??????????? ?????????? ???????????: 1. ??? ??? ?????????? ??????????? ?????????? ??????????? ????? ???? ?????????: BACKUP DATABASE AdventureWorks TO DISK = N'C:\Backup\AdventureWorksDiff.bkp' WITH DIFFERENTIAL, NOFORMAT, NOINIT, NAME = N'AdventureWorks-Differential Backup'; ? ?????? 4 ??????? ? ?????????? ?????????? ??????????? ??????? ???????-
???: 1. ??????????????? ??? ????? ???? ?????: BACKUP LOG AdventureWorks TO DISK = N'C:\Backup\AdventureWorksLog.bkp' WITH NOFORMAT, NOINIT, NAME = N'AdventureWorks-Log Backup'; ? ?????? 5 ??????? ? ?????????????? ????????? ????? ? ?????? ???? ???-
???: 1. ??????????????? ??? ????? ???? ?????: USE master; GO RESTORE DATABASE AdventureWorks1 FROM DISK = N'c:\Backup\AdventureWorksFull.bkp' WITH NORECOVERY, MOVE N'AdventureWorks_Data' TO N'C:\AdventureWorks_Data.mdf', MOVE N'AdventureWorks_Log' TO N'C:\AdventureWorks_Log.ldf'; GO RESTORE DATABASE AdventureWorks1 FROM DISK = N'C:\Backup\AdventureWorksDiff.bkp' WITH NORECOVERY; GO RESTORE LOG AdventureWorks1 FROM DISK = N'C:\Backup\AdventureWorksLog.bkp' WITH RECOVERY; √Ћј¬ј 7 —редства обеспечени¤ отказоустойчивости SQL Server 2005 ? ?????????? ????? ???? ??????????? ???????, ????????? ? ????????? ??-
?????????? ? ??????????????? ??? ?????? SQL Server 2005. ?????? ? ????-
????? ????????? ????? ?????????? ?????????? ??????????? ?????????? ??-
??????????? ???????? ??????????????????. ? SQL Server 2005 ??? ????? ????? ????????????: ???????; ?????????? ??????????? ??? ??????; ?????????????? ???????? ???????? (log shipping). ??? ??????????? ? ????? ??????????? ????? ? ???? ?????. 7.1. –абота SQL Server 2005 в кластере 7.1.1. ѕреимущества кластеров ??? ????????? ??? ????? SQL Server, ?????????? ? ????????, ????????? ???-
??? ? ??????? ??????. ? ????????? ????? ???????? ??????????. ?? ?????? ????????? ???? ????? ?????? ???? ???????? ????????? ?????????? ?????? ? SQL Server, ?????????? ?? ???????????? ?????-??????????. ??? ?? ????? ? ?????? ???????? ?? ????????? ? ??????? ???????????????? ???????. ?? ????? ??????, ? ?????? ??????????????? SQL Server, ??????? ?? ??????-
?????? ? ?????????? ?? ????????, ?????????? ????????? ??????????? ????-
???????? ?? ????????????. ??????? ? ???? ??????? ?? ??????????? ??????-
?????? ?? ?????????, ? ??????? ????? ??????????? ????????, ?? ????????-
????? ? ??????????? ?????????? ???????. √лава 7 210 ??????, ??? ????? ??????? ? ????????? ??? SQL Server ? ??? ?? ????? ???-
???????? ??? ????????? ??????????????????! ????? ??????????? ??????, ??????? ????????????, ??? ??????? ? ????? ???????????, ???????????? ? ???????, ????????? ???????? ??? ?????-?? ???????: ?????????? ?????, ??-
???????? ????????? ??????? ??? ??????? ????????????, ?????? ? ??????? ? ?. ?. ?????? ? ???? ?????? ???? ???? ?????? ? ?????? ?????????. ???? ?? ????????? ??????? ??? SQL Server, ?? ?? ?? ??????? ???????? ???????? ???????? ? ?????????????????? (? ????????, ??????? ??????????). ??????-
?????? ???????, ??????? ???? ??????? SQL Server, ? ??? ??????? ? ????-
??????????????. ????????, ??? ?????????? ???????? ?? ???????? ????? ??????? ? ????? ?????? ???????? ????????? ??????????????: ????????? ??? ???????????? ?????-?? ??????, ???????????? ?? ???????????, ????? ?????. ?????? ??????, ??????? ?????????? ????????: ???????? ? ??? ????? ?? ??-
??????? ?? ???? ????????. ???????? ?? ??????? ???: ?? ?????? ?????????????; ?? ??????? ? RAID-????????; ?? ???????????? ???????? ????????????? ??????????; ?? ?????? ? ??????????? ??????????? ?????? SQL Server 2005. ?????????? ???????? ?????? ?????? ???????? ? ??????? ????????? ????-
?????? ????????? ???????: ??????????? ??????, ??????????, ??????????? ?????, ????, ?? ? ?? ?? ?? ???? ???????. ??? ????????????? ????????? ??????-
???????? ????????????????? ?????????? ? ?????? ?????? ???? ????? ?????-
???????? ??????? ??????? ? ? ?????????????? ??????. ?????? ????? ???????????? SQL Server 2005 ????? ??, ??? ? ???????? ?????? ????? ???????? ?? ?????? ??? SQL Server, ?? ? Analysis Services (???? ???-
??? OLAP), ? ?????? Microsoft Search (?????????????? ???????). 7.1.2. “ерминологи¤ и варианты конфигурации кластера ????????? ??????? ? ??? ??? ??? ????? ?????????? (??????? ?? ???????-
??? ????????????), ??????? ?????????? ? ???????? RAID-???????. ? ????? ???????? RAID-??????????? ??????????? ?????? ???? ????? ???? SCSI (shared SCSI bus), ??????? ???????????? ??????????? ? ???? ????? ?????? ??????? ????????????. ????? ?? ????????, ??????? ?????? ? ???????, ????-
?????? ?????????? ?? ??????????????? ???????? ????????, ??????? ????? ?????????????? ?????? ??? ?????? ??????????? ????? ??????? ????????. ?? ?????? ??????? ?????? ???? ??????????? ??????????? ??????????? Win-
dows Server 2003 Enterprise Edition ??? Datacenter Edition, ? ????? ?????? —редства обеспечени¤ отказоустойчивости SQL Server 2005 211 ???? ????????? ?????? Clustering Services. ? ??????? ??????? ???? ???? ???, ?? ???????????? ??? ????????? ? ??????, ?????????? ? ???????? (????????, SQL Server), ????? ?? ?????-?? ?? ???? ????, ? ??? ???????? ?????????? ? ???????????? ???????, ?????? ???????? ? ???????? ???????. ?????? ??????????? ?? ????????? ????????, ??????? ???????????? ??? ???-
??????: ???? (node) ? ??? ?????????? ?????????, ??????? ?????? ? ???????. ???-
????? ????? ???????? ?? 2, 4, 8 ??? 16 ?????; ??????????? ?????? (virtual server) ? ??? ??, ? ???? ?????????? ????-
???????? ??? ?????? ? ???????????, ????????????? ?? ???????. ?????-
?????? ?????? ????????????? ????????, ? ?? ?????? ??????????? ??????-
????. ????????, ? ????? ???????? ????? ???? ???? (?. ?. ??????????) ? ??????? NodeA
? NodeB
, ??????? ????? ???????????? ?????? ???????????? ??????? ? ?????? SQL1
. ??? ?????? ?? ????? ?????? ???? ? ???????? ????-
????????????? ???????????? ??????? ????? ???????????? ?????? ????; ???????? ???? (primary node) ? ??? ??? ?????????? ??????, ??????? ? ??????? ?????? ????????? ??? ?????? ???????????? ???????, ?????????? ??????? ?????????????; ????????? ???? (secondary node) ? ??? ?????????? ??????, ? ??????? ?????? ??????????? ???? ?????????. ?????? Clustering Services ??????-
?? ?? ???? ?????????? ? ???? ?????????, ??????? ???????? ?? ???????? ???????. ? ?????? ?????? ?? ????? ????????? ??????? ????????? ???? ?????? ?? ???? ??? ???????? ???????????? ???????; ???????????? ????? (failover) ? ??? ????? ????? ????????? ? ????????-
?? ????, ????? ???????? ???????????? ?? ????????? ????. ?????? ?????-
????? ? ?????????????? ?????? ??? ?????? ?? ????? ????????? ????, ?? ????? ???????????? ????? ?????????? ? ???????. ??????? ????? ???????? ? ???? ????????? ????????????: ????????/???-
?????? ? ????????/????????. ???????????? ????????/????????? (active/passive) ???????????? ? ????-
??????? ???????. ? ???? ?????? ? ??????? ?????? ???????? ?? ??????? ????????????? ??????????? ?????? ???????? ????. ????????? ???? ???????-
?? ???? ????????? ? ?? ????? ?????-?? ????????. ????? ???????????? ???????? ???????? ???????? ? ???????, ?? ??? ???? ????????? ?????? ????? ???????-
??? ???????????. ????? ?? ?? ????? ??? ????, ????? ????????? ???????????? ?????-
???/???????? (active/active). ? ???? ???????????? ??? ????, ???????? ? ???????, ??????????? ??? ??????????? ??????? ? ?????? ?? ????? ???????. ??? ???? ??? ????? ?????? ?????? ?????? ????????? ???? ?????????, ? ???-
√лава 7 21
2
??? ?????? ? ??????????. ? ??? ?????? ?????? ?????? ?????? ????????? ???? ?????????, ? ?????? ?????? ? ??????????. ??? ?????? ?? ????? ?????? ?? ????????, ???????? ? ???????, ??? ???????? ????????? ?? ???? ?????????? ??????. ????? ??????? ???????? ????? ???????????, ?? ???????????? ????? ????-
??? ? ????? ????????. ???????????? ????????????? ?????????, ?????? ?? ???? ?????? ??????????? ???????????? ? ????? ???????? ? ?????? ????????-
?????. 7.1.3. ”становка SQL Server 2005 в кластер ????????? SQL Server 2005 ? ??????? ?????? ?????????? ? ????????? ??????-
?? ? ???????????? ???????. ??????? ????? ??????? ?????? ? ????????????? ????????? Windows 2000 ? Windows 2003: Windows 2000 Advanced Server ? Datacenter Server, Windows Server 2003 Enterprise Edition ? Datacenter Edition. ??? ???? ???????????? ?????????? ????? ? ???????? ??????? ?? ???????? SQL Server. SQL Server 2005 Standard Edition ???????????? ???????? ??? ???? ? ????????. ???????? Enterprise Edition ? Developer Edition ??????????-
?? ??????? ?? ???????? ?????, ??????? ???????????? ???????????? ???????. ????????????? ???????????? ??? ???????? ??? ?????????? ? ????? ?????? ???????????? ???????. ???? ????? ??????????? ???, ????? ???????????, ???-
?? ?? ??? ???? ?????????? ?????????? ??????????? ? ??????????? ??????. ???? ??? ?????????? ??????, ?? ????????????? "??????" ??????????? ? ???-
???????? ?????? ???????? ????????? (??? ????? ??????? ??? ?????????? ???-
????????? ???????, ??? ? ?????????? SQL Server ????? ????????? ???????-
??). ?????????? ? ??????? 32- ? 64-????????? ?????? SQL Server 2005 ??-
????????. ????? ????????? ? ????????? ???????? ? ???????????? ??????? ?????????? ????????????? ? ????????? ???????????? ??????? SQL Server 2005 ? ???????. ??? ????? ?????????? ????????? ????????? ????????: ????????? ? ?????????????? ????? ??????? ?????? ???????????? (Windows Cryptographic Service Provider) ? ??????????? ??????? (Task Scheduler); ?????????? ?????? ??????????? ?????????????? ?????????? (Distri-
buted Transaction Coordinator), ???? ??? ?? ???????????, ? ????????? ?? ? ?????????????? ????? ???????. ??? ?????? ?????? ???? ????????? ? ??????? ????????? ?? ????????? SQL Server 2005 ? ???????; ?????????, ??? ?? ???? ?? ????? ???????????? ???????? ?? ???????? ???-
????????? ??????. SQL Server 2005 ?? ????? ???????? ? ???????? ?? ???-
???????? ??????; —редства обеспечени¤ отказоустойчивости SQL Server 2005 21
3
????????? ???????? NetBIOS ?? ???? ??????? ?????????, ??????? ??????-
?????? ??? ?????? ????????? ??????????? ????????. ????? ????? ????? ???????? ??????? ????????? SQL Server 2005, ?? ?? ??-
???? ?????? ??????????? ????? ?????????? ??? ?????? ???? SQL Server 2005 ? ??? Analysis Services ?????? Create a failover cluster (??????? ??????-
?????????? ???????). ????? ??????????? ?????? ?????????? ?? ????? ???-
????????? ???????, IP-??????, ???????????? ????? ????? ? ?. ?. ????????????????? SQL Server 2005, ??????????? ? ????????, ??????????? ?? ?????????? ?? ????????????????? ???????? ??????? (?????? ??? ??????-
????? ??? ???????? ????????? ??? ???????????? ???????, ? ?? ?????????? ?????). ??? ????????, ??????????? ??? ???????? (?????????, ????? ????? ??????????? ? ?. ?.), ??????????? ?????????? ???????????? ???????, ? ?? SQL Server, ? ??????? ????? ??? ??????????????? ?? ?????. 7.2. јвтоматическа¤ доставка журналов 7.2.1. „то такое "автоматическа¤ доставка журналов" ?????????????? ???????? ???????? (log shipping) ? ??? ??? ???? ?????-
?????, ??????? ???????? ???????? ?????????????????? ?????? ?????????? ? ???????? ??????????????. ??????? ?? ?????? ????? ?????: ?? ????? ??????? ????????? (????????, ? ?????????? ? ????????? ?????) ???????????? ??????-
??? ??????????? ???????? ??????????. ????? ??? ????? ???????? ????????-
????? ?????????? ?? ?????? ??????, ??? ?????????? ????? ???? ???? ??????, ? ????????????? ??? ?????????????????. ? ?????????? ?? ?????? ??????? ? ??? ????????? ????? ??????? ???? ??????, ??????? ????? ????????????-
?????? ? ??????? ????? ? ???????? ? ????????? ?????. ??????? ?????????? ?????? ????????? ????? ? ???, ???????, ??????????? ??????????????????. ? ?????? ?????? ???????? ??????? ? ????? ???????????? ????? ????????? ?????, ????????? ????? ?? ????????? ?????. ??????, ? ????-
??? ?? ????????, ?????????????? ????? ????? ?? ??????????. ??? ???????? ??????? ??????? ?????? ????????????? ?? ?????? ? ?????? ???? ??????. ??? ???? ??? ??????????? "?????????" ?????????? ???????????, ??? ?????? ??? ?????? ?????????? ?? ????? ??????. ??? ????? ??????? ?????????? ?????? ???????? (? ??????????? ?? ??????? ????????): ???????? IP-????? ??? ??? ????????? ???????, ???????? ?????? ?? ??????? DNS, ???????????? ????????-
?? ?? ??????????? ?????????????, ????????????? ????????? ?????? ODBC ? ?. ?. ?????? ????? ??????????? ???? ????????, ????? ?? ????? ??????????? ??-
?????? ????????? ??????? ????????, ? ??? ???? ???? ????????? ?????? ??? √лава 7 21
4
?????? ?????????????? ???????? ???????? ???????????? ????????? ????? ??? ?????? ??????? ?? ???? ????????. ????? ??????? ?????? ? ?????? ?????? ??? ?? ????? ????? ????? ???????? ?? ?????????. ????? ??????????????????, Microsoft ?????????? ???????????? ????????? ?????? ? ????? ???????????? ????? ? ??? ?????? ???????? ? ????????? ?????-
??. ???? ? ???, ??? ????????? ????? ???????? ?????????? ????? ?????????-
?????? ?? ?????? ? ??? ?????????? ?????? STANDBY
(??. ????. 6.3.2). ? ???? ?????? ????? ?????????????? ?????? ????? ??????? ?????????? ????????? ???? ?????? ????? ????????????? ??????????? ????????????? ?? ??????. ???-
????????? ?? ??? ???? ????? ???????????? ??? ???????????? ???????? ????-
?????????, ??????? ?? ???????? ?????? (????????, ??? ????????? ???????). ?? ???????? ?? ???????????? ??? ??????????? ???? ?? ???????. ??????? ???-
???: ??? ?????????????? ???????? ?????????? ??????????, ????? ? ???? ???-
??? ?? ???? ???????????????? ???????????. ??? ?????? ??? ????? ????? ?? ?????? ??????? ??????????: ???? ????????? ????????????? ???????? ? ???? ?????? ????????? (? ? ??? ????? ?????????????? ???????? ?????????? ???-
?????????? ?? ?????, ?. ?. ??????????? ????? ??????? ? ????????? ?????? ?????? ????? ?????????????), ???? ????????????? ????????? ????????????? ??? ?????????????? ????????. ???????? ?? ??, ??? ??????????? ????????? ??? ????????? ?????????????? ???????? ???????? ???????? ??? ? SQL Server 2000 (? ? ?????????? ??????? ????? ???? ????????? ?? ??????? ??? ?????? ??????? SQL Server Agent), ????? ??? ?? ???????? ???????????, ??? ?????????????? ???????? ???????? ??????????? ?? ??? ??????? ????????. ???? ????????? ????? ???????????, ?? ?????????????? ????????? ???????????? ?????? ???????? ???????? ?????-
?????. ? ???????? ??? ??????? ? ???, ??? ??????????: ????? ????????; ????? ????????????? (????? ????????? ?????? ??????????, ??? ??? ???-
????? ????????); ?????? ?????? ?? ?????? ????????????? ?? ????????? ???????. ? ?? ?? ????? ???????? ???????? ??????????? ????? ? ????????? ? ? ????-
?????????????, ??? ??????????, ? ?? ?????? ????? ????????????? ? ???????? ?????? ?? ????????? ????????? ????????? ?????????????????? ???????. 7.2.2. “ерминологи¤ доставки журналов ???????? ???????? ??????????????? ??? ???? ??? ????????. ??? ???? ????? ?????? ??? ????????? ???????, ? ????? ?????????? ?? ???, ????????, ?? ??-
??? ???????. ???????? ?????? (primary server, ?????? ???????? ? ??????-????????) ? ??? ??????, ?? ??????? ???????? ??????? ???? ??????. ?? ???? ??????? ??-
—редства обеспечени¤ отказоустойчивости SQL Server 2005 21
5
??? ??????????? ????????? ????? ???????? ??????????. ???? ??????, ??? ??????? ????????????? ???????? ????????, ?????????? ???????? ????? ?????? (primary database). ????????? ?????? (secondary server, ?????? ???????? ? ??????-
??????????) ? ????????? ???? ?????? (secondary database, ???? ?????? ??????????) ? ???, ??????????????, ??? ?????? ? ?? ???? ??????, ?? ????-
??? ????? ????????????? ?????????????? ???????? ??????????. ?????? ??????????? (monitor server) ? ??? ??????, ??????? ????? ??-
????????? ???????? ??????? ? ? ?????? ?????-?? ??????? ????????? ? ??? ??????????????. ???????? ??????????? ????? ??? ??????? ??????? ??-
?????? ??? ????????? ??????. ?????? failover ???????? ?? ??, ??? ? ??? ????????, ? ???????????? ????? ???????, ????? ????????? ?????? ???????? ????? ?????????. ???????? ?????? ??? ???? ????? ????? ????????? ??? ?????? ????? ???? ??????? ?? ????, ????????, ??? ???????. 7.2.3. Ќастройка доставки журналов ????????? ???????? ???????? ????? ??? ??? ?????? ???????????? ?????-
????? Management Studio, ??? ? ??? ?????? ?????? Transact-SQL. ??????? Transact-SQL ????? ??????????????? ?? ?????, ?????????, ??-??????, ??? ??-
???? ?? ????? ????? ? ???????, ? ??-??????, ??????????? ??? ????? ????? ????????????? ????????????? ??? ?????? ?????? Script Configuration (??-
??????????? ????????????) ?? ??????????? ?????? Management Studio. ? ?????????? ?????? SQL Server ??? ????????? ???????? ???????? ??????-
??????? Database Maintenance Plan Wizard ? ?????? ????????? ?????? ?????-
??????? ??? ??????. ? SQL Server 2005 ????? ???????????? ??? ?????? ?? ????? ? ???????? ???????? ???????? ?????????. ????????? ???????? ???-
????? ???????????? ?? ??????? Transaction Log Shipping (???????? ?????-
??? ??????????) ??????? ???? ?????? (???. 7.1). ??? ??????? ????? ??????? ????? ?? ???????????? ???? ???? ?????? ??? ?????? ??????? Tasks | Ship Transaction Logs (?????? | ?????????? ??????? ??????????). ??????????? ?? ???????????? ????????? ???????? ????????: ?????? Enable this as a primary database in a log shipping configuration (???????? ??? ???????? ???? ?????? ? ???????????? ???????? ?????-
???) ?????????? ???????? ???????? ???????? ??? ?????? ???? ??????. ???? ???? ?????? ???????? ? ?????? ?????????????? Simple (??. ????. 4.5), ?? ??????? ?????????? ???? ?????? ???????? ? ????????? ?????????-
??????? ?????????. ????????????? ???????? ???????? ??? ??? ??????, ??????? ???????? ? ?????? ?????????????? Bulk-logged, ????? ?? ????-
√лава 7 21
6
?????????. ????? ????? ???????????? ???????? ???????? ?????? ? ????-
??? Full; ??????? ?? ?????? Backup Settings (????????? ?????????? ???????????) ???????? ? ???????? ??? ?????? ??????????? ???? Transaction Log Backup Settings (????????? ?????????? ??????????? ??????? ???????-
???), ? ??????? ?? ??????? ????????? ????????? ?????????? ??????????? ??????? ?????????? ???????? ???? ??????. ????????? ????????? ??-
??????????? ?????? ?? ????? ????; ???. 7.1. ????? ????????? ???????? ???????? Network path to backup folder (??????? ???? ? ???????? ?????????? ????-
???????) ? Local path to the folder (????????? ???? ? ????????) ? ????-
??????????, ??????? ? ????????? ???? ? ????????, ? ??????? ????? ????-
?????? ????????? ????? ???????? ??????????. ?????? SQL Server Agent —редства обеспечени¤ отказоустойчивости SQL Server 2005 21
7
?????????? ??????? ????? ???????? ????? ????????? ????? ?? ????? ????-
????. ???? ?? ?????? ???????? ????????? ????? ????? ?? ??????? ??????, ?? ???? ? ????????? ????? ????? ???????? ??????. ???????? ????????, ??? ???? ???????? ?????? ???????? ?? ????? ??????-
??? ??????? ??????, ?? ?? ?????? ?????????? ? ??????? ????????? ?? ?????? ??????????. ? ???? ?????? ??? ??????????? ??????????? ??????? ????????? ???? ??? ????????? ????? ???????? ??????????; Delete files older than (??????? ?????, ?????? ???) ? ???? ???????? ??-
??????? ??????? ???? (????), ?? ????????? ???????? ????? ???????? ????-
?????? ????? ??????? (?? ????????? 3 ???). ???? ??????? ??????????-
??? ? ??????????????? ????? ???????? ?????????? ??? ????? ????? ????-
?????? ? ???????? ???????? ? ??????? ?????????? ???????. ??, ??? ??? ?? ????????? ?????, ??????? ? ???, ??? ??? ?????? ?????????? ??????? ????? ????????? ???????? ???????? ?? ????????? ?????????; Alert if no backup occurs within (?????????, ???? ????????? ??????????? ?? ?????????? ? ???????) ? ??? ????? ????????? ?? ????????? ????????-
???? ???????? 1 ???. ?? ???????????? ??? ???????? ?????????????? Log Shipping Primary Server Alert (?????????????? ????????? ??????? ??-
?????? ????????), ??????? ????? ??????? ??? ??????????? Alerts (???-
???????????) ? ?????????? SQL Server Agent. ?? ????????? ??? ?????-
????????? ?? ??????????? ?? ?????? ?????????, ?, ?????????????, ???-
????, ??? ??? ?????????, ????? ?????? ??? ????????? ????? SQL Server Agent (??? ?????? ??????? ???????? ????????). ???????? ??? ?????? ? ???????????????? ? ??????????? ????? ?????????????? ? ????. 8.1.7; Backup job (??????? ?????????? ???????????) ? ??? ?????? ???? ????-
?? ????????? ?????????? ????? ??????????? ????????? ???????????? ??-
????? SQL Server Agent, ??????? ? ????? ????????? ????????? ????????-
??? ???????? ??????????. ??? ?????? ?????? Edit job (???????? ????-
???) ????? ???????? ????????? ????? ???????, ? ??? ?????? ?????? Disable this job (????????? ??? ???????) ? ?? ????? ????????? ???????. ???????? ??? ?????? ? ????????? ????? ?????????????? ? ????. 8.1.3. ????? ???? ??? ?? ????????? ????????? ?????????? ?????????? ??????????? ???????? ?????????? ? ??????? ?????? OK ?? ??????? Transaction Log Shipping ???? ??????? ???? ??????, ??? ??????????? ????????? ????????? ?????????????? ????????? ????? ?? ???????-??????????. ??? ????? ???? ??-
???? ?????? Add (????????) ??? ??????? Secondary server instances and databases (????????? ?????????? ???????? ? ???? ??????) ?? ??? ?? ?????-
??. ? ??????????? ???? Secondary database settings (????????? ????????? ??? ??????) ??? ??????????? ?????????? ????????? ?????????: Secondary server instance (????????? ????????? ???????) ? ??? ??????, ?? ??????? ????? ????????????????? ????????? ????? ??????? ??????????; √лава 7 21
8
Secondary database (????????? ???? ??????) ? ?? ???? ??????, ??? ????-
??? ????? ????????????? ?????????????? ????? ???????? ??????????. ????? ?? ?????? ??????? ??? ???????????? ???? ??????, ?? ? ??????? ????? ???. ? ???? ?????? ???? ?????? ????? ????? ??????? ????????- ?????. ? ??? ?? ???? ??? ?????? ??????? Initialize Secondary Database (??????-
?????????? ????????? ???? ??????) ??? ???????? ????????????, ??? ?????? ????? ??????? ????????? ???? ??????. ? ????? ???????????? ??? ????????: Yes, generate a full backup of the primary database (??, ????????????? ?????? ????????? ????? ???????? ???? ??????) ? ????? ????????????? ????????? ?????? ????????? ??????????? ???????? ???? ??????, ? ??? ??-
??????? ????? ????? ????????????? ?? ????????? ???? ??????? ??? ???-
?????? ??????. ??? ?????? ?????? Restore options (???????????? ????-
?????) ????? ????? ?????????? ??????????????? ?????? ???? ?????? ? ???????? ?????????? ??????????? ???? ??????; Yes, restore an existing backup of the primary database (??, ???????????? ???????????? ????????? ????? ???????? ???? ??????) ? ???? ??????? ???????????? ? ????????, ????? ? ??? ??? ???? ?????? ????????? ????? ??-
?????? ???? ?????? ? ??? ????????????? ??????????? ?? ????????? ????-
??????? ??????. ? ???? ?????? ??? ??????????? ??????? ??????? ???? ? ????? ? ?????? ??????; No, the secondary database is initialized (???, ????????? ???? ?????? ??? ????????????????) ? ??? ?????? ????? ???????? ??? ??????????? ????-
?????????? ???????????? ? ???????? ????????? ???? ?????? ? ?? ?????-
??? ????????????? ? ????????. ????? ??????? ? ???????? ??????? ? ??????, ????? ????? ???????? ???? ?????? ????????? ?????????????. ?????? ? ?????? ???????? ????? ????? ???????? ?????? ? ??????????? ?????????, ????????, ????? ???????? ???? ?????? ????? ??????? ??? ????? ??????? ??????????????????, ????????? ????????? ????????????, ???????????. ?? ??????? Copy Files (??????????? ??????) ?? ??????????? ????????? ??-
????????? ?????? ????????? ????? ???????? ??????????: Destination folder to copied files (??????? ?????????? ??? ????????????? ??????) ? ??????? ????? ????? ??????? ?????? ????????? ??????? ?? ???-
?????? ???????. ?? ???? ??? ???????????? ?????-?? ???????? ?????????-
???, ????? ??????? ? ??????? ??????? ?? ????-???????; Delete copied files after (??????? ????????????? ????? ?????) ? ?????-
???????? ????? ????? ??????? ?????? ????? ????????? ????? ?????????? ????? (???? ???? ?????????????? ???? ????????? ????? ?????? ???????). ?? ????????? ?????? ????? 3 ????? (72 ????); —редства обеспечени¤ отказоустойчивости SQL Server 2005 21
9
Copy job (??????? ???????????) ? ??? ?????? ????? ????????? ????? ?????? ??? ???????????? ??????? SQL Server Agent, ??????? ????? ????-
?????? ???????????? ?????? ????????? ????? ???????? ??????????, ??-
??????? ?????????? ?????????? ???????????, ? ????? ??? ????????????? ????????? ??? ???????. ?? ??????? Restore Transaction Log (?????????????? ???????? ??????????) ?? ?????? ????????? ????????? ?????????????? ????????? ????? ???????? ??????????: Database state when restoring databases (????????? ???? ?????? ??? ???-
???????????) ? ??? ????? ?????? ????????, ??????? ??????????, ????? ?? ???? ?????? ??????????? ??? ?????????????. ? ????? ???????????? ??? ????????: No recovery mode (????? ??? ?????????????? ?????????????????) ? ???? ?????? ??????????? ??? ????????????? ?? ?????; Standby mode (????? "??????? ??????????") ? ???? ?????? ????? ??-
????? ? ?????? "?????? ??????". ?????? ???????, ??? ???? ? ???? ???-
??? ?????????? ????????????, ?????????????? ???????? ?????????? ????????????? ?? ?????. ??????? ?? ?????? ??? ????????? ? ??????-
???? ??? ??????????????, ??? ????????????? ????????? ??????????-
??? ??? ??????????????, ????????? ?????? Disconnect users in the database when restoring backups (??????????? ????????????? ?? ???? ?????? ??? ?????????????? ????????? ?????). ??? ???????? ?????????? ????????. ????????, ? ????????? ????????? ????? ????? ????????? ?????? ? ????????????? ? ?????? STANDBY
, ??????-
?? ?????????? ??? ?????????????? ????? ???????, ????? ?????????????? ??????????? ?????? ?? ?????????? ?????. ?????? ??? ????????????? ??-
???? ??????? ?? ?????? ??????? ???????????? ???????? ???????? ? ??-
????? ????????????? ???????? ? ????????? ??? ??????; Delay restoring backups at least (???????? ?????????????? ???? ?????? ?? ??????? ???? ??) ? ???? ???????? ???? ??????????? ?????????? ??-
?????? ????? ??????????????? ????????? ?????. ?? ????????? ?????? ??? ????????; Alert if no restore occurs within (????????????, ???? ?????????????? ?? ???????????? ? ???????) ? ??? ?????? ????? ????????? ????? ??????? ????????? ????? ???????? ??? ?????????????? ????????? ?????. ???? ? ??????? ?????????? ??????? (?? ????????? ??? ????? 45 ???????) ???-
??????????? ?? ?????-?? ???????? ??????????? ?? ?????, ????????? ???-
???????????. ??? ? ?????????????? ?????????? ???????????, ??? ?????-
????????? ????? ????? ? ?????????? SQL Server Agent | Alerts. ??? ?????????? Log shipping Secondary Server Alert (?????????????? ???-
√лава 7 220 ??????? ??????? ???????? ????????). ??? ???? ????? ??? ????????????? ????????? ?????????????? (????????, ??? ?????? ???????? ????????? ??? ?????? ?? ??????????? ?????), ??? ????? ????? ????????? ?????????; Restore Job (??????? ??????????????) ? ????? ??????? ??? ? ???????-
??? ??? ???????, ??????? ????? ?????????? ??????????????? ????????? ????? ???????? ??????????. ????? ???? ??? ????????? ?????????? ??????? ????? ?????????, ??? ????????? ?????? ????????? ? ???? ??????? ???????? ???? ?????? ? ????????? ???????-
?? ??????? ???????????. ? ???????? ????? ???????? ? ??? ??????? ??????-
?????, ?? ??????????? ??????????? ???????? ???????? ??? ??????????, ??-
????? ????????????? ? ???????? ????? ???????, ??????? ???????. ???????? ????? ?????? ????? ??? ?????? ?????? Use a monitor server instance (??-
?????????? ????????? ??????? ???????????). ????? ??? ?????? ?????? Set-
tings (?????????) ??? ??????????? ????????? ?????????????? ????????? ??????? ???????????: Monitor server instance (????????? ??????? ???????????) ? ???? ????-
???? ????????? ??????? ??????, ??????? ????? ??????????? ???????? ???-
?????; Monitor connections (??????????? ??????????) ? ??????????, ??? ?????? ???????, ??????? ????????? ????????? ???????????, ??????????? ?? ???? ? ??????????????, ????? "????????????" ????? ???????? ??????????? (?. ?. ???????? ?????????? ? ??? ???????): By impersonating the proxy account of the job (??? ?????? ???????-
????? ??????? ??????-?????? ???????) ? ??????????? ????? ???????-
?????? ?? ????? ??????????? ??????? ??????-??????. ?? ????? ????-
?????? ?? ??????? Job system (??????? ???????) ??????? SQL Server Agent ?? ??? ???????, ?? ??????? ??????????? ???????. ?? ????????? ???????????? ??????? ??????, ?? ????? ??????? ???????? ?????? SQL Server Agent. ???? ????????????? Monitor connections ?????????? ? ??? ?????????, ?? ???? ??????? ?????? ????? ???????????? ????? ?? ?????? ???????-
??? ? ??????? ?? ??????? ???????????; Using the following SQL Server login (????????????? ?????????? ??-
???? SQL Server) ? ????? ???? ??????? ????? SQL Server, ??????? ??-
??? ?????????????? ??? ??????????? ? ??????? ???????????. ???????, ??? ??????????? ??????? ??????????????? ????? ?? ??????? ??????-
????? ? ???????????? ??? ??????????????? ?????; Delete history after (??????? ??????? ?????) ? ????? ??????? ???? ????? ????????? ?????? ?????? ?? ?????? ???????????. ?? ????????? ??????-
????, ??? ????? ?????? ???; —редства обеспечени¤ отказоустойчивости SQL Server 2005 221 Alert job (??????? ??? ??????????) ? ???? ???????? ????????? ????????? ???????, ??????? ????? ??????????? ?? ??????? ??????????? ? ?????????? ???????? ? ????????? ??????? ?? ??????? ????????? ?????-???? ??????? ? ????????? ????????. ???????? ????????, ??? ????? ?? ????????? ???-
????????? ?????? ??? ??????, ??? ????? ???????? ?? ?????????????-
????? ?????? ??????? ???????????. 7.2.4. ћониторинг доставки журналов ???? ???????? ???????? ???????????? ? ??? ?? ?????????? ??????, ??, ?????? ?????, ??? ??????????? ???????? ?????????? ? ???, ??????? ?? ??? ????- ????. ????? ??????? ? ????? ??????? ?????? ????????? ?????????? ? ???????? ???????? ? ????????????? ??????????? ?????? Management Studio. ???????? ????? ? ???????? ???????? ????? ???: ??????? Management Studio ? ? ?????? Object Explorer ???????? ??????-
??? ? ?????? ???????. ??? ????? ???? ???????? ??????, ????????? ?????? ??? ?????? ???????????: ? ?????? ????? ???????? ?????? ?????????? ? ??? ????? ???????? ????????, ??????? ??????????? ?? ???? ???????; ? ???? Document (????????) (? ??????? ???? Management Studio) ???-
????? ?????? ????? ? ??????? Report (?????) ? ??????? ??? ?????? Transaction Log Shipping Status (????????? ???????? ??????? ???????-
???). ? ?????????? ????? ?????? ? ???????? ? ???? Document ????? ? ??????????? ? ???????? ????????, ??????????? ??????????????? ?? ???. 7.2. ???? ??? ????? ????? ????????? ??????????, ?? ? ????? ???????????? ??-
????? ?????????? ??????? ?????????? ???????????, ???????? ??????????? ? ??????????????, ? ????? ??????? ???????????. ??????????? ?????????? ?? ??????? ?????????? ??????? ???????? ?????-
??? ????? ???: 1. ? ???? Object Explorer ??????? ????????? SQL Server Agent ??? ?????-
?? ??????? SQL Server Agent ? ???????? ? ??? ????????? Jobs (???????). ??? ????????? ???????? ???????? ????????????? ????????? ?????? ??- ?????: LSBackup ? ??????? ??? ?????????? ??????????? ???????? ???????-
???. ??? ????????? ?? ???????? ???????; LSCopy ? ??????? ??? ???????? ??????????? ????????? ?????? ??-
??????? ?????. ??? ????????? ?? ????????? ???????; √лава 7 22
2
???. 7.2. ????? ? ???????? ???????? LSRestore ? ??????? ??? ?????????????? ????????? ????????? ?????. ??? ????? ????????? ?? ????????? ???????; LSAlert ? ??????? ??? ?????? ????????? ? ?????????? ???????. ??? ????????? ?? ??????? ???????????. 2. ??????? ??????????? ???? ??? ??????? ??????? ? ??????? ??????? View History (??????????? ???????). ????????? ???? ????????? ??????? ??-
???????? ???????, ??????????? ??????????????? ?? ???. 7.3. ??? ?????? ????? ?????? ????? ???????? ?????????? ? ???, ????? ?????-
?????? ??????? ? ? ????? ???????????. ??? ??????? ????? ?????????? ????-
??? ?????????? ????????? ??????????. ???? ????????? ?????-?? ????, ?? ??? ?????? ???? ??????? ????? ???????? ?????????? ? ???????? ????? ????. ??????? ?????????? ??????? ???????? ??????? ??? ??????????? ? ??-
????????? ??????. ???? ??? ????? ?????? ? ???????? ???????? ? ????? ??????????? ???????, ????? ??????????????? ??????? ?? ?????? ? ???????? ???????? ??????-
?????. ????? ????????????? ????????? ?????, ??????? ??????? ??????????? (??? ??? ????????? ? ???? ?????? msdb
?? ??????? ???????????) ? ???????? ?????????, ??????? ???????? ? ??? ??????, ??????????????? ?? ?????. ???-
??? ?????????? ?? ????????: ??????? ???????????: log_shipping_monitor_alert
, log_shipping_monitor_error_detail
, log_shipping_monitor_history_detail
, log_shipping_monitor_primary
, log_shipping_monitor_secondary
; —редства обеспечени¤ отказоустойчивости SQL Server 2005 22
3
???????? ????????? ??? ??????? ? ???????? ???????????: sp_help_log_shipping_monitor_primary
, sp_help_log_shipping_monitor_secondary
, sp_help_log_shipping_alert_job
, sp_help_log_shipping_primary_database
, sp_help_log_shipping_primary_secondary
, sp_help_log_shipping_secondary_database
. ???. 7.3. ??????? ?????????? ??????? ??? ????????????? ???????? ????? ??????? ????? ?????? ??????????? ??? ??????? ? ??????????, ???????????? ????????? ???????????, ? ??????? ?????? ??? ?????? ??????. √лава 7 22
4
7.2.5. ƒействи¤ в случае сбо¤ основного сервера ???????? ?????????? ???????? ???????? ? ??????????? ???????????????-
???. ???? ????????? ???? ????????? ???????, ?? ?? ?????? ?????? ????????-
???? ????????????? ??? ?????? ????????? ???? ?????? ?? ?????? ???????. ??????????? ?????? ????????????? ????? ????? ????? ??????, ????????? ??????? ????? ???? ?????? ? ??? ??? ???? (????????, ??? ?? ?????-?? ????? ??????? ?? ???????? ???? ??????, ?? ????????? ???? ?????? ?? ????????? 15 ????? ??? ??????? ?????? ?? ???????????? ??????? ??????? ??? ??????-
???????). ?????? ????????? ???????? ??? ???-???? ???????? ?????????. ???????, ??? ??? ??? ??????????? ???????: ??????????????? ????????????, ??? ??? ??-
??????????? ????????, ??? ???????? ???????? ?? ?????????????. ???? ???-
????? ? ?????? ???? ????????? ??????? ??????????? ?????: 1. ??????, ??????? ????? ?????????, ? ????????? ??? ?????? ???????, ??-
????? ????????? ? ???????? ????????? ???????? ????????. ??? ???? ??-
????????? ? ?????????? ???????. ???? ???????? ?????? ????? ?? ?????, ??? ??????? ????? ??? ?????? ??????. ????????? ??????? ????? ????? ??? ?????? ??????? Disable (?????-
????) ?? ???????????? ???? ??? ??????? ??????? ? Object Explorer (???-
?????? SQL Server Agent | Jobs). ??????????? ??????? ?????????? ? Object Explorer ??????????? ??????? ??????. ?? ?????????? ????? ??-
??????? ??? ??????? ??????? ??????????. ??? ????? ????? ??????? ????-
???? ???????, ??????? ?? ??????? Schedules (??????????), ???????? ???-
??? ?????????? (?? ????????? ????????? ?????? ????) ? ?????? ?????? Edit (????????). ????? ? ????????? ?????????? ????? ????? ?????? Enabled (????????). 2. ????? ????? ??????? ??????????? ? ???????????? ?? ????????? ????? ???????? ??????????, ??????? ???? ??????? ?? ???????? ???????, ?? ??? ?? ???? ????????????? ?? ????????? ???????. ??????????? ?????????? ? ????????? ??????????????? ????? ????? ????? ??? ?????? ?????? ? ???????? ???????? ??? ?????????? ??????? ?? Management Studio (??. ????. 7.2.4). ???? ?? ????????? ?????????? ? ???????, ?? ????????? ????-
??????? ? ?????????????? ????? ?????????? ??? ?????? ??????? LSCopy ? LSRestore. ??????? ????????? ??????? ????? ??? ?????? ??????? Start job (????????? ???????) ?? ??? ???????????? ???? ? Object Explorer. 3. ???? ???????? ?????? ????????? ? ??????? ?????????, ?????????, ?? ???-
?? ?? ??????? ????? ? ???? ????????? ????? ????????? ????? ??????? —редства обеспечени¤ отказоустойчивости SQL Server 2005 22
5
?????????? ? ????? ???????????? ?? ?? ????????? ???????, ????? ?? ????-
???? ??????? ???????????????? ??????. ???? ????? ????????? ?????? ? ???????? ???????? (????????, ?? ??? ????? ????? ?????????? ?????-?? ??????), ?? ????? ?????????? ????????? ??????????? ??????? ??????? ? ?????????? NORECOVERY
. ? ???? ?????? ????? ?? ?????? ??????? ????????? ????? ??????? ??????????, ?? ? ????? ?????? ?????? ? ???? ?????? ??? ?????????????. 4. ????????? ????????, ??????? ??? ??????????? ?????????, ? ????????? ???? ?????? ?? ????????? ??????? ? ??????? ????????? ?? ?????? NORECOVERY
??? STANDBY
(? ??????????? ?? ?????????? ???????? ????????). ??? ????? ?????????? ????????? ??????? RESTORE DATABASE
? ?????????? WITH RECOVERY
, ????????: RESTORE DATABASE db1copy WITH RECOVERY; ????? ???????, ????????? ???? ?????? ????? ????????? ? ??????? ?????????. ?????? ???????? ????? ??????? ? ????????? ?????????? ???????????, ??? ??? ?????? ? ????? ??????? ?????????? ?? ????? ??????. ??? ??? ???????, ??????? ?? ????, ??? ?????? ?????????? ?????????? ?????????? ? ???????. ? ????? ???????????? ????????? ????????: ???? ???????? ?????? ?????? ?? ???????? ? ???? ??????????? (??? ?? ??? ?????????????? ?????? ???? ??????, ??????????? ? ???? ????????), ??, ?????????, ????? ??????? ????????? ????? ??????? ?????????????? ?????????? ??????? (?, ????????, ????????? ???? ??????). ????? ?????-
????? ???? ???????? ?????????? ?????????? ?????? ?????????? ? ?????? ??????? ?????????????; ???? ??? ??????????? ???????????? ?????????? ?????? ???????? ??? ??????? (????????, ???? London7.nwtraders.msft
), ??, ?????? ?????, ????-
??? ????????? ??????? ?? ??????? DNS. ???? ??????? ???????????? ?? IP-?????? (??? ?????? ????? ?????), ?? ???????? ????????? IP-?????? ???-
??????? ???????; ???? ?????? ??? ??????? ? ??????????? ?????? ????????? ? ??????? ??-
???????????? ??????, ?? ???????? ???????? ????????? ????????? ?? ???-
?????. ? ??????????? ?? ????, ??? ???????? ???????, ????? ????????????: ????????? ????? ??????? ? ?????????? ?????????? (???? ??? ??? ??-
???????), ????????, ??????????? ?????? ????????????; ?????????? ?????????? ??? SQL Server (?????????? ???????? ?????-
???? ?? ?????? ?????????? ??????????); ????????? ??????? ????????? ?????? ODBC (????? ?? ?????? ???????). √лава 7 22
6
???? ???????? ?????? ????? ??????? ? ?????, ?? ????? ????? ???????????? ?????? ???????????? ???: 1. ?????????? ????????? ??????????? ????????? ???? ?????? (??????? ? ??-
??????? ????? ????????? ??????? ???????). 2. ???????????? ??? ????????? ????? ?? ???????? ???????. 3. ???????????? ?????????? ?????????? ??????? ?? ???????? ??????. 4. ??????? ?????? ??????? ??? ?????????? ???????????, ???????? ????????-
???, ?????????????? ? ???????????. 5. ????????? ???????? ???????? ??????. ????? ????? ??????? ??? ???????, ???? ????? ???????????? ??? ???? ???? ? ?????????????????? ???????? ?????????. 7.2.6. ак отменить доставку журналов ?????? ????? ?????????? ????????, ????? ??? ??????????? ???????? ??????-
?? ???????? ? ?????? ??? ????????? ? ??? ??????????: ??????? SQL Server Agent, ??????? ??????????? ???????? ???????? ? ?. ?. ????? ????? ??????? ??? ?????????? Management Studio: ?????????? ?? ??? ?? ??????? Transaction Log Shipping ???????? ???? ?????? ????? ?????? Enable this as a primary database in a log shipping configuration. ????? ???? ??? ?? ??????? ?????? OK, ????? ????????????? ??????? ??????? ?? ??????-
??? ???????????, ??????? ??????????? ? ?????????????? ???????? ???????-
???. ????? ??????????? ????? ???????? ?????????? ??????????? ???????? ???????? ??? ???? ???? ??????. ??????? ??? ??????????? ???????? ??????? ???????. ????????? ???? ?????? ????????? ? ????????? NORECOVERY
??? STANDBY
, ? ?????? ?? ?????? ???????? ??? ?????. ??? ?????????? ?? ? ???-
??????? ??????? ????????? ????? ????? ?????????? ????????? ???????????-
??? ????????? ????????? ????? ??????? ?????????? ? ?????????? RECOVERY
. ?????? ??????? ?????? ???????? ???????? ? ???????????? ??????????? ???????? ?????????: sp_delete_log_shipping_primary_secondary
? sp_delete_log_shipping_primary_database
? ??? ???????? ?????????, ??????? ??????????? ?? ???????? ???????, ??????? ? ???? ??? ????????? ???????? ???????? ??? ????????? ???? ???? ??????; sp_delete_log_shipping_secondary_database
? ??? ???????? ????????? ??????????? ?? ????????? ???????. ??? ??????? ??? ?????????? ? ???-
????? ???????? ? ????? ??????? ?????? ?? ????????? ????? ??????. —редства обеспечени¤ отказоустойчивости SQL Server 2005 22
7
7.3. «еркальное отображение баз данных 7.3.1. „то такое "зеркальное отображение баз данных" ? SQL Server 2005 ????????????? ????? ???????? ??? ????????? ??????-
???????????? ? ?????????? ??????????? ??? ?????? (database mirroring). ??? ????????????? ????? ???????? ?????????, ??????? ???????? ? ???? ???-
??? ?? ???????? ??????? (?? ?????????? ????????-???????????), ????????? (??? ????? ?????????, ? ??????????? ?? ????????? ???? ??????????) ???-
????????? ? ????? ???? ?????? ?? ?????? ??????? SQL Server 2005. ?????????? ??????????? ??? ?????? ????? ???????????? ?? ????????? ? ? ??????????? ?????????, ? ? ????????? ????????. ???????????? ????? ?????????????? ???????? ?????????: ?????????? ??????????? ??? ?????? ?? ??????? ?????????? ???????????? ????????????; ???????, ??????? ????????? ? ?????????? ??????????? ??? ??????, ?? ??????????? ?????? ?????????? ????? ???? ? ??????; ? ???????? ??????? ???????? ? ????? ?????????? ????? ??????, ??????? ????????? ?? ??????? RAID-???????. ????? ???????, ????? ?? ????? ???-
?? RAID-??????? ???????? ? ?????? ????? ????????. ? ?????????? ??????-
????? ???????????? ??? ????????? ????? ???? ??????, ??? ???????? ??-
???????? ??????. ?? ????????? ? ????????? ???????? ???????????? ?????: ???????????? ????? ? ?????? ?????? ????????? ??????? ????? ???????-
?????? ????????????? (??? ??????? ????????? ??????? (witness server)); ??? ?????????? ??????????? ??????????? ??? ?????? ? ????????? ?????-
???? ??? ?? ??????????? ??????? ?????-???? ????????? ? ??????? ?????-
????????? ??? ? ????????? ????????. ??????? ??? ????????????? ????-
????????? ????????????? ?? ????????????? ?????????? ????? (??? ????-
????? ?????? ? ???????????, ??????? ?????????? SQL Native Client ??? .NET SQL Provider). ?????????? ? ?????????? ????? ????? ??????? ? ?????? ??????????? (?? ????? ????? ???????? ???????? ?????? ??? ???-
???????? ? ???? ???????); ??? ????????????? ???????? ???????? ?????? ???? ?????-?? ?????????? ??? ????????????? ?????? ?? ???????? (?? ??????? ????, ?? ????????? ?????). ?????????? ??????????? ??????????? ??? ?????? ????????? ??-
?????? ????? ???????? ? ??????????? ???????????? ????? ?????? ?? ???-
?? ????????. √лава 7 22
8
??? ??????????? ??????????? ????? ???????????? ??? ??????: ?????????? ????? (synchronous mode) ? ??? ????????????? ????? ??-
???? ?????????? ?? ????? ?????????, ???? ??? ?? ?????? ?? ????? ?????-
???. ??? ????????????? ??????????? ?????? ???????????? ?????? ?? ???? ???????? ?????????????. ?????? ???????? ?????? ?????????? ??? ???? ????? ??????????? ???????????. ???? ????? ?????? ?????????????? ??? ?? ???: ??????????????? ?? ?????????????????? (high-availability) ? ??? ????? ?????? ??????????? ????????????? ????????? ???????. ???? ??-
??? ??????????? ??????????????????. ? ??????, ????? ???????? ?????? ?????????? ???????????, ???????? ?????? ????????????? ?????? ?????? ??????-????????? ? ??????-???????. ???? ?????????? ????????-
??? ??????-???????, ?? ???????????? ??????? ??????. ? ????, ?????-
???, ????? ???????????? ???????????? ? ???????? ??????, ? ??????-
???????, ?? ??????????? ? ?????? ???? ?????? ?? ???????-??????-
???? ? ????? ?????????????, ??? ?????? ????? ???????? ?????? ? ????-
???????????? ??????; ??????????????? ?? ?????? ?????? (high-protection) ? ? ???? ??-
???? ????? ???????? ??? ????????? ???????. ????? ?????????? ? ???? ?????? ??????????? ?????? ???? ????????? ?? ????? ????????: ??? ??-
??????????? ???????????? ?????? ?? ???????? ???? ?????? ? ?? ???????; ??????????? ????? (asynchronous mode, ?????? ???????? ? high-per-
formance mode (????? ??????? ??????????????????)) ? ? ???? ?????? ?????????? ??????? ??????????? ?? ?????? ???????, ? ????? ?????????? ? ??? ?????????? ?????????? ?? ?????? ??????. ???????? ??? ?????? ????-
?????? ??? ?? ?????, ?? ?????? ????? ????????? ????? ????????????-
?????? ? ????????? ???????????. ? ?????????, ?? ?????? ??????? SQL Server 2005 ????????????? ?? ??????? ????????? ???????? ?????????? ??????????? ??????????? ??? ?????? ? ???-
???? ?? ????????? ??? ????????????? ?? ??????? ????????. ?? ???? ????????-
???? ?????? ????????????? ? ????????????. ??? ??????? ????????, ??? ???-
??????? ??????????? ????? ???????? ???????. ????? ?????, ?????? ???????-
?? Microsoft ????? ????? ?????????? ?? ????????? ??? ????????, ?? ??????? ??????????? ?????????? ??????????? ??? ??????, ? ???? ??????????? ???-
???????? ??????????? ?? ????????? ?????????. ????? ?? ????????, ????-
?????? ???????????? ??????????? ?????????? ???????? ? ???? ??????????? 1400. ??? ????? ??????? ? ?????????? ??????? ??????? (??? ??? ???????, ????? ?????????? ? ????. 7.3.3). ??? ?? ????? ?????????? ??????????? ??????????? ??? ??????, ??????? ?????????? ????????? ???????????? ????????? ??? ??-
—редства обеспечени¤ отказоустойчивости SQL Server 2005 22
9
?????? ??????????, ????? ????????????, ?, ?????? ?????, ????? ???????????? ????? ??? ????? ?????????????? ????? ???????. 7.3.2. “ерминологи¤ зеркального отображени¤ баз данных ???????????? ??????????? ??????????? ??? ?????? ??????????? ?????????? ?? ???????????? ????????? ? ???????? ????????: ???? ??????-????????? (principal database) ? ??? ???? ??????, ? ????-
??? ? ??????? ?????? ???????? ????????????. ??? ???????? ?????????? ?????????? ??? ?????????? ?????. ??????????, ??? ?????? ???????? ???? ?????? ? ???????????? ???????? ????????; ?????????? ???? ?????? (mirror database) ? ????? ???? ??????-
??????????, ??????? ???????? ?????????? ?? ?????????? ? ????? ??-
???????????? ? ?????? ?????? ?? ????? ?????????? ??? ??????????? ????-
?????????????? (? ??? ????? ???????????? ????????????); ???????? ?????? (witness server) ? ??????, ????????? ?? ????????? ? ????????, ?? ??????? ???????? ???? ??????-????????? ? ???? ??????-
???????. ?? ???????????? ?????????? ??????????? ??????????? ? ? ???-
??? ???? ???????-?????????? ????? ????????????? ????????? ? ??????? ????????? ???? ??????-???????; ???????????? ????? (role switching) ? ???????, ??? ??????? ??????-
????????? ? ??????-??????? ???????? ??????. ?????? ????? ??????? ???????????? ???????????????; ???????????? ? ?????? ?????? ???????-?????????? (failover) ? ???-
????, ????? ?????????? ???? ?????? ?????????? ? ??????? ?????????. ?????? ???? ??????? ????????? ?????????????, ???? ? ????? ??????-
??????????? ???????? ????????; ????? ??????????? ??????????? (mirroring session) ? ???? ?????? ????-
?????? ?????? ???? ??????-??????????, ?????????? ???? ?????? ? ?????-
???? ??????? ? ?????? ????????????? ??? ??????, ?. ?. ? ??????, ????? ?????????? ??????????? ????????. ???? ????? ?????????? ?????? ???-
???????? ??????????? ?????????? ???????? ??????????? ??????????? (mirroring quorum). 7.3.3. Ќастройка зеркального отображени¤ ????? ??? ??? ??????????? ?????????? ???????????, ?????????? ?????????? ???????????? ??????????. ??-??????, ?????????? ??????????? ?????????? ?????????? ????? ??????-
????? ?? HTTP (HTTP endpoints), ??????? ???????? ?????? ??? Windows √лава 7 230 Server 2003 ??? Windows XP. ??????? ????????? ?????????? ???? ???????-
??? ??? Windows 2000 ?? ???????. ??-??????, ?????????? ??????????? ?????? ????????? ????? ??????? ?????-
??????? SQL Server 2005 ?? ????? ?????????? ???????: ??? ??????????? ??-
????????? ??? ?????????? ???????. ???? ?? ?????????? ???????????? ?????-
??? ??????, ?? ????? ???????????? ??? ?????????? ???????, ????????? ???-
????? ?????? ?? ????? ???? ?????????? ?? ????? ?????????? ?? ? ????????-???????????, ?? ? ?????????? ????????. ?-???????, ??????????? ????????? ??????????? ??????????? ?? ????????? ?????????. ????? ???????? ??, ?????????? ???????????? ???? ??????????? 1400. ????? ???? ???? ??????????? ?????????????? ?????? ??? ??? ??????? SQL Server, ????? ????? ????????? ??? ????????? ??? ?????? ????????? ???????. ?????? ???????? ????? ????????? ??? -T1400
. ????? ????? ??????-
??? ??? ?????? ? ????????? ?????? SQL Server ? Configuration Manager (??????? Advanced (?????????????), ???? ?????????????? Startup Parameters (????????? ???????)). ????? ????????? ????? ????????? ??? ????? ????? ????????????? ??????. ?????????, ? ??? ?????????? ?????????, ? ??? ???? ??????, ??? ??????? ????????????? ?????????? ???????????, ???????? ? ?????? ?????????????? Full (??????? ????????????????). ???? ???? ?????? ???????? ? ?????? ????-
??, ?????????? ???????? ????? ????? ??????? ?????????. ????? ????? ????? ?????????? ??????????????? ? ????????? ??????????? ???????????. ??? ?????? ??? ????? ????? ?????????? ?????? ????????? ??????????? ??-
?????? ???? ?????? (???? ??????-??????????) ? ???????????? ??? ??????-
??? ????? ?? ?????????? ??????? ? ?????????? NORECOVERY
. ???? ????? ???-
????? ?????? ????????? ????? ?? ???????-?????????? ?? ????????? ??? ?? ????????? ??????????? ??????? ??????????, ?? ??? ????? ????? ????? ???-
????????? ?? ?????????? ??????? ? ??? ?? ?????????? NORECOVERY
. ??????? ??? ??? ?????? ???????, ??????? ??????? ? ????????? ?????????? ???? ??????. ?? ?????????? ??????? ??? ???? ?????? ?????? ???? ????? ????? ??, ??? ? ?? ???????-?????????? (??? ??????? ???????? ????????????!). ????? ????, ????? ????????????? ?????????? ?? ????? ???????? ?????????? ???? ? ????? ?????? ???? ?????? ? ???????? ??????????. ? ????????? ???-
??? ??? ?????????? ?????? ????? ???? ?????? ?? ???????-?????????? ????? ?????????? ????????. ????? ????? ????? ?????????? ? ????????? ?????????? ??????????? ??????-
?????. ??? ????? ??????? ????? ?????????: ??? ?????? ???????????? ??-
???????? SQL Server Management Studio ??? ??????????? ?????? Transact-
SQL. ?????? ?????? ?????, ??????? ?????????? ?????? ???. —редства обеспечени¤ отказоустойчивости SQL Server 2005 231 ??? ????????? ?????????? ??????????? ??????????? ? ??????????? ???? ??? ??????? ???? ??????-?????????? ? Object Explorer ???????? ??????? Tasks | Mirror (??????? | ?????????????). ????????? ??????? Mirroring (???-
??????? ???????????) ???? ??????? ???? ??????. ?? ???? ??????? ??????? ????? ????????? ?????? ????????? ???????????? ??????????? ??????????? (Configure Database Mirroring Security Wizard). ?? ??????????? ???????? ?????? Configure Security (????????? ????????????). ???? ?????? ????????? ??????? ????? ??????????? ?? HTTP ?? ???? ????????, ??????????? ? ??????????????, ? ????? ??????? ??????? ??????, ??????? ????? ?????????????? ??? ?????????????? ????????. ?? ????????? ?? ???? ???????? ????? ????? ??????????? ????? ??????????? ? Mirroring
. ??? ????? ??????????? ?? ???????-?????????? ?? ????????? ???????????? ???? 5022, ? ?? ?????????? ? ???????? ???????? ? 5023. ????? ???? ??? ?????? ???????? ????????? ????? ??????????? ? ??????? ???????, ????? ????????? ??????? ????? ????? ?????? ??????????? ??????-
????? ?? ??????? Mirroring ??????? ???? ??????. ? ????? ???????????? ??? ????????: Synchronous with automatic failover (?????????? ? ?????????????? ??-
???????????) ? ???? ????? ???????????? ?? ???????????? ??????-
????????????. ??? ?????????? ??????????? ???????????? ? ?? ???????-
??????????, ? ?? ?????????? ???????. ???????? ??????, ??????? ??????-
???? ???????????? ? ???? ??????, ?????????? ?????????? ????????? ????? ???????? ? ? ?????? ????????????? ????????? ?????????????? ??-
??????? ??????? ??????????? ???????, ???????? ? ???? ?????? ??????????-
???; Asynchronous (high performance) (??????????? (??????? ?????????-
?????????)) ? ???? ????? ???????????? ?? ???????????? ?????????-
????????? ??????. ?????????? ?????????? ??????????? ?????? ?? ?????-
??-??????????, ? ?? ?????????? ?????? ??? ?????????? ? ??????????? ?????? ? ????????? ?????????; Synchronous (high protection) (?????????? (???????????? ??????)) ? ????? ???????????? ?? ??????????? ???????????? ?????? ?? ????? ???-
?????. ?????????? ??????????? ?????? ???? ??????? ????????? ? ?? ???????-??????????, ? ?? ?????????? ???????. ??? ???? ?????????????? ???????????? ??????????? ??????? ? ??????? ????? ?? ????????????. ????? ????, ??? ?????? ????? ??????, ??? ???????? ?????? ??????????????? ??????? Start Mirroring (?????? ?????????? ???????????) ?? ??????? Mirroring ???? ??????? ???? ??????, ????? ????????? ???? ?????? ? ?????? ??????????? ???????????. √лава 7 23
2
7.3.4. ћониторинг зеркального отображени¤ ?????????? ????????? ??????????? ??????????? ? SQL Server 2005 ????? ??????????? ??????????? ?????????. ?????? ?????? ? ?????? ??????????????? ??? ?? ???????? Mirroring ??????? ???? ??????. ????? ?????????? ? ????????? ??????????? ??????-
????? ????? ???????? ? ???? Status (?????????) ? ?????? ????? ???? ???????. ?????? ?????? ? ??????????????? ?????????? ?????????? ???????? (??? ?????????? ?????????? ???????? ???????? ????? ?????????????? ? ????. 11.4.5). ??????????????? ?????? ?????????? ???????? ? ??????? ???-
?????? ????????? ?????????? MSSQL$???_??????????: Database Mirror-
ing. ? ??????? ????????? ??? ????? ??????? ????? ???????: Transaction Delay (???????? ??????????) ? ?? ??????? ? ??????? ?????-
????? ?????????? ?? ?????????? ??????? ??????? ?? ?????????? ???? ?? ?????????? ?? ???????-??????????, ?. ?. ? ????? ????????? ?????????? ????????????? ????????; Redo Queue, KB (??????? ???????, ?????) ? ??????? ???????? ??????-
???? ? ??????? ??? ?????????? ?? ?????????? ???????. ???? ?????????? ????? ?????????? ???????? ????????????? ??????????? ??????? ?? ????-
????? ? ????????-???????????, ?? ?? ?? ???????, ? ? ?????????? ??????; Bytes Received/Sec ? Bytes Sent/Sec (???????? ????/??? ? ?????????? ????/???) ? ??? ?????? ???? ???? ????????? ????? ??????????, ???????-
?? ??????? ?????????? ????? ??????????? ????? ????????-??????????? ? ?????????? ????????. ?????? ?????? ??????????? ? ????????????? ??????????? ????????? ????-
?????????, ??????? ?????????? ????????????? ??? ???? ?????. ??? ??? ????-
????????? ????????? ? ???? ?????? master
: sys.database_mirroring
? ?????????? ?? ???? ????? ?????? ?? ???????, ??????? ????????? ??????? ? ?????????? ???????????. ??? ??????????-
??? ??????? ??? ?? ????????, ??? ? ?? ?????????? ???????. ??? ?????? ??-
?? ?????? ???????????? ?????????? ? ?? ???? ? ?????????? ???????????, ? ?? ??????? ?????????, ? ????????? ?????? ?????????????????? ??????? ?????????? (log sequence number, LSN), ??????? ????????? ? ??????????? ???????, ? ????????? ?????? ?????? ??????????; sys.database_mirroring_endpoints
? ??????? ?????????? ?? ???? ?????? ??????????? ?? HTTP, ??????? ???????????? ??? ??????????? ????????-
??? ??? ??????. ??? ????????????? ????? ??????? ? ?? ????????, ? ?? ?????????? ???????. ??? ?????? ????? ??????????? ????????? ???????-
??? ? ????, ??????? ??? ??????, ? ???, ???????? ?? ??????????, ?? ??-
?????????? ?????? ??????????????, ?? ?????????? ??????????; —редства обеспечени¤ отказоустойчивости SQL Server 2005 23
3
sys.database_mirroring_witnesses
? ??? ?????????????, ??????????????? ??? ????????? ?????????? ?? ???????? ??????? ? ???????-?????????? ? ?????????? ???????, ? ?????? ??????????? ???????????, ? ??????? ??-
??????? ?????? ???? ??????, ??????????? ??????? ? ?????????? ???-
????????, ? ?. ?.; sys.dm_db_mirroring_connections
? ?????????????, ????????? ???????-
??? ?? ??????? ???????????, ??????? ???????????? ??? ??????????? ???????????. ??? ????????????? ??????? ?? ???? ????????, ??????????? ??????? ? ?????????? ???????????. ??? ????????????? ????? ????? ??? ??????????? ??????? ??????????? ???????????. ? ??? ????????? ?????-
????? ?? ??????????????? ???????????, ???????????? ??????????, ??-
??????? ??????? ?? ??????????, ??????? ??????????, ?????????? ????-
?????? ??????. ????????? ?????? ??????????? ? ????????????? ??????? ??????????? ???-
????????, ?????????? ? ??????? ????? ???????? ??? ?????? ???????-
??????? ??? ??????????? ? ???????? (Event Notifications). ??? ?????? ? ??????????????? ???????? ????? ?????????????? ? ????. 11.2.3, ? ??? ???-
???????? ? ???????? ? ? ????. 11.2.5. ???????????? ???????, ??????????? ? ??????????? ??????????? ??? ??????, ?????????? Database Mirroring State Change (????????? ????????? ?????????????? ??? ??????). ??? ????????? ? ?????? Database (???? ??????) ?? ??????? Event Selection (????? ???????) ??????? ?????? ???????????. ??????? ????????? ????? ??????? ? State (??-
???????) ? Text (?????). ??????? State ????????? ??????, ??? ?????? ??????-
???? ????????? ???? ??????, ??????????? ??????? ? ?????????? ????????-
???, ? ??????? Text ????????? ???????? ????????? ???????? ??? ????? ????-
??? ? ?????????????? ???????????. 7.3.5. —мена ролей серверов ??????? ?????????? ??????? ??????????? ??????????? ??? ?????? ? ????-
??????? ??????????????????. ??????? ????? ???? ??????? ? ????, ??? ??-
????? ??? ???????? ??????????????? ?????????? ????? ????? ???????? ? ??????? ?????????? ?????? ????????. ??????? ????? ????? ??????. ??? ???????????? ????? ???????? ?????????? ????????????? ????????, ??????? ?????????? ? ???????-??????????, ?? ???-
???, ??????? ?????? ???????? ???? ??????????? ???????, ? ?????? ???? ????-
???????????. ??? ????????????? ??????? ??????????? ?? ODBC ??? OLE DB ??? ???????? ????????? ????? ???????????? ???????. ??? ????? ???-
????, ????????, ??????? ????????? ?? ???? ?????????? ??????????? ??? ??-
????? ??? ??????? ??????????? ???????, ??????? ??? IP-????? ? ?. ?. ?????? ???? ?????????? ?????????? ???????????? ??? ??????????? ? ??????? ????-
√лава 7 23
4
???? SQL Native Client ??? ADO.NET Data Provider, ??????? ?????? ? ??????-
???????? ?????? ?????????? ? ?????? ???????. ??? ????? ?????????? ? ????-
?? ?????? ? ?????? ??????????? ??????????? ?????????? ???????, ????? ??-
??????? ???????, ????? ? ???????? ??????, ? ???? ???????? ????? ????????? ?????? ? ?????????? ?????? ???? ??????. ????????? ????? ?????? ????????-
??? ????? ???: "server=???_???????_??????????; failover partner=???_???????????_???????; database=AdventureWorks" ??? ???????? ?????? ?????????? ?????????? ?????? ?? ?????, ? ??????? ????????? ??? ? ?????? ??????????? ?? ????. ? SQL Server 2005 ????????????? ??? ???????? ????? ????? ???????? ??? ?????????? ??????????? ??? ??????: ?????????????? ???????????? ????? ???????? ??? ?????? ?? ????? ???????-?????????? (??? ?????? ? ??? ?????). ??? ?????? ??????????????? ???????????? ??????????? ??????????, ????? ? ??????? ??????????? ???-
???????? ????????????? ???????? ??????; ???????????? ????? ???????, ????? ??? ??????? ? ? ??????-?????????, ? ?????????? ?????? ? ???????? ??????????. ? ???? ?????? ??????? ?????? ???????? ??????; ???????????? ????? ??????? ? ????????? ??????, ????? ??????-
????????? ??????????. ?????? ??????? ???????? ????? ???????. ?? ???????, ????? ??????????? ??? ???????? ???????? ??????, ? ???? ?????????? ??????????? ???????? ? ?????? Synchronous with automatic failover. ??? ?????? ???????? ?????? ??????????, ??? ??????-????????? ????? ?? ????? ??? ????? ? ??? ????????, ?? ?????? ? ????? ?????????? ?????? ????? ??????? ?? DISCONNECTED
(???????-
??????), ? ????? ?????????? ?????????? ? ??????????? ??????? ???? ????-
??????, ??????? ???? ?????????? ? ???? ? ???????-??????????, ????????? ?????? ? ?????????? ???? ?????? ? ??????? ??????. ???? ????? ? ?????? ????????-??????????? ????? ?????????????, ?? ????????????? ?????? ???? ???? ? ???????? ????????? ???? ??????????? ???????. ?????? ??????? ? ?????? ???????????? ????? ????????, ????? ??? ??????? ????????, ? ?????? ???????????? ??????????????? ??? ???????? ??????-
????? ???????????? ??? ??? ????, ????? ?? ????? ????????? ??????-
????????? (????????, ??? ?????????? ?????-?? ???????????? ???????? ?? ?????? ???????????? ??? ????????? ?????? ??????????). ??? ???????? ???-
?? ?????????? ????? ?????????: ?? ??????? Mirroring ??????? ??????????????? ???? ?????? ?????? ????-
?? Failover (????????????); —редства обеспечени¤ отказоустойчивости SQL Server 2005 23
5
????????? ??????? Transact-SQL: ALTER DATABASE ???_???????????????_????_?????? SET PARTNER FAILOVER; ??? ??????? ?????? ?????????? ??????. ?????? ??????? ? ?????? ???????????? ????????, ????? ??????-????????? ??????????. ?????? ???? ??????? ???????????? ? ????????? ????????, ????? ??????-????????? ???????? ????? ?? ?????, ? ?????????????? ????? ??? ????? ??????? ?????????? ?????????????? ????????????????? ??????? ? ?????????? ?????? ????????. ? ?????? ????????? ????????????? ????? ????-
???? ?? ?????????????, ????????? ?????????? ???? ???????? ??????, ??????? ???? ???????? ? ???????-?????????? ?? ?????????? ??????. ??? ?????????? ???? ???????? ???????????? ?????????? ?? ?????????????. ?? ???????, ??-
????? ????????? ???? ???????????, ????? ????????? ??????? Transact-SQL: ALTER DATABASE ???_???????????????_????_?????? SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS; ???? ??????, ??????? ????????? ???? ?????????? ?????, ????? ??????? ??? ????????????? ? ?????????? ??????. 7.3.6. ѕриостановка и отмена зеркального отображени¤ ? ????????? ????????? ?????????????? ????? ????????????? ???????? ???-
?????????? ?????? ??????? ??????????? ???????????. ????????, ????? ???-
???-????????? ???????? ? ???????????? ??????????? ?????????????, ? ??-
??????????? ????? ?? ????? ????? ? ???? ?????????????? ???????? ?? ???-
???????? ??????????? ??? ??????. ?????? ?????? ? ????? ?? ????????? ????? ??????? ?????????? ????? ????????-??????????? ? ?????????? ???-
????? ?????? ??????????. ??? ???????????? ??????????? ??????????? ????????? ?????? ????????? ?? SUSPENDED
(??????????). ????????? ????? ???????? ? ??????? ?????????? ???????-?????????? ?? ??? ???, ???? ????????????? ?? ????????? ?????? ?????? ??????????? ???????????. ????? ????? ??? ???????????? ????????? ????? ? ??????? ??????? ???????? ?? ?????????? ??????. ????????????? ? ?????????? ?????? ?????? ??????????? ??????????? ????? ??? ?????? ???????????? ?????????? SQL Server Management Studio ??? ???????? Transact-SQL. ??? ???????????? ?????? ?????????? ?????? ?????? ?????? Pause (?????) ?? ??????? Mirroring ??????? ???? ??????. ??? ???-
???????? ?????? ????? ?????? ?? ?? ?? ?????? (?? ??? ??? ????? ????????-
?? Resume (??????????)). ??? ???????????? ??????????? ??????????? ???-
?? ????? ??????????????? ???????? Transact-SQL: ALTER DATABASE ???_???????????????_????_?????? SET PARTNER SUSPEND; √лава 7 23
6
? ??? ????????????? ? ????????: ALTER DATABASE ???_???????????????_????_?????? SET PARTNER RESUME; ???? ?? ?????? ????????? ??????? ??????????? ??????? ??????????? ???-
????????, ?? ????? ?????? ?????? Stop Mirroring (?????????? ?????????? ???????????) ?? ??? ?? ??????? ??? ????????? ???????: ALTER DATABASE ???_???????????????_????_?????? SET PARTNER OFF; ??? ?????????? ? ?????????? ??????????? ??????????? ????? ???????. ??? ???? ?????????? ???? ?????? ????????? ? ????????? NORECOVERY
. ?? ????? ??????? ??? ???????? ? ??????? ?????, ??????? ??????????? ????????? ????? ??????? ?????????? ? ???? ?????? ???????-?????????? ? ?????? RECOVERY
. ??? ???? ????? ????? ????????? ?????????? ??????????? ???? ???-
???, ??? ????????? ???????? ????????? ??????. «адание дл¤ самосто¤тельной работы 7.1. Ќастройка доставки журналов ???????: 1. ?????????? ?? ????? ?????????? ?????? ????????? ??????? SQL Ser-
ver 2005 ?? ?????????? ???????????: ?????? ???? ?????????? ?????? ????? ???????????; ??????????? ????????? ?????? ?????????? Server2
; ??? ?????? SQL Server 2005 ?????? ???????? ?? ????? ????????? ???-
?????? ??????? ??????; ????? ?????????????? ? Mixed; ?????? ??? ??????? ?????? sa
? P@ssw0rd
; ????????? ?? ????????? ? Cyrillic_General; ?? ???????? ????????? ?? ??????? ? Microsoft. ??? ????????? ?????????? ???????? ???????? ?? ?????????. 2. ???????? ?? ?????? ?????????? ??????? SQL Server 2005 (? ?????? SQL2005
) ?? ????? ?????????? ???? ?????? DB1
? ??????????? ?? ??????-
???. 3. ???????? ? ??? ??????? Table1
?? ?????????? ???????????: USE DB1; GO CREATE TABLE dbo.Table1( Col1 int IDENTITY(1,1) NOT NULL, Col2 nvarchar(50)); —редства обеспечени¤ отказоустойчивости SQL Server 2005 23
7
4. ????????? ?????????????? ???????? ???????? ??? ????????? ???? ???? ?????? DB1
? ???? ?????? ? ????? ?? ????????? ?? ?????? ?????????? SQL Server 2005 (
Server2
) ? ?????????? ???????? 2 ??????. ??? ???? ??? ???????? ???????? ?????? ?????????????? ??????? C:\LogShippingBackup1, ???????? ????? ????????? ??????? ???? ???_??????_?????????? \LogShippingBackup1. ??? ????????? ???????? ?????? ?????????????? ??????? C:\LogShippingBackup2. ???????? ??????????? ??? ???????? ???????? ?????? ????????? ?????? ????????? SQL Server 2005. 5. ????????? ????????????????? ??????? ???????? ???????? ??? ?????? ??????? ??????? ? ??????? ???????. ????????? ?????? ?????????? ??-
??????? ????? ? ??????? Table1
???????? ???? ?????? ? ?????????, ??? ??? ????????? ???????????? ?? ?????? ???? ??????. 6. ???????? ???????? ???????? ? ?????????, ??? ?? ?????? ?????????? ? ????????? ? ??????? Table1
?? ??????? Server2
. ???????: ? ?????? 1 ??????? ? ????????? ???????????? ?????????? SQL Server 2005: 1. ????????? ????????? ????????? SQL Server 2005, ??????? ???????????? ?????????? ? ?? ?????? Installing Prerequisites (???????????? ??? ????-
?????) ??????? ?????? Next (??????). 2. ?????????, ??? ?? ?????? System Configuration Check (???????? ?????-
??????? ???????) ??? ?? ??????, ?? ??????????????, ? ??? ??? ??????? ?????? Next. 3. ?? ?????? Registration Information (?????????? ? ???????????) ??????? ???? ??? ? ??? ????? ???????????. 4. ?? ?????? Components to install (?????????? ??? ?????????) ?????????? ?????? ?????? SQL Server Database Services (?????? ??? ?????? SQL Server). 5. ?? ?????? Instance Name (??? ??????????) ??????????? ????????????? ? ????????? Named Instance (??????????? ?????????) ? ??????? ??? ???-
????????? ???????????? ?????????? (
Server2
). 6. ?? ?????? Service Account (??????? ?????? ?????) ??????????? ???????-
?????? ? ????????? Use the built-in System Account (???????????? ?????-
????? ????????? ??????? ??????) ? ?????????, ??? ? ?????? ?????? ??-
????? "Local system"
. ?? ???? ?? ?????? ? ?????? Start services at the end of setup (????????? ?????? ????? ????????? ?????????) ?????????? ???-
??? SQL Server Agent. 7. ?? ?????? Authentification Mode (????? ??????????????) ?????????? ??-
??????????? ? ????????? Mixed Mode (????????? ?????) ? ??????? ??? ??????? ?????? sa
?????? P@ssw0rd
. √лава 7 23
8
8. ?? ?????? Collation Settings (????????? ?????????????) ???????? ????-
????? Cyrillic_General. 9. ?? ?????? Error and Usage Report Settings (????????? ??????? ?? ????-
??? ? ?????????????) ?????????, ??? ??? ?????? ????? ? ??????? ?????? Next, ? ????? ?? ?????? Ready To Install (?????????? ? ?????????) ??????? ?????? Install (??????????). ? ?????? 2 ??????? ? ???????? ???? ?????? DB1
?? ?????? ?????????? ???-
???? SQL Server 2005: 1. ??? ???????? ???? ?????? DB1
? ??????????? ?? ????????? ????????-
???? ? ??????? ?????????? SQL Server 2005 (??????? ?????????? SQL2005
) ? ????????? ?? ??? ????????? ???????: CREATE DATABASE DB1; ????? 3 ??????? ? ???????? ??????? ? ??????????? ? ??????? ????, ???-
????????? ? ???????. ? ?????? 4 ??????? ? ????????? ?????????????? ???????? ????????: 1. ???????? ?? ????? C: ?????? ?????????? ??????? C:\LogShippingBackup1. ???????? ???????? ???? ?????, ????????? ?? ??????? ?????? ? ???????? ??? ????? ????? ? ??????? ?????? LogShippingBackup1. ????? ??????? ?????? ?????????? ? ???????????? ?????? ??? ?????? ?????? ? ????? ????????. ???????? ????? ?? ????? C: ??????? LogShippingBackup2. 2. ? SQL Server Management Studio ????????? ???? ???_??????_??????? \SQL2005 | Databases ? ? ??????????? ???? ????????? ???? ?????? DB1
???????? Tasks | Ship Transaction Logs. ????????? ??????? Transaction Log Shipping ??????? ???? ???? ??????. 3. ?? ???? ??????? ?????????? ?????? Enable this as a primary database in a log shipping configuration ? ??????? ?????? Backup Settings. 4. ? ???? Transaction Log Backup Settings ? ???? Network path to backup folder ??????? ???? \\???_??????_???????\LogShippingBackup1
(????????, \\LONDON2\LogShippingBackup1
). 5. ??????? ?????? Schedule ? ???????? ?????????? ?????????? ??????????? ????? ???????, ????? ??? ????????????? ?????? 2 ??????. ????? ? ???? Transaction Log Backup Settings ??????? ?????? OK, ????? ????????? ? ???? ??????? ???? ??????. ????? ???????, ?? ????????? ???????? ? 2 ?????? ?????? ??? ?????????? ??-
????????? ???????? ???? ??????. ??? ???? ????? ???????? ???????? ??????-
—редства обеспечени¤ отказоустойчивости SQL Server 2005 23
9
????? ? ?????????????? (?? ????????? ???? ??? ? 15 ?????), ?????????? ??-
?????? ???????? ??????? ?? ?????? ???????. ??? ????? ??????? ??? ??? ??-
??????? ???????? ????????, ??? ? ?????. 6. ? ?????? Secondary server instances and databases ??????? ?????? Add, ? ????? ? ??????????? ???? Secondary Database Settings ??????? ?????? Connect. ? ???? Connect to server (???????????? ? ???????) ??????? ??? ??????? ?????????? SQL Server 2005 (????????, LONDON2\SERVER2
) ? ??-
????? ?????? Connect, ????? ????????? ? ???? Secondary Database Settings. 7. ? ???? Secondary Database Settings ???????? ???????????? ?? ????????? ???????? DB1
? ???? Secondary Database ? ?? ??????? Initialize Secondary Database ???????? ??? ????????????? ???????? ?? ????????? Yes, generate a full backup of the primary database. 8. ????????? ?? ??????? Copy Files ? ? ???? Destination Folder for copied files (??????? ?????????? ??? ????????????? ??????) ??????? ???????? C:\LogShippingBackup2
. ????? ?? ???? ??????? ? ?? ??????? Restore Transaction Log ??????? ?????? Edit Job, ????? ??????? ???????? ?????-
?????? ???????, ????????? ? ??????????? ???? ?? ??????? Schedules ? ???????? ??? ??? ?????????? ????? ???????, ????? ??????????? ? ???-
??????????? ????? ????????????? ???? ??? ? 2 ??????. ???????? ??? ??-
??????? ?????????? ???????? ?? ????????? ? ??????? ?????? OK, ????? ????????? ? ???? ??????? ???? ??????. 9. ?? ??????? Transaction Log Shipping ??????? ???? ?????? ?????????? ?????? Use a monitor server instance ? ??????? ?????? Settings. ? ??-
????????? ???? Monitor Server Instance ??????? ?????? Connect ? ???-
????????? ? ??????? ???_??????_???????\SQL2005
. ???????? ???? ???? ???-
??? ? ??????????? ????????? ?????????. ?????????, ??? ? ???? Save Log Shipping Configuration (????????? ???????????? ???????? ????????) ??? ????? ????????? ???????. ? ?????? 5 ??????? ? ???????? ?????????? ? ???????? ????????: 1. ? ???? Object Explorer ? SQL Server Management Studio ???????? ?????? ??? ???????, ??????? ??? ???????? ???????? ??????????? ???????? ???-
????? (
???_??????_???????\SQL2005
), ? ? ???? View (????????) ???????? ????? Summary (???????). 2. ? ??????????? ???? Summary ??????? ?? ??????? ????? ?? ??????? Report, ????? ??????? ?????? ???????. ????? ? ???? ?????? ??????? ????-
???? ????? Transaction Log Shipping Status. 3. ? ???? Object Explorer ????????? ???? ???_??????_???????\SQL2005 | SQL Server Agent | Jobs ? ??????????? ??????? ?????????? ??????? √лава 7 240 LSBackup_DB1 (??? ?????? ??????? View history (??????????? ????-
???) ? ??????????? ????). ???????????? ?? ??????? ??????? (
???_??????_???????\Server2
) ? ??????????? ??????? ?????????? ??????? LSCopy ? LSRestore. ??? ??? ??????? ?????? ??????????? ??? ??????. ? ?????? 6 ??????? ? ?????? ???????? ????????: 1. ? ???? Object Explorer ????????? ???? ???_??????_???????\SQL2005 | SQL Server Agent | Jobs ? ???????? ???????? ??????? LSBackup_DB1, ? ????? ?? ??????? General ??????? ?????? Enabled. ????????? 2 ?????? (??? ?????, ??????? ???????????, ????? ??????????? ? ???????????? ??? ????????? ????????? ????? ??????? ??????????), ? ????? ????? ??? ?? ??-
??????? ??????? LSCopy ? LSRestore ?? ?????? ???????. 2. ???????? ??????? ?????????? ??????? LSRestore (??? ?????? ??????? View History ???????????? ????) ?? ?????? ??????? ? ??????? ???????-
??? ? ????????? ??????????????? ??????? ???????. 3. ???????????? ?? ???? ????????? ???? SQL Server Management Studio ?? ??????? ??????? (
???_??????_???????\Server2
) ? ????????? ??????? ?? ????????? ?????????????? ?????????? ??????? ?????????? (??????? ?? ?????????? ???????? ??????? ??????????? ?????? ???????). ?????????-
?????? ??????? ????? ?????????, ????????, ???: USE master; RESTORE LOG DB1 FROM DISK = C:\LogShippingBackup2\DB1_20060407120603.trn' WITH RECOVERY; 4. ???????? ???????? ???? ?????? DB1
?? ?????? ??????? (
???_??????_ ???????\SQL2005
) ? ????????? ?? ??????? Transaction Log Shipping. 5. ??????? ?????? Enable this as a primary database in a log shipping configuration ? ??????? ?????? Yes ? ???? ?????????????, ? ????? ? ?????? OK. ????? ???????? ???????????? ???????? ??????? ?????????, ??? ???????, ??????? ?????????? ??????? ?? ????????????? ???????? ??????? ??????????? ?????? ???????, ???????. 6. ????????? ????????? Databases ?? ?????? ??????? (
???_??????_ ???????\Server2
) ? ?????????, ??? ???? ?????? DB1
????????? ? ??????? ?????????, ? ? ??????? dbo.Table1 ???????????? ??? ?????????, ??????? ?? ?????? ? ???????? ???????. √Ћј¬ј 8 јвтоматизаци¤ администрировани¤ SQL Server 2005 ? ?????????? ?????? ???? ??????????? ?????????? ???????? ??????????-
?????? ???????? ?? SQL Server 2005. ??????, ??? ????? ??????? ????????-
??????, ?????? ???????????????? ???????? ?? ??????? ???????? ????????-
??????. ????????, ????? ????? ??? ??? ? ???? ?????????? ???????????: ????????? ???????????; ???????? ??????????? ??? ??????; ???????? ? ???????? ??????; ???????????? ???????? ? ??????????????, ? ????? ?????? ?????? ????????, ????? ??????? ??????? ?? ?????????? ??- ????. ????? ????, ? ????????? ????????? ?????????? ??????? ???, ????? ??????-
??????? ??? ?????????? ??????? ? ?????-?? ?????? ???????? ?? ??????? (????????, ??????? ????????? ? ?????? ???????, ???????? ?????? ??? ???-
????? ??????????? ??????, ???????? ???????? ??? ???????? ???????? ? ?. ?.). ? ?????????? ???????????? ???????? ?? ??????????, ? ???????????? ????-
??? ????????????? ????????????????. ??? ????? ?????? ? ?????????????? ?????????????, ??? ??????? ?????????? ???????????? ???????? ?? ???????-
?? ????????????????, ????? ?????????? ???? ????? ??? ?????? ???. ? ???? ????? ???? ? ?????? ??? ????????????? ???????????????? ????????. ????? ????? ??????????? ????????, ??????? ???????????? ?????????????? ?????????????? ??????????? ??? ?????????????. ??????? ?????, ??? ????? ??? ????????????? ???????????????? ???????? ?????? ???????????? ??????? VBScript ??? JavaScript (??? ????????? ?? √лава 8 24
2
????? COM-??????????? ?????, ???????? Visual Basic, VBA, C++, Java, Delphi ? ??., ??? .NET-??????????? ?????????), ??????? ???????? ? ???-
??????? ???????? SMO, SQL-DMO ? WMI. ???? ? ??? ?????? ? ??. 9. 8.1. јвтоматизаци¤ административных операций средствами SQL Server Agent 8.1.1. „то такое SQL Server Agent SQL Server Agent ? ??? ?????? SQL Server, ???????? ?????????? ??????? ? ????????????? ?????????? ???????????????? ?????????. ???? ??????????-
??? ?????????????? ??? ??????: ??????? (jobs) ? ??????????? ??????? ????????, ??????? ????? ?????-
???? ?? ??????????; ?????????????? (alerts) ? ????????, ??????? ??????????? ? ????? ?? ???????, ???????????? ?? SQL Server. ????? ????????? ????? ????, ??-
??????, ?????????? ??????? ??? ???????? ????????? ?????????. ????-
??? ? ??? ???? ?????? ? ???????????? ??????? ?? SQL Server (?? ???-
?? ?????????? ? ???????????? ??????????????), ???? ????? ???????? ???-
??????????????? ?? ?????-?? ???????, ???? ??????????? ??????? WMI (?. ?. ?????, ????????? ?? ??????????? ?????????? ?????? ?? ????? WQL); ?????????? (operators) ? ??????? ? ???????? ?????, ?? ??????? ????? ??-
?????????? ?????????. ???????, ?????????????? ? ????????? ????? ???????? ??????????? ? ???-
?????? ????????. ???? ?? ??????? ?????? ????? ???????, ??????? ??????? ? SQL Server Agent. ??????, ??? ?????????? ????????, ? ??? ????????????? ????????????? ??-
?????????????? ???????? ??????????, ????? ?????? SQL Server Agent ??-
??????. ????? ?? ??? ??????????? ????????????? ??? ??????? ??????? ??? ?? ????? ????? ????????? ???????, ??????? ?? ??????????, ??????? ?? ??????? ??? ????????? ???????. ?????????, ???????? ?? ??? ?????? (? ??? ????????-
????? ????????? ??? ???????? ????? ???????), ????? ??? ?????? SQL Server Configuration Manager (??. ????. 3.3). ?????? ?????? ? ????????? ?????????? SQL Server Agent (? ??? ????? ??-
???????? ? ????????, ??????????????? ? ??????????) ???????? ? ????????-
??? ????????? ???? ?????? msdb
. ???? ?? ??????? ????????? ? ????????? ? ????????????????, ?? ????????? ????????? ??????????? ????????? ??????-
????? ???? ???? ??????. јвтоматизаци¤ администрировани¤ SQL Server 2005 24
3
??????, ??? ????? ????????, ? ??????????? SQL Server Agent (? ??? ??????-
???????????) ??????? ?? ????, ?? ????? ????? ??????? ?????? ???????? ??? ??????. ?????????????, ?????: SQL Server Agent ??????? ?? ????? ??? ?? ???????? ??????? ??????, ?? ????? ??????? ???????? ??? SQL Server; ??? ???????? ??????? ?????? ???????? ?? ?? ?????????? ??????? ??????-
???? ??????????????. ??????? ??????, ?? ????? ??????? ???????? SQL Server Agent, ???????????? ??? ????????? SQL Server 2005. ????? ?? ????? ????????, ????????, ??? ??-
???? SQL Server Configuration Manager. ???????????? ????????? ???????????? ??? ?????? SQL Server Agent ? SQL Server 2005 ????? ?????. ????????? ??? ??? ????? ?????????? ? ????. 8.1.4. ?, ?-?????????, ??? SQL Server Agent ????????????? ???? ??????? ????????, ??? ?????? ??????? ????? ???????? ?????????? ? ???? ???????????? ? ???? ??????? ????????. ??????????? ??????? ????? ?? ?????????? SQL Server Agent | Error Logs (??????? ??????) ? SQL Server Management Studio. ????? ????????? ???????, ?????????? ? ?????????? ????????????? ?????-
???? ????????? SQL Server Agent: ????????????? ?? ??? ????? ??????- ??????. 8.1.2. ѕараметры настройки SQL Server Agent ????????? SQL Server Agent, ??? ? ??????????? ?????? ???????? SQL Server 2005, ????? ???????? ????? ?????????: ??? ?????? ???????????? ?????????? SQL Server Management Studio. ??? ????? ?????????? ??????? ???????? ?????????? SQL Server Agent ? Object Explorer; ??? ?????? ??????????? ???????? ???????? (????????, sp_set_sqlagent_ properties
). ????????????? ??? ???????? ????????? ?? ?? ?????, ??-
??????? ??????? ?? ?? ?????????? ????? ????? ?????? ????????????? ??? ?????? ?????? Script (??????) ?? ?????? ??????? SQL Server Agent ? Management Studio. ????? ???????? ???????? ??????????, ??????? ????? ????????? ??? SQL Server Agent ? ???????? ?????????????. ??????? ?????????? ????????? ?? ??????? General (?????) ???? ??????? SQL Server Agent. Auto restart SQL Server if it stops unexpectedly (????????????? ??????-
??????? SQL Server ??? ??????????? ?????????) ? SQL Server Agent ??-
√лава 8 24
4
??? ?????????????? ?????? ?????? SQL Server ? ??? ????????????? ??-
??????? ?????? ??????. ???????, SQL Server ??? ??????? ?????? ?? ????-
???????????, ??????? ???????? ????? ?????????, ? ????????, ?? ????? ?????. ??? ?? ????? ????? ???????? ?? ????????? ???????; Auto restart SQL Server Agent if it stops unexpectedly (????????????? ????????????? SQL Server Agent ??? ??????????? ?????????) ? ??? ??-
?????? ????????. ?????? ???????? ??????????, ????? ?? SQL Server ???-
??????????? ?????? ?????? SQL Server Agent ? ??? ????????????? ???-
???????? ?????????? ???? ??????. ?? ????????? ???????? ????? ????-
???; File name (??? ?????) ? ??????? Error Log (?????? ??????) ? ??? ???? ? ?????????? ????? ????????? ?????? ?????? SQL Server Agent. ???-
???????? ???? ???????? ????? ??? ?????? ?????????? SQL Server Agent | Error Logs (?????? ??????) (??? ?????? ??????? ???? ? ????- ????); Include execution trace messages (???????? ????????? ???????????) ? ???? ???? ?????? ??????????, ?? ? ???? ????????? ????? ????? ??????-
?????? ?????????????? ?????????? ??? ???????? SQL Server Agent. ????-
?? ??? ??????????? ????? ?????? ??? ??????? (??? ???? ?? ?????????? ???????, ? ?????? ????? ?????? SQL Server Agent). ? ?????? ????? ????-
???????? ??????? ?????????? ?????????????? ??????????, ??????? ??-
????????????? ?????? ?? ?????; Write OEM file (?????????? ???? ? ??????? OEM) ? ?? ????????? ???-
?????? ???? ????????? ????????? ? ??????? UNICODE. ???? ??? ????? ???? ? ??????? ????????? ??????? (?? UNICODE), ????? ?????????? ???? ??????. ?????? ?? ????? ?????? ? ????? ????????: ????? ?? ????-
????????? ???? ??????? ?????-?? ?????????????????? ??????????, ?? ?????????? ????????? UNICODE; Net send recipient (?????????? ?? net send
) ? ??? ?????????? (IP-?????) ??? ??? ????????????, ???????? ????? ????????????? ???????????? ?? ??????? net send
(??? ?????? ???? ?????????) ??????, ?????????????? ? ????????? SQL Server Agent. ????? ????? ???????? ??? ???????: ?????? Messenger (?????? ?????????), ??????? ???????????? ?? ?????? ? ???????????, ????????????? ?? net send
, ?? ????????? ? Windows Server 2003 ?????????. ????? ???????? ??????? ?????????, ??? ?????-
?????? ??????? ???????? ??? ??????; ? ?????? ??????? SQL Server Agent ???????????? ??????? ?????????? ?????????, ? ??????????? ???? ????? ?????? ?????? ?????? ??????-
??????, ?? ????????? ???????? ??? ????????????. ??????? ????? ????? ?????????? ?????????? ?????? ? ?????-?? ??????????? ?????????. јвтоматизаци¤ администрировани¤ SQL Server 2005 24
5
?? ??????? Advanced (?????????????) ?? ?????? ????????? ????????? ??-
????????????? ????????? ? ???????, ??? ??????? ??????????? ????????? ????? ????????? ??????????????: Forward events to a different server (?????????????? ??????? ?? ?????? ??????) ? ???? ???????? ????? ????? ???????? ?????, ????? ? ??? ?? ??????????? ???????????? ????????? ????????, ? ?? ?????? ????????? ???????? ????????, ??????????????? ??? ????????? ?? ????? ???????. ?? ?????????, ???? ?? ????? ?????????? ??????????? ????????? ????????-
??? SQL Server, ??? ????????? ????? ???????????? ?? ??? ?????????, ??-
????? ??? ?????????? ??????; Events (???????) ? ??? ?????? ???? ?????? ?????????? ?? ?????? ??????????, ????? ?????? ??????? ????? ???????????????? ??? ?????? ?? ?????? ??????. ? ????? ???????????? ????????? ?????????: Unhandled events (??????????????? ???????) ? ?? ?????? SQL Server ????? ???????????? ?????? ?????? ? ??? ????????, ??? ??????? ?? ??-
??????? ?????????????? (??? ?????????????? ????? ?????????????? ? ????. 8.1.7); All events (??? ???????) ? ????? ???????????? ?????????? ? ???? ??-
??????; If event has severity at or above (???? ? ??????? ???????? ????????? ?? ?????? ??? ????) ? ???? ???????? ????????? ????????? ?????? ??? ???????????? ????????? ?? ?? ????????. ?? ????????? ???????????? ????? ?????? ??????? 001
, ??????? ???????????? ????? ??? ?????????; Define idle CPU condition (?????????? ??????? ??????? ???????????? ??????????) ? ???????????? ?????????? ????? ?????? ?????????? ? ???-
???????? ?????????? ??? ???????, ??? ??? ?????? ???????????, ????? ?????????? ??????????, ?? ??????? ?????????? SQL Server, ??????????-
?? (?. ?. ????????? ???????????? ??? ?????? ???? ?????????? ???????). ?? ???????? ????? ??????? ???????????? ????? ?????. ???? ???????, ??? ?????????? ??????? ??????????? ????????? ????? ????????? ????????-
??????, ????? ?????????? ??? ?????? ????????? ??????????: Average CPU usage falls below (??????? ???????? ???????????? ???-
??????? ?????? ????) ? ?? ????????? ??????????? 10%; And remains below this level for (? ???????? ???? ????? ?????? ? ????-
???) ? ?? ????????? ?????? 600 ??????, ?. ?. 10 ?????. ?? ??????? Alert system (??????? ??????????????) ?? ?????? ?????????? ????? ????????? ?????? SQL Server Agent ? ????????????????. ???????? ????????, ??? ?? ?? ?????? ?????????? ?????? ???, ???? ????? ???????????? √лава 8 24
6
??????????????, ?? ??????? SQL Server Agent ? ??? ????? ??????????? ???-
???? ??????? ??????????. ?? ???? ??????? ?? ?????? ?????????? ???? ??-
??? ?????????, ??????? ????? ??????????? ??? ???? ??????????????: Enable mail profile (???????? ???????? ???????) ? ???? ???? ?????? ??????????, ?? SQL Server Agent ???????? ??????????? ?????????????-
???? ? ??????????? ?????? (????????, ?????????? ?? ??????????? ????? ?????????????? ??? ?????????? ??? ?????????? ?????????? ???????). ???? ???? ?????? ??????????, ? ????? ???????????? ?????????? ??? ??? ???????????: Mail system (???????? ???????) ? ??????????? ??????? ???? ?? ???? ?????? ??? ?????????????? ? ??????????? ??????: SQLMail (????????-
?????? ???????, ??????????????? ?? MAPI) ??? Database Mail (?????? ???????? ? SQLiMail, ????? ??????????? ???????, ??????????????? ?? SMTP). ????????? ??? ?????? SQL Server ? SQL Server Agent ? ????-
??????? ?????? ????? ?????????? ? ????. 8.2. ??? ?????? ?????? Test (?????????) ????? ????????? ????????????-
????? ??????????? ?????????? ??? ?????? ? ??????????? ??????, ??-
?????? ??????? ?????????; Save copies of the sent messages in the Sent Items folder (????????? ??-
??? ???????????? ????????? ? ????? Sent Items) ? ??? ??????????? ???????? ?????? ?????, ????? ??? ???????? ????????? ???????????? ???????? MAPI (? ??????, ???????????? ??????? SQLMail); ????? ?????????, ????????? ? ??????????? ??????????? ?????, ???????? ? ????, ?????????? ????????????? ?????? SQL Server Agent. ? ??????? Pager e-mails (????????? ?? ???????) ???????????? ????????? ??? ?????????, ??????? ????? ???????????? ?? ??????? (??? ?? ??????? ??????? ??? ????????? SMS ? ? ??????????? ?? ???????? ????????????-
???? ?????): To line, CC line, Subject ? ??????????? ?????????? ???????? ? ???-
????? ??? ????? ????, ????? ? ???? ????????? ??????????????; Include body of e-mail in notification message (???????? ???? ?????? ? ???????????? ?????????) ? ???? ???? ?????? ??????????, ?? ?? ???-
???? ??? ??????? ??????? ????? ???????????? ??????????? (? ????-
????????? ?????? ??? ??????????? ?????????? ???????) ???????. ??? ????????? ????? ???? ?????????? ????????, ??????? ? ???? ???????-
??? ????? ???? ??????????. ???? ???? ?????? ????, ?? ?? ??????? ??? ??????? ?????? ??????? ??????????? ??? ????????? ??????????; Fail-safe operator ? ? ???????????? ? ???????? ??????? Microsoft, ??? ?????? ???????????? ??? "????????? ????????" ??? "???????? ??????-
јвтоматизаци¤ администрировани¤ SQL Server 2005 24
7
??? ???????". ?????? ????????? ?? ?????? ????????? ????? ?????? ???????? ? "??? ????? ???????". ????? ????? ????????? ????? ?????: ??? ??????? ????????? ????? ??????? ??????? ????. ???? ?????????? ???, ??? ??????? ????????? ? ??? ??????, ????? ??? ????????? ??????-
?? ?????????? ????????, ????????? ????? ?????????? "????????? ??-
??????? ???????" (??? ??????????? ?? ?????????? ??? ??????). ?? ?????? ??????? ??????????????? ?????? ????????? ? ??????? ?????? ??? ???????????: ??? ?????? ??????????? ?????, ???????? ??? ????-
???? ?????????; Replace tokens for all job responses to alerts (???????? ??????? ??? ???? ???????, ??????? ??????????? ? ????? ?? ??????????) ? ???? ??-
??? ???????? ??????????, ????? ?? ????? ???????????? ??????????? ?????????????? ??????? (????????, ??? ????? ???? ??????) ? ????-
?????? ???????, ??????? ????????????? ??????????? ??? ???????????? ??????????????. ????????? ?? ???? ????? ?????????? ? ????. 8.1.7. ?? ??????? Job System (??????? ???????) ?? ?????? ?????????? ????? ??-
??????? ??? ?????????? ??????? SQL Server Agent: Shutdown time-out interval (in seconds) (????? ???????? ??? ?????????? (? ????????)) ? ???? ?? ???? ??????? ?? ????????? ?????? SQL Server Agent, ? ? ??? ????? ??????????? ???????, ?? SQL Server Agent ???? ?? ??? ?????????? ??????? ??????, ??????? ??????? ? ???? ????????? (?? ????-
????? ?????? 15 ??????). ?? ????????? ????? ??????? ?????? ??????? ??-
??? ?????????? ?????????????; Job step proxy account (??????? ?????? ?????? ??? ?????? ???????) ? ???? ???????? ????????? ?????????? ??????? ?????? Windows, ?? ????? ??????? ? ???? ?????????? ??????? ????? ??????????? ????????? ?????-
??? ? ???????????? ???????. ?? ????????? SQL Server Agent ????????? ??? ???????? ?? ????? ??????? ??????, ??? ??????? ?? ????????. ???????? ????????, ??? ???? ???????? ????? ???????? ?????? ??? ????? SQL Server Agent, ??????? ?????? ? ?????? SQL Server 7.0 ? 2000 (???? ?? ?????? ??-
?????????????? ?? ?? Management Studio). ??? SQL Server 2005 ??????? ?????? ?????? ????????????? ?? ?????????? SQL Server Agent | Proxies. ?? ??????? Connection (???????????) ????????????? ????????? ????????-
??? ?????? SQL Server Agent ? SQL Server: Alias local host server (????????? ??? ?????????? ???????) ? ????????? ??? ?????????? SQL Server (?? ??????????? ?????? ???? ?????????? ?? ??? ?? ??????????), ? ???????? ????? ???????????? SQL Server Agent. ???????? ??? ?????????? ?????????????? ? ????. 3.3.4. ???? ???????? ????? ????????? ?????? ? ??? ??????, ???? ??? "??????????? ?????" SQL Server ?? ????? ?????????? ??? ?????????? ?????-?? ?????? ?????????, ???????????????? ??????? ? ???? ?? ?????? ??????; √лава 8 24
8
SQL Server connection (??????????? ? SQL Server) ? ???????? ??????-
???? ??????? ??????, ??????? ????? ?????????????? ??????? SQL Server Agent ??? ??????????? ? SQL Server. ??? ??? ??????????, ????? ???????-
?????? ???????????? ??? ?????? ????? SQL Server ? SQL Server Agent ??-
?? ? ?? ?? ??????? ??????. ????? ????? ????? ????? ???????? ?????????-
????? Windows (??????? ?????????? ?? ?????????). ???? SQL Server ? SQL Server Agent ???????? ??? ??????? ???????? ???????? ??? ??? ????? ???????????? (??? ????? ??????????? ???????? ?????????????) ?? ????? ?????? SQL Server, ?? ? ???? ????????? ?? ?????? ?????????? ??-
????????????? ??????? ?????? Windows ??? ????? SQL Server Agent. ?? ??????? History (???????) ???????????? ????????? ???????? ??????? ?????????? ??????? ? ???????? SQL Server Agent: Limit size of job history log (?????????? ?????? ??????? ??????? ?????-
????? ???????) ? ???? ???? ?????? ?????, ?? ?????? ?????????? ? ??-
???????? ??????? ?? ????? ????????????? ????????? ?? ???????? ??????? SQL Server Agent. ??? ??????????? ??????? ?? ???????. ???? ?? ???? ?????? ?????????? (?? ?????????), ?? ????? ????????? ??? ???????-
??????? ?????????: Maximum job history log size (in rows) (???????????? ?????????? ??????? ??? ??????? ?????????? ??????? (? ???????)); Maximum job history rows per job (???????????? ?????????? ??????? ??? ?????? ???????); Automatically remove agent history (????????????? ??????? ??????? ??????) ? ???? ???????? ????????? ??????????, ????? ????? ????? ?????? ? ??????? ?????????? ??????? ????? ????????? ?????????????. 8.1.3. –абота с задани¤ми SQL Server Agent ??????? (jobs) ? ??? ???????? ????? ???????????? ???????? ????????????? ???????????????? ????????. ??????? ????? ?????????? ??? ??????????? ?????? ????????, ??????? ????? ????????????? ??? ?????????? ?? ???????-
??? (? ????? ????????? ? ???????). ?? ?????? ??????? ???????? ?? ????-
???????? ?????????? ??????? ??????? ???????, ??? ?????? ??????? ?????-
?????? ????????? ????????: ????????? ???????????, ???????? ???????????, ?????????????? ? ???????????? ????????, ???????? ? ???????? ??????, ????-
????? ??????? HTML ? ?. ?. ??????? ????? ??????????? ? ? ?????????????? ??????, ????????, ??? ????????? ???????? ???????? ??? ??????????. ?????? ? ????????? ?????? ???????????? ?? ?????????? Jobs ? SQL Server Agent. ??????? ????? ??????? ????? ??? ?????? ??????? New Job (????? ???????) ?? ???????????? ???? ??? ?????????? Jobs. ????????? ????, ?????-
јвтоматизаци¤ администрировани¤ SQL Server 2005 24
9
?????? ??????????????? ?? ???. 8.1, ? ??????? ??? ??????????? ????????? ???????? ???????. ???????? ??? ?????? ?? ?????????? ??????? ????? ??????-
???? ???? ? ???? ???????. ???. 8.1. ???? ??????? ??????? SQL Server Agent ????? ????? ????????? ????????????? ??????????? ??????? ? ?????? ??????? ?? ??????, ????? ????????? ????????????? ?????????? ?????? ????????. ????? ????? ??????? ??? ???: ? ??????????? ???? ??? ?????????? ??????? ????? ??????? ??????? Script Job As | CREATE TO | New Query Editor Window (????????????? ??????? ??? | ??????? | ????? ???? ????????? ?????-
???). ? ?????????? ? ???? ????????? ???? ????? ???????? ?????? ? ????????? ?? ???????? ??????? ? ???????????? ???????????. ??? ????????? ?????? ??-
??????? ????????? ????????? ? ???? ???????, ????????? ??? ? ????????? ?? ?????????? ?? ?????? ???????. √лава 8 250 ???? ?? ?????? ????? ???????????? ? ??? ????????? ?????????? ? ?????-
??? ??????????, ??????? ????? ???????????? ??? ???????? ??????? ?? ???? Transact-SQL. ?? ????????? ?????????? ?????? ? ??????????????? ????? ?? ?????. ?????? ?????????? ?????????, ??????? ????? ????????? ??? ???????????? ???????. ?? ??????? General ?? ?????? ????????? ??? ??????????? ????? ????????? ??? ???????: Name (???) ? ???, ???????, ??? ??? ???????????? ???????. ??? ?????-
????? ?? ??????????? ??????????????? ???????? ?????????? ???????? SQL Server. ??????????? ????? ??????? ??? ??? ??????????????; Owner (????????) ? ???????? ??????? ???????. ?? ????????? ???????-
??? ?????????? ??? ????????????, ??????? ??? ??????? ??????. ???????-
??? ? ????????? ?????? ???????????? ??? ??????????? ????, ? ???????? ??????? ????? ????????? ????????? ???????? ?? SQL Server, ? ????? ?? ????????? ????? ??????????? ?????????? ??? ???????? ??????? ? ??-
???????? ???????; Category (?????????) ? ???? ???????? ?? ?? ??? ?? ??????. ???????????? ??? ??????????? ??????? ? ??? ?? ?????????? ??? ??????????? ? Management Studio; Description (????????) ? ??????? ???????? ???????, ???????? ???????, ??????? ????????????? ?????? ??? ?????? ????, ????? ?? ??????, ??? ???? ????????????? ??? ???????; Enabled (????????) ? ???? ??????? ? ????????? ????? ??? ?? ?????, ?? ????? ????????????? ?????, ?? ?????? ?????? ????? ???? ??????. ?????-
?????? ??????? ??????????? ?? ?????. ????? ????? ????????? ???????-
??? ??? ????? ???????; Source (????????) ? ? ???? ????????? ????? ??????????? ??????, ????-
??? ????????? ?????? ??????? ?? ?????????? (master server). ???????? ???????????? ?????? ??? ??????????????? ??????? (??????? ????? ??-
????????? ?? ?????? ????????). ????????? ??? ??????????????? ??????? ????? ?????????????? ? ????. 8.1.6; Created (???????), Last modified (???????? ? ????????? ???), Last Executed (??????????? ? ????????? ???) ? ???, ??????????????, ????? ????????, ????? ?????????? ????????? ? ????? ?????????? ??????? ?? ??-
???????? ??? ???????. ?? ??????? Steps (?????) ???????????? ????? ?????? ????? ????????? ????-
???. ????? ????? ????? ?????????? ????? (steps), ?. ?. ????????, ?? ??????? ??????? ???????. ???????? ????? ???????????? ??? ?????? ?????? New (??-
јвтоматизаци¤ администрировани¤ SQL Server 2005 251 ???). ??? ??????????? ??????? ??? ???????????? ????? ? ??????? ??? ???. ??-
?? ????????? ???? ??????, ??????? ?????????? ? ???????? Replication (????-
??? ? ?????? ??????? ??????????? ?????? ????????? ????????????? ??? ??-
??????? ??????????), ?? ? ????? ???????????? ????????? ????????: ActiveX Script (?????? ActiveX) ? ??? ????? ?????????????? ??? ?????. ?????????? ??? ?????? ????? ???? ????? ?? ?????? ??????? ?? SQL Server ? ? ???????????? ??????? (?? ?????? ?? ?????????, ?? ? ?? ??????-
??? ???????????) ????????? ??? (??????? ??????????? ????? ?????? ????? ??????). ??? ?????? ? SQL Server ? ????? ???????????? ??????? ????????? ?????? SQL-DMO, SMO ? ?????????? WMI ??? SQL Server (???? ? ??? ?????? ? ??. 9), ??? ?????? ? ???????????? ???????? ? ???-
?????? ?????? Windows Script Host, Scripting Runtime, WMI ? ?. ?. ??- ?????? ?????? ??? ?? ???????? ????? ????? ???? www.microsoft.com/ scripting. ??????? ????????? ???????, ????????? ? ???? ????? ??????: ??????? ????? ????????? ?? ????? COM-??????????? ?????????? ?????. ?? ????????? ? Windows 2000 ? Windows 2003 Server ???????? ?????????????? ?????? ??? VBScript ? JavaScript, ?? ???? ??? ????-
??? ???? ? Perl ??? TCL, ?? ??? ?????? ?? ?????? ?????????? ?? ???-
??? ????????????? ??? ????? ????? ? ???????????? ?????? ???; ???? ??? ????? ??????????? ??????????? ? ?????, ???????? ?????-
??? ? ?. ?., ?? ????? ???????????? ???? ??? ?????; ????? ?????, ???????, ??????? ???????? ? ???????? ?????? ??? ?????? ??????????????????? ???????? (????????, Sapien PrimalScript), ? ????? ??????????? ??? ? ???? ??????? ?????; Operation System (CmdExec) (??????? ???????????? ???????) ? ???? ??? ??????? ????????? ?????? ????????? ?????-???? ??????? ?? ??????-
??? ?????? ???????????? ??????? ? ????????? ??? ??? ??? ????????. ??? ??????? ????? ?????????????? ??? ????? ?? ????????? ?? ???????? ActiveX, ?? ??? ????? ???????????? ??????????????, ??????? ?? ????? ??????? ?????????? ?????? ????????????????. ??????? ?????????? ?????? ????? ???? ? ??????????? ?????? ? ???????????? ???????, ??-
?????? ??????????? ????? ?? ????????? ??????, ??????????? ??????? ?????? ? ?. ?.; Transact-SQL Script (T-SQL) (?????? Transact-SQL) ? ???, ????????, ????? ???????????????? ??? ????? (?????????? ?? ?????????). ??? ??-
????? ?? ????????, ?? ????????? ????????? ?? ??????? ????? ?????? Transact-SQL. ?? ????? ????, ??? ? ??? ?????? ???????? ActiveX, ? ????-
???? ????? ???? ???? ????? ??????? ????????? ???. ?????? ? ??????? √лава 8 25
2
????????? ??????? Windows ?? ???? Transact-SQL ????? ???????? ??? ?????? ???????? ???????? ????????????? (
SP_OACreate
, SP_OAMethod
? ?. ?.), ? ? ??????? .NET ????? ?????????? ??? ?????? ????? ????????-
??? SQL Server 2005 ? ?????????? CLR integration. ???? ????? ???? ??? ????? ???????????? ??? ?????????? ??????????? ??? ??????, ???????? ??-
????????? ? ?????????????? ?????? DBCC, ?????????????? ? ?????????-
??? ???????? ? ?. ?.; SQL Server Integration Services Package (????? SQL Server Integration Services) ? ???? ??? ?????? ????????? ????????? ?? ?????????? ????? SSIS (DTS). ??? ????? ??? ?????, ???????? ?? ???? ? SQL Server 2000 (? ??? ?????? DTS ????? ???? ????????? ?? ????? CmdExec ??? ?????? ??????? ????????? ?????? dtsrun
). ???????????????? ??????? SSIS ???-
?? ????? ??????. ????????? ??? ?????? ? SSIS ????? ?????????? ? ??. 10; SQL Server Analysis Services Command (??????? SQL Server Analysis Services) ? SQL Server Analysis Services Query (?????? SQL Server Analysis Services) ? ??? ???? ??????? ????????? ?????????, ?????????-
?????, ??????? ??? ?????? ? Analysis Services (???? ??? ?????? OLAP ?? SQL Server). ? ??????? ????? ???? ???? ????? ??????? (? ???????? ?????????). ???????-
??? ?????? ?? ?? ???, ??????? ???????? ?????? ??? ??????????? ????? ???-
???. ?? ??????? General, ????? ??????????, ??????????? ??? ??????? ???? ?????, ?? ?????? ????????? ???????? Run as (????????? ???), ??????? ?????-
???? ????????? ???? ?? ????? ???????????? ??????? ?????? (?? ?????? ???-
????). ? ??????????????? ?????? ????? ???????? SQL Agent Service Account (??????? ?????? ?????? SQL Server Agent, ?. ?. ???? ????? ??????????? ?? ????? ??? ??????? ??????, ??? ??????? ???????? SQL Server Agent) ? ????-
??? ??????-??????, ??????? ??????? ??? ????? ??????? ???? ?? ?????????? SQL Server Agent | Proxies. ??? ???????? ??????? ?????? ?????? ??? ?????-
?????? ??????? ?????????? ?????? Credential ?? ?????????? Security | Creden-
tials. ???????? ??? ??? ??????????? ????? ?????????? ? ????. 8.1.4. ?????? ?????? ???????? ??? ?????? ????? ?????????? ??? ?????? ??????? Advanced: On success action (???????? ??? ??????) ? On failure action (???????? ??? ????) ? ??? ????????? ????????? ??????????, ??? ?????? ?????????, ??-
????????????, ????? ????????? ??? ??????????? (???????? ??????) ??-
???????? ????? ?????. ? ????? ???????????? ??? ???????? (??? ???????-
??? ??? ??? ????????? ??????????, ??? ? ??? ???????????): Go to the next step (??????? ? ?????????? ?????) ? ???? ??????? ??-
?????????? ?? ????????? ??? ??????? ????????????? ??????; јвтоматизаци¤ администрировани¤ SQL Server 2005 25
3
Quit the job reporting success (????? ?? ???????, ????????????????? ?? ???????? ??????????) ? ???? ??????? ???????????? ???????????? ??? ?????????? ?????, ???? ?? ?????????? ???????; Quit the job reporting failure (????? ?? ???????, ????????????????? ?? ??????) ? ??? ???????? ?? ????????? ???????????? ???????? ??? ????????????? ?????? ? ???? ?????????? ?????. ??? ?????? ???? ???????????? ?? ???????? ?? ?????? ????????? ????-
??? ????????? ?????????? ???????. ??? ????? ??????? ?????????? ??-
??????????? ???????????? ??????????? ?????????? ?????? ???????????-
????? ? ?????? ActiveX Script ??? ????? SQL ? ?????? Transact-SQL Script. ??????? ??? ???? ??????. ???????????? ???? ?????????????????? ??-
???????? ?????? ????? ???????? ??? ?????-???? ??????? ?????? ? ??????-
??, ??????? ??????????? ?? ?????????? ?? ??????????. ???? ?? ?????-
????? ??????? ? ??????????? ??????? ?? ?????????? ???????, ?? ??? ??-
????????? ?? ???????????? ???? ?????????????????? ??? ?????? ??????? ????? ????? ??????????? ????, ??????????? ??????????????? ?? ???. 8.2. ???????? ??? ????????? ???????? ?????????? ??????. ????? ???????? ???????, ??????????? ? ??? ???? ???? ???? ActiveX Script ??? ???? ?????-
???, ? ????? ????????? ??????? ?????????? SQL-DMO ??? SMO ? ??????? ???????????? ?????????? ?????? ???? ??? ?????????? ? ???????; Retry attempts (??????? ???????) ? ??????? ??? SQL Server Agent ????? ???????? ????????? ?????????? ??????? ?????, ???? ??? ?? ??????? ??-
??????? ?????; ???. 8.2. ????? ?????? ??????? ????? ??? ??????? ??????? √лава 8 25
4
Retry intervals (???????? ???????) ? ????? ????? ????? ??????? SQL Server Agent ????? ????????? ?????????? ?????????? (? ???????); Output file (???? ??????) ? ????????? ????, ? ??????? ????? ??????-
?????? ??, ??? ?????????? ???????, ???????????? ??? ?????. ???? ????-
???? ????? ???????????? ??? ?????? Transact-SQL Script ? CmdExec, ?? ?? ??? ActiveX Script (? ?????? ????? ???? ????? ?????? ???????? ????????-
???? ??????????, ????????, ??? ?????? ??????? TextStream
????????? ?????????? Scripting Runtime, ????????? ?? ????? ??????????). ? ????????, ???? ???????? ????? ???????????? ??? ???????? ???????? ?????? ?? ?????????? (????????, ??? ???????? ??????????? ?????????? ???????? Transact-SQL). ?????? ??? ???? ???? ????? ???????????? ?????? SSIS (DTS) ? ??? ??????????? ???????? ?????????? ????????????? ??? ????????/??????? ??????, ? ?????????????? ???????????? ? ??? ?????-
?????? ??????; Append output to existing file (???????? ????????? ? ????????????? ???-
??) ? ?????? ???? ???????? ???????????? ? ??? ???????, ????? ?? ?????? ??????????? ?????????? ?????????? ?????? ? ?????-?? ?????; Log to table (????????????????? ? ???????) ? ???????? ????????? ????-
???? ???????? ?????????? ????? (?????? ????????, ??? ???????????, ???-
?????????, ????????, ???????? Transact-SQL) ? ??????????? ??????? sysjobstepslogs
? ???? ?????? msdb
. ?????? View (????????) ?????? ?? ????? ?????? ????????? ??????????? ?? ??? ??????? (??? ????? ???? ?? ????????), ? ????????? ????, ??????? ?? ?????????? ????? ??? ?????? ????????? Output file. ? ?????? View ????? ? ?????? ?????????? ????? ? SQL Server 2005 ?????? ?????????? (??? ???????? ?????? ??? ????????-
??? ? SQL Server 2000); Append output to existing entry in table (????????? ????? ? ?????????-
??? ??????? ? ???????) ? ???? ???? ?????? ??????????, ?? ??? ?????? ??????? ??????? ? ??????? sysjobstepslogs
????? ??????????? ????? ????-
??. ???? ?? ????, ?? ??? ??????? ??????? ????? ????????? ??? ????????-
?????? ?? ????? ??????; Include step output in history (???????? ????? ????? ? ???????) ? ???? ???? ?????? ??????????, ?? ????? ????? (????????, ????????? ?????????? ?????? Transact-SQL) ????? ???????????? ? ??????? ??????? ?????????? ???????. ? ???? ?????????? ????? ???? ????? ??????????, ?????? ??? ?????? ????? ?????? ????? ???? ????? ???????. ? ?????????? ???? ?????? ???? ?????? msdb
????? ??????????? ????????. ????? ???? ??? ?? ?????????? ?????? ????? ???????, ????? ??????????? ?? ?? ??????? Steps ???? ??????? ???????. ???????? ????????, ??? ?? ?????? јвтоматизаци¤ администрировани¤ SQL Server 2005 25
5
?????? ????? ??????? ??? ?????? ??????? ? ?????? ????? ??????, ? ????? ?????????? ????, ??????? ????? ??????????? ?????? (??? ??????? ?? ?????-
?????). ?????? ?????????, ??? ????? ??????? ??? ???????? ???????, ? ????????, ????? ?? ??? ????????? ??? ??????? ?? ??????????. ???? ??, ?? ????? ??-
??????? ?????????? ?? ??????? Schedules (??????????) ??????? ???????. ???? ????????? ?????????? ???? ?? ??????? ?????-???? ????????????. ??????? ?????? ????????? ???????: ? SQL Server 2005 ????????????? ?????? ???? ?????????? (??? ????????-
?? ??? ?????? ?????? Schedule Type (??? ??????????) ? ???? ??????? ??????????): Recurring ? ????????????? ????????, ??????? ????? ???????????, ??-
??????, ?????? ????, ??? ?????? ??????, ??? ?????? ?????; One time ? ???????? ????? ????????? ?????? ???? ???; Start automatically when SQL Server Agent starts ? ??????? ????? ??-
????????? ????????????? ?????? ??? ??? ??????? SQL Server Agent; Start whenever the CPU become idle ? ??????? ????? ??????????? ?? ????? ??????? ???????????? ??????????. ????????? ??????? ????????-
???? ?? ??????? Advanced ??????? SQL Server Agent; ????? ??????? ????????? ? ???????????? ? ??????????? ???????????, ??-
????????, ????? ?????? SQL Server Agent ?????????? ? ??????? ??????-
???. ?????????, ???????? ??? ??? ????? ???????????; ? ???????????? ????? ???????? ???????? ?? ???????. ?????????? ??? ??-
??????? ????? ????????. ????? ??????? ?????? ???? ????????? ?????-
????? (? ???????????? ???????? ????? ??????????, ????????? ??????-
?????? ? ?. ?.), ????? ??????????????? ???????? Manage Schedules (????????? ????????????) ???????????? ???? ??? ?????????? SQL Server Agent | Jobs; ???? ? ??? ??? ???? ?????????? ??????????, ?? ???????????? ??? ??????? ???????, ????????? ??? ?????? ?? ?????. ?????????? ??????????????? ??????? Pick (???????) ?? ??????? Schedules ? ??????? ???????????? ??????????. ?????? ?????????? ?????????, ??? ? ?????????? ? ? ??????? ?????? ???? ???? ? ??? ?? ????????, ??????? ????? ???????? ????? ??-
????? ?????? ?? ??????????, ????????? ??????? ????????? ? ?????????? ???????. ??? ?????? ?????????? ?????????? ??????? ? ??????????? ???? Pick Schedule (??????? ??????????) ?????? ??????? ? ?????? OK; ??? ?????? ??????? ????? ????????? ????????? ??????????. ?? ?????? ??????? ??? ????? ???? ????? ??????; √лава 8 25
6
???? ??? ?????, ????? ?? ?????-?? ????? ?????????? ????????? ???????-
???? (????????, ?? ????? ?????????? ?????????? ????????? ????????? ??-
????????? ???? ?????? ?????? ???? ??? ?????????????), ?? ????? ????? ??? ?????????? ?????????. ??? ????? ????? ??????? ??? ???????? ? ????? ?????? Enabled. ???????? ?????? ??????? ??????????????? ??????? ??????? ? ?? ?? ?????-
?????, ? ? ????? ?? ?????-?? ???????, ??????? ????????? ?? SQL Server. ??-
??????, ????? ????????? ?????????????? ?????????? ?????????? ????????-
??? ? ??????, ???? ????? ? ??????? ?????????? ??????????? (??? ??? ???????? ??????? ????). ??? ???????????? ??????? ?????????? SQL Server Agent ??????????? ?????????????? (alerts). ???????? ??? ?????? ? ???????????-
????? ????? ?????????????? ? ????. 8.1.7. ????? ?????? ???????, ??? ??????-
??? ??????????????, ??? ???????????? ???????? ????? ????????????? ????-
???? ???? ???????, ????? ?? ??????? Alerts (??????????????) ??????? ??-
?????. ????? ????, ??????? ????? ????????? ? ??? ??????? ?????????? ? ???????. ????? ????? ??? ??????? ? ??????? ??????? Start Job (????????? ???????) ???????????? ???? ??????? ? Management Studio. ?????? ??????? ? ???????-
???????? ???????? ?????????? sp_start_job
. ????? ?????? ?????????? ??????? ???, ????? ??????? ?? ?????????? ???? ?????????? ? ????? ??????????. ????????, ???? ? ??? ????? ?????????? ??-
??????? ??????????? ?????? ??? ?????? ?? ?????????? ????????, ?? ?? ??-
???? ????????? ??????????????? ??????? ???, ????? ?? ????????? ????????-
?? ??????????? ?????? ???? ?????? ????? ? ??? ??????????? ?? ???????? ???? ??????????????. ??????????? ???????? ????????? ? ???????? ????? ?????? ?????, ??? ???????? ???? ?????????? ??????????? ?? ???? ????????. ????????? ????????? "??????" ??????? ? ????? ?????????? ????? ??? ??-
???? ??????? Notifications (???????????) ??????? ???????. ?? ???? ??????? ?? ?????? ????????? ????????? ?????????: E-mail, page ? net send ? ??? ????????? ????????? ??????? ??????? ?????????? (??? ??? ??????? ????? ?????????? ? ????. 8.1.8) ??? ???????? ?????????????? ? ?????????? ??????? ?????????????? ?? ??????????? ?????, ?? ??????? ? ?? ???? (?????????? ?????? Messenger). ? ????? ???????????? ??? ????????, ????? ????? ???????????? ?????????: When the job fails ? ?????????? ?????????????? ?????? ?????, ????? ??? ?????????? ??????? ???????? ??????. ???? ??????? ?????????? ?? ?????????; When the job succeeds ? ?????????????? ????? ???????????? ?????? ??? ???????? ?????????? ???????; јвтоматизаци¤ администрировани¤ SQL Server 2005 25
7
When the job completes ? ?????????????? ????? ???????????? ? ??-
??? ??????; Write to the Windows Application event log (?????????? ?????????? ? ?????????? ??????? ? ?????? ??????? ?????????? Windows) ? ????? ??????? ????? ????????????, ????????, ???? ??????? ??????? Windows ? ?????? ???????? ????????????? ??????????? ? ???? ?????? ???, ?????-
???, ? ????? ???? ???????? ??????????, ??????? ????????????? ???????-
???? ????????? ???????????? ??????? ? ???????? ??????? Windows ? ????????????? ??? ??? ?????-???? ???????? (????????, GFI SELM ??? EventTracker); Automatically delete job (????????????? ??????? ???????) ? ??? ?????? ????? ???????? ??????? ????? ?????????? ???? ???? ??????. ?????? ????? ??????? ???????????? ??? ???????, ??????? ????????? ??????? ?????-
???, ????????, ???????? ???? ??????-?????, ? ??????? ????? ??????????-
?? ?????? ?????????? ???????? ???????? ??? ??????????. ?? ??????? Targets (??????????) ??????? ??????? ?? ?????? ??????????, ?? ????? ?????? ???????? ????? ??????????? ??? ???????. ??? ??????????? ???-
????? ?????? ??? ??????? ?? ????????, ?? ??????? ???????? ????? ??????-
?????????? ??????????. ???????? ??? ????????? ????? ?????? ????????? ? ????. 8.1.6. 8.1.4. Ѕезопасность при выполнении заданий ???? ?? ????? ???????????? SQL Server 2005 ? ????? ?????? ????????? ??-
???????? ???????????? ??? ?????????? ?????? ???????. ? SQL Server 2000 ? ????? ???????????? ???? ?????? ??? ???????? ??????? ???????: ????????? ??????? ? ??????? ??????? ?????? SQL Server Agent (?? ????-
?????); ??????? ?????? ??????? ??????, ?? ????? ??????? ?????? ???? ?????-
?????? ??? ??????? ActiveX Script ? CmdExec. ????? ??????? ?????? ???-
?? ????????? ? ?????????? Management Studio (?? ??????? Job System ??????? SQL Server Agent), ?? ??? ??????????? ????? ???????? ?????? ? ??????, ???? ?? ???????????? ?? Management Studio ? SQL Server 2000. ? SQL Server 2005 ?? ?????? ????????? ???? ??????? ?????? ??? ?????? ????? ?????? ???????. ????? ???????, ?????? ???? ????? ???? ???????? ??? ?????????? ?? ????? ??????? ?????? ? ?????????? ???????????? ???????, ??? ?????? ? ???????????? ?????????? ????????????. ???? ?? ??? ??? ????-
????????? ?????????? ????? ?????? ??????????, ??? ?? ?????? ?????? ??-
√лава 8 25
8
??????? ????? ??????? ? ??????? ??????? ?????? SQL Server Agent, ??? ??? ?????? ???????? ? ?????????? ??????? SQL Server. ??? ???? ????? ?????????? ?????????? ??????? ??????, ?? ????? ??????? ????? ??????????? ???????????? ???? ???????, ????? ????????? ????????? ????????. ?????? ???????? ? ??????? ?????? Credential. ??? ????? ????? ??????? ???-
?????? Security | Credentials ? Management Studio ? ??????????????? ?????-
??? New Credential (????? ??????? ??????) ???????????? ???? ????? ??????-
????. ????????? ???? ???????? ?????? ??????? Credential. ? ??? ??? ???????-
???? ???????: Credential name (??? ??????? ??????) ? ????? ??????? ?????-?????? ???????? ???, ????? ?? ??????, ??? ???? ??? ?????? ???? ??????; Identity (?????????????) ? ????? ????? ??????? ????????? ??? ?????-
??? ??????? ?????? Windows. ??? ??????? ?????? ?????? ???????? ?? ??-
??????? ?????????? (??? ? ????) ???? ???????, ??????? ?? ?????? ???-
????????? ???????????????? ????? ???????; Password (??????) ? Confirm Password (????????????? ??????) ? ???, ???????, ?????? ??? ?????? ??????? ??????. ????? ????, ??? ?????? Credential ??????, ?????? ????????, ??????? ??? ????? ????? ?????????, ? ??????? ??????? ?????? ?????? ??? SQL Server Agent. ??????? ??? ????? ?? ?????????? SQL Server Agent | Proxies. ??? ???????-
???? ??????? ????????? ??? ??????? ???? ????? ? ? ??????????? ???? ??? ?????????? ?????????? ????? ???? ??????????????? ???????? New Proxy (????? ??????). ????????? ????, ??????????? ??????????????? ?? ???. 8.3. ? ???? New Proxy Account ??????????: ? ???? Proxy name (??? ??????) ?????? ??? ??????????? ??????? ?????? ??????; ? ???? Credential name ??????? ????????? ????? ?????? Credential; ? ???? Description ?????? ???????? ??? ??????????? ??????? ?????? (?? ???????); ? ?????? Subsystem (??????????) ??????? ???? ??????, ??? ??????? ???-
?? ????? ???????????? ????????? ??????? ?????? ??????. ???????? ????????? ????????? ???????? ? ??????? ???????? ????? ??????? ? ? ?????? Run as ?? ??????? General ??????? ????????? ???? ??????? ?????? ??????. ??????? ??? ??? ???????: ??? ?????? ???? ActiveX Script ?? ?????? ???????? ???????? ?????????? (?. ?. ??????? ??????, ? ??????? ??????? ??????????? ???? ??????) ????? јвтоматизаци¤ администрировани¤ SQL Server 2005 25
9
? ???? ?????????? ??????? (???????????? ??????????), ??? ??????????-
??? ??????? ??????? ??????. ?????? ????, ??? ??? ????? ???????, ????? ????? ? ?????????, ???????? ????? ?? ?????????????? "vbrunas.vbs"; ??? ?????? ???? Transact-SQL Script ?? ????? ?????? ???????? ???????? ?????????? ? ???? ?????????? ???????. ??? ????? ??????? ????? ?????-
????: ???????????? ? ???? ??????? ??????????? EXECUTE AS
(??. ????. 5.5); ??????????????? ????? Run as user (????????? ?? ????? ????????????) ?? ??????? Advanced ??????? ????? ?????. ?? ?????? ??????? ?????, ?? ????? ???????? ????? ??????????? ???? ???? (?????? ???? ?? ????, ??? ???????? ????? ???????, ????????? ?? ??????? ??????? sysadmin
). ???. 8.3. ???? ???????? ????? ??????? ?????? ?????? √лава 8 260 8.1.5. ѕросмотр истории выполнени¤ заданий ??? ??? ??????? SQL Server Agent ???? ????? ??????????? ?? ??????????, ??, ?????? ?????, ??? ??????????? ????????????? ??????? ?? ??????????, ????????, ??? ????, ????? ?????????, ??? ??? ??????????? ??????? ? ?????-
???? ??????? ?? ?????????. ??????????? ??????? ?????????? ??????? ? SQL Server 2005 ????? ?????-
?? ?????????. ?????? ?????? ? ??????????????? ????????? SQL Server Agent. ????? ???-
???????? ???????, ??????? ????????? ? ??????? ?????????? ??????????? ???????, ????? ?????? ??????????????? ???????? View History (???????-
???? ???????) ???????????? ???? ???????. ????????? ???? ????????? ???-
????? ? ??????????? ????????, ??????????? ??????????????? ?? ???. 8.4. ???. 8.4. ???????? ??????? ?????????? ??????? ??? ???? ????????? ???????? ????? ?????? ?????????? ? ?????????? ??????? ?? ?????? ???????. ???? ??? ????? ??????, ?????? ???????? ?????? ??? ??????????, ?? ????? ????? ???????????? ?????? ???? ?????? ????????? ?????????? ?? ??????? ?????????? ???????. ? ????? ??????? ???? ?????? ???? ??????????: ???????????? ??????? ?????-
????? ?????? ?????? ???????. ???? ?? ??????? ? ??? ????????? ????????, ??, ?????? ????????, ??? ??????????? ??????? ?????????? ?? ???? ????????, ????? ????? ???? ????? ??????, ? ?????? ????????? ???????? ????????. јвтоматизаци¤ администрировани¤ SQL Server 2005 261 ??? ????????? ????? ??????? ?????????? ????? ????? ???????????? ????? ???????? SQL Server 2005, ??????? ?????????? Job Activity Monitor (??????? ?????????? ???????). ????? ?? ???????????????, ?????????? ????? ?????? Job Activity Monitor ??? ??????????? SQL Server Agent ? Management Stu-
dio ? ? ??? ??????????? ???? ??????????????? ???????? View Job Activity (??????????? ?????????? ???????). ??? ????? ????????????? ??????????, ??????????? ?????????? ?? ???. 8.5. ???. 8.5. ???? Job Activity Monitor ??? ?????? ????? ???? ?? ?????? ?????? ???????? ??????? ?????????? ?? ???? ???????? ?, ????????, ????? ?? ???????, ??? ?????????? ??????? ???????? ????????. ?? ????? ???? ?? ?????? ????? ??????? ???????? ????-
??? ??? ??????????? ????????? ??????? ??? ??????????. ?????????? ??? ????????????? ?? ?????? Job Activity Monitor ????? ?? ???-
???? sysjobactivity
???? ?????? msdb
. ?? ?????? ?????????? ? ???? ?????-
?? ? ????????. ?????? ??? ?? ????? ??????, ????????? ?????????? ? ???? ??????? ?????????????, ?, ????????, ??????? ? ??? ???????????? ?? ?? ???-
?????? ???????????????, ? ?? ?? ??????. ???????? ????? ?????? ?????-
????? ?? ???? ??????? (????? ?????????, ??? ?????????? Job Activity Moni-
tor) ????? ??? ?????? ???????? ????????? sp_help_jobactivity
. ??? ???? ?????? ????????? ?????????? ?? ??????? ?????????? ??????? ? ??????????????? ????????????? ?????? ???????. ??? ????????? ????? ?????? (????????, CmdExec ? Transact-SQL Script) ????? ????????? ?????? ??????-
?????? ??????????? ? ???? ??? ???????????????? ?????????? ? ???????-
??? ? ??????? sysjobstepslogs
. ??? ????????? ???????????? ??? ?????? ??????? Advanced ??????? ????? (??. ????. 8.1.3). 8.1.6. ћультисерверные задани¤ ??????? SQL Server Agent ? ??? ?????????? ?????? ???????? ??? ????????-
????? ???????????????? ?????. ?? ???? ?? ????????? ?? ??????? ???????-
√лава 8 26
2
???? ? ????????? ???????? SQL Server, ?? ?????? ????? ???????? ??????? ??? ???? ???????? ???: ?????? ????, ????? ??????????? ??????? ??????? (????? ??????????) ?? ?????? ??????? ????????, ????????? ?? ??? ?????? ?? ????? ???????. ???? ?????? ?????? ????? "?????????" ??????? ??? ?????????? ?? ?????? ???????? ? ??????????????? ???????? ?????? ?? ?? ???????????. ??? ????? ??? ??????????? ????????? ??????????? ?????????? ??????????????? ??????? ? ??????? ????? ???????. ????? ????????????? ?????????????????, ??????????????? ??????? ????? ?????? ? ????????????? ?????????? ???????????????? ????????. ??????-
?????, ??? ??? ????? ?????????? ???????? ?????? ? ?? ????????? ?? ????? ??????? ? ????? ????? ????? ?????? ???????? ???? ?????? ?? ?????? ???????. ???? ?? ?????????? ??? ???????? ??? ?????? ??????? SQL Server Agent, ?? ????????? ???????????????? ?????????? ???????? ?? ?????? ???????? ????? ????? ??? ?????? ?????? ??????????????? ???????. ? ??????? ??????????????? ??????? ???????????? ??????? ???? ?????: ??????? ?????? (master server) ? ??????, ?? ??????? ????????? ??????-
????????? ???????. ???? ?????? ???????? ?????????? ? ???????? ? ???-
??? ??? ?????????? ?? ?????? ??????? ? ????????? ?? ??? ?????? ? ??-
????????; ??????-?????????? ??????? (target server) ? ??? ??????, ??????? ???????-
?? ??????? ??? ?????????? ?? ???????? ??????? ? ???????????? ????? ??? ? ??????????. ?????? ??????? ???????? ?? ??????????? ?????? ????-???????????? ???-
???, ??????? ???? ?????? ?? ???????? ??????? ????????, ???? ???????? ??-
??????. ??? ????????? ??????? ????????? ? ???? ????????-??????????? ??-
?????. ??? ???? ??????? ???????-?????????? ????? ???? ???????? ?????? ???? ??????? ??????: ????????? "??????" ??? ?????? ??????? ????????? ??-
????????. ????? ?????????? ??????? ??????????????? ??????? ?????????? ???????-
??????: 1. ??????? ????? ?????????, ?? ????? ????? ??????? ??????? ???????? ?????? ?????? SQL Server ? SQL Server Agent ?? ??????? ??????? ? ?? ????????-??????????? ???????. ??? ??????????? ?????? ???????? ?? ???-
?? ???????? ??????? ??????? (????? ??????? ?? ?????? ?????????????-
????) ? ?????? ???????? ???????????? ??????? ???? ?? ?????. ????? ?????, ????? ??????? ?????? SQL Server ? SQL Server Agent ???????? ???-
???? ???????? ????????????????? ??????? ?? ???????-?????????? ????-
???, ? ????????. ? ????????? ?????? ????????? ???? ????? ????????? ????? ???????. јвтоматизаци¤ администрировани¤ SQL Server 2005 26
3
2. ????????? ???????? ? ??????????? ?? Management Studio ? ???????? ??????? ? ?????????? ??????? Multi Server Administration | Make this a Master (??????????????? ????????????????? | ??????? ???? ?????? ????-
???) ???????????? ???? ?????? SQL Server Agent ??? ????? ???????. ??-
??????? ?????? ????????? ???????? ??????? Master Server Wizard. 3. ?? ?????? Master Server Operator (???????? ???????? ???????) ??????-
???? ?????? ?????? ????????? ???????????????? ?????????????????. ??? ??????? ????????, ?. ?. ?????? ? ???????? ????? ? ??????????? ?? ?????? ??????????? ?????, ???????? ? ??????? ??????? (???????? ??? ?????? ? ??????????? ????? ?????????????? ? ????. 8.1.8). ???????????? ??? ????-
??? ??????????? ? ???, ??? ?????? ???? ???????? ????? ???????????? ? ??-
????????? ?????????? ??????????????? ???????. 4. ????? ?? ?????? Target Servers (???????-??????????) ??? ??????????? ??????? ?? ???????, ??????? ????? ????????? ?????????-???????????? ??? ????? ???????? ???????. ? ?????? ????????-??????????? ? ?????? ????? ?????? ????? ???????? ?????? ?? ???????, ??????? ???????? Management Studio. ???? ?????-?? ??????? ??? ?? ???? ???????????????? ? Manage-
ment Studio, ? ??? ????? ???????????? ?? ????? ?????? ??? ?????? ?????? Add Connection (???????? ???????????). ??? ??????? ?? ?????? Next (??????) ?????????? ???????? ??????????? ????????? ???? ?????-
??? ??? ????????-???????????. 5. ????? ?? ?????? Master Server Login Credentials (????? ??? ??????????? ? ???????? ???????) ??? ??????????? ??????????, ??? ?????? ????? ?????-
???????? ??????????? ???????-?????????? ? ???????? ???????. ???? ??-
????????? ????? ??? ??????????, ?? ?????? ????? ???????????? ?????? ?? ???? ??????. ???? ??????? ?????? ??? ??? ?? ????????????, ?? ?????? ????? ????????? ? ????????????? ????. ????? ????? ??? ????????? ?????-
???? ???? ?????? ? ?????? ?????? Finish (?????????), ????? ????????? ??????? ? ????? ???????????????? ?????????????????. ???? ????????? ?????? ???????, ?? ????? ?????????? ???? Object Explorer ? Management Studio ?? ??????? ?????????: ??? ?????? SQL Server Agent ???????? ??????? ? ??????? ???????? ??????? MSX, ? ? ?????????? Jobs ??- ?????? ??? ??? ??????????: Local Jobs (????????? ???????) ? Multi-Server Jobs (??????????????? ???????). ?? ???????-?????????? ??????? ??? ?????? SQL Server Agent ????????? ? ??????? ??????? TSX: ???_????????_???????, ????? ????, ? ?????????? Jobs ?? ???? ??????? ????? ?????????? ??? ?????-
?????? ??? ?? ??????? ??????? ??????????????? ???????. ??????????????? ??????? ????????? ?? ???????????? ???? ?????????? Multi-Server Jobs ? ???????? ??? ??, ??? ? ???????, ?? ???????????? ??-
?????????: ?? ??????? Targets ??????? ?????? ??????? ?? ??????? ??????? ???????, ?? ??????? ??? ??????? ?????? ???????????. √лава 8 26
4
???? ?? ????????? ??? ?????? ???????????????? ??????? ?????????? ?? ? ???????? ??????? ??????? ?????? SQL Server Agent, ? ?? ????? ????????-
??? ??????? ???????-?????? (??. ????. 8.1.4), ?? ??? ???????? ????????? ??-
???????????? ????????: 1. ????????? ?? ???????-?????????? ??????? ??? ????????? ??????? \HKEY_ LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Services\SQL Agent \AllowDownloadedJobsToMatchProxyName
???????? 1 (?? ????????? ?? ???-
?? 0). 2. ??????? ?? ???????-?????????? ??????? ??????? ??????-?????? ? ????? ??-
???? ?? ???????, ??? ?? ??????? ??????? (??? ??? ??????? ???????-
??????, ??????? ???????????? ? ???? ???????). ???? ?? ??????????? ??????????????? ???????, ?? ??????? ????? ??? ??????-
?? ????????? ??????? ?????????? ??????? ????????????? ??????? SQL Server Agent ???????-?????????? ?? ??????? ??????. ??? ????? ??????? ?? ??????? Advanced ??????? SQL Server Agent ?? ???????-??????????. ???? ????? ?? ???????, ??????? ?????????? ? ?????????? ??????? ?? ??????? ???-
???? ?????????? ?? ????? (?????? ?????????? ?? ???????? ??????? ?? ??????-
??????????). ???? ?? ???????? ??????? ?? ??????? ???????, ?? ????? ??????????? ??????? ?? ????? ????????????? ????????? ????????-???????????. ????? ????????-
???? ????? ????????, ????? ???????????? ???????? ????????? sp_post_ msx_operator
. ?? ????????? ??????? ?? ????, ??? ?????? ?????????? ???????. 8.1.7. –абота с предупреждени¤ми ?????????????? (alerts) ? ??? ??? ???? ?????? ???????? ????????????? ??-
???? ? SQL Server. ?????????????? ????????? ??????????? ?? ???????, ??-
????? ?????????? ?? SQL Server. ? ????? ???????? ?????????: ??????? ?????? SQL Server. ??? ???????? ????? ??????? SQL Server, ??????? ????? ????????????? (???????????), ?????????? ????????. ??? ???? ?????????? ?? ???????????, ????? ?????? ?????? ????????????? ?????? ?????? ???????: ????????? ?????? (????????, ??? ?????? ? ????-
??? ???????? ?? 0 ?? 9) ???????? ?????? ??????????????? ?????????-
?? ? ???, ??? ?? ??????? ???-?? ?????????. ????? ????, ???????????? (??? ???????????) ????? ??? ????????????? ?????? ? ?????? ?????; ????? ???????? ???????? ?????????? ???????? ?? ????????? ???? ???????. ???????? ??? ???????? ?????????? ???????? ? ?????? ????-
?????? ? ?? ??????? ?????????? ????? ?????????????? ? ????. 11.4; ????????????? ??????? WMI. ??? ?????? ? ????????? ??????? WMI ????? ?????????????? ? ????. 9.4. јвтоматизаци¤ администрировани¤ SQL Server 2005 26
5
?????? ? ???????????????? ???????????? ?? ?????????? SQL Server Agent | Alerts. ????? ??????? ????? ??????????????, ????? ??????????????? ?????-
??? New Alert (????? ??????????????) ?? ???????????? ???? ????? ??????-
????. ????? ?? ??????? General ??????? ???????????? ?????????????? ?? ?????? ?????????: Name ? ??? ???????????? ??????????????; Enable ? ???? ???? ?????? ????, ?? ?????????????? ???????? ?? ?????. ?????? ??? ???????????? ??? ????, ????? ?? ????? ????????? ?????????? ??? ??? ????????; Type ? ??? ??????????????. ?? ???? ???????, ??? ?????? ????? ???????-
???? ??? ?????????????? ? ????? ????????? ????? ????? ??? ???? ??-
???????. ? ????? ???????????? ??? ????????: SQL Server event alert ? ?????????????? ????? ??????????? ?? ?????-
????? ? ???????????????? ?????? SQL Server; SQL Server performance condition alert ? ????? ????????????? ????? ???????? ????????? ???? ????????? ?????????????????? ? ????????? ???????? ?? ????????? ???? ???????; WMI event alert ? ????? ????????????? ??????? ???????? WMI. ?????????? ??????????? ??????? ???? ??????????????. ???? ????? ???????????? ?????????????? ???? SQL Server event alert. ??? ??? ?? ?????? ????????? ????????? ?????????: Database name (??? ???? ??????) ? ?????????????? ????? ???????????, ?????? ???? ???????? ?????? ? ???????????? ???? ??????. ? ????? ???-
????????? ???? ??? ???? ?????? ?? ???? ??????? ? ??????????? ???????? <all databases> (??? ???? ??????); Alert will be raised on: Error number/Severity (?????????????? ???????-
??: ??? ?????? ?????/? ?????????) ? ???? ???????? ?????????? ????? ?????? ??? ??????? ????????. ??? ????????????? ?????? ? ???? ????-
??? ??? ????? ?????? ?? ????????? ???? ?????? ???????? ?????????? ???????????? ??????? ??????????????. ????????? ??? ?????? ???????-
??? ? ???????????????? ?????? ????? ?????????? ????? ? ???? ???????; Raise alert when message contains (???????????, ???? ????? ?????? ??-
??????) ? ????????? ?? ????? ? ??????? ???????? ??????, ? ????? ????-
????? ??? ???? ??????. ????? ??????? ????????????? ???????? ?????? ? ??? ??????, ???? ?? ?? ?????? ???????????? ????? ??????. ? ????? ???-
??? ??????????????????, ????????????? ????? ?????????????? ? ?? ??-
??? ?????? ???????. √лава 8 26
6
????? ?????? ?????? ???? ????? ???????????????? ? ?????????, ? ??????? ? SQL Server 2005, ? ??????? ?? ??????? ? SQL Server 2000, ??? ?????? ? ??-
?????? ??????. ?????? ????? ??? ???????????? ??????????????? ???????? "Events and Errors Message Center" (????? ????????? ? ???????? ? ???????), ????????????? ?? ????? Microsoft (?? ?????? http://go.microsoft.com /fwlink/?LinkId=47660). ?????? ???????? ?????? ?????? SQL Server 2005 ??? ???? ???: ?? ?????????? ?????? ??????????? ????????? ??? ?????? ??-
???????? ?? ?????????? ??????. ??????? ???????? ????? ??????? ?????-
????? ?? ????????? ???????? ????? ??????????????? ??????? SQL Ser-
ver 2005: 1204 ? ????????? ???? ?????? ??????? ? ???, ??? SQL Server ?? ??????? ??????????? ??????? ??????????? ?????? ??? ????, ????? ???????? ??-
??? ?????????? ? ??????????? ??????. ??? ??????? ???? ???????? ???-
?? ????????? ????? ??????????? ?????? ?? ??????? ??? ? ????????? ??-
??????? ????? ????????? ???????? ????????? sp_configure
? ???????-
??? locks
; 1205 ? ??????, ????????????????? ? ???????????????? (deadlock) ?? ???????. ???????????????? ?????? ???????? ?????????? ????? ?????-
?????? ??????????. ? ?????? ????????? ????? ?????? ?????????????? ????????????? ??????????? ????????? ?????????????, ? ????????????? ????????????? ??????????? ?????????? ???, ????? ???????????????? ?? ???????????, ???, ?? ??????? ????, ????????????? ??? ?????? ?? ?????? ??????????; 3041 ? ???? ?????????? ??????????? (?? ????? ?????? ????????); 3267 ? ??? ?????? ?????????? ??????????? ???????????? ????????? ??-
?????? ???????; 6103 ? ????????? ????????? ???????? ????????????????? ??????????; 9002 ? ???, ????????, ???????? ????? ??????????????? ??????. ??? ??-
?????? ? ???, ??? ??????????? ????? ? ??????? ??????????. ??? ???????, ?????????? ?????? (????? ?????? 9002) ??????????????? ?????? ?????, ????? ?? ??????, ??? ?? ????? ??????? ????? ?????????? ????-
???????? ????????, ? ??????, ????? ??? ??? ????? ?????? ????????? ?? ???? ?????????. ???? ??????????????? ???????????????? ?????? (? ??????? ???? 50000). ???????????? ?????? ?????????? ???? ?????????? ???????? ????????? ???????. ???????????, ??? ? ???? ?????? ???? ????? ?????? ???????. ? ??-
??? ?????????? ? ???? ??????? ?????? ????? ?? ???????????? ????????? ?????????????. ??? ????? ?? ??????: ?????????? ???????????????? ??????; ??????? ??? ???? ??????? ???????? ??? ???????? ????????? ??????; јвтоматизаци¤ администрировани¤ SQL Server 2005 26
7
????????? ? ???? ??????? ???????? RAISERROR
, ??????? ?????????? ?????? ??????; ????????? ?????????????? SQL Server Agent, ??????? ????????????? ?????? ? ????????? ?? ??? (????????, ???????? ?????????????? ?? ????-
??????? ?????). ???????, ? ???? ????? ?????? ????? ???????? ? ??? ??????. ?????, ?????-
???, ?????? ????????? ? ???????? ??????? ?? ???????? ??????????? ?????. ?????? ????????????? ?????? ? ?????????????? ????????? ???????? ????-
??? ? ??????????, ? ? ????????? ????????? ??? ????? ??????: ????????, ?????????????? ????? ????????? ?? ?????, ? ??? ??????????, ??????? ????? ???????????, ????? ????????? ???? ??????. ? ?? ?? ????? ???????? ???????????????? ?????? ??????? ???????????? ????-
?? ??? ?????-?? ?????? ????????, ??????? ?????????? ?????, ????????? ??? ?????????? ??????? ???????? ??????? ????????? ????????. ?????? ? ????????????????? ???????? ????? ????????? ??????? ????? ??? ??????? ???????? Transact-SQL. ??????? ?????, ??? ? SQL Server 2005 ????????? ??????????? ????????? ?????? ?? ???? Transact-SQL ??? ?????? ?????????????? ??????????? TRY ... CATCH
. ?????? ??????????? ????????? ?? ???, ??? ????????? ???????? ????????????-
???? ?????? ?? ????????: 1. ??????, ??? ????? ???????, ? ??????? ???????????????? ?????????. ? SQL Server 2000 ??? ????? ???? ??????? ? ??? ?????? ???????????? ??????????, ? ?? ???? Transact-SQL, ? ? SQL Server 2005 ? ?????? ??????-
???? ???? Transact-SQL ??? ?????? ???????? ????????? sp_addmessage
, ????????: sp_addmessage 50001, 16, '???????????????? ??????'; ????? 50001 ? ??? ????? ???????????????? ?????? (??? ??? ????????, ??? ?? ??????????? ?????? ???? ?????? 50000, ????? ???????????????? ?????? ?????? ?? ????? ????????), 16 ? ??????? ???????? (?? 0 ?? 25), '???????????????? ??????'
? ????? ????????? ??????. ? ???? ?????? ????? ???????????? ?????????, ? ??????? ??? ????????????? ?????? ????? ????????????? ???????? (????????, ??? ???? ??????, ??? ??????? ? ???? ?????? ? ?. ?.). 2. ????? ????? ????????? ???????? ? ???????? RAISEERROR
. ????????????-
??? ??????? ? ???? ???????? ????? ????????? ???: RAISERROR (50001, 16, 1) WITH LOG; ???????? WITH LOG
????? ??????????? ?????????, ?. ?. ? ????????? ?????? ?????????????? SQL Server 2005 ?? ?????? "???????" ??? ??????. ??? √лава 8 26
8
??????? ? ???, ??? ?????????????? SQL Server 2005 ?????????? ?????? ??????? Windows, ? ???????? WITH LOG
??? ??? ? ????????? ?? ??, ??? ??-
???????? ?????? ???? ???????? ? ?????? ??????? Windows (?????? ??-
????? ? ?????? ??????? ?????????? ? ??????? 17063, ? ??? ????? 50001 ????? ??????????? ?????? ? ?????? ?????????). ???????? 16 ? ??? ???-
???? ???????? ??????, ? 1 ? ??? ??? ????????? ??????. ??????????? ?? ???? ????????? ??? ???? ????????? ?????? ????? ???????????? ?????- ??? 1. ??????????? ???????? ????????, ????? ???? ? ?? ?? ?????? ????? ???? ????????????? ? ?????? ?????? ????. ? ???? ?????? ????????, ? ??-
??? ?????? ??????? ???? ??? ????????, ?????, ??????????? ??? ????? ??-
??????? ????????? RAISERROR
????????, ???????? ?? 1 (??????????? ?????-
????? ???????? ? 127). 3. ????? ????? ????????? ??????????????, ??????? ???????? ??????????? ????????. ????? ????? ????????? ???????? ???? ?????? ? ???????????? ??????? ???????? (severity). ?????? ??????? ?????????????? ??? ???? ?????? ? ???????? ???????? ?? 19 ?? 25. ?????? ???? ??????? ? ??? ??? ?????????? ??????????? (fatal) ??????, ??????? ??? SQL Server ????????? ?? ?????. ????? ????????? ?????????????? ??? ?????? ????????????? ?????? ?????-
??? ? ??????? ?????????????? ?????????????? ? ????????? ?? ?????? ???-
????. ?????????????? ???? SQL Server performance condition alert ???????????-
?? ??? ????, ????? ??????????? ????? ?? ?????????? ???????? ??? ????????? ?????????????????? ?????????? ????????. ??? ????? ?????????? ????? ?????????: Object (??????) ? ??? ??????? ? ????????? ????????; Counter (???????) ? ??????? ??? ??????? ???????, ???????? ???????? ??-
??? ?????????????; Instance (?????????) ? ????????? ???????, ??? ???????? ????? ???????-
?????? ??????????. ????????, ???????????? ??????? Databases ????? ??-
?? ?????? ?? SQL Server; Alert if counter (??????????, ???? ???????) ? ?????????????? ?????????, ???? ?????? ???????????? ???? ?? ???? ???????: rises above ? ???????? ???????? ???????? ????????, ????????? ? ???? Value; falls below ? ?????? ???? ????? ????????; becomes equal to ? ?????? ?????? ?????????? ????????. јвтоматизаци¤ администрировани¤ SQL Server 2005 26
9
????????, ???? ?? ????????? ????????? ??? ?????????? ???, ??? ???????? ?? ???. 8.6, ?????????????? ????????? ??? ?????????? ??????? ?????????? ???? ?????? db1
????? ??? ?? 80%. ???. 8.6. ????????? ?????????????? ??? ???????????? ??????? ?????????? ???????, ??? ??????????? ?????????? ????? ????????? ? ?????????? Windows. ??? ????? ???????????? ??????? ?????????????????? ? ????????? ???? ???? | ????????? | ?????????????????. ?????????? ???? ??????? ?? ????????? ? SQL Server Management Studio ? ????????? ??????? ????? ???? ???? ???????, ?????????: ? ???? ?????????????? ????? ???????? ????? ????????? ????????? (? ?????-
?????????? SQL Server Agent ??????????? ???????? ?????? ?????? ?????-
??? ????????); √лава 8 270 ????? ???????????? ?? ?????? ????????, ??????????? ? ??????? ??????-
???? SQL Server (??? ? ??????????????? SQL Server Agent), ?? ????? ???????? ??? ?????? ??????????? SQL Server ? ???????? ???????????? ???????. ??? ?????? ? WMI ????? ?????????? ? ??. 9. ????? ??????? ??????, ??? ??? ????? ?????? ??? ??????????????. ??? ?????? ?????????????? ????? ???? ????? ??????????? ? ??????? SQL Server, ? ????????? ???????? ????-
????? ??????????????????, ? ????? ????????? ? ?????? ???????? SQL Server ? ???????????? ???????. ????????, ??? ?????????? ?????????????? ????? ???? ????? ????????????? ?? ?????? ??? ?????????? ?????? ??????????, ????????? ??? ???????????? ????? ?? ????????, ????????? ??????? ????? ? ?. ?. ?? ??????? Response (??????) ??????? ?????????????? ?? ?????? ????????? ??????? ?? ???????, ?? ??????? ????????? ??? ??????????????. ? ????? ???????????? ???? ??????????? ????????? ??????? SQL Server Agent ??? ?????????? ?????????. ??? ?????? ??????? Options (?????????) ?? ?????? ??????? ???????????-
??? ????????? ??? ??????? ?? ???????, ????????, ????? ??????????, ????? ?? ???????????? ?????????? ?????? ?????????? ? ??????? ??? ???????? ??????????? ?? ??????????? ?????, ???????? ??? ????, ??????? ???????-
??????? ????? ??? ?????????, ??????? ????? ???????????? ?????????. ??? ?????? ??????? Delay between responses (???????? ????? ?????????) ?? ?????? ??????? ???????? ????? ??????????? ????????, ???????????? ??? ??????? ?? ???????. ?? ????????? ???????????? ???????? 0, ?. ?. ???????? ????? ????????????? ? ?????????? ????????? ?????????. ????????? ??????? ??????? ?????????????? ? History (???????). ?? ??? ?? ?????? ??????????? ?????????? ? ???, ????? ? ????????? ??? ????????? ??????????????, ????? ? ????????? ??? ???? ????????? ????????, ??????-
?????? ? ???????? ???????, ? ????? ????? ?????????? ???????????? ?????-
?????????. ??? ?????? ?????? Reset Count (????? ????????) ????? ????-
???? ???? ??????? ??????????????. ??????? ???????????? ?????????????? ????? ????? ????????????? ??? ??-
???? ???????? ??????? SQL Server. ???????? ????????, ??? ?????????? ???????????? ?????? ? ??????? SQL Server, ? ?? SQL Server Agent. 8.1.8. –абота с операторами ????????? ??????? ????????????? ???????????????? ???????? ?????????? SQL Server Agent ? ??? ?????????. ????????? ????? ??????????? ?????? ??? ?????? ? ???????? ????? ?? SQL Server. ?? ??????, ???????????? ? ???? јвтоматизаци¤ администрировани¤ SQL Server 2005 271 ???????? ?????, ????? ??????????? ???????? ?????????? ? ?????????? ??-
????? ? ???????????? ??????????????. ???????? ?????????? ???????????? ?? ???????????? ???? ??? ?????????? SQL Server Agent | Operators. ??? ??????? ????????? ????? ??????????: Name ? ???????????? ????? ????? ?????????? 128 ????????; Enabled ? ??? ??, ??? ??? ??????? ? ??????????????, ???? ?????? ??-
?????????? ??? ?????????? ?????????? ????????? ? ?????? ????????- ?????; E-mail name (????? ??????????? ?????) ? ?????? ?????? ?????? ???-
???????? ???????????? ?????? ???????????? ?????? ???????? ??? ?????-
???? ???????????? ???????? ????; Net send address (????? ??? ???????? ??????? ?????????) ? ??? ??????-
??? ?????????? ??? ?????? ?????? Messenger. ????? ????? ????????-
???? ??? ??? ??????? ?????? Windows, ??? ???/IP-????? ??????? ??????? ??????????????; Pager e-mail name (????? ??????????? ????? ??? ????????) ? ??? ??-
??????????? ???????? ??? ??????????? ????????? ??????????????? ???? ?? ???????? ???????. ? ?????? ????? ??????? General ??????? ????????? ?? ?????? ????????? ?????????? ?????? ????? ?????????. ?? ??? ????? ??????????? ?????? ??? ?????????, ???????????? ?? ???????. ?? ??????? Notifications ??????? ????????? ????? ??????? ?????????????? ? ???????. ??? ???????????? ???? ?????????????? ??? ?????????? ??????? ?????????????? ????? ???????????? ?????????. ????????? ?????????????? ? ??????? ????????? ????? ????? ?? ??????? ?????????????? ? ???????. 8.2. Ќастройка электронной почты в SQL Server 2005 8.2.1. ќбзор возможностей SQL Server 2005 дл¤ работы с электронной почтой ? ???????? ??????? SQL Server ????? ????? ?????????? ????????????????? ? ????????? ??????????? ?????. ?????? ?????? ??????????? ????? ????????-
???? ??? ?????????????? ???????? ????????? ???????? SQL Server. ?????-
???, ? ?????? ??????? Transact-SQL ????? ????????? ?????? ? ????? ?????-
???? ?? ??????????? ????? ?????????? ??? ??????????. ????? ????????? ??????? ??? ??????? ???? ?????? ???, ????? ??? ???????? ????????? ? ??? ??????? ?????????? ?? ?????????? ???????????? ?? ??????????? ?????. ?? √лава 8 27
2
??????? ???????????? SQL Server 2005 ? ???? ?????????? ??????? ????? ?????????? ? ????????? ????? ? ??????????????? ??????????? ?? ???????-
????? ? ??? ?????????. ??????????? ????? ????? ??????? ???????????? ? ??? ????????????? ??????-
?????????? ????????. ????????, ?????? ? ?????????? ???????, ?????????? ? ???????????? ?????????????? ????? ???????????? ?? ??????????? ????? ?? ?????? ??????????. ? SQL Server 2005 ? ??????????? ?????? ????? ???????? ????? ?????????: ?????????? Database Mail (?????? ???????? ? SQLiMail) ? ??? ????? ?????????? ??? ?????? ? ??????????? ??????, ??????? ?? ???? ? ?????-
????? ??????? SQL Server. ??? ????????????? ?? ????????????? ?????-
???? SMTP. ??? ???????? ?????????????? ? ????????????? ?????? ??-
???? ? ??????????? ??????; ?????????? SQLMail ? ?? ?? ??????????, ??? ???? ? ? ?????????? ???-
???? SQL Server. Microsoft ??????? ????????? ??? ?????????? ? ??????? ??????? SQL Server, ??????? ? ????? ??????????? ??????????????? ?? ??? ?? ?????. ? ???? ?????????? ???????????? ???????? MAPI ? ???????? ??????? Outlook; ?????????? ???????????? ??????? ? ?????????????? ????????????? SQL Server. ????????, ??????????? ????? ????? ?????????? ??? ?????? ??????? CDO.Message
? ???????? ???????? SP_OACreate
, SP_OASetProperty
, SP_OAMethod
. ?????? ??????????? ? ???????????? ???-
???? ??? ???????? ??????????? ????? ?? ????????? ?????? ? ????????? ?? ??? ?????? ??????????? ???????? ????????? xp_cmdshell
. ???? ?????? ???????, ?? ? ????????? ????????? ?? ????? ????????? ????? ???????. ??????? ??? ????????? ????????. ????????? ??????????? ????? ??? ????? SQL Server ? SQL Server Agent ??? ???????? ??????????? ????????. ???? ????? ??? ???? ????? ???????????? ???? ? ?? ?? ?????????, ? ????? ???? ? ??? ?? ???????? ????. ?????? ?? ?????? ?????? ???????????? ?????? ????????? (? ???? ?????? ??????????) ? ?????? ???????? ?????. ????? ?? ?????????? ????????? ?????? ????????-
?? ??? ??? ????????????? SQL Server, ??? ? SQL Server Agent. ???? ?? ??????????? ??????????? "???????? ????????" ??????????? ?????, ??, ????????, ???? ????? ???????????? ??????????? ????????? SQL Server 2005, ??????? ?????????? Notification Services. ??????? ?????????? ????? ?????????? ? ?????????? ???????????, ???? ? ?????-?? ??????? ???-
?????? ?????????. ????????, ???????? ????? ??????? ? ???????, ??? ????-
?????? ???? ?? ?????, ??? ? ?????????? ????? ?????? ??? ? ? ?????, ???-
?????? ????? ???????, ? ??????? ??? ????????? ?????????. ? SQL Ser-
јвтоматизаци¤ администрировани¤ SQL Server 2005 27
3
ver 2000 Notification Services ????? ???? ????????? ? ????? Microsoft ? ????-
?????? ????????. ? SQL Server 2005 ?? ?????? ? ?????? ??????????? ???????. 8.2.2. –абота с Database Mail Database Mail (?????? ???????? ? SQLiMail) ? ??? ????? ?????????? ??? ??????????? ?????????????? SQL Server 2005 ? SQL Server Agent ? ???????? ????????. ?????? ??? ?????????? ????????????? ???????????? ? SQL Server 2005. ?? ????????? ? ???????????? ??????????? SQLMail, ??????? ?????????????? ? ?????????? ??????? ? ????????? ? SQL Server 2005 ??? ??????????? ???????? ?????????????, Database Mail ???????? ????? ???-
????????: Database Mail ?????????? ??? ?????????????? ? ???????? ???????? ????-
??????? ???????? SMTP. ??? ??????, ??? ?????? SQL Server ??????????-
?? ?????????? ????? ????????????????? ? ????? ???????? ??????????? ?????, ????????????? ?? ???????????, ? ?? ?????? ? Exchange Server, ??? ??? ???? ? SQL Server 2000; Database Mail ???????? ? ????????? ???????? ?? ????????? ? ???????? SQL Server 2005. ??? ??????, ??? ???? ? ???? ??????????? ?????????? ??-
???-?? ?????????, ?? ??????? ?????? ????????????? ? SQL Server ??? ?? ????????; Database Mail ?????????? ??????????? ????? ????????. ?? ???? ?????? Transact-SQL ?????? ???? ??????? ?? ???????? ??????????? ????? ?, ?? ????????? ?? ??????????, ?????????? ??????; ??? Database Mail ????? ????????? ? ???????????? ????????? ??????? ??????? ??????????? ????? ? ????????? ???????? ????????. ??? ??????-
????? ???????? ???????? ?????? ? ??????????; Database Mail ????????? ?????????? ? ?????????? Microsoft. ? ?????? ??-
???-?? ????????? ? ???????? ???????? ?????? ???? ?????????? ??????-
????? ?? ?????? ??????? ????????, ??? ? ?????? ?????? SQL Server; ?????????? Database Mail ????????????? ?? ?????? ??? 32-????????? ???-
??? SQL Server, ?? ? ??? 64-????????? ??????; ?????????? Database Mail ?? ?????? ????????? ???????????? ?????? ?????? ?? ???????? ??? ????????? ?????? ? ?????????? ???????????? ?????; ??? ????????? Database Mail ???????? ?? ????? SQL Server. ?????? ??? ????????????? ??????????? ??????? ???????? ??????? ? ???????????? ???????; √лава 8 27
4
????????? ???????? ?????????, ? ????? ????? ???????????? ????????? ? ???????? ????? ??????????? ? ???? ?????? msdb
. ??? ?????????? ????? ?????? ???????????? ??? ???????????????? ? ???????????. ????????? Database Mail ?????? ?????????? ? ??????? ????????? Database Mail Configuration Wizard. ?? ?????? ????????? ??? ??? ?????? ??????? Configure Database Mail (????????? Database Mail) ?? ???????????? ???? ??? ?????????? Management | Database Mail (?????????? | Database Mail) ? SQL Server Management Studio. ?????? ?????? ?????? ????? ???????. ?? ?????? Select Configuration Task (??????? ?????? ?? ?????????) ? ????? ???????????? ???? ??? ????????: Set up Database Mail (????????? Database Mail); Manage Database Mail accounts and profiles (?????????? ???????? ????-
???? ? ????????? Database Mail); View or change system parameters (??????????? ??? ???????? ????????? ?????????). ??? ?????????????? ????????? ??????????? ????? ??? ??????????? ??????-
???? ????????????? ? ??????? ????????? ? Set up Database Mail. ?? ????-
????? ?????????? Database Mail ?? SQL Server 2005 ?????????, ? ??????? ???????? ???? ????????? ? ???????????? ?? ????????. ????? ???????? Database Mail ????? ??? ?????? ??????? SQL Server Surface Area Confi-
guration. ????? ????????? ????? New Profile (????? ???????), ? ??????? ??? ???????-
???? ????????? ????????? ????????? ??????? ??? ?????? ? Database Mail. ????? ????? ??????? ??? ????????? ???????, ??? ????????, ? ????? ??????-
??? ??????? ?????? ??? ?????? ?? ????????? SMTP. ??? ?????? ????????? ??????? ?? ?????? ?????? ????????? ????????? ???????? ???????? SMTP. ? ?????????? ????????? ??????? ????? ?????????? ???????????? SQL Server ????? ??????????? ?????, ???????? ?????? (? ????? ????? ??? ???-
???????? ?? ????????? SMTP), ? ????? ????? ?????????????? ??? ??????-
????? ? ????????? ??????? (???. 8.7). ?? ????????? ?????? Database Mail Wizard, ??????? ?????????? Manage Profile Security (?????????? ????????????? ????????), ?? ?????? ??????? ????????? ???? ???????? ??????? ?????? (public) ??? ??????? (private). ????? ???????? ??????? ???????? ??? ???? ????????????? ???? ?????? (?? ????????? ??? ???? ????????????? ???? ?????? msdb
, ?? ?????????? Database Mail ????? ????????? ? ??? ????? ???????????????? ???? ???-
??? ? ????? ????? ??????? ?????? ????????? ??? ???? ????????????? ???? ???? ??????). ?????? ???????? ??????? ???????? ?????? ??? ??????????-
???, ??????? ???? ????????? ??? ??????? ?? ??????? Private Profiles (???-
??? ???????) ????? ?????? ???????. јвтоматизаци¤ администрировани¤ SQL Server 2005 27
5
???. 8.7. ????????? ??????? ?????? SMTP ??? Database Mail ??? ????? ???????? ???????, ??? ? ?????? ???????? ??????? ????? ??-
??????? ???????? ?? ????????? (default). ????? ???????? ??????? ?????? ????????? ?? ????????? ??? ???? ?????????????, ? ?????? ? ?????? ??? ??? ?????????????, ??????? ??? ?????????. ?? ????????? ?????? Configure System Parameters (????????? ????????? ??????????) ?? ?????? ????????? ????????? ????????? ?????? Database Mail. ?????? ??????????, ??????? ????? ?????????, ???????? ???: Account Retry Attempts (?????????? ???????? ??? ??????? ??????) ? ??????? ??? SQL Server ????? ???????? ???????? ?????????? ? ????????? ???????, ????????????? ??? ??????? ??????, ???? ?? ?? ?????-?? ?????-
??? ???????? ???????????. ?? ????????? ?????????? 1 ??????; Account Retry Delay, seconds (???????? ???????? ??? ??????? ??????, ? ????????) ? ?????, ??????? SQL Server ????? ????? ????? ????????? ?????????? ? ????????? ???????. ?? ????????? ? 60 ??????; Maximum File Size (???????????? ?????? ?????) ? ??????? ? ???? ???-
??? ???? ?????? ????????. ?? ????????? ?????????? ???????? 1 ?????; √лава 8 27
6
Prohibited Attachment File Extensions (??????????? ?????????? ?????? ??? ????????) ? ????? ????????? ????????????? ?????????? ???????? ????????? ?????????? Database Mail ? ????????????? ?????? ????????. ?? ????????? ????????? ?????????? ????? exe, dll, vbs, js; Database Mail Executable Minimum Lifetime, seconds (????? ????? ??? ???????????? ????? Database Mail, ? ????????) ? ??????? ??????? ????? ?????????? ? ?????? ??????? Database Mail ????? ?????????? ???????? ???? ????????? ? ???????. ?? ????????? ? 600 ??????; Logging Level (??????? ????????????????) ? ????????? ???????? ????? ????????????????? ?????? ?????????? Database Mail. ? ????? ???????-
????? ???? ??? ????????: Normal (???????) ? ????? ???????????? ?????? ??????; Extended (???????????) ? ????? ???????????? ??????, ?????????-
????? ? ?????????????? ????????? (???? ??????? ?????????? ?? ?????????); Verbose (????? ?????????) ? ???????? ?????? ????????????????, ????? ???????????? ???????? ?????????? ? ?????? Database Mail. ????? ????? ?????? ???????? ??????? Database Mail ?? ???????. ????? ?? ????????? ??? ??????? ????? ????????? ??? ?????? ????????-
??? ???????? ???????? ???? ?????? msdb
(?? ???????? ?????????? ? ???-
????? sysmail_...
), ?????? ??? ?????? ??????? ??????????? ???????????-
??? ????????? ? ??????????? ????????? ?????????? ??????? ?????. ?????????, ??? ????? ???????, ? ???????????? ?????????????, ??????? (??? ?? ????? ???????) ????? ???????????? ??????????? ????? ?????????? Database Mail, ??????????? ?????. ??? ????? ????? ????????? ?? ????????-
??? ???? DatabaseMailUserRole
? ???? ?????? msdb
. ????? ?????????? ???? ???????? ? ??? ???????? ??????????? ???????????? ???????? ????????? ? ????????????? Database Mail. ???????? ????????? ????????????? ??? ?????????? ???????????? ????????, ? ????????????? ? ??? ????????? ?????????? ? ?????? Database Mail. ? ???????? ?????????, ? ????????????? ????????? ? ???? ?????? msdb
? ??????????? ????? dbo
. ????? ??????????? ???????? ???????? ???????? Database Mail ? ???????????: sp_send_dbmail
? ??? ???????? ????? ???????????? ???????? ????????? Database Mail. ??? ????????????? ??? ???????? ??????????? ?????. ????-
?????? ? ???? ???????? ????????? ????? ?????, ? ????????? ?? ????? ?? ?????. ???????? ???? ??????? ?????? ????????????? ???? ???????? ????????? ??? ???????? ??????????? ?????: јвтоматизаци¤ администрировани¤ SQL Server 2005 27
7
EXEC msdb.dbo.sp_send_dbmail @profile_name = 'MailProfile1', @recipients = 'admininstrator@nwtraders.msft', @subject = '????????? ?????????', @body = '????? ?????????'; sysmail_delete_mailitems_sp
? ??? ???????? ????????? ????????? ???-
???? ????? ???????????? (??????? ??? ?????????) ????????? ????????-
??? ????? ?? ?????? Database Mail ? ???? ?????? msdb
. ???? ?? ??????? ????????? ? Database Mail, ????????????? ???????????? ????????? ??? ???-
????? ?????????, ????? ???? ?????? msdb
?? ?????????? ??????? ??????; sysmail_delete_log_sp
? ??? ???????? ????????? ????? ????????? ???-
????? ??????? ???? ?????? msdb
. ?? ??? ?? ????????????? ????????? ?? ???? ?????????, ? ???????? ?? ????????. ????????? ???????? ????????? ????????? ? ????????? ?????????? ??? ? ??-
????????? Database Mail. Database Mail ????? ???????????? ? ??? ????????? ??????????? ????????? ??????? SQL Server ? ?????????? ????????? ?????. ?? ??????????? ?????-
??? ???????? ??? ????? ?? ?????????????. ??? ????????? ??????????? ???-
?? ???????? ???????????? ??????????? ???????? Service Broker. ???????, Database Mail ????? ???????????? ? ??? ???????? ??????????? ????? ???????? SQL Server Agent. ????? ????????? SQL Server Agent ??? ??-
??????????? ??????????? ?????, ?????????? ????????? ????????? ???- ?????: ???????? Database Mail ? ??????? ??????????? ??????? ? ??????? ??????, ??? ??? ???? ??????? ?????; ????????? ??????, ?? ????? ???????? SQL Server Agent ???????????? ? SQL Server, ???? DatabaseMailUserRole
? ???? ?????? msdb
; ??????? ?????? ??????? ???????? ?? ????????? ??? ?????? SQL Server Agent; ??????? ???????? SQL Server Agent ? ?? ??????? Alert System ?????????? ?????? Enable mail profile. ????? ? ?????? Mail system ????? ??????? ??????? Database Mail, ? ? ?????? ???????? ???????? ? ????????? ???-
????; ?????????, ??? ???????? ???????, ? ????????????? SQL Server Agent, ???-
?? ????????? ???????? ? ????. ????? ????? SQL Server Agent ?????? ?????????? Database Mail ?????????? ?????????? ? ??????????? ??????????? ???, ????????, ? ??????????? ??-
???????? ???????. ???????, ??? ? ?????? ??????? ?? ?????? ???????????? ???????? ???? ??? ?????? ? ??????????? ??????. ????????, ?? ????? ???? Transact-SQL Script √лава 8 27
8
?? ?????? ???????? ???????????? ???????? ????????? sp_send_dbmail
, ? ?? ????? ???? ActiveX Script ?????? ???????????? ??? ???????? ????? ???-
???????? ?????? CDO.Message
. ???????, ??? ????????????? ???? ??????? ?????????? ??????????? SQL Server Agent ??? ????????????? Database Mail ??? ?????????????. ?????? ??????????? ?? ???, ??? ????? ???????? ?????????? ? ?????? Database Mail. ??? ??????????? ?? ????, ??????? ?? ????????? ?????????, ???????? ????????? sp_send_mail
?????? ??????????? ????????? "Mail queued"
(?. ?. ?????? ?????????? ? ??????? ?? ????????). ???????? ? ????????-
??? ???????? ???????? ??????? ?????????. ?????? ?????? ? ??????????? ??????? Database Mail. ??? ????? ????? ??????????????? ???????? View Database Mail Log (??????????? ?????? Database Mail) ???????????? ???? ?????????? Management | Database Mail ? Management Studio. ?????? ?????? ? ???????, ????? ??????, ??????? ?? ????????? ?????????, ? ???? ???, ?? ?? ????? ???????. ?????? ?????? ? ??????????????? ???????????? ??????????????? Database Mail ? ???? ?????? msdb
: sysmail_allitems
? ??????? ????????????? Database Mail. ? ??? ??????? ????? ???????? ?????????? ? ???? ???????, ???????????? ?????????? Database Mail. ????? ????????? ?????????? ? ??????????, ?????????, ??-
???? ?????? ? ?????? ???????? ?????????, ????? ???????? ? ?????? ????-
????? (??????????, ??? ?? ??????????, ????????? ???? ? ?. ?.). ???????-
???? ?????? ????????????? ?????????? ?????? ????? ???????, ??????? ??-
???????? ? sysmail_allitems
; sysmail_faileditems
? ??? ????????????? ???????? ?????? ?? ??????, ??? ???????? ??????? ????????? ????; sysmail_sentitems
? ?????? ??????? ???????????? ??????; sysmail_unsentitems
? ?????? ??????, ??????? ??? ?? ???? ??????????, ?? ????? ? ??????? ?? ????????; sysmail_mailattachments
? ?????? ?????? ? ??????????; sysmail_event_log
? ? ???? ????????????? ????????? ?????????? ?? ??????? Database Mail (??????? ????? ???????? ??? ?????? ??????? View Database Mail Log). 8.2.3. –абота с SQLMail SQLMail ? ??? ?????????? ??? ?????????????? SQL Server ? ??????????? ??????. ??? ?????????????? ? ?????????? ??????? SQL Server ? ????????? ??? ??????????? ???????? ????????????? ? SQL Server 2005 (??????, ?????-
јвтоматизаци¤ администрировани¤ SQL Server 2005 27
9
??????? ?????????????, ??? ? ????????? ??????? SQL Server ??????????? ?????? ??? ??????????). ??? ?? ????? SQLMail ??? ?????? ? ??????????? ??-
???? ???????? ?????? ??????????????? ? ?????????????, ? ???????? ?????? ??????? ?? ?????? ????????????. ??? ???, ??? ?? ??????????? ? ???? ??????????? ? ?????????? ??????? SQL Server, ????? ??????? ???? ?????? ???????????: SQLMail ????? ???????? ?????? ? ?????????? MAPI (?? ?? SMTP!). ????? ????, ????????? SQLMail ?????? ?????????? ?????? ?????????? SQL Server. ??? ???????? ????????? ??????? MAPI ???????? ???????????? ??????? ????????? (? ??????????? ??????? Microsoft Outlook). ????????? SQL Server ??? ?????? ? ??????????? ?????? ?????????? SQLMail ??????? ?? ?????????? ??????: ?????? ????????, ??????? ????? ??????? ? ?????????? Exchange Server ??????? ???????? ???? ??? ??????? ??????, ?? ????? ??????? ???????? SQL Server (???? SQL Server Agent ???????? ?? ????? ?????? ??????? ??????, ?? ???????? ???? ??????????? ? ??? ????). ? Exchange Server 2000 ? 2003 ??? ???????? ??????????? ?????????? ??????? Active Directory Users and Computers (Active Directory ? ???????????? ? ??????????); ?????????, ??? ????? ???????, ? ?????????? ?? ?????????, ?? ??????? ???????? SQL Server, Microsoft Office. ?? ????? ?????? ????????, ??????? ? ???? ??????, ??? ????? ?????? Outlook (????? ?????? ? 97, 2000, XP ??? 2003). ???????? ????????, ??? Outlook Express, ??????? ???? ?? ??-
??? ?????????? Windows, ???????????? ??????: ??? ????????? ?? ????? ???????? ? ?????????? MAPI! ????? ???????????? ??? ??????????, ??? ? ???????????????? ?????? Outlook; ????????? ???????? ? ????????? ????????? ??????? MAPI ??? ?????? ? ??????????? ??????. ??? ????? ????? ????????? ????????? ????????: ????? ???????? ?? ?????? ?? ????? ??? ??????? ??????, ?? ????? ????-
??? ???????? SQL Server ??? SQL Server Agent (? ??????????? ?? ????, ??? ???? ?? ???????????? ???????? ????); ??????? MAPI-??????????? ???????? ???????. ????? ????? ??? ???-
???? ??? ?????? ??????? ????????? ??????? ??????? Outlook. ???? ??? ??????? ???????, ?? ????? ??????? ???????? SQL Server, Outlook ??? ?? ??????????, ?? ??? ?????? ??????? Outlook ???? ??????? ?????-
????? ?????????????. ???? ?????-?? ????????? ??? ???? ???????, ?? ???????? ?? ????? ???? ?? Outlook, ???? ??? ?????? ??????? ????? (Mail) ? ?????? ??????????. ?? ?????? ?????? ??????? ???????? ??????? ??????? ??????????? ????? ??? ??????????? ??????? ????? ???????? ????? ??????? ?????? ????-
√лава 8 280 ??????? ?????. ?? ????????? ??????, ??????? ?????????? ??? ???????, ????? ??????? Microsoft Exchange Server. ???? ??? ??????? ?????? ????-
????????? ????????? MAPI ? ?????? ?? ????? ?????????????? ????????-
??? SQLMail. ????? ? ???? ???????? Exchange Server ??? ??????????? ???-
??? ??? ??????? ? ??? ????????? ????? ????????????. ???????? ????????, ??? ??? ????????? ????? ???????????? ? ????? ??????????? ????? ?????-
?? ???????????? ? ??? ?? ???? ? ?? ??. ?? ????????? ??? ????????? ????? ?? Exchange Server ????????? ? ?????? ??????? ?????? Windows; ?????????, ??? ???????? ???????, ? ????????? SQL Server ? SQL Server Agent ??? ?????? ? ????????? ???????? ????????. ??? ????????? SQL Server ????? ??????????????? ?????????? ?????????? Management | Legacy | SQLMail (?????????? | ?????????????? | SQLMail) ? SQL Server Management Studio. ?? ????????? ?????????? SQLMail ? SQL Server ?????????. ??? ?????? ????????? ? ????????? ????? ??????-
???? ??? ????? ?????????? ?? ????????. ???????????? ????????, ????-
??? ????? ????????? ? ????????? ?????????? SQLMail, ? ??? ?????????? ???? ????????? ???????. ?? ????????? ?? ?????????? "
Outlook
". ????? ????????? SQL Server Agent ??? ????????????? SQLMail, ? ????? ???????????? ? ??????? Alert System ??????? SQL Server Agent ? Management Studio. ? ?????? Mail system ??? ??????????? ??????? SQLMail, ? ? ?????? Mail profile ? ??? ?????????? ???? ??????? (????? ??? ?? ????? ??????? ???????? ??? "
Outlook default profile
"). ????? ???????? ????????? ? ???????? SQLMail ??? SQL Server ? SQL Server Agent ??? ??? ?????? ????????????? ?????????????. ??? ?????? ? SQLMail ???????????? ?? ?? ???????? ?????????, ??? ? ? SQL Server 2000: xp_sendmail
? ??? ???????? ????????? ????????????? ??? ???????? ????-
????? ??????????? ?????, ????????: EXEC master.dbo.xp_sendmail @recipients='administrator@nwtraders.msft', @subject='????????? ?????????', @message='????? ?????????'; ? ?? ??????? ????? ????????? ?????? ? ????? ????????? ?????????? ??-
???????? ?? ??????????? ?????: EXEC master.dbo.xp_sendmail @recipients='administrator@nwtraders.msft', @query = 'SELECT * FROM Table1'; xp_findnextmsg
? ?????????? ?????????? ????????????? ?????????, ??-
????? ?????? ?????????. ????? ????? ????????????? ?????? ?????????? ???????? ?????????? xp_readmail
(????? ????????? ??? ?????????) ? xp_deletemail
(????? ??????? ???); јвтоматизаци¤ администрировани¤ SQL Server 2005 281 xp_readmail
? ????????? ????????? ?? ????????? ????? ?? Exchange Server. ????????? ????? ?????????, ??????? ?????? ?????????? ?????-
??? ????????? xp_findnextmsg
; xp_deletemail
? ??????? ????????? ?? ??? ??????; sp_proccessmail
? ????????? ???????????????? ?????? ? ??????????? ??-
????. ??? ???????? ????????? (?????? ??? ??????????? ?? ?????????? ??-
?????? SQL Server Agent) ?????????? ? ????????? ????? ?? Exchange Server ? ???????? ????????? ????? ??????? ?????????????? ????????? ??? ?????? ? SQL Server. ?????????? ?????????? ??????? ???????????? ? ???????? ?????? ?? ????????? (? ???? ?????????? ?????????? ?????). ??? ???????? ????????? ??????????? ????????? ????????????, ?? ??? ????? ???? ????? ??????? ??? ????????????????? SQL Server ?? ??????????? ?????. 8.2.4. јльтернативные способы работы с электронной почтой SQL Server и SQL Server Agent ????? Database Mail ? SQLMail, ?? ???????????? ????? ????? ???????????? ?????????????? ???????? ??? ?????? ? ??????????? ?????? ????? SQL Server (?? ???? Transact-SQL) ? SQL Server Agent (? ?????? ???????). ?????? ????? ???????? ???????? ?? ????????????? ??????? CDO.Message
??? ?????? ??? ??-
?????? ??????????? ????? ?? ????????? ??????. ?????????? ??????? CDO.Message
????? ?????? ?? ????????? ????????: ?????????? CDO ???? ?? ????? ?????????? ??? ??????????? Win-
dows 2000, XP, 2003; ?? ????? ??????????? ??????? ???????? ??? ????????? ??????????? ???-
?? ?? SQL Server; ??? ?????? ????? ??????? ????? ???????????? ? ?????? SMTP-
???????????? ????????? ???????. ??? ??? ????????????? ????? ??????? ?? ????? VBScript ????? ?????: '????????? ?????????? ??? ?????? ????????? Dim oMessage '??????? ?????? CDO.Message Set oMessage = CreateObject("CDO.Message") '??????????? ????????? ????????? '???? oMessage.To = "Administrator@nwtraders.msft" '?? ???? oMessage.From = "Administrator@nwtraders.msft" √лава 8 28
2
'????????? ????????? oMessage.Subject = "????????" '????? ????????? (????? ???? ????????? ??? ? ??????? HTML) oMessage.TextBody = "????? ??????" '????????? ???????? oMessage.AddAttachment "C:\1.txt" '?????????? ????????? oMessage.Send ?????? ???? ??????? ? ??????????? ?? ????????? ????? ???????? ?????? ? ??? ??????, ???? ?? ????? ?????????? ?????????? Exchange Server 2000 ??? 2003 ??? ?????????? Internet Information Server ? ??????????? ??????? SMTP. ??????? ??????: ?? ????????? ????????? ?????? ????? ????????? ???????? ? ??????? C:\Inetpub\mailroot\Pickup, ?????? ??? ? ?????? ??????? ?????? Exchange Server ??? IIS. ?????? ???? ????? ??????? ?????? ???????? ????????? ????? ????? ???????? ??????, ??????? ???????????? ???????? SMTP. ??? ????? ????? ??????? ?????? Send()
????? ????????? ????????? ????????: oMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 ? ???? ????????? ?? ????????? ???????????? ???????? 1, ??????? ???????? ????????????? ???????? Pickup. ??????? ???????? ?????? ????? ???: oMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _ "smtp.YourServer.com" ????????? ?????? ?????????????? ???????????? ??? ?????? ???? ?? ???-
???? CDO.Configuration
: oMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")=1 ???????? 1 ????? ????????? ????????, ??? ???????????? ??????? ???????????-
???, ???????? 0 ? ??? ?????????????? (????????), ???????? 2 ? ?????????-
????? NTLM. ??? ???????????? ? ?????? ????? ???????? ????? ??? ??: oMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusername") = _ "YourLogin@YourDomain.com" oMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = _ "Password" јвтоматизаци¤ администрировани¤ SQL Server 2005 28
3
?????? ?????????? ????? ?????????? ????????????? ?????????????? ????? (????????? ?? 25), ????? ??? ??? ?????????????? SSL ? ????? ????-????: oMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 oMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False oMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 ????? ????? ?????????, ???????? ? ????????????, ????????? ????? ???-
???????? ?????????: oMessage.Configuration.Fields.Update ? ?????? ????? ???????? ????? Send()
: oMessage.Send ???? ????????? ???????? ? ??????????? (??????, ???? ? ??????? ?? ???????-
??? ??????? ????), ?? ????? ????? ????????? ???????? ?????? ????: oMessage.TextBodyPart.Charset = "windows-1251" ???? ??? ????? ???????? ???????????? ? ?????? ???? ActiveX Script ??? ??-
????? SQL Server Agent. ??? ?????? ???????? ???????? ????????????? SP_OACreate
, SP_OASetProperty
, SP_OAMethod
??? ????? ???????????? ? ??? ??-
?????? ??????????? ????? ?? ???? Transact-SQL. ??????? ??????, ??? ??-
??????????? ???????? ???????? ????????????? ? SQL Server 2005 ?? ????-
????? ????????? ?? ??????????? ????????????. ????? ?? ?????????????? ??? ????? ?? ????????. ????? ????? ??? ??????? ??? ?????? ??????? Sur-
face Area Configuration. ??? ???????? ???????? ????????? ???????? SQL Server ? SQL Server Agent ????? ????? ???????????? ??????????? ????????? ?????? MAPI (???????-
??? ?? ??????? MAPI.Session
). ??? ????? ???? ?? ????? ?????????? ??? ??????????? Windows 2000, XP ? 2003. ??? ?????????? ????????? ?? ?????? ?????????? ?????????, ?? ? ???????? ?? ? ???????, ? ????? ????????? ???-
?????? ???????? ? ???????????, ??????? ????????? ? ???????? ?????. ?????? ? ???? ?????????? ???? ????????? ??????????? ? ??? ??????? ?? ??-
??????, ??? ????? ???????????? ?????? ???????? MAPI. ????????? ??- ???????? ?? ????????????? ????? ??????? ????? ????? ? MSDN (www.microsoft.com/msdn). ?????? ?????????????? ?????? ?????? ? ??????????? ?????? ?????? ? ??-
???????????? ?????? ??? ???????? ????????? ?? ????????? ??????. ? ??-
??????? ????? ????? ????????? ?????????? ?????? ??? ???? ????. ????? ?????? ?????????? ??????? BMAIL
. ??????? ?? ???????? ??????????? ????? ? ?????????????? ???? ??????? ????? ?????????, ????????, ???: √лава 8 28
4
bmail -s smtp.YourServer.com -t komu@nwtraders.msft -f otKogo@nwtraders.msft -h -a "????????? ??????" -b "????? ??????" ????? ???????????? ??? ???????, ?? ???? ????? ????????? ? ????? ???????, ????????? ? ?????????? ????????? PATH
. ????? ????? ??????????????? ??????? ????? ???????????? ? ????? ???? CmdExec ??? ??????? SQL Server Agent ??? ? ???? Transact-SQL ??? ?????? ???????? ????????? xp_cmdshell
. ???????, ??? ??? ???????? ????????? ????? ?? ????????? ????????? ? SQL Server 2005 ?? ??????????? ????????????. ???????? ?? ????????????? ??? ?????? ??????? Surface Area Configuration. 8.3. ѕланы обслуживани¤ баз данных ????? ????? ??? ????????????? ???????? ?? ???????????? SQL Server ??-
???????????? ?? ???????????? ?????????? ????? ???????????? ??? ?????? (Database Maintenance Plans). ????? ???????????? ? ??? ??????????? ???-
????, ?????????????? ????? ????? ????? ???????????????? ???????? ?? ????????????, ??????? ????? ????????????? ??? ?????????? ?? ???????-
???. ????????, ? ???? ????????? ????????? ????????? ??????????? ??? ???-
??? ? ???????? ??????????, ???????? ??????????? ??? ??????, ???????????? ????????, ?????????? ?????????? ? ?. ?. ??? ??? ???????? ????? ????????? ? ??????? ?????????, ????????, ??? ?????? ??????? SQL Server Agent. ????? ???????????? ?????? ????????????? ??????? ???????? ??? ???????-
??? ????? ?????????? ? ????????? ??????? ?? ?? ??????????. ? SQL Server 2005 ????? ???????????? ?????????? ????? ?????? ?? ??????-
??? ? ??????????? ???????? SQL Server. ???? ? SQL Server 2000 ???? ???-
??????? ??????????? ????? ????? ??????? SQL Server Agent, ?? ? SQL Server 2005 ??? ??????? ????? ????????? ????????? ????? SSIS (SQL Server Integration Services ? ?????????? SQL Server, ??????? ?????? ?????????? DTS). ??????? ??? ????????? ????, ??? ???????? ?????? SSIS, ? ??? ?????-
??? ?????? ? ???? ?????????? ?????????? ? SSIS. ?????? ? SSIS ???????? ????? ??????????????? ? ??. 10. ??? ?? ????? ??????????? ?????? (tasks), ??-
????? ???????????? ??? ?????????? ???????? ? ?????? ???????????? ??? ??????. ? ? ???? ??????? ???????????? ?????? ? ???????? ???????? ?????? ???????????? ??? ?????? ? ????????? ????????????? ??????. ?????? ? ??????? ???????????? ??? ?????? ???????????? ?? ?????????? Management | Maintenance Plans (?????????? | ????? ????????????) ? Mana-
gement Studio. ????? ???????????? ????? ????????? ????? ?????????: ??? ?????? ???????, ??????? ??????????? ??? ?????? ??????? Main-
tenance Plan Wizard (?????? ?????? ????????????) ???????????? ???? ??? ?????????? Maintenance Plans; јвтоматизаци¤ администрировани¤ SQL Server 2005 28
5
?????????? ???????????? ?????????? SSIS. ??????????? ????????? ??? ???????? ?????? ???????????? ????? ????????? ?? Management Studio (??????? New Maintenance Plan (????? ???? ????????????) ??????????-
?? ???? ??? ?????????? Maintenance Plans), ? ????? ? ??????? ??? SSIS ???????? ??? ?????? ??????? SQL Server Business Intelligence Develop-
ment Studio. ??????????? ????????? ????????????? ?у????? ???????-
????????? ?? ????????? ? ????????, ?????? ???????????? ??? ???????. ??????????? ????????? ??? ?????? ? ???????? SSIS ????? ???????? ???-
??????? ? ??. 10. ????? ??????????? ?????? ?? ??? ???????????? ?????? ??-
?????????? ??? ??????, ??????? ???????? ??? ?????? ???????. ???????? ?????? ???????????? ??? ?????? ??? ?????? ??????? ???????? ????????? ???????: 1. ?? ?????? ?????? ???????, ??????? ?????????? Select a Target Server (???????? ??????-??????????), ??? ????? ??????? ??? ???????????? ????? ????????????, ??? ???????, ?? ??????? ????? ??????????? ???????? ?? ????????????, ? ????? ?????????????? ??? ???????????. ???????? ????????, ??? ?? ????? ??????? ?? ?????? ?????? ??????? ????? ?????-
???????, ??????? ????? ??????????? ?? ?????? SQL Server ?????? ????-
???????. ????? ???????, ????? ?????????????? ?????????? ??????????-
?????? ???????? ? ???? ??????? ????? ??? ????????? ????????. 2. ?? ?????? ?????? ???????, ??????? ?????????? Select Maintenance Tasks (???????? ?????? ?? ????????????), ?? ?????? ?????????? ??????, ????-
??? ????? ??????????? ? ?????? ??????? ?????. ? ????? ???????????? ???? ????????? ?????? (?????????? ????????? ??? ??? ????????????? ?? ????????? ??????? ???????): Check database integrity (????????? ??????????? ???? ??????) ? ??-
??????? ? ???? ?????? ??????? DBCC CHECKDB
; Shrink database (????? ???? ??????) ? ????????? ?????? ?????? ???? ?????? ??? ?????? ??????? DBCC SHRINKDATABASE
; Reorganize index (?????????????? ??????) ? ?????????????? ?????? (??? ????????? ????????, ????????, ??? ???? ?????? ? ?????????????) ???????? ALTER INDEX ... REORGANIZE
; Rebuild index (??????????? ??????) ? ??????????? ?????? ??? ?????-
?? ???????? ALTER INDEX ... REBUILD
; Update statistics (???????? ??????????) ? ???????? ????????? ??? ???? ??? ?????? ??? ????????? ?????? ? ????????????? ??? ?????? ?????-
?? UPDATE STATISTICS
; √лава 8 28
6
Clean up history (???????? ???????) ? ??????? ??????? ?????????? ???????????, ?????????? ??????? SQL Server Agent ? ?????????? ?????? ???????????? ?? ?????? ???? ?????? msdb
. ???????? ????? ????????????? ? ??????? ???????? ???????? sp_delete_backuphistory
, sp_purgejobhistory
? sp_maintplan_delete_log
??????????????; Execute SQL Server Agent Job (????????? ??????? SQL Server Agent) ? ??????????? ????????? ????????? ???? ??????? SQL Server Agent. ??? ???? ???? ? ????? ???????????? ????? ?????????????? ???-
????? ????????? sp_start_job
; Backup Database (Full) ? Backup Database (Differential) ? ????????? ? ?????? ????? ???????????? ?????????????? ?????? ??? ?????????? ????????? ??????????? ????????? ???? ??? ??????. ??? ?????, ?????-
??, ???????????? ??????? BACKUP DATABASE
; Backup Database (Transaction Log) ? ????????? ????????? ????????-
??? ??????? ?????????? ??? ????????? ???? ??? ??????. ???????????? ??????? BACKUP LOG
. 3. ?? ????????? ?????? ???????, ??????? ?????????? Select Maintenance Task Order (???????? ??????? ?????????? ????? ?? ????????????), ?? ?????? ??????? ?????????????????? ?????????? ????????? ???? ?????-
???. ??? ???? ???? ????????????? ?????? Move Up (??????????? ?????) ? Move Down (??????????? ????) ??? ???????? ?????? ?? ??????. 4. ????? ????? ?????????? ?????? ??? ????????? ?????????? ?????????? ?????????? ????????? ???? ???????. ???????? ??????????????? ?? ?? ?? ?????. ??????? ??????, ??? ???????????? ?? ?? ??????????? ??????, ??-
????? ??????????? ??? ?????????? ??????????? ???????? (????????, ?????????? ???????????) ? Management Studio. 5. ????? ????????? ????????? ??????? ????????? ????? Select Plan Properties (???????? ???????? ?????). ?????? ?? ???? ?????? ??? ?????-
?????? ??????? ?? ???????? ?????, ? ?????????? ??? ??????????. ?? ????-
????? ?????? Not scheduled (On demand) (??? ?????????? (?? ???????)). ??? ??????, ??? ???????? ?????????? ??? ????? ?? ???????, ? ????????? ??? ?? ?????????? ???????? ???????. ???? ?? ????????? ??????????, ?? ? ?????? ??????? SQL Server Agent ????? ??????? ????? ??????? ? ??????-
?????? ?????? ???? SQL Server Integration Services Package. ???? ???? ??-
??? ????????? ?? ?????????? ????? SSIS, ?????????????? ????????? ??-
?? ???? ????????????. 6. ?? ????????????? ?????? ???????, ??????? ?????????? Select Report Options (???????? ????????? ??????), ?? ?????? ????????? ????????? ??????, ??????? ????? ?????? ??? ?????????? ?????. ? ????? ?????????-
јвтоматизаци¤ администрировани¤ SQL Server 2005 28
7
??? ???? ??? ????????: ????????? ?????? ? ???? ?????? ?? ????? (? ???? ?????? ??? ??????????? ??????? ???????) ??? ?????????? ????????? ?????? ?? ??????????? ????? (????? ????? ??????? ????????? SQL Server Agent). 7. ?? ????????? ?????? ??????? ?? ?????? ??????????? ????????? ???? ??-
??????? ? ?????? ?????? Finish (?????????) ??? ???????? ????? ?????-
???????. ?? ???????????? ???? ??? ?????????? ???? ????? ???????????? ? ????????-
?? Maintenance Plan (???? ????????????) ?? ??????: View History (??????????? ???????) ? ???????? ?????????? ?? ????-
??? ?????????? ??????? ????? (? ???? ??????? ??????? SQL Server Agent); Modify (????????) ? ??????? ????? SSIS ??? ????? ??????????, ????? ??????????? ??? ??? ?????? ??????????? ?????????; Execute (?????????) ? ????????? ???? ?? ??????????; Rename (?????????????) ? Delete (???????). ????? ? ??????????? ?????????? ?????? ???????????? ??? ?????? ????????? ? ???? ?????????? ????? (???. 8.8). ???? ????? ????? ??? ?? ??????????, ?? ???????? ????????? ??? ??????????????, ????????? ?????????? ?? ??????? sysdbmaintplan_history
? ???? ?????? msdb
. ???. 8.8. ?????? ?????? ? ?????????? ????? ???????????? ??? ?????? √лава 8 28
8
??????? ??? ??? ???????, ????????? ? ??????? ???????????? ??? ??????: ? SQL Server 2005 ?? ?????? ???????????? ????? ???????????? ?????? ?????? SQL Server. ?????? ??? ????? ???????? ?????? ? ??? ??????, ???? ?? ????????? ?? SQL Server 2005 ?????? ?????????? ??????, ? ??????? ??? ?????? ????? ????. ????? ??? ????? ????? ? ?????????? Management | Legacy | Database Maintenance Plans (?????????? | ????-
?????????? | ????? ???????????? ??? ??????). ????????? ????? ??????? ??????? ? SQL Server 2005 ??????????; ?????? ?????? ???????????? ??? ?????? ????? ???????????? ??????? ????????? ?????? SQLMaint
. ??? ??????? ????????? ????????? ?? ?? ???-
????? ?? ???????????? ??? ?????? SQL Server ? ???????????? ?????? ? ?????????? ??? ? ????????? ???????, ??? ? ? ??????? HTML. «адание дл¤ самосто¤тельной работы 8.1. ѕрименение заданий, предупреждений и операторов ???????: 1. ???????? ?? ??????? ???_??????_???????\SQL2005
???????????????? ????-
????? ?? ?????? ?? ?????????? ???????????: ????? ? 50005; ??????? ???????? ? 16; ????? ????????? ? "???????? ??????"
; ???????????? ?????? ? ?????? ??????? Windows. 2. ???????? ?? ????? ??????? ????????? ? ?????? Operator_???_??????_ ??????????
. ??? ?????????, ??????? ???????????? ????? ?????????, ?????? ???????????? ?? ??????? ?????? ?????????? ??? ?????? ?????-
?? net send
. ?? ?????????, ??? ?? ????????? ? Windows Server 2003 ?????? Messenger, ??-
????? ???????????? ?? ????? ????? ??????? ?????????, ?????????. ??? ???? ????? ???????? ???? ???????? ????????? ?? net send
, ??? ?????? ?????????? ????????. 3. ????????? ?? ??? ?? ??????? ?????????????? MyAlert
. ??? ?????? ????-
????????? ???? ???????????????? ?????? ? ???????? ? ?? ????????????? ?????????. јвтоматизаци¤ администрировани¤ SQL Server 2005 28
9
4. ???????? ??????? SQL Server Agent, ??????? ????? ? ?????????? ? 5 ????? ???????????? ?????? ???????????????? ??????. ?????????? ??? ??????? ?????? JobError50005
. ?????????, ??? ??? ????????? ???? ???????? ????-
????????? ???????? ? ???????????? ? ????????, ? ????? ????????? ??????? SQL Server Agent. ???????: ? ?????? 1 ??????? ? ???????? ???????????????? ??????: ??????????? ????????, ??????? ??????????? ?????, ????? ????????? ??? ??? ?????? ?????? Transact-SQL, ??? ? ?????????? ???????????? ?????????? SQL Server Management Studio. ? ???? ??????? ????? ??????????? ?????? ???-
???????? ??? Transact-SQL. ?????????? ?? ????????????? ???????????? ??-
???????? ????? ????? ? ????. 8.1. 1. ??????? ?? ???????? ???????????????? ?????? ????? ????????? ???: USE master; GO sp_addmessage @msgnum = 50005, @severity=16, @msgtext = '???????? ??????', @with_log = 'TRUE'; ? ?????? 2 ??????? ? ???????? ?????????: 1. ??????????? ??? ??? ???????? ????????? ????? ???? ????? (???????? LONDON2
?? ??? ?????? ??????????): USE msdb; GO EXEC sp_add_operator @name='Operator_LONDON2', @netsend_address='LONDON2'; ? ?????? 3 ??????? ? ???????? ??????????????: 1. ??????????????? ??? ????? ????????? ???: USE msdb; GO EXEC msdb.dbo.sp_add_alert @name='MyAlert', @message_id=50005; GO EXEC msdb.dbo.sp_add_notification @alert_name='MyAlert', @operator_name='Operator_LONDON2', @notification_method = 4; ? ?????? 4 ??????? ? ???????? ???????: 1. ??????????????? ??? ????? ???? ?????: USE msdb; GO √лава 8 290 -- ??????? ?????? ??????? EXEC msdb.dbo.sp_add_job @job_name='JobError50005'; GO -- ??????????, ?? ????? ??????? ??? ????? ??????????? -- ?? ???????? ???????? 'LONDON\SQL2005' ?? ??? ?????? ??????? EXEC msdb.dbo.sp_add_jobserver @job_name='JobError50005', @server_name = 'LONDON2\SQL2005'; GO -- ??????? ???????????? ???? ???? TSQL EXEC msdb.dbo.sp_add_jobstep @job_name='JobError50005', @step_name='Step1', @subsystem='TSQL', @command= 'RAISERROR (50005, 16, 1)'; GO -- ??????? "????????????" ??????????, ??????? ?????? ???????? ??????? DECLARE @thisDay As varchar(8); SELECT @thisDay = CONVERT(varchar(8),GETDATE(), 112); EXEC msdb.dbo.sp_add_schedule @schedule_name='Schedule1', @freq_type=4, @freq_interval=1, @freq_subday_type=4, @freq_subday_interval=5, @active_start_date = @thisDay; GO -- ????????? ??? ?????????? ??????? EXEC msdb.dbo.sp_attach_schedule @job_name = 'JobError50005', @schedule_name = 'Schedule1'; ???. 8.9. ?????? ?????? ? ?????????? ????? ???????????? ??? ?????? јвтоматизаци¤ администрировани¤ SQL Server 2005 291 ???? ??? ??????? ?????????, ?? ?????? 5 ????? ?? ????? ?????????? ????? ?????????? ???? ?????????, ??????????? ??????????????? ?? ???. 8.9. 2. ????? ????????? ???????, ????? ????????? ???????: USE msdb; GO EXEC msdb.dbo.sp_update_job @job_name='JobError50005', @enabled=0; √Ћј¬ј 9 ¬ыполнение административных операций при помощи объектных моделей SMO, SQL-DMO и WMI 9.1. ѕрименение скриптов дл¤ выполнени¤ административных операций ? ?????????? ????? ??????????????? ??????????? ???????? ??? ??????????-
??? ???????????????? ????????, ????? ??? ???????, ??????????????, ?????-
????, ????? ???????????? ??? ?????? ? ?. ?. ?? ????? ?????? ???, ??? ???-
????????? ???? ??????? ????????????. ????????, ??? ????? ? ???????????? ?????????????? ???????????????? ?????? SQL Server ? ??????? ?????? Windows (??? ?????? ????????????? ? ?????-?? ??????????). ?????? ???-
??? ? ??? ?????????? ???????? ??? ????? ????????? ???????? ? ????????? ????? ???????????? ??? ???????. ???????? ????????? ??? ?????????? ?????? ????????????? ?????, ????????, ??? ??????????? ?????????????? SQL Server ? ???????? ????????????, ??????? ????????? ??? ?????? ? ??-
????????? ??????, ? ?????????? ???????????? ???????????? ???????. ??-
??? ?????? ?????? ???????????? ?????????? SQL Server ?????? ??? ???? ??????????. ?? ?????? ????? ????? ?????? ???????????????? ???????. ???? ??? ???? ????????, ????? ?????? ???????? ????? ???????????. ??????-
???? ????? ?????? ???????, ????????? ??????? ???? ?? ????????? ????? ????? ???????? ? ????????? ????????????? (????????, ??????? ?????????-
???????????? ?????????, ???????? ??????? ?????, ???????????? ???? ????? ? ?. ?.). ????? ????? ??? ????? ?????? ?????? ??????????? ?????????? ??-
???-???? ???????? ?? ????????????????? ?? ??????????? ??????. ?????-
?????? ?????????????????? ???????? ???????? ???: 1. ????????????? ??????? ?????? (???? ?? Transact-SQL, ???? ?? ?????? ?????????? ?????, ????????, ?? VBScript ??? JavaScript). √лава 9 29
4
2. ???? ?????? ??????????? ?? ???????? ???????. 3. ?? ?????????? ? ??????????? ????? ??? ????????????????. 4. ?????? ??????????? ? ??????? ???????. ??? ?????? ?? ?????? ??????????????? ????? ?????? ?????? ???????? ????-
???? ??????????? ????????????. ???????, ??? ?????? ? SQL Server ??????????? ???????????? ??????? Transact-SQL. ?? ?????? ??????? ??? ??????????. ?????? ??????????? ??-
??? ????????, ????? ???????????? Transact-SQL ????????????, ????????: ??? ?????????? ????????????? ?????? ?????? Transact-SQL ?? SQL Server ? ??????????? ???????? ??? ????????????? ??????? ? ???????????? ???????. ????????, ??? ????? ??????? ???-?? ????? ??? ????????? ????? ? ???????????? ????????, ?????????? ????????? ??????????? ???? ?????? ????? ?? ?????????? ?????? ?????????? ? ???????????? ??????? ? ?. ?.; ??? ?????????? ????????? ??????? ???????? ???????????? ?? ???????-
??? ???????? SQL Server; ??? ????? ??????????? ??????????? ?????? ?? ???????, ??????? ?????-
????? ?? SQL Server. ? SQL Server ??? ????? ???????????? ???????? (? SQL Server 2005 ????? ??????? ????????? ????? ???????????? ????? ???????? ??? ?????? DDL) ? ?????????????? SQL Server Agent, ?? ???-
????????? ???? ??????? ????? ????????????; ?? ??????? ?????????????? ? ?????????????? ???????????? Transact-
SQL. ????????, ? Transact-SQL ????? ?????? ??????????? ?????? ? ????-
???? ? ?????????, ?????????? ??????? ??????????? ??? ????? ?????? (?????? ????? ?????? ??????????? ? 8000 ???? ??? ???? char
? ??, ??? ?????? ???????? ?????????? ???? text
, ntext
? image
), ? ????? ??? ?????? ??????? ???????, ????????? ??? ?????? ?????? ????????????????. ? ???? ????????? ?????? ??????? ???????? ????? ???? ?????? ????? ???-
???, ???? ????? ?? ??????? ???????????? Management Studio ? Transact-SQL. ?????? ? SQL Server 2005 ???????????? ?????? ????????? ??? ??????????-
???????? ????????? ??????? SMO, SQL-DMO ? ?????????? WMI ??? SQL Server. ? ?? ??????? ????? ???????????????? ?????????? ????? ???????? ?? SQL Server 2005. ?????? ?????? ?????? ?? ???? ?????????: SMO (SQL Management Objects) ? ??? .NET-??????????? ????????? ??-
????, ??????? ???????????? ?????? ???????????????? ??? ?????? ? SQL Server. ??? ???????? ? ???? ??????????? ???????? ???????? RMO (Repli-
cation Management Objects). Microsoft ??????????? ???????????? ??? ????-
?? ? SQL Server ?????? ??? ??????????; SQL-DMO (SQL Database Management Objects) ? ????????? ?????? ?? ?????? COM-???????????. ? ??????? ?? SMO, ??? ?? ??????? ??????? ¬ыполнение административных операций при помощи объектных моделей? 29
5
.NET Framework ? .NET-??????????? ??????????? ??????. ??? ??????-
???? ?????????????? ? ? ?????????? ??????? SQL Server. ??? ?????, ??? SMO, ??????? ??????? ????????? ????????, ?? ???????????????? ?? ?????? (???? ?? ?????? ??????? ??? ?????????? ??????????? ????????); ????????? WMI (Windows Management Instrumentarium) ??? SQL Server ? ????????????? ????????? ??????????, ??????? ????????????? ?? ?? ?????????? ???????????????? ????????, ? ?? ????????? ?????????? ?? SQL Server ? ?????????????? ? ????????. ???????? ? ??? ???????, ??? ? SMO ? SQL-DMO, ?? ?? ?????? ????????? ??? ????? ????????? ????? ????????. ??????????, ??? ??? ????????? ?????? ????????????? ?? ??? ??????? ? ???-
???, ? ??? ?????????? ???????????????? ???????? (??????? ? ???????? ?????? ?? ??? ???????????? ????? management (??????????)). ??? ???? ????? ???????? ? ??????? ? ???? ?????? SQL Server, ??????? ???????????? ?????-
????? ??????????????? ??? ????? ????????? ?????? ADO ? ADO.NET. ?? ????? ?????? ????? ???????, ??? ?????, ??????????? ?? ???????? ???-
????????? ????????? ??????? SMO, SQL-DMO ? WMI, ??? ??????????? ??????????????? ? ????????????? ???????? ????? ??????. ??????? ??????-
?????? ??????????? ? ???, ??? ?????????? ?????? ???????? ?????????? ???????????, ? ?? ???????? ???????????? ???? (? ??????? ?? ???? Transact-
SQL) ????????? ??????? ?????? ???????. ????? ????, ??????? ???? ??????-
??? ?????? ????? ??????????? ? ??? ???? Transact-SQL. ??????? ?? SQL-
DMO ? WMI ????? ?????????????? ??? ?????? ???????? ???????? ??????-
??????? (
SP_OACreate
? ?. ?.), ? ??????? SMO ? ? ?????????? ?????????? CLR (?. ?. ??? ????????? ? ??????? .NET ????????? ?????? ?? ???? Transact-
SQL). ??????? ?????, ??? ????????? ???? ????? ????????????? ??? ???????????-
?????? ??????????????? ? ?????????????. ????. 9.2, ??????????? ?????? ? SMO, ????????? ?? ??, ??? ???????? ?????? ? .NET ? ?????-?????? .NET-
??????????? ?????? ???????????????? (? ???????? ????? ?????????????? ????? ??????? ? ???????????????? ? Visual Basic .NET). ????. 9.3 ? 9.4, ? ??????? ?????????????? ??? ????????? ?????????? SQL-DMO ? WMI, ???-
???? ?????? ?????? COM-???????????? ????? (VBScript, JavaScript, Ac-
tivePerl, Visual Basic, C++, Delphi ? ?. ?.). ??? ???? ???????? ???? ???????? ????? ?????????????? ???? VBScript. 9.2. ќбъектна¤ модель SMO 9.2.1. ќбзор объектной модели SMO SMO (SQL Management Objects) ? ??? ??????????????? Microsoft ????????? ?????? ??? ???????????? ?????????? ???????????????? ???????? ?? SQL √лава 9 29
6
Server 2005 (? ?? ??????? ????? ????? ???????? ? SQL Server 7.0 ? 2000). ??? ????????? ?????? ???????? ?? ?????????? .NET. ??? ??????? ??????? ?? ?????????? .NET Framework 2.0, ? ???????? ? SMO ???????????? ?????????-
???? ?????? ?????????? Visual Studio .NET 2005. ????????? SMO ???????????? ?????? ? SQL Server 2005, ? ??????????? ?????? ?? ????????? ?????????? ? ??????? C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies. ??? ???? ????? ???? ??????????? ??? ????????-
??? ?????????? ??? ???????? ????????, ???????????? ??????????? SMO, ????? ??? ????????? ????????? ?????? ???????? ?????? SDK ? ?????? ???-
?????? Client Components. ????????? ?????? SMO ????? ?????? ?? ?????????????? ????????? ?????? SQL-DMO, ??????? ??????????? ? SQL Server 7 ? SQL Server 2000 (??. ????. 9.3). ???????????? ??????????? ?? ??????????? ???????????? ?? ?? ???????? ????????, ??????? ? ???????. ?????? ? SMO ????????? ??????? ?????????? ????? ????????????: ? SMO ???????????? ???????????? .NET ? ????? ?????? ????????? ???-
???????????????, ???????? ?????, ??? ????????? ???????? ??????? ?????-
??? ? ??????????? ??????. ? ????????, SMO ??????? ?????????????? ? ????????, ??? SQL-DMO, ??? ??????????? ????????????? ?????? ?????-
????? .NET. ?????? ????????? ???????? ? SMO ????? ??????????? ??-
?????. ????????, ???? ?? ????????? ?????? ?? ????????? ???????? (??? ?????? ?? ???????, ?????? ? ???? ?????? ? ?. ?.) ? SQL-DMO, ?? ?????? ?? ???? ???????? ????? ?????? ????????? ? ??????? ? ??????????? ??-
????. ? SMO ??? ????? ???????? ? ??????????? ?????? ?????? ??????-
??, ?, ????????, ????? ???? ????? ???????? ???????; ???????? ?????????????????? ??? ?????????? ?????? Transact-SQL ?? ???????. ?????? ????? ?????????? .NET/SMO ????????????? ??????????? ????????, ????? ?? ?????? ?????????? ????? ?????? Transact-SQL, ? ????-
???? ??? ??????? ?????? ???????; ???????? ?????????? ?????? ? ??? ?? ???? ?????????? ? ????????????? ????????? ?????????? WMI, ??? ? ?? ???? ??????????? ??????? SMO; ????????? ??????????? ???????? ???????? ??? ?????? ??????????? ??-
??? ? ??? ? ??????? URN (Unique Resource Name ? ?????????? ??? ??-
?????). ?????? URN ??? ?????????? ?? ?????? ??????? ????? XPath, ??-
????? ???????????? ??? ????????? ?? ?????????? XML. ????????, ???? ? ??????? URN ? ???? ?????? db1
????? ????????? ???: /Server/Database[@Name='db1'] ????????? ??????? ?????????? ????? ????????, ??????????? ????? ???-
???????? SQL Server 2005. ????????, ? SMO ????????????? ??????? ??? ¬ыполнение административных операций при помощи объектных моделей? 29
7
????? ??????????? ?? HTTP, ???? XML, ???????????? ??????? ??? ???-
???, Database Mail, ???????????? ? ????????????? ?????? ? ?. ?. ??? ????????????? ???????? SMO ? ?????????? ??? ??????????? ???????? ? ?????? ?????? ?? ??????????? ??????????. ????? ????, ????? ????? ???? ???????????? ???????? ????? ????????, ????????????? ????????????? ???-
?????? ???????????? ????. ??????????? ?????????????????? ???????? ? Visual Studio .NET 2005 ????? ??????? ?????? ? SMO ???????? ???: 1. ???????? ?????? ??????. ? ???????? ????? ??????? ????? ?????????????? ??????? Visual Basic .NET 2005 ???? Windows Application ??? Console Application. 2. ???????? ? ?????? ?????? ?? ????????? ?????????? (?????? .NET): Microsoft.SqlServer.ConnectionInfo.dll
; Microsoft.SqlServer.Smo.dll
; Microsoft.SqlServer.SqlEnum.dll
; Microsoft.SqlServer.SmoEnum.dll
. ?????????? ?????? ? ?????? ????? ????????? ??? ?????? ??????? Add Reference (???????? ??????) ???????????? ???? ??????? ? ???? Solution Explorer. 3. ???????? ? ????? ?????? ??????? Declarations (??????????) ??? ????? ????? ??? ???????????? ?????? ???????: Imports Microsoft.SqlServer.Management.Smo Imports Microsoft.SqlServer.Management.Common 4. ????? ???????? ??????????? ????????? ? ????????? ? ??? ??????????? ??? ??? ?????? ? ????????? SMO. ???????? ??????? SMO ????? ???-
???????? ? ????????? ????????. ??? ???? ???????? ????? ??????? ????? ???????, ??? ??? ???????? ??? ??-
???????. ???????????? ?? ?????? ? SMO ????? ????? ? Books Online ? ??????? SQL Server Books Online | SQL Server Programming Reference | Database Engine Administration Programming | SQL Management Objects (SMO) (SQL Server Books Online | ??????? ?? ???????????????? SQL Server | ?????????????-
??? ???????? ?? ????????????????? ???? ??? ?????? | SQL Management Objects (SMO)) ??? ? MSDN ??? Visual Studio .NET 2005. ?????????? ? ???-
?? ?????????? ?????????? ?????????. ? ?????????, ??????? ?? ???????? SMO ?????????? ????? ??????? ????- ??????. ? ????? ????? ?????? ?????????? ?????????????????? ???????? ???-
??????? ??????, ? ??????? ??? ??????????? ???????? ???????????. ??????? √лава 9 29
8
?????????????, ????? ???????? ??????? ? ??????? ????????, ???????????? ?????: ??????? ?????? ? SMO ? Books Online. ????? ?? ????? ? ??????? SQL Server Books Online | SQL Server Programming Reference | Database Engine Administration Programming | SQL Management Objects (SMO) | Programming Specific Tasks (???????????????? ?????????? ?????); ??????? (Samples), ???????????? ? ????????????? SQL Server 2005. ??-
?? ?? ??????? ?? ??? ????????? ?? ????? ?????????, ?? ????? ?? ????? ? ???? ???? | ????????? | Microsoft SQL Server 2005 | Documents and Tutorials | Samples (???????????? ? ??????? ??????????? | ???????). ????? ?????????? ????? MSI, ??????? ?????????? Microsoft SQL Server 2005 Samples (English) (??? ????? ?????????? ?????? ???????? ?? ???? ????? ? ??????? ???????), ? ??????? ? ????????, ? ??????? ???? ???????? ???????, ????? Engine\Programmability\SMO. ? ???? ????? ??-
??????? ????? 20 ???????? ?? Visual Basic ? C#, ??????? ???????????? ?????????? ????????? ????????; ? ???????? ??????????????? ????????? ?????????? ????? ???????????? ????????. ? ???? ????? ?? ???????? ?????? ??????????? ????????? ??? ??????????? ??-
?????? ????????? ?????????? SMO. ??????? ???? ? ??????????? ????????-
??????? ? ????????????? ? ???? ???????????? ? ? ????????? ???????? ??-
???? ? ???? ??????????? (???????, ?? ????? ???????????? ??????, ???? ????-
???? ??????????? ??? ??????????? ??????????????? SQL Server 2005). 9.2.2. ќбщие приемы работы с объектами SMO ?????? ??? ?????????? ? ???????????? ?????????? ???????? SMO, ?????? ???????? ? ??????, ??????? ???????? ?????? ??? ???? ???????? SMO. ??? ???????? ? ?????? ?? ?????? ????????? ????? ????????? ????? ?????????. ??????? ??????????? ?? ?????????: Properties
? ??? ???????? ?????????? ????????? Properties
? ????????? Property
, ??????????????? ???????? ??????? ???????. ??? ?????? ???-
???? Property
????? ???????? ?????????? ?? ????? ????????, ??? ?????-
???, ????, ??????????? ????????? ? ?. ?. ???????? ????????????, ??? ?????? ???????? Properties
????? ??????????? ????? ???????? ??-
???????? ? ???? ????????? ?????? ??????? SMO. ?? ???????? ??? ?? ???: ?????? ??????? ? ???? ????????? ??????-?? ?????????? ?? ???????. ??-
??????, ?? ???? ?????????????? ??????? ??????? SMO.Server
? ??? ??????-
??? ?????? ?????? ???????? InstanceName
; ¬ыполнение административных операций при помощи объектных моделей? 29
9
State
? ??? ?????? ????? ???????? ????? ???????? ?????????? ? ??-
??????? ??????? SMO. ??? ???? ????????????? ???? ????????: Creating (0)
? ? ?????? ?????? ?????????? ???????? ???????; Dropped (1)
? ? ?????? ?????? ?????? ?????????; Existing (2)
? ?????????? ????????? ???????. ?? ??????????, ? ????-
?? ?????????? ? ??? ?? ??????????; Pending (3)
? ??? ????? ??????? ? ??????? ?? ?????????? ????? ?????-
?? ???????; ToBeDropped (4)
? ??? ????? ??????? ? ??????? ?? ?????????? ????? ??????? ?? ??? ????????; Urn
? ????????? ???????? ???????? SMO. ?????????? ??? ??????? ? ???? ? ???? ? ???????? ???????? SQL Server ? ??????????? ??????? URN. URN ??? ?????? ??????? ????????. ????????, URN ??? ??????? ?????? ????? ????????? ???: Server[@Name='LONDON7\SQL2005']/Login[@Name='sa'] ? SMO ????? ?????? ???????? ????? ?????? ?? ??? ?????? URN. ??? ??-
??????? ?????? ?? ?????? ?? URN ????? ???????????? ????? ??????? SMO.Server
, ??????? ?????????? GetSMOObject()
; UserData
? ??? ???????? ????? ???????????? ??? ?????????? ?????-???? ???????????????? ?????????? ?? ??????? (????????, ??? ???? ????????? ??? ?????????? ?????-?? ???????? ? ????????? ???????). ??? ???????? SMO ????????????? ????? ??????, ??????? ?????????? ????-
???? ?????? ? ??? ???? ? ??????????? ????????: Alter()
? ???? ????? ?????????? ????? ???????? ????????? ? ???????? ??????? ??????? ??? ????, ????? ??? ????????? ???? ?????????; Grant()
, Deny()
, Revoke()
? ??? ?????? ????????? ?????????????? ??????-
?????? ????-???? ??????????, ???????? ????? ?????? ? ???????? ????? ??????????????? ?????????? ? ??????? ?? ?????? ? ???????? SQL Server; Refresh()
? ???? ????? ?????? ???????? ?????????? ?? ??????? ? ???? ?????? (???? ?????? ??? ?????????? ? ????? ????? ?????????); Script()
? ???? ????? ???????????? ??? ????????? ? ???????????? ? ???-
??????? ??????????? ??????? Transact-SQL, ??????? ???????? ?????????? ?????? ??????. ??????? ??? ???? ??????. ? SMO ?????? ??????? ????????????? ? ??????-
???. ????????, ? ?????? SMO.Server
???????? ????????? DatabaseCollection
, ??? ?????? ???? ?????? ????????????? ????????? TableCollection
? √лава 9 300 ViewCollection
? ?. ?. ? ??????????? ???? ????????? ?????????? ???????? ? ??????: Count
? ??? ???????? ????????? ???????? ?????????? ? ?????????? ???-
?????? ? ????????? (????????, ?????????? ?????? ? ???? ??????); Item
? ?????? ?? ?????????? ??????? ? ?????????. ?????? ????? ????-
???? ????? ?????? ?? ?????? ????????, ? ? ??????????? ??????? ? ?? ??? ?????; Parent
? ?????? ?? ???????????? ??????, ???????? ??????????? ??? ???-
??????; Contains()
? ???? ????? ????????? ?????????, ????????? ?? ? ????????? ?????? ? ????????? ?????? (?????? ????? ?????????? ????? ???????? ? ?? ?????? ????????? ????????? ?????????); CopyTo()
? ???? ????? ???????? ??? ???????? ????????? ? ?????????? ??????. ??? ???? ????? ?????????? ????? ??? ??????? ????????. ???? ????? ????? ????????????, ????????, ????? ????? ???????? ????? ???-
??? ???????? ?? ?????????? ?????????. ??? ???? ????????? ????? ???????????? ?????????????? ??????????? For Each
. ?? ?????? ????????? ??? ????? ???? ????? ??????. ????????, ????-
???? ?????????? ? ???? ??????? ????? ???: For Each oLogin In oSrv.Logins MsgBox(oLogin.Name) Next ??????? ????? ???? ??????, ??????????? ??? ??????????????? ? ????????-
?????, ????????? ???????? ? SQL-DMO. ? SQL-DMO ???????? ????? ???-
????? (???????, ??????? SQL Server Agent ? ?. ?.) ???????????? ??? ?????? ?????? Add()
??????????????? ?????????. ? SMO ????? ????? ??? ??????-
??? ?? ????????????. ???????? ???????? ?????? ???????????? ??? ?????? ????????????, ???????? ?????????? ??????????????? ????????? (?????? ???????, ???? ?????? ? ?. ?.). 9.2.3. ќбъект SMO.Server ??????? ?????? ? ????????? ?????? SMO ? ???, ???????, ?????? SMO.Server
. ?? ???????????? ????????? ??????? SQL Server. ? ??? ??????? ???????????? ??????????? ?????????? SMO ? ??????????? ??????? SQL Server. ????? ??-
??, ??? ??????????? ?????????, ????? ??????????????? ?????????? ? ????-
???? ????? ???????, ? ????? ????? ???? ?????????? ? ?????? ???????? ?? ???????. ????????, ??? ?????? ???????? Databases
????? ??????? ????? ??-
?????? ????????? ??? ?????? (?????? DatabaseCollection
) ?? ???? ???????, ¬ыполнение административных операций при помощи объектных моделей? 301 ??? ?????? ???????? Database
?? ???? ????????? ????? ?????????? ? ?????-
??? ??? ?????? ? ?. ?. ?? ? ????? ?????? ?????? ?????? ?????????? ? ???-
???????? ? ???????, ??????? ??????????? ??? ?????? ??????? SMO.Server
. ???????? ????? ??????? ???????? ????? ??????: Dim oSrv As New Server ??? ?????? ???? ????????? ???????????? ?? ????????? ? ?????????? SQL Server ?? ????????? ?????????? ??? ?????? ?????????????? Windows. ??? ??????????? ??? ?????? ?????????????? Windows ? ??????? SQL Server ?? ?????? ?????????? ??? ? ???????????? ?????????? ?? ????????? ??????-
???? ????? ???????????? ?????? ??????? ????????????, ??????? ????????? ??? ??????? ? ???????? ?????????? ?????????: Dim oSrv As New Server("Server1\Instance2") ???? ??? ????? ???????????? ?????????????? SQL Server, ?? ???????? ???-
???? ??????? ? ????????? ?????? Microsoft.SQLServer.Management.Common.Ser-
verConnection
, ? ????? ???????? ??? ? ???????? ????????? ???????????? ???-
???? SMO.Server
: Dim oConn As New ServerConnection oConn.ServerInstance = "Server1\Instance2" oConn.LoginSecure = False '???????? ?????????????? SQL Server oConn.Login = "sa" oConn.Password = "P@ssw0rd" Dim oSrv As New Server(oConn) MsgBox(oSrv.Name) '????????? ????? ????, ??? ?????? SMO.Server
??????, ? ??????, ?? ??????? ????????-
???? ? ????????????? ??? ??????? SQL Server, ????? ???????????? ???????? ? ?????? ????? ???????, ????? ??????????????? ? ?? ??????? ????????? ?????-?? ???????? ??? ???????? ?????? ? ?????? ???????? SQL Server (????? ??????, ??????? ? ?. ?.). ????? ??????????? ?????? ????? ?????? ??????? ??????? SMO.Server
? ?????????????: BackupDevices
? ?????????? ????????? BackupDeviceCollection
, ????-
?????????? ?????????? ?????????? ?????????? ???????????, ????????? ?? ?????? ???????. ?????? ??? ????????? ???????????? ??? ????????? ?????????? ? ?????????? ??????????? ?????????? ??????????? ?? ??????? (???????? BackupDevice
) ? ??? ?? ???????????? ????????; Configuration
? ??? ???????? ?????????? ?????? Configuration
, ??????? ????????????? ?????? ? ?????????? ????????? ???????. ??? ????????? ?????? ????????????? ??? ?? ??????? ??????? ? Management Studio, ??? √лава 9 30
2
??? ?????? ??????? SQL Server Surface Area Configuration, ??? ??? ??-
???? ???????? ????????? sp_configure
. ????????, ??????, ????????? ?? ?? ??????? ?????? ?? ???????? .NET ?? ???? Transact-SQL, ????? ???: MsgBox(oSrv.Configuration.IsSqlClrEnabled.RunValue) ? ???????? ???? ???????? (?. ?. ????????? ?????? ?? ????????) ????? ????????? ???????: oSrv.Configuration.IsSqlClrEnabled.ConfigValue = 1 oSrv.Configuration.Alter() ?????? ?????? ???????? ??? ??????? ???????? ??? ?????? ??? ???????? Settings
. ??? ???? ???????? Information
???????? ?? ????????? ?????? ???????, ??????? ??????????? ??????? ???????? ?????? (??????, ??????-
????? ???????, ?????????? ??????????? ? ??????? ? ?. ?.); Databases
? ??? ?????? ????? ???????? ????? ???????? ?????? ? ???-
?????? DatabaseCollection
, ? ??????? ????????? ??????? ??? ?????? ???-
????. ? ???????? ??? ?????? ????????? ??????? ??????, ?????????????, ???????? ???????? ? ?. ?. ???????????, ??? ???????? ????? ???????????? ????? ????????? ?????? SMO. ??? ??????? DatabaseCollection
? Databases
????? ?????????? ? ????????? ???????; FullTextService
? ??? ?????? ????? ???????? ????? ???????? ?????? ? ???????????? ???????, ??????????????? ?????? ??????????????? ????-
?? ?? SQL Server 2005, ?, ????????, ??????????? ??????? ???????? ??-
??????? ?????? ??????; InstanceName
? ?????????? ??? ?????????? SQL Server (????????, Server2
). ?????????? ? ?????? ????? ??????? (???? "LONDON\Server2"
) ????? ???????? ??? ?????? ???????? Name
; JobServer
? ??? ???????? ???????????? ??? ???? ????? ?????? ?????? SMO ? JobServer
. ? ??? ??????? ????? ???????? ?????? ??? ? ???????-
??? SQL Server Agent, ??? ? ? ??? ????????: ????????, ???????????????, ??????????? ? ?. ?. (? ???????????? ?? ???????????? ????????, ??????-
???, ???????, ???????? ? ?. ?.). ????????, ????? ???????? ?????????? ? ???? ???????? SQL Server Agent ?? ???????, ????? ???????????? ??? ????: For Each oJob In oSrv.JobServer.Jobs MsgBox(oJob.Name) Next LinkedServers
? ??? ???????? ?????????? ????????? LinkedServers
, ????-
?????????? ??????? LinkedServer
(???????????? ???????, ? ??????? ????? ????????? ??????? ?? ???? Transact-SQL). ? Management Studio ¬ыполнение административных операций при помощи объектных моделей? 30
3
?????? ? ???? ???????????? ?? ?????????? Server Objects | Linked Servers (??????? ???????? | ???????????? ???????). ?????????? SMO ??????? ?????? ????????????? ??????? ?????, ????????, ??? (????? ?????-
???? ?????? ??? ??????? ??????? SQL Server, ??????? ?????????? LONDON7
): Dim oLinkedServer As New LinkedServer(oSrv, "LONDON7") oLinkedServer.ProductName = "SQL Server" oLinkedServer.Create() Logins
? ??? ???????? ????????? ???????? ?????? ? ????????? LoginCollection
, ? ??????? ????????? ??????? Login
. ??????? Login
????-
????????, ???????, ??????? ??????? ?? SQL Server. ?? ???????? ???????? ? ???? ?????????? ?????????? ?????????? ?????. ?????? ??? ??????????-
?? ? ????????, ????? ??? ????? ???????????????? ????? ??????? SQL Server ? ???????? ???????? Windows ??? ? ??????? ??????? ??????? ??-
????-?? ??????????. ??????? ????? ????? ???? SQL Server ?????, ??-
??????, ???: Dim oLogin As New Login(oSrv, "NewSMOLogin") oLogin.LoginType = LoginType.SqlLogin oLogin.Create("P@ssw0rd") ? ???? ???? "NewSMOLogin"
? ???, ???????, ???????? ???????????? ??????, LoginType.SqlLogin
? ??? ??????, ? "
P@ssw0rd
" ? ?????? ??? ??????????? ??????? ?????? (?????? ????? ??????? ??? ?? ?????????); Mail
? ??? ?????? ????? ???????? ????? ???????? ?????? ? ??????? SQLMail
. ???????? ?? ????????, ???? ?????? ???????????? ?? ?????????? SQLMail, ? ??????? Database Mail. ?????? ?? ???????????? ??? ????, ???-
?? ??????????? ??????? ????????? ??? ??????????? ??????? ? ??????? ?????? Database Mail; NotificationServices
? ??? ???????? ????????? ???????? ?????? ? ?????-
?? NotificationServices
, ??????? ???????????? ?????? Notification Ser-
vices, ????????????? ??? ??????? ?????????? SQL Server. ? ??????? ?? ?????? ??????????? ??????, ??? ????? ???????? ?? ????????? ???????? ?????????? ?????? ? ?????????????? ???????????? Notification Services. ??????? ??????: ??? ?????? ? Notification Services ???????????? ???? ??????????? ????? ??????????? ????????, ??????? ????????? ? ???????????? ???? Microsoft.SqlServer.Management.Nmo
; ReplicationServer
? ??? ???????? ????????? ???????? ?????? ? ??????? ReplicationServer
, ??????????????? ?????????? ?????????? ?? SQL Server 2005. ??? ?????????? ??????????? ????? ???????????? ???? ?????-
?????? ????? ???????? RMO (Replication Management Objects), ?? ?????-
√лава 9 30
4
??? ??? ????? ??????????????? ?????? ???????? ?????????? ???????? ?????? ?????? ReplicationServer
, ?????? ? ???????? ???????????? ??? ?????? ????? ????????; Roles
? ??? ???????? ????????? ???????? ?????? ? ??????? ServerRoleCol-
lection
, ??????????????? ??? ???? ??????? (??????? ServerRole
). ??? ??????? ?????? ???????????? ??? ?????????? ??? ?????? ????????? ??-
??? ???????. ? ?????? ?????????? ????? ?????? ?????? ??????? SMO.Server
: Alter()
? ???? ????? ?????????? ????? ????????? ?????????? ????????? ???????. ???? ????? ???? ????? ???????????? ?? ??? ???????, ? ??? ?????-
??? Configuration
? Settings
; AttachDatabase()
? DetachDatabase()
? ??? ?????? ????????? ???????? ?????????????? ??????????? ? ?????????? ???? ?????? ? ??????? ? ???-
??????? ???? ???????????; Enum...()
? ??? ?????????????? ?????? ????????? ??????? (? ???? ???-
???? DataTable
??? ?????-?????? ?????????) ?????????? ? ?????????-
?????? ???????? ?? SQL Server. ????????, ????? EnumLocks()
?????????? ?????????? ? ???? ??????????? ?? ???????, EnumProcesses()
? ? ???? ????????? ? ?. ?. ?????? DataTable
??????????? ????????? ?????? ADO.NET, ? ??? ???? ???????????? ????? ??????? ????? ??????? ? ??- ?????; GetActiveDBConnectionCount()
? ???? ????? ????????? ??????, ??????? ????????????? ? ????????? ????? ?????????? ? ????????? ???? ??????, ????????: MsgBox(oSrv.GetActiveDBConnectionCount("db1")) ?????? ??????????? ??? ???????? ????? ??????????? ? ????? ?????? ?????-???? ????????; GetSMOObject()
? ????? ?????? ?????, ??????????? ???????? ?????? ?? ?????? ? ???????? ???????? SQL Server ?? ??????????? ???? ? ???? ? ??????? URN; KillAllProcesses()
? ???? ????? ????????????? ????????? ???? ??????-
??????? ?? ????????? ???? ??????. ?????? ???????????? ????? ???????-
???? ?????-???? ???????? ? ????? ??????; KillDatabase()
? ???????? ????????? ???? ?????? (?????? ? ???????). ??? ????????? ? ???? ?????? ??????????? ????????????? ? ???? ???? ?????? ????? ????????????? ???????; KillProccess()
? ???? ????? ????????????? ????????? ???????????????? ??????????? ? SQL Server. ??? ???????? ????? ??????? ??? ID, ??????? ¬ыполнение административных операций при помощи объектных моделей? 30
5
????? ???????? ??? ?????? ???????? ???????? (????????, sp_who
) ??? ??? ?????? ?????? EnumProcesses()
; PingServerVersion()
? ???? ????? ????????? ??? ????????????? ??????? ? ?????????? ?????? ServerVersion
? ??????????? ? ?????? SQL Server. ???? ????? ????? ?????? ???????????? ??? ????????? ????????, ?? ????-
??? ?? ??????????? ?????? ?????????? ? ?????; ReadErrorLog()
? ???? ????? ?????????? (??? ?????? ??????? DataTable
) ?????????? ?? ???????? ??? ?????????? ???? ??????? ?????? SQL Server. 9.2.4. ќбъект SMO.Database ? ?????????? ??????? ?? ????????????? ? ???, ??? ??? ?????? ??????? SMO.Server
???????????? ? SQL Server ? ????????? ????????? ???????? ?? ?????? ????? ???????. ?????? ???? ????? ??? ????? ??????????? ?????????? ??????????? ???????? ? ?????? ?????? ? ?? ????????? ? ?????????, ????-
???????????, ?????????, ????????? ???????????, ?????????????? ? ?????? ??? ?????? ? ?. ?. ??? ???? ????? ????????? ?????-?? ???????? ? ????? ???-
??? ??? ???????? ?????? ? ?? ????????, ?????????? ???????? ?????? ?? ??? ???? ?????? ??? ?????? ??????? SMO.Database
. ????? ???????? ?????? ?? ?????? ???? ?????? (?. ?. ??????? ?????? SMO.Database
), ? SMO ???? ????? ????????? ??? ???????: 1. ???????????? ???????? Item
????????? DatabaseCollection
, ?????? ? ????-
??? ???????????? ??? ?????? ???????? Databases
??????? SMO.Server
. ??-
??????, ????? ?????????? ? ???? ?????? db1
?? ??????? LONDON\Server2
, ????? ???????????? ??? ????: Dim oSrv As New Server("LONDON\Server2") Dim oDB As Database oDB = oSrv.Databases.Item("db1") 2. ???????? ?????? ?? ?????? ??? ?????? ?????????????? URN: Dim oDB As Database oDB = _ oSrv.GetSmoObject("Server[@Name='LONDON\Server2']/Database[@Name='db1']") ???? ?????? ????????? ???????, ?? ????? ???????????. ????????? ? ?????????????? ?????????????? URN ???????? ????? ????-
?????? ???????, ?? ?? ???????? ???? ?????? ????????? ???????? ? ????? ???-
??? ?????????????????? ? ???????? ???????????? ???? ? ??? ???????, ????? ??? ????? ?????????? ? ???????? "? ???????" ???????? ???????? SQL Server, ????????, ? ???????? ???????. √лава 9 30
6
????? ????, ??? ?? ???????? ?????? ?? ?????? ???? ??????, ????? ??????-
?????? ???????? ? ?????? ????? ???????. ???????????? ????? ??????? ??????? SMO.Database
????????????? ??? ????????? ??????? ? ?????????? ???????? ?????? ??????? (
Tables
, Views
, Triggers
, StoredProcedures
? ?. ?.). ?????? ?????, ? ??????? ????????? ???????? DBOLogin
? ????????? ???????, ????-
???????? ?? Is...
, ????????????? ??? ???????? ???? ???????? ???????????? ????? ??????????? ?????-???? ????????. ?????????? ??????????? ??????? ????? ??????? ?? ?? ????????. ??????? ???????? ???? ?? ??? ??????: ExecuteNonQuery()
? ???? ????? ????????? ????????? ??????? ? ???? ?????? ? ??? ?????????, ????? ?????????? ?????????? ??????? (? ???? ??-
???? ????????? ??????) ??? ?? ??????????, ????????: oDB.ExecuteNonQuery("exec SP_CHANGEDBOWNER 'user1'") ExecuteWithResult()
? ???? ????? ????????? ????????? ?????? ? ???? ?????? ? ??????? ??? ?????????? ? ???? ???????????? ??????? DataSet
?? ?????????? ADO.NET. ?????? ???? ?????? ???????????? ??? ???????? ? ??????????? ? ??????????? ????????? ??????????, ????? ??? DataGrid
. ????? ??????? ??????, ????? ?????????, ??? ?????????? ????????????? ????????????, ?????: Dim oDataSet As DataSet oDataSet = oDB.ExecuteWithResults("SELECT * FROM table1") MsgBox(oDataSet.GetXml) 9.3. ќбъектна¤ модель SQL-DMO 9.3.1. ќбзор объектной модели SQL-DMO ??? ?????????? ? ?????????? ????????, SMO ? ??? ????? ????????? ?????? ??? ?????? ? SQL Server 2005, ?????????? ?? ?????????? .NET. ? ??????? ?? ???, ????????? ?????? SQL-DMO ????????? ?? ???????????? COM-
??????????? ? ?? ??????? .NET. ??????? SQL-DMO ?????? ????????? ? ????????. ????? ????, ?????? ? ???? ?????? ??????? ??????? ?????? ?????-
???, ??? ?????? ? ????????? SMO. ????????? ?????? SQL-DMO ?????????????? ? ? ?????????? ??????? SQL Server. ? SQL Server 2005 ??? ?????? ??????????? ??? ?????????. ??????? ? ??? ??????????? ??????? ??? ?????? ? ?????? ????????????? SQL Server 2005, ?????? ??? ???????????, ????? ??????????? ?? HTTP, ??????-
??? XML Schema ? ?. ?. ????? ????, Microsoft ?????????????, ??? ? ??????-
??? ??????? SQL Server ??? ????????? ?????????? ????? ?? ??????????????. ??????? ??? ???????? ??????? ? ?????????????? ??????????, ?????????-
¬ыполнение административных операций при помощи объектных моделей? 30
7
??? ?? ??????????????? ???? ?????, ???????????????? ???????????? SMO. ?????? ??? ?????????? ? ???????? (? ???????? SQL Server Agent, ??????? SSIS, ?????? ? ???????????? ??????? ??? ????? ????????????? ?????-?? ???-
?????) ???????????? SQL-DMO ?????? ??????????. ?????????? ????????? ?????? SQL-DMO ??????????????? ????????????? ??? ????????? SQL Server 2005 ??? ??????? ?????????????????. ???? ?? ??-
???? ????????? ??????? ??? ????????? ? ?????????????? SQL-DMO ?? ???-
???????, ?? ??????? SQL Server ?? ????? (????????, ????? ? ??????? ????-
??? ?????????????? ????????? ??????? ????? ??? ?????????? ???????? ? ??-
??? ????), ?? ??? ??????????? ?????????? ??? ??????????. ??? ????? ?????????? ??????????? ?? ?????? ????????? ???? Sqldmo.dll (?? ??????-
??? ?? ??? ??????????, ?? ??????? ?????????? SQL Server 2005, ??? ????? ????? ? ???????? C:\Program Files\Microsoft SQL Server\90\Tools\Binn) ? ????-
???????????? ???, ???????? ? ????????? ?????? ???????: regsvr32 sqldmo.dll ???????, ??? ??????? ?????? ???? ????????? ?? ???? ????????, ? ??????? ?? ??????????? ???? ????. ???????? ???????? ?????????? ?? ?????? ? SQL-DMO ? Books Online (???-
??? SQL Server Books Online | SQL Server Programming Reference | Data-
base Engine Administration Programming | SQL-DMO (SQL Server Books Online | ??????? ?? ???????????????? SQL Server | ???????????????? ???-
????? ?? ????????????????? ???? ??? ?????? | SQL-DMO). ????? ????, ????? ???????? ?????????? ?????????? ???????? ????? ????? ? ??-
???????. ? ????????? ???????? ??? ???? ???????? ?? SQL-DMO ????? ????????????-
?? ???? VBScript (??? ????? ??????? ? ????? ???????????? ??? ??????????-
??? ?????????????????). ??? ?????? ? ????????????????? ????????? VBScript ? ??????? ??????? ??????????? ??????? ????? ??????????????? ????????? Sapien PrimalScript. ? ??? ????????????? ????????? ??????????, ????????? ?? ????????? ? ??????? ????????, ??????? ?????????????? ?????-
??????, ?????? ?? ????? ? ????????? ???????????? ???? ? ?. ?. ??? ???-
?????? ????? ??????? ? ????? www.sapien.com (?? ????? ???????????? ??? ??????????? ? ??????? 30 ????). ? ???? ????? ?? ???????? ?????? ???????? ??? ?? ????? 150 ???????? SQL-
DMO. ????? ??????????? ?????? ????? ?????? ?? ??? ? ???????? ???????? ??????????? ???? ????????? ??????. ??????? ???? ??????????? ????????? ?????? SQL-DMO. ?????? ??????? ? ??? ??????????????. ????????, ?? ?????? ????? ??????? ? ??????? ???? SQLServer
? SQLServer2
, Table
? Table2
, User
? User2
? ?. ?. ??? ???????, ????-
√лава 9 30
8
??? ???????????? ?? 2
, ???????? ??????????????? ?????????? ? ????????, ?????????? ?????? ??? ??????????? ? SQL Server 2005 ? SQL Server 2000 (??????? ??????? ? ?????? ???????? ? ??????, ????????? ? ??? 7.0, ? ??? ????? ??????? ??????). ????? ????? ??????????????? ?????? ???????, ????-
?????????? ?? 2
. 9.3.2. ќбъект SQLDMO.Application SQLDMO.Application
? ??? ?????? ?????? ???????? ?????? ? ???????? SQL-
DMO (? SMO, ??? ?? ???????, ??? ??? ???). ?? ????????????? ?????? ? ???-
????? SQL-DMO ?????? ??????? ? ? ????????? ?????????? DMO. ?????? ???? ?????? ???????????? ??? ???? ?????: ??? ????????? ??????? ?? ???????, ????????????, ??????? ???? ? ???-
???????? SQL-DMO; ??? ????????? ?????? ???????? SQL Server, ??????? ?? ????. ????????, ??? ????????? ?????? ???? ???????? SQL Server ? ???? ????? ??-
?????????? ??????: Dim oApp, oNameList, nCount Set oApp = CreateObject("SQLDMO.Application") Set oNameList = oApp.ListAvailableSQLServers() nCount = oNameList.Count For i = 0 To nCount WScript.Echo (oNameList.Item(nCount)) Next 9.3.3. ќбъект SQLDMO.SQLServer2 ??? ? ? ????????? ?????? SMO, ??????? ?????? SQL-DMO ? ??????, ????-
?????????? ?????? SQL Server. ? SQL-DMO ?? ?????????? SQLDMO.SQLServer2
. ???? ????? ?????? ??????? SQL-DMO ???????? ???: ??????? ?????? SQLDMO.SQLServer2
, ?????????? ??? ??? ??????????? ? ???????, ????? ????? ?????? SQLDMO.SQLServer2
???????? ?????? ? ??????????? ???????? (????? ??????, ???????, ???????? ? ?. ?.) ? ????????? ? ???? ???????????? ?????-
???, ? ????? ????? ????? SQLDMO.SQLServer2
????????? ??????????. ????????, ??? ????????? ?????????? ? ??????? ?????????? ???????????? ?? ???? ????? ?????? ????? ???????????? ?????? ????: Set oServer = CreateObject("SQLDMO.SQLServer2") '?????????? ?????????????? Windows oServer.LoginSecure = True oServer.Connect "Server1\Instance2" ¬ыполнение административных операций при помощи объектных моделей? 30
9
For Each oDatabase In oServer.Databases WScript.Echo oDatabase.Name & " " & oDatabase.SpaceAvailableInMB Next oServer.Disconnect Set oServer = Nothing ??????? ? ??????? ? ??????? SQLDMO.SQLServer2
????? ?????, ??????? ????? ???????????? ?????? ????? ?????? ?? ???: CodePage
? ?????????, ????????????? ??? ????? SQL Server; LoginSecure
? ???? ??? ????? ???????? ???????????? ???????? False
(?? ?????????), ?? ??????????? ??????????? ?? ????? ?????? SQL Server, ? ? ?????? Connect()
????? ????????????? ????????? ??? ?????? ? ??? ??-
????. ???? ????????? ??? ????? ???????? ???????? True
, ?? ????? ????????-
?????? ?????????????? Windows. ???????? ????????, ??? ? ??????? ?? SMO ?????????? ??????? ?????????? ? SQL-DMO ?? ?????????????. ???-
??? ?????? ??????? ? ??, ??? ?? ????????? ???????????? ???????????-
??? SQL Server, ? ?? Windows; Name
? ??? SQL Server. ? ???? ???????? ????? ???? ?????? ? ?????????; NetName
? ???????? ??????? ??? SQL Server (?????? ??????????? ??? ???????? ?????, ????? ??? ??????????? ? ??????? ????????????? ??????-
???); RegionalSettings
? ???????????? ?????????, ??????????? ??? ???????? ODBC. ??? ????????? ????? ???????? ? ???? ?????????? ???????; SaLogin
? ??? ???????? ????????? ?????????, ????????? ?? ?? ??????? ?????????? ?????????????? ?? ???????. ?????? ???????????? ??? ??????-
?? ????? ??????????? ?????-???? ????????; Status
? ??????? ????????? SQL Server. ??? ????? ???????? ???????????-
?? ?????? ????????: 0 ? ????????? ??????? ?????????? ?? ???????; 1 ? ?????????? ??????? ?????????; 2 ? ?????? ?????? ??????????????; 3 ? ?????? SQL Server ???????????; 4 ? ? ?????? ?????? ?????????? ??????? ?? ????????? "???????????" ? ????????? "????????"; 5 ? ?????????? ???????? ???????: ?? "????????" ? "???????????"; 6 ? ? ?????? ?????? ?????? ??????????? ????? ???????????? ??????; 7 ? ???????? ???????: ?????? ??????? ??????????????????; √лава 9 310 AddStartParameter()
? ???? ????? ????????? ???????? ???????? ??????? ??? SQL Server (????????, ??? ???????? ? ???????????????????? ??? ??-
????????? ?????, ??? ??????? ? ????? ?????? master
?? ?????? ????? ? ?. ?.); Connect()
? Disconnect()
? ??? ?????? ????????? ?????????????? ???-
????????? ??? ??????????? ?? ??????? SQL Server; ExecuteImmediate()
? ???? ????? ?????????? ?????? ExecuteNonQuery()
? SMO. ?? ????????? ????????? ?? ?????????? ??????? ??? ?????? ?? SQL Server, ????? ??? ?? ?????????? ????????? ?????????? ???? ??????? ??? ???????; ExecuteWithResults()
? ???? ????? ????????? ????????? ??????? Transact-SQL ?? ??????? ? ???????? ???????????? ?? ????????? ????? ???????. ????? ???????????? ??????????? ???????????? ??? ?????? ??????? QueryResults
; ExecuteWithResultsAndMessages()
? ???? ????? ????????? ??????????? ?????? ExecuteWithResults()
. ????? ??????????? ?????????? ???????, ?? ????????? ??????? ? ????????? ?????????? ????????? SQL Server, ????-
???? ?????????????? ?????????? ???????; IsPackage()
? ???? ????? ????????? ???????? SQL Server. ????? ???-
??????? 5 ????????: 0 ? ???????? ??????, ???????? ???????? ?? ???????; 1 ? Desktop Edition; 2 ? Standard Edition; 3 ? Enterprise ??? Developer Edition; 4 ? Express Edition (?????? MSDE); Start()
, Shutdown()
, Pause()
, Continue()
? ??? ?????? ?????????????? ??-
???????, ?????????????, ????????? ? ????? ????? ??? ?????????? ????-
?? SQL Server; ReadErrorLog()
? ???????? ??? ?????????? ??????? SQL Server ? ???? ??????? QueryResult
. ????? ????, ??? ?????? ??????? ??????? SQLDMO.SQLServer
????? ???????? ?????? ? ?????? ???????? ?????? ???????: BackupDevices
? ??? ????????? ????????????? ??? ?????? ? ??????????? ???????????? ?????????? ???????????; Configuration
? ??? ???????? ????????? ????????? ????? ?????? ??? ????-
????? ???????, ????????? ?????????? ???????? ????????? sp_configure
; ¬ыполнение административных операций при помощи объектных моделей? 311 Databases
? ??? ???????? ????????????? ?????? ? ????? ?????? ? ?? ???-
??????????? ????????; FullTextService
? ?????? ?? ??????? ? ??????????????? ??????????; IntegratedSecurity
? ??? ?????? ????? ???????? ????? ???????? ?????? ? ???????????? ???????, ??? ?????? ???????? ????????????? ????????? ???????????? (? Management Studio ??? ???????? ?? ??????? Security (????????????) ??????? ???????); JobServer
? ??? ? ? SMO, ???? ?????? ????????????? ?????? ? ????????? ????????????? SQL Server Agent, ????? ??? ???????, ?????????????? ? ?????????; Languages
? ?????????? ? ???????? ???????, ????????????? ? SQL Server; LinkedServers
? ???? ?????? ???????????? ??? ?????? ? ????????????? ????????? (? ????????? LinkedServer
); Logins
? ???????? ??? ??????? ? ????????? ??????? SQL Server; Registry
? ??? ???????? ????????? ??????? ??? ???????? ????? ???????-
?? ???????, ??????????? ? ??????? ?????????? SQL Server; Replication
? ??? ???????? ?????????? ?????? Replication
, ??????? ???-
?? ???????????? ??? ????????? ?????????? ?????????? SQL-DMO; ServerRoles
? ???? ?????? ????????? ???????? ?? ??????????? ????????-
?? ??????. 9.3.4. ќбъект SQLDMO.Database2 ??? ??? ?????????? ?????, ???? ????? ??? ?????? ?? ????????? SQL-DMO ?????????? ??????? ???????????? ? ???????, ? ????? ??????? ? ?????? ? ?????? ????? ??????. ? ??????? ?? SMO, ????? URN ? SQL-DMO ???, ??-
????? ??? ????????? ?????? ?? ?????? ???? ?????? ??? ???????? ????????-
???? ?????? ????????? Databases
: Dim oDB Set oDB = oServer.Databases("db1") MsgBox oDB.Name ?????? Database2
? ???? ?? ????? ??????? ?? ?????? ??????? ? ??????? ? SQL-DMO (??? ? ??????? SQLServer
? SQLServer2
). ?? ????????? ????????? ???????? ??? ? ?????? ?????? ??????, ??? ? ? ???????????? ????????? ? ?????????, ???????????????, ????????? ???????????, ????????????????? ?????? ?????? ? ?. ?. √лава 9 31
2
????? ???????????? ????? ?????? ???????? ? ?????? ????? ???????: Size
, SpaceAvailable
, DataSpaceUsage
? ???, ?????????????? ??????? ????? ????? ???????? ????? ???? ???? ??????, ??????? ????? ???????? ? ??????? ?????? ??????? ? ?????? ????; DboLogin
? ??? ???????? ????????? ? ?????? ?????????? ?????????, ??-
??????? ?? ?? ??????? dbo
??? ???? ???? ??????; Status
? ?????????? ? ????????? ???? ?????? (???????? ?????? ??? ??????); Check...()
? ??? ?????? ????????? ????????? ??????????? ???? ?????? ??? ????????? ?? ??????????? (?????????? ??????? DBCC CHECKDB
); Enum...()
? ??? ?????? ?????????? ????????? ??????, ???????? ?????, ??????????, ????????????? ? ?. ?.; Script...()
? GenerateSQL()
? ??? ?????? ????????? ????????????? ???? ?????? ? ???????????? ?????????. ??????? ????? ???? ??????????? ? ???, ??? ?????? Script...()
????????? ????? ???????? ??? ??????? ? ????, ? ????? GenerateSQL()
?????? ?????????? ???? ??? ? ???? ?????????? ???-
?????. ?????? ?? ????????? ??????, ?????????????, ???????? ???????? ? ?????? ???????? ???? ?????? ????? ???????? ??? ?????? ??????????????? ??????? (
Tables
, Views
, StoredProcedures
? ?. ?.). 9.4. WMI и SQL Server 2005 9.4.1. „то такое WMI ?????????? ??????????? WMI ?? Microsoft ???????? ???: WMI (Windows Management Instrumentarium) ? ??? ?????????? Microsoft ?????????? WBEM (Web-Based Enterprise Management ? ?????????? ????? ???????????, ????-
?????? ?? Web), ??????????? ???????????? ???? ? ???????????? ?? ???-
????? ????? ????????? ???????? ?????. ?????? ????????? ?????????, ??? ????? WMI, ??????? ??-???????. ??? ?????? ? ???????? ???????????? ??? ? ??????? ?????? ??? ???????????? ???????? SNMP (Simple Network Management Protocol). ??? ?????? ????? ???????????? ????????? SNMP-??????????? ???????? ?????????? ????? ??-
??? ???????? ?????????? ?? ????????? ????? ?????? ??????????????. ????? ?????? ???????? ????? ???????, ? ???? ??????? ??????? ???????? ??????? ?????????????? ? ??? ???????????? ??????, ????????? ????????????, ???-
?????? ? ??????? ??????????? ?????????. ??????????????? ?????????? ???? ??????? WBEM, ? ??? ???????? ??????? ? ??????? ???? ?????????? ¬ыполнение административных операций при помощи объектных моделей? 31
3
??? ??????????? ?????????? ?? ??????? ??????????? IT-??????? (? ?? ???-
?? ????? Microsoft, IBM, Intel, Hewlett-Packard, Sun ? ?????? ??????). ????? ???? WBEM ?????? ? ?????????? ???? ????????? ??????????? ????????? ??????????? ??????????? ?????????, ??? ?????? ???????? ? ??? ????? ?? ???????????? WBEM-??????????? ???????? ??????????? ? ?????????????????. ??? ???? ??????, ??? ? ? SNMP, ?????? ?? ??????????? ????????? ?????????? ? ?????? ???????? ? ??????????? ???????. ?????? ??? ?????? ??????? ???????????? ?????????? ????? ????? ????????? ????????? ???????????????? ????????. ?????????? ?????????? WBEM ??????????? Microsoft ???????? ???????? WMI ? Windows Management Instrumentarium. ??????? ? ????? 1990-? ??. ?? ??? ????????? ??????????? ???????? Microsoft ???????? ????????? ??-
???????? WMI. ??? ?????? WMI ?? ?????? ???????? (?. ?. ???????? ?????-
?????, ??????????? ???????, ????????? ???????????????? ????????): ? ????? ???????????? ???????? Windows, ??????? Active Directory (???-
?????? WMI ???????? ? Windows 2000, XP ? 2003, ?? Windows NT ? Win-
dows 98 ??????????????? ??????????? ?????? ????? ??????????); ? Exchange Server 2000 ? 2003; ? Internet Information Server (IIS); ? Systems Management Server 2003; ? ???????????? Microsoft Office; ?, ???????, ? SQL Server 2000 ? 2005. ? ????? ???????????? ?? ??? ????? ???????????? ??? ?????? ? SQL Server 2005 ?? WMI. ?????????? ???, ??? ??? ????????, ? ??? ????????? ??-
????? ???????????? ?????????? WMI Provider for Configuration Management ? ???????????? ??????? ?? ??????? ?????????? WMI Provider for Server Events. ??? ?? ????? ?????? WMI ?????????? ??? ???????????????. ?????? ?????? ? WMI ????? ??????????? ? ????? ?????? ?????????, ????????, ??? ????????? ?????????????? SQL Server Agent ???? WMI Event Alert ??? ??? ?????? ? ???????????????? ?????????? ??????? SSIS. ??????? ????? ????? ???????? ??????????? ?????? ? ???? ???????????. ???????? ? WMI ???????, ??? ? ?????????? ???????? SMO ? SQL-DMO, ? ???????????? ??? ?????????? SQL Server 2005 ? ??? ??????? ??????. ?? ? ???? ????????? ?????? ???? ? ?????? ????????????: WMI ? ??????????? ????????? ??????. ???? ??? ?????????? ??????? ?????? ? ???, ?? ??????? ???????????? ?? ??? ?????? ?? ??????? ??????-
???? ???????????? ??????????; ? WMI ??????????? ????????????? ???????? ??? ?????? ? ?????????. ??? ?????? ?????????? ???????? ?? ?????? ??????????? ????????, ???????? √лава 9 31
4
??? ????????? ?????? ??????? WMI (??????? ????????? ?????? ??? ????????). ????? ???????????, ??? ??????? ???????? ??????????? ? ?????-
??????? ???????????? ?? ??????? (????????, ???????? ???? ?? ?????, ?? ????????? ?????????? ?????????? ?????-?? ??????? ? ?. ?.) ?? ??????- ????; ??? ???, ??? ???????? ? ?????? ??????, ????? ????????? ??????? ??, ??? ? WMI ?????????? ???? ??????????? ???? ???????? WQL (Windows Query Language), ??????? ?????? ?? ?????? ????? SQL. ????? ????, ??? ???????? WMI ???????????? ??????????? ODBC-???????, ??? ?????? ???????? ?? ??????? ?????????? ? ???????? WMI ??? ? ???????? ?? ????????? ?????? (??? ???? ???????? ???????? ????? ??????????????? ???????? ? ???????). ??????????? WMI ??????? ?? 4 ??????? ???????????: ??????????? ?????????? ? ???, ??? ???????, ?????????? ??? ?????? Windows, ??????? ???????? ?????? ?? WMI. ????????, ??? SQL Server 2005 ???? ?????? ?????????? ?????? SQL Server Configuration Manager (??? ?????? ????????? ???????? ?? ????????????? ???????????? ?????????? WMI). WMI ???????????? ? ??? ????????? ???????? SQL Server Management Studio. ?? WMI ?????????? ? SQL Server ????????? ?????? ????????? ?????????? Microsoft, ????????, Systems Management Server. ? ???????? ????????? ???????? ???? ??????????? ?????????? ????? ?????? ???????; ??????????? ??????? ? ??? ?? ???????, ?????? ? ??????? ????? ????-
???? ??? ?????? WMI. ?? SQL Server ?????? ????????? ????? ????, ??-
??????, ?????????? ??????? ??????????; ?????????? WMI ? ??? ???????? WMI, ??????? ????????? ???????? ?????? ? ??????-???? ?????? ????????. ??? ??????? ? SQL Server 2005 ????? ???????????? ??? ?????????????????? ??????????, ? ??????? ??-
??? ?????????? ? ????????? ???????. ?????? ????? ????? ??? ?????? ? SQL Server ???????????? ?????????????? ??????????, ????????, ??-
???????? ??? ?????? ? ????????? ???????????? ???????; ??????????? ??????????? WMI (WMI software, ? Windows ???????????? ??????? Windows Management Intsrumentarium) ? ??????????? CIM (Common Information Model) ? ??? ???? ?????????? ???????? ?? ??????-
???????? ????????????? ?????????? WMI ?????????? ? ??????? ?? ??-
??? ???????, ?????? ? ??? ?????????? ?????????? ????????????: ???-
???????? ??????????? WMI ???????? ?? ???????????? ?????????? WMI (??????, ??????????? ??????????????? ?? ???????????? ???????, ???-
????????? ? ?. ?.), ? ??????????? CIM ? ?? ??????????? ?????????? (?. ?. ????????? WMI ?? ?????? ??????????). ????????? ???? ??????- ¬ыполнение административных операций при помощи объектных моделей? 31
5
????? ?????????? ? ????? CIM.REP ? ???????? C:\WINNT\system32 \wbem\Repository. 9.4.2. WMI-поставщики дл¤ работы с SQL Server ? ?????????, ????????? ?????? WMI ??????????? ??? SQL Server 2005 ????-
?? ?? ??? ?????, ??? ????????? ?????? SMO. ????? ?????????? ????????, ?? ??????????? ??????????? ??????????? SQL Server 2005 ??????? ??????, ??? ??????????? ?????????? WMI Administration Provider ??? SQL Server 2000. ????? ??????, ?????? ??? ??????????, ??? ????? ???????????? ?????? ???-
??????? ??????? ????????????????? SQL Server 2005 Euan Garden, ??? ??-
??????? ?? ??????? ???????? ???????? ? .NET ? ?????????? ???????????? ????????? ?????? SMO. ??? ?? ????? ? ? ????? ???? ????????? ?????? WMI ??? ?????? ? SQL Server 2005 ????? ????????? ????? ????????. ??? ?????? ? SQL Server 2005 ????? ???????????? ??? ?????????? WMI. ?????? ????????? ?????????? WMI Provider for Configuration Management (????????? WMI ??? ?????????? ?????????????). ??? ???????? ???????-
??? ? ?????????? ??????? ????????????? SQL Server 2005 (?????????? ? ??????????? ???????? ????????????, ??????????? ??????? ?????????? ? ?. ?.). ? ??? ????????????? ????? ??????? ??? ?????????? ???????? SQL Server 2005. ?????????? ???????????????? ????? ?????????? ????????? ????????? ? ????????????????? SQL Server Configuration Manager. ?? ????-
????????? ??????????????? ?? ????????? ?????? ? SQL Server 2005. ??????? ?? ???? ????????? ? Books Online (?????? SQL Server Books Online | SQL Server Programming Reference | Database Engine Administration Program-
ming | WMI and SQL Server | WMI Provider for Configuration Mana-
gement). ??? ??????? ????? ?????????? ?????????????? ? ????????? ?????? SMO ? ???????????? ???? Microsoft.SqlServer.Management.Smo.Wmi
. ?????? ????????? ? WMI Provider for Server Events (????????? WMI ??? ??????? ???????). ??? ??????? ?? ????????, ??????? ?????????? ????? ??-
???????? ? ?????????? ??????? ?? ???????. ? ??? ????????????? ??? ????-
??? ???? ???????: ??????? DDL (Data Definition Language ? ???? ??????????? ??????) ? ??? ???????, ??????? ??????? ? ?????????, ????????? ??? ?????????? ???????? ?? ?????? ??????? ??? ?? ?????? ???? ??????; ??????? ??????????? ? ??? ?? ???????, ?????????? ? ??????? ????? ???????? ??? ?????? SQL Server Profiler. ???? ????????? ????? ????????????? ??????????????? ? SQL Server 2005. ??????? ?? ???? ????????? ? ??? ?? ??????? WMI and SQL Server ? Books Online, ??? ? ??? ?????????? WMI Provider for Configuration Management. √лава 9 31
6
? SQL Server 2000 ??????????? ????????? WMI SQL Server Administration Provider (?? ?? ?????????????? ?? ????????? ?????? ? ????????, ?? ??? ???-
?? ???? ?????????? ?????????????? ? ???????????? ?? ???????? X86\OTHER\ WMI). ??????? ????? ?????????? ??????????????? ??????????????? ???????? SQL-DMO (??????, ?????, ???? ??????, ???????????? ???? ??????, ???????, ????????????? ? ?. ?.). ?? ??? ????? ?????? ? ????? ????????????? ????????-
?????? (????????, ?????? ??? ?????? ????? ?????????? WMI ?????? SMS 2003 ??????????? ? ??????? SQL Server 2000). ?????? ????????? ??? ??? ?????? ? SQL Server 2005 ??????????: ?????????? SQL Server 2005 ???-
??? ?? ????? ???? ?????????. ? ???? ???????, ?????????? WMI ??? SQL Server 2005 ???? ?????????? ?????????? SQL Server 2000. ? ???????????? ???? root\Microsoft\SqlServer
, ? ??????? ????????? ??? ??-
???????? WMI ??? SQL Server 2005, ???? ??? ???? ?????????, ??????? ??-
??????? ? SQL Server 2005. ?? ?????????? ReportServer ? ???????????? ??? ????????? ?????????? ? Reporting Services ? ??????????? ??????? ???? ?????. ? ???? ????? ????????? ReportServer ??????????????? ?? ?????. 9.4.3. ѕрограммные средства дл¤ работы с WMI ???????? ?????? ????? ??????????? ??????? ? ???????????? ??? ?????? ? WMI ????? ????? ? WMI SDK (Software Development Kit). ??? ????? ???-
???? ? Download Center ?? ????? Microsoft (www.microsoft.com/downloads). ?????? ?????????? ????? ?????? ??????????? ????????, ??????? ????? ??? ???????????: WMI CIM Studio ? ???????? ??????????? ???????, ??????????????? ??? ????????? ??????????? ???? WMI, ???????, ?? ??????? ? ???????. ????? ?? ????? ????????? ??? ????????? ? ??????? WQL-????????; WMI Event Registration ? WMI Event Viewer ? ??? ???????? ????? ??-
?????????? ??? ??????????? ??????? WMI ? ????????? ???????????? ??????? (?????????? ????, ??? ??? ???????????, ????????, ? Performance Monitor); WMI Object Browser ? ?????????? ? ????????? ???????? ????? ??????? WMI CIM Studio. ???????????? ??? ????????? ??????? WMI, ?? ??????? ? ???????. ???????? ? ??? ????? ????????? ? ???? ?????????? ? ???????? ?????? ??????????? ??????-???? ?????? (????????, ? ?????????? ? ????-
???), ?? ????? ?????? ????? ??????????? ????? ?????, ? ???????? ???????-
??? ? ????????? ?????? ????? ??????. ??? ???? ???????? ??? ?????? ? WMI ? ??????? WBEMTest (?????? ????-
?????????? ?????????? Windows), ??????? ????????????? ??????????????? ?????? ? Windows Server 2003. ??? ??????? ???? ????? ???????????? ??? ??-
¬ыполнение административных операций при помощи объектных моделей? 31
7
???????? ???????? ? ???????? WMI ?? ????? WQL. ??? ????? ????? ??????-
???????? ? ??? ?????? ?????: ??? ???????? ??????? ? ??????????? ???????, ?????????? ??????? ? ?. ?. ????????? ???? ??????? ??????????? ?? ???. 9.1. ???????, ??? ??? ??????????? WBEMTest ? ????? ??????? ???? ??????????-
?? ? WMI CIM Studio. ???. 9.1. ??????? WBEMTest ????? ?????? ?????????? ODBC-??????? ??? WMI ? ???????? ??????????? ???????? ? WMI ??? ? ??????? ????? ??????, ? ??????? ?????????? ??????-
?????? ? ???? ????????? ??????. ??????? ODBC ????? ?? ???????-????? ???????????? Windows 2000 Advanced Server ? ???????? D:\VALUEADD\ MSFT\MGMT\WBEMODBC. ????? ????????? ????? ???????? ? ?????? ????????? ?? ?????????? ?????????? ODBC ?????????? ????????? ?????-
??? ?????? ODBC (System DSN) ??? ????????? WBEM Source
. ??????? ?? ??-
√лава 9 31
8
?? ? ???? ????? Wbemdr32.chm ????? ????? ????? ? ????? D:\WINDOWS\ Help. ??? ????????? ???????? ??????? ???????? ???? ??? ????? ???????????? ? ?????? ???????. ???? ?? ?????? ???????????? ??? ?????? ????? ???????-
?? ?????? ? ?????? WMI ?? ????????? ??????????, ????????, ?? Access, ?? ????? ??????? ??????????? ????? ????????? ???, ??? ???????? ?? ???. 9.2. ????? ???? ?????? ?????? Connect ? ?????? ????? ?????? (????? ??? ??????-
????? ? ?????? Refresh) ? ??????? ??????????????? ???????????? ????. ??-
??????, ??? ?????????? WMI Provider for Configuration Management ?????? ????? ???????? ???, ??? ???????????? ?? ???. 9.2 (? ???????????? ?? ????-
?????? Computer Management). ???. 9.2. ??????????? ? ???????? WMI ??? ?????? ???????? ODBC ????? ????????? ???? ??????????? ????? ???????????? ??? ??????? ???-
???????? ? ????????? ?????? ?? ODBC. ????????? ? ??? ????? ?????? ???-
???? ???????????? ???? WMI (????????, SQLService
), ????????, ?????????-
??? ??? ????? ??????, ? ?????????, ? ?????????? ?????? (????????, ????-
??) ? ???????? ? ???? ???????. ???????, ??? "???????", ????????? ????? ???????? ?????? ODBC, ????? ???????? ?????? ?? ??????. ¬ыполнение административных операций при помощи объектных моделей? 31
9
???????? ? WMI ????? ? ??? ?????? .NET, ? ?????????? ??????? COM-
??????????? ??????????? ??????. ????? ??? ???? ???????? ????? ????????-
?????? ???? VBScript. 9.4.4. ѕодключение к службе WMI ??????, ??? ?????????? ??????? ? ???????, ? ???????????? ? ?????? WMI ?? ????????? ??? ????????? ??????????. ??????????? ????? ????????? ????? ??????? ?????????: ??? ?????? ??????? Swbemlocator
??? ??? ????-
?? ??? ??????????? ???????? (moniker ? ??????????? ????????? ??? ???-
???????? ? ???????? COM). ?????? ?????? ???????? ???: 1. ??????? ???????? ?????? SwbemLocator
: Dim oLocator Set oLocator = CreateObject("wbemScripting.Swbemlocator") ? ??????? SwbemLocator
???? ????? ???? ???? ???????? ? ???? ?????. ???????? security_
???????????? ??? ????????? ?????? ?? ??????????? ????????? ?????? ? ??? ????????? ???????????? ??? ??????????? (???? ???????? ?????????? ???????????? ?????????? ?? ????????, ???????????? ?? ?????????), ? ????? ConnectServer()
?????????? ??? ??????????? ? ?????? WMI ?? ????????? ??? ????????? ??????????. ???? ?? ??????-
??????? ? ?????? WMI ?? ????????? ??????????, ?? ??????????????? ???-
???? ??????? ???????????? (????????? ?? ????????) ??? ?? ??????? ? ??-
???? ??????????? ?????? DCOM. 2. ????? ???????? ?????
ConnectServer()
, ??????? ?????????? ??? ?????? SwbemServices
: Dim oServices Set oServices = oLocator.ConnectServer("LONDON", _ "root\Microsoft\SqlServer\ComputerManagement") LONDON
? ???, ???????, ??? ???????, ? root\Microsoft\SqlServer \ComputerManagement
? ???????????? ???? ??? ?????????? WMI Provider for Configuration Manager. ???? ?? ?????? ??????????????? ????????????? ???? ??? ?????????? WMI Provider for Server Events, ????????? ?????? ?????? ????????? ???: Set oServices = oLocator.ConnectServer("LONDON", _ "root\Microsoft\SqlServer\ServerEvents") 3. ?????????? ?????? SwbemServices
????? ???????????? ??? ?????????? ???????? WQL, ????????? ?????? ?? ??????? WMI ? ?. ?. √лава 9 320 ?????? ?????? ??????????? ? WMI, ??????? ???????? ????? ????????-
???, ? ????????????? ????????. ??????? (moniker) ? ??? ??????????? ???-
??, ??????? ??????????? ??? ??????????? ? COM-????????. ??? ????????-
????? ???????? ????????? ?????????? ????? ???????? ? ?????? (????, ???-
?????, ????? ????????): Set oServices = _ GetObject("WinMgmts://LONDON/root/Microsoft/SqlServer/ComputerManagement") ? ????? ???????????? ? ??? ??????? ? ???????, ??????????????? ?????? SQL Server, ????????? ????? ???? ?????: Set oServices = _ GetObject("WinMgmts://LONDON/root/Microsoft/SqlServer/ComputerManagement:
SQLService") ????? ?? ????? ???????? ??? ??????? ? Microsoft ????????? ?????? ?? ????????????? ????????, ?. ?. ??? ????? ? ?????. ?????? ? ??????? Swbemlocator
???? ???? ????????????: ?????? ??? ????????????? ????? ??????? ????? ???????????? ? ??????-
???? ? ??????? ??????? ????????????; ??? ????????????? ????? ??????? ????????? ?? ????????? ? ??????? ? ????????? ?????? ?? ?????????, ?????? ??? PrimalScript, ????????, ? ??? ????????????? ???????? ????? ?????????. ???????, ??? ???????????? ? ??????? ??????? ???????????? ????? ?????? ? ?????????? ??????????. ???? ?? ??????????? ???????????? ? ?????? ???-
???? ? ?????? WMI ?? ????????? ??????????, ?? ????????? ??????. ? ??? ???? ?????? ??????. ???????? ????????, ??? ?? ???? ?????????? ???????? ?????????????? ??????????? ? ?????? WMI ?? ?????????? ? ??-
???, ??? ???????? ??????????? ?????????? SQL Server. ??? ??????????? ???-
???????? ??????????? WMI ??? ?????? ? SQL Server. ????????, ??? ????-
????? ? ???????? ?????? SQLService
, ?????????????? ?????? SQL Server, ?? ???????? ??????? ??? ???? ??????????? SQL Server, ??????? ??????????? ?? ???? ??????????. ?? ???? ??? ?????????? ?????? ?????????? ????????? ???????, ?? ??? ????????? ? ???????? WMI ????? ??????????????? ??????-
??? ?????????? SQL Server ?????????? ????? ???????? WQL. 9.4.5. язык WQL: подключение к объектам WMI ????? ????, ??? ?? ???????????? ? ?????? WMI ?? ?????? ??????????, ??? ???????????? ?????? ?? ?????? SwbemServices
. ? ???? ???????? ????????? ??? ?????? ?????????? ????: ¬ыполнение административных операций при помощи объектных моделей? 321 Dim oLocator Set oLocator = CreateObject("wbemScripting.Swbemlocator") Dim oServices Set oServices = oLocator.ConnectServer("LONDON", _ "root\Microsoft\SqlServer\ComputerManagement") MsgBox TypeName(oServices) ?????? SwbemServices
? ???????? "??????? ???????" ? ????????? ?????? WMI. ??? ???? ????????????? ????????? ???????. ?????? ???? ????? ??? ????? ????????? ???? ?????? ? ???????????? ? ??????????? ??????? WMI, ???????, ????????, ???????????? ?????? SQL Server. ??? ????? ??????? ??????? ?????????, ?? ????? ??????? ? ???????? ?? ??? ? ???????????? ?????? ?? ????? WQL. ? ????? ??????? ???????? ?????????? ??????? ?? ????? WQL ????? ?????-
???? ???: Dim oCollection Set oCollection = oServices.ExecQuery("SELECT * FROM SQLService") For Each item In oCollection MsgBox item.ServiceName Next ???? WQL ??????? ?? ????? SQL ? ??????????????? Microsoft ??? ANSI-
???????????, ????, ???????, ??????? ?? ???????? SQL ? ??? ????? ?????. ????????, ? ??? ??????? ?????? ???????? ?????? ? ?????????? INSERT
, UPDATE
? DELETE
? ??? ???. ? WQL ????? ????????? ??? ???? ????????: ??????? ? ?????? (??? ????? ??????????? ????? ? ???? ???????); ??????? ? ???????? (??? ????? ??????????? ? ????. 9.4.6); ??????? ? ????????? WMI ? ????????? ???????? ?????????? ? ?????-
???? ??????? WMI. ? ???????????? ?????? ??? ???????????? ?????, ??-
????? ??????????????? ????? ?? ?????. ????? ??????? ?????????? ??????? WQL ???????? ???: SELECT ???????? FROM ???_?????? WHERE ???????? ???????? ???????? ????????: SELECT ServiceName, DisplayName FROM SQLService WHERE SQLServiceType='1' ? ???? ??????? ServiceName
? DisplayName
? ??? ????? ???????, ???????? ??????? ?????? ?????????, SQLService
? ?????? WMI, ? ???????? ???????-
????? ??????, ? WHERE SQLServiceType='1'
? ???, ???????, ??????, ??????? ????????? ??????????? ???????????? ???????. ? ?????? ?????? ????? ???-
√лава 9 32
2
??????? ?????? ??????? ??? ?????? SQL Server (??? ????? SQL Server Agent, ??????????????? ?????? ? ?. ?.). ??? ?? ??????, ??? ????? ?????? ?? ??????? ???? SQL. ?????? WMI ????-
???????? ????? ??????? ??????, ?????????? ???? ??????? ? ?????? ? ?????-
???, ???????? ? ??????? ? ???????. ? ?????????? ?????????? ????? ??????? ??? ???????? ????????? SwbemObjectSet
? ????????? SwbemObject
. ? ????? ????????? ?????? ???????-
???? ???, ????????? ?????? ???????? Count
(?????????? ????????? ? ??????-
???) ? ????? Item()
(??????? ????????? ??????? ?????? ???????). ? ??? ??? ??????? SwbemObject
, ??????? ???????????? ????? ?????????? ?????????? ???????? WMI, ?????????? ?????????? ?????????. ????? ??????, ??? SwbemObject
? ??? ?? ??? ???????? ?????? WMI (?. ?. ?? ?????? SQL Server ? ?????? ???????), ? ????? ???? ????????, ? ??????? "????" ???? ??????. ????????, ? ??????? SwbemObject
??? ?????? SQL Server (??????????????? ???????? ???????? SQLService
) ??? ??????? ServiceName
, DisplayName
? SQLServiceType
. ?? ? ???? ????????? ?????? ????? ????????-
??, ??? ? ????? ???????! ???? ?????? ????? ?????????? ?????????????: ?? ???? ????? ???????? ????????, ??????? ??? ????? ??????? ? ????????? ?????-
???? ???? ?? ?????. ??? ??????? ? ???, ??? ????????? ?? ???? ????????? ? ???????, ??????? ?? ?????????? ??? ??????? SwbemObect
, ????????????? ??-
???????????????? ? ??????? ??????? ??????. ???????, ????????, ????? ??? ????? ?????? ????????: Dim oLocator Set oLocator = CreateObject("wbemScripting.Swbemlocator") Dim oServices Set oServices = oLocator.ConnectServer("LONDON", _ "root\Microsoft\SqlServer\ComputerManagement") Dim oCollection Set oCollection = oServices.ExecQuery("SELECT ServiceName, _ DisplayName FROM SQLService WHERE SQLServiceType='1'") Dim oSWbemObject For Each oSWbemObject In oCollection MsgBox oSWbemObject.DisplayName Next ??????? ??? ???? ?????? ??????, ????????? ? ???????? SwbemObject
. ??? ?????? ???????? Properties_
????? ??????? ????? ???????? ?????????? ? ???? ????????? ??????? ??????? ??????, ? ??? ?????? ???????? Methods_
? ¬ыполнение административных операций при помощи объектных моделей? 32
3
? ???? ??? ???????. ????? ???????? ?? ?????????? ???????? SwbemObject
? ??????? ??????? ??????, ???????? ???? ??????? ? ??????? SwbemObject
?????-
???????? ???????? ?????????????. ??????? WMI ?????????? ????????? ???, ????? ???? ? ???????????? ??????? ???????????????????, ????????, ????? ?????????? ? ???? ????????? ? ??-
????? ???????? WMI ????? ???? ???????? ?? ??? ?????? ???????????? ????????, ? ?????? ?? ???? ???????. ????????, ????? ???????? ?????????? ? ???? ????????? ??????? WMI, ??????????????? ?????? SQL Server, ????? ???????????? ??? ????: For Each item In oSWbemObject.Properties_ WScript.Echo item.Name & vbTab & item.Value Next ? ??? ????????? ?????????? ? ??????? ? ????? ?? ???????????: For Each item In oSWbemObject.Methods_ WScript.Echo item.Name Next ? ?????? ?????? ???????? Properties_
?????????? ??? ??????????? ??????-
??? SwbemPropertySet
? ???????? ?????????? ? ???????? ???? Add()
, Remove()
, Item()
, Count
, ??????? ??????? ?? ???????? SwbemProperty
. ????? ?????? ???????? SwbemProperty
?????: Value
? ???????? ????????. ??? ???????? ???????????? ?? ?????????; Name
? ??? ??????? ????????; IsArray
? ???????? ??? ???????? ? ???????? ???????? ??? ???; Qualifiers
? ??? ???????? ????????? ?????????? ?? ??????? ???? ? ????-
???? ?????? ?? ????????? SwbemQualifierSet
(????????? ?????????? ???????? ??? ????? ????????), ???? ??? ???? ????? ????? ????????????. ??? ??????? ??? ???????? ????? ??? ??: ???????? Methods_
?????????? ???-
?????? SwbemMethodSet
, ????????? ?? ???????? SwbemMethod
. 9.4.6. –абота с событи¤ми в WMI ????????, ? ??? ??? ?????? ?????? ? ? ????? ????? ????? ?????????? ??-
?????? ? ????????? SMO ??? SQL-DMO ??????? ?????, ? ?????????????? ???????????? ? ??? ??????. ????? ?????: ? WMI ??????????? ????? ?????? ???????? ??? ?????? ? ?????????. ? WMI ????????????? ??????? ?????????? ???????. ?????????? ??????? ? ??? ?????????, ??????? ????? ?????????? ?????????? ?? ?????? WMI ? ???, √лава 9 32
4
??? ??????? ?????????. ?????????? ??????? ????? ???? ?????????? ??? ?????????. ?????????? ? ?????????? ?????????? ???????????? ? ????????-
??? WMI, ? ????? ????????? ???????, ??? ???????? ??????????????? ???? ??????????, ?????? WMI ?????????, ??????? ?????????? ??? ???. ???? ?? ????????, ?? ??? ?????? ?????????? ?????????? ? ???????, ? ???? ??? ? ?????? WMI ????????????? ????????? ?????????? (?. ?. ??????????????? ?????????). ????????? ??????????? ????? ???? ????? ?????????, ??????? ????????-
???? ? ?????? WMI ? ????????? ??????????? ?????????? ?????? ??? ??-
???? ?????? ExecNotificationQuery()
??????? SwbemServices
. ? ?????????-
?????? ??????? ?????? ??????????? ????? ???????. ?????? ?????????-
??????? ???????, ??????? ????? ??????????? ?? ????? ????????? ??? ????? SQL Server, ????? ????????? ???: Dim oLocator Set oLocator = CreateObject("wbemScripting.Swbemlocator") Dim oServices Set oServices = oLocator.ConnectServer("LONDON7", _ "root\Microsoft\SqlServer\ComputerManagement") Dim oEventSource Set oEventSource = oServices.ExecNotificationQuery _ ("SELECT * FROM __InstanceModificationEvent " & _ "WITHIN 10 WHERE TargetInstance ISA 'SqlService'") i = 0 Do While i = 0 Set oWbemObject = oEventSource.NextEvent MsgBox oWbemObject.TargetInstance.ServiceName & vbTab & _ oWbemObject.TargetInstance.State Loop ???? ?? ??????????, ????????, ?????????? ??? ????????? ?????? SQL Server ??? SQL Server Agent, ???????? ????????? ??????????? ? ?. ?., ?? ???? ?????? ????????????? ??????? ??????????????? ?????????. ?????????? ?????? ????? ????????? ???: SELECT * FROM __InstanceModificationEvent WITHIN 10 WHERE TargetInstance ISA 'SqlService' ? ???? ??????? __InstanceModificationEvent
(???????? ???????? ?? ??? ???-
?????????? ? ??????) ? ???? ?? ?????? ???????, ?? ??????? ????? ??????-
??? ???????: ¬ыполнение административных операций при помощи объектных моделей? 32
5
__ClassCreationEvent
, __ClassDeletionEvent
, __ClassModificationEvent
? ???, ??????????????, ????????, ???????? ? ????????? ??????; __InstanceCreationEvent
, __InstanceDeletionEvent
, __InstanceModification-
Event
? ????????, ???????? ? ????????? ???????; __NamespaceCreationEvent
,
__NamespaceDeletionEvent
, __NamespaceModifica-
tionEvent
? ?? ?? ????? ??? ???????????? ???? (??? ??????? ????????-
???? ?????). ???? ????? ??????????? ???????, ????????? ? ??????????? ?????? (instance), ?. ?. ? ?????????? ???????? WMI. ??????? __InstanceModificationEvent
???-
??????, ???? ????????? ????? ???????? ???????. ???????? WITHIN 10
??????? ? ???, ??? ????? ?????? WMI ????? ???????-
?????? ?????? 10 ?????? (????? ?? ??????????? ?????? ????????? ???????). ? ????? ????????? ????? ????????? ????????? GROUP BY
(??????????????? ?? ??????-?? ???????? ??????? ?? ?????? ????? ??????????????? ??? ???? ???????) ? HAVING
(????? ?? ?????????? ???????). ???? ?????????? ??????? ?????? ????? ??????, ?? ??????? ????????? ?????????????. ?????? ??????-
??? ??????? ? ?????????????? ???? ???? ?????????? ????? ?????????, ?????-
???, ???: SELECT * FROM __InstanceModificationEvent _ WITHIN 10 WHERE TargetInstance ISA 'SQLService' _ GROUP WITHIN 30 BY TargetInstance.ServiceName _ HAVING NumberOfEvents > 5 ????????? ???????? ??????????? ??????? WHERE TargetInstance ISA 'SQLService'
????????? ????????????? ???????? ???????. ???????????? ??-
??????????? ?????????? ??? ??? ????? ??????. ? ?????? ?????? ???????? ISA
????????????, ????? ???????, ??? ??? ?????????? ??? ?????????? ?????? SQLService. ???? ????? ???????? ? ?????? ?????????????? ???????, ??????????? ?????-
??? AND
: SELECT * FROM __InstanceModificationEvent _ WHERE TargetInstance ISA 'SQLService' _ AND TargetInstance.ServiceName = 'SQLAgent$SQL2005' ? ?????????? ?????????? ?????? ExecQueryNotification()
??? ???????? ???-
??? SwbemEventSource
. ?????? ??? ???? ?????????? ????? NextEvent()
, ????-
??? ??????? ????????? ??????? ? ??? ???????????? ?????????? ????????-
??? ?????? SwbemObject
, ?????????????? ????????? ???????. ? ????? ??-
?????????? ??????????? ???????? TargetInstance ??? ??????? SwbemObject
, ????? ?????????? ? ????????? ? ??????? ????????? ??????? (? ?????? ???-
√лава 9 32
6
???? ? SQLService
). ????? ????? ?????????? ??????????, ????? ????????? ???? ??? ? ??????????? ????: i = 0 Do While i = 0 Set oWbemObject = oEventSource.NextEvent MsgBox oWbemObject.TargetInstance.ServiceName & vbTab & _ oWbemObject.TargetInstance.State Loop ?????? ?? ??? ???, ???? ?? ?? ?????????? ?????? ???????, ? ???? ????????? ????? ?????????? ?????????? ? ????? ?????????? ??????? ????? SQL Server, ????????, ?? ????????? ???????? State
(?. ?. ?? ????????? ????????? ?????? ? ???????????, ???????? ? ?. ?.). ???????, ??? ???? ?????? ??????????? ?? ???? ??????????? ??????????? WMI, ? ??? ????? ? WMI Provider for Configuration Management. ?????? ?? ??????????? ?????????? ??????????? WMI Provider for Server Events ??-
?????? ????????? ?????. ??? ????? ??????????? ? ????. 9.4.8. 9.4.7. ќбъекты WMI Provider for Configuration Management ?? ????? ??????????????? ????? ?????? ?????? ? WMI. ????? ???? ?????? ??????????????? ? ??? ????????, ??????? ????? ???????????? ??? ?????? ? SQL Server 2005. ? ???? ??????? ????? ??????????? ??????? WMI Provider for Configuration Management. ??? ??? ??????, ??? ???????????????? ????? ?????????? WMI ??????????? ????????? ????????? ??????????? SQL Server Configuration Manager. ??? ?????? ???????? ????? ?????????? ?? ?????? ???????? ? ?????????, ????-
??????????? ?????? SQL Server, ????????? ? ?????????? ??????? ??????-
???? ? ????????? ??? ?????????? ???? ?????????. ???????? ?????? ???? ???-
????? ??????? ??????????: SQLService
? ???? ????? ???????????? ?????? SQL Server (??????? SQL Server Agent, ?????? ??????????????? ??????, Analysis Services, Reporting Services ? ?. ?.). ?? ????? ???? ???????????: ??? ????????? ?????????? ? ????????? ????? SQL Server (??? ????-
?? ???????? State
); ??? ????????? ?????? ?????? ?????, ????????, ??? ???????? ? ????? ??????????????? ??????? ??? ?????? ???????????? ??????? (??? ??-
???? ?????? SetStartMode()
); ¬ыполнение административных операций при помощи объектных моделей? 32
7
??? ????????? ?????????? ?? ??????? ??????, ?? ????? ??????? ??-
????????? ?????? (??? ?????? ??????? SetServiceAccount()
? SetServicePassword()
); ?????? ??? ???????, ?????????, ???????? ? ????? ?????, ??????????? ?????? ?????? (??? ?????? ??????? StartService()
, StopService()
, PauseService()
, ResumeService()
); SQLServiceAdvancedProperty
? ????? ???????????? ??? ????????? ?????-
????? ??? ????????? ?????????? ?????????????? ??????? ????? SQL Server. ??? ?????????????? ???????? ?????????? ???????????? ????????-
?? ????? ??????????? ?? ??????? Advanced ??????? ?????? ? SQL Server Configuration Management. ??? ?????? ???? ??????? ????? ?????????, ????????, ?????????? ??? ?????? ???????? ?????????? ?? ??????? ? Mi-
crosoft, ????????? ??????? ??? ?????? ?????? ? ?. ?.; SecurityCertificate
? ???? ????? ???????????? ??? ?????? ? ?????- ???????, ???????????? ??? ?????????? ?????????? ?????????? SSL ??? ?????? ??????????? ? SQL Server. ????????? ???????? ?????- ????? ? ??????????? ??? ????????? ??? (??? ?????? ?????? SetCurrentCertificate()
); ClientSettings
? ???? ????? ???????????? ????????? ??????? SQL Server (?. ?. ???????????? ???????? ?????????? ??????? ?????????). ?????????-
??? ??? ?????????? ? ??????????? ??????? ??? ????????? ??????? ? ??-
??????? ?????????, ??????? ?? ????????? ????????????? ??? ?????????. ??? ???? ???? ???????????? ????? SetDefaults()
; ClientNetLibInfo
? ???? ????? ????????? ???????? ?????????? ? ????-
??? DLL ??? ?????????? ??????? ?????????. ? ???????? ???????????? ??? ???????? ?? ??????; ClientNetworkProtocol
? ???????? ????? ??? ????????? ?????????? ????-
??? ?????????. ????????? ???????? ?????????? ? ??????? ??????????, ???????? ??? ????????? ??????? ????????? ? ????????? ???????? ??????-
???? ??????? ????????? (??? ?????? ?????? ClientNetworkProtocolProperty
), ????????, IP-????? ??? ????????? ?? SQL Server; SQLServerAlias
? ????? ???????????? ?????????? ? ??????????? SQL Server ?? ???????. ? ?????????, ????? ?????????????? ?????? ??? ????-
????? ?????????? ? ???????????? ???????????. ????????? ????? ????-
?????? ??? ???????? ???????????? ? ??? ??????? ??????; ServerSettings
? ???? ????? ???????????? ??? ?????? ? ?????? ???????-
???? ????????? ??????? ?????????. ?? ????????? ??????? ?? ???????? ?? √лава 9 32
8
????????? ??? ????????? ???????????? ?????????? ??? ?????? ??????-
?????? ?????????? ?? SSL; ServerNetworkProtocol
? ???? ????? ???????????? ??? ????????? ??????? ?????????? ?? SQL Server. ?? ????????? ???????? ?????????? ? ??????-
????? ??????? ??????????, ? ????? ???????? ??? ????????? ??????? ???-
??????; ServerNetworkProtocolIPAddress
? ???? ????? ????????? ???????? ?????-
????? ??? ????????? ????????? ??????? ?????????? ?? ?????? ???????-
???? IP-??????. ??? ???????? ????????? ? ??? ????????? ????? ????????-
?????? ????? ServerNetworkProtocolProperty
. 9.4.8. –абота с WMI Provider for Server Events WMI Provider for Server Events ? ??? ??????????? ????????? WMI, ?????-
??? ?????? ???????? ??????????? ? ?????????????? ??????? ????? ????????-
??? ??????????? ????????? WMI ? ???????????? ? ???????? (event notifi-
cations). ??? ??????????? ? ???????? ????? ?????????????? ? ????. 11.2.5. ????? ?????? ???????, ??? ??? ?????? ??????????? ? ???????? ????? ??????????? ?????????? ??????? ???? ?????: ??????? DDL ? ??????? ???????????. ??????? DDL ??????? ? ?????????, ?????????? ? ????????? ???????? ???? ??????. ??????? ??????????? ? ??? ?? ???????, ??????? ????? ????????? ?????????? SQL Server Profiler (??. ????. 11.2.3). ??????? ??????????? ????? ?????. ? ???????? ???????? ????? ??????? ????? ???-
????? ??????????? ???????????? ? ???????, ????????? ??????? ???? ?????? ??? ??????? ??????????, ?????????? ??????? ??? ?????? ?? ?????????? ???-
????? ?????????, ????????????? ????????????????, ???????????????? ??? ????????? ?????? ? ?. ?. WMI Provider for Server Events ? ??? ????? ???? ??????? ??????????? ???-
?????, ??????? ??? ?????????? ??????? ? ???????? ????? ?????????? ?????-
???? ??????????? ? ???????? ? ??????????????? ???? ??????. ??? ??????-
??????? ??????? ????????? ? ??? ? ??????? XML ?????????? ? ??????? Service Broker. ??????? ??? ?????? ? ???? ??????????? WMI ?????????? ??????????? ???????? Service Broker. ???? ?? ??????????? ??????????? ??-
????? ??? ?????????? ???? ??????, ?? ????? ???????? Service Broker ??? ???, ? ???? ?? ?????????? ??????????? ??????? ?? ?????? ????? ???????, ?? ??? ??????????? ???????? Service Broker ??? ???? ?????? msdb
. ??????????? ?????????? ? ???, ??? ????? ??? ?????? ??????? Service Broker, ????? ??? ?????? ???????: USE master; GO SELECT name, is_broker_enabled FROM sys.databases; ¬ыполнение административных операций при помощи объектных моделей? 32
9
???? Service Broker ???????? ??? ?????? ???? ??????, ?? ???????? ??? ????? ???????? ALTER DATABASE
, ????????: ALTER DATABASE AdventureWorks SET ENABLE_BROKER; ?????? ? WMI Provider for Server Events ????? ????????????????? ?? ???-
???? ???????. ???????????, ??? ?? ?????? ??????????? ?????????? ???? ????????? ? ????????? ????? ??????? ???? ?????? DB1
?? ??????? LONDON2\SQL2005
? ????? ?? ???????? ?????????? ?? ????? ???????????? ???????, ????? ????????????, ??????? ???? ?????????, ? ??????? Transact-
SQL, ??????? ????????? ??? ?????????. ??????? ??????????, ??????? ????? ??????????? ?? ????? ?????????, ????? ????????? ???????. ??????, ??? ????? ???????, ? ??????? ????? ?????? .NET. ?????????? ??-
????? ????? ??????? ??????? ? ??????????????? ???????? ??? ????? Visual Basic .NET, ??????? ?????????? Console Application (?????????? ???????-
???). ????? ????? ???????? ? ?????? ?????? ?? ?????? ? ???????????? ???????? ??? ?????? ? WMI. ??? ????? ? ???? Project (??????) ? Visual Studio .NET ???????? ??????? Add Reference, ?? ??????? .NET ???????? ???????????? ???? System.Management
? ??????? ?????? OK. ????? ???? ??? ?????? ????? ?????????, ????? ?????????? ? ???????? ???-
????????? ????. ???? ?????????? ??? ?????? Module1.vb ????? ????????? ???: Imports System Imports System.Management Module Module1 Sub Main() '??????? ?????? ????????? ? ???????????? ? ???????????? ???? 'WMI Provider for Server Events ?? ????????? ??????? '??? ?????????? SQL2005 Dim oScope As New ManagementScope("\\.\root\Microsoft\SqlServer\ServerEvents\SQL2005") oScope.Connect() '?????????? ?????? ??????????? ??????? WQL Dim oQuery As New WqlEventQuery("SELECT * FROM ALTER_TABLE WHERE DatabaseName = 'DB1'") '?????????? ?????? ??????????? ?? ???????? ? '???????? ??? ?????? Dim oWatcher As New ManagementEventWatcher(oQuery) '?????????? ???????? ?????????? ??? ??????? ??????????? oWatcher.Scope = oScope √лава 9 330 '????????????? ? ?????? ?????????? Console.WriteLine("???????? ??????????") Dim oBaseObject As ManagementBaseObject '???????? ???????? ??????? ? ??????????? ????? Dim i As Integer i = 0 Do While i = 0 oBaseObject = oWatcher.WaitForNextEvent() '??????? ?????? ???????? ???????, ??? ???????? ????????? ??????? Console.WriteLine(oBaseObject.Properties("ObjectName").Value & _ vbCrLf & oBaseObject.Properties("TSQLCommand").Value) Loop End Sub End Module «адание дл¤ самосто¤тельной работы 9.1. ѕрименение объектной модели SMO ???????: ???????? ?????????? ????????? ?? ????? Visual Basic .NET ? ??????????? ????????? ?????? SMO. ??? ????????? ??????: ?????????? ???????????? ???????? ??? ???? ?????? ???? ?????? AdventureWorks
?? ??????? ???_??????_???????\SQL2005
; ??????? ?? ??????? ??? ?????? ???????, ??? ??????? ???????????? ????-
????????. ???????: 1. ???????? Visual Studio .NET 2005 ? ? ???? File (????) ???????? New | Project. ? ???? New Project (????? ??????) ? ?????? Project Types (???? ????????) ???????? Visual Basic | Windows ? ? ?????? Templates (?????-
??) ?????? ???????? ?????? Console Application. ? ???? Name ??????? ??? ??? ???????????? ??????? (????????, AdventureWorksIndexRebuild
) ? ??????? ?????? OK. ????? ?????? ????? ??????, ??????????? ?????? ??? ???????? Module1.vb ????????? ? ???? ????????? ????. 2. ? ???? Project ???????? ??????? Add Reference ? ???????? ? ?????? ?????? ?? ????????? ?????? .NET: Microsoft.SQLServer.ConnectionInfo Microsoft.SQLServer.SMO Microsoft.SQLServer.SMOEnum Microsoft.SQLServer.SQLEnum ¬ыполнение административных операций при помощи объектных моделей? 331 ???????? ? ?????? Declarations
???????????? ?????? Module1
????????? ???????: Imports Microsoft.SqlServer.Management.Smo Imports Microsoft.SqlServer.Management.Common 3. ???????? ? ????????? Main()
???????????? ?????? ??????????? ???-
???????? ???. ?? ??? ????? ?????? ????? ???? ?????: Module Module1 Sub Main() '???????????? ? ??????? ?????????? ?????????????? Windows Dim oSrv As New Server("LONDON2\SQL2005") '???????? ?????? ?? ?????? ???? ?????? AdventureWorks Dim oDb As Database oDb = oSrv.Databases("AdventureWorks") '???????? ?????? ?? ???? ???????? ? ????????? Tables Dim oTable As Table For Each oTable In oDb.Tables '(0) ? ??? ???????? FillFactor, ???????????? ???????? oTable.RebuildIndexes(0) Console.WriteLine("???????????? ???????? ??? ??????? " & _ oTable.Schema & "." & oTable.Name) Next End Sub End Module 4. ????? ???????? ????????????????? ????????? ????????? ?????, ?????-
???, ??????? ??????????? ???? ??? ?????? ???? Build | Build Adven-
tureWorksIndexRebuild. «адание дл¤ самосто¤тельной работы 9.2. ѕрименение объектной модели SQL-DMO ???????: ???????? ?????? ?? ????? VBScript ? ?????????????? ????????? ?????? SQL-DMO, ???????: ???????? ?? ????????? ??????? ???_??????_???????\SQL2005
; ???? ?????? ??????????, ?? ????????????? ?? ??? ????????; ???? ?????? ????????????? (????????? Pause
), ?? ????????? ?? ??? ? ??-
??? Running
. √лава 9 33
2
????????? ?????? ?????? ???????, ???????? ??? ? ?????? ?????????? SQL Server. ???????: ??????????????? ??? ??????? ????? ???? ?????: Dim oServer Set oServer = CreateObject("SQLDMO.SQLServer") oServer.Name = "LONDON2\SQL2005" Select Case oServer.Status Case 0 '????????? ???????? ?? ??????? WScript.Echo "??????????? ??????" Case 1 '??????? WScript.Echo "?????? ??? ????????" Case 2 '????????????? oServer.Continue Case 3 '?????????? 'FALSE ????????: ?? ???????????? ? ??????? ????? ??????? oServer.Start("FALSE") Case Else WScript.Echo "?????? ? ?????????? ?????????" WScript.Echo "????????? ?????? ???????? ????? ????????? ??????" End Select «адание дл¤ самосто¤тельной работы 9.3. –абота с WMI Provider for Configuration Management ???????: ???????? ?????? VBScript ? ?????????????? ????????? ?????? WMI Pro-
vider for Configuration Management, ??????? ?? ? ?????????? ? 5 ?????? ??-
??????? ??? ????????????? ?? ????? ?????????? ?????? SQL Server (????-
??????? ? ?????? ?????????? SQL Server). ? ?????? ???? ?????? ?????????-
?? ??? ?????????? ? ????? ?????, ???? ?????? ?????? ????????????? ?? ?????????. ????????? ?????? ?? ?????????? ? ????????? ? ??? ?????????????????, ????-
???????? ? ???????? ? ????? ????? ????????? ?????? SQL Server (? ??? ????? SQL Server Agent) ??? ?????? ??????????? SQL Server. ¬ыполнение административных операций при помощи объектных моделей? 33
3
???????: ??????????????? ?????? ????? ???? ?????: Dim oLocator Set oLocator = CreateObject("wbemScripting.Swbemlocator") Set oServices = oLocator.ConnectServer("LONDON2", _ "root\Microsoft\SqlServer\ComputerManagement") Dim oEventSource Set oEventSource = oServices.ExecNotificationQuery _ ("SELECT * FROM __InstanceModificationEvent " & _ "WITHIN 5 WHERE TargetInstance ISA 'SqlService'") i = 0 Do While i = 0 Set oWbemObject = oEventSource.NextEvent Select Case oWbemObject.TargetInstance.State Case 1 oWbemObject.TargetInstance.StartService() WScript.Echo "?????? " & _ oWbemObject.TargetInstance.ServiceName & _ " ???????? ????? ?????????" Case 7 oWbemObject.TargetInstance.ResumeService() WScript.Echo "?????? " & _ oWbemObject.TargetInstance.ServiceName & _ " ?????????? ?????? ????? ?????" End Select Loop √Ћј¬ј 10 ѕрименение SQL Server Integration Services 10.1. «ачем нужны SQL Server Integration Services SQL Server Integration Services (?????????? SSIS) ????????? ???????????? ??? ????? ???????????, ?????????? ?????? ? ??????????? ????????, ????-
??? ????????????? ??? ??????????, ?????????????? ? ???????????? ?????? ?? ??????????? ?????????? ? ?????? "?????? ??????????". ????? ???????, ??? SSIS ? ??? ???-?? ????? ??????? ??????, ???????????????? ??? ???????-
?? ?????? ?? ?????? ????? ? ??????. ????? ????, ?????? SSIS ? ???????? "?????????" ????? ??????????????? ? ????????? ??????. ? ?????????? ??????? SQL Server ??????-??????????????? SSIS, ??????-
????????? ??? ????????? ??????, ?????????? Data Transformation Services (DTS). ?????? ????????? ? SQL Server 2005 ? ????????? SSIS/DTS ????? ??????? ?????? ??????????????, ??? ?????????????. ?????????? ??????-
????? ???: ???????? ???????? ? ????????????????? ???????, ?????? ???????, ????? ??????????, ????????? ??????, ?????????? ??????? ? ?. ?. ?? ?????-
?????? ??????, ???? ???????????, ??????? ????? ???????????? ???? ????-
?? ? DTS, ??????????? ? SSIS ?? ?????. ?????????????? ? ???????????? ????? ???????????? ?????? SSIS ?? ???? ?????????, ????? ????? ??????????? ????????, ????????, ???????? ??? ???-
??????????? ??????. ??? ???? ?????? ?? ???????????, ????? ??? ?????? ??-
???????? ?? SQL Server. ?? ?????? ???????????? ???????? SSIS, ????????, ??? ???????? ?????? DBF ?? ?????? Oracle ??? ??? ???????? ?????????? ?? Access ? ????? XML. ??? ????????? ??????? ????????, ????? ?????? SSIS ????? ?????????? ??? ????? ???????: ??? ????? ???????????? ???? ?????????? ?? ???????? ??? ??????????-
??? ??????????? (????????, ??????? ? ??????????? ?????????) ? ?????-
√лава 10 33
6
????? ???? ?????????? ? ???? ?????? (????????, SQL Server ??? Oracle). ????????? ??? ????? ??? ????? ?????? ?????????????? ???????? ????? ? ??????? CSV (Comma-separated Values ? ????????, ??????????? ??????-
??). ? ????????? ????? ??? ???????? ?????? ??? ???? ???????????? ???-
??? XML. ? ? ??? ? ? ?????? ?????? ??????? ????? ??? ???????? ??????-
?????? ?????? ? ???????? ?? ?? ???????? ???????????? ???????? SSIS; ? ????????? ????? ?? ?????? ???????????? ??? ???? ??????? Data Ware-
houses ? ????????? ??????. ??? ???????????? ????? ??????? ??????-
????? ???? ??????, ??? ???????, ???????? ??????? ? ??????????? ????-
??? ??????????????. ? ????????? ?????? ????????? ?????????? ?? ??-
??? ?????? ??????? ?????????? ?????? (????????, ?? ??? ?????? SQL Server, Oracle, Access, ?????? DBF, Excel ? ?. ?.), ? ???????? ??????????-
????? ???????? ????????????. ????????? ?????? ????? ?????? ??????-
?????? ??? ???????? ??????? ? ??????? ??????? ??????????. ????? ????, ?? ???? ??????????? ?????? ?????????? ? ????????? ???????????? ??-
????? ???? ??????, ? ???????? ??????? ??????? ?????? (???? ?????? OLTP), ??? ????????? ?????? ???????? ?? ??????????????????. ????????? ??????????? ?????????? ? ????????? ???????????? ?? ?????????? ??-
????, ?? ??????? ????? ???????????? ??? ???? ???? ?????? SSIS; ?????? ??????????? ?? ?????????????? ????????? ???????? ?????? ? ?????? ??? ???? ??? ? ??????? ???? ?????? OLAP. ? ???? ????? ?????? ?????? ??????? ????????? ?????? ?? ????????? ? ???????? ?????????-
?? ??????????? ????. ??? ???? ????? ?????? ???????????? ??? ???????-
??? ???????, ????????, ? ??????? ????????, ????? ?????????, ????????? ??????? ? ?. ?. ??????? ???????? ?????????? ?? ????????? ?????? (??? ????? ?? ??? ?????? OLTP) ? ???? OLAP ?????????? ????????????. ??? ???? ????? ????? ??????????? ??? ?????? ??????? SSIS. ?????????? ????????? ?????? ????????, ????? ?????? SSIS ????? ????????? ????? ???????. ????????, ?????????? ??????????, ? ??????? ?????????? SSIS ? ???? ?????? ?????????? ?????????? ?? ????? ?????????? ???????, ??????????? ?????? ? ?. ?. ?? ????? ??????, ?????, ??????????? ?? ?????-
??? SSIS, ????????? ????? ??????. 10.2. —редства дл¤ работы с SSIS ??????? ???????? ??? ?????? ? SSIS ? ??? SSIS Designer, ??????? ???????? ????????? ?????? Business Intelligence Development Studio. ????? ??????? ???? SSIS Designer, ?????????? ????????? Business Intelligence Development Studio ?? ???? ???? | ????????? | Microsoft SQL Server 2005 | SQL Server Business Intelligence Development Studio ? ??????? ????? ?????? ?? ?????? ѕрименение SQL Server Integration Services 33
7
??????? Integration Services Project. ???? SSIS Designer ????????? ????????-
????? (???. 10.1). ???. 10.1. ????????? SSIS Designer ??? ?????? ?????????? SSIS Designer ???????? ??? ??????????? ?????? ? ???????? ? ???????? ?????????, ??????? ????????? ?????? ?? ???????? ? ?????????????? ??????. ?? ?????? ????????? ? ??????????? ?????????? ??????, ????????? ?????, ????????? ??? ?? ??????????, ??????????? ??????? ? ?. ?. ??????? ?????????????? ??????? SSIS Designer ?? DTS Designer ? SQL Server 7.0/2000, ??????? ?????? ? ?????? Enterprise Manager. ? DTS Designer ??? ???????? ?????? DTS ?????????? ???? ??????????? ???????????? ? SQL Server (???? ???? ? ?????? ?? ? ???? ?? ??????????). ? SSIS Designer ????? ???????????? ????? ?????????? ??????????? ?????? Visual Studio, ? ??? ??-
???? ? ??? SQL Server ?? ?????. ??? ????????? ???????? ?????? ????????-
?????. ???? ??? ????? ????? ??????? ?????, ??????? ????? ?????? ???????????? ?????? ? ?????? ????????? ?? ??????, ? ?? ?????? ????????? ?? ??????? ???? √лава 10 33
8
?????? ??????? ???????, ????? ??????????????? ???????? SQL Server Im-
port and Export Wizard. ??? ????? ????????? ??????? ?????????: ?????? ?? ????????? ?????? ???????????? ??????? ??? ?????? ??????? DTSWizard
; ?? SSIS Designer ??? ?????? ???? Project | SSIS Import and Export Wizard; ?? SQL Server Management Studio, ???? ? ?????? Object Explorer ???????? ?????? ??????? ???? ?? ??????? ???? ?????? ? ? ??????????? ???? ??-
????? Tasks | Import Data (?????? | ????????????? ??????) ??? Tasks | Export Data (?????? | ?????????????? ??????). ?????? ? ???????? ????? ??????????? ? ????????? ???????. ???? ? ??? ??? ???? ??????? ?????? DTS ? SQL Server 2000, ?? ??? ???????? ?? SQL Server 2005 ??? ????? ????????????? ??????? ?? ? ?????? ??????? SSIS. ????? ????? ??? ??????? ??? ?????? ??????? Package Migration Wizard. ??? ????? ????? ????????? ??-???????: ?? ????????? ?????? ??? ?????? ??????? DTSMigrationWizard
; ?? SSIS Designer ??? ?????? ???? Project | Migrate DTS 2000 Package (?????? | ????????? ?????? DTS2000); ?? SQL Server Management Studio. ??? ????? ????? ???????? ????????? Management | Legacy | Data Transformation Services (?????????? | ????-
?????????? | Data Transformation Services) ? ? ??????????? ???? ??? ????? ?????????? ??????? Migration Wizard. ???? ???????, ??? ? ???????? ????? ? ?? ????????? ?????? ???????, ??????-
??? ?? SQL Server 7.0/2000. ??? ?????? ?????? ????? ????????? ?? ?????-
????? ? ?? SQL Server 2005. ?????? ????????????? ?? ????? ????? ?????? ?????????? Enterprise Manager ?? SQL Server 2000. ????? ?????? ?????? ????????? ????????? ?????? ?? ????????? ??????. ??-
??????, ??? ????? ????????????? ??? ??????? ?????? ?? ?????????? ? ?????? ????? (?????????? ???????????? ???????????? ??????? ??? ??????? SQL Server Agent). ?????? ?????? ?? ????????? ?????? ???????????? ??????? ???????????? ??? ?????? ??????? dtexec
. ????????????? ??? ??? ??????-
??? ?????? (??? ????? ??? ?? ????????? ?????) ????? ??? ?????? ???????-
???? ??????? dtexecui
. ?? ????????? ?????? ????? ????? ??????????? ????????? ?????????????-
??? ???????? ? ????????, ????????, ???????????, ???????????, ????????, ?????????? ? ?. ?. ??? ????? ????????????? ??????? dtutil
. ?? ???????? ????????? ??? ?????? ? ????????, ???????, ???????? SSIS Designer. ?? ??????? ?????????? ???????? ??????? ??????? ?????????? SQL Server Import and Export Wizard. ѕрименение SQL Server Integration Services 33
9
10.3. ѕрименение мастера импорта и экспорта данных ????? ??????? ? ??????? ?????? ???????? ?????? ? ????????????, ??????-
????????? SSIS, ? ??????????????? ???????? SQL Server Import and Export Wizard. ??????????????? ?????? ??????? ?? ??????? ???????. ???????????, ??? ????? ????????? ?????????? ? SQL Server ? ???? Excel (????? ???????? ????? ????? ??????????? ?? ?????? ????????????). ? ???? ??????? ???- ??? ??? ???????? (?????? ???????????) ?????????? ? ????????????? HumanResources.vEmployee
? ??????? ???? ?????? AdventureWorks
, ?????????-
??? ? SQL Server 2005. ?????????????? ???? ?????? ?????????? ? ?????-
??? ???????? ????? D: ? ?????????? employees.xls. ??? ???? ????? ???????? ????? ????? ????????? ? ? ???????, ??????? ?????????? ????????? ??-
??????? ??????? ? ???????? ? ???? ?????? SSIS. ??????? ??????? ??????? ??????? ? ???????? ?????? ???? ??????????? ? ?????????? ???????. ???? ?? ????????? ?????? ?? SQL Server Management Studio, ? ??? ????? ????????????? ????????? ????????? ???????????. ? ???? ??????? ????? ???????, ??? ?????? ??????? ?? ????????? ?????? ??? ?????? ??????? DTSWizard
, ? ??? ????????? ??????????? ????????? ??????-
??? ???????. ?? ?????? ?????? ??????? Choose a Data Source (???????? ???????? ???-
???) ????? ??????? ?? ?????, ?????? ????? ??????????? ?????? (? ???? ???-
??? ? ?????? SQL Server 2005, ????????????? ?? ????? ??????????). ????-
??? ????????? ????????, ????????? ? ??????? ????????? ??????: ? ??????? ??????? ? ???????? ?????? ??? ???????? ?? ??? ????????? ???-
???, ? ??????? ????? ???????????? ?? SSIS Designer. ????????, ? ??-
??? ???????????? ???: ????????? ?????? Raw File Source. ???? ???????? ???????????? ????? ???????? ????, ??????? ??? ????? ??????????? ?????????? SSIS ??? ?????? ?????????? Raw File Destination. ?????? ? ???? ???????? ???? ???????????? ? "??????" ??????? SQL Server 2005 ? ??? ???????? ?? ??????? ?????????????? ??????????????, ??????? ??????????? ????? ??????; ????????? ?????? XML (XML Source), ??????? ???????????? ????? ???? ? ??????? XML ?? ?????. ? ?????? ????????? ????????? ??????-
?????? ???????? SQLXMLOLEDB, ?? ??? ????????????? ??? ?????? ?????, ? ?????? ? ??? ????????? ?????????? ? ??????? XML ? SQL Server; √лава 10 340 ????? ????????????? ????? ?????????? ?????? ??? ???????? ??? ?????-
???? ?????? ODBC (? ???????? ODBC ???? ??????????? ??? ????? ??? ??????). ????????? ?????? ODBC ???????? ??? ?????? ???????? .NET Framework Data Provider for ODBC; ??????? Flat File Source (???, ?? ????????? ??????, Flat File Destination) ????????? ???????????? ? ???????? ????????? ??? ?????????? ????????? ????? ?? ????? (????????, ? ?????????????-???????? ??? ? ?????? ???-
?????????? ?????); ??? ??????????? ????????????? ????????????: ? SQL Server 2005 ? ??????? SQL Native Client; ? SQL Server 7.0 ? 2000 ? ??? ??????? .NET Framework Data Provider for SqlServer
(?? ???????????? Microsoft), ??? ??????? Microsoft OLE DB Provider for SQL Server (?? ????? ? ????????? ? ???????? ????????); ??? ??????????? ? SQL Server ????? ?????? ?????? ????????????? ??-
?????????? ODBC. ???????, ?? ?????? ?? ????????? ???? ?????????????. ????????, ? SQL Server 2005 ????? ???????????? ????? ?? ???? ????????. ?????? ??? ???? ????? ???????? ?? ??? ???????????, ??????? ????, ????????, ? SQL Native Client. ? ????? ?????? ??????????????????, ? SQL Native Client, ? .NET Framework Data Provider for SqlServer, ? Microsoft OLE DB Provider for SQL Server ????????? ???????? ?? ????? ??????. ????????? ????????? (?? ???? ????????????? ?????????? ?????????????? ??????????????) ??-
?????? ??????? ODBC; ????? ?????????, ??????? ?? ?????? ? ?????? ? ???????, ?? ???????? ???-
??????????. ????????, ????? ????????? Active Directory, Exchange Server ??? ??????? Oracle ? ???? ?????? ???????? ?????????????? ???????? ??? ??????????????? ?????????? ??????. ? ??????????????? ??????? ????? ???????????? ? SQL Server 2005, ?????-
?? ????? ????? ??????? SQL Native Client. ????? ????????? ??????????, ??????? ????? ????????? ?? ?????? ?????? ???????, ??????? ?? ?????????? ????????? ??????. ???? ?????? SQL Native Client, ????? ??????? ??? ??????? (???? ? ??????????????? ?????? ??? ???, ?? ????? ?????? ?????? ??? ???), ????? ?????????????? ? ???? ?????? ?? ???-
???? (? ?????? ?????? AdventureWorks
). ?? ????????? ?????? ??????? Choose a destination (???????? ??????????) ?? ????? ??? ?? ?????? ??????? ???????? ??????, ? ??????? ?????? ????? ??????????. ? ??????????????? ?????? ????? ??????? Microsoft Excel ? ѕрименение SQL Server Integration Services 341 ?????? ???? ? ????? Excel (D:\Employees.xls). ???? ????? ?? ????? ???, ?? ?? ????? ?????? ?????????????. ?? ???? ?? ?????? ????? ??????? ?????? Excel ? ??????????, ????? ?? ? ?????? ?????? ???????? ???????? ????????. ?? ????????? ?????? Specify Table Copy or Query (??????? ??????????? ??????? ??? ??????) ??? ??????????? ???????, ????? ?? ??????????? ??? ?????? ?? ??????? ??? ????????????? ??? ?????? ??, ??????? ?????????? ???????????? ?????? (??? ????? ????? ???????). ? ?????? ?????? ????? ??-
?? ????? ?????, ?? ???? ????????? ????????? ??????, ???????????? ?????-
???, ??????? ??????????? ????????????? ? ????????? Write a query to specify the data to transfer (???????? ?????? ??? ?????? ???????????? ???-
???). ?? ????????? ?????? Provide a Source Query (?????????? ?????? ??? ??-
???????) ????? ?????? ????? ???????. ? SSIS Designer ????? ???????????? ??????????? ??????????? ????????. ? ??????? ?? ?? ????????????. ? ?????? ?????? ????? ??????? ????? ?????: SELECT * FROM HumanResources.vEmployee; ????? ????? ?? ???????? ????????? ???????????? ? ???????? ???????? ????-
?????, ??????? ?????????? ? ?????? ??????? ?????? SSIS ?? ?????????? (????? ????????? ?????? ?????? ?? ???????????? ??????, ?? ????????????? ??????? ? ?. ?.). ? ?????????, ?????? ? ??????????? ???????? ?????? ?? SSIS Designer. ??? ?????? ? ???????? ??? ??????????? ??????????. ????????? ?????????????? ???????????? ??????? ????? ??? ?????? ?????? Parse (??????). ?? ????????? ?????? Select Source Tables and Views (???????? ??????? ? ????????????? ?????????) ????? ??????????? ??????? ? ????????????? ?? ????????? ? ????????? ?? ?????????? ??????. ??? ?????? ?????? Edit (??-
??????) ????? ????????? ?????? ???????????? ????? ????????? ???????-
?????????? ? ???????-??????????, ? ????? ??????? ??? ?????? ??? ??????? ???????. ??? ??????????????? ???????? ? ?????? Excel ??? ???????? ?????-
??? ?? ?????, ?? ???? ?? ?????????? ?????? ????? ?????? ??????, ?? ????? ??????????? ????????? ????? ????????? ????? ???????. ???????? ????????, ??? ??? ??????? ??????? ?? ?????? ??????? ?? ?????? ??? ??????? ? ??????? ?????????? (???????????? ??? ???????????), ?? ? ??????????? ???????? Ignore (????????????). ???????? ?? ????? ??????? ?? ????? ???????????? ? ??????? ??????????. ?? ???? ?? ?????? Column Mappings (???????? ????????) ????? ?????????? ?????? ??????? ??????????. ? ????? ???????????? ???? ????????? ?????????: Create destination table (??????? ??????? ??????????); Delete rows in destination table (??????? ?????? ? ??????? ??????????) ? ?. ?. ?????????????? ???????? ???????; √лава 10 34
2
Append rows to the destination table (???????? ?????? ? ??????? ???????-
???); Drop and re-create a destination table (??????? ? ??????? ?????? ??????? ??????????) ? ???? ??????? ? ????? ?????? ??? ???? ? ???? ??????, ?? ??? ?????? ????????. ??? ?????? ?????? Edit SQL (???????? ??? SQL) ?? ?????? ??? ??????? ????????? ? ???????? ???????, ???? ????????? ??? ??????? Create Table
. ? ?????? ???????? ??????? ????? ????????????? ?? ???? Excel, ??????? ???-
?? ???????? ??? ???? ?????????? ?? ?????? Column Mappings ???????? ?? ?????????. ????????? ????? ??????? ?????????? Save and Execute Package (????????? ? ????????? ?????). ? ??? ??????? ?? ?????? ??????? ????????? ????????: Execute immediately (????????? ??????????) ? ?. ?. ????????? ????? ?? ?????????? ????? ????? ?????????? ?????? ???????; Save SSIS Package (????????? ????? SSIS) ? ????????? ????? SSIS ? ???? ?????? msdb
?? SQL Server ??? ?????? ??? ???? ?? ?????. ? ????? ?????? ???. 10.2. ????? ?????????? ??????? SSIS ѕрименение SQL Server Integration Services 34
3
??? ??????? ?? ?????? Next (??????) ????? ??????? ????, ? ??????? ??? ??????????? ?????????? ??????? ?????? ?????? ?????? (???. 10.2). ??? ?????????? ??????? ? ?? ?????? ????? ?????????? ? ????. 10.27. ? ???-
???????????? ??????? ?????? ????? ???????? ????????, ??????? ????-
???????? ?? ???. 10.2. ?? ????????? ?????? Save SSIS Package ?????????? ?????????? ????????? ?????????? ? ??? ??????, ??? ???????? ? ??????, ?? ??????? ?? ????? ????-
??? (? ??????????? ?????????????? ??? ??????????? ? ????? ???????). ??-
?????? ??? ?????, ????????, WizardPackage1
. ?????????, ??? ???????? ???????, ? ????????? ????? ?? ?????????? ??? ??-
???? ?????? Finish (?????????) ? ?????????, ??? ??? ?????????? ? ???????? ?????? ?????????? ?????????. ?? ????????? ??? ?????? ?????? Report (?????) ????? ????????????? ????? ? ?????????? ??????. ????????? ???????? ? ???????? ?????? ??? ?????? ??????? ????? ???????-
?? ?? ??????. ?????? ?? ????? ??????? ??? ???????? ????? ????????? ????? ???????????? SSIS. ??? ??????????? ?????? ? ???????? SSIS ???????? ??? ????????????? SSIS Designer. 10.4. ѕример работы с SSIS Designer ?? ??????????? ??????, ???? ??????????? ? ?????? ?????? ? DTS ????? ?? ????? ????? ??????????? ? SSIS Designer ? ????????? ????? ????????? ????? ????????????. ??????? ? ???? ??????? ??????????? ?????? ????????????? ? ????????????? SSIS Designer ?? ??????? ???????. ???????? ?????? ? ???-
??????? ???????????? SSIS Designer ??????????????? ? ????????? ???- ?????. ??????? ????? ????? ???????: ???????????, ??? ????? ??????? ?? ?? ?????, ??? ? ? ?????????? ??????? (????????? ?????? ?? ????????????? AdventureWorks.HumanResources.vEmployee
? ???? Excel), ?? ??? ?????????? SSIS Designer. ??????? ?????? ?????? ???? ?????????? ? ???? Excel D:\Employees1.xls. SSIS Designer ??????? ? Business Intelligence Development Studio, ? ??? ??? ??????? ??? ??????????? ????????? ??? ??????????? ????????, ?????????? ?? Visual Studio. ???? ?? ????? ?????????? ??????????? Visual Studio 2005, ?? ?? ?????? ???????? ? ???????? SSIS ???????? ?? ???. ????? ??????? Business Intelligence Development Studio ??? ??????????? ???-
???? ????? ?????? (??? ?????? ???? File | New | Project (???? | ????? | ??????)). ? ???? New Project (????? ??????) ? ?????? ????? ??????? ????? ??????? Business Intelligence Projects, ? ? ?????? ????????? ???????? ? ???-
√лава 10 34
4
??? ????? ?????? ? Integration Services Project. ????? ????, ??? ?? ??????? ?????????? ?? ????? ???????????? ??????? ? ?????????? ??? ?????? ? ??-
????? ?????? OK, ?????? ????? ??????. ??? ???? ????????????? ????????? ???? SSIS Designer ? ??????????? ? ???? ????? ?????? ??????? SSIS. ? ???? SSIS Designer ???? ?????? ???????: Control Flow (????? ??????????? ?????????) ? ?? ??? ???????????? ?????????? ????? ?????????? ???????; Data Flow (????? ??????) ? ??? ??????? ?????????? ????????????? ??? ?????????????? ????????? Data Flow Task, ??? ?????? ??????? ? ??????-
?????? ????????? ??????????? ??????; Event Handlers (??????????? ???????) ? ??? ?????? ???? ??????? ??-
???????????? ??????????? ???????, ??????? ????? ?????????? ??? ??-
???????? ?????? (????????, ????????? ? ????????); Package Explorer (????????? ??????) ? ??? ??????????? ??????????? ???????, ??????????????? ????? SSIS. ?????? ?? ???? ???????? ????? ???????? ??????????? ? ????????? ???????. ??? ???? ????? ?????? ??????, ?????????? ????? ????????? ???? ????????? ??????? ????????. ??????, ??? ????? ????? ???????, ? ?????????? ?? ??????? Control Flow ???????????? ??????? Data Flow Task. ??? ????? ????? ??????? ??????? ???? Toolbox (????????, ??? ?????? ???? View | Toolbox (??? | ???????? ??????????)) ? ?????????? ?? ???? ??????? Data Flow Task ?? ??????-??????? ???? SSIS Designer. ????????? ????????? ?????, ????????, ???, ??? ????????-
???? ?? ???. 10.3. ?????????, ??? ??? ????? ???????, ? ????????? ????????? ????????? ???? ?????? Data Flow Task. ??? ????? ????? ????? ???????? ?? ??? ?????? ????-
??? ???? ? ? ??????????? ???? ??????? Edit. ????????? ?????? ?????? ???? ? ??? ????, ?? ????? ?????? ??????? ?? ??????? Data Flow ? SSIS Designer. ? ????? ?????? ????????? ??????? Data Flow. ???? ??? ?????, ?????? ???-
???? ? ?????? ???? ??????? ???????? ?????? ? ?????????? ????????? ??????. ??? ? ??????? ?????????, ?? ??????? ????? ??????? ??????????. ?????????? ? Data Flow Task ????????? ??? ?????? ???????? Connection Managers (????????? ???????????). ??????? ??? ?????? ? ????? ????????? (??? ??? ? ?????????? ? Connection Managers) ?? ????????? ?????????? ? ?????? ????? ??????. ? ???? ??????? ??? ?????? ??????????? ??????? ????? ??????? ?????????? ? ?????????? ??????, ??????? ????? ????? ??-
?????????? ? ??????. ??? ????? ????? ??????????? ??? ????????? ??????: ???? ??? ??????????? ? ????????????? HumanResources.vEmployee
? ???? ?????? AdventureWorks
?? ѕрименение SQL Server Integration Services 34
5
????????? ??????? SQL Server 2005, ? ?????? ? ??? ??????????? ? ????? Excel. ? ????? ?????? ??? ???????? ??????????? ????? ???????? ?????? ??????? ???? ?? ??????? Connection Managers ? ? ??????????? ???? ??-
????? ?????? ??? ???????????. ???. 10.3. ?????? ? SSIS Designer ???? ?? ?????? ??????? ??? ??? ??, ??? ??? ?????? ? ????????, ?? ??? ???-
???????? ? SQL Server 2005 ????? ???????????? SQL Native Client. ??? ???-
??????? ??? OLE DB, ? ??????? ? ??????????? ???? ??? ???????? ?????? ????????? ??????????? ????? ??????? New OLE DB Connection (????? ?????????? OLE DB). ????? ? ??????????? ???? Configure OLE DB Connection Manager (????????? ???????? ??????????? OLE DB) ????? ?????? ?????? New (?????). ????????? ???? Connection Manager, ? ????-
??? ?????? ???????? Native OLE DB\SQL Native Client ????? ??????????? ?? ????????? (???. 10.4). ? ???? ???? ??? ??????????? ??????? ?????? ??? ???? ??????, ????? ?????????????? ? ???? ??????, ? ????? ??? ???????? ?????? ?????? Test Connection (????????? ??????????). ????????? ??????? ??????????? (??? ????? Excel D:\Employees.xls) ???????? ????? ??? ??. ????? ???????? ?????? ??????? ???? ?? ??????? ????????-
???? ? ??????? Connection Managers ? ? ??????????? ???? ??????? New Connection (????? ???????????). ? ??????????? ?????? ????? ??????? EXCEL ? ?????? ??? ????? ? ?????? Excel (?? ?????? ????? ???????, ????? ?? ? ?????? ?????? ? ????? Excel ?????????? ????? ????????). ????? ????, ??? ??? ??????? ?????????? ??????????? ???????, ????? ???-
??????? ? ????????? ????? ?????? Data Flow Task. ??? ????? ?? ??????? Data √лава 10 34
6
Flow ????? ?????????? ???????? (source) ? ?????????? (destination) ??? ??-
?????????? ??????. ???????? ?????????? ? ?????? ?????? ???????? ? ??? OLE DB Source. ??? ?????? ????? ?????????? ?? Toolbox ?? ???? ??????? Data Flow. ?????????? ??? ?????? ? ??? ???? Excel, ??????? ???????? Excel Destination (?????????? ????????? ? ????? ???? ?????? ????????? ? Toolbox). ???. 10.4. ????????? Connection Manager ???? ???????? ? ??? ?? ?????????, ??? ????? ???????? ??????? ??????? ? ?????????. ?????????? ?? ????????? ?????, ??????? ?? ??????? ????????? ??? ?????????? ?????? ??????? ???? ? ? ??????????? ???? ?????? ?????-
?? Edit. ???? ?? ????????? ??? ???????? ??? ?????? ????????? ??????, ?? ????????? ???????? OLE DB Source Editor ? ????? ?????????. ?? ?????? ??????? ????? ??????? ????????? ???? ???????? ??????????? ??? ???? ?????? AdventureWorks
, ?????????? ????? ??????? ? ?????? (? ?????????-
?????? ?????? ??? SQL Command (??????? SQL)) ? ?????? ????? ???????. ???????? ????????, ??? ? ??????? ?? ???????, ? ????? ???????????? ??- ?????? ????? ??????? ??????????? ????????, ??????? ??????????? ??? ????-
ѕрименение SQL Server Integration Services 34
7
??? ?? ?????? Build Query (????????? ??????). ? ??? ??????? ????? ?????? ????????? ??????? ??????? ? ??????? ??????????? ??????????. ????? ?? ?????? ?????????? ????????????? ??????? (??? ????? ???????/????-
?????????), ????? ???????? ??????? ?? ?????????? ??????. ? ?????? ?????? ? ???? Data access mode (????? ??????? ? ??????) ???????? SQL Command, ? ????? ??????? ????? ???? ????? ??, ??? ? ??? ????????????? ???????: SELECT * FROM HumanResources.vEmployee; ???? ?????? ?????? Preview (????????????), ?? ????? ?????????, ??? ???-
????????? ????????? ??????. ?? ??????? Columns (???????) ?? ?????? ??????? ???????, ??????? ????? ???????????? ? ?????????, ? ?? ??????? Error Output (????? ??????) ? ??-
??????? ??? ????????????? ?????? ? ?????? ?? ????????. ? ????????????-
??? ?????? ???????? ?? ???? ???????? ????? ???????? ??? ?????????. ????? ????????? ????????? ?????? ????? ???????, ??? ???????????? ???-
??? ????? ???????????? ?????????? Excel Destination. ???????? ??? ????? ???????, ?? ????????? ??????????? ????????. ????? ???????? ????????-
??? ???? ???????? OLE DB Source. ????? ?? ???? ???????? ??? ??????? ? ??????? ? ???????, ???????????? ????. ????? ???????? ????? ??????? ??????? (??? ???????? ???????? ?????????? ??????) ? ?????????? ?? ?? ??-
???????? Excel Destination. ???? ??? ????? ??????? ?????????, ?? ????? ??-
??? Data Flow Task ????? ????????? ???, ??? ???????????? ?? ???. 10.5. ???. 10.5. ??????????? ?????? ????? ?????????? ? ??????????? ?????????, ??? ????? ???????, ? ????????? ?????????? Excel Destination. ????? ??? ?? ???????? ??? ???????? ??? ?????? ??????? Edit ? ??????????? ???? ? ???????? ????????? ????????? ?? ??????? Connection Managers (????????? ???????????). ? ?????? OLE DB Connection Manager (??-
?????? ??????????? OLE DB) ????? ???????, ???????, ????????? ???? Excel Connection Manager, ? ? ?????? Data Access Mode ? Table or View (??????? ??? ?????????????). ???? ????? Excel ??? ?? ??????????, ?? ? ???-
√лава 10 34
8
??? Name of the Excel Sheet (??? ??????? Excel) ???????? ??????? No tables or views could be loaded (?????? ????????? ?? ???? ??????? ??? ??????????-
???). ? ???? ?????? ????? ????? ??????????????? ??????? New ?, ?????????? ??????? ?? ???????? ???????, ?????? ?????? OK. ??? ???? ?????????? ???-
?? ????????? ?????: ?? ????? ????? ?????? ???? Excel ? ????????? ???? ??????; ? ?????? ??????? ????? ????? ????? ?????? ??????????? ???????? ? ??-
???????, ????????? ? ??????? CREATE TABLE
(?? ????????? ? Excel_ Destination
); ???? ??? ????????? ????????? ??????????? ??? ?????????? ?????????-
?????? ??????, ?? ? ?????? ?????? ????? ???????????? ????????? ????? ???????? ???????? ????????, ??????? ?????????? ?????? ? SQL Server; ???????? ???????????? ????????? (Excel Destination, ??? ??? ??????????-
???) ????? ???????? ? ?????? Name of Excel Sheet (??? ??????? Excel). ??? ???????? ?????? ??????? ?? ??????? Mappings (????????), ??????????? ?????????? ??? ??????? ??????? ? ?????? ?????? OK. ???, ??? ????? ??????. ??? ???? ????? ?????????, ??? ?? ????????? ??? ???-
??? ????????, ?????????? ????????? ??? ?? ?????????? ??? ?????? ???? Debug | Start Debugging (??????? | ????????? ? ????????) ??? Debug | Start without debugging (??????? | ????????? ??? ???????). ???? ?? ????????? ??-
??? ? ????????, ????? ????????? ??? ?????? ????????? ??????? ??? ?????? ???? Debug | Stop Debugging (??????? | ?????????? ???????). ??? ?? ??????, ???????? ?????? ? SSIS Designer ????????? ???????, ??? ??? ????????????? ???????, ? ???????? ?????? ???????. ?????? ???????????? ? SSIS Designer ??????? ??????. ??? ??????? ?? ?????? ???????? ????????? ???? ??????? ????? SSIS ? ??-
???, ??????? ??? ?????? ????????. ??? ????? ? ???? Solution Explorer ????-
???? ?????? ??????? ???? ?? ?????????? SSIS Packages (?????? SSIS) ? ? ??????????? ???? ???????? Add Existing Packages (???????? ?????????-
??? ??????). ????? ? ??????????? ???? ???????? ? ???? Package location (??????????????? ??????) ???????? SQL Server, ??????? ??? ?????? ??????? ? ??????? ?? ?????? ?????? ?? ???? Package path (???? ? ??????). ????????? ?????? ??????? ? ?????? ???????????? ??? ??????, ??????? ????????? ?? ??????? (??? ????? ???????? ???????? SSIS). ???????? ????????? ???? ??-
??? (? ??????? ?? ????????? WizardPackage1
) ? ??????? ?????? OK. ????? ??????? ???? ????? ? SSIS Designer, ?????????? ? ??? ??????????? ???? ??-
????? ??????? Open (???????). ????????? ???????? ????? SSIS ????? ????-???? ?????????? ?? ?????????? ???????. ???????? ????? Excel ???? ????????? ? ???? ????????? ??????, ? ? ѕрименение SQL Server Integration Services 34
9
?????? ??????? ???????? ????? Excel ???????????? ??? ?????? ???????????? ???????? Preparation SQL Task ?? ??????? Control Flow. ? ????????? ??? ?????? ?????????. 10.5. ћенеджеры подключений ??? ???????, ?????? ? ??????? SSIS ?????????? ? ??????????? ?????????? (connections). ????????? ?????????? ???????????? ??? ?????? ??? ???????-
??? ?????????? ?????????? (Connection Managers) ? ??????????? ????, ??-
????? ????????? ? ?????? ????? ??????? Control Flow, Data Flow ? Event Handlers. ???????? ??????????? ? ??? ??????????? ????????, ??? ?????? ??????? ????? ?????? ??????????? ????????? ??????????? ? ????????? ???-
??? ? ????????? ?????? ??????????? (connection string). ?????? ??????????? ????????? ? ???????????? ? ????? ?????????????. ??? ??????? ?? ????? ??-
??? ????? ??????????? ??? ??????????????? ?? ???? ????????? ???? XML ??? ?????? ?????? (???????? ???? ????? ??????? ??? ?????? ???? View | Code (??? | ???) ? SSIS Designer). ????? ????? ??????? ????? ???????? ???????????, ??????? ?????? ????-
??? ???? ?? ??????? ???????????? ? ???? Connection Managers ? ?????? ? ??????????? ???? ?????? ??? ???????????? ????????? ??????????. ???? ?? ???????? ??? New Connection, ?? ? ????? ???????????? ????? ??? ???-
?????? ???? ?????????? ??????????. ????? ???????? ?????????? ????? ??????? ????? ??? ?????? ???? SSIS | New Connection. ?????????? ?????? ??? ??????????: ADO
? ??? ??????????? ? ????????? ?????? ????? ?????????????? ????-
???? ??????? Connection
???????? ADO (?? ADO.NET). ??? ??????????? ?? ?????? ???????????? ????? ??????? OLE DB, ????????????? ?? ??-
??? ??????????. ???? ?????? ????? ???????? ? ??????????????, ?? ? ??? ????? ?????? ????????????, ?? ?????????, ????????, ? ???????????? ?? ADO.NET; ADO.NET
? ??? ??????????? ? ????????? ?????? ????? ?????????????? ???????? ????????? ?????????? ADO.NET. ????? ???????????? ??? "??????" ?????????? .NET: SqlClient Data Provider, OracleClient Data Provider ? Odbc Data Provider, ? ????? ????? ??????? ODBC. ???? ??? ??-
??????? ??????????? ???????? ???????? ??????? ?????????????, ? ??? ????? ?????? ???????????? ??? ?????????? ??????? ? ???????????? ?? .NET-??????????? ??????. ?????? ??? ??????????? ?? ADO.NET ?????-
???? ?????? ????????, ??? ??? ??????????? ?? ???????? ADO; EXCEL
? ???? ??? ????????? ??????????? ????????????, ???????, ??? ??????????? ? Excel. ?? ??? ???????????? ??? ? ???????? ?????????? √лава 10 350 ????????. ??? ??? ????????? ??? ??????????? ??????? ?????? ????? Excel (??????? ? ?????? 3.0) ? ??? ?????, ? ???????? ?? ?????????????. ?? ??-
??? ???? ???? ??? ??????????? ??????? ??? ????????? ?????? ??? ????-
????. ??????? ??? ???? ???????????? ??????????? ?? OLE DB ? ????????-
??? Microsoft.Jet.OLEDB.4.0, ? ??? ????? ?????????, ???????? ? ??? XML ??????; FILE
? ??? ????? ??? ????????? ???????????, ???????? ???????? ?? ??-
?? ? DTS. ? ??? ??????? ?? ?????? ??????? ???? ??? ??????? ? ??????? ??????. ???? ???? ??? ??????? ????? ????? ?????????????? ?????? ???-
???? ????????. ????????, ???? ? ????????? ????? ??????? ?????? Trans-
act-SQL, ???? ?????? ?????? ????????? ?????? Execute SQL Task. ????? ????? ????? ??? ????????, ??? ????????? ????? ????????? ??????????? ??? ??????????? ????? ??????? ????? ???????????: ????? ??????????? ???????????? ???? ??? ???????, ??? ???? ????? ?????? ?? ????? ?????-
????? ??????; FLATFILE
? ???? ??? ????????? ??????????? ???????????? ??? ?????? ? ?????????? ??????? ? ???????? ??????? (?? ????????????? ???????????? ????? ????? ????? ???????? "?????????"). ???????? ? ???????? ? ????? ?????? ?????? ?????????? ????????????? (???????, ????? ? ??????? ??? ?. ?.), ? ??????? ?? ????? ?????? ???????? ?????? ????? ??????. ??? ????? ????????? ??????????? ?? ?????? ?????????? ????????? ?????????? (??????????? ?? ??????? ?????? ????????) ? ?????????, ???????????, ???????? ??????? ???????, ??? ?????? ? ?. ?.; FTP
? ???? ???????????? ??? ????????? ??????????? ???????????? ??? ????????? ?????????? ? ???????? FTP. ?????? ?? ????????????? ?????? ??? ?????? FTP Task (?? ????? ??????? ?? ??????? Control Flow ? SSIS Designer). ??? ????? ?????????? ????? ??????? ?????? FTP ? ?????????-
??? ?? ????, ??? ???????????? ? ??????, ???????? ??? ????????? ????? ??????. ???? ???????? ??????????? ????? ?????????????? ??? ???????? ?????? ? ????? ????????????; HTTP
? ??? ???? ??? ????????? ???????????, ??????????????? ??? ??-
???? ??????? ?? ????????-??????????. ???? ??? ???????????? ?? ?????? ??? ????, ????? ??????? ?????-???? ????, ????????? ?? ????????? HTTP, ? ??? ?????????????? ? Web-????????. ?????? ?? ???????????? ???????, ??????? ?????????? Web Service Task; MSMQ
? ??? ???? ? ??????? Microsoft Message Queue Services, ??????? ??-
??? ???? ???????????? ??? ?????? ??????????? ????? ???????? SSIS (??? ????????????). ??????????? ???? ??? ????????? ???????????, ??-
?????, ??? ?????? Message Queue Task. ??? ????? ?????????? ? ????????-
??? ?? ?????? ????????? ?????? ????? ??????????? ? ????. 10.11; ѕрименение SQL Server Integration Services 351 MSOLAP90
? ???? ??? ????????? ??????????? (?????? ??? ???????? ? Analysis Services Connection Manager) ???????????? ??? ??????????? ? ????? ?????? OLAP. ??? ??? ????????? ?? ?????? ??????? ??? ??????-
???, ?? ??????? ???????? ?????? Analysis Services, ??? ???? ? ??????? Analysis Services ? ??????? ???????. ???? ????? ???? ??? ???????????? ?????? ? Analysis Services Processing Task ??? ????????????? ??????????? ?????; MULTIFILE
? MULTIFLATFILE
? ??? ??????? ??????????? FILE
? FLATFILE
????????????? ??? ?????? ? ??????????? ??????? ????????????. ????? ????????? ??? ?????? ?????? (???????? ?? ????? ???????????? ?????? '|'
), ??? ? ??? ????? ? ???????????? ???????? (??? ?????? ??????? ????-
????? '*'
); ODBC
? ???? ???????? ???????????, ???????, ???????????? ??? ??????-
????? ? ?????????? ?????? ??? ?????? ????????? ODBC. ????? ??-
?????????? ???????????? ???????? ?????? ODBC ??? ??????? ????? ????? ? ???????? ????????? ????? ????????? ???????????. ODBC ? ??? ?????????????? ??????????, ??????? ???????? ?????????, ??? ????????-
??? ?? OLE DB. ?????? ? ????????? ?????????, ?????? ??? ??????????? ? ?? ????? ???????????????? ?????????? ?????? (Informix, MySQL ? ?. ?.), ??? ??? ?? ????????; OLE DB
? ???, ??????, ????? ???????????????? ??? ????????? ??????-
?????. ?? ?????????? ???????? (??????????) OLE DB. ???? ??? ?????-
???? ??????????? ????? ???????????? ??? ??????????? ? ????? ?????? ?????????? ??????, ????????, SQL Server, Oracle, Access ? Excel; SMOServer
? ???? ????? ??? ????????? ?????????? ?????????? ???????? ????????? ?????? SMO (??. ????. 9.2) ??? ??????????? ? SQL Server 2005. ?????? ???? ??? ???????????? ??? ????? ?? ???????? ?????-
??? SQL Server (Transfer Databases Task, Transfer Error Messages Task, Transfer Jobs Task, Transfer Logins Task ? ?. ?.); SMTP
? ???? ??? ???????????? ??? ????????? ??????????? ? ????????? ???????, ??????????? ?? ????????? SMTP. ????? ??????? ????? ???????, ????? ?????????????? ? ?????? ?? SSL. ?????? ???? ??? ????????? ??????????? ???????????? ?????? ??? ?????? Send Mail Task; SQLMOBILE
? ???? ??? ????????? ???????????, ??? ???????, ????????????, ????? ? ???? ?????????? ?????? SSIS ?????? Data Flow Task ????????? ?????? ? ?????????? SQL Server Mobile (?. ?. ? ???? ?????? SQL Server 2005 Mobile Edition). ??? ???? ?????? ?? ?????? ????????? ??? ??-
?? ?????? SQL Server 2005 Mobile Edition, ??? ???????????? ? ??????; WMI
? ??? ?????? ????? ???? ????????? ??????????? ?? ?????? ???-
????????? ? ????????????? ???????????? ???? WMI ? ??????? ??? ????-
√лава 10 35
2
???????? ? ?????? ??? ???????????. ?????? ???? ??? ???????????? ??? ????? WMI Data Reader Task ? WMI Event Watcher Task. ????? ?? ??? ????????? ??????????? ?? ?? ???????, ? ????? ?????? ???-
?????? ???? ??????? ???????? ? ???? Connection Managers. ??? ?????? ??????? Edit ? ??????????? ???? ??? ??????? ????????? ?? ?????? ??? ??? ??????? ??????????? ????????? ????????? ??? ??????????, ? ??? ?????? ??????? Properties (????????) ? ??????????? ?????? ??????? ????? ?????-
???? ? ??? ????????????? ???????? ?? ????????. ????????? ????? ????? ????????? ? ???????? ?????????? ? ???? ???????-
??? ??????. ?????? ??? ???????? ???????????? ??? ?????? ?????? ActiveX Script Task ??? ?????????? ??????? ?????????, ??????? ????????? ????? ?? ??????????. ?????? ????????? ?????? ??????? SSIS ? ????? ??????? ????, ? ??????????????? ? ???? ????? ??? ?? ?????. 10.6. –абота с Data Flow Task 10.6.1. „то такое Data Flow Task ?????? ????? ????, ??? ?? ??????? ??????? ?????????? ??????????? ? ???? Connection Managers, ?????????, ??? ?????????? ???????, ? ??????? ???-
??? ?????? ?? ??????? Control Flow. ????? ???????????????? ?????? ? ??????? SSIS ? Data Flow Task. ?? ?????-
??? ?????????? ? ?????????? ???? ??? ????????? ??????? ?????? (data flow), ?. ?. ??????????? ?? ????????? ?????? ? ?????? ????????? ?? ?????? (? ???????????? ?? ????????????? ???????? ? ??????????????). ? ?????? ?????? Data Flow Task ????? ?????????? ??? ???? ????? ??????, ??? ? ?????????. ????? ? ???????? ??????? ?? ????, ????????? ?? ???????-
?????? ???????????? ????????? ?????? (? ???? ?????? ? ????? Data Flow Task ????? ???????????? ????????? ???????) ??? ?????? ?????????? ????-
???????? ??????????????? (????? ???????? ??????? ????????? ????? Data Flow Task ? ???????????? ??????? ? ??????). ?? ??????? ??????? ???????? ???? ?????? ? SSIS Designer ??? ??? ?????-
???????? ????????? ???????. ?????? ???????? ?? ???? ???????, ??????? ? ??-
???????? ???????? Data Flow Task, ????? ?????? ?????, ????? ?? ?????? ??????? SSIS Designer, ??????? ?????????? Control Flow, ????? ????????? ? ?????? ???? ?? ???? ?????? Data Flow Task. ???? ????? ?????????? Data Flow Task ?? ??????? Control Flow ?? ???????? ?? ???? ?????? ?????? ??????? ???? ? ? ??????????? ???? ???????? ??????? Edit, ?? ????????????? ??-
??????? ??????? Data Flow, ? ??????? ????? ???????? ? ??????????? ??????-
?? Data Flow Task. ѕрименение SQL Server Integration Services 35
3
10.6.2. Ёлементы Data Flow Task ? Data Flow Task ????????????? ?????? ???? ?????????: Data Flow Sources (????????? ?????? ??????) ? ??? ????????? ??????, ? ??????? Data Flow Task ????? ????????? ?????? ??? ????????? ? ????? ??????????. ? ????? ???????????? ???? ????? ????? ??????????. ??? ??? ???????? ? ??????? Data Flow Sources ? Toolbox. ??? ??????????? ????-
?????? ?????? ???????? ?? ?????? ????? ?? ??????? Data Flow ? ??????-
???? ??? ???????? (????????, ??? ??????????? ?????????? ??? ????? ??-
????? ???????? ???????????); Data Flow Destinations (?????????? ?????? ??????) ? ?????? ???????-
??? ??? ??????, ???? ??? ?????? ????? ???????? ?????????? ? ????????? ? ??????????????? ??????. ??? 11 ?????????? ???????? ?? ??????? Data Flow Destinations ? Toolbox. ?????? ? ???? ???????????? ????? ??? ??, ??? ? ? ???????????. ??? ????????? ? ???? ?????????? ?????? ???????? ?????????????? ? ????. 10.6.3; Data Flow Transformations (?????????????? ?????? ??????) ? ??? ???-
???????????, ??????? ????? ????????? ? ???????? ????????? ??????. ????????? ?????????????? ???????? ?? ??????? Data Flow Transfor-
mations ? Toolbox. ?????? ??? ?????????? ????? ?????????? ? ?????-
?????? ?????? (???. 10.6). ????????? ??? ????????? ???? ?????????????? ????? ?????????? ? ????. 10.6.4. ???. 10.6. ?????????? ?????????????? ? SSIS Designer √лава 10 35
4
Paths (????) ? ??? ????????? ?????????? Data Flow Task. ? ??????? ?? ?????????? ???????????, ?? ?? ???? ????????????? ? Toolbox. ??? ??-
?????? ??? ??????? ? ??????? ???????, ??????? ???????????? ??? ?????-
????? ????????? Data Flow Task ???? ? ??????. ??????? ??????? ???????? ?????????? ??????????? ??????, ? ??????? ? ??????????? ???????? ?????? ? ?????????????? ??????. ??? ??????? ?????????? ????????, ??-
?? ???????? ??????????????? ??????? ? SSIS Designer. ???? ?? ?????? ?????????? ?????? ?????????? ??????, ?? ? ????? ????? ?????????????? ??? ???????. ????????? ??? ??? ????? ?????????? ? ????. 10.6.5. 10.6.3. »сточники и назначени¤ Data Flow Task ??? ???????, ?????? ? ???????????? ?????????? ? ?????????? Data Flow Task ???????? ?????????. ??????? ?????????? ????? ?????????? ?? ??????? ???? ?? ??????? Data Flow ?? Toolbox, ? ????? ????????? ??? ????????. ??? ??????? ????? ?????????? ? ?????????? ??? ??????????? ??????? ? ????????? ????????? ???? ???????? ??????????? ??????????? ???? (???????????? ????? ?????? ?? ?????). ??? ?????? ?????????? ? ?????????? Data Flow Task, ????? ??? EXCEL
, OLE DB
, FLATFILE
, SQL Server
, ????????? ?????????? ????????. ??????? ?????, ? ??-
???? ??????????? ??????????? ??? ????????. ????? ???????????? ?????-
????? ?????? ? ??? ?????????? ? ???????????, ??? ????????? ??????? ????? ?????????? ???????, ? ? ???, ??????? ?? ?????????? ????????? ??????- ?????: DataReader Source
? ???? ???????? ????????? ???????? ??? ?????? ??? ?????? ??????? DataReader
????????? ?????????? ADO.NET. ??????? ????????? ??????????? ???? ADO.NET; DataReader Destination
? ? ??????? ?? DataReader Source
, ??? ?????????? ????????????? ??? ???????????? ????: ????????? ?????? ? ?????? DataSet
? ??????????? ??????. ??? ? ?????? DataReader
, ?????? DataSet
????????? ? ????????? ?????????? ADO.NET. ?????? ??? ?????????? ??-
?????????? ?????? ? ??? ??????, ????? ????? ??????????? ?? ???????? ???-
???????, ??????? ? ????? ?????? ???????? ? ????????? ???????? DataSet
; Raw File Source ? Raw File Destination ? ????????? ? ?????????? ????? ???? ???????? ? ????????? ??????? ? ?????? ??????? SQL Server 2005. ?????? ?? ????? ??????? SQL Server ?????? ?????????????? ? ???? ??-
???? ???????, ? ????? ?? ?????? ??????? ???????????? ???????? ????? ?????. ?????? ????? ?? ??????????????. ????????? ??????? ?????????-
????? ?????? ??? ???? ?? ????????????, ??????? ? ?????? ?????? ???? ???????? ???????????? ????? ??????. ??? ???????? ? ?????????? ?? ??-
ѕрименение SQL Server Integration Services 35
5
???????? ???????? ???????????. ??? ??? ????? ?? ????????????? ????-
??? ??????? ??? ????????? ??????; XML Source ? ???????? ?????? ?? ??????? XML. ???? ??? ????????? ????? ?? ?????????? ????????? ???????????. ?????? ????? ? ??? ???? ??????????? ???????, ?????? ????? ????????? ?????? ? ??????? XML: ?? ???? ?????????? ????? ?? ?????, ?? ?????, ??? ???????? ???????????? ??? ?????? ??????????, ??? ?????? ?? ????????? ??????????. ?? ?????? ????? ??????? ???? ???? ????? XML ? ????????? ????????? ????? ????? ??? ????????????? ??? ?????????????. ???????? ????????, ??? ?????????? ???? XML Destination ?? ?????????-
????. ????????? ?????? ? SQL Server ? ?????? XML ??? ???????????? ??? ?????? OLE DB Destination. ??? ?????????? ?????? ????????- ???? ???????? ??????????? OLE DB, ? ??????? ?????? ????????? SQLXMLOLEDB ??? SQLXMLOLEDB4.0; Data Mining Model Training Destination ? ??? ????? ??????????? ???????-
???. ??????, ??????? ?????????? ? ?????????, ????? ?? ???????????? ??? ???????? ?????? ?????? ??????. ?????? ?????? ?????? (data mining model) ? ??? ??????????? ?????? Analysis Services, ??????? ???????????? ??? ??????????????????? ????????? ??????????????? ? ??????? ?????-
??? ?????? ? ??? ???????????????. ????????, ?? ?????? ??????????? ??-
???????? ? ????? ???????? ???????? ????? ??? ?????? ??????? ???-
??? ?????????? ??????????? ?????????? ??????? ????????? ? ?????????-
???? ???????????. ??? ?????????? ??????? ????????? ??????????? ???? MSOLAP90
(Analysis Services Connection Manager); Dimension Processing Destination ? ??? ???? ??????????? ?????????? Analysis Services, ??????? ??????? ??????? ????????? ??????????? ???? MSOLAP90
. ??????, ?????????? ? ?????????, ????? ???????????? ??? ???-
???????? ????????? ? ???? ?????? OLAP ?? Analysis Services; Partition Processing Destination ? ??? ????????? ?? ?????? ?????????? Analysis Services. ???????? ?????????? Dimension Processing Destination, ?????? ?????? ???????????? ??? ??????????? ??????? ????, ? ?? ??????-
???. ? ??????????? ????? ???????????? ?????? ???? ??????, ??????? ??? ?????????? ?????? ????? ???????????? ??? ??????????? (???????? ???-
???) ???? ???????. Recordset Destination ? ???????, ???????????? ? ?????????, ????? ??-
??????????? ??????????? ?????? Recordset
???????? ADO. ????? ??? ??, ??? ? ?????????? DataReader Destination, ????? ????? ???????????? ??? ??-
???????? ?????? ?????, ????? ????? ?????????? ??????? ???????????, ??????? ????? ?????? ???????? ? ????????? ???????? Recordset
. √лава 10 35
6
10.6.4. ѕреобразовани¤ Data Flow Task ???? ?? ????? ?????? ???????????? Data Flow Task ? ??? ?????????????? (transformations). ?????????????? ? ??? ???????? ?????? Data Flow Task, ??????? ????????????? ??? ?????????? ?????-???? ???????? ? ??????? ? ???? ?? ??????????? ? ????????? ? ????? ??????????. ?????? ?? ????? ???-
????????????? ???????? ?????????: ?????????? ?????????? ???? ??????? ?? ??????? Transformations (??????????????) ? Toolbox ?? ????????? ????? ?? ??????? Data Flow ? SSIS Designer, ? ????? ????????? ?????????????? ?????-
???? ? ???????????, ???????????? ??? ??????? ????????????????. ????? ????? ????? ????? ????????? ???????? ??????? ??????????????. ???????? ????? ????????, ??? ? ??????????????? ????? ????????? ?? ??? ??????? ?????????, ? ?????? ??, ? ???????? ????????????? ???????????? ??-
???-?? ??????????????. ???????? ????????? ???????? ?????? "??????? ??????" ?????????????? ? ?????? ???????? ??? ?????????? ???????? ?????-
???? ? ???????? ????. ???? ????? ?????????????? ?????? ????????? ????? ???????, ??????? ????? ???????????? ? ?????????? (??? ???????? ?? ?????-
?? Mappings). ? Data Flow Task ????????????? ????? ????? ?????????????? (???? ???? ??????, ?? 28). ????????? ???????????? ??????? ?? ??? ??????????? ?? ??????? ????? ?????. ??????? ? ???? ??????? ????? ????????? ?????? ????-
??? ?????????????? ??????? ??????????????, ????? ????? ???? ????????? ????????????? ? ???, ? ????? ????????? ??? ???????? ????????? ???????. Aggregate (???????) ? ??? ?????????????? ????????????? ??? ??????? ???????? ???????? ?? ???????? ?????????????? ???????. ????? ?????-
???? ?????, ??????? ????????, ??????? ? ????????, ????? ?????????? ???????? ? ?. ?. ??? ?????????????? ????????? ?????????? ????????? GROUP BY
? ??????? SELECT
? Transact-SQL. ?? ????????? ??????? ?? ??-
???????, ?? ??????? ????? ??????????? ???????????, ? ? ?????????? ????? ?????????????? ?? ?????? ? ???? ???????????? ??????????????? ?????-
????????? ??????? ? ??????? ?? ???????. ???? ??????????????? ????? ???????????? ????? ?????????. ??? ?? ??-
??????? ?????? ????????? ?? ?????? (?? SQL Server, ????????, ?????????-
????? ???????? ?????? ???? SELECT * FROM HumanResources.vEmployee
), ? ????????? ??? ?????? ? ??????????? ?????? ? ??? ?? ??? ??????? ?????. ???? ??????? ? ??? ?????, ?? ??????????? ?????? ????? ?????? ?? ???-
????. ????? ????, ?????????? ????????? ???????????? SSIS ??? ????????? ??????? (?????? ? ??????? ??? ??? ? ????? ?????), ??? ???????????. ??? ???????? ??????? ? ?????? ? ???? ???????????? ?????? ????????? SQL Server 2005 ? Reporting Services. ѕрименение SQL Server Integration Services 35
7
Audit (?????) ? ??? ?????????????? ????????? ???????????? ? ????? ??-
???? ???????? ????????? ?????????? (????????, ??? ????????????, ????-
??? ???????? ?????, ??? ??????????, ??? ?????? ? ?. ?.). ?????????? ? ??? ?????????? ????? ???????? ??????, ??????? ???????? ????????????? ???-
?????? ??????????. Character Map (????? ????????) ? ??? ?????????????? ????????? ?????-
???? ? ?????????, ?????????? ? ?????????, ????????? ???????, ?????-
???, ??????? ? ??????? ? ?????? ??????? ??? ???????????? ???????? ? ????????? ???????? ? ???????? ???????. ????????? ?????????????? ????-
????? ? ????????? ??????. ??? ??????? ??????? ????? ??????? ? ??????-
??? ????? ?????????????? ??? ??????????: In-place upgrade (???????? ??-
??? ???????? ???? ?? ???????) ? New column (?????????? ?????????????? ????? ???????? ? ????? ???????, ? ?????? ??????? ????????? ? ?????-
?????????????). Copy Column (??????????? ???????) ? ??? ????? ??????? ??? ???????-
???????. ?? ???????????? ??? ????, ????? "??????????" ???????????? ???????, ?????? ?? ???? ??? (? ??????????? ??????????). ????? ????? ??-
???????????? ??????? ????? ???????????? ??? ?????? ??????????????. Conditional Split (???????? ??????????) ? ???? ??? ?????????????? ????? ????? ????? ?? ???????? SELECT CASE
. ??? ???? ????? ????????? ???????-
?? ??????? ??????????. ??? ?????????????? ????????? ?????? ?????? ??-
??????? ?? ???????????? ?????? ???????????? ? ??? ??????? (??? ????-
??? ??????????????? ??????????? ????????), ? ????????? ???????????? ? ??????????????? ?????????? ? ??????????? ?? ????, ????? ?????? ??????? ??????? ??? ?????? ?????? ???????? TRUE
. ????? ?????????? ????? ??-
???????? ?? ?????????: ?????? ????? ???????????? ? ??? ??????????, ??-
?? ???????? ???? ??????? ??????? FALSE
. Data Conversion (?????????????? ????? ??????) ? ???? ?? ????? ???-
???? ??????????????. ????????? ? ???????? ????????? ?????? ???????? ??? ??????. ???????? ????????, ??? ??? ?????????????? ?????? ????????? ????? ???????, ??????? ????? ????? ???????????? ? ??????????. ?????-
?? ? ???????? ???? ????? ???????? ? ????? ????????????. Data Mining Query (?????? ? ?????? ?????? ??????) ? ??? ????? ????-
???????? ??? ??????????????. ?? ????????? ??? ?????? ?????? ?? ?????-
???? ????????? ?????? ?? ????? DMX ? ?????? ?????? ?????? ?? Analy-
sis Services. ??? ???? ???????? ?? ????????? ????? ???????????? ??? ??-
???????, ???????????? ????? ???????. ?????????? ??????? ????? ???????????? ? ??????????. Derived Column (??????????? ???????) ? ???? ?? ????? ?????????? ??????????????. ????????? ????????? ?????????? ??????? SSIS (??????-
√лава 10 35
8
???, ??????????????, ????/???????, ?????????????? ????? ?????? ? ?. ?.) ??? ???????? ? ???????? ?????????. ??? ???? ???????? ? ???????????? ??????? ????? ???????? ?????? ??????????, ? ????? ??????? ????? ???????, ??????? ????? ????? ????? ???????????? ? ??????????. Export Column (?????????????? ???????) ? Import Column (?????????-
???? ???????) ? ??? ??? ?????????????? ????????????? ??? ?????? ? ???-
???? BLOB (???????? ????????? ?????? ??????). ?? SQL Server ? ??? ????????? ??????? text
, ntext
? image
. ??? ?????????????? Export Column ?????????? ??? ???????: ? ??????? BLOB ? ? ???????? ??????-
???? ??????????. ? ??????? ?? ?????????? ?????????? ?????? ????-
?????? ????? ??????. ??? ?????????????? ??????? ???????? ?????? ??? ?????? ?????? ? ???? ?? ????? ? ??????, ???????? ????? ??????????????? ???????? ?????????? ???????. ???????? ????????? ????????????? ????? ?????????????? ? ??????? ??????????? ?? ???? ?????? ? ????? ?? ?????. ?????????????? Import Column ????????????? ??? ???????? ?????? ? ?????? ???????? ?????? ?? ?????? ?? ????? ? ???? ??????. ? ??????? ??-
??????? ?????? ???? ??????? ????? ?????? ? ??????. ??? ?????? ?????? ????????? ????? ??????????? ??????????????? ???? ? ???????????? ? ??????? ??????????. Fuzzy Grouping (???????? ???????????) ? ??? ?????????? ??????? ???-
???????????. ? ??? ???????????? ???????? ?????????????? ?????????? ??? ??????????? ??????? ?? ?????????. ? ????????? ????? ?????????????? ??? ????? ????? ??????? ???? ??? ????????? ???????? ?????????, ??? ??-
????? ????? ??????????? ???????????, ?????????? ????????? ?????????-
????? ? ??????? "?????????" ??? ??????????? (?? 0,00 ?? 0,99). ?????? ?? ????????? ????????? ? ??????????????????, ?? ??? ?????? ? ?????????? ????? ????? ???????????? ? ?????????? ? ???????? ???????? ????????? ??? ??? ?????????????? ???????: _key_in
? ?????????? ????????????? ?????? ?????????; _key_out
? ????????????? ??????, ? ??????? ?????????????? "????-
??" ??????? ??? ??????; _score
? ????, ???????? ?? 0 ?? 0,99, ??????? ???????? ??????? ????-
????? ?????? ?????? ?? "?????????" (canonical) ??? ?????? ??????. ??? ?????????????? ?????????? ????? ??????? ???????????????. ????? ????, ??? ??????? ??????? ?????????? ? ????? ?????? SQL Server 2005, ? ??????? ??? ?????????????? ????? ????????? ??????????? ????????? ???????. ???????? ?????????????? ????? ??????????????, ????????, ??? ???????-
?? ????????, ?????????? ????? ????????????? ???????????????? ?????? ?????????? ????. ѕрименение SQL Server Integration Services 35
9
Lookup (????????? ? ???????? ?????????) ? ????? ??????? ?? ?????? ????????? ??????????????. ??? ?????? ?????? ?? ????????? ????? ?????-
??? ??????????? ?????? ? ???????? ????????? ?????? (??? ???? ?????-
??? ?? ??????? ????????? ????? ?????????????? ??? ????????? ???????? ???????). ????? ?????? ?? ????????????? ??????? ????? ???????????? ?????? ?? ????????? ????????? ? ??????????. ????????, ??????????? ???? ????? ????????: ? ??????? ?? SQL Server ? ??? ????????? ?????? ??????-
???, ? ??????????? ???? ??????? ?????????, ????????, ? ?????? FoxPro. ??? ?????? ????? ?????????????? ?? ?????? ???????? ??????????? ??? ??????? ???????? ? ???????? ?? ?????? ? ??????? ????????? ? ??????????. Fuzzy Lookup (???????? ????????? ? ???????? ?????????) ? ??? ??? ?????????? ???????? ?????????. ???? ? ??????? ?????????????? Lookup ???????? ???????????? ? ???????????? ? ?????? ??????? ???????? SQL, ?? ? Fuzzy Lookup, ??? ? ? Fuzzy Grouping, ?? ?????? ?????? "??????? ??-
???????" ?? 0 ?? 0,99. ??????????????, ?? ???????? ????????? ?????? ??-
??? ???????????? ?? ?????? ??????????? ????????, ?? ? "???????" ?? ???????? ? ?????????. Merge (???????) ? Union All (?????? ???????????) ? ??? ???????????-
??? ????????? ????????? ?????????? ?? ??????? ?????? ?? ?????????? ?????????? ? ???? ??????????. ????????, ???? ??????? ???????? ??? ??-
???? ? ??????????? ????????? ? ???? ???????? ????????? ?????? (? ???-
????????? SQL Server ? flat files, ??????? ?????), ?? ?????????????? Merge ? Union All ???????? ? ???? ????? ???????? ????????? ?????? ?? ???? ????????? ?????? ? ??????? SQL Server. ??????? ????? ???? ??-
????????? ? ???, ??? ?????????????? ???? Merge ????? ????????? ?????? ? ?????????? ??????? ???????? ?? ?? ???? ?????????? ? ????????? ??, ? Union All ?? ????????? ?????????? ? ????????? ?????? ??????????????? ? ??? ???????, ??? ??? ????????? ?? ??????????. Merge Join (?????????? ????????) ? ??? ??????????????, ??????? ????-
???????? ??????????? ?????? ?? ?????? ?????? ?? ?????. ???????? ???-
????? ?? ????????? ???????: ???? ???? ???? ? ?????????? ?????? ?? ???? ?????? ?? ????? ???????-
?? ?????? (????????, ? ???? ?????? SQL Server), ?? ??????? ????? ??-
??? ?????? ??????? ? ???????? ????????? ??????, ? ??????????? (?. ?. ???????? JOIN
) ???????????? ? ????? ???? ???????. SQL Server ?????-
??? ????? ?????????? ??????? ? ???????????, ??? ????? SSIS. ??????? ????? ?????????????? ????? ????? ???????????? ?????? ?????, ????? ??? ????? ?????????? ?????? ?? ?????? ?? ?????? ?????????? ??????; ????????????? ????? ?????????????? ????? ????? ?????????????? Lookup (????? ??? ??, ??? ?????? ? ????????? ??????????? ????? ??-
√лава 10 360 ?????? ??????????). ??? ????????????? ?????????????? Merge Join ?? ???????????? ? ????????, ?? ?????? ???????? ? ???????????????-
??? ?????, ????? ??? ???????, ?????????? ?? ??????? ???????????, ??-
??????????? ?? ?????, ?? ???????? ???????????? ??????????. ? ???? ?????????????? ?? ?????? ???????????? ??? ????????? ??????. ???? ?? ????? ????????? ?????????? ?? ?????????????, ?? ???????????-
?? ????? ???? ??????????????? ????????? ?????????????? ???? Sort. ?????????? ????? ???? ?????? ??, ??? ? ? ???????? Transact-SQL: ??????, ????? ? ??????????. Multicast (????????????? ????????) ? ??? ?????????????? ?????? ?????-
??????????? ????? ???????? ??????. ? ??? ???????????? ???? ???????? ? ????????? ??????????. ?? ??? ?????????? ????? ???????? ?????????? ??-
????????. ????? ???????????? ????? ?????????????? ? ???????? ??????-
?????? ??????? ??????????, ? ????? ?????????????? ?????????? ?????? ?????? ?? ?????? ?????????, ????? ???????? ?? ?????? ??????????????? ? ????? ????? ????? ??????. OLE DB Command (??????? OLE DB) ? ??? ?????????????? ????????? ???????????? ??????? SQL ??? ?????? ??????, ??????? ?????????? ? ??-
???????. ??? ???? ? ??????? SQL ?????????? ?? ??????? ?????? ????? ???????????? ? ???????? ???????? ??????????. ????????, ?????????????? OLE DB Command ????? ???????????? ? ????????, ????? ?????? ?????? ?? ????????? ?????????????, ????????, ?????????? ? ??????, ??????? ????? ??????? ?? ?????? ???????. ? ???? ?????? ??? ?????? ????? ???-
??????????? ????? ?????????? ??????? DELETE
? ???????????? ??? ??? ? ???????? ?????????? ????????, ??????????? ? ?????????. ??? ?????????????? ?????????? ???? ???????? (?????? ???? OLE DB Source) ? ???? ?????????? (?????? ???? OLE DB Destination). Percentage Sampling (?????????? ???????) ? ??? ????? ?????????? ???-
???????????. ??? ????????? ?????? ?? ?????? ????????? ? ???????? ?? ? ??? ??????????. ? ???? ??????????, ??????? ?????????? ??????????? ??-
??? ??????? (sampling unselected output), ????? ???????????? ?????? ? ??? ?? ????, ? ??????? ??? ????????? ? ?????????, ? ? ??????, ??????? ????-
?????? ????????? ????? ??????? (sampling selected output), ???????? ???-
?????? ??????? ???????? ? ?????????. ??? ???? ?? ?????? ?????????? ??????? ????????, ??????? ??????? ? ???????. ?? ??????? ??????, ??? ??????? ????????? ? ???????? ????????? ??? ?????????????? ?? ??????-
???? ? ????????, ???? ????????? ??? ????? 10% ?? 290 ???????, ?? ????-
????? 35 ???????. ???? ??? ?????????? ?????? ???????, ?? ?? ?????? ?????? ?? ?????????? ??? ????? ?????????????? ??????????? ????? ???????. ѕрименение SQL Server Integration Services 361 ???????? ?????????? ????? ?????????????? ? ???????????? ???????, ??-
??? ??????????? ?? ?? ???? ??????? ??????? ?????????? ????? ?????. Pivot (????? ???????? ? ?????) ? ????? ????????????? ??????????????, ???????? ?????????? ???????? ? ??????????????. ??? ????????????? ????? ?????????????? ????????????? ?????????? ????????, ???? ????????? ?????????? ???????. ????? ????? ?????????????? ????? ????? ???????? ?? ??????? ???????. ???????????, ??? ? ??? ???? ??????? ? ??????????? ? ??????? (????. 10.1). “аблица 10.1. »сходна¤ таблица с информацией о заказах ???????? ??????? ?????????? ???????? 1 ??????? 1 5 ???????? 1 ??????? 2 10 ???????? 1 ??????? 3 8 ???????? 2 ??????? 2 10 ???????? 2 ??????? 4 5 ???????? 2 ??????? 3 6 ????? ?????????? ????? ?????????????? ?? ?? ?????? ????? ?????????, ????????, ???, ??? ????????? ? ????. 10.2. “аблица 10.2. “аблица после применени¤ преобразовани¤ Pivot ???????? ??????? 1 ??????? 2 ??????? 3 ??????? 4 ???????? 1 5 10 8 ???????? 2 10 6 5 ????????? ????? ?????????????? ?? ????????. ??????? ?? ??????? Input Columns (??????? ?????) ??????? ?????????????? ??? ??????????? ??-
????? ?????? ??????? ?????????, ? ????? ??????? ?? ??????? Input and Output Properties (???????? ????? ? ??????) ? ??? ???????? ????????? ????????? ???????? ???????? PivotUsage. ??? ????? ???????? ???????????? ???? ?? ??????? ????????, ??????? ??????????, ????? ???? ? ???????????-
??? ??????????????? ??????? ???????. ????? ?? ??????? Output Columns (??????? ??????) ????? ??????? ???????, ??????? ????? ???????????? ??????????, ? ????????? ?? ? ???????? ????????? ??? ?????? ???????? PivotKeyValue. √лава 10 36
2
?????????? ????? ??????????????, ??????? ????????? ???????? ?????-
??? ? ?????????? ???????????? ???????. ??? ?????????? Unpivot (??-
?????? ?????). Row Count (??????? ?????) ? ??? ?????????????? ?????? ??????? ????- ?????? ????? ?????????, ??????? ?????? ????? ????, ? ????????? ??? ???????? ? ?????????? ?????? (????? ?????????? ????? ?????????????? ?????????? ?????? ???? ??? ???????). ??? ?????????????? ?????? ???-
???????? ??? ???????? ????????????????? ?????? ?? ??????????? ?????? ??????. Row Sampling (??????? ?????) ? ??? ?????????????? ????? ?????? ?? Percentage Sampling. ??? ????? ????????? ??????? ???????? ?? ???? ??????? ????????? ????????? ?? ??????????. ?????? ? ??????? ?? Per-
centage Sampling, ? ??????? ????????? ????????? ??????? ??? ???????, ?????????? ? ???????, ????? ??????????? ?? ???????, ? ?????? ????????-
??. ??????? Microsoft ??????????? ???????????? ??? ??????????????, ??-
??????, ??? ???????. ???? ??? ????? ???? ??????? ?????-?? ???????? ?????? ????????? (????????, ??? ????????????, ??? ?? ?????? ???????? ?? ?????????? ???????), ?? ? ????? ???????????? ? ???????? Seed. ????? ??? ??, ??? ? Percentage Sampling, ???????? ? ????? ???????????-
??? ????? ???? ?????? ????, ? ??? ?????????? ? ??? (??? ??????? ?????? ??????? ? ??? ???????). Script Component (????????? ???????) ? ???, ??????????, ????? ?????? ??????????????. ??? ????? ???????????? ?? ?????? ??? ??????????????, ?? ? ??? ???????? ??? ?????????? ??????. ?????????? ???? ???????????-
???? ????? ???????? ??? ????????? ??????????????. ???? ??? ?? ??????? ???????????????? ?????? ??????????????, ?? ?????-???? ????? ??????-
?????? ?????????????? Script Component. ? ???? ?????????????? ?? ????-
?? ???????????? ???? ??????????? ??????????? ??? ??? ?????????? ??-
???-?? ???????? ? ???????, ??????? ?????????? ? ?????????. ???????? ?? ????? Script ? ???????? ??????????????, ????????? ??????????? ??? ????? ?????? ?? Visual Basic .NET. ?? ??? ???? ??? ????? ???????? ??? ??????? Visual Basic .NET, ??? ?????? ? ???????????? ???? .NET, ? ??? ?????? ??????????? ??????? Visual Studio ? ??????? COM-??????????. ???????? ?? ???????????????? ? ?????? ??????? ??????????????????: ??????????? ??? ??????????? ??? ?????? ??????, ??????? ???????? ? ??-
???????. ????????? ????? ?????????????? ?? ?????? ????????. ??? ?????????? ??? ? ?????? ????? ???????: ????? ?? Script Component ????????? ? ???? ??-
???????, ?????????? ??? ??????????????. ???? ?? ??????? ??? ???? ???? ѕрименение SQL Server Integration Services 36
3
??????????????, ?? ??? ????? ??????????, ??? ? ?????? ??????????????, ????? ?????????? ? ??????????? (???. 10.7). ???. 10.7. ????????? ?????????????? Script Component ???????????, ??? ?? ?????????? ???? ????????? ? ????? ??????????-
??????? ??????, ??????? ?????????? ????????? ?????? ?? SQL Server ? ???? Excel, ??? ???????? ?? ???????, ? ??????? ??? ???? ???? ?????????-
????? (?. ?. ? ???? Select Script Component Type (??????? ??? ?????????? ???????), ??????? ??????????? ??? ?????????????? ????? ??????? ?? Toolbox, ?????????? ????????????? ? ????????? Transformation (?????-
?????????)). ??? ???????????? ?????????? ????? ??????? ????????: ??-
????? ? ???? ????????? ?????????? ? ?????? ?????????? (??? ????? ? ???????). ??? ????? ??? ????? ????????? ????????? ????????: 1. ??????? ???????? ?????????????? Script Component (??? ????? ???-
????, ??????? ?? ???? ?????? ??????? ???? ? ? ??????????? ???? ?????? ??????? Edit). 2. ?? ??????? Input Columns ??????? ?????????????? ????? ?????????? ?????? ???????? ???????? FirstName ? LastName. 3. ?? ??????? Inputs and Outputs (????? ? ??????) ??? ??? ??? ????? ??-
????????? ???? ???????? ? ???? ??????????. ??? ??????? ????? ??-
?????? ?????????????? ?????????? (?. ?. ??? ????? ?????????????? ????? ????? ???????????? ?? ????, ? ????????? ????????? ??????? ???????). ? ?????? ?????? ???????? ?? ???? ??????? ???????? ?? ????-
?????. 4. ???????? ?????? ???????????? ? ???? ????????? ????. ????? ??? ??-
?????, ????? ??????? ?? ??????? Script (??????) ? ?????? ?????? De-
sign Script (?????????????? ??????). ????????? ???? Visual Studio for Application. 5. ? ???? ???? ??? ????? ?????????? ?????? ???? ??? ??? ?????? ScriptMain
(??????, ??? ?????????? ????????? Input0_ProcessInputRow()
, ???????????? ? ???? ??????). ??????? ??? ????????????? ?? ????? ??????????? ? ???????? "Add Your Code Here"
(???????? ???? ??? ???). ??????? ???? ????????? ????? ???? ?????: Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer) MsgBox(Row.FirstName.ToString & " " & Row.LastName.ToString) End Sub √лава 10 36
4
????? ??? ???????? ?????? ??????? ??? ???? ? ??????????? ????????? ??-
??????? ? ????????? ????? ?? ??????????. ???? ??? ?? ??????? ????????? ???? ????????? 290 ???, ?? ????? ??????????????? ???????? Debug | Stop debugging (??????? | ?????????? ???????) ?? ???? SSIS Designer. ??? ???? ????? ???????????? ????? ?????????????? ???????? ????? ???-
???????????, ?????????? ?????????? ? ????????? ??????? ??????? SSIS. ? ?????????, ??????? ?? ??? ? ???????????? ?? SQL Server 2005 ???. ??? ???????? ?????????? ? ??????? ? MSDN (???????????? ? Visual Studio 2005 ??? ?? ????? www.microsoft.com/msdn). Slowly Changing Dimension Transformation (?????????????? ???????? ????????????? ?????????) ? ??? ???????????? ?????????????? ??????-
??????? ??? ???????? ????????? ? ????????? ????? Analysis Services ?? ?????? ?????????? ?? ???????????? ????????? ??????. Sort (??????????) ? ??? ????? ??????? ? ????? ???????????? ?????????-
????? ????????????? ??? ?????????? ???????, ??????? ????????? ? ??-
???????. ? ??? ????????? ?? ?????? ??????? ???? ??? ????????? ?????-
???, ????????? ??? ??? ??????????? ? ??????? ?????????? (?? ????????-
??? ??? ????????). ??? ?????????????? ????? ????? ??????? ????????????? ??????. ??? ?????????? ???????????? ? ??????????? ?????? ???? ??????????, ?? ??????? ???????? ?????, ??????? ? ???? ??????????????? ????? ???? ??-
????????. ?? ??????????? ?????????? ????? ????????? ?? ??????? ??? ??????, ? ???????? ????????? ??????, ?????? ? ???????? ????????? ?????? ? ?????????? ORDER BY
. ??? ?????????????? ????? ????? ???????????? ?????? ? ??? ?????????, ????? ???????? ?? ???????????? ?????????? (??-
??????, ????? ? ???????? ????????? ????????? ????????? ?????). Term Extraction (?????????? ???????) ? Term Lookup (?????????? ???-
???? ?? ???????? ?????????) ? ??? ??????? ??????????????, ??????-
?????? ???????? ??????????????? ??????. ??? ????? ???????? ?????? ??? ?????????? ?? ?????????? ?????. Term Extraction ????????? ?? ??-
??????? ??????????????? ? ?????????????? ? ???????????????? (? ????-
??????? ?? ?????????? ??????) ? ?????????? ?? ? ??????????. Term Lookup ????????? ????? ?????????? ? ??? ?????? ????????? (?? ??????-
???? ?????????? ???????? (reference table)), ? ??????????, ??????? ?????-
?? ????? ????? ??????????? ??????????. ????? ????? ?????????? ?????? ? ???????????? ???????????????? ? ???????????????? ???????????? ? ??????????. 10.6.5. ѕути и логика выполнени¤ Data Flow Task ????????? ??????? Data Flow Task ? ??? ????, ?. ?. ??????? ? ??????? ???????, ??????? ????????? ?????????? ? ??????????????. ?? ?????????? ѕрименение SQL Server Integration Services 36
5
?????????? ????????, ??????? ???? ????????? ???????, ??????? ????? ??-
????? ???????????. ??????? ??????? ???????? ?????????? ??????????? ??????, ? ??????? ? ???? ??? ???????? ??????, ??? ????????? ??????? ???????? ??????. ????-
??? ??????? ????????????? ?????? ?? ??? ???? ??????????????. ????? ????, ???? ???? ?????????? ? ?????????? ??????? ??? ?? ?????, ?? ?????? ???-
??? ?? ???????????? ??????? ???????. ???? ? Data Flow Task ???? ????????? ?? ????????? ????? ????? ????????? ?????? (????????, ???? ??????? ? ??? ??????, ???????????? ? SQL Server ? Excel, ? ?????? ? ??? ??????, ???????????? ? FoxPro ?? Oracle), ?? ????-
???? ?????? ?? ????? ????????? ???????? ???????????? ? ????? ???????-
?????? ???????????. ??? ?????? ?????????????? ????? ???????????? ????????? ?????? (Input) ? ????????? ??????? (Output). ?????????? ????????? ?????? ????? ????? ???-
???: ?????????? ?????????? ?? ??? ?????????????? ??????? ???????-???? ? ?????? ??????????. ? ??? ???? ????? ?????????? ?????? ?????, ?????????? ?????????? ?? ?????????? ??????? ???????. ????????? ????, ? ??????? ?? ?????? ??????? ?????????? ?????, ???????????? ???? ????????. ???? ??????? ???????? ???? (??????? Edit ? ??????????? ????), ?? ????? ????????? ??? ????, ???????? ? ???????????? ??????? ??? ???? (PathAnnotation). ? ?????????, ?? ?? ?????? ???????? ?????? ???? ?????-
??? ??? ???????? PathAnnotation, ???? ????? ??? ???? ??????? ???????? PathName ? ?????? ???? ???????? ??? ????. ? ?????????? ??? ???? ?? ?????-
?????? ?????? SSIS Designer ????? ???????????? ????????? ???? ????????. ????? ??????? ????? ???? ????? ??????? ??? ?????????? ??????? ? ????-
??? ??????????? ????????? ? ?????? ????? ????. ????? ????, ?? ?????? ???????? ? ????? ????? ?????? ?????????? ????????? ???????. ??? ????? ?????????? ???????? ?????? ??????? ???? ?? ??????? ????? ? ?????? ? ? ??????????? ???? ??????? Add Annotation (???????? ?????????). ? SSIS Designer ????????????? ??? ???? ????? ??????? ???????????. ? ??-
???? ???? ????? ???????????? ??????????? ?????? Data Viewer. ??? ???-
???????? ?????????, ??????? ?? ????? ?????? ?????? ????? ?????????? ??-
?????????? ?????? (???. 10.8). ??????? ??, ????? ???????? ????? ?????? ???????????? ??? ??????? ????-
??? ? ?? ????? ??????, ??? ???????? ???????????? ??????. ????? ????????? ???????????, ?????????? ???????? ?????? ??????? ???? ?? ???? ? ? ??????????? ???? ??????? Data Viewers (???????????? ???-
???), ? ????? ?????? ?????? Add (????????). ??? ????? ?????????? ??????? ???? ?? ??????? ????? ???????????? (????? ??????? ?? ??? ? Grid (???-
??) ? ?????????? ?? ?????????). ?? ?????? ??????? ?? ?????? ????????? √лава 10 36
6
???????? ????????????, ????????, ??????? ???????????? ???????. ????? ????????? ???????????? ????? ? ????? ? SSIS Designer ???????? ????????-
??? ??????. ???. 10.8. ?????????? ???????????? ?????? ??? ?????? ?????? ?????? ??????? ???????? ? ???????????, ?????????? ??-
???? ??????????????. ?? ?????? ?????????? ?????????? ??? ?????? ????-
?? ? ??????? ???????? ? ??????? ????? ???? ???????????? ??? ?????? ??-
???? ???. 10.7. Script Task и ActiveX Script Task ? ?????????? ??????? ???? ???????? ????????? ??????? ?????? Integration Services ? Data Flow Task. ?????? ? SSIS ????????????? ????????? ?????? ?????, ??????? ????? ????????? ????? ?????????. ?????? ? ???? ???????? ?????????: ?? ????????? ?????? ? Toolbox, ?????????????? ?? ?? ??????? Control Flow ? ???????????? ????????. ???? ??? ?????????? ?????????? ??-
?????????????? ?????????? ?????, ?? ????? ??????? ?? ????? ????? ?????-
???? (?????? ??? ????? ?????? ?? ???? Data Flow Task), ??????? ????????-
?? ????????????? ???????????????? (precedence constraints). ????????? ??? ?????? ? ???? ????? ?????????? ? ????. 10.23. ???????, ??? ?????? ?????, ??????? ????????? ? Toolbox ?? ??????? Control Flow, ?? ???????? ?????????????. ?? ?????? ???????? ???? ??????????? ?????? ? ???????????????? ??? ? ???????? ?????? SSIS. ? ???? ?????? ?? ???-
??? ???????? ??? ???????????????? ?????? SSIS. ???????????? ?? ???????? ????? ????? ????????? ? MSDN. ѕрименение SQL Server Integration Services 36
7
?????? ?????????????? ??????, ??????? ?????????? ????????, ? Script Task ? ActiveX Script Task. ??? ??? ?????? ????????????? ??? ????? ? ??? ?? ???? ? ?????????? ? ??-
???? ?????? ???????????? ????. ?? ???????????????? ????? ??????. ? ?? ??????? ?? ?????? ???????????? ??? ????????? ?????? (??? ?????? ???-
???????? ???? .NET), ??????? ???? ?? ????? ??????????. ????????, ??? ??-
???????? ????????? ?????-?? ???????? ? ???????? ???????, ??? ?????????? ?? ?????????? ??????, ??? ??????? ?? ?????????? ??????? ???????, ??? ???????? ????????? ?????? ?????? SSIS ? ???? ?????????? (????????, ???-
?????? ?????? ???????? ??????????) ? ?? ???? ????? ??????? ??? ?????-
????? ??? ??????. ?????? Script Task ?????????? Visual Studio for Applications ? ???? Visual Basic.NET. ?????? ? ??? ????? ?????? ?? ?????? ? ??????????????? Script Component ? Data Flow Task: ?? ?????????????? ??? ?????? ?? ??????? Control Flow, ?????????? ?? ???????? ? ?? ??????? Script ????????? ?????? Design Script (?????????????? ??????). ???????, ??? ?????????? ?????? ? ???? ??????? ?????????? ????? ????????? ?????? ??????? SSIS (??????? ?? ??? ????????? ? MSDN). ??? ??????????? ?????? ? ???????, ?? .NET-??????????? ??????????? ????? ????????????? ??????, ??????? ?????????? ActiveX Script Task. ? ??? ?? ?????? ???????????? ??? ???????, ??????? ????? ???????? ? ???? ?????? ??????. ?? ????????? ????? ???????????? ?????? ??? ?? ?????? VBScript ? JavaScript (??? ???????, ??? ? ?????????? ???????? ????????). ???? ?? ?????????? ?????????? ????????????? ??? ??????? ??????????? ????? (??-
??????, ??? ActivePerl), ?? ????? ???????????? ???. ?????? ActiveX Script Task ???????????? ??? ??? ?? ?????, ??? ? Script Task. ??? ???? ??? ?????? ?????? ???????? Script Task ?????? ???????? ???????, ????????? ??? ?????????? ?????? ??????????? ??? Visual Basic.NET ? Script Task ????????????? ? ???????? ? ????????????????? ????. ??? ? ? ?????? ????????? (????????, ? ?????????? ???????? SMO ? SQL-
DMO), ????????, ??? Microsoft ?????? ???????????? .NET-???????????? ???????????? ???? ????? ???????. ???????????? ???? ????????, ??? ???????? ?????? ? ActiveX Script Task ?????????? ??????????????. ?????-
????? ?? ?????? ?????? ??????????? ? ??? ?????? ????? ???????????? ????. ? ??????? ?? ActiveX Script Task ? SQL Server 2000 ? ActiveX Script Task ??? ??? ?????? ???????, ????????? ?? ??????????? ?????? ? ?. ?. ????? ????, Mi-
crosoft ?????????????, ??? ? ????????? ??????? SQL Server ?????? ???? ActiveX Script Task ?????????????? ?? ?????, ? ?? ??????????? ???????????? ?? ? ????? ????????. √лава 10 36
8
10.8. Bulk Insert Task Bulk Insert Task ? ??? ??????, ???????????? ?????????? ??????? ??????????? ? ???????? ?????????? ?? ????????? ?????? ? ????????????? (flat files) ?? SQL Server. ??? ???? ?????? Bulk Insert Task ?? ????? ??????????? ?? ???-
???????????, ?? ???????? ??????. ????? ?????????? ??????: ? ????? ????? ????? ??????? ???? ?? ?? ????? ????? ??????? ??? ?????? ??????? ?????? Data Flow Task ? ? ??????? ???????? ??????????????? ?????????????. ????? ?????: ??????? ??????-
?????? Bulk Insert Task ? ??????????????????. ? ???? ?????? ???????????? ?????????????????? ??????????? ???????, ???????????????? ??? ?????-
????? ???????????? ???????? ???????? ??????. ?????????? ??? ?????? ? ???????? SSIS ??? ??????? ????????? ?????? bcp
(bulk copy program), ??-
??????? ? ??? ???????????? ?? ?? ???????. ?????? ???????, ??? bcp
????? ??? ????????? ?????? ?? SQL Server, ??? ? ????????? ?? ? SQL Server ? ???? ?? ?????, ? Bulk Insert Task ???????? ?????? ? ????? ??????????? ? ????? ?????? ????????? ?????? ?? SQL Server. ??????? ?????, ??? Bulk Insert Task ? ?????????? ????????? ? ???????????? ????????????? ??????. ?? ????? ?????? ? ??? ????? ???????, ??? ??? ??????-
?? ?????? ?????????? ???? ?????? ???????????? ????????? ??????, ??????-
???, ????????, ? ???, ??? ? ????????? ????? ?????????? ?????-?? ??????????-
??? ??????. ??????? ????? ?????? ????? ????? ???????????? ?????? ??? ????? ????????? ??????????? ? ?????????????????? (????? ??? ?????, ??-
??????, ????????? ???????? ??????? ? ??????? ????????? ???????). ?? ???? ????????? ????????? ???????????????? ???????????? Data Flow Task. ????????? Bulk Insert Task ????? ??????. ??? ??????? ??????? ???? ???????-
??? ??????????? (??. ????. 10.5) ? OLE DB Connection Manager (??? SQL Server, ?? ??????? ????? ??????????? ??????) ? Flat File Connection Manager (??? ?????????? ?????-?????????). ????? ????, ? ????????? Bulk Insert Task ?? ?????? ??????? ???????, ? ??????? ????? ????????????? ??-
??????, ????????? ?????????? ?????-?????????, ??????????? ????? ? ?????-
???. ?????????????? ????????? ???????? ?????? (????????, ?????????? ??????? ? ???????? ????? ??????? ???????, ? ??????? ???????????? ??????, ??? ????????????? ????????? ???????? ?????-?????????) ????? ?????????? ??? ?????? ????? ?????????????? (?? ?????????? ??? ?????? ????????? Format ?? ??????? Connections (??????????) ??????? Bulk Insert Task). ???-
??? ????? ????? ?????? ? ???????????? ? ??????? bcp
(?? ???????? ??? Bulk Insert Task ? ??? ???? ???????), ? ????????????? ??? ? ?????????????? ????-
?? ????? ????? ??? ?????? Bulk Insert Task ?????????? DTS Designer ? SQL Server 2000. ѕрименение SQL Server Integration Services 36
9
10.9. Execute SQL Task Execute SQL Task ? ??? ??????? ? ????? ??????? ?? ?????? ????????? ?????? SSIS. ?? ???????? ?????????? ??????????? ? ?????????? ??????? SQL ??? ???????? ????????? ?? ??????? ??? ?????? (? ????????? ????????? ????-
??????). ??? ?????? ????? ?????????????? ??? ?????????? ?????? SQL ??? ?? SQL Server, ??? ? ?? ?????? ?????????? ?????? (????????, Oracle, Access ? ?. ?.). ???????????? ??????????? ? ???????? ?????? ?????? ????????-
???? ????????? ICommand
, ?. ?. ????? ???????? ? ????????? SQL. ???????, ??-
??????, ???????????? ??? ?????? ??? ????????? ? ????????? ?????? ?? ??-
???????. ???? ????? ??? ?????? ???????????? ? ????????? ?????????: ??? ???????? ??? ???????? ???????? ?? SQL Server; ??? ??????? ????????????? ??????, ???????????? ??? ??????? ?????? ??? ?????????? ?????????????? ? ????; ??? ??????? ???????? ????????; ??? ?????????? ????????????????? ???????? (? ???????? ????????? ???-
?? ???????????? ?????????? ??????????, ? ??, ? ???? ???????, ????? ??-
??????? ??? ??????? ?????? ?? ????????? ?????? ??? ?? ??????????? ??-
????); ??? ?????????? ??????????? ?????????? ???????? ? ?????????? ???????-
??? (???? ???????? ??? ????????? ????? ???????). ????????? ???? ?????? ?????????? ? ?????? ??????????? ? ????????? ???-
??? (???????? Connection Type (??? ???????????) ? Connection (???????-
???) ?? ??????? General (?????)). ????? ?? ?????? ??????? ????????, ?? ???????? ????? ??????? ????? ???????. ??? ????? ????????????? ???????? SQLSourceType (??? ????????? SQL) ?? ??? ?? ???????. ? ????? ???????-
????? ???? ??? ????????: Direct Input (?????? ????) ? ????? ??????? ???????? ???????? ??? ??-
???? ???????? SQLStatement (????????? SQL) (??? ???????????? ??? ?????? ?????? Build Query). ? ??? ?????? ???????, ??? ?????? ???????-
?????? ?????????, ??????????????? ????? ???????. ????? ?? ??????? Parameter Mapping (???????? ??????????) ???? ?????????? ????? ??-
??????? ??????????; Variable (??????????) ? ????? ??????? ????? ???????????? ??? ?????? ???????????? ????????? ?????????? (???? ????? ???????? ???? ???????-
??? ? ???? ?????????? ?????? ?????????????? ??? ?????? ????????? ??????? ?????????? ?????? Script Task). ??? ?????????? ???????????? ??? ?????? ???????? SourceVariable (?????????? ?????????); √лава 10 370 File connection (??????????? ? ?????) ? ????? ??????? ????? ????????? ?? ?????????? ????? ?? ?????. ? ???? ?????? ??? ??????????? ??????? ??-
?????? ??????????? ???? File Connection Manager. ???? ?? ?????? ???????????? ? ????? ?????? ?????????? ?????????? ??????? Execute SQL Task, ?? ????????? ????????? ????? ?????????? ?????? ??? ???? ???????????. ? ????? ???????????? ???????? None (????????, ??? ??-
???????? ?????????? ??????? ??? ?? ??????????, ???????????? ?? ??????-
???), Single row (???????????? ?????? ??? ???????????? ????????), Full result set (?????? ????? ??????? ?????????? ????) ??? XML. ???? ?? ?????-
?? ???????? XML, ?? ???????????? ?????? ????? ???????? ?? ???? ???????-
???, ? ??????? ????? ??????????? ??????????. ???? ??????? ?????????? ??-
?? String
, ?? ? ??? ????? ??????? ??? XML. ???? ?? ????????? ??????????? ? ?????????? ???? Object
, ?? ? ??? ????? ??????? ?????? ????????? XML ????????? ?????? DOM. ?????? ????????? XML (??? ????????? ???????) ????? ???????? ?? ???????, ??????? ??? ???????? ?? ????????? ??????. ????? ?? ?????? ?? ??????? Parameter Mapping ????????? ?????????? ???-
????? ?????????? ?????? ???????, ? ?? ??????? Result Set (????? ????????-
???) ?????????? ?????????? ??? ????????, ??????? ????? ?????????? ??? ??????. ???????, ???????? ??? ??????? ?????????? ?????? ?????? ????? ??? ?????? ???? SSIS | Variables ? SSIS Designer. 10.10. XML Task XML Task ? ??? ??????, ??????? ????????????? ??? ?????????? ????????? ???????? ? ??????????? ? ??????? XML. ???????? ????????, ??? ??? ?????? ?????? ???????????? ??? ???????? ?????? ? ??????? XML ?? SQL Server ??? ??? ???????? ?????? ? SQL Server ? ??????? XML (??? ????????? ???? ???-
??). ??? ???????? ?????? ??????? ????? ???????????? Data Flow Task, ??????-
??? ? ??? ???????? XML Source. ??? ???????? ?????? ? ??????? XML ? SQL Server ????????????? ????? ???????????? Data Flow Task ? ??????????? OLE DB Destination, ??? ???????? ???????? OLE DB Connection Manager ? ??-
?????????? (??????????) SQLXMLOLEDB ??? SQLXMLOLEDB4.0. ?????? XML Task ?????? ???????????? ??? ?????????? ????????? XML. ? ??? ?????? ???????????? ??? ?????????: Source (????????) ?? ??????? General ??????? ???? ?????? ? Second Operand (?????? ???????) ?? ??? ?? ???????. ????????, ??? ???????? ?? ???????????? ????????? (validation) ???-
??? ?????????? ????? ??????????? ???????? XML, ? ?????? ? ???? ???-
??, ???????? ?? ?????? ???????????????, ??? ?????????? ?????????????? XSLT ?????? ?????????? ????? ??? ?????????????? ? ?. ?. ? ??????, ? ???-
??? ???????? ????? ?????? ???????? ????? ? ????????? ???? ?????? (?????-
ѕрименение SQL Server Integration Services 371 ??? Direct Input ??????? SourceType (??? ?????????) ? SecondOperandType (??? ??????? ????????)), ???????? ?? ????? (???????? File Connection) ??? ??????? ?? ?????????? ?????? (???????? Variable). ?????????? ???????? ????? ????????? ? ???? ??? ???????? ? ??????????. ????? ??? ???? ?????? ????????????? ????? ????????. ?????? ???????? ??-
???????? ??? ?????? ???????? OperationType (??? ????????) ?? ??????? General: Validate ? ???????? ????????? XML ?? ???????????? ????? ??? DTD; XSLT ? ?????????? ?????????????? XSL Transformation. ?????? ? ??-
???????? ?????? ?????????????? ????????? ???????? XML ? ?????? ?????-
??? ??? ???????? HTML; XPATH ? ?????????? ??????? ?? ????? XPath. ???? ????? ????? ?????? ???????????? ??? ????, ????? ????? ?????? ??????? ??? ???????? ? ??-
??????? XML; Merge ? ??????? ???? ?????????? XML ? ???? (????????, ?????? ?? ???-
??? ??????? ??? ?? ?????? ????????); Diff ? ????????? ???? ?????????? XML ? ?????????????? ?????? ? ???-
?????? ???????? ? ??????????? XML-??????????? ??????? DiffGram; Patch ? ????????????? ??????????? ???????? Diff (?. ?. ?????? ? ??????? DiffGram) ??? ???????? ?????? ????????? XML. 10.11. Message Queue Task Message Queue Task ? ??? ??????, ??????????????? ??? ?????? ? ?????????-
?? ? Message Queue Service (?????? ?????? ? ???????????, ??????? ??????-
?????? ?????? ? Windows 2000 Server ? Windows Server 2003). ?? ?????????-
?? ??????, ?????????? ???????????? ?????? ?? ???????? ?? ??? ?????? ??????? ????????. ???? ? ??????? ????????????? ??? ????????? ? ????? ??-
?????. ????? ???????????????? ????????, ????? ?????? ???????????? ??? ??????, ???????????? ?????: ??? ?????????? ???????? ?????????? ???????? ?????? ??? ?? ????? ??-
?????? ??? ????????????? ??????? ???????????. ???? ??????? ???????-
???, ????????, ? ????????? ???????? ?????????? ??? ???????????, ?? ??? ???????? ?????? ??????? ???????? ????????? ??????. ???? ?? ??? ???? ???? ?? ??????????? ???????? ?????? ? ?????????, ?? ???????????? ?????? ????? ???????? ? ??????? ? ????? ??????????, ??? ?????? ?????-
????? ?????? ?????????; √лава 10 37
2
??? ????????????? ?????? ??????? SSIS (? ?????? ??????????). ??????-
?????, ????????, ??? ? ??????? ???? ? ??? ?????????? ????????? ??????-
????? ??? ??????, ???????? ????? ??????, ?? ????????, ?????????? ????? OLAP, ? ??????? ???????????? ??? ??????, ? ?. ?. ??? ???? ?????, ????-
??? ??????????? ?? ?????????? ?????? ?? ???? ?????, ????? ??????????. ????? ??????????? ??????????? ???????????????? ?????????? ???? ???? ????? ? ?????? ?????? ?????? SSIS (??? ?????? ??????? SQL Server Agent), ?? ??? ?? ?????? ??????. ??????? ??????? ???????????? ? ???????? ?????, ???????????? ?????????? ?????-?? ????????, ????????? ? ??????? ??-
??????? Message Queue. ????? ??? ?? ?????? ??? ?????????? ????? ??-
?????????? ????? ????? ???????; ??? ?????????? ? ??????????? ???????? ????????? ??????. ????????, ??????, ??????????? ?? ???? ?? ????????, ??????? ? ??????? ?????????, ????? ?? ??????????? ??????????? OLTP-??????. ?????, ????? ???????? ?? OLTP-?????? ??????, ??? ?? ??????? ?????????? ?? ??????. ????? ?????? ????????? ?? ?????? ????????????, ? ?????? ?? ??? ?????? Message Queue Task ?????????? ??????. ??????, ??? ????? ??????? ??? ????????? Message Queue Task, ? ?????????? ?????? Message Queue ? ??????? ??????? ?????????. ?????????? ???????-
?????? ????????????? ?? ?? ??? ?? ??????????, ?? ??????? ????? ???????? ????? SSIS. ????????, ???? ??? ????? ??????????? ???????????? ???? ???-
?????? ? ????????????? ??????? Message Queue. ??????? ?????????? ? ?? ???? ?????????? ?????? ???????? ????????? ?????? Windows (2000 ??? 2003), ? ???? ????????? ?????? ???? ???????? ?????????. ?????, ???????, ???????????? ?????? Message Queue ? ?? ??????????, ?? ??????? ???????-
??? SQL Server 2005 ? ???????? ?????? SSIS, ?? ?????? ?????? ?????????? ? ????????????? ??????? Message Queue ?????? ??????????. ????????? ????? Message Queue ???????????? ???????? ?????????? Win-
dows. ????? ??????? ?????? ??????????, ????????? ??????? ????????? ? ???????? ???????? ? ??????????????? ??????? ????????? ??????????? Windows. ????? ????? ???????? ????????? ?????? ?????????? ? ??????-
???? ?????? ???????? ???????? ??????? ?????????. ???? ??????????? ????? ????????, ??????? ??????????????? ?? ????????? (????? ? ????-
?????? ? Active Directory) ? ??????????? ??????? ?????? ??????????. ????????? ??????, ??????? ????? ??????? ????? ????????? ????? Message Queue, ? ??????? ???????, ??????? ?? ?????? ????????????. ??? ????? ????? ??????? ??????? ?????????? ??????????? ? ???? ???? | ????????? | ????????????????? ? ???????? ? ??? ????????? ?????? ? ?????????? | ??????? ?????????. ?????? ??? ??????? SSIS ???????????? ??????? ???-
????, ??????? ????? ????? ??????? ????? ??????? ??????? ?? ???????????? ѕрименение SQL Server Integration Services 37
3
???? ??? ???????????? ??????????. ?????????? ??? ????? ??? ????? ?????? ??????? SSIS1 (???. 10.9). ???. 10.9. ???????? ??????? ??????? ????? ??????? ?? ?????? OK ??????? ??????? ?????? ? ????????????? ? ??-
????. ?????????, ??? ??? ??????????? ???????, ? ??????? ? ?????? ???????? ???-
???????? ???? MSMQ Connection Manager. ??? ??????? ???????? ? Path (????), ? ??????? ???????????? ???? ? ??? ???????. ???????? ??? ????? ????-
???? ???????????? ? ??????? ???_??????????\Private$\???_???????
, ???????? LONDON2\Private$\SSIS1
. ????????? ???? ?????? ? ?????????? ?? Toolbox ?? ??????? Control Flow ?????? ???? Message Queue Task ? ????????? ?? ????????. ?? ??????? General ??????? Message Queue Task ????? ?????????? ??? ? ???????? ??????, ????? ?? ?????????????? ??????, ??????????? ? ????????? ????????? ? Win-
dows 2000 (?? ????????? ???????????? ??????, ??????? ????????? ? Windows Server 2003), ??????? ???????? ???????????, ? ????? ??? ?????? ? ??????? ???????? Message (?????????) (????? ?? ??? ?????? ?????????? ????????? ? ??????? (Send message) ??? ???????? ????????? ?? ??????? (Receive Message)). ? ??????????? ?? ?????????? ???? ???????? ?????? ??????? ??????? ?????? ????? ??????????, ??????????????, Send (?????????) ??? Receive (????????). √лава 10 37
4
?? ???? ?????? ??????? ?? ?????? ?????????? ????????? ????????????? ??? ???????????? ?????????. ??? ?????? ???????? MessageType (??? ??????-
???) ???????????? ??? ?????????. ????????? ????? ???? ???????, ??? ??-
????????, ??? ?????? ??????. ??? ????? ??????? ???????????? ????????? ????????, ? ??? ???????? ???????? ?????? ???????????? ????? ?????? ??? ??????????. ? ??????????? ?? ?????????? ???? ????? ?????????? ???????-
??????? ????????? ?????????. ????? ????? ???????? ???????? ?????? Message Queue ? ????? ?????????? ?????? ??????. ????????, ???? ????? ????? ??????????? ?????-?? ???????? ?????? ???????? ?????? (??? ??????) ?? ??????? ??????, ?????? Message Queue ?? ????????? ????????? ????? ????????? ????? ?????????, ??????? ????????? ????????? ???????? ? ????????? ?????? ?????????? ?????? ??? ?????? ??????????? ???????????????? (precedence constraints) (???????, ??????????? ?????? ?? ??????? Control Flow). 10.12. Execute Package Task и Execute DTS 2000 Package Task ?????? Execute Package Task ? Execute DTS 2000 Package Task ????????? ? ????? ????? ???????. ???????????? ?????????? ???? ????? ? ????????? ?? ?????????? ?????? ?????? (SSIS ? ?????? ? ??????? DTS SQL Server 2000 ??????????????). ?????? ??? ?????? ???????????? ??? ??????????? ??????-
????? ? ?????????? ???????????? ????. ???? ??? ????? ????????? ? ?????-
?? ??????? ??????? ????? ????????, ?? ?? ????? ?????? ????????? ????????? ????????? ? ?????? ??????. ??????? ????????? ????????????? ????? ???-
?????? ?? ??????? ????? (?? ????? ?????????? ? ?? ?????? ??????? SQL Server ???, ????????, ?? ??????? ??????? ????-???????) ? ????????? ???? ??????? ????? ??? ?????? ????? Execute Package Task. ??? ??????? ?????? ?????????? ?????? ????? ?????????? ?????????, ??????? ?? ?????? ??-
?????????? ??? ??????????. ????????? ?????? Execute Package Task ????? ??????. ?? ??????? Package (?????) ??????? ?????? ?? ?????? ??????? ??????????????? ?????? (? ???-
????? ??????? ??? ?? SQL Server), ??????? ??? ????? (? ???? ?????????? ??????????? File Connection Manager ??? OLE DB Connection Mana- ger ? ????????? ????? ??????), ? ????? ??????? ?????? ?? ?????? ?????? (???? ????? ??????????) ? ????????? ????? ??? ?????????? (???????? ExecuteOutOfProcess). ???????? FALSE
???????? ExecuteOutOfProcess (?? ?????????) ????????, ??? ????????? ????? ????? ??????????? ? ?????? ???? ?? ????????, ??? ? ????????????, ? ???????? TRUE
? ??? ??? ?????????? ??-
???? ????? ??????? ????????? ???????. ѕрименение SQL Server Integration Services 37
5
???????????? ????????, ??????? ????? ?????????? ??? ????????????? ???? ?????, ? ??? ?????????? ????????? ?????????? ??????. ? ??????? Execute DTS 2000 Package Task, ??????????????? ??? ??????? ?? ?????????? ?????? ??????? DTS, ??? ??????: ? ????????? ???? ??????? Inner Variables (?????????? ??????????) ? Outer Variables (??????? ???????-
???). ?? ??????? Inner Variables ??????????? ???????? ?????????? ???-
??????? ??????, ??????? ????? ???????????? ??? ??? ??????? (?????? ??? ????? ???????????? ?????????? ????????????? ??????). ?? ??????? Outer Variables ?????????????? ????? ?????? ????? ?????????? ?????????? ???-
??????? ?????? (?????-???? ??? ?????? ?????????? ????????????? ??????). ? ????????? ???????? ?????????? ?????????? ?????? ? ?????? Execute Package Task, ??????????????? ??? ??????? ??????? DTS, ???????????? ???????. ??? ????? ????? ??????? ????????? ????? ? SSIS Designer ? ? ??-
?? SSIS ??????? ??????? Package Configurations (???????????? ???????). ? ??????????? ???? Package Configurations Organizer (??????????? ?????-
??????? ???????) ????? ?????????? ?????? Enable Package Configurations (???????? ???????????? ???????) ? ?????? ?????? Add, ????? ??????? ??-
??? ????????????. ?????????? ?????? ???????????? ?????? Package Con-
figuration Wizard. ?? ?????? Select Configuration Type (???????? ??? ?????-
???????) ????? ??????? ??? ???????????? Parent package variable (????-
?????? ????????????? ??????), ?????? ??? ?????????? ????????????? ??????, ? ?? ????????? ?????? ????? ??????? ???????? ???????? ?????????? ?????? (??? ??? ??????????), ??? ???????? ????? ?????????????? ???????? ????-
?????? ????????????? ??????. ????? ??? ?? ???????? ?? ???????? ???-
????????? ????? ????????? ??? ????????? ???. ????? ????? ??? ??????? ?????????? ?????? ???????? ????? ?????? ????? ??????????? ???????? ? ??-
????????? ?? ???????? ?????????? ? ???????????? ??????. 10.13. Transfer Database Task ??? ????? ??????? ??????. ??? ????????????? ??? ??????????? ??? ??????-
????? ??? ?????? ? ?????? ??????? SQL Server ?? ??????. ??????? ??????-
??? ???????, ??????? ????? ????????? ????????????: ??? ?????? ????? ???????? ? ???? ??????? (??? ?????????? ??? ?????? ???????? Method (?????) ?? ??????? Databases (???? ??????) ??????? ??-
????). ???? ?? ?????????? ??? ???? ???????? DatabaseOnline, ?? ?? ????? ?????? ???? ??????-???????? ???? ?????? ????????? ????????? ??? ????-
?????????. ??? ?????? ?? ??????????? ??? ?????? ? ?? ???????? ????? ????????? ????? ????????????? ?????????? ????????? ?????? SMO. ???? ?? ?? ???????? ?????????? ????? (???????? DatabaseOffline, ?? ????-
√лава 10 37
6
?????), ?? ???????? ?? ??????????? ???? ?????? ????? ????????? ??-
???????. ???????? ???? ?????? ????? ???????????, ?? ????? ????? ???-
???????? ?? ???? ?? ?????? ?????????? ? ?????????? ? ????. ????? ?? ???? ?????? ?? ???????-????????? ?????? ???????????? ????? ?????, ????-
???????? ??? ?????? ???????? ReattachSourceDatabase; ??? ?????? ????? ???????? ?? ?????? ? ???????????? SQL Server 2005, ?? ? ? ???????????? SQL Server 2000. ???????????? ??????????? ? ?????? ??-
???????? ??? ?????????? ???? ?????? SQL Server 2005 ?? SQL Ser-
ver 2000. ??????????? ?? ????? ???????????? SQL Server 2000 ??? ? SQL Server 2000 ?? SQL Server 2005 ?????? ????????; ? ???????? ????????? ? ?????????? ????? ????????? ???? ? ??? ?? ??????. ? ???? ?????? ???? ?????? ????? ??????????? ?? ??? ?? ?????? ??? ?????? ??????; ????????, ????? ??????? ???? ?????? ????? ??????????? ??? ????????-
??, ??????. ??? ?????? ???? ?????? ???? ?????? ????? ?????????? ????-
?? ???????. 10.14. ƒругие задачи копировани¤ объектов SQL Server ? ?????? ??????? ??????????? ???????? SQL Server ?????????: Transfer Error Messages Task ? ?????? ??? ??????????? ??????????? ???????????????? ?????? ????? ????????? SQL Server 2005; Transfer Jobs Task ? ??????????? ??????? SQL Server Agent; Transfer Logins Task ? ??????????? ??????? SQL Server 2005; Transfer Master Stored Procedures Task ? ??????????? ???????? ???-
?????, ???????????? ? ???? ?????? master
; Transfer SQL Server Objects Task ? ??????????? ???????? ? ????? ???-
??? (??????, ?????????????, ???????? ????????, ??????????? ????????-
??? ? ?. ?.). ????? ????????? ????? ??????????? ??????? SQL Server ???-
??? ? ??????? ?????????. ?? ?????? ??????????, ????? ?? ??????? ????-
???????? ? ??????? ??? ???, ????? ?? ???????????? ?????????? ? ?. ?. ???? ????? ??? ?????? (????? Transfer SQL Server Objects Task) ???????????? ?? ?????????? ?????? ??? ?????????? ??????????, ????? ????? ??????????-
??? ?????? ???????????? ? ??????? SQL Server. ?? ?? ????? ???????????? ? ??? ?????? ?????, ????????, ??? ???????? ????? ?????? ???????? ??????? SQL Server ??? ?????????? ?????????????. ѕрименение SQL Server Integration Services 37
7
??? ??? ?????? ????? ?????? ?????????? ??????? SQL Server (?? ?? ??????-
???? ??). ? ???????? ????????? ????? ???????????? ? SQL Server 2005, ? SQL Server 2000, ?? ??? SQL Server 2000 ????? ???????? ?? ??? ??????? (?????-
???, ?? ????? ??????????? ?????????? ?????? .NET). 10.15. File System Task и FTP Task ??? ??? ??????, ??? ??????? ?? ????????, ????????????? ??? ???????? ? ???-
????. ?????? File System Task ????????? ???????? ???????? ?????????? ?????? ? ?????????? ? ???????? ??????????, ? FTP Task ?????? ?? ?? ????-
?????? ????????? FTP. ?????????? ????????? ??????????? ???? ???? ?????: ?? ?????? ?????????? ??? ?????????? ????? ????? ??????????. ??? ???, ??? ??????? ? FTP Task ? DTS 2000, ???????, ??? ?????? ????? ?? ?????? ???????? ????? ? FTP-???????, ?? ? ????????? ?? ?? ??????; ?? ?????? ?????????, ??????? ? ?????????? ???????? ? ?????; File System Task ????? ????? ?????????? ????? ?? ???? ??????????, ??????? ????? ? ???????? ???????? ??????. ??? ?????? ?? ???? ????? ????? ??????? ???? ????? ?????? ? ???????????? ???????? (????????? ??????????????? ???????? ?????, ????????, ??? "D:\Upload\*.csv"
). ??? ?????? ????? ?????? ????????????, ????????, ??? ????????? (????????) ?????? ???????, ??????? ??????? ???????? ? ??????-
?????? ???????. 10.16. Send Mail Task ??? ?????? ????????????? ??? ???????? ????????? ?? ??????????? ????? ? ???? ?????????? ??????. ??? ??????? ????????????? ??????? ????????? ???-
???????? SMTP Connection Manager. ? ??????? ?? ?????? Send Mail Task ? DTS 2000, ??????? ????? ???????? ?????? ?? ????????? MAPI, ??? ?????? ??-
??? ???????? ?????? ?? ????????? SMTP. ???? ????? Send Mail Task ????????????, ???????, ??? ??????????? ??????-
???????? ? ??????????? ?????? ??????. ????????? ???? ?????? ????? ??????. ?? ??????? Mail (?????) ?? ??????? ?? ??????????? SMTP Connection Manager ? ??? ??????? ???????? ???????????? ?????????: From (?? ????), To (????), Cc (?????), Bcc (????????? ?????), Subject (????). ??? ?????? ???????? MessageSourceType (??? ????????? ?????????) ?? ?????? ??????????, ??? ?????? ????? ????????????? ????? ??????. ??? ????? ?????? ????? ? ???? ??????? (Direct Input), ????? ?? ??-
???????? (Variable) ??? ?? ????? ?? ????? (File Connection). ???? ?? ?????? √лава 10 37
8
???????????? ????????, ?? ??? ??????????? ???????? ??????????? File Connection Manager. ???????????? ???????? ???? ??????, ??????? ????? ?????????? ??????????? ??? ?????? ??????????, ? MessageSource (????? ?????????). ??? ???? ????? ? ???? ?????????? ?????? ?????? ???????? ????????? ??????? ???? ??????, ??? ??????????? ???????????? ??? ????????? ?????? ??????? SSIS ?????????? Script Task, ??? ???????????? ???????????? ?????? (???? SSIS | Package Configurations). 10.17. Execute Process Task ?????? Execute Process Task ????????????? ??? ??????? ? ???? ?????????? ??????? ??????? ??????????. ????????, ???? ?? ???????? ?????? ??????-
??? ????? ? ???? ??????? ZIP, ?? ????? ?? ????????? ? ???? ?????? ????? ????????????? ?? ???????????????. ???? ??? ?????? ????? ??????. ??? ?????? ???????? Executable (????????-
???) ??????????? ??????????? ????, ??????? ????? ??????????? ?? ?????-
?????. ???? ???? ????? ???????????? ?????????? ? ??????????? ????????-
???, ????????, Word ??? Excel, ?? ?????? ??? ???? ?????? ???????????? ?????????? ?????????? ??? ???????? ?????. ??? ??????? ?????????? ????? ???????? ????? ?????????? ??? ?????? ???????? Arguments (??- ???????) (???? ?????????? ?????????, ??? ?????? ???? ????????? ???- ??????). ????? ????? ???????? ?? ?????????? ?????? ???????? ? ????- ??????? ??????? ????? ??????????, ??? ????? ????????????? ???????? StandardInputVariable (?????????? ???????????? ?????). ??, ??? ???????-
??? ?????????? ? ??????????? ??????? ??????, ????? ??????? ? ?????????? ??????, ????????? ?? ??? ?????? ???????? StandardOutputVariable (????-
?????? ???????????? ??????). ????? ????? ????????? ???????????? ?????-
???, ????????, ??? ?????? ????????? ??????? ? Script Task. ??? ?????? ???????? StandardErrorVariable (?????????? ??????????? ??????) ????? ????? ?????????? ??????????? ??????????, ? ??????? ????? ?????????? ?????????, ???????????? ??????? ??????????, ? ??????, ???? ????????? ??????. 10.18. Web Service Task ?????? ???? Web Services Task ????????????? ??? ????????? ?? ?????? ? Web-???????. Web-?????? ? ??? ???? ?? ????? ??????????? ???????? ??-
????????? ?????????????? ????? ??????????. ????? ?????????? ?????????-
ѕрименение SQL Server Integration Services 37
9
????? ????? ?????????? (IPC, InterProcess Communications) ??????????? ? ???, ??? ???? ??????? (????????, ?????????? ????? SSIS) ???????? ????? ??????? ???????? ? ???????? ??? ?????????, ? ????? ????????? ?? ???? ??, ??? ?????????? ???? ?????. ? Web-????? ???? ????????? ??????????? ?? ????????? ? ??????? ??????-
??????????? ???????? ??????????? ?????????????? ????? ?????????? (??-
????, ??? DCOM, RPC, CORBA ? ?. ?.): ???????? ?????? ????? ?????????? ???????????? ?? ???????????? ???-
?????? HTTP. ? ?????????? ?????????? ????????? ???????????? ? ??????-
???? ??????????? ??????? ???????? ???????????? ?????? ???????????? ?????????? SSL; ???? ?????? ?????????? ? XML-??????????? ???????? (???? ????? ? ??????? ????????? SOAP). ?????? XML ? ??? ????????????? ??????, ??? ?????? ? ??????? ????????????? ????????? ??????????? ???????; Web-?????? ????????? ??????? ? ??????????? ??????? ???????????? ?????????????? ????? ??????????? ?????, ??????? ????????? ???????? ?? ?????? ???????????? ???????? ? ??????????. ????????, ?? ?????? SSIS, ??????? ??????? ??????? Windows ? ????? ?????????? .NET, ?? ?????? ?????? ?????????? ? Web-??????, ??????? ??????????? ?? Java ? ???????? ?? ??????? ??? ??????????? UNIX. Web-?????? ????? ?????? ???????????? ??? ?????????????? ????????????? ?????????? ??????????, ??????? ????? ?????? ??????????? (????????, ? ?????? ?????). ? ???????? ??????? ?????????? Web-?????? ????? ??????-
??, ????????, Microsoft Passport. ???????? ??????????????? ???????? ??? ???????? Web-????? ?? ????????? Windows ? ??? ASP.NET ? Visual Studio .NET, ?????? ?? ?????? ??????? Web-?????? ? ???????????? ?????????? SQL Server 2005 ??? ?????? ???????? HTTP Endpoint. Web Service Task ? ????? ??????? ? ????????? ?????? (???? ??????????? ??? Web-??????, ? ??????? ???????????? ?????????, ????? ???? ????? ????-
???). ??? ?????? ??????????? ??????? ??????? ????????? ??????????? HTTP Connection Manager. ? ?? ????????? ?? ??????????? ??? ????? ??-
??????? ???????????, ??? ????? WSDL (Web Service Definition Language ? ???? ???????? Web-?????), ? ??????? ??????????? Web-?????? (? ?????????, ?????????? ?????????? ? ?? ???????, ??????????? ??? ?????????? ? ???-
????????? ?????????), ? ????? ??????????? ?????????? ????? ? ?????????? ??? ??????????, ??????? ????? ???????????? ????? ??????. ????????? ???-
????????? Web-??????? ?????? ????? ??? ? ?????????? ??????, ??? ? ? ????????? ???? (? ???? ?????? ??????????? ???????? ??????????? File Connection Manager). √лава 10 380 10.19. WMI Data Reader Task и WMI Event Watcher Task ?????? WMI Data Reader Task ? WMI Event Watcher Task ????????????? ??? ????????????? ? ??????? SSIS ???????????? ????????? ?????? WMI. ???-
????? ??? ??? ????????? ?????? ?????????????? ? ????. 9.4. ??? ???? ?????? ??????? ??????? ? ?????? WMI Connection Manager. WMI Data Reader Task ????????????? ??? ?????????? ? ???? ?????? ?????? ??????? ? ???????? WMI ?? ????????? ??? ????????? ??????????. ????? ?????????? ?????????? ????? ??????? ????? ???????????? ??? ?????? ????? ??????. ????????, ?? ?????? ????????, ??????? ?? ?? ?????????? ??? ??? ???? ???????, ???? ?? ???????????? ???? ??? ??????? ?? ?????, ??? ? ??-
??????? ????? ?????????? ???????????? ??????? ??????????????????, ??????? ???????? ????? ?? ????? ? ?. ?. ? ????? ????????? ?????? WMI ???-
?? ????????, ?? ?????? WMI Data Reader Task ????????? ? ????????? ????? ???????. ??? ??? ?????????? ??????? ???????????? WMI Connection Mana-
ger, ?????? ?? ????? WQL (? ?????? ?? ????? ??????? ? ?????? ?? ??????? ??????, ?? ????? ?? ????? ??? ?? ??????????), ??? ???????????? ?????? (????????? ????? ???????, ???? ??? ????????/???????? ??? ?????? ??????-
??? ????????), ? ??? ????? ??????????? ?????????? ??????? (? ????? ?? ????? ??? ? ?????????? ??????). ?????? WMI Event Watcher Task ????? ????????????? ??? ?????????? ?????-
??? WMI ? ??? ?????? ? ??????????? ????????????. ?????? ??? ?????? ????-
???? ?? ??????????? ????? ???????? ? ? ??????????? ????????? WMI (??. ????. 9.4.6). ?? ????? ????????????, ????????, ????? ?????, ????? ??-
???????? ?????? ???????????? ? ???????????? ????? ????? ????, ??? ?? ???-
?? ???????? ???? ? ???????????? ??????, ??? ???????? ?????? ?????-?? ??????? (???????, ????????, ?????????????? ???? ??????), ? ?. ?. ???? WMI Data Reader Task ????? ?????? ????????? ??? ?? ????? ?? ???????????? ??-
???? ???????, ?? WMI Event Watcher Task ?????????? ??????? WMI ? ???-
?????? ???? ??????????, ? ???? ???????????? ??? ??????? ?????????, ??-
???????? ??????? ?????? SSIS. ????????? ?????? ??????? ????? ????????? ?? ??????? Event Handlers ? SSIS Designer. ????????? ?????????? WMI Event Watcher Task ????? ???? ????? ???????, ? ????? ?????? ? ??? ? ??????????? ??????????????? ???, ??????????????? ?????? ? ???? ??????? ?? ??????? ???????. ???????????, ??? ??? ????? ??-
???????, ????? ?? ????? ?????????? ???????? ?????? ??????? ? ?????? WinRAR.exe, ? ????? ????? ????? ????? ????????? ?????-?? ???????? ? ????-
?? SSIS. ??? ???????? ??? ???????? ????? ????????? ?????? Script Task, ????-
??? ?????? ??????? ??????????? ???? ?????????. ѕрименение SQL Server Integration Services 381 ??????? ?????? ????? ????????? ???: 1. ???????? ????? ?????? ????? SSIS. 2. ?????????? ?? ??????? Control Flow ?? Toolbox ??????? WMI Event Watcher Task ? ???????? ??? ???????? (??????? Edit ???????????? ????), ? ????? ????????? ?? ??????? WMI Options (????????? WMI). 3. ? ?????? ????? ?? ????????? WmiConnection (?????????? WMI) ??????-
?? ????? New WMI Connection (????? ?????????? WMI) ? ????????? ???????? ???????????? ????????? ??????????? WMI Connection Man-
ager. ???? ?? ?????? ??????????? ?????????? ?????????? ???????? ?? ??-
??????? ??????????, ????????? WMI Connection Manager ????? ?????-
???? ???, ??? ???????????? ?? ???. 10.10. ???. 10.10. ????????? WMI Connection Manager 4. ???????? ?????? ???????? ??????? ??? ?????? ???????? WmiQuerySourceType (??? ????????? ??????? WMI) (? ???? ??????? ??-
??? ???????????? ????? ??????? ??????? ? Direct Input), ? ????? ??????? ????? ??????? ??? ???????? ??? ???????? WqlQuerySource (???????? ??-
????? WQL). ? ?????? ?????? ????? ??????? ????? ???? ?????: SELECT * FROM __instancedeletionevent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process' AND TargetInstance.Name = 'WinRAR.exe' √лава 10 38
2
???. 10.11. ??? ????? ??????????? ?? ?????????? ???????????????? ???? ?????? ? ?????????? ? 1 ??????? ????? ?????????? ?????? Win32_ Process
?? ??????? ?????????? ?????? ???????? ? ?????? 'WinRAR.exe'
. ? ???????? (?? ????????????????, ??? ?????) ???????? ????? ???? ?? ??????? ???????? ?????? ?????? (????????, 10 ??????), ????? ??????? ?????? ????????? ????????. 5. ??? ???????? ActionAtEvent (???????? ??? ??????????? ???????) ??-
??????? ???????? Log the event and fire the SSIS Event (?????????????-
???? ??????? ? ????????? ??????? SSIS), ????? ??? ????????????? ????-
??? WMI ?????????? ? ??? ?? ?????? ???????????? ? ???????? ???????-
??? ??????, ?? ? ??????????? ?? ??????? ??????. ??? ????????? ??????? ?????? WMI Event Watcher Task ????? ???????? ???????? ?? ?????????. 6. ?????????, ??? ??? ??????????? ???????, ? ??????? ? WMI Designer ?? ??????? Event Handlers. ?? ??? ? ?????? Executable ????? ??????? WMI Event Watcher Task, ? ? ?????? Event Handler (?????????? ???????) ? ?????????? ????????? WMIEventWatcherEventOccured
. ????? ???????? ????? ?? ?????? Click here to create a "WMIEventWat-
cherEventOccured" event handler... (???????? ????? ??? ???????? ????-
??????? ??????? "WMIEventWatcherEventOccured"...). 7. ?????????, ??? ??? ???????? ???????, ? ????????? ??????? ?? ??????? ? ???? ?????? Script Task. ??? ????? ????? ?????????? ?? Toolbox ?? ??-
????????? ??????? ???? ?? ??????? Event Handlers ?????? Script Task ? ????????? ?? ????????. ?? ??????? Script ??????? ???? ?????? ????? ??-
???? ?????? Design Script ? ?????? ????????? ??? ??? ????????? Main()
. ?? ????? ????, ????????, ?????: Public Sub Main() MsgBox("????????? ??????? WMI!") ѕрименение SQL Server Integration Services 38
3
Dts.TaskResult = Dts.Results.Success End Sub ????? ????? ????? ????????? ????? ?? ??????????. ?????????? ????? ????? ???????? ?????????????? ?????, ???????? ??????????? ?????????? ??????-
??? ????????. ??? ?????? ?? ????????? ? ????? ???????? WinRAR (? ??? ??-
??????? ??????? ?? ???????? ????? ??????????), ????? ?? ????????? ????-
?????? ????????? ?? Script Task (???. 10.11). 10.20. «адачи Analysis Services ????????? ?????? ????? ? ??? ??????, ??????????????? ??? ?????????? ??-
???-???? ???????? ? ????? ?????? OLAP ?? Analysis Services. ????????? ??-
???? ? OLAP ? Analysis Services ? ???? ????? ?? ???????????????, ????? ???-
??????? ???? ??????? ?????????????? ?????? ?? ???? ?????: Analysis Services Execute DDL Task ? ??? ?????? ????????? ?????????, ???????? ? ??????? ??????? ? ????? ?????? OLAP ?? Analysis Services (????, ?????????, ?????? ?????? ?????? ? ?. ?.); Analysis Services Processing Task ? ???????? ????? ???????????? ?????? ?? ???? ??????. ??? ????????? ????????? ?????????? ???? ??? ?????????, ? ????? ?????????? ?????? ?????? ??????. ????? ????? ?????? ? ?????? ???????? ???????????? ??? ????????????? ??????????? ????? OLAP ? ??????? ?????? ??????; Data Mining Query Task ? ??? ?????? ????????? ?????? ? ?????? ?????? ?????? ? ???? ?????? OLAP ? ?????????? ? ?????? ???????????? ???? ??-
?????? ??????????. ????????, ????? ???????? ??? ????????? ?????? ? ???????? ?????? ?????? ?????? (???????-???????) ? ???????? ?? ??? ?????????? ?? ?????????? ????????? ???? ????????? ??????, ?? ????-
??? ????? ???????? ??????? ? ??????????? ?????? ??????? ? ?????????? ?????? ?? ????. 10.21. онтейнеры SSIS ? SQL Server Integration Services ????????? ????? ??????????? ? ????????-
??. ?????????? ? ??? ??????????? ?????? Control Flow, ??????? ?????????-
???? ??? ?????????? ? ??? ?????? ????? Control Flow. ? ???????? ????????-
?? ???????????? ??? ??????????? ?????? ? ???????. ???????, ??? ? DTS 2000 ???? ? ?????? ????? ???? ???????????? ?????? ??? ?????? ???-
????????????? (?????????? ActiveX Script Task). ????? ?? ??????????? (?? ??? ? ??????????? Script Task) ???????? ? ? SSIS, ?? ????????????? ??????-
????? ????? ? ???????. √лава 10 38
4
? SSIS ????????????? ?????? ???? ???????????: For Loop; Foreach Loop; Sequence; Task Host. ??? ?????????? ???????? ? Toolbox ?? ??????? Control Flow, ????? Task Host. ???? ????????? ????????? ????????????? ??? ????? ?????? ? ????????-
???? ??? ???????? ???????? ???????, ??????????? ?? ??????????? ?????? SSIS Designer ??? ???? ??????. Task Host ?????? ??????? ? SSIS Designer ? ????????? ? ???? ???????? ?????? ?? ???????????? ????, ? ??????? ????? ???? ????????? ??????????????? ?? ?????. ????????? For Loop ???????????? ??? ??????????? ?????. ??? ? ??????????-
???? ??????????? For Loop
? ??????????? ????, ???? ????????? ???????????? ? ??? ?????????, ????? ??? ? ?????? ?????? ????????, ??????? ??? ?????? ???? ???????? ??? ??? ???? ????? ????? Control Flow. ??? ????? ?????????? ????????????? ??? ??????? ????????: InitExpression ? ?????????? ???????? ???????? ????????. ????????, ???? ? ????? ?????? ?????????? ????????????? ?????????? Counter
, ?? ?????-
??? ????? ???????? ????? ????????? ??? @Counter = 0
; EvalExpression ? ??????????? ?????????. ???? ????? ??????????? ?? ??? ???, ???? ??? ????????? ?????????? ??????. ????????, ???? ??? ???-
?? ????????? ?????-?? ?????? ???? ???, ?? ???????? ????? ???????? ????? ????????? ??? @Counter < 5
; AssignExpression ? ?????????, ??????? ????? ???????? ???????? ?????? ????????. ??? ????? ?????????, ????????, ??? @Counter = @Counter + 1
. ????? ????????? ??????? ?????????? For Loop ??? ????????? ?????? ??????-
???? ? ???? ?????? ?????? (??? ????? ?????) ?? ToolBox ? ????????? ??. ????????? Foreach Loop, ????? ??????? ? ??????????????, ???????????? ????. ??????????? ??????????? Foreach
??????????? ??? ????, ????? ?????? ?? ???? ????????? ?????-?? ?????????. ??? ???? ?? ???? ???????????? ? ????????? Foreach Loop. ? ??? ????? ????????? ?? ????????? ????????? ?????????: File Enumerator ? ??? ????????? ????????? ?????? ?? ???? ?????? ??-
???-???? ????? ? ???????? ???????. ????? ????????? ?????? ??? ???? ? ?????????? ??????, ? ????? ???????, ?????? ?? ?? ????????? ?? ??????-
??? ??????. ????? ?????? ????? ???????? ? ?????????? ?????? (?? ???? ????? ?????????????? ? ????. 10.25) ? ???????????? ?? ??? ?????? ?????, ????????, ??? Data Flow Task ??? File System Task; ѕрименение SQL Server Integration Services 38
5
Item Enumerator ? ?????? ?? ??????? ???????, ??????? ????? ????? ??????? ????? ? ???? ??????? ????? ??????????. ??? ????? ???????, ?? ? ????? ????????? ? ????????????? ??? ?????????; ADO Enumerator ? ?????? ?? ???? ??????? ? ??????? ADO.Recordset
, ??? ?? ???? ??????? ??????? DataTable
??????? DataSet
? ADO.NET, ??? ?? ???? ??????? ?? ???? ???????? ??????? DataSet
? ADO.NET, ??? ?? ?????-
??? ?????? ? DataSet
. ??? ???? ????????? ??? ??????????? ??????? ??? ????????? ?????????? ??????, ? ??????? ????? ????????? ????????????-
??? ?????? ADO.Recordset
??? DataSet
; ADO.NET Schema Rowset Enumerator ? ????????? ???????? ??????-
??????? ???? ?? ????????? ?????? OLE DB. ??? "schema" ? ?????? ???-
??? ??????????????? ??? ??????? (???????, ?????????????, ???????? ???-
??????), ? ?? ????? SQL Server 2005. ?? ?????? ??????? ???????? ?????? (?????? OLE DB), ???? ?????? ? ??? ???????, ? ????? ????????? ?????? ??? ??????? ????? ???????, ????????, ?????? ?? ??? ???????; From Variable Enumerator ? ?????? ?? ?????? ????????? ? ?????????, ??????? ????????? ? ?????????? ??????. ????????, ? ?????????? ????? ?????????? ????? ???????, ???????????? ???????? Execute SQL Task; Nodelist Enumerator ? ?????? ?? ???? ????? ????????? XML, ??????? ???? ????????????? ??? ?????? ????????? XPath; SMO Enumerator ? ????????? ???????? SMO (????????, ??????, ????-
?????????, ???????? ???????? ?? SQL Server 2005). ???? ??????? ??????? ????????? ??????????? SMO Connection Manager ? ?????? ? ??????? URN, ??????? ????? ??????????????? ?????? ???????. ?? ????? ?????-
???????? ? ?????????????? ??????. ???????? ?????????? ?????????? Foreach Loop ?? ?????? ??????????? ???, ??? ?? ????? ?????????? ?????????? ? ??????? ?????????????? ???????? ?????????? ??????. ????? ????? ???????????? ??? ????????, ????????, ??? ????, ????? ???????? ???????? ????????? ??????, ?????????? ? ???? ??????-
??? ??? ???????? ???? ?????? ?? ???????? ?? SQL Server. ??? ????????? ????-
???????? ?????????? ???????????? ????????? ???????????? ??????? Vari-
able Mappings (???????? ???????????) ??????? ?????????? Foreach Loop. ?? ??? ?? ?????? ???????, ? ????? ?????????? ????? ?? ?????? ????????, ?????????? ??? ??????? ????????, ????? ????????????. ????????, ???? ?? ????????? ? ?????????? ADO Enumerator, ?? ??????? 0 ????? ??????????????? ???????? ?? ??????? ??????? ??????? ??? ?????? ??????, ??????? 1 ? ?? ??????? ? ?. ?. ? ?????????, ??? ??????????? ????????? ????? ???????? ??-
????????. ????????, ???? ?? ??????????? ????????? File Enumerator, ?? ??? ????? ??????????????? ??????? ???????, ? ??? ? ???????? ? ???????????? ? SQL Server ???? ?????????? ?????? ?????????? ?? ???????. ?????? ?????, √лава 10 38
6
????? ?????? ?????? ? ???? ???????? ? ???????? ??????????? ?, ????????, ??????? ???????? ?????? ?????????? ??? ?????? ??????? MsgBox
? Script Task. ????????? ????????? Control Flow ?????????? Sequence. ??? ????? ??????? ?? ???????????. ?????? ?? ???????????? ?????? ??? ????? ???? ? ???????-
?????? ????? ?????????, ????? ?? ????? ???? ???????????? ????????? ??? ????????. ??? ????? ?????????? ?????? ??????????????? ????????? Disable (?????????) ????? ??????????. ????? ????, ?? ?????? ?????????? ????? ????????? ??????????, ??????? ?? ????? ????? ? ?????? ?????? ??????. 10.22. «адачи планов обслуживани¤ ????? ???????????? (maintenance plans) ? ??? ?????? ???????? ?? ?????-
??????? ???? ??????, ??????? ?????? ??????????? ?? ?????????? ??????. ???? ????? ????? ???????????? ????????? ??? ?????? ??????? ?? SQL Server Management Studio (??. ????. 8.3). ?????? ?? ?????? ??????? ???? ??-
?????????? ? ??????? ??? ?????? ???????????????? ?????? ???????? ?? ??????? Control Flow. ??? ??? ???????? ????????????? ? ??????? Maintenance Plan Tasks (?????? ?????? ????????????) ? Toolbox. ??? ??? ????? ?????? ? ????????? ???????????? ?? ???????. ???????? ???? ?? ?????? ? ???????? ????????????????: Backup Database Task ? ??? ?????? ????????? ???????? ????????? ????-
??????? ???? ?????? ??? ??????? ??????????; Check Database Integrity Task ? ???????? ??????????? ???? ?????? (?????????? ??? ????????????? ?????????? ??????? DBCC CHECKDB
); Execute SQL Server Agent Job Task ? ??????, ??? ?????? ??????? ???-
?? ????????? ??????? SQL Server Agent; Execute T-SQL Statement Task ? ??????, ??????????? ?????? ????????? ???????????? ??????? Transact-SQL ?? SQL Server 2005. ? ??????? ?? Execute SQL Task, ?????????? ???????????? ? ??????????? ????????? ??? ???? ?????? ??????. ????? ????, ??? ???????? ?????? ? SQL Ser-
ver 2005, ? SQL Server 2000 ?? ???????????? ?? ?????????; History Cleanup Task ? ??????? ??????? ?????????? ???????????, ??? ??????? ?????????? ??????? SQL Server Agent, ??? ??????? ?????????? ?????? ????????????. ???? ?????? ? ????????? ?????? ???? ?????? msdb
, ?????? ?? ??? ???????? ??????????; Maintenance Cleanup Task ? ??? ?????? ????????? ??????? ?????? ?????. ?????? ??? ???????????? ??? ???????? ?????? ?????? ????????? ?????, ?? ?????? ?? ?????? ??? ???????????? ?? ? ??? ???????? ????? ?????? ??????; ѕрименение SQL Server Integration Services 38
7
Notify Operator ? ??? ?????? ???????? ????????? ????????? SQL Server Agent. ? ????????? ?????? ?? ????????? ????????? ? ???????? ?????????, ??????? ????? ?????????? SQL Server Agent; Rebuild Index Task ? ?????? ???????????? ???????? (?????? ??? ????? ??????????????). ??? ????????? ???? ?????? ?????????? ??????? ?????-
?? ??? ????????????? ??? ??????? ??? ??????? ??? ????????????? ? ????-
???????? ???? ??????; Reorganize Index Task ? ?????? ??? "??????" ????????????? ????????. ??? ????????????? ???? ?????? ??????? ??????????????, ? ?? ?????????-
??????. ??????? ?????????????? ?????????? ????????? ????, ???? ?????-
???? ?????? ????????? ????????, ? ??????? ?? ????? ????????????? ??-
?????? ?????????? ??? ?????????????; Shrink Database Task ? ??? ?????? ????????? ????????? ?????? ???? ??????, ?????????? ?? ?? ?????? ?????????????? ????????????. ?????? ????? ?????? ??????????? ??? ??? ?????? ?????????????? ???????? ? ??????? ??????????? ????????? ???????? ? ??????; Update Statistics Task ? ??? ?????? ????????? ?????????? ???????????? ???????? (Query Optimizer) ??? ???????? ? ????? ?????? SQL Server 2005. ?????? ????? ?????? ???????????? ??? ??????? ??? ??????, ? ??????? ??-
???????????? ?????????? ?????????? ????????? ? ????? ??????????? ??????????????????. ???????? ??? ?????? ?? ??????????? ?????????????? ? ????. 11.5.8. 10.23. ќграничени¤ предшественников ????????? ??? ?????????, ??????? ????? ???????????? ?? ??????? Control Flow ? SSIS Designer, ?????????? ????????????? ???????????????? (prece-
dence constraints). ? Toolbox ???? ????????? ?? ?? ???????. ??? ??????????-
?? ???????? (?? ?????????) ?????????, ??????? ?????????? ??? ?????? ??? ??????????, ???? ??? ?????? ??? ????????? ???????? ?? ??????? Control Flow ? SSIS Designer. ??????? ?????????? ???? ??????? ? ??????????? ??????? ? ?????? ???????-
??? ????????? ? ??????. ???? ? ????? ?????? ????? ????????? ?????????, ??-
????? ?? ????? ??????? ????? ????? (???. 10.12), ??, ??? ???????? ???????-
??, ?????????? ???? ???? ????????? ???????? ????????????. ??? ????? ??-
?????? ?????????? ??????????? ???????? ? ????????? ????? ????? ? ??????. ???? ?? ?? ??????? ?????? ????? ????? ????????????? ???????????????? (???. 10.13), ?? ??? ?????? ????? ??????????? ??????????????? (?, ????????, ???????? ?? ?????????? ?????????? ?????????? ??????). √лава 10 38
8
???. 10.12. ????????? ????? ????? ? ?????? ???. 10.13. ???????????? ????? ????? ? ?????? ?????? ? ????????????? ???????????????? ???????? ??? ??, ??? ? ?????? ? ???????? ?????/????? ? Data Flow Task: ????? ?????? ????? ??????? ???????, ??????? ??????? ?? ??????, ? ?????????? ?? ?? ??????, ??????? ?????? ??-
????????? ?????????. ?????? ???????? ??????????? ???????????????? ?????? ?????????? ?? ??????? ??????? ?????? ? Data Flow Task. ??????? ????????, ??????? ????? ????????? ??? ???????, ? ??? ?? ???. ?? ?????????? ?? ???????????? ???? ??? ???????. ?? ????????? ???????????? ???????? Success (?????), ?. ?. ????????? ??????, ?? ??????? ????????? ??? ???????, ????? ????????? ?????? ? ??? ??????, ???? ?????????? ?????? ??-
???????? ???????. ????? ???? ????????????? ??????? ???? ???????. ѕрименение SQL Server Integration Services 38
9
???? ??????? ??? ??????? ??? Failure (????), ?? ??????? ? ????????, ?? ??-
????? ??? ?????????, ????? ?????????? ?????? ?????, ????? ? ???? ???????-
??? ?????????? ?????? ????????? ??????. ???? ??????? ????? ???? ???????. ????????? ??? ???????? ?????? ?????????? ? Completion (??????????). ? ???? ?????? ????????? ?????? ?????? ??????????? ? ????? ?????? ????? ?????????? ??????????, ?????????? ?? ????, ??????? ??? ???? ????????? ??? ???. ??? ????? ??????? ???????????? ????? ????. ?? ?????? ???????? ????? ???????? ????????? ???????. ????? ??? ?? ?? ???? ??????? ????? ????????? ????????? ???????. ? ????????? ?????? (???. 10.14) ????? ?????????? ??? ??????????? ??? ??????? ???????? ? ?????? ??????: ?????????? OR
(???) ? ??????? ? ????????? ?????? ??????????, ???? ????? ?? ??????? ???????? ???????? (????????, ??????? ?????????? ??-
???-?????? ?? ?????????? ?????); ?????????? AND
(?) ? ??????? ? ????????? ?????? ?????????? ?????? ? ??????, ???? ????????? ???????? ??? ??????? (????????, ??????? ?????-
????? ??? ?????????? ??????). ???. 10.14. ??? ??????????? ???????????????? ??? ?????? Script Task 3 ???????? ?? ?????????? ????? ??????????? ?? ?????? ??? ?????? ???????? ????????, ??????? ?????????? ?????? ??? ??????????, ?? ? ??? ?????? ???-
?? ??????????? ?????????. ?? ????? ????????? ? ????????? ???????? ????-
?? ??????????. 10.24. ѕротоколирование выполнени¤ пакетов ????? ?????? ?????? SSIS ?????????? ??????????????? ??? ?????????? ? ?????? ?????, ????? ???????? ?? ?????? ??? ?????? ??????????. ???????, ? ???? ?????? ????? ????? ??????????? ???????? ?????????? ? ???, ??? √лава 10 390 ?????? ?????????? ??????, ? ???? ???????? ??????, ?? ?????. ??? ?????-
????? ????? ???????? ?? ?????????? ?????????? ??????. ????????? ?????????? ???????????????? ?????? ????? ????? ?????????? ??? ?????? ???? SSIS | Logging (????????????????) ? SSIS Designer. ????????? ???? Configure SSIS Logs (????????? ??????? SSIS) (???. 10.15). ???. 10.15. ????????? ???????????????? ?????? SSIS ??????, ??? ????? ??????? ? ???? ????, ? ?????????? ? ?????? Containers (??????????) ?????? ???????? ?????? ? ??? ??? ?????????, ??? ??????? ??-
???????? ????????????????. ????? ?? ??????? Providers and Logs (??????-
???? ? ???????) ?????????? ??????? ??? ?????????? ???????????????? (?. ?. ?????? ????????????????). ? ????? ???????????? ???? ???? ?????????: SSIS log provider for text files ? ???????????????? ????? ????????????? ? ????????? ????. ??? ????????? ????? ?????????? ??? ???????? ??????? ??? ??????? ???????? ??????????? File Connection Manager; SSIS log provider for SQL Profiler ? ???????????????? ????? ????? ???-
?????????? ? ????, ?? ??? ? ??????? ?????? SQL Server Profiler (? ?????-
?????? trc). ????????????? ???? ???? ???????? ? ??????????????. ??? ѕрименение SQL Server Integration Services 391 ????? ?????????? ????? ???????????? ???????? ??????????? File Con-
nection Manager; SSIS log provider for SQL Server ? ???????????????? ????? ???????-
?????? ? ??????? sysdtslog90
? ????????? ???? ?????? SQL Server. ??? ????? ?????????? ????? ???????? ??????????? OLE DB Connection Manager; SSIS log provider for Windows Event Log ? ???????????????? ????? ????????????? ? ?????? ??????? ?????????? (Application Event Log) ??????? ??????? Windows. ???????? ??????????? ??? ????? ???? ?????-
??????????? ?? ?????; SSIS Log Provider for XML files ? ?????? ????????? ????? ??????????? ? ????? XML ?? ?????. ??? ????? ??????????? ????? ???????????? ?????-
??? ??????????? File Connection Manager. ?????? ??? ???????????????? ???????????? ????????? ????? (???? ?????-
??? ?????????? ????????????? ?????????????) ??? ??????? sysdtslog90
?? SQL Server, ???? ?????????? ? ?????????? ??????? ?? ????? ??????????? ????? ??????? ? ??????? ??????????? ???????. ?????????, ??? ????? ???????, ? ??????? ?? ??????? Events (???????) ? ??????? ??????? ??? ?????? ? ????????. ???????? ????????, ??? ????? ????? ??????? ??????? ????? ??? ?????? ?????? Advanced (?????????????) ?? ???? ???????. ????? ????? ??? ?????? ??????? ?????? ?? ?????????? ?????????? ????? ???????????? ? ????????? ???? ????? ??????????. 10.25. –абота с конфигураци¤ми ???????????? ??????? (package configuration) ? ??? ????????, ??????? ??-
??????? ???????? ???????? ??????? ?? ????? ?? ??????????, ??????????? ??-
??? ??????? ???????? ??? ??????? ?????? ? ?????? ????????. ????????, ???? ? ??? ?? ????? ????? ???????????? ??? ???????? ?????? ?????? ?? ?????? ??????? ??? ??????. ????? ? ??????????????? ??????, ????? ???????? ??? ?????? ? ?????? ????????? ?????? ????? ????? ???????? ??? ?????? ??-
???????? ?? ???????????? ????? ? ???????? ?????? ??????. ??? ???, ??? ??????? ? DTS 2000, ???????, ??? ???????????? SQL Server 2005 ?????????-
???? ??? ??? ?? ?????, ??? ? Dynamic Properties Task ? ?????????? ?????? DTS. ???????? ???????????? ???????????? ??? ?????? ???? SSIS | Configu-
rations ? SSIS Designer. ? ???? Package Configurations Organizer ????? ??-
???????? ?????? Enable package configurations, ?????? ?????? Add ? ????-
√лава 10 39
2
?? ?? ??????? ??????? ???????? ???????????? Package Configuration Wizard. ? SSIS ????????????? ???? ????? ????????????: XML Configuration File (???? ???????????? XML) ? ?????????? ??? ????????? ??????? ????????? ??????? ????? ??????? ?? ????? ? ??????? XML ?? ?????. ???? ??? ???????????? ????????? ?????????? ???????? ????? ??? ?????????? ??????? ????????? ?????? SSIS; Environment Variable (?????????? ?????????) ? ???????? ??? ???????? ???????? ?????? ????? ??????? ?? ?????????? ????????? ???????????? ??????? (??? ????????? ?? ?????????? ?????????? ????????? ????? ???????????, ???????? ? ????????? ?????? ???????????? ??????? ??????? set
). ????????, ????? ???????????? ??? ???????? ?????????? ??? ????????? ??????? ??????????? ? ?????? SSIS; Registry Entry (?????? ? ???????) ? ???????? ????? ??????? ?? ????????-
?? ???? ????????? ??????? ?? ????????? ??????????; Parent Package Variable (?????????? ????????????? ??????) ? ???? ???-
??? ??? ?????????????? ? ????. 10.12, ??????????? Execute Package Task. ???? ??? ???????????? ???????????? ? ????????, ????? ???? ????? (????-
??? ??? "????????????") ????????? ?? ?????????? ?????? ?????, ??????? ??? ???? ??? ????????. ???????? ????? ??????? ?? ?????????? ????????-
????? ??????; SQL Server ? ???????? ??? ??????? ????????? ?????? ????? ??????? ?? ??????? ? ???? ?????? SQL Server. ?????? ???? ??????? ?????? ????- ????????? (???? ??????? ? ?????? ??????? ????? ????????????? ??? ?????? ?????? New ???? Select Configuration Type). ??? ??, ??? ? ??? ????????????? ????? ???????????? XML, ???????????? SQL Server ??-
??????? ??????? ????? ????????? ????? ???????? ??? ??????? ????????? ??????. ??? ???? ????? ????????????, ????? Environment Variable, ????? ?????-
???? ????????????? ?????????? (????????, ?????????? ??? ????? XML) ? ??? ?????? ????????? ???? ?????????? ????????? ???????????? ???????. ??? ???????? ???????????? ? ???? ????? XML ???? ? ??????? ????????? ???????? ????? ???????????? ?????????????. ??? ????????? ?????? ??????? ??? ? ???????? ?????? ???????? ? ????????? ?????????. ???????, ???? ???-
????????? ????? ??????? ? ???????, ?? ??? ????? ?????????? ??????. ????? ????, ??? ?????? ?????? ??? ????????????, ???????? ?????? ?????? Next ? ??????? ?? ???????? ????????? ?????? (??? ?????? ??????), ??????? ????? ?????????? ?? ???????? ?? ?????????? ???? ?????????. ??? ?????? ????? ??????? ????????? ???????????? ? ?????????? ??? ??? ??????? ??????????. ???? ???? ? ?? ?? ???????? ????? ?????????? ???????-
ѕрименение SQL Server Integration Services 39
3
???? ??????????????, ?? ? ????? ????? ????????? ???????? ?? ????????? ???????????? ? ??????. 10.26. ’ранение пакетов ?? ????????? ?????? SSIS ????????? ? ???????????? ? ????? ?????? ?????-
?? Visual Studio ? ???????? ??? ????????? ???????? ????????????. ??-
??????? ?????? ???????????? ????? ????????? ????? ? ??????? XML ? ???-
???????? dtsx, ??, ? ????????, ????? ???????? ?????? ? ?????????? ??? ?? ?????, ????? ?????? ?????? ? ??? ?? ??????. ??????????? ???? ?????? ????? ????????? ??? ?? SSIS Designer, ??? ? ??? ?????? ?????? dtexec
? dtexecui
. ?????? ???????, ??? ?? ?????? ????????? ????? ??? ???????-
?? ? ?? ?????? ????? ??? ???????? ???????. ????? ????? ??????????? ????????? ?????????? ?????? ? ????? ?? ????? ? ??????????? ???? ??????-
????? ????????? ?????????? (????????, ?????????? ? ?????????????). ?????? SSIS ????? ??????? ?????? ????? ?????????: ? ???? ?????? ? ?????? ?? ????? ? ? ??????? sysdtspackages90
? ???? ?????? msdb
?? SQL Server 2005. ? ????????? ????????? (????????, ??? ?????? ?????? ?????????? ??????? dtsrunui
) ? ?????? ??? ?????? ??????????????? ??????? ??? ???? ????????? ????? ????????, ??????? ?????????? SSIS Package Store. ??????, ??????? ????? ? SSIS Package Store, ????????? ????????? ??? ? ?????? ?? ?????, ??? ???? ?????? msdb
? ?????? ? ??? "?????" ?????? Integration Services. ??-
???????? ? ????? ??????? ???????? ? ?????????? ???????????? Integration Services ?? ?????? ??????????. ??????????????? ?????? ????????? ?????? ?? ?????? (? ???????? ??????? ??? ? ???? ?????? msdb
) ? ?????????? ??????? ????????????? ??????? Package Deployment Wizard. ??? ???? ?????????? ? ?????? ????? ???????? ?? Integration Services ??????? ???????, ? ?? ??????? ????????? ? ??? ????-
???????????? ???????? ?????????? SQL Server Management Studio. ???????, ???, ? ????????, ?????? SSIS ????? ?????????? ?????? ?????????? ???????? ??????? ? ????? ????? ????????? ?? ?? ??????????, ?? ? ???? ?????? ??????-
?????????? ???????? ? ???? ??????????? ????? ???????. ????? ????, ?? ???????? ???????? ?????? ????????????? ??????? ????????? ?????, ??-
??????, ????? ????????????. ?????? ?? ????????? ?????? ?? ?????? ???????????? ?? ???? ???????? Integration Services ???????. ? ?????? ????? ??????? ???? ??? ????????? ??-
?????, ?????????? ?? ?????????? ??????, ? ????? ??????????????? ????? (????????, ????? ? ?????????????, ??????? ?????????? ? ????????? Miscellaneous (??????)). ????????? ??????? ??????? ?? ?????? ???????? ??-
????????????? ???????? ???????? ????????? ???????. √лава 10 39
4
1. ??????, ??? ????? ???????, ? ??????? ??????? ????????????? (deployment utility). ??? ???????? ????????????? ??????????????? ????? ???? ????? ???? ?????? ???????, ????????????? ? ???????????? ????? (?? ??????-
??? ? bin\Deployment ? ????? ???????), ? ??????? ??????????? XML-
??????????? ???? ? ??????????? SSISDeploymentManifest. ??? ???????? ??????? ????????????? ????? ????????? ????????? ????????: ??????? ???????? ??????? (?? ??????!) ? Project Explorer; ?? ??????? Deployment Utility (??????? ?????????????) ?????????? ??? ???????? Create Deployment Utility (??????? ??????? ?????????????) ???????? TRUE
. ??? ????????????? ????? ???????? ???????? ? ?????? ??????? ???????, ????????, ????????? ?????? ??????? ??? ?????????? ?????? Deployment Utility; ? ???? Build (???????) ??????? ??????? Build ??? ?????? ???????. ? ?????????? ? ????????? ???? ??????? ????? ??????????? ??? ??????-
????? ????? ???????. 2. ????????? ???????? ? ????????????? ??????? ????????????? ??????? Package Deployment Wizard ??? ?????????? ??????? ?? ??????? ? ??????-
??? ?????????? ? ???? ??? ??????? ? ????????? ???????????? Integration Services. ????? ????? ????????? ?????? ????????????? ???????, ??????? ??? ???? ????? ?? ???????????????? ????? ? ??????????? SSISDeploymentManifest ? ????? ??????? ?????????????. 3. ? ???? ?????? ??????? ??? ????? ????? ???????, ??? ?????? ????? ?????-
???? ??????? ??????. ? ????? ???????????? ???? ??? ????????: File system deployment (????????????? ? ???????? ???????) ? ?????? ????? ??????????? ? ????? ???????? ??????? ???????, ?? ????????? C:\Program Files\Microsoft SQL Server\90\DTS\Packages\???_???????; SQL Server Deployment (????????????? ?? SQL Server) ? ?????? ????? ????????? ? ???? ?????? msdb
?? ??????? SQL Server. ???? ?? ???????? ?????? ???????, ??? ??????????? ??????? ??????? ??? ?????????? ??????? (??? ??????????? ? ???????????? ?? ?????????). ?? ?????? ???????? ??? ????? ??????? ?????? SQL Server 2005, ????????? ?????????????? ??? ??????????? ? ????, ? ????? ??????? ?? ?????, ? ??-
????? ??? ????????????? ????? ???????? ??????????????? ????? ??-
???? ???????. ??? ?????????? ?????? ?? ??????? ????? ????? ???????????? ??????? dtexec
. ?? ? ???? ?????? ??? ???????? ???????? ? ????????? ???????. ????? ????, ??? ????????????? ??????? ?????????, ?????????? ?? ????? ???-
?????? ? ????????? ? ???? ?????? ???????????????? ???????? ????? ????? ѕрименение SQL Server Integration Services 39
5
?????????? SQL Server Management Studio. ??? ????? ?????????? ??????? SQL Server Management Studio, ? ?????? ???????????? Object Explorer ??-
???? ?????? Connect (????????????) ? ? ??????????? ?????? ??????? Integration Services, ? ????? ??????? ??? ?????? ??????? ? ????????? ??????-
?????. ? ?????????? ??? ??????, ??? ??????? ????? Integration Services, ??- ?????? ? ?????? SQL Server Management Studio (???. 10.16). ?? ?????? ???-
??????????? ??? ??????, ????????????? ????? ??????, ????????? ?? ?? ??-
????????, ????????? ????????????? ??????? ? ?. ?. ???. 10.16. ????????????????? ??????? SSIS ?? SQL Server Management Studio ????????? ??????????? ??????? ???????????? ? ??????????? ?? ????, ??? ?????? ??? ???? ?????????. ???? ?????? SSIS ???? ????????? ? ???????? ???????, ???????????? ??????? ???????? ?????????? ??????????? Windows. ???? ?????? ???? ???????? ? ???? ?????? msdb
, ?? ????????? ??????????? ???????????? ?????? ?? ???? ????? ?????? msdb
?????????? SQL Server. 10.27. Ѕезопасность пакетов SSIS ?????? SSIS ???????? ?? ????? ???????? ?????? ??????? ? ??????? XML, ? ??????? ??? ?????????? ???????? ? ???????? ????. ? ?? ?? ????? ?????-
????? ? ??????? ????? ???????????? ???????? ??? ???????????????. ??-
??????, ? ?????? ????? ?????????? ??? ???????????? ? ?????? ??? ??????-
????? ? ????????? ??????. √лава 10 39
6
?????? ??????, ??????? ????? ?????????? ????? ??????????????? ?? ????-
???????, ? ?????? ?????? ?? ???????????????????? ???????. ????????, ??? ??????????? ??????? ????????????? ??? ???????? ? ???????? ??????, ??-
????????? ?????????????????? ??????? ?????? ????? ????????? ????? ??????-
????. ?, ???????, ?????? ???????? ? ?????? ???????????? ???? ?????? ??? ?? ???-
??????, ??? ? ?? ???????????????????? ????????? ?? ??????? ?????????????. ????? ????? ?????? ???????? ?????? ???????? ?????????? ? ????????????-
?? SQL Server 2005, ? ???????????? ?? ?????, ????? ??? ?? ??????? ??? ???-
??????? ??? ???????. ? ???? ??????? ????? ??????????? ???????????, ??????? ??????????? ? Integration Services ??? ?????? ???????. ?????? ??????????? ? ????????? ?????? ?????? ?????? (protection level). ??????? ?????? ?????? ????? ????? ?????????, ???? ???????? ?????? ????-
??? ???? ?? ??????? ???????????? ?? ??????? Control Flow ? ? ??????????? ???? ??????? Properties (??? ???????? ??????? ?????? ?? Solution Explorer ??????????? ?????? ????? ???????). ? ?????? Security (????????????) ??????? ?????? ????????? ???????? ProtectionLevel (??????? ??????). ??? ???? ???-
?? ??????? ????????? ????????: EncryptSensitiveWithUserKey
(??? ???????? ?????????? ?? ?????????) ? ??? ????????? ?????????? (????????, ?????????? ? ??????? ??? ???-
???????? ? ?????????? ??????) ????? ??????????? ?????? ???????????? (??????? ????????? ? ??? ???????). ???? ???? ????? ??????? ?????? ????-
????????, ?? ??? ???????? ?????? ???? ???????? ?????? ?????????????; DontSaveSensitive
? ??? ????????? ?????????? ?????? ?? ????? ?????-
??????. ?????? ???????????? (? ??? ????? ? ?????? ??????) ???????? ??? ????????? ???????? ?????? ??????? ?? ????????; EncryptSensitiveWithPassword
? ??? ????????? ?????????? ????? ????-
???? ??????? (?. ?. ??????????? ?? ????????? Triple DES ? ?????? 192 ????). ???? ?????? ????? ????? ????????? ??? ???????? ?????? ? ??? ??????? ??? ?? ??????????. ???? ?????? ??????????, ?? ??? ??? ???????-
??? ???????? ??????? ??????; EncryptAllWithPassword
? ???? ????? (? ?? ?????? ????????? ??????????) ????? ?????????? ??? ?????? ??????. ??? ?????? ?????? ????? ?????-
????? ????? ???????. ?????? ? ???? ?????? (??? ? ? ??????????) ?????-
?????? ?? ?????? ??? ????????? ? ?????????????? ??????, ?? ? ??? ??? ??-
????? ?? ??????????; EncryptAllWithUserKey
? ???? ????? ????? ?????????? ??? ?????? ????-
????????????? ?????, ??????? ???????? ? ??????? ????????????. ??????? ѕрименение SQL Server Integration Services 39
7
?????? ???????????? ?? ?????? ?? ??????? ????? ?? ???????? ??? ?????-
?????????, ?? ????????? ??? ?? ??????????; ServerStorage
? ??????????? ? ?????? ?????? ?? ?????. ?????? ????? ??? ?????? ????? ?????????????? ???? ???? ?????? msdb
(??? ??? ???? ?????? ????? ? ???? ???????). ???? ??????? ????? ???????????? ?????? ?????, ??-
??? ????? ???????? ? ??????? sysdtspackages90
???? ?????? msdb
. ??????? ?????? ?????? ????? ?????? ?????, ????????, ??? ???????? ? ??-
????? ??????? ?????????? SQL Server Management Studio. ??????? ??? ?????????????? ???????. ??-??????, ?? ?? ?????? ???????? ????? ?????? ??? ??????, ????? ??????????? ?????? ?? ?????????????. ??-
??????, ?? ????????? ??? ?????????? ?????? ?????? ???????????? ????, ??????? ???????? ? ??????? ????????????. ?? ????????? ???????????? ??-
?????? ?? ????? ????????? ????????, ??????? ?????????? ? ???????? Documents and Settings ?? ??? ????????? ??????????. ??? ??? ????????????, ??? ? ??? ???????????? ????? ????????? ?????????? ?????????, ??? ??? ??-
??????? ? ????? ??????? ? ??????? ?????????? ?????? ???????? ??????????. ????? ????, ???? ??????? ???????????? ??????? (????????, ???????????? ??????? ?? ??? ??????? ??????? ???? ???????????????), ? ??? ??????? ???? ??????????? ???????? EncryptAllWithUserKey
, ?? ?????? ???????? ????????? ?????? ? ????. ??????? ????????????? ???????????? ??? ?????? ??????? ??-
?? ?????? (???? ?????? ??????????? ? ???????? ???????), ???? ???? ???? ?????? msdb
. ??? ???? ????? ??????? ??????????? ?????? ??????? SSIS ? ????????????? ????? ???? ?????? msdb
. ??????? ??? ???, ??? ??? ??????????? ????? ???-
???????? ?????? ? ??? ???????, ??????? ???????? ? ???? ?????? msdb
. ?????? ?????? ????? ???????? ? ??????? ??? ?????? ???????????????? ?????? ? ???????, ? ????? ??????? ???????????? ??? ?????? (???? ??????? ??????? ?????? ?????? ServerStorage
). ?????????? ? ???? ?????? msdb
????????????? ??? ??????????? ???? SSIS: db_dtsadmin
? ????? ???? ???? ???????? ???????????????? ????? ?? ??-
???? DTS. ??? ????? ?????????????, ????????, ???????, ????????? ?? ??-
???????? ????? ?????? SSIS ? ???? ?????? msdb
. ????? ???? ???? ??????-
??????? ???????? ???????????? ? ??????? ???? sysadmin
??? SQL Server; db_dtsuser
? ????? ???? ???? ????? ????????? ?????? (?. ?. ?????????-
???? ?? ? ???? ?????? msdb
), ????????, ??????? ? ????????? ?? ?????????? ???? ??????, ?. ?. ?? ??????, ?????????? ??????? ??? ????????. ???? ?? ?????? ?????? ????????????? ??? ?? ????????; db_dtsoperator
? ??? ???? ??? ?????????? SSIS. ???????????? ???? ???? ????? ????????????? ????? ??????, ?????????????? ??, ????????? ?? ?? √лава 10 39
8
???????? ? ??????????? ? ?????????? ?????????? SQL Server Agent. ??-
???? ???????? ?????? ??? ?? ?????. ????? ?????, ????? ???????????? ? ?????? ???????? ?????????? ?????????? ? ????? ?????? SQL Server, ????? ???????????? ??????-???? ???????????? ??? ?????? ????????????? ??????????? ????? ???? (????????, ???????????-
?? ???????????? ????? ????????? ????????? ?????? ???? ????? SSIS). ??? ????? ?????????? ??????? Integration Services ? ???? Object Explorer ? SQL Server Management Studio, ???????? ?????? ??????? ???? ?? ??????? ?????? ? ? ??????????? ???? ??????? Package Roles (???? ??????). ???? ?????? ????? ? ?????? ??????? (???, ????????, ? ??????? ????????? ?? ????-???????), ?? ??? ?? ?????? ????????????? ???????????? ??????? ???-
??????? NTFS ??? ????? ?????. ? SSIS ????????????? ??? ???? ??????????? ?????? ??????? ?? ?????????-
??????????? ????????? ? ?????????? ???????? ???????? ??? ???????. ??-
?? ?????, ?????????? ???????? ????????, ????? ?????????????????? ??-
????? (?, ????? ???????, ?????????? ??????????????? ????? ???????), ?? ?? ????????? ??? ????? ?????? ?????????? ????????? ??? ????????? ?? ?????-
?????. ????????? ???????? ???????? ??????? ???????????? ?? SSIS Designer (???? Tools | Options (?????? | ?????????)), ????? ? ??????????? ???? ??-
???????? ????? ???????? ???? Business Intelligence Designers | Integration Services Designers | General (????????? Business Intelligence | ????????? Integration Services | ?????)). ?????? ???????? ?????????? Check digital signature when loading a package (????????? ???????? ??????? ??? ??????-
?? ??????). ??? ?? ????? ????????? ???????? Show warning if a package is unsigned (?????????? ??????????????, ???? ????? ?? ????????). ????????? ????? ??? ?????? ????????? ??????????? ?????, ?????? ???? ????? ? SSIS Designer ? ?????? ? ???? SSIS ????? Digital signing (???????? ???????). ????? ?????????? ???????? ??????? ????? ??????? ?????????? ?????????? Certificate Services ? ?????????? ??? ? ????????? ????????? ???-
????????? ??? ?????? Internet Explorer. 10.28. «апуск пакетов SSIS на выполнение ????? ????, ??? ????? ??????, ??????? ?? SQL Server ? ??? ???? ????????? ????????? ??????, ???????? ??????? ????????? ? ?????????? ??? ?????? ?? ??????????. ????????? ????? ?? ?????????? ????? ??????????? ?????????. ? ?????? ???????? ?? ??? ???????. ????? ????? ????????? ?? ?????????? ?? ??? ?? ?????, ? ??????? ?? ?????????, ?. ?. ?? SSIS Designer. ???? ??????? ????? ?????? ??? ???????. ????????, ?? ?????? ??? ?????? ???? Debug ?????????? ????? ???????? ?????? ????????? ?????? ? ? ?????? ????? ?????-
ѕрименение SQL Server Integration Services 39
9
???? ???????? ??????????. ????? ?????? ??? ??????? ???????????? ????? ???????????? ?????? (Data Viewer) ?? ??????? Data Flow (??. ????. 10.6.5). ?????? ??? ??????? ??????? ?? ?????????? ?????? ???????????? SSIS De-
signer, ???????, ????????. ???????? ??????????????? ?????? ??????? ??????? ? ?????????? ???????-
???? ??????? dtexecui
??? ?????????? ??????? dtexec
. ??? ???? ????????? ?????? ??? dtexec
????? ?????? ???????????? ??? ?????? ???????????? ??-
???????? dtexecui
. ??????? ????????? ????????? ?????? dtexec
?????????-
?????? ?? ?????, ? ??????????? dtexecui
?????????? ????????, ????????? ?? ??? ??? ????????. ??????? dtexecui
????? ????????? ?????? ?? ????????? ?????? ?????????-
??? ???????, ? ????? ??????????????? ???????? Run package (????????? ?????) ? SQL Server Management Studio. ??????, ??? ?????????? ???????, ? ??????? ?????? ????? ?? ??????? General ???????????? ?????????? ???? ???????. ??? ??? ?????????? ?????, ?????? SSIS ????? ????????? ??? ? ???? ?????? ? ???????? ??????? ???????, ??? ? ???? ??????? ? ??????? sysdtspackages90
???? ?????? msdb
. ??????, ??????? ????????? ? SSIS Pack-
age Store, ????????? ????? ??? ?? ????????? ? ?????? ?? ????? ??? ? ???? ?????? msdb
, ?? ??? ???? ??????? ????????????? ?????????????? ???????-
??? ? ?????? ???????????? Integration Services. ????????? ??????? ???????????? ?????????? dtexecui
? ??? ??????? Configurations (????????????). ?? ???? ??????? ????? ???????? ???????-
????? ??? ?????? (??. ????. 10.25), ??????? ????? ???????? ??? ??? ???????-
???. ?? ???? ????????? ????? ???????????? ??? ??????? ????? ?? ?????? ??????? ?????? ???? ??? ? ????? ???????????? ? ??????? XML. ??? ??-
??????? ???? ???????????? ??? ???????? ??????????? ??? ?? ????? ???????? ??????? ? SSIS Designer. ?? ????????? ???????, ??????? ?????????? Command Files (????????? ?????), ?? ?????? ?????????? ???? ??? ????????? ????????? ?????? ? ?????????. ?? ??????????? ??????, ?????? ??????????? ????? ?????????? ? ?????: ??? ??? ?? ????? ? ?????????, ??? ??????? ?? ????? ???????? ?????-
????? ??? ?????? ? ????????? ???????????? ?? dtexecui
????? ?? ?????? ??-
????? ???????: "????? ????? ??????? ????????? ?????, ??????? ????? ??-
?????????? ?????". ?? ????? ???? ??? ????? ??????: ? ????????? ????? ?????? ?????????? ?????????????? ????????? ??? ??????? dtexec
, ??????? ????? ???????????? ?? ????????, ??? ??????????? ????????? ? ???????????-
???. ???? ?? ??????? ?? ???? ???????, ????????, ???? D:\ssis.cmd, ?? ????????? ?????? ????? ????????? ?????????? /COMMANDFILE "D:\ssis.cmd"
. ?? ??????? Connection Managers ????? ??????????? ??? ????????? ???-
????????, ????????? ? ??????. ???? ?? ?????????? ?????? ???????? ??-
√лава 10 400 ??????? ???????????, ? ??? ???????? ??????????? ??????????????? ?????? ??????????? ??? ????? ?????????. ???????????? ?????? ??????????? ????? ???????????? ?????? ?? ????? ??????? ??????? ??????. ? ???????? ??? ???-
???????? ????????????? ??? ?????????? ??????, ??????? ??????????? ???????????????? ??????, ? ??? ??????? ?? ????? ??????? ???????????? ??-
????????. ?? ??????? Execution Options (????????? ??????????) ????? ????????? ??? ????????? ?????? ??????????: Fail the package on validation warnings (???????? ? ??????? ??? ?????-
?????? ???????????????) ? ???? ??? ???????? ?????? ????? ?????????-
???? ?????-???? ??????????????, ??? ??????? ?????? ?? ????? ???????? ????????? ?????, ? ????? ???????? ?????? ? ???????; Validate package without exe?uting (????????? ????? ??? ??????????) ? ???? ?????????? ???? ??????, ?? ??? ??????? ?? ?????? Execute (?????-
????) ????? ????? ?????? ???????? ?? ??????? ??????. ??????????? ????? ?? ?????; Maximum concurrent executables (???????????? ?????????? ????????-
??? ??????) ? ???? ???????? ??????????, ??????? ??????????? ?????? ????? ?????????? SSIS ????? ???? ???????????? ???????? ?? ????? ??-
???? ????? ?????? (?????? ?????????????? ??????????? ?????? ????? ?????????????, ????????, ???? ??? ????? ????????? ?????? ??????). ?? ????????? ??? ???????? ????? 1, ?. ?. ????? ??????????? ?????? ?? ??-
????????; Enable package checkpoints (???????? ??????????? ????? ??? ??????) ? ??????????? ????? (?????????? ? ??? ???????????? ? ????) ????????? ?????????? ?????????? ?????? ? ???????????? ?????? (???? ???????? ??????). ?????? ????? ?????? (??? ?????????, ????????, Foreach Loop) ????????? ????????? ???????? ??????. ???? ??? ??????????, ????????, ?????? Data Flow Task ???????? ??????, ?? ?????????? ?????? ????? ??????????, ?????? ????? ??? ?????? ?????? ? ?????????? ?????????? ?????? ???????????? ??????. ??????????? ????? ????? ????????? ??? ?? ??????? ?????? (?????? ??????? Checkpoints (?????????? ?????)), ??? ? ?? ??????????? ??????? ???? ??????? dtexecui
(? ???? ?????? ????????? ??????????? ????? ????? ????????????? ?????? ??? ????? ???????). ? ????? ?????? ??? ??????????? ???????, ?????? ?? ?? ???????????? ??????????? ?????, ??? ?????????? ????? ??? ???????? ??????????? ????? ? ????????? ??????????? ??????, ???? ? ????? ??????????? ????? ??????????? ?????????? ? ?????????? ??????? ? ????????. ѕрименение SQL Server Integration Services 401 ?? ??????? Reporting (??????) ??????? dtexecui
?? ?????? ??????? ????? ? ????????? ?????????????? ?????????, ??????? ????? ?????????? ? ???? ?????????? dtexecui
??? ?????? ? ??????????? ??????? dtexec
. ?? ??????? Logging (????????????????) ????? ????????? ???? ????????? ???????????????? ?????? ??????, ???? ?? ????????? ????????????????, ??-
????? ???? ?????????? ??? ?????? ??? ??? ????????, ?? ?????-?? ???????? ??? ?? ??????????. ??? ????????? ????? ???????????? ?????? ??? ???????? ??????? ??????. ??????? Set Values (????????? ????????) ????????????? ??? ????????? ??????? ????????? ?????? ? ???? ??? ?????????? (?????????? ??? ????????-
???? ?????????????). ??? ??????????? ??????? ???? ??? ???????? ? ????? ????????. ???? ??? ???????? ????? ????? ????? ?? ????????????? ?????????-
??????? ????? ???????????? ? ??????? XML (??. ????. 10.25). ??????? Verification (????????) ????????? ?????????? ?????????????? ???-
?????, ???? ??????? ? ?????????? ?????? ?? ???????? ?????? ???????. ?? ???? ??????? ?? ?????? ?????????? ?????????? ???????? ??????? ? ??????-
?? ?????? ? ??????????????? ??????. ?? ????????? ???????, ??????? ?????????? Command Line (????????? ????-
??), ????????? ???? ???? ????????, ??????? ???? ??????????? ?? ???????-
??? ???????? ? ??????????????? ????????? ?????? ??? ??????? dtexec
. ?? ?????? ??????????? ??? ????????? ?????? ??? ?????????? ?? ???????????-
??? ?????????????? ????? ? ???? ????. ???????, ?? ?????? ? ????? ?????-
???? ????? ?? ??????????, ????? ?????? Execute. ????? ????? ? ???????? ?????? ????????? ????????????? ?????? ??????? SSIS ?? ??????????, ????????, ? ?????? ?????. ?????? ??? ????? ???????????? ??? ???????. ?????? ?????? ? ??????????????? ?????????? SQL Server Agent. ?????????? ????? ??????? ??????? (job) SQL Server Agent ? ??????? ? ??? ???? (step) ???? SQL Server Integration Service Package. ?????? ??????-
????? ? ????????????? ????????? ?????? ??? ??????? dtexec
? ?????????-
???? ?? ??? ?????????? ?? ?????????? ???????????? ?????????? ????????-
???? ???????????? ???????. «адание дл¤ самосто¤тельной работы 10.1. —оздание пакетов SSIS дл¤ переноса данных ???????: 1. ???????? ?????????? Microsoft Access ? ???????? ???????? ????? C: ???-
??? ???? ?????? Person
. √лава 10 40
2
2. ???????? ????? SSIS, ??????? ?????? ?????????? ??? ??????? ?? ????? Person
???? ?????? AdventureWorks
?? ????? ??????? SQL Server 2005 ?? ????? ??????? ? ???? ?????? Person
. ???? ????? ?????? ???? ???????? ? ???? C:\CopyPerson.dtsx. ?????????? ??? ??? ?????? ?????? P@ssw0rd
. ?????????, ??? ???? ????? ????????. 3. ???????? ????????? ???? ????? ????? ???????, ????? ??? ??????????? ?????????? ? ??????? Phone
??????? Person.Contact
????????? ??? ????-
??, ??????? ? ??????. ????????, ????? ???? "1 11 500 555-015"
????? ?????????????? ?????? ????????? ??? "111500555015"
. 4. ???????? ?? ????? C: ???? CopyPerson.bat ? ????????? ??????? ?? ?????? ?????? CopyPerson.dtsx. ????????? ???????? ?????????? ?????? ??????-
?????? ? ????????? ???? C:\CopyPerson.log. ??? ??? ??????? ??? ??????? ?? ????? Person.mdb ? ?????????, ??? ????????? ???? ???????? ???? ??-
?????? ? ???????????? ? ????????. ???????: ? ?????? 1 ??????? ? ???????? ?????? ???? ?????? Microsoft Access: 1. ????????? Microsoft Access (???? ???? | ????????? | Microsoft Office | Microsoft Office Access) ? ? ???? ???? ???????? ???????. 2. ? ???? ???????? ????? ???????? ?? ?????? ????? ???? ??????. ? ??-
????????? ???? ???? ????? ???? ?????? ? ???? ??? ????? ??????? C:\Person.mdb
. ????? ????? ???????? Microsoft Access. ? ?????? 2 ??????? ? ???????? ?????? SSIS: 1. ????????? ? ???????? ?????? ??????? DTSWizard
. ????????? ?????? SQL Server Import and Export Wizard. ?? ?????? ?????? ??????? ??????? ????-
?? Next. 2. ?? ?????? Choose a Data Source ? ?????? Data Source (???????? ??????) ???????? SQL Native Client
. ? ???? Server Name (??? ???????) ???????? ?????? ???_??????_???????\SQL2005
? ? ?????? Database (???? ??????) ??-
?????? ???? ?????? AdventureWorks
. ??????? ?????? Next. 3. ?? ?????? Choose a Destination ? ?????? Destination (??????????) ????-
???? Microsoft Access. ????? ? ?????? File name (??? ?????) ??????? ??? ???????? C:\Person.mdb
. ??????? ?????? Advanced, ? ????? ? Test Connection, ????? ?????????, ??? ?????????? ??????????? ???????. ??-
????? ?????? OK, ? ????? ? Next. 4. ?? ?????? Specify Table Copy or Query ???????? ????????????? ? ????-
????? Copy data from one or more tables or views (?????????? ?????? ?? ????? ??? ????? ?????? ??? ?????????????). ѕрименение SQL Server Integration Services 40
3
5. ?? ????????? ?????? Select Source Tables and Views ?????????? ?????? ???????? ???? ?????? ????? Person
(?? ?????? ???? 6). 6. ?? ?????? Save and Execute Package ???????? ?????? Execute Imme-
diately ? ?????????? ?????? Save SSIS Package. ????? ??????????? ????-
????????? ? ????????? File System (???????? ???????) ? ??????? ?????? Next. 7. ? ??????????? ???? Package Protection Level (??????? ?????? ??????) ???????? ??? ?????? Encrypt all data with password (??????????? ??? ?????? ???????) ? ??????? ?????? P@ssw0rd
. 8. ?? ?????? Save SSIS Package ? ???? Name ??????? CopyPerson
, ? ? ???? File Name ? C:\CopyPerson.dtsx
. ??????? ?????? Next, ? ????? ? Finish. ????????? ?? ?????? ????????? ??????????, ??? ??? ???????? ????????? ???????, ? ????? ??????? ?????? Close (???????). 9. ???????? ????????? ???? ???? C:\Person.mdb ? Microsoft Access ? ?????-
????, ??? ?????? ???????????. ? ?????? 3 ??????? ? ?????????? ?????????????? Data Flow Task: 1. ????????? Business Intelligence Development Studio (???? ???? | ???-
?????? | Microsoft SQL Server 2005 | SQL Server Business Intelligence Development Studio). ? ???? File ???????? Open | File ? ? ??????????? ???? ???????? ???? C:\CopyPerson.dtsx. ? ????? ?? ??????????? ?????? ?????? ??????? P@ssw0rd
? ??????? ?????? OK. ???? ????????? ?????-
????????? "Document contains one or more extremely long lines of text"
, ?????????????? ???, ????? ?????? ??. ????? ????? ?????? ? SSIS Designer. 2. ????????? ?? ??????? Data Flow ????????? SSIS Designer ? ??????? ???-
??????????? ??? ??????? Contact
. ??? ????? ?????????, ????????, ???, ??? ???????????? ?? ???. 10.17. 3. ? ???? View ???????? Toolbox, ????? ????????? ???? Toolbox. ????? ?????????? ? ???? SSIS Designer ?? ??????? Data Flow ??????? Script Component
?? ??????? Data Flow Transformations. ? ??????????? ???? Select Script Component Type ??????????? ????????????? ? ????????? Transformation ? ??????? ?????? OK. 4. ???????? ?????? ??????? ???? ?? ??????? ???????, ??????? ???? ?? ???-
??????????? Data Conversion 3
? ? ??????????? ???? ???????? Delete (???????). ????? ???????? ????? ?? ???????? Data Conversion 3
, ????? ??? ????????. ?????????? ??????? ???????, ??????? ??????? ?? ????? ????????, ?? ????????? ???? ??????? Script Component
. ????? ????? ??? ?? ???????? ??????? Script Component
? ?????????? ????????? ?? ???? √лава 10 40
4
??????? ??????? ?? ??????? Destination 2 - Contact
. ? ????? ?????????-
??? ?????? ????????? ???, ??? ???????????? ?? ???. 10.18. ???. 10.17. ?????????????? ??? ??????? Contact
? ???? SSIS Designer ???. 10.18. ????? ??????????? ?????? ????? ?????????? ?????????????? Script Component
5. ???????? ?????? ??????? ???? ?? ?????????? ???? ???????? Script Component
? ? ??????????? ???? ???????? Edit. 6. ?? ??????? Input Columns ?????????? ?????? ???????? ??????? Phone
? ? ?????? ? ?????? ????? ??????? ? ??????? Usage Type (??? ??????????-
???) ??? ????? ??????? ???????? ReadWrite
. 7. ????????? ?? ??????? Script ? ??????? ?????? Design Script. 8. ? ??????????? ???? ????????? ???? ?? ????? ??????????? "Add your code here"
???????: Row.Phone = Replace(Replace(Row.Phone, "-", ""), " ", "") ???????? ???? ????????? ???? ? ??????????? ????????? ????????? ? ??-
????? ?????? OK, ????? ??????? ???????? ?????????????? Script Component. 9. ????????? ?????????? ???? ????? CopyPerson.dtsx ? ???????? ???? SSIS Designer. 10. ??? ???????? ????????????????? ?????????? ???? ?????? ???????? ??? ????????? ???? Person.mdb ? Microsoft Access ? ??????? ? ??? ??? ?????-
??, ? ????? ???????? ???. 11. ???????? ?????? ??????? ???? ?? ??????????? ???? ?????? CopyPerson.dtsx ? ?????????? Windows ? ? ??????????? ???? ???????? ѕрименение SQL Server Integration Services 40
5
???????. ????? ????? ?????? ??? ?????? ????????? Execute Package Utility. 12. ??????? ?????? Execute ? ???? ???? ????????? ? ? ????? ?? ????????-
??? ??????? ?????? P@ssw0rd
. ??????????? ?????????? ? ?????????? ??????. ????? ????????? ?????????? ???????? ?????????? Microsoft Access ???? Person.mdb ? ??????????? ????????? ? ??? ??????? Contact
. ? ??????? Phone
?? ?????? ???? ?? ????????, ?? ???????. ? ?????? 4 ??????? ? ???????? ????????? ????? ? ????????????? ??????-
??? ???????: 1. ??????? ? ???????? ????? C:\CopyPerson.bat ????? ????????? ???: DTEXEC /F "C:\CopyPerson.dtsx" /De P@ssw0rd /Rep V > C:\CopyPerson.Log √Ћј¬ј 11 ћониторинг и оптимизаци¤ производительности SQL Server 2005 11.1. ¬ведение в мониторинг работы и оптимизацию производительности SQL Server 2005 ?????????? ?????? ??????? SQL Server ? ??? ???? ?? ?????????? ??????-
?????? ??????????????. ??????????????-????????????? ?????? ????????? ??????? ???????? ?????? ??????????? ? ???? ???????????? ?? SQL Server, ? ?? ??????????, ???? ? ????????? ????????? ?? ???????? ????????????. ? ???? ????? ????? ??????????? ??????????? ??????????? ?????????? ????-
?????????, ? ????? ?????????? ???????, ???????????? ?? ???????, ? ????-
?????? ?????????????????? ?????? ???????. ?????????????????? ?????? ??????? SQL Server ? ??? ????? ??????? ?????? ??? ??????????? ???????????. ?? ?????? ??? ?????????? ?????? Microsoft ?? SQL Server ?????? ?????? ????? ?? ???????? ??? ?? ?????? ?????????, ????-
??? ?? ??????? ? ??????? ????? ?????? SQL Server ? ??? ???? ??? ?? ????-
??? ??????????????????? ???????. ???? ????? ??????? ??????????? ? ???, ??? ???????????? ?????????? ?? ?????? SQL Server ??????????? ?? ??????? ???????? ????????, ????????? ? ???????????????????. ??? ????????? ? ??-
??? ?????? ???????????. ???????? ? ??????????????????? ???? ? ? ???-
?????? "?????? ??????" ?????????? ??? ??????????? ???????????, ? ? ???-
?????????????? ??????? (??????-????????? ??????? 1?), ? ??????????, ????????? ????????????? ? ????????? ????? ??? "???????", ? ? ?????????? ?? ?????????? ????????????? (????????, Axapta ?? Microsoft). ??? ???????, ???????? ?? ?????????????, ????? ??? ??????? ??????????? ???????? ????-
√лава 11 40
8
????? ??????????????????, ????? ??????. ??????? ???????????? ?????? ????? ?????????? ?????????? ???, ??? ??????????????? ???????? ?? ?? ??????, ?. ?. ???????????????. ???? ???????, ??? ?????? ??????? ??????????? ???-
???? ? ??????? ??????????. ? ???? ????? ????? ??????????? ??????????? ??????????? ?????????????-
????? ??????????, ?????????? ? SQL Server, ? ????????? ?????? ??????-
????? ??????????????????. 11.2. ћониторинг активности пользователей 11.2.1. ѕрименение Activity Monitor ????? ????? ????????? ????????????? ????????, ????? ???????????? ? ???-
??? ?????? ?????????? ? SQL Server, ? ?????? ????????? ??? ???????? ? ????? ???????? ?????????. ????? ??????? ?????? ??? ????? ? ?????????-
?????? ???????? Activity Monitor, ??????? ???????? ? SQL Server Management Studio. ????? ?? ????? ? ?????????? Management (??????????) ? Object Explorer. ? ??????? Activity Monitor ????????????? ??? ???????: ?? ??????? Process Info (?????????? ? ?????????) ?? ?????? ???????-
???? ?????????? ?? ????????????? ? SQL Server ????????????. ??? ??????? ?? ????????? ????? ??????????? ????????? ??????????? ??????? (????? Details (????????) ???????????? ????) ? ????????????? ??????? ??? ??????????? (??????? KILL
). ??????????? ????????? ???????????? ??????????????? ?????????, ??????? ???? ? SQL Server 2000, ?????? ???. ???????? ????????, ??? ?? ????? ???? ????????????? ??????????? ??-
????? ??????. ?????? ??? ????????? ??????????? ?? ????????? ??????. ????? ??????????? ??? ???????????, ????? ?????? ?????? Filter (??????) ? ????? ?????? Apply Filter (????????? ??????) (??? ?????? ???? ?????? ????? ????? ????????? ???? ??????). ??????????????? ????????????? ??????????? ?? ??? ??????? ? ??????-
?????? ??????????????, ????????, ??? ? ????. ???????, ??? ??? ?????? ????????????, ? ??? ?????????? ? ???????? Login Time (????? ????? ?? ??????) ? Last Batch (????????? ??????????? ?????). ??? ???????? ???-
?? ????????????? ?????? ?? ???? ????????. ???? ?????-?? ????????????-
???? ?????????? ????? ??? ????????? ????, ? ????????? ??????? ???? ????????? ?????????? ?????, ??, ?????? ????????, ??? ??? "??????? ???-
????". ????? ???????? ????? ??????????, ????? ?????????? ????????????? ????????? ?????? ???????????. ?????? ?????????????? ? ??????? ????-
ћониторинг и оптимизаци¤ производительности SQL Server 2005 40
9
??? ????????, ????? ?????????? ????????? ??????? (? ????????, ? ????? ?????????? ? ???????? ???? ??????); ?? ??????? Locks by Process (?????????? ?? ?????????) ???????? ??? ??????????, ??????? ????????? ? ???????? ??? ?????? ???????????? ?????????. ? ?????????, ????? ????? ??????????? ?????????? ?????? ??? ?????? ????????, ?????? ??? (?? ??????) ? ??????? ????? ???????. ???????? Locks by Process ?????????? ???????????? ?????, ?????? ????-
?? ??? ????? ??????????? ?????-???? ???????; ?? ??????? Locks by Object (?????????? ?? ????????) ?? ?????? ???-
???????? ??????????, ??????? ????????? ? ??????????? ???????. ?????? ????????? ????????, ????? ?????-?? ???????????? (?????? ???? ?? ?????-
????? ?? ????) ? ???? ?????????? ?????-???? ???????? ? ????? ???????-
??? ??????????? ?????????? ?? ?????? ???? ?????? ? ?? ??????? ?? (??-
??????, ?? ??????? ???? ??????????). ??? ???????, ? ????? ???????? ??-
???????????? ????????? ?????????? ?????? ?????? ?????????????. ?????? ?????????????? ? ????? ?? ???? ??????? ?????? ??????, ??????-
???? ????? ????????, ??????? ??????? ???????????, ? ?? ????? ?????? ?? ??????? Process Info ??????? ????????? ?????? ????????. 11.2.2. ƒругие средства мониторинга активности пользователей ???????????, ??? ?????? ????????? ? SQL Server ? ????? ?????????? ?????-
???? ? ?????? ???????, ????? ? ??????? ?????????. ?????? ?????? ? ????????????? ????????? ???????? ????????. ???????? ?????????? ? ???, ????? ?????????? ? ????????? ????? ??????????? ? SQL Server, ????? ??? ?????? ????????? sp_who
. ??? ???? ????????? ?????-
???????? ??? ???????? ???????. ???? ????????? ?? ??? ??????????, ?? ??? ?????? ?????????? ? ???? ?????????. ???? ???????? ?? ????????????? ???-
????? (
spid
), ????????, exec sp_who 55
, ?? ??? ?????? ?????????? ?????? ?? ????? ????????. ? ???? ???????? ????????? ???? ??????????????????? ??????? ? sp_who2
. ??? ???????? ????????? ??????????? ?? ?????????? ????? ??? ??, ?? ???-
??????? ????? ????????? ??????????. ??????????? ?????????? ? ???????????, ??????? ????????? ? ???????? ???????????? ?????????, ????? ??? ?????? ???????? ????????? sp_lock
. ???? ????????? ?? ??? ??????????, ??? ?????? ?????????? ? ??????????? ??? ???? ?????????. ???? ???????? ?? ????????????? ????????, ?? ????? ??????-
??????? ?????????? ? ??????????? ?????? ??? ????? ????????. ???????? ????????? sp_lock
????? ???????? ????? ????????? ???????????????, ?????-
??? ?? ????????. √лава 11 410 ? ?????? ????????????? ????? ????????????? ??????? ?????????? ??? ??-
???? ??????? Transact-SQL KILL
, ??????? ?? ????????????? ????????, ??-
??????, KILL 51
. ????? ??????????? SQL Server 2005 ? ???????????? ?????????????. ??? ??????????? ?????????, ??? ?????? ???????? ????? ???????? ?????????? ? ??????? ?????? ??????? ??? ???? ??????. ? ??? ????? ?????????? ?? ?????? Transact-SQL, ??? ? ??????? ??????????????. ?????????? ? ???? ?????????????? ??????????? ????????, ??????? ????????? ? ?????? ??????? ??? ???? ??????. ?????????? ? ???????????? ????????????? ????? ??????????? ??? ????-
?? ???????????? ????????????? sys.dm_exec_sessions
? sys.dm_exec_ connections
. ? ????? ??????? ???????????? ?????? ????? ??????????????? ???? ??????????, ?? ????? ???????? ? ???? ????????????? ??????. ????????-
????? sys.dm_exec_sessions
????????????? ?? ?????????????? ?????????? ? ??????? ????????????? (?????????? ???????????? ?? ?? ??????????, ??? ? ? Activity Monitor), ? sys.dm_exec_connections
?????????? ?????????? ? ????-
??? ?????????? ??????????? ????????????? (??? ??????? ??????????, ???-
??? ??????, ?????? ?????? ? ?. ?.). ?????????? ? ???????????, ??????? ????????? ? ???????? ?? SQL Server, ????? ??????????? ??? ?????? ????????????? ????????????? sys.dm_tran_ locks
. ?????????? ? ?????? ????????????, ??????? ???????? ?????? ?????-
?????, ????? ????? ? ??????? request_session_id
????? ?????????????. 11.2.3. –абота с профилировщиком ???? ?? ????? ???????? ??????? ??????????? ?????????? ????????????? ? ??? ????????????? (Profiler). ??? ?????? ????? ???????????? ???????? ????? ??????, ????? ??????? ? ????????? ????? ????????? ?????? SQL Server. ????????????? ? ?????????? ?????????????? ????????? ????? ???-
??. ??? ????????? ??????????? ????????, ????? ??? ???? ???????? ?????? ????? ??????: ?? ?????? ???????????????? ?????? ?????????? ? ??????????, ????? ??????? ??? ????????? ?? ???????. ??? ?????????? ????? ???????????: ????? ??????, ? ?????? ????????? ? ???? ?????? ???????? ??? ?????-
????? ??? ?????????? ???????????? ????????. ????? ????? ?? ????-
??????? ????????? ????????????? ??????? ?????? ?? ?????, ??????? ?? ????????????? ???????????, ? ???????????? ????????????? ??????-
??? ?????????? ? ????????? ???? ?????? ?????; ????? ????????, ????????? ??????????? ? ????? ?????? ?????????-
????????? ??????? ???????? ?? ?????? ??????????. ?? ???????? ??? ћониторинг и оптимизаци¤ производительности SQL Server 2005 411 ????????????? ?????????????? ????? ????? ??????? ?????? ??????-
??????? ???????, ????????, ????? ?????????? ??? ?????????? ?????? ??????????? ?? ???????; ????? ??????, ??? ?????????? ????? ??????? Transact-SQL ?? ?????-
????? ?? ??????? ????????? ??????; ??? ????? ?????????? ? ???????????????? ?????????? ? ??????? ??????-
?????????? ?????????? ??????? (????????, ????? ??????? ??? ???????, ??????? ???????????? ?? ?????? ???????????? ??????????? ? ??????? ???????? ???). ????? ????????? ?????????? ????? ???????????????? ??????? ??? ???????? ????????? Database Tuning Advisor ??? ?????????? ??????????????????? ???????; ??? ?????????? ??????????? ?????? ??????? ? ?????? ????????? ???????. ????????, ???? ?????? ??????? ????? ???????????, ? ???? ????????????-
?? ????? ???????????, ????? ??????? ? ?????? ?????? ?? ??? ???????-
????. ? SQL Server 2005 ? ?????????????? ????????? ????? ??????: ?????????? ??????????? ???????????? Analysis Services. ?????? ?? ??-
???? ????????????? ??????? ? ??????? ?? ?????? ??? ??????? ??? ???-
???, ?? ? ??? ??? ?????? OLAP; ????????? ???????????? ??????? Integration Services. ?????? ?? ?????? ??? ?????? ?????????????? ??????????? ??? ?????????? ????? ????-
??? DTS; ????????? ??????????? ??? ?????? ?????????? ?????????? ??????? ??-
???????? ????? ????????? ????????? ?? ?????????? ????????; ? ????????????? ????????? ????? ????? ??????? ? ?????????? ?????-
?????, ??????? ????? ?????????? ??? ?????? ? ???? ???????????. ????-
??????? ????, ??? ????? ?????????? ? ???? ???????????, ?????? ????? ????????? ? ??????? XML; ? ??????? XML ?????? ????? ????????? ? ?????????? ??????????? (???-
???????? ?????? ? ??????? ANSI, OEM, UNICODE ????? ?????????); ? ??????? XML ????? ????????? ???? ????? ?????????? ?????? Transact-SQL, ????????????? ???????????????. ????? ??? ????? ????? ??????? ? SQL Server Management Studio ??? ??????????? ???????; ????????? ??????????? ???????????? ??????? ????? ? ???? ??????????-
????. ? ??????? ???????????, ????????, ????? ????? ?????? ?????????, ??????? ??? ? ??????? ??? ?? ??????? ??????????? ?? ??? ???? ??????? Transact-SQL. √лава 11 41
2
?????? ? ??????????????? ???????? ????? ??????. ??? ?????????? ????? ????????? ?? ???? ???? | ????????? | Microsoft SQL Server 2005 | Performance Tools | SQL Server Profiler. ??? ???? ????? ?????? ??????, ? ??????????? ???? ?????????????? ? ???? File (????) ????? ??????? New Trace (????? ???????????) ? ???????????? ? ??????? SQL Server 2005, ????-
?? ???????? ?? ?????? ???????????. ??? ?????? "???????????" ???????????-
???? ????? ????? ?????????? ? ?????? SQL Server 2005. ?????? ????? ???, ??? ?????????? ? ????? ??????????, ????? ????????? ????????? ????? ????-
??. ??? ????????? ???????????? ? ???? Trace Properties (???????? ??????-
?????), ??????? ??????????? ????????????? ????? ??????? ?????? ?????????-
?? (???. 11.1). ???. 11.1. ????????? ?????????? ?????? ??????????? ?? ??????? General (?????) ? ?????? Use the template (???????????? ???-
???) ?? ?????? ??????? ???????? ?????????? ?????? ??? ????? ???????-
??? ? ?????? ?????? ??????. ? ????????, ????? ? ?? ???????? ???????? ?? ????????? ???????, ? ??????? ?????????? ????????? ????? ?????????? (??? ?????? ???????? ??????? Events Selection (????? ???????)). ?????? ???????? ??????????? ??????? ??????? ?????????? ????? ? ???????? ???-
???. ??????? ?? ???????? ??????????? ?????????. ?????? ? ??? ??????????? ? ??????????? ????? ? ??????????? tdf ??-
??????? ?????? ???????????. ?????? ? ????????? (?????????? ?????, ????-
ћониторинг и оптимизаци¤ производительности SQL Server 2005 41
3
????? ????????????, ?????? ? ??????? ??????? ? ?????? ????????) ???????-
????? ??? ?????? ???? File | Templates (???? | ???????) ? SQL Server Pro-
filer. ?????????? ? ????? ???????????? ???? ?????? ????????: Standard (default) ? ??? ??????? ?? ????????, ???? ?????? ???????? ??? ??????????? ???????? ? ??????? ?????????? ?? ?????????. ?? ???????-
?? ??????????? ??? ??????????? ?? ?????????? ???????? ????????? ? ??????? Transact-SQL; SP_Counts ? ?????????? ?????????? ? ??????????? ?? ?????????? ???-
????? ?????????? ? ????????. ??? ???? ?????????? ? ???? ???????-
??????? ??????????? (? ???????????? ?????????????? ? ????????????) ?? ?????? ???????? ????????; TSQL ? ?????????? ?????????? ? ???? ???????? Transact-SQL, ?????-
?????? ?? ?????????? ?? ???????. ????? ???? ??????, ???????????? ???-
?? ?????????? ?? ??????????????? ???????????????? ????????? ? ???-
???? ???????. ?????? ???? ?????? ???????????? ??? ??????????? ??????, ???????????? ?? ?????? ???????????; TSQL_Duration ? ????? ?? ?? ?????, ??? ? ?????????? ??????, ?? ???-
??? ?????? ?????????? ? ??????? ??????? ??????? Transact-SQL ??????-
?????? ?????, ??????? ????????????? ?? ?? ??????????. ?????? ???? ???-
??? ???????????? ??? ??????????? ?????????????????? ?????? ??????? "???????"; TSQL_Grouped ? ????? ?????????? ? ???? ??????? Transact-SQL ? ??????? ?? ???????, ???????????? ?????????? ? ????? ??????????, ????-
??? ?????? ???????????? ? ???????????? ??????? ? ?????? ????????????, ??????? ??? ??????????? ??? ???????????. ??? ???? ?????? ????????-
???? ?? ??????. ?????? ???? ?????? ???????????? ? ??? ?????????, ????? ?? ?????? ????????? ?????????? ??????????? ??????????; TSQL_Replay ? ????? ???????????? ??????????? ????????? ???????-
??? ? ??????????? ???????? Transact-SQL. ????? ??? ?????????? ???-
?? ???????????? ??? ????, ????? ? ???????????? ????????? ??????????-
??? ???????? ?? ??????. ?????? ???? ?????? ??????????? ??? ?????? ??-
???? ??????, ??????? ????? ????? ?????????????? ??? ???????????? ?????? ???????? ??????? ? ????? ?????? ??????????????????; TSQL_SPs ? ????? ?????? ?????????? ? ?????? ??????? ???? ???????? ????????? (??????? SP:Starting
), ???? ??????? ??????????? ?????????? ????? ?????????? ? ?????????? ?????? ??????? ?????? ???????? ???-
?????? (??????? SP:StmtStarting
). ????? ?????? ?????? ???????????? ??? ??????????? ?????? ??????? ???????? ????????; √лава 11 41
4
Tuning ? ???? ?????? ???????????? ??? ?????? ??????????, ???????? ?????????? ??? ???????? Database Tuning Advisor. ??? ?????? ? ???? ????????? ??????????????????? ??????? ? ??????????? ???????????????-
??? ????? ?????????? ? ????. 11.5.5. ??? ??? ??????????, ?????? ????????????? ?????????????? ?????? ??????? ??????? ????????. ????? ???????????? ???? ????????? ?????? ???????????, ???????? ?? ?? ??????? Events Selection. ? ??????? ?? ???? ??????? ?? ????-
?? ??????? ????????? ??????? (? ???????) ? ?????????? (? ????????), ??-
????? ????? ??? ??? ????????????. ???????? ????????, ??? ?? ????????? ????? ?????? ????????? ????? ????????? ????? ? ????????. ????? ???????? ??????????? ???? ????? ? ????????, ????? ?????????? ?????? Show All Events (???????? ??? ???????) ? Show All Columns (???????? ??? ???????). ????? ????? ?????? ???, ??? ????? ??????????? ?????? ????????, ????????-
??? ? ???????????? ???? ??????, ??? ???????????? ???????????, ??? ??-
?????????? ?????????????, ??? ??????? ??? ??? ??????? ????????????. ??????? ?? ???? ?????????? ????? ?????????, ????? ?????? Column Fil-
ters (??????? ????????) ?? ??????? Events Selection. ??? ??????? ??????? ????? ????????? ?????? ?????? ???????????? ???????? (
Like
) ??? ?????? ?????? ???????????? ???????? (
Not Like
). ?? ????????? ???????? ??????-
?????? ?????? ? Not Like
??? ??????? ApplicationName
. ?? ?????????? ????-
???????? ??? ??????? ?????????? SQL Server Profiler, ?. ?. ??? ???????, ??-
????????? ? ?????? ???????? ????? ?????????? ???????????. ???? ?????? ????? ?? ???????, ?????? ??? ? ????????? ?????? ????? ?????????? ??????-
??????? ???????? ????? ? ??????????? ??????? ??????????. ??? ?????? ??? ????? ?????? Organize Columns (???????????? ???????), ??????? ??????????? ?? ??????? Events Selection, ????? ????????? ??????? ???????? ??? ??????????? ??? ?????? ? ??????????????. ???????? ?????-
??? ?? ?????? Group (??????) ? ???? ??????. ??? ??? ????????, ??????? ? ???? ????????, ????? ????????????? ????????????? ???????????. ???? ?? ????????? ? ???? ?????? ?????? ???? ???????, ?? ??? ????????? ? ??? ??????-
?? ??????????? ???????????? ????? ??????? ????? Aggregated View (????-
?????????? ?????????????) (????? ?????????? ????????????? ???????????-
??, ????????, ?? ???? ??????, ?? ??????????, ????? ???????????? ? ?. ?., ? ?????? ??? ?????? ???? ??????, ?????????? ??? ???????????? ????? ???-
??????? ? ???????????). ????? ???? ??? ?????? ?????? ?????? ??? ???????? ???? ??????????? ??-
??? ??????? ??? ????????????????, ??? ???????? ????????? ?? ??????? General ? ????????? ????????? ?????????????? ?????????? ?????? ??????-
?????. ?????????? ??????????? ????? ???? ????????????????? ? ????. ???? ???? ????? ???????????? ? ?????? ?????????: ћониторинг и оптимизаци¤ производительности SQL Server 2005 41
5
????? ???????? ? ???????? ????????? ?????????? Database Tuning Advisor; ????? "?????????" ???????? ? ??????????????, ???????? ??? ?????????? ???????, ????????, ??? ?????? ?????????????????? ??? ?????? ???????-
??? ???????; ????? ?????????? ????????????? ? ????????????? ????? ????????? ? ??????????. ??????? ????????? ???????, ??????? ??????? ? ????????????????? ?????? ??????????? ? ????: 5 ?????, ???????? ?????????????? ?????? ????? ?? ?????????, ??? ????? ????. ??? ???????????? ???????? ??????? ???? ?????? ?????????? ?? ??-
????. ??????, ?? ????????? ?????????? ?????? Enable file rollover (???????? ????? ??????), ?. ?. ????? ?????????? ?????? ????? ????????-
????? ????? ?????? ?????? ????, ? ????? ???????? ????????? ????? 1, ??-
??? ? 2 ? ?. ?., ?? ???????? ? ??????? ??????????? ?????? ?? ?????? ??????. ???? ?? ????????? ?????????? ??? ???????? Database Tuning Advisor, ?? ????? ????????? ?????????? ?????? ????? ? 1 ????? (??? ??-
???? ????????? Set maximum file size (????????? ???????????? ?????? ?????) ?? ??????? General). ?????? ??????????? ? ???? ???? ????? ?????-
??????? ? ??????? ??????? ??????????????, ??????? ????? ?? ????? ??-
????????? ?????? ?? ??????? ???????, ? ?? ?? ???????; ???????? Server processes trace data (?????? ???????????? ?????? ????-
???????) ????? ???????????? ??? ?????????? ?????????? ?????? ?????-
????? ???????????. ?? ????????? ?????????? ?????? ??????????? ????-
?????? SQL Server Profiler, ? ?????????? ??? ?? ??? ??????????, ?? ????-
??? ?? ??????? (?? ??????????? ?? ???????). ???? ?????????? ???? ??????, ?? ?????????? ?????????? ??????????? ????? ?????????? ??????. ??? ???????????, ??? ??? ?????????? ??????????? ????? ??????? (??? ?????? ?????? ? ??????? ??????? ???????? ??????? ????? ?????????? ????? ???? ?????????), ?? ???????? ???????? ?? ??????. ?????? ??????? ?????? ?????????? ??????????? ? ?????? ? ??????? SQL Server. ??????? ? ?????? ??????? ???????? ????? ??????? ?????????????. ?? ?????? ???? ????????? ???????????? ?????????? ??????? ? ???? ?????-
??. ???????? ????????, ??? ?? ???? ??????? ???????????? ?????????? ????-
??? ??????????? ? ???????. ????????? ???????? ?? ??????? General ? Enable Trace stop time (????-
???? ????? ????????? ???????????). ?? ?????? ??????? ?????, ????? ??????-
????? ????? ????????? ?????????????. ?????? ????? ????? ????????? ????-
??????? ????? ??????? ?????-?? ????????? ????????, ??????? ? ????? ???-
??? ???????????????? ??? ?? ?????????? (????????? ???????????, ???????? ???????? ??????, ?????????? ????? OLAP ? ?. ?.). √лава 11 41
6
????? ????, ??? ??? ????????? ??????????? ????? ?????????, ????? ?????? ?? ?????? Run (?????????) ?? ??????? General ? ?????????? ? ??????????? (???. 11.2). ???. 11.2. ???????? ?????????? ? ???? ?????? ??????????? ?????? ? ???? ????????? ?????????? ??????????? ?????????? ????????: ? ??????? ????? ???????????? ???????, ??????? ?????????? ?? ???????, ? ? ?????? ????? ??? ??? ?????????? ????????? ?????????? (????????, ??? ??-
???? SQL). ??????? ????????? ???????????, ????????? ? ???? ????: ???? ?? ??????? Organize Columns ? ????????? ??????? ?? ??????? ??????? ??? ???????????, ?? ????? ????????????? ?? ???? ???????? ?????? ? ???? ?????????. ??? ???? ???? ? ???? View (???) ????????????? ??????? Grouped View (??????????????? ?????????????); ???? ?? ??? ?? ??????? ? ????????? ??????? ? ?????? Group ??? ??????? ?????? ???? ???????, ?? ????? ???????????? ??? ????? ??????? ????? ??????????? Aggregated View (???. 11.3). ???? ????? ?????????? ??? ?????? ??????? Aggregated View ?? ???? ?? ???? View ? ????????? ?????????? ???????? ?? ?????????? ???? ??????? ? ???? ??????, ??????? ћониторинг и оптимизаци¤ производительности SQL Server 2005 41
7
????? ??????????? ? ?????????????. ????? ????, ??? ??????? ?? ???? ??-
??? ????????????? ?????????????? ?????????? ???????. ???. 11.3. ????? ??????????? Aggregated View ? ?????????????? ????? ?????????? ?? ?????? ?? ???????, ??????? ???? ??????? ?????? ???, ?? ????? ??????????? ????? ? ??????? ?????????-
??. ????? ????, ?? ?????? ????????? ??????? ??????? SQL Server ? ????????? Transact-SQL. ?????????? ?? ???? ?????? ??? ?????? ????? ???? ???????????? ??? ????, ????? ????????? ??????????????????? ???-
?????. ??? ???? ???? ????????????? ??????? ???? Replay (?????????); ? ?????????????? SQL Server 2005 ????????? ????? ??????????? ? ???-
??????? ?????????? ??????????? ? ???????????? ????????? ?????????-
????????? ?????????? ????????. ??? ???? ????? ??????????????? ???? ????????????, ?????: ?????????? ????? ???????????, ? ???? ???????? ??????????? ?????? ??-
?????????? ?????????? ??? ???????? StartTime
? EndTime
; ????????? ????? ??????????? ? ??????? ?????????? ? ???? ??? ?????-
??. ???????????? ? ??? ??????? ? ???? ???????? ????????? ????????? Performance Monitor; ??????? ????????? ?????????? ?? ????? ??????????? ? ??????????-
????, ? ????? ??????????????? ???????? Import Performance Data (????????????? ?????? ??????????????????) ?? ???? File. ? SQL Server 2005 ???????????? ?????????? ??? ??????????????. ??? ???-
????? ????????? ???????????. ?? ?????????????? ??????????? ????????-
??? ????????? ???????????? ??????????????. ????????, ?? ?????? ????? ??????? ??????? ??? ??????????? ? ???????? ?? ? ????????? ????. ??????? ??????? ??????????? ? ???, ??? ??? ????????? ???????? ??????????? ?? ???? Transact-SQL. √лава 11 41
8
???????? ? ????????? ??????????? ??????????? ??????? ? ????? ??????, ??? ? ???????????????, ? ?????????????? ???????????? ??? ?? ?????????-
????. ??????? ???????? ????????????? ?? ?? ?????. ???????? ?????? ???-
??? ????? ???????? ???????? ? ??????? ???????????????: sp_trace_create
? ????????? ????????? ????????? ?????? ???????????; sp_trace_setevent
? ????????? ??????? ??? ?????????? ?????? ?????????-
?? ????????? ???????; sp_trace_setfilter
? ????????? ????????? ?????? ??? ????? ?????????? ???????????; sp_trace_setstatus
? ????????? ????????? ???????????, ?????????? ?? ??? ??????? ????????? ???????? ?????????? sp_trace_create
??????? ??????-
????? ??????; sp_trace_generateevent
? ????????? ????????????? ???????????????? ??-
?????, ??????? ????? ??????????? ? ???? ???????????. «адание дл¤ самосто¤тельной работы 11.1. —бор информации о запросах, выполн¤емых приложением ????????: ?? ????? ??????????? ? ??????? ???? ?????? ????????? ?????????? ?????? SSIS, ??????? ???????? ?????????? ? ?????? ???? ??????. ?????? SSIS ???????? ?????????? ??????????????, ? ??????? ? ?? ???? ? ??? ???. ???-
????? ?????? ???? ??????? ?? ?????????? ????? ???????????. ??? ????? ??-
??????, ????? ???????? ????????? ??? ?????? ?? ???????. ???????: ???????? ? ???? ??????????? ?????????? ?? ?????????, ??????? ????????? ? ???? ?????? AdventureWorks
????????? ???? ? ??????????????? ?????? 10.1 ????? CopyPerson.dtsx. ?????????? ?????? ???? ??????? ??? ?????? ???-
???? Tuning. ???????: 1. ????????? ????????????? (???? ???? | ????????? | Microsoft SQL Server 2005 | Performance Tools | SQL Server Profiler). 2. ? ???? File ???????? New Trace ? ???????????? ? ??????? ???_??????_ ???????\SQL2005
. ????????? ???? Trace Properties. ћониторинг и оптимизаци¤ производительности SQL Server 2005 41
9
3. ? ???? ???? ? ???? Trace name (??? ???????????) ??????? AdventureWorksTrace
, ? ?????? Use the template ???????? ?????? Tuning. ?????????? ?????? Save to file (????????? ? ????) ? ??????? ??? ????? C:\AdventureWorksTrace.trc. ? ???? Set maximum file size (?????????? ???????????? ?????? ?????) ?????????? ???????? 500 ????? ? ??????? ?????? Enable file rollover. ????? ??????? ?? ?????? Run. 4. ??????? ?????????? Microsoft Access ??? ??????? ?? ????? Person.mdb ? ????????? ?? ?????????? ????????? ???? ? ??????????????? ?????? 10.1 ????? CopyPerson.dtsx (??? ????? ????? ???????????? ???????? ???? CopyPerson.bat). ??????????? ?????????? ? ??????????? ???????? ? ???? ??????????????. ????? ????????? ??????????? ?????????????? ???????? Stop Trace (?????????? ???????????) ? ???? File. 11.2.4. ѕрименение триггеров DDL ??? ????????, ??????? ???? ??????????? ?????, ? Activity Monitor, ??????-
??? ???????? ?????????, ????????????? ? ?????????????, ??? ????????-
????? ?????? ?????? ????? ????????? ? ????????????? ??????????, ????-
??? ??? ??????????. ?????? ????? ????? ? ?????????????? ???? ?????? ????, ???????? ?? ?????? ??????????, ? ?????????? ???????????? ?????????? ?????? ??????? ?? ?? ?????. ? ???? ???????? ???? ?? ????? ??????? ???-
??????? ????????, ??????? ????????? ?? ?????????????? ? ?????????? ?? ??????? ???????????? ????????. ?????? ????????, ??????? ????? ?????????????? ??? ???????????? ??????-
????? ??????? ? ??????????? ??????????????, ? ???????? DDL. ??? ????? ??????????? ??????? SQL Server 2005. ? ?????????? ??????? SQL Server ????????? DDL ?? ????. DDL ???????????????? ??? Data Definition Language (???? ??????????? ??????). ?????????? ??? ???????? ?????? Transact-SQL, ???????????? ??? ????????, ????????? ? ???????? ???????? ? ???? ??????. ??????????????, ??? ?????? ????????? DDL ????? ??????????? ?????????? ????????? ???-
?????, ??????? ???????????? ? ????????? ???? ??????, ????????, ???????? ???????, ???????? ?????? ???????, ????????? ??????????? ???????? ???- ?????? ? ?. ?. ???????? DDL ?????? ???????????? ??? ??????????? ?????-
??? ????????????? ? ??? ??????????? ?????????????? ? ?????? ????????, ????????? ? ??????????? ?????? DDL. ????? ????????? DDL, ??? ??????????? ????? ???????????? ? ??????? ????????. ??? ??????????? ??? ????????? ?????? ? ??????? (??????? ????? ??????, ????????? ??? ???????? ????????????). ???? ? ??? ???? ?????-?? ??????? ?????? ????????, ? ????????????? ?????? ?????????? ??????????-
?? ? ???? ???????? ? ??? ??????????, ?? ?? ?????? ?????? ????????? ??????-
√лава 11 420 ?? ?? ??? ??????? ? ????????? ? ???, ????????, ??????? ?? ???????? ????-
????? ?? ??????????? ????? ?????????? Database Mail. ?????? ?????????? ??????? ????????? ????????? ?????? ? ???????? ?????????? ??? ??????, ??? ? ?????????????????, ? ??????? ????? ?? ???????????????. ???????? DDL ????????? ??? ???????????? ??????? Transact-SQL. ??? ???? ????? ??????, ??? ??????? ????? ?????????? ???????? DDL, ????? ????-
???. ??? ???? ????????? ?? ???? ??????: CREATE DATABASE
, ALTER DATABASE
, DROP DATABASE
; CREATE LOGIN
, ALTER LOGIN
, DROP LOGIN
; CREATE USER
, ALTER USER
, DROP USER
; CREATE TABLE
, ALTER TABLE
, DROP TABLE
; CREATE VIEW
, ALTER VIEW
, DROP VIEW
; CREATE PROCEDURE
, ALTER PROCEDURE
, DROP PROCEDURE
? ?. ?. ???????? ????????, ??? ????? ?? ?????????? ?????????? ??????? ??? ?????-
??? ????????, ????? ??????? ??????? ?????? ????????? ???? ?????????????, ????????, DROP_TABLE
. ? ????? ??????? ???????? ??????? DDL ????? ????????? ???: CREATE TRIGGER DDLTrigger1 ON DATABASE FOR DROP_TABLE AS PRINT '??????? ???? ???????'; ???? ????????? ??? ??????? ? ??????? ???? ??????, ?? ??? ????? ???????? ??????? ? ???? ???? ????? ?????? ????????? '??????? ???? ???????'
. ???????, ? ???????? ?????? ?? ?????? ???????????? ????? ?????????????? ????????, ????????, ????????, ???????????? ??????????? ?? ??????????? ????? ??? ?????? ???????? ???????? Database Mail. ?? ?????? ??????? ??? ??????????? ???????? ? ???????? ????? ????????? ?????????? ? ???? ???????????? ??????? (????????, ????? ????????? ??? ?????????? ?? ??????????? ?????). ??? ????? ??????? ????? ???????????? ??????????? ??????? EVENTDATA()
. ????????, ????? ???????? ?????????? ? ?????????? ??????? (? ?????? ???????), ??????? ???????? ?? ????????, ????? ???????????? ??? ????: CREATE TRIGGER DDLTrigger1 ON DATABASE FOR DROP_TABLE AS SELECT EVENTDATA().value( '(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)'); ???????? ????????? ?????? ??????????, ??????? ?? ???????, ??????? ? ????-
???? ????? ???????? ??????? ?? ????? ??????????. ????????, ??? ?????? ?????? ???????? ????? ?????? ????????? ??????? ??????? ? ?????? ???? ???-
???: ћониторинг и оптимизаци¤ производительности SQL Server 2005 421 CREATE TRIGGER DDLTrigger1 ON DATABASE FOR DROP_TABLE AS PRINT '??????? ??????? ? ???? ???? ?????? ?????????!'; ROLLBACK; ???? ??????? DDL ????? ?? ????? ?????????, ????? ??????????????? ???????? DISABLE TRIGGER
, ????????: DISABLE TRIGGER DDLTrigger1 ON DATABASE; ???????? ???????? DDL ???????????? ??????? ????????: DROP TRIGGER DDLTrigger1 ON DATABASE; 11.2.5. ƒругие средства мониторинга активности пользователей и уведомлени¤ о событи¤х ? SQL Server 2005 ????????????? ? ?????? ??????????? ??????????? ????-
?????????? ? ????????, ???????????? ?? ???????. ?????? ??????????? ? ????????????? ?????????????? SQL Server Agent. ??? ????? ??????? ? ?????????, ??????? ? ???????? ???????? (??. ????. 8.1.7). ? ???????? ?????????????? ????????????? ??? ?????????? ?????????????? ? ????????? ????????? ???????, ?? ?? ????? ???????????? ? ??? ?????????-
?? ???????? ????????????. ??? ????? ?????? ??????????? ???????????????? ??????, ??????? ???????????? ??? ?????? ????????? RAISEERROR
. ??? ???? ???????? ????? ????????? ? ???????? DDL ??? ??????? ????????. ?????? ??????????? ? ????????????? ????????? ??????????? ??????? WMI, ??????? ?????????? ? ?????????? WMI Provider for Server Events (??. ????. 9.4.8). ????????????? ????? ??????? ???????? ??, ??? ?? ?? ????-
???? ?? ?????? ??????? ??? ???????? ???????????. ??? ?????????? ??????-
???????? ????? ????????????, ????????, ???????? ????????? ?????? CDO, ??????????????? ??? ?????? ? ??????????? ??????. ???????, ??? ???? ???????????, ??????? ????????? ?????? ? SQL Server 2005, ? ?????????? ??????????? ? ???????? (event notifications). ??-
??? ????????? ??????????? ? ???????? ?????????? ?? ???????????? ????-
?????????? ???????? (? ??? ????????? ?????????? ?????? DDL ? ??????? ???????????) ?????????? ? ??????? ???????????? ?????? Service Broker ? ??-
?? ?????? XML. ???? ???????, ??? ?????????? ??????????? ? ???????? ????????????? ?? ?? ???????, ??? ? ?????????? DDL, ? ????????? WMI Provider for Server Events. ? ????????????? ??????????? ?? ????????? ? ?????????? DDL ????? ??-
????? ??????????? ????? ??????: ????????? ???????????? ? ??????? Service Broker, ?? ????? ?????????? ??????? ??????. ?????? ??????????? ? ????-
√лава 11 42
2
???? ? ??? ???????? ?????? ??? ?????????????, ??? ??? ???????????????. ??? ?????? ? ????, ????? ???????? ????? ???????????, ?????????? ????? ????????? ??????????? ???, ??????? ????? ????????? ??? ????????? ?? ???-
???? Service Broker ? ????????? ??? XML ???? ?????????. ??????? ?????? ? ????????????? ? ???????? ? ???? ????? ??????????????? ?? ?????. 11.3. ∆урналы SQL Server 2005 ? ?????????? ??????? ???? ??????????? ???????? ??????????? ???????? ????????????? (? ??????????) ?? SQL Server. ?????? ????? ??????????? ???????? ?????????????, ??????????????? ?????????? ??????????? ? ????-
???, ????????? ? ??????? ??????? SQL Server 2005. ??????? ???? ??? ???? ? ??? ????? ??????? ???????????? ????????, ??????????? ?? ???????, ? ???-
??????? ??????????? ?? ???. ????? ??????? ???????? ??????????? ?????? SQL Server 2005 ? ??????? ???????. ?????????, ??? ??????? ???? ?????????????? ?? ??????????? ???-
??? ?????????? ? ????????? ???????? ??????? ?? ???? ????????. ??? SQL Server 2005 ??? ???????? ????????? ? ?????? ???????: ?????? ??????? ????-
?? SQL Server 2005, ?????? ??????? SQL Server Agent, ?????? ??????? ???-
????????? ??????? Windows ? ?????? ??????? ?????????? Windows. ??????? ????? ????????????? ??????? ?????????. ????? ??????? ? ????-
??????????? ? ???????????? ???????????, ??????? ??????? ? SQL Server Management Studio. ????????? ??? ????? ?? ?????????? Management | SQL Server Logs (?????????? | ??????? SQL Server). ? ?????? ???????? ????? ???????? ?????? ??????? ???? ?? ?????????? ??????? ? ? ??????????? ???? ??????? View SQL Server Log (??????????? ?????? SQL Server). ??-
??????? ???? ???????????? ???????? (???. 11.4). ???????? ????????, ??? ??? ?????? ???????????? ????????: ????? ????????????? ?? ?????? ??????? SQL Server, ?? ? ??????? SQL Server Agent, Windows ? Database Mail; ????? ?????????????? ?????? ?? ???????? ??? ?????? ?????? Export (??????????????), ? ??? ????? ? ? ????? ??????? ??? ???????? ? ???? ???-
??? ?????? CSV; ????? ??????????? ?????????? ? ??????????? ????? ?????? ???????-
???. ??????? ??????? SQL Server ????? ????????????? ? "???????", ??? ????-
?? ?????? ?????????? ?????????. ?? ????????? ??? ????????? ? ???????? C:\Program Files\Microsoft SQL Server\MSSQL\LOG. ??? ?? ????????? ? ???-
???? SQL Server Agent. ћониторинг и оптимизаци¤ производительности SQL Server 2005 42
3
???. 11.4. ???? ???????????? ???????? SQL Server Management Studio ???? ??? ????? ????? ????????? ???????? ???????, ???????????? ?? ???-
????, ????? ??????????????? ?????????? C2 Audit Tracing. ??? ????? ????-
?????? ?? ??????? Security (????????????) ??????? ??????? ? Management Studio. ? ???? ?????? ? ???????? Data (??????) ??? ??????? ?????????? ???-
???? ????? ????????????? ??????????? ????????? ????? ? ????? ????????? ???????????, ??????? ????? ????????????? ??? ?????? ? ???????????? ?? ?????????? ???????????? C2. 11.4. ћониторинг производительности SQL Server 2005 11.4.1. ќсновы мониторинга производительности ????? ?????????? ?? ?????????, ????????????? ?? ???????, ? ??????????? ????????? ????????, ? ??????????????? SQL Server 2005 ???? ??? ???? ???-
??? ??????????? ? ?????????? ?????????????????? ?????? ???????. ??????? ???? ??????????? ?????????????????? ? ?????????? ?????????? ?????? ????????????? ? ???????????, ??????? ?????????? SQL Server 2005. √лава 11 42
4
??? ???? ????? ?? ?????? ????????? ??????? ??????????????????, ?? ? ?????????????? ???????? ????????? ? ???????. ??????? ????????????? ?? ???? ????????, ????? ???????????? ? ???? ????? ??????? ???????????, ??? ???????? ? ??????? ????? ??????????, ? ?????? ???????? ? ?????????????- ?????? ??? ?? ????, ??? ??? ?????? ?????? ?????? ?????????????. ???????, ?? ??????????? ???????????, ???????? ?????????, ????? ?? ????-
?????? ???????????? ?????????????????? ? ?? ??????????? ?????????, ??-
??????????? ?????????? "??????/?? ??????". ?????? ?? ??????? ???????-
????? ??? ?????? ????? ????? ?????????? ???????????? ???????????. ?? ? ?? ????? ??????????? ??? ?????? ?????? ? ???????????? ????? ???????? ??-
????: ? ??? ????? ????? ????????? ???, ????? ? ???? ?????? ????????? ??????? ???????? ??????????? ?????? ??????? ????? ????????? ???????????? ???-
???? ???????? ????????, ????????? ? ???????????????????, ??? ?????? ??-
????, ??? ???????? ??????? ???-?? ????? 3?4 ???? ????? ????? ?????? ? ???-
?????????. ?????????? ??????? ?????????? ???? ? ??????, ??????? ????????? ???????? ??????????? ??????????? ?????????????????? SQL Server. ? ???????? ??-
??????? ????? ??? ?????? ?????????? ????? ???????????? ????????????? Web-???? www.sql-server-performance.com. ??? ????????????? Web-????, ?? ??????? ????????????????? ? ????????????? ??????, ????? ?? ???? ? ??????? ?? ????? ?????? ??????????. ???? ????? ??????????? ??????? ???? Microsoft, ??????? ???????? ?????-
???????? ???????? ?????????????????? SQL Server. ??????, ?? ??? ?????? ??? ??? SQL Server 7.0 (? ? ????????? ????? ??? ?????? ? ??????? ??????? ??????????), ?? ??????????? ??? ? ???? ????? ?? ???????? ???????????? ? ??? SQL Server 2005. ??? ??????????? ? ??????????? ?????????????????? ?????????? ???? ???-
?????????. ? ???? ????????????? (? ????? ?????? ??????????? ?????????-
?????????) ?? ????????????? ? ????????? ???????. 11.4.2. “ерминологи¤ и общие принципы мониторинга производительности ??? ???????, ?????????? ?????????????????? ?????????? ? ??????????? performance baseline. ??????????? ??????? ????? ??????? ?? ??????? ???? ?? Microsoft ? ????????? ?????? ??????????????????, ?? ?? ?????? ??????-
?? ??????, ??? ??? ?????, ??????. ?????????, ????????? ?????? ?????????????????? ? ??? ????? ????? ???-
??? ??????????? ??????????????????, ??????? ??? ?????? ??? ?????? ????-
?? ? ????????????, ????? ???????? ?? ?????? ? ?????? ???? ?????? ??? ??-
ћониторинг и оптимизаци¤ производительности SQL Server 2005 42
5
????????. ????? ?????????? ?????? ????????? ?????? ??? ??????????? ???????. ????? ????, ??? ?????????? ?????????? ??????? ?????????????????? ???????, ?????? ?????????????? ? ?? ?????????? ?????? ???????? ?????????? ??????-
??? ??????????????????. ????? ?????? ?????? ?????????? ??????????? ?????????????????? ??? ??????? ???????? (workload performance measurements). ?????? ??? ???????????? ??? ? ????????? ???????, ???? ??? ????? ?????? ????? ??? ??????????? ? ????. ????????? ?????????? ? ??-
????????? ???????????? ? ????????? ????? ? ? ????????? ????????. ??????? ?????? ????? ? ?????????? ????????? ? ???????? ?????????????????? ? ??-
????, ????? ? ??? ????? ?????????? ???????? ? ?????? ?????????????. ????? ????? ?????????? ????? ??????, ???? ????????? ????????? ?????? ?? ?????? ??????? ? Excel. ???? ? ???? ??????? ??????????, ??? ? ?????? ??????? ????? ?????????? ???????? ? ???????????????????, ?? ??????? ??????????? ?????????????? ? ?????? ?? ???????????????, ?? ????????, ????? ??? ????? ??????? ??? ??-
???????? ?????????????? ????? ????????????. ?????? ????????????? ????-
?????? ????? ????? (bottlenecks), ?. ?. ?? ???????, ?????????? ??????? ?????-
??? ?????? ???? ???????. ??? ????? ???? ?????????? ????????? ??????? (????????, ??????????? ?????? ??? ???????? ??????????), ??????? ???????? ? ???? ?????? SQL Server ? ?. ?. ????? ????????? ????? ???? ????????????? ?????? ??????? ???? ? ?? ??????????. ? ??? ??? ???????, ??????? ????? ???????????? ? ?????????? ?? ?????????-
????????? SQL Server 2005. ?????? ?????? ? ????? ??????? ??????? ?? ??????? ????????????? (response time). ???? ?????????? ????????? ????????????. ??????? ?????? ??-
???????????? ??? ??????????? ?????????????????? ? ??????? ???????? ???-
?? ?????????? ?????????? ??? ?????????????, ?. ?. ???????? ????, ????? ????????????? ???? ????????? ???????? ?? ????? ???????. ???????? ?????-
????? ????????????? ??????? ?? ?????????? ??????. ????????, ? ????? ???-
??? ???????????? ????? ???????????, ????? ?????????? ? ????????? ????? ???? ?? ??????????? ?? ????? ??????????? ????????? ? ???, ? ?????? ?????? ??? ??????, ????? ???????????? ?????? ???????????? ?? ????? ?????? ? ?. ?. ?????? ?????? ? ?????????? ??????????? (throughput). ??? ??????????? ?????????? ?????? ???????, ????????, ??????? ?????????? ? ??????? ?? ??-
??? ??????????. ?????? ???? ?????????? ???????????? ??? ????????? ???-
?????? ?????????? ???????????? ??????? ??? ??? ?????? ????????? ??-
???????. √лава 11 42
6
????? ????, ??? ?? ???????????? ? ???????? ?????????????, ?????????? ????????, ??????? ????? ???????????? ??? ??????????? ? ??????????? ???-
??????????????? SQL Server. 11.4.3. —редства дл¤ мониторинга и анализа производительности ?? ?????????????????? ??????????, ??????????? ? SQL Server, ?????? ??-
??? ?????? ???????. ??? ??????? ??????? ?? ????? ???????? ??? ???????-
???? ???? ????????. ???????? ????????????? ???????? ??????????? ? ??????? ???????????????-
??? ? ??? ????????? ??????? (System Monitor). ? Windows NT 4.0 ?? ????-
????? ????????? ?????????????????? (Performance Monitor). ??? ???????? ????????????? ??? ?????? ?? ?????????? ?????????????????? ??? ??? ?????-
??????? ???????, ??? ? ??? SQL Server. ??? ?????? ? ????????? ????????? ???????? ?????????????? ? ????????? ????????. ????? ??????? ?????? ????-
????? ???????: ? Windows Server 2003 ????????? ?????? ?????????? ????????, ??????? ????????????? ??? ?????? ?? ????????? ??????. ??? ??????? logman
. ??? ????????? ????????? ???????????????? ????????? ????????? ? ????? ?? ????? ??? ????????? ?????? ODBC ????? ??? ??, ??? ? ??????????? ???-
??? ?????????? ????????. ???? ??? ????????? ?????????? ????????? ??-
???? ??????????????????, ??????? ?????????? ?????? ? ???? ?? ?????? ?????????, ?? ????? ??????? ???????? ???????? ???? ? ????????? ??????? ?? ?????? ???? ??????? ? ???????????? ???????????; ??????? ????????? ?????? relog
, ??????? ????? ????????? ?????? ? Win-
dows Server 2003, ????????? ??????????? ??????????? ?????? ? ??????-
???? ??????????? ????????? ?? ?????? ??????? ?????????? ???????? ? ?????? (????????, ?? ????????? ??????? BLG ? ????????? CSV); ??? ???? ????? ??????? Windows Server 2003, ??????? ?????????? typeperf
, ????????????? ??????????? ??? ????????? ????????? ????????? ?????????? ???????? ? ????????? ??????; ?????????? ??????? ??????? ????, ??????? ????????? ???????? ?? ????-
?????? ?????????? ????????, ???????? HostMonitor ? AppManager. ??? ??????? ????????????? ????? ??????? ??????????? ????????? ??? ???-
?????? ? ??????? ?????? ?? ??????????????????. ??, ? ????? ?????? ????-
??, ?? ?????????????? ???????????, ??????? ???? ??? ???????, ?? ????-
?????????. ?????? ??? ?????????? ????? ??????? ??????????? ???-
?????? ??? ?? ????????? ?????????? ????????. ?????? ?? ?????? ?????? ????????? ??????, ????????? ????????? ?????????, ? Excel ? ????????-
ћониторинг и оптимизаци¤ производительности SQL Server 2005 42
7
???? ??? ????????? ? ??????? ?????? ???????? ????? ?????????? Micro-
soft Office. ??? ??????????? ?????????????????? ?????? ????? ????? ??????????????? ?? ???????????? ???????? ???????. ?????? ???????? ? ??????????????????? ????????? ?????? ? ????? ??????? ????, ????? ? ???????? ???????? ?????-
??????? ?????????? ?????????????. ?????? ????? ????????? ????????, ????? ?????????????? ?????????? ????????? ?????????????????? ?????????? ? ????????? ??????? ? ???????????????? ??? ???????????? ?? ????, ??? ??? ?????????? ?? ???????????. ?????? ????????? ???????? ? ????? ??????? ??????? ? ??????? ?????? ???????, ?? ?? ?????? ???????, ????????? ?????? ???????????? ??????????? ?????????? ??? ???????????? ????????. ? ????? ????????? ????? ???? ????? ???????? ????????????? ???????? ??-
?????? ?? ??????? ????????????? ? ??? ?????????? ??????????? ?????????-
??? (stress testing). ???????? ??? ?????????? ???????????? ???????????? ??-
??? ??????????????? ? ????. 11.4.4. ??? ???? ?????? ???????? ??? ??????? ?????????????????? ?????? ?????-
????? ? ????????????? (SQL Server Profiler). ?????? ? ??? ???? ??????? ? ????. 11.2.3. ??? ???????? ????????? ????? ? ????????????????? ???????, ??????? ?????????? ?? ?????? ???????????, ? ????? ????? ???????, ?? ??-
???????? ??????? ????????? ????? ???????. ???? ?? ????????????, ??? ?????? ?????? ?????????? ???????? ???????? ? ?????, ?? ??? ??????? ????? ??????? ??? ??????????? ??????? ??????? (??. ????. 11.4.10). ??? ??????? ? ??????????? ??????? ???????? ??????? ????? ???????????? ??????????? ???????? Database Tuning Advisor (Index Tuning Wizard ? SQL Server 2000). ??? ?????? ? ??? ?????? ?????????????? ? ????. 11.5.5. ??? ??????????? ???????? ? SQL Server ????? ?????? ???????????? ???????? SQL Server Management Studio (??. ????. 11.5.8). 11.4.4. Ќагрузочное тестирование ????? ????? ????? ??????????????? ?????? ????????????? ?????????????? ?????? ??????? ??? ???????? ?????????. ????????, ?? ??????????? ??????-
???????? ????? ??????????, ? ?? ???????, ????????? ?????? ???????????? ??? ??????????. ? ??? ???????? ?? ??????????, ??? ??????? ???? ??????, ??-
?? ? ??? ????? ???????? ????????????, ????????, 100 ?????????????, ?? ??-
???????, ??? ????? ???????????? ????? ????????. ? ????? ???????? ?? ?????? ????? ?????? ???????? ???????????? ?????????-
??? (stress testing utility). ????? ??????? ?????????? ????????????? ??? ????, ????? ??????????? ?????? ??????? ?????? ?????????????. √лава 11 42
8
Microsoft ??????????? ??? ???????????? ???????????? SQL Server ????????-
???? ???? ?? ???????. ??????? ????? ????? ?????? ?????????? Microsoft SQL Server Support Escalation Services Support Utilities. ??? ????? ????????? ???-
???? ? ????? Microsoft. ?????? ???????? ????? ?????? ? RML (?? Replay Markup Language ? XML-??????????? ????, ??????? ???????????? ? ???? ????????). ??? ???????? ???????????? ????, ?. ?. ??????? ??????????? ? ???-
?? Microsoft ? ???? ????? rml.exe ? ??????????????? ? ??????? rml. ? ?????? RML ???? ??? ??????? ???????: Ostress
, Read80Trace
? ORCA
. Ostress
? ??????? ???????? ??? ?????????? ???????????? ????????????. ??? ?????????? ??????? ? ??????? ??????????? ?????????? ????????? ??????. ????????, ???? ?? ?????? ????????? ?? ?????????? ?? ????????? ??????? ???? C:\MyApp.sql ? ????????? SQL ?? ????? ???????????? 50 ??????-
???????, ??????????????? ??????? ????? ????????? ???: ostress -E -dNorthwind -i"C:\MyApp.sql" -n50 ???????? -E
????????, ??? ?? ????????????? ??? ?????? ?????? Windows, ??? ?????? ????????? -d
?????????? ??? ???? ??????, ???????? -i
??????-
???? ??? ????? ? ????????? SQL (??? ????? ??????? ?????????????, ?????-
???, ?????????? ??????????????), ???????? -n
??????????, ??????? ??????? (?. ?. ??????????? ?????????????) ?????????? ????????????. ?????? ?????-
??????: ??????? ????????????? ? ???????? ??????????! ??????? Ostress
????? ???????? ? ???? ???????: ??????????? ?????? (stress mode, ???? ????? ???????????? ?? ?????????) ? ? ?????? ?????????? ??-
???????? (replay mode). ?????? ????? ???????????? ??????? ??????? ??? ?????? ?????????????????? ??????? ??? ???????????? ????????: ? ?????-
??????? ?????????????????? ??????????? ??????? ? ?????????????? ???-
??????? ???? ?????????? ??????? (??????????? ?????????????). ?????? ??-
??? ???????????? ??? ??????? ?????????? ?????????? ??? ??????, ??????? ???? ????????????????? ?????????? ??????????????. ?????? ??????? Ostress
?????? ???????? ???????? ?????, ????????? ???????????????. ??????? ?? ????? ????????? ? ??????????? XML-??????????? ?????? RML. ??? ???????? ???????????? ??? ?????? ??????? Read80Trace
. ????? ????, ??? ?????????????? ?? ??????? DTC (Distributed Transaction Coordina-
tor ? ??????????? ?????????????? ??????????) ? ???????????? ????????-
??????? ????????? (SPID) ?? SQL Server ??? ??????? ?????????? ??????????? ??????????? ????????? ORCA
(Ostress Replay Control Agent ? ??????????? ????? ?????????? ?????????? ??????? Ostress
). ? ?????????, ??? ????????????? Ostress
??????? ??? ???????. ??-??????, ??? ??????? ????? ???????? ?????? ?? ODBC. ?????? ?????? ?????? ? ???, ??? ?????????? ????? ? ??? ?? ?????? ??? ????????????? ???? ??????? ??-
?????? ?? ????? ??? ?????? ???????, ??? ??? ?????? ? Query Analyzer ??? ? ћониторинг и оптимизаци¤ производительности SQL Server 2005 42
9
?????? ??????????? ?????????. ??? ?????????? ?????? ?? ????? (????- ???? -q
) ? ??? ?????? ? ???????????? ??????? ?????????? ?????? ??? ????? ??????????? ? ????, ? ??? ?? ?????? ??-?? ?????????? ????????? ODBC. ??-
????? ???????????? Ostress
??? ?????? ????, ? ????? ????????? ????? ??-
????????? ??????? ????????????? ??? ???????????? ?? ??????????, ??????-
????????. ?????????? ??? ???????????? ???????????? ???????? ?????????? ??????-
??????? ??????? SQLIOStress
. ?? ????? ????? ????????? ??????? ? ????? Microsoft. ??? ???? ??????????? ???????? ?? Microsoft, ??????? ????? ???????????? ??? ???????????? ????????????, ?????????? SQL Hammer. ??? ????? ????? ?? ???????-????? Resource Kit ??? SQL Server 2000. ?????????? ??? ???-
?????? ???????????? ????? ?????? ?????????? ?? ????? Visual Basic, ????-
??? ????? ???????? ??? ????? ?????. ??????, ? ????? ?????? ??????, ????? ??????? ????????? ??? ?????????? ???????????? ???????????? ???????? ?????????? ????????? DBStressUtility. ??? ????????? ?????????? ???????? ??? ?????? ? ???????? .NET, ? ?? ????? ????????? ?? ????????? ?????? ? ???????? ????? (?? ?????? ?????????, ??-
????? ??? ??????? ??? ?????? ????? ?????????? ??????????????). ?????-
???? ???? ????????? ??????????? ?? ???. 11.5. ???. 11.5. ????????? DBStressUtility ????????? ????????? ??????, ??? ?????-???? ????????? ?????????? ?? ???-
??????. ??????? ?????? ???? ??????, ? ??????? ????? ?????????? ?? ??????-
??. ???? ????????? ?????????? ??????????? ?? ???? SQL Server Profiler ? ???? ??????? ? ??????????? sql, ?? ????????????? ????????????? ????????? ??-
??? ????????? ? ??????? ???????? ????? GO
. DBStressUtility, ???????? ????? ?????, ?????????? ?????? ????? ?????? ? ????????? ?????? ?? ???????, ??-
????? ???? ?? ??????? ????????? ??????? GO
. ????? ????? DBStressUtility √лава 11 430 ????????? ? ? ?????? ???????. ??????? ????? ????????? ???? ????????? ????? ?????? ?????????? ???????? ??? ?? ?????? GO
?????????? ?????? ? ?????? ?????? ?????????? ?????????. ?????? ??????? (????? ??????????) ? ????????????????? ?????????? ??????????? ? ??????? SQL Server, ? ????? ?????? ?????????? (????? DTS/SSIS, bcp
, Excel) ?????????????? ??? ??????? ? ????????? ????. ?? ???????, ??????????? ???????????????, ??? ????? ????? ?????? ??????? TextData
. 11.4.5. ѕриемы работы с —истемным монитором ??????? ???????? ??? ??????????? ?????????????????? ??????? SQL Server 2005 ? ??? ????????? ???????. ?? ????? ?????????????? ??? ??? ????? ?????? ???????? ???????, ??? ? ??? ??????????? ????????????? ????-
???????, ??????????? ? ?????? SQL Server (????????, ????? ?????????? ??-
?????? ????????????? ????????? ????????????? ?? ???? ????). ????????? ????????? ??????? ????? ????? ?? ???? ???? | ????????? | ????????????????? | ??????????????????. ??????? ?????, ??? ??????-
???? ???????????? ????????????? ??????????? ?? ? ??????? ???????, ? ? ??-
????? ??????? ??????????????. ??? ???? ????? ? ???? ?????? ?????? ????-
??????? ???????? ?????????? ? ?????????????????? ????? ? ?????????? ???????? SQL Server 2005. ? ??????? ?????????? ???????? (???. 11.6) ????????????? ??? ??????? ????: ????????? ??????? ? ??????? ? ?????????? ??????????????????. ? ????????? ??????? ??????? ??????????? ??? ?????????????? ??????? ??????????????????, ????? ????????????? ????? ? ???????? ? ??????? ?? ????????? ??????????? ?????????. ? ???? ??????? ? ?????????? ???????-
??????????? ??????? ??????????? ??? ????????????? ????? ??????????. ? ????????? ???????? ????????????? ??? ?????? ????????????? ???????-
???. ?????? ?? ???? ??????? ???????????? ? ????? ????????: ???????? ????????? ? ???? ????? ???????????? ?? ????????? (?? ??-
????? ?? ???. 11.6). ??? ??????? ????? ????????????, ????? ??????????? ?????????? ????????? ????????? ??????-?? ???????? ?? ???????. ?????-
???, ?? ????????? ?? SQL Server ????????? ???????? ?????? ? ?????? ??-
????????, ??? ???????? ?????????? ???????? ???????. ???????? ????????, ??? ???????? ?????? ??? ??????? ???????? ?????, ?????? ???? ??????? ? ??????? ????? ?????? ? ????? ?????? ???????? ?????? ???????????? (??? ?????????? ?????? <Ctrl>+<H>); ???????? ??????????? ? ? ???? ?????? ?????????? ????? ????????-
???? ? ???? ????????? ?????? ??????. ?????? ???? ????? ????????????, ????? ?????????? ???????? ????? ? ??? ????????? ? ?????? ????????; ћониторинг и оптимизаци¤ производительности SQL Server 2005 431 ???????? ?????? ? ?????????? ????? ???????????? ? ???????? ????. ??? ????? ??????? ?????? ????????????? ? ????????, ????? ????? ????-
???????? ??????????? ???????? ???????? ?????????? ?????????. ???. 11.6. ????????? ??????? ???????? ??????? ????? ????? ??? ?????? ??????? ??????????????? ?????? ?? ?????? ????????????. ???????? ?????????? ? ???? ?????????? ???????? ????? ??????, ?????? ????????? ????????? ?????????? ??? ??????? ????????? ??????. ??????? ????? ??? ????? ? ?????????? ?????????? ???????????? ??????? ????????? ?? ???? ??????? ? ?????????? ??????????????????. ????????? ??? ????-
???? ???????????? ???? ?????, ?????????? ??? ?????????. ??? ?????????? ?????????? ????????? ??????? ????? ??????? ?????? (??? ?????? ??????? ????? ????????? ??????? ???????????? ???? ??????-
???? ??????? ?????????). ??? ????? ?????????? ?????? ??? ?????? ???-
????, ? ????? ????????? ???? ??? ???????. ?? ?????? ??????? ????? ?? ??-
???? ??????? ??????? (?. ?. ?????? ?????? ????????? ??? ???????????? ???-
???????) ? ????????? ????????, ?????????? ? ??????? ????? ???????????? ? ??????. ??? ??????? ? ????????, ??????? ???????????? ??? ??????????? ?????? SQL Server 2005, ????? ?????????? ? ????. 11.4.7?11.4.11. ????? ????, ?? ???? ??????? ?? ?????? ????????? ???????? ????? ???????? ?????????. √лава 11 43
2
????????? ??????? ? ?????? ?????????????? ??????. ? ??????????? ?????-
??? ?? ?? ??????? ???????-?????? ???????? ???????? ?? ??? ???????, ??????-
???? ???????? ????????????, ?? ??? ??????? ??????? ??????????????, ?? ??-
????? ?? ???????. ?????? ??? ?????????????????? ?????? ??????? ??????-
??? ????????? ?????? ????? ?????????? ????????, ?????? ?????????? ??????? ? ???? ?????? ? ?? ?????. ??? ????????????? ????? ????? ??-
???????? ??????? ?????? ???????????? ??? ??????????? ? ???????. ?? ?????? ??????? ????? ??????? ?? ?????? ??????? ??? ?????? ?????-
??? ? ??????? ???????, ? ??????? ??? ????? ???????????. ???????? ????????, ??? ?? ????????? ?????? ???????????? ? ???? ????????? ??????? ? ?????-
?????? blg. ????? ???? ?????? ????????????? ? ????????? ????????, ????-
?? ??? ?????? ????? ???????????? ??? ??????. ???????, ????? ??????? ?????? ????? ? CSV (Comma-separated Values ? ????????, ??????????? ??-
??????). ???? ???? ?? ????????? ??????????? ? Excel (??? ????? ?????? ??? ??????? ?????????), ????? ????, ?????????? ?? ????? ?????? ??????? ????? ?????? ????????? ? ???? ??????, ????????, SQL Server. ? ????????? ????-
???? ? Windows XP ? Windows Server 2003 ????????????? ??????????? ??-
?????? ?????????? ???????? ? ???? ?????? SQL Server (??? ????? ????? ??????? ???????? ?????? ODBC). ?? ????????? ??????? ?????????? ?? ?????? ?????????? ????? ?????? ? ????????? ????? ??????????, ? ????? ?????????? ??????? ???????????? ???????, ??????? ????? ????????? ????? ????????? ????? ??????. ???? ?? ?? ????? ??????????? ??????????, ?? ???????? ????? ?????????? ??-
?????? ????????? ???? ?????? ?? ???????????? ???? ??? ?????? ???????. ???????? ?????? (? ??????? ? ????????? ????? ?????????? ???? ???????-
???) ?????????? ??????? ??????. ? ????????? ???????? ????????????? ????? ??????? ??????????? ? ????-
???????? ??? ????? ????????? ????? ????????? ? ???? ????? HTML. ????? ???? ????? ????????? ????? ??????? ? ???????????? ?? ?????? ??????????. ?? ???????????? ????? ??????????? ????????, ????? ????? ????????? ????-
?????? ?????????? ????????, ????????? ???? ? ??? ?? ????? ?????????. ???? ????????? ?????, ?? ????????????? ???? ??????????? ???????? ??? ??????-
???? ?????: ??? ?? ???????? ???????? ???? ? ?? ?? ???????? ?? ?????? ???-
????????. ????? ?????? ??, ??? ????? ? ?????? HTML ?? ????????????? ??? ??????????, ?????????? ???????? ????????????, ??????? ?????, ????????? ?? ????? ??????????, ????? ???????????? ?? ??????. ?? ???????? ???-???? ?????????: ????? ?? ??????????? ???????????? ?????? ????????????, ?????????? ? ??????? ???????????? ? ??????????? ???????? (?????? ????? ???????? ????????? ? ???????? ??????????); ћониторинг и оптимизаци¤ производительности SQL Server 2005 4
3
3
????? ?? ?????? ??????????? ???????????? ?????? ???????????? ?????-
?? ? ??????? ??????? (????????, ? ??????? ? ??????????). ? ??????? ?????? ???????? ???????????? ??????? ?????????? ??-??????, ? ??????-
?????? ????????? ?? ????? ?????????? ???? HTML ? ???????????? ???-
???? ?? ???????. ??????? ???? HTML ? ??????? ????????? ????? ????? ??????. ??? ????? ?????????? ???????? ?????? ??????? ???? ? ??????? ??????? ? ????????? ???????? ? ? ??????????? ???? ??????? ??????? ????????? ???. ???? ??? ?????????? ????????? ???????? ????????? ?? ???????, ????? ????? ??? ?? ???????? ?????? ??????? ???? ?? ?????????? ??????? ? ??????? ? ??????-
????? ???? ??????? ????????? ????????? ???. ??? ???? ????? ??????? ????? ?????? ?? ?????? ????? HTML, ????? ????-
???? ?????? ??????? ???? ?? ?????????? ??????? ????????? ? ? ??????-
????? ???? ??????? ????? ????????? ??????? ??. ??? ???? HTML ? ??? ?? ?????? ????????? ?????? ?????????. ???? ??-
????? ??? ? Internet Explorer, ?? ????? ???????? ????????? ActiveX, ? ????-
??? ????? ?????????? ???????????? ??????????? ???????? ????????? ?????-
????? ????, ??? ??? ???????? ? ????????? ????????. ? Windows Server 2003 ????????? ??? ???? ?????? ?????????? ????????, ??????? ??????????? ? ???? ??????????? ?????????? ? ???????????? ?????? logman.exe. ? ????? ???????? ?????????? ???????? ?? ?? ???????????, ??? ? ? ???????????? (?? ?????????????? ?????? ?????? ? ??????? HTML). ??? ??????? ????? ?????? ???????????? ??? ??????? ????? ?????????? ? ?????? ?? ?????????? ??? ? ????? ?? ?????-?? ???????. 11.4.6. ќсновы работы с объектами и счетчиками ???????, ??? ???? ? ????????? ????????, ? ??? ??????? ? ????????, ??? ??-
???? ??????? ? ???????????? ???? ??????????. ?????????? ????????? ???????????? ??? ?????? ????, ???????????? ??????????????? ?? ???. 11.7. ??? ???? ??????????? ??? ??????? ?? ?????? ???????? ???????? ?? ??????? ????? ??????? ???????. ??????? ????????? ???????, ????????? ? ??????? ?????????: ? ???? ?????? (??? ? ???? ???? ?????????? ????????) ?????? ????? ??-
????? ???????? ? ?????? ????????. ??? ?????? ? ????????: ? ?????? ?????? ?????? ??????????? ?????????????????? ?????????? ???????? ????????? ?? ???? ??????? ???????? SQL Server 2005; ?????? ? ??? ????? ?????????, ??????? ????????? ? ???????????? ???-
???????. ??? ????????? ???????? (????????, ??? ??????? Databases) ????? ??????? ?????????? ?????????? ??????? ?? ?????? ??????? ??? √лава 11 43
4
?????? ?????? ?????? (??? ??????-?? ?????????? "???????????"). ??? ?????? ???????? (????????, ??? ??????????? ??????) ?????????? ?????? ???? ????????? ???????; ???. 11.7. ?????????? ????????? ? ????????? ???????? ????? ????? ?? ???????? ???????? ??????, ??? ?? ??????????, ??????????. ??????? ??????? ?? ??????? ???????? ????? ?????????, ????? ?????? ??????????. ????? ????????? ??????? ?? ????????? SQL Server 2005 ????? ??????????? ? Books Online (?????? SQL Server Books Online | SQL Server Database Engine | Administering the Database Engine | Monitoring and Tuning for Performance | Monitoring Resource Usage | Using SQL Server Objects (???? ???? ?????? SQL Server | ??????????-
??????? ???? ???? ?????? | ?????????? ? ?????? ?????????????????? | ?????????? ????????????? ???????? | ????????????? ???????? SQL Server)). ??? ??????????? ??????? SQL Server 2005 ??? ??????????? ??? ???????? ???????????? ???????, ??? ? ?????? SQL Server 2005. 11.4.7. —четчики дл¤ анализа загрузки процессора ??????? ??????? ??? ??????? ???????? ?????????? ? % ????????????? ?????????? (% Processor Time) ??? ??????? ????????? (Processor). ???????? ????? ???????? ?? ?????? ????????? 80% ? ??????? ??????????? ?????????? ћониторинг и оптимизаци¤ производительности SQL Server 2005 43
5
???????. ???? ??? ????????? ??????, ?? ??? ??????, ??? ???????????? ???-
??????? ???????? ? ??????????? ? ???????? ????? ?????? ???????. ???? ??-
??????? ?????????, ??? ??????? ? ??????? ????? ????????, ??? ?????????? ?? ????????????????? ???????, ??? ?????????? ? ?????????? 64-????????? ?????????. ??????? ?????? ???? ?????? ??????: ??????? ???????? ??????-
?? ???????? ?????????? ????? ?????????? ??-?? ???????? ??????????? ????-
?? ??? ?????????? ???????? ??????????. ??????? ?????? ????? ?????????? ???, ??? ?????????? ??????????? ?????? ??? ?????? RAID-??????? ?? ????? ??????? ???????????? ????? ???????? ? ???????????. ???? ?? ??????????? ?????????? ?????????????????? ?????????????????? ???????, ?? ??? ?????? ???????? ???? ??????????? ????? ???????????? ??-
??????? _Total ???? ?? ??????? ?????????. ? ?????????? ??????? ???????-
????? ??????? ??? ???? ???? ??? ???????????? ??????? % ????? ????? ??-
??????????? ??????????? ??? ??????? ??????? (System), ?? ? Windows Server 2003 ??? ??? ???. ???? ??? ????????? ?????????, ??????????? ? ?????? ??????????, ??????? ????? ????????? ?? ????????: ????? ??????? ?????????? (Processor Queue Length) ??? ??????? ?????-
??. ???? ??????? ??????????, ??????? ???????? ????? ? ??????? ?? ????-
????? ??????????? ???????????. ???????? ????? ???????? ?? ?????? ? ??????? ???????????????? ??????? ????????? ?????????? ??????????? ? ???????, ?????????? ?? 2 (????????, ???? ?? ??????? 4 ??????????, ?? ??? ???????? ?? ?????? ???? ?????? 8); % ????????????? ?????????? (% Processor Time), ?? ??? ??? ??????? ??????? ? ??????? (Process), ? ????????? ??? ?????????? ??????? sqlservr ? ?????? ???????. ???? ??????? ??????????, ??????? ??????? ????????????? ??????????? ?? ???????????? ???????? SQL Server. ???? ?????????? ????????????? ?????????? ? ??????????? ??????????? ??? ?????? ?????????. ????? ??????????, ??? ??? ?????? ?????? ???? ???? ?? ???-?? ???; % ?????? ? ????????????????? ?????? (% Privileged Time) ??? ?????-
?? ?????????. ???? ???????? ??????????, ??????? ??????? ???????? ?? ???????????? ???????? ????. ??? ????? ?????? ???? ??? ????? ??????: ?? ??????????? ??????? ??? ??????? ?????? ?????????? ????????? ???-
???????? (?. ?. SQL Server). ???? ???????? ???????? ??????? (?????????? ??????? ?????????), ?? ????? ?????????, ??? ? ? ??? ??????? ? ????????. ????????, ?????? ????????? ????????? ????? ??????????? ??????????-
???????? ????????????. ????????? ??? ????? ??? ?????? ?????????? ????????; % ??????? ?????????? (% Interrupt Time) ??? ??????? ?????????. ???? ???????? ??????????, ??????? ??????? ????????? ?????? ?? ????????? √лава 11 43
6
?????????? ?? ????????????. ???? ??? ????????? ??????-???? ?????????-
??? ???????? ????? ???????? ?????? ??????????, ? ???? ????????????? ??-
??????? ?????-?? ????????. ??? ?????? ?? ????????????????? ???????? ?????? ????????? ??? ???? ???-
?????. ??? ??????????? ? ???, ??? SQL Server ?? ?????? ????????? ???????-
??? ????????????????? ??? ?????????? ????????. ?? ???? ??????????? ????? ???????????? ????? ???????????? (context switching) ???????? ?????????? ??????? ?? ????????????????? ??????? ????? ????????? ??????? ????, ??? ?? ????????????????. ? ???? ???????? ? ????? ???????????? ???? ??? ??-
?????: ???????????? ???????? ????????? ??????? cost threshold for parallelism (??? ????? ????????? ??? ?????? ???????? ????????? sp_configure
). ?? ?????????? ????????? ???????, ??????? ? ??????? ?????????? ????? ??-
????? ????? ??????????????????. ?? ????????? ? SQL Server 2000 ? SQL Server 2005 ??? ????? ???????? ??????????? ???????? 5. ??? ??????, ??? ????? ?????????????????? ???????, ????????? ????? ?????????? ??????? ?????? 5 ?????? (?? ????? ???? ????? ????? ????? ??????? ?????? 5 ??????, ????????? "??????????" ?????? ????????? ????????????? ? ??-
?????? 90-? ????? ??? ?????????? SQL Server 7.0). ?????????? ???????? ????? ????????? ???????? ? ????, ??? ????? ?????????????????? ??????? ?????????? ????????. ?????? ???????? ????????????????? ??????? ??-
?????? ??? ????? ?????????; ???????????? ???? ??????????? 8687. ?? ?????? ????????? ????????????-
????? ????????. ????? ??????? ??????? ? ???????????? ??????????????-
????, ??? ?????????? ???? ?????????????? ?????? ????????????: ????? "???????" ?????? ?? ?????? ????????? ??? ??????? ???? ???????????, ? ?? ???????? ?? ?????? ?????? ????????????? ? ??????? ???????. ?? ????? ?????????? ??????? ?????? ?? SQL Server, ????????, ??? ???? ???? ???????????? ????????????? ?? ????? ?????? ????????????, ??-
??????? ??? ???? ???????? ?????? ?????????? ??????. ???????? ???? ??????????? ????? ???: -- ??????? ??????????, ??? ???? ????? ????????????? ?? ??? ??????????? DBCC TRACEON(-1); -- ????? ???????? ??? ???? ??????????? DBCC TRACEON(8687); ????? ????????? ?????????????? ????????? ????? ????? ??????????? ??? ??????? ???????. ??? ????? ??? ??????? ?????? SQL Server ???????????? ???????? ????????? ?????? -T
? ??????? ????? ???????????. ? ???? ???-
??? ???? ????? ????????????? ??????????? ?? ???? ?????????? ??????-
??????. ћониторинг и оптимизаци¤ производительности SQL Server 2005 43
7
??? ????????? ?????????? ? ???? ????????????? ?????? ??????????? ????? ???????????? ???????: DBCC TRACESTATUS(-1) 11.4.8. —четчики дл¤ анализа загрузки оперативной пам¤ти ? ????? ?????? Microsoft, ????? ?????? ?????????? ??? ??? ?????? OLTP (? ??????? ????????? ????? ??? ???????????? ? ???????????? ?????? ???? ??????) ? ??? ?????????? ??????????? ??????. ????? 90% ???????? ????????????? ?? ?????? ? ?????? ????????????? ?? ?????? ? ??????????? ??????, ??? ????????????? ???????????? ????????? ? ?????. ????? ????, ???????? ?????? ????? ? ???????? (????????? ????????? ? ????? ????????) ? ????? ???????? ? ?????????????? ???????? ?? ???????????? ? ???????? ??????????. ??????? ??????? ??? ??????? ???????? ??????????? ?????? ? ????? ?????? ???????????? ??????? ? ??? ??????? ????? ??????? ? ??? (Pages/sec) ???-
???? ?????? (Memory). ????????? ???? ??????? ?????????? ?????????? ??-
??????? ? ??????? ? ????? ???????? (???????, ?? ?????? ??? ??????). ? ???-
??? ?? SQL Server 6.5 ? 7.0 ????????? ???????? ????? ???????? ???????????? ?????? 5, ? ?????? ?? SQL Server 2000 ? ?????? 10. ? ?????? ? ?????????-
??? ?? SQL Server 2005 ????????? ???????? ??? ????? ???????? ?????? ?? ???????????? (????? ?????? ? ?????????????? ??? ???????? ????????). ??-
??? ??????? ?? ????? ???? ?? ??????? ??????????? ??????, ???????? ????? ???????? ?????????? ???????, ??? ??? ????????? ????? ??????. ???????, ??? ???????? ?????? ??????????, ????????? ?? ?????????? ?????????? ?????-
?? ? ??????????????? ?????? ????? ???????? ?????? ?????????. ??????? ??????? ??? ??????????? ????, ??????? ?? ?????? ?????? SQL Server 2005, ? ??????? Buffer cache hit ratio (??????? ????????? ? ??? ??-
????) ??????? Buffer Manager (???????? ??????) ??? ??????? ?????????? ???????. ?? ??????????, ??????? ???????? ????????????? (? ????????? ? ??-
????) ????????????? ?? ?????? ??? ????????????? ????????? ? ?????. ??? ??? ?????????? ?????, ?????????????, ????? ? ??????? ??????????? ?????-
????? ??????? ???????? ????? ???????? ???? ?? ?????? 90%. ??? ??????????? ?????????? ??????????? ?????? ????? ???????????? ? ?????? ????????: ???? ?? ????????????, ??? ? ??????? ?????? ??????? ?? SQL Server 2005, ? ?????? ??????????, ????? ????? ?????????? ? ??????? ??????? ? ??????-
???? ?? ???????? ????????? ??????? ????????? (Working Set) ? ?????? ????????/??? (Page faults/sec). ?????? ??????? ??????????, ??????? ??-
√лава 11 43
8
???? ? ????????? ?????? ?????????? ?????? ?????????? ???????, ???-
??? ? ??????? ??? ??? ????? ???????? ???????? ?????????? ? ????? ???-
?????. ???????? ???? ????????? ??? ??????? ???????? SQL Server ????? ???????? ? ??????????? _Total ? ??????? ??????????; ??????? ???????? ???? (Available baits) ??? ??????? ?????? ???????????? ????? ?????????? ?????? ??????????, ??????? ???????? ? ????? ???? ?????????? ???????? ??????-???? ????????. ???????? ????? ???????? ? ??????? ??????????? ?????????? ??????? ?? ?????? ???????????? ? 0; ??????? Total Server Memory (KB) (????? ?????? ??????? (KB)) ??? ???-
???? Memory Manager (???????? ??????) ???????????????? ?????????? SQL Server ??????????, ??????? ?????? ??????????? ?????? (??????? ???????? ? ????? ????????) ?????????? ?????????? SQL Server. ??? ???-
????? ?????? ???? ??????????? ????, ??? ????? ?????????? ????????-
??? ?????? ?? ???????. ???? ?? ??????????, ??? ?? ??????? ?? ??????? ??????????? ??????, ?? ????-
??????? ??? ??????? ???????? ?? ????? ????????. ?????? ??????? ??????-
??? ???????, ??????? ??????? ? ??????????? ??????? ??? SQL Server 2005. ? 32-????????? ???????? ?????????? ??????????? ?? ????? ?????????? ???-
???????? ?????? ? 4 ?????. ???? ?? ??????? ??????????? ?????? ?????? (? ????? ??????? ??? ???? ??????????? ?? ????????????), ?? ??? ????, ????? SQL Server ??? ???????????? ??? ??????, ????? ??????????? ??????????? ???????? ? ? ???????????? ???????, ? ?? ????? SQL Server. ? ???????????? ??????? ????? ????????? ??? ?? ?????? ???????? (???? ARC) ? ???? boot.ini ?????????????? ???????? /PAE
(Physical Address Extension ? ?????????? ?????????? ???????), ????????: multi(0)disk(0)risk(0)partition(2)\WINDOWS="Windows Server 2003, Enterprise RU" /no execute=opt out /fast detect /PAE ?? SQL Server ????? ???????? ???????? AWE enabled
(Address Windowing Extensions). ????????? ??? ????? ????????? ???: sp_configure 'show advanced options', 1; RECONFIGURE; GO sp_configure 'awe enabled', 1; RECONFIGURE; GO ????? ????? ????? ????????????? ??????. ?????? SQL Server ? ?????? AWE ????????? ? ????????????? ??????????. ? ?????????, SQL Server ??????? ?? ?????? ?????????? ??? ?????? AWE ??-
?????, ??? ?????? ??????? ?? ??????????? ? ???? ????????, ????? ?????????? ћониторинг и оптимизаци¤ производительности SQL Server 2005 43
9
???????? ? ?????????????? ?????? AWE ????? ???????????? SQL Server, ??????????? ?? ????? ??????????. ??????? ???????????? ????????????? ??? ????????????? ?????? AWE ?????? ????????????? ??? SQL Server ????-
????? min server memory
(??????????? ?????????? ??????, ???????????? SQL Server) ? max server memory (???????????? ?????????? ??????), ?????-
???, ???: sp_configure 'min server memory', 1024; RECONFIGURE; GO sp_configure 'max server memory', 6144; RECONFIGURE; GO ??????, ???? ???? ?????? "???????" ?? ????? ?????????? ? ????????, ????? ????? ???????? ? ???????????? 64-?????????? ???????. ???????, ???????? ? 64-????????? ??????? SQL Server 2005 ?? ????? ?????? (????????, ??-?? ??-
??????????? ????????? ????????? ???????? ????????????????? ?????? ?? 32-????????? ???????, ?. ?. ????????), ?? 64-????????? ??????? ???????????-
?? ????? ?????????? ??????? ??????? ? ??????????????????. ????? ????, 64-????????? ??????? ????? ???????? ? ??????? ??????????? ???????????-
???? ??????. ??????? ??? ???? ??????, ??????? ?????? ? ??????????? ??????????? ??-
???????? ??????????? ??????. ??? ???????? ??????? ? ?????????? ?? ???-
??? ?????????? ??????????? ?????? ?????? ????? ??????? ??? ??? ???? ??-
?????? ? ??? ??????? ?????? (L2 cache), ??????? ??? ?????? ???? ???????? ??????????? ??????????. ?????? ???? ??????? ?????? ? ??? ???? ?? ????-
??? ??????????, ??????? ???????? ?????????? ??????? Celeron ?? ??????? Pentium ? ??????? Pentium ? ?? ????????? ?????????. ???? ???? ??????? ?????? ????????????, ?? ?????????? ?????????????????? ??? ?????????? ??????????? ?????? ????? ??????????? ????? ?????????, ? ? ????????? (??-
???? ??????) ??????? ????? ? ??????. ??????????? ??????? ? ????? 2 ????? ???? ??????? ?????? ?????????? ?? ?????? ???????? ?????????? ??????????? ??????, ???? ????? ???? ? ?????? ????????. ? ???? ?????? ???-
?? ?????????? ??????????? ???????????? ?? ????????? ????????? ? ????? ????? ??????????? ?????? ??? ??? ???????? ?????????????. 11.4.9. —четчики дл¤ анализа производительности дисковой подсистемы ?????? ??????????, ?????????? ??????? ????? ????? ??????????? ??? ?????-
?? SQL Server 2005, ? ??? ???????? ??????????. ??? ????????? ??????? ? ????? ?????? ?????????????????? ??? ????? Data Warehousing, ?. ?. ??? ???-
√лава 11 440 ????? ??????. ?????????? ?????????? ??????? ? ?? ????????? ? ??????-
?? ????????? OLTP, ???????? ???????????????? ???????? ? ???????? Data Warehouse ? ??? ?????? ???????????? ???? ???????. ???????? ????????? ?????? ? ???????? Data Warehouse ????? ????? ?????. ??????? ???? ???? ? ???, ? ??????? ?? ?????? OLTP, ????????, ? ??? ?????????? ? ?????? ?????-
???????? ??????? ?????????. ?? ????? ???????????? ?????? ????? ????????, ??? ? ??? ?????? OLTP ?????? ?????????? ???????? ?????? ???????? ?????????? ???? ?????????? ??????. ??????? ??????? ??? ???????? ?????????? ? ??????? ???????? ????? (% Disk Time) ??? ??????? ?????????? ???? (Logical Disk) ??? ?????????? ???? (Physical Disk). ?????? ?????????? ???? ???????, ????????? ???????-
??? ???????????? ?? ????????, ?? ?? ??????-?? ?? ?????? ????????. ??????-
??? ???????? ??? ????? ???????? ????????????? ???: ? ??????? ????????-
???????? ?????????? ??????? ???????? ?? ?????? ???????????? ? 100%. ???? ???????? ?????????? ????????? ????????? ????? ?? 100%, ?? ????????, ??? ??? ???????? ????? ?????? ??????? ? ?? ???? ????????. ???? ?? ?? ???-
????, ??? ?? ?????????? ???????? ?????????? ???????????? ?????? SQL Server, ????? ????? ????????? ???????? ???????? ????? ???????, ???? ? ??????? (I/O bytes/sec) ??? ??????? ???????) (???????? ??? ???????? ??? ??-
???????? SQL Server ? ??????? _Total). ??????? ???? ???? ??????????? ????????? ??????? ???????? ?????? ??? ???????? ?????????? ???? ? ?????????? ????: ??? ?? ?????? ?????????? ?????? ???????? ??? ????????????? RAID-????????. ???, ? ???????????? ?????? ?????? ????? ??????? ???????? ????? ????????? ????? 100%. ?????? ??????? ??????? ??? ?? ???????: ??? ?????????? ???????? ?? ???????? ???-
??????? ??????? ???????? ????? ???????? ?????? ???? ??????????? ???? 50%. ??? ???? ???????, ??????? ????? ???????????? ??? ????????, ? ??????? ????? ??????? ????? (Current Disk Queue Length) ??? ??? ?? ???????? ??-
???????? ???? ? ?????????? ????. ???? ???????? ??????????, ??????? ??-
?????? ????? ? ??????? ?? ????????? ???????? ??????????. ??? ???????? ?? ?????????? ??????????? ?????????? ??????? ?? ?????? ????????? 2 ??? ?????? ????? (????, ????????, ? RAID-??????? ????????? 10 ??????, ?? ????-
??? ???????? ????? ???????? ?? ?????? ???? ?????? 20). ???? ?? ?? ???????, ??? ?????? ??????? ???????? ????? ? ?????????? ???-
??? ??? ??????, ?? ?????????? ??? ??????? ???????? % ?????????? ????? ??? ?????? (% Disk Read Time) ? % ?????????? ????? ??? ?????? (% Disk Write Time) ??? ???????? ?????????? ???? ? ?????????? ????. ???? ????? ?????? ??????? ???????? ???? (? ??? ????????? ????? ?????), ?? ????????? ??????? ????? ???? ?????????. ????? ??????? ? ????????? ?? ћониторинг и оптимизаци¤ производительности SQL Server 2005 441 ??? ? ???????? ???????? ??????????, ????????, ????? ????? RAID-???-
???. ?????? ??????? ??????? ????? ???? ? ??????, ????? ??????? ???????? ???????. ????? ????? ?????? ???????? ? ?????? ????????? ??-?? ??????? ? ???????-
??. ??? ??????????? ??????? ???????? ????? ?????????????? ????? ? ????. 11.5.5. ??????? ??????? ?? ?????????????????? ? ?????????????????? ?????? SQL Server ????????? ????????????? ?????? ?? ?????? ???????. 11.4.10. —четчики дл¤ анализа производительности сетевой подсистемы ????????? ?????????? ?????????? ???????, ?????????? ??????? ????? ????? ???????????, ? ??????? ??????????. ??? ???????, ???????????? ????????-
???? ? SQL Server ?? ????. ?????? ?????-?? ???????? ? ??????????????????? ?????? ????, ????????? ?????? ??????? SQL Server, ????????? ?????. ??? ???????, ???? ??????? ??-
?????? ??????????? ??????? ???????????? (????????, ???????????? ?? ?????? ?????????? ??? ?????? ? FoxPro, Access, Clipper, Paradox ? ?. ?.). ?? ???????????? ????? ??????????? ????????, ????? ?? ?????? ???? ???????? ???? ??????? (??? ?????????????), ? ?? ?????? ??????????, ????????????? SQL Server, ? ??????. ? ???????????? ?? ????? ?????? ??????. ?????????? ??????????? ??????????? ????????????? ???? ? ????? ?????? ????????????-
?? SQL Server. ???????? ? ??????????????????? ?????? ???? ????? ??????????? ? ???? ??-
???????. ?????? ??????? ? ?? ??????? ?????????????????? ??????????? ??-
?????? ????????, ?????????????? ?? ???????. ????? ????????? ???, ????? ??????????????? ????????? ????? ????/??? (Bytes total/sec) ??? ??????? ??-
????? ????????? (Network Interface) (?????? ?????? ??????? ????????? ?? ??????). ???????? ????? ???????? ???????????? ?????????? ? ?????????? ???-
?????? ??? ??????? ???????? ??????????. ???? ??????? ????????? ???????-
?????? ???????? ?? ??????? ????? ????????????, ?? ??? ????? ???????? ?? ??????????? ????????? ?????????????? ???????. ??????? ???? ????????? ?????? ???????? ? ????? ???????? ?? ? ??????? ??-
????????, ? ? ????? ?????? ???????? ????. ? ???? ?????? ?????? ???????? ? SQL Server ????? ???????? ???????????. ????? ??????????? ????-???? ??? ????????? ??????????, ??????? ??? ????????????? ?????????? ? ?. ?. ??? ????????? ????? ??????? ???????? ???? ? ? ?????? ????????????? ???????-
???? ?????????????? ???????? ??????????????? √лава 11 44
2
? ????????? ???????? ??????????? ??????? ???. ?? ??? ? Windows NT 4.0 (? ????????? ??????? ??????? (Network Segment)), ?? ? Windows 2000 ? 2003 ??? ?????? (????????? ??? ??????? ? ????????????). ??????? ???????? ??-
?????????? ?????? ???????. ???????? ?????? ?????????????????? ???? ???????? ? ??????????? ????????? (???? ?? ????? ?????? ? ? Net Obser-
ver), ? ??? ????? ? ??????? ?? Microsoft, ??????? ?????????? ??????? ????-
??? (Network Monitor). ??????, ???????????? ??? ??????? ???????? ???? ?? ?????? ???????? ????????, ??????? ???????????? ? Windows 2000 ? 2003 (?? ????? ??????????, ?????? ? ?????? ?????????????? ??????????? ???????-
????? ???????), ??????????. ???? ??????? ????? ?????? ??????, ??????? ?????????? ? ????? ??????????, ?? ???? ?????????, ????????????????? ?????? ? ?????? ????????? ????????. ???? ?????? ???????????? ??????? ????????????, ?? ??????????? ?????? ???????? ???????? ?????? ??? ?? ???-
??? ?, ??????????????, ?? ????????? ??? ??????? ?????? ????????. ??????? ????? ???????????? ?????? ???????? ????????, ??????? ???????????? ? Systems Management Server. ????? ????????? ??????? ???????? ???????? ??? ????? ??????? ??????? ???????, ??????? ????? ?????????????? ??? ????????? ??????? ? ????. ????? ????? ????? ? ???? ?????? (Capture) ??????? ??????? ????? (Start), ????? ?????? ?????? ??????. ?????????? ? ???????? ???? (% ???????? ????) ????? ???????????? ??? ? ???????????, ??? ? ? ???????? ???? (? ?????? ????? ??-
????). ???????, ??? ??? ??????? ???? ?? ????? (??? ?????????? ???????) ????????? ???????? ????? ????????, ???????? Microsoft, ?????????? ????? 40%. ?????-
????? ????? ???????? ????? ? ???????????????? ?????????? ?????????-
????????? (??? ?????? ????????, ??? ?????? ???????? ? ???????? ???????? ??????, ? ?????????????? ????? ?????????? ?????????? ????????, ? ??? ?? ???????????). ? ???????? ?????? ????? ????????? ????????, ????? ?????????????????? ??-
???? ???? ?????????? ?? ??????????? ????????. ????????, ???????????? ???????????? ? SQL Server ?? ???????? ?? ??????????????? ??????? ?????. ?????? ????? ?????????? ??????????? ??????????? ????????????? ????? ??????????, ?? ????????? ???????? ???????????? ?????? ??????????????. ? ? ??? ? ? ?????? ?????? ????? ????? ???????? ? ???? ????????? ???????: ???????????? ?????????? ? Web-???????????; ???????????? ???????????? ?????? ??? ?????? Microsoft Terminal Services ??? Citrix MetaFrame. ?????? ??????? ??????? ??????? ??????????? Web-?????? ??????????? ???-
???????, ??????? ???? ?????? ?? ?????? (? ?????????????? ??????? ?? ?????? ??????, ???????? ???????? ??, ??? ????????? ?????????? ? ????????? ???? ћониторинг и оптимизаци¤ производительности SQL Server 2005 44
3
?????? ? ????? ???????????? ????? ? ?? ????). ???? ?????? ??????? ????? ???????????? ? ??????????? ????????. ??? ???? ???????????? ???????? ? ??????? ????????? ??????????? ??????????, ?? ????????? ??? ??????????? ?? ?? ?? ??????????, ? ?? ??????????? ???????. ? ?????????? ??????? ????-
??? ?? ???????????? ?????? ?????????? ?????? ??????? ?????? ? ?????? ?????, ? ? ??????? ?? ??????? ??????? ? ????????? ? ??????. ??????-
????? ? ?????? ??????? ? ?????????: ???????????? ??????? ??????? ???????????? ??????? ? ???? ? ?????? ????????? ???????? ???? ?? ???????? ????????????? ???????????; ? ?????? ??????? ?????????? ???????????? ????? ?????? ???????????? ? ?????? ?????? ? ?????????? ?????? ? ???? ?? ?????; ?? ?????????? ????????? ?? ????? ????????????? ??????????? ??????? ?????????? ?????????? (????? ??????? ????????????? ???????). ??? ??-
???? ? ? ????? ?????? ????????????, ? ? ????? ?????? ???????? ???????? ?? ??????????????; ?? ?????????? ?????????? ????? ???? ??????????? ??????????? ????? ???????????? ??????? (??? ????????????? Citrix MetaFrame, ? ??? ????? ? DOS, ? UNIX). ?????????? ? ????????? ???????? ?????????? ????? ??-
????????; ?????? Citrix MetaFrame ? Microsoft Terminal Server ????????????? ???-
?????? (? ??????? ?? ??????? ?????? ??????? ???????? ? SQL Server, ??-
????? ????????????, ????????, ?? OLE DB ??? ODBC); ???? ??????? ?????????? ???????? ????????????, ?? ??????? ?????? ??? ???????????? ?????????? ?????? ?????, ??? ??? ??????????? ??????? ?????????? ? SQL Server. ??????????? ? ???????????? ??????? ?? ??? ?????: ????????? ???????? ?? ???????????? ??????; ????? ?????????????? ?????? (?????????? ??????, ???? ?? ????? ??????????? ??????? ?????????? ?????????????); ?????????? ??????????? ??????? ?????????? (????????, ??????? HASP) ??? ????? ???????????? ?????????? ????? ?? ???????? ?? ???????????? ???????. ??-
???? ? ????????? ????? ???????????? ???????????? ??????? ?????? ????? ?????? (????????, ??? ??????-????????? ?????? 1?), ? ??????? ? ????? ???-
???????? ??????????? ?????. ?????? ???????? ????????? ?????????????????? ??????? ?????????? ??? ?????? ? SQL Server ?????? ???????? ? ???? ????????????? ??????? ?????? ?????, ?????????? ??????? ?????????????? (? 10 ???? ?? 100, ? 100 ???? ? ?? 1 ???? ? ?. ?.), ? ????? ????????? ???????? ?????? ? SQL Server ? ??????-
??? ??????? ????. √лава 11 44
4
11.4.11. ќбъекты —истемного монитора дл¤ мониторинга работы SQL Server 2005 ??? ?? ???????????, ??? ?????? ?????????????????? ?????? ??????? ???? ???????????? ???????? ???????????? ???????, ??? ???????? ?????? SQL Server. ?????? ??? SQL Server 2005 ? ????????? ???????? ????? ?????????-
??? ??????? ????? ????????? ??????????????????, ??????? ????? ????????? ????? ?????????. ? ????????? SQL Server ???? ?????????? ???????????: ????????? ??? ??????? ? ??? ????????????? ?? ?????? ?????? SQL Server. ??????????? ?? ????? ?? ???? Transact-SQL, ??????????? ? ???????????? ????????????? sysperfinfo
? ???? ?????? master
. ????????????? ????? ????????????? ????? ????????? ????? ??????? ??? ??????? ???????????????? ?????????? ? ?????????-
?????????, ??? ????????????? ????????? ? ?????????? ????????. ? ????-
?????, ??????? ????? ???????? ????????? ???????????? ? sysperfinfo
? ??-
?????????? ???? (?. ?. ??? ?????????? ????????? ???????????? ? ??????? ??????? ???????). ??????? ??????? ??????????, ????????, ???????? ???????? Buffer cache hit ratio (??????? ????????? ? ??? ??????) ??? ??????? Buffer manager ??? ?????? ??????? ????: SELECT * FROM sysperfinfo WHERE counter_name = 'Buffer cache hit ratio'; ?????? ??? ?????????? ????????????? ????? (??? ???, ??? ??? ???????? ??-
??? ?? ????? ???? ???? 100%). ??? ????????? ???????? ?????????? ?? ???? ??????? ?????????? ???????????? ??????????? ??????. ???????????, ??? ?? ?????? ????????????????? ?????????? ? ?????????? ?????????? ? ??????? ??? ???? ?????? Foodmart
. ??? ???? ???? ?????????? ?????? ????????????? ? ??????? 1 ??????, ? ???????? ??? ????? ?????? ??-
???????? 5 ??????. ??? Transact-SQL ??? ??????? ???? ?????? ????? ???? ?????: -- ??????? ????????? ??????? ?? ????????? ??????? ? ???????? ???????? CREATE TABLE #PerfTable(ts DATETIME, TranPerSec BIGINT); DECLARE @iVar1 INT, @iVar2 INT, @dStartTime DATETIME -- ???????? ??????? ????? SET @dStartTime = getdate(); -- ???????? ??????? ???????? ???????? ? ???? 5 ?????? SELECT @iVar2=cntr_value FROM master..sysperfinfo WHERE counter_name = 'Transactions/sec' AND instance_name = 'Foodmart'; WAITFOR DELAY '00:00:05' -- ????????? ????, ??????? ????? ???????? ?????? WHILE getdate() < dateadd(mi,1,@dStartTime) ћониторинг и оптимизаци¤ производительности SQL Server 2005 44
5
BEGIN -- ???????? ??? ??? ???????? ???????? (????? ?????? 5 ??????) SELECT @iVar1=cntr_value FROM master..sysperfinfo WHERE counter_name = 'Transactions/sec' AND instance_name = 'Foodmart'; -- ????????? ??????? ????? ????? ?????????? ? ??????? #PerfTable INSERT INTO #PerfTable (ts,TranPerSec) VALUES (getdate(), @iVar1 - @iVar2); -- ... ? ?????????? ??????? ???????? ? ?????? ??????????, SET @iVar2 = @iVar1; -- ????? ???? ???? ?????? WAITFOR DELAY '00:00:05' END -- ????? ???? ??????????, ??????? ?????????? ? ??????? ???????? SELECT * FROM #PerfTable; ????? ??????????? ?????????? ?? ???????? SQL Server 2005 ? ????????? ????????: Access Methods (?????? ???????) ? ???? ?????? ???????????? ??????? ????? ????????? ?? ?????????? ?????????? ???????????????? ???????? (??????? ???? ??????????? ????????? ? ????????, ??????? ???????? ??????? ???????????? ?????? ? ?. ?.); Backup Device (?????????? ?????????? ???????????) ? ??? ????? ??????? ???????????? ???????????? ???????, ??????? ?????????? ???????? ??-
???????? ??????????? ??? ??????????????; Broker Activation (????????? ???????) ? ?????????? ?? ???????? ???-
???????, ??????? ???????????? ??????? Service Broker ??? ???????????? ???? ??????; Broker Statistics (?????????? ???????) ? ????? ?????????? ?? ?????????-
????????? Service Broker (?????????? ????????? ? ???????, ?????????? ???????????????? ????????? ? ??????? ? ?. ?.); Broker/DBM Transport Object (?????? ?????????? ???????/??????????? ??????????? ??? ??????) ? ?????????? ?? ??????????? ??????????? ??? ?????? (DBM, DataBase Mirroring). ? ???? ??????? ?????????? ???????? ??? ????????, ? ??????? ????????? ??????? Service Broker (?????????? ?????????, ????, ???????????? ? ???????, ? ?. ?.); Buffer Manager (???????? ??????) ? ??? ????? ?????? ??????, ??????? ???????????? ??? ??????????? ?????????? ???? ??????? ???? ??????. ????? ?????? ???????, ??? ??????? ??? ??????????, ? Buffer cache hit ratio (??????? ????????? ? ??? ??????); Buffer Partition (?????? ??????) ? ?????????? ?? ?????? ????????? ???? ??????? ???? ??????; √лава 11 44
6
CLR ? ? ???? ??????? ???????????? ?????????? ?? ?????????? ? ????-
??? .NET ? ???? Transact-SQL. ? ??? ???????????? ???????????? ??????? CLR Execution (?????????? CLR) ? ????? ?????????? ???????? ????-
????? ? ?????????????; Cursor Manager by Type (???????? ???????? ?? ?????) ? ???? ?????? ???????????? ??? ??????????? ?????????????????? ??? ?????? ? ?????-
????. ? ???????? ??????????? ????? ??????? ???????????? ???? ????????; Cursor Manager Total (????? ?? ????????? ????????) ? ??? ????? ???-
??????? ?? ?????? ? ?????????, ?????????? ?? ?? ????; Database Mirroring (?????????? ??????????? ??? ??????) ? ???? ?????? (?????? ? ???????? Broker/DBM Transport Object) ???????????? ??? ??-
????????? ????????????????? ??? ??????. ??? ?????? ??? ???????? ????? ?????? ???????? ???????? ?????? ? ?????? ???????; Databases (???? ??????) ? ???, ????????, ????? ?????????? ?????? ?????????? ???????? ??? SQL Server. ? ??? ????????????? ??????? ??-
???????? ????????? ??? ???? ?????????? ??? ??????: ?????? ?????? ???-
??? ? ???????? ??????????, ?????????? ???????? ?????????? ? ?. ?. ????? ?????? ??????? Percent Log Used (??????? ??????? ???????????), ??????? ????? ???????????? ??? ??????????? ??????????? ???????????? ? ??????? ??????????; ExecStatistics (?????????? ??????????) ? ???? ?????? ???????????? ??? ????????? ?????????? ? ?????????? ?????????????? ????????, ??????? ??????????????? ???????????? ??????????, ??????????? ???????? ???-
????? ? ??????? OLE DB; General Statistics (????? ??????????) ? ??? ??????? ?? ????????, ??? ??-
??? ?????????? ?????? ??????? SQL Server 2005. ????????, ??? ?????? ???????? User Connections (??????????? ?????????????) ????? ?????? ????? ?????????????, ??????? ? ????????? ????? ?????????? ? SQL Server; Latches (??????????????? ??????????) ? ?????????? ?? ????? ????????-
???? ???? ??????????. ??????????????? ?????????? ? ??? ??????? ???-
???????, ??????? ?????????? ?? ??????? ??? ?????? ?? ????????? ???-
????. ?? ??????????????? ?????????? ?????????? ?? ?? ???????? ? ???? ??????, ? ?? ??????????? ??????? ? ??????????? ?????? (????????, ????-
??? ???????????? ??? ??????????? ??????? ? ??????). ? ???????? ??-
?????????? ???????? ???????? Latch Waits/Sec (?????????? ???????? ?? ????????? ??????????????? ??????????). ??????? ??????? ???????? ????? ???????? ????? ???????? ? ?????????? ??????????? ?????? ??? SQL Server; ћониторинг и оптимизаци¤ производительности SQL Server 2005 44
7
Locks (??????????) ? ??? ?????????? ? ??????????? ? ??????????????-
??? SQL Server. ???? ????? ???????? ??? ?????????? ??????? ???????, ??? ??? ?????? ????????????? ????????? ????????? ????????????????, ?? ?????????? ? ?????????? ????????? ???????????, ? ???? ????? ?????- ????? ????????? ?????????????; Memory manager (???????? ??????) ? ???? ?????? ????? ???????????? ??? ???????????? ?????????? ? ???, ??? SQL Server ???????????? ?????-
?????? ?????? ????? ?????? ????????????; Plan Cache (??? ??????) ? ???? ?????? ???????????? ??? ????????? ??-
???????? ? ??????????? ????, ?. ?. ? ????, ? ??????? ???????? ????? ?????????? ?????? Transact-SQL, ???????? ???????? ? ?????????; SQL Errors (?????? SQL) ? ??? ????? ??????? ???????????? ?????????-
??? ???????, ??????? ?????????? ?????????? ?????? ? ???????, ?????-
?????? ??? ?????????? ?????? SQL; SQL Statistics (?????????? SQL) ? ??? ?????????? ?? ?????????? ?????? SQL ?? ???????; Transactions (??????????) ? ??? ?????????? ?? ??????????? ?? ???????, ???????? ? ????????? ??????; Wait Statistics (?????????? ????????) ? ???? ?????? ?????? ?????????? ?????????? ?? ????????? ?? SQL Server. ?????? ????? ???????? ???-
??????, ????? ??????? ?? ??????? ??????-?? ??????? (??????????? ??????, ???????? ???????? ?????/?????? ? ?. ?.). ?????? ? ??????? ?? ??????? Oracle, ????????? ? ???????? ??????? ????? ??? ???????????? ??????? ? ??????????? ?????? ?? ?? ??????; User Settable (????????????? ?????????????) ? ??? ??????????? ??????, ???????? ??? 10 ????????? ???????? ??????????????? ?? ???? Transact-
SQL ??? ?????? ???????? ???????? sp_user_counter1
, sp_user_counter2
? ?. ?. ???? ????? ????????? ???????????? ? ??? SQL Server Agent: Alerts (??????????????) ? ???? ?????? ???????????? ?????????? ? ???-
???????? ??????????????? SQL Server Agent. ? ??? ???? ????? ??? ????-
????: Activated Alerts (??????????? ??????????????) (????? ?????????? ??????????????, ??????? ????????? ? ??????? ??????? ???????) ? Alerts Activated/Minute (?????????????? ?????????????? ? ??????) (????????-
?? ??????????, ??????? ????????? ?? ????????? ??????); Jobs (???????) ? ?????????? ? ???????? SQL Server Agent (??????? ???? ????????? ???????, ??????? ??????????? ? ????????, ??????? ???????? ? ????????? ?????); √лава 11 44
8
Job Steps (????? ???????) ? ?????????? ?? ?????? ??????? SQL Server Agent; Statistics (??????????) ? ??? ????? ??????? ???????????? ???????????? ???????, ??????? ??????????, ??????? ??? SQL Server ??? ??????????? ? ?????????????? ?????? ??????? SQL Server Agent. ????????? ??? SQL Server ????????????? ????? ?????, ?? ?? ???????? ????-
?? ???????????? ???? ????????? ?? ???. ????? ??????????? ???????? ?????-
??? ?????? ????????? SQL Server: Buffer Manager: Buffer Cache Hit Ratio (???????? ??????: ??????? ??-
??????? ? ???) ? ??? ??? ??????????, ??? ??????? ???????, ??????? ??-
??????? ??????????, ?????????? ?? ?????? ???????? ?????? SQL Server. ? ???????? OLTP ???????? ????? ???????? ? ??????? ??????????? ??????? ?????? ??????? ?????? ???? ???? 90% (? ????????? ?????????? ???????-
??, ??? ???? 95%). ??? ???????? ?????? ??????????? ????? ?????? ???-
?????; Buffer Manager: Cache Size (pages) (???????? ??????: ?????? ???? ? ?????????) ? ???? ??????? ??????????, ??????? ?????? ???????? ??? ??? SQL Server. ???????? ????????, ??? ??? ???????? ???????????? ? ??????-
???, ???????, ????? ???????? ?????? ?????? ? ??????, ?????????? ?????-
??? ????? ???????? ?? 8192. ? ?????? ???????? ????? ????????? ?????? ???? ?????? ? ??????? ?????????? ??????????? ?????? ?? ???????. ???? ??? ??????????? ??????, ? ?? ??????? ???????? ????? ????????? ??????, ?? ???????? SQL Server ?? ?????-?? ???????? ?? ????? ???????????? ??????????? ??????. ???????? ????? ??????????? ? ???, ??? ?? ??????-
?? ????????????? AWE, ??? ???????????? ???????? ???????? SQL Server, ??? ?? ??????? ????????? ?????????? ????????? ?????? ? ??????????? ???????; SQL Server Access Methods: Page Splits/sec (?????? ??????? SQL Server: ????????? ??????? ? ???????) ? ??????? ???????? ????? ?????????? ????-
????, ??? ??? ?????????? ???????? ??????? ? ????????? ?????? SQL Server ?????????? ????????? ??????? ?????????? ???????????? ???????? ?? ????????? ??????? ? ???????? ????? ???????????? ???????? ?? ????? ?????. ????? ???????? ?? ??????????? ??????? ????????. ???????? ???-
?? ?????????? ?????? ????? ?????????: ??????? ?????????? ?????? ??? ???????? ? ???????????????. ? ???? ?????? ????? ?????? ?? ????? ?????????? ?????? ???????, ??? ??????? ???????, ? ????? ??????????????? ???????? ????? ????????; ??????????? ???????, ???????? ???????? ????????? Fillfactor
. ???? ???????? ????????? ??????????????? ? ????????? ???????? ????????? ћониторинг и оптимизаци¤ производительности SQL Server 2005 44
9
?????, ??????? ????? ?????????????? ??? ?????????? ????? ??????, ??? ????????????? ??????????? ???????? ????????? ???????; SQL Server Locks: Average Wait Time (ms) (?????????? SQL Server: ??????? ????? ???????? (????????????)) ? ???? ??????? ??????????, ??????? ? ??????? ????????? ????????????? ?????????? ????????? ? ???-
????, ????? ???????? ?? ?????? ??????????. ??????????? ?????????? ???????? ????? ???????? ????????? ??????? ?? ????? ??????, ?????-?? ??????? ???????? ??? ???? ?????????? ????? ?????????? ??????. ????-
??? ??????? ???????? ????? ???????? ????? ???????? ???????? ? ?????-
??????? ? ????? ???? ??????. ???????? ??? ?????? ? ???????????? ????? ?????????????? ? ????. 11.5.7; SQL Server Access Methods: Full Scans/sec (?????? ??????? SQL Server: ?????????? ???????? ??????? ???????????? ?????? ? ???????) ? ???? ??????? ??????????, ??????? ???????? ??????? ???????????? ?????? (??? ????????? ? ????????) SQL Server ????????? ? ???????. ??? ???????? ?????? ????? ???????? ?????????? ????????? ? ?????-?? ?????????? ???????? ?? ??????. ?????? ???? ??????? ??????? ?????????? ???????? ??????? ???????????? ?????????? ? ???? ??????, ????????????? OLTP-
???????, ?? ?????? ????????, ??? ???????? ? ???? ???? ?????? ???????-
?????. ?????? ??????? ??????? ???????? ???????? ????? ???????? ????? ??????????? ? ???, ??? ???????????? ????????? ??????????? ?????? ??? ? ??????????, ? ?? ?? ???????. ??? ??????????? ??????? ???????? ????? ?????????????? ? ????. 11.5.5, ? ??? ?????? ???????? ? ? ????. 11.5.8. «адание дл¤ самосто¤тельной работы 11.2. ѕриемы работы с —истемным монитором ???????: 1. ????????? ? ???? HTML ????? ????????? ?????????? ????????, ??????-
?????? ?? ?????????. 2. ??????????? ???? ???? HTML ??? ???????? ?????? ???????. ?????????? ????????? ??? ???? ?????? ???????????? ? ??????? PerfTable
? ???? ???-
??? AdventureWorks
. 3. ??? ?????? ??????? ????????? ?????? logman
????????? ????????? ???? ??????, ????????? ????? CopyPerson.dtsx, ????????? ???? ? ????????????-
??? ?????? 10.1, ? ????? ??? ?????? ??? ?? ??????? logman
?????????? ???? ??????????. 4. ?????????? Excel ???????? ?????? ?? ?????? ????????? ?????????? ? ??????????????? ????????? ???????? ?????????? ?? ????? ???????. ????-
√лава 11 450 ??????????? ????????? ????? ?????????, ????????, ???, ??? ??????????-
?? ?? ???. 11.8. ???. 11.8. ?????????? ?????? ??? ??????? ????????? ?????? ???????? ?????????? ???????: ? ?????? 1 ??????? ? ?????????? ?????? ????????? ?????????? ???????? ? ???? HTML: 1. ???????? ??????? ?????????????????? ?? ????? ?????????? (???? | ????????? | ????????????????? | ??????????????????). 2. ????????? ???? ????????? ??????? ? ???????? ?????? ??????? ???? ?? ???????? ? ?????? ????? ??????. ? ??????????? ???? ???????? ?????-
?? ????????? ??? ? ??????? ???, ????????, C:\PerfCounters.html. ? ?????? 2 ??????? ? ????????????? ????? HTML ??? ???????? ???????: 1. ? ???? ???? | ????????? | ????????????????? ???????? ??????? ??-
??????? ?????? (ODBC). ? ??????????? ???? ????????? ?? ??????? ????????? DSN ? ??????? ?????? ????????. 2. ? ???? ?????? ???????? ???????? ??????? SQL Server ? ??????? ?????? ??????. 3. ?? ?????? ?????? ????????? ??????? SQL Server ??????? ??? ????????? ?????? (????????, PerfAW
) ? ???????? ??? ????????? ?????? SQL Ser-
ver 2005. ћониторинг и оптимизаци¤ производительности SQL Server 2005 451 4. ?? ????????? ?????? ???????? ????????? ??????????????, ?????????-
??? ?? ????????? (???????? ??????????? ??????? ?????? Win-
dows NT). 5. ?? ????????? ?????? ?????????? ?????? ???????????? ?? ????????? ???? ?????? ? ???????? ???? ?????? AdventureWorks
. ??????? ?????? ?????, ? ????? ??????. ? ????????? ???? ????????? ???????? ODBC ??-
????? ?????? ????????? ???????? ??????, ? ????? ? ?????? OK. 6. ? ??????? ?????????????????? ????????? ???? ??????? ? ???????-
??? ??????????????????. ???????? ?????? ??????? ???? ?? ??????-
???? ??????? ????????? ? ? ??????????? ???? ???????? ????? ??-
??????? ??????? ??. ? ???? ?????? ????? ??????? ??? ?????????? ???? ????? (C:\PerfCounters.html) ? ??????? ?????? ???????, ? ????? ?????-
?? ?????? OK ? ???? ??????????????. 7. ? ???? ????? ????????? ??????? ??????? ??? ???????????? ??????? (????????, Log1
) ? ??????? OK. ????????? ???? ??????? ???????. 8. ?? ??????? ????? ? ???? ?? ????? ??????? ??? ????? ??????? ?????? ? ??? ?????? ?????? ?????? ?????? ?????????? ??????. 9. ????????? ?? ??????? ????? ???????? ? ? ?????? ??? ????? ?????-
??? ???????? ???? ?????? SQL, ? ????? ??????? ?????? ?????????. 10. ? ??????????? ???? ????????? ? ?????? DSN ??????? ???????? ??????-
??? ???? ???????? ?????? PerfAW
? ??????? ?????? OK. 11. ????????? ?? ??????? ?????????? ? ? ?????? ?????? ??????? ????????-
?? ????????????? ? ????????? ???????. ??????? ?????? OK, ????? ??-
????? ???? ??????? ??????? ? ??????????? ????????? ?????????. ? ?????? 3 ??????? ? ?????? ??????? ?? ????????? ??????: 1. ??? ??????? ??????? ????????? ? ????????? ?????? ???????: logman start Log1 2. ????????? ????? CopyPerson.dtsx
?? ??????????. 3. ????????? ???????: logman stop Log1 ????? ?????????? ???? ??????. ? ?????? 4 ??????? ? ?????? ????????? ?????? ? Excel: 1. ????????? Microsoft Excel. ? ???? ?????? ???????? ?????? ??????? ?????? | ??????? ??????. √лава 11 45
2
2. ? ??????????? ???? ????? ????????? ?????? ? ?????? ???? ?????? ???????? ????????? ???? ???????? ?????? PerfAW
? ??????? ????-
?? OK. 3. ? ?????? ?????? ???????? ??????? CounterData
? CounterDetails
, ????-
??????? ?? ?? ????? ????????? ? ?????? ??????? ??????? ?????? ? ??-
????? ?????? ?????. 4. ?? ?????? ?????? ?????? ???????? ??????? CounterName
, ? ?????? ?????-
????? ???????? "?????", ? ? ?????? ???????? ? % ??????? ??????????-
??? ??????????. ?????? ??????? ?????? ?????. 5. ?? ????????? ?????? ?????????, ??? ????????????? ?????????? ? ????-
????? ??????? ?????? ? Microsoft Office Excel ? ??????? ?????? ??-
????. ? ???? ?????? ????? ??????? ?????????, ??? ??????? ?????? A1 ?? ????????? ????? ? ??????? ?????? OK. 6. ? ????????? ??????? ???????? ??? ???????? ? ???????? CounterDateTime
? CounterValue
? ? ???? ??????? ???????? ?????????. ? ?????? ????? ???????? ???????? ??????, ?????? ?????? ????????? (? ??????????-
?? "?????? ?????????? ???????? ???????? ?? ??????? ??? ?? ????????-
??") ? ??????? ?????? ?????. 7. ?? ?????? ???? ??????? ???????? ???????? ????????, ???????????? ?? ?????????, ? ??????? ?????? ?????. 8. ?? ????????? ???? ??????? ?? ??????? ??????? ??????? ?????? ????-
???? ??????? ? ??????? ?????? ?????. 9. ?? ????????? ???? ??????? ?????????? ????????????? ? ????????? ?? ????????? ????? ? ??????? ?????? ??????. ????? ?????? ????? ???? ? ?????????? ?? ????????? ???????? % ??????? ???????? ??????????. 10. ???????? ?????? ??????? ???? ?? ????? ?? ??????? ? ? ??????????? ???? ???????? ???????? ????? ??????. ? ??????????? ???? ???????? ??? ????? ?????? ???????? ? ??????? ?????? OK. ?? ????????? ????? ????????? ????? ??????. 11.5. ќптимизаци¤ работы SQL Server 11.5.1. ќбщие вопросы оптимизации работы SQL Server ? ?????????? ???????? ?? ????????????? ? ????????? ?????????? ??????-
????? ?????????????????? SQL Server 2005. ?????? ?? ???????? ????? ????? ?? ?????? ??????????? ?????????????????? ?????? SQL Server, ?? ? ????-
???? ??. ћониторинг и оптимизаци¤ производительности SQL Server 2005 45
3
????? ??????, ??? ?????????????????? SQL Server ? ??????? ????? ???-
????????, ?? ??????? ????????? ??????? ????????? ????????. ??? ???? ?????????, ??? ?? 80% ?????????????????? ?????????? ??????? ?? ??? ????-
??????? (??????? ???????????? ?????????????, ? ?? ???????????????). ?? ????? ??????, ?????????? ??????? ?? ?????????????????? ?????? SQL Server ????????? ????-???????????? ?????? ? ?????? ???????? ????? ??-
?????????? ?????? ? ???? ??????. ???? ??? ?????????, ?? ?????? ??????? ? ??????????????????? ?? ?????????. ???? ?? ?????? ????? ??????? ????????-
?? ??????? ????????, ?? ????? ?????? ??????????? ?????????????????? ??-
??? ??????????. ???????, ????? ??????? ??????? ?????????? ??????????, ??????????, ???-
?? ?????? ?????????? ????????? ?? ??? ?????????. ???? ????? ???????????? ??? ??????? ?????????? ???? ??????: ?????? ?????????? ? ???????????? ?????????????? (?????? ????, ??? ? ??????, ?????, ??????? ? ?. ?. ? ? ??????????? ?? ???????? ?????????? ??????????) ??????????? ???????? SSIS ? ??????????? ???? ??????-
????????? (Data Warehouse). ????? ??????????, ???????????? ? ?????-
???? ??????, ???????????? ??? ???????????? ??????? ? ??? ???????? ??-
??? OLAP (???? ??? ???????????? ?? ???????????). ??? ???????? ????-
????????? ?????? ??????????? ?????? ? ??????? ?? ???????????; ????? ????????????? ???????????? ?????? ??????? (?????? ???), ?????? ???? ?????? ???????????, ? ????? ?????????? ?? ??? (??????? ?? ??????, ????????????? ???????? ? ?. ?.) ??????????? ? ????? ???? ??????. ???????, ? ??????, ? ?????? ??????? ??????? ????????????? ??????? ?????-
????????. ?????????????? ??????????? ??????? ???????? ? ????? ???? ??? ?????????? ??? ?????? ?????????????? (? ???????? ?????? ??? ?????? ????-
???????? ?? ????????? ???? ?????? ? ?????????? ?????? ??????????) ??-
???? ????? ??????. ?????? ????? ?????????? ???????? ? ??????? ?????? ? ???? ????????? ???????????, ? ??????? ?????????????? ??????? ???????-
???? ?????????? ??????????????? ?????????? ?? ???????????? ??? ??? ???????? ?????? ? ????????????. ?????? ????? ??????????? ??????????, ??????? ?? ?????????????? ?????? ?? ???????, ?????????? ? ?????? ???????? ??????????? ??????????????????. ??? ?? ???????????, ??????? ????????? ? ???????????? ??????????????, ????? ?????????? ? ????????? ????????. 11.5.2. ќптимизаци¤ операционной системы дл¤ работы с SQL Server 2005 ???????????? ??????????? ???????????? ??????? Windows ??? ?????? ? SQL Server 2005 ?? ??? ?????. ????????? ???????????? Windows ? SQL √лава 11 45
4
Server ???????? ? ????? ?????, ?? ??? ??????????? ?????????? ??????? ????? ??????. ???? ?? ??????? Windows ???????? ?????? SQL Server 2005, ?? ??????????? ??? ??????? ??????? ????? ?????? ?????? ???????. ??????? ???? ????????? ????????. ?? ????? ??????, ???????????? ??????? ?? ??????????? Windows ??? ????-
?? SQL Server 2005 ????????? ???????????? ????????, ??????? ??????? ? ?????????? ??????????? ?????. ????????? ?? ???? ????? ???: ??????? ????? ??????? ??????????? (Network Connections) ?? ???? ???? | ?????????; ????? ??????? ???????? ?????? ???????? ???????? (???????? ??? ????? ???? ??? ????? ??????????); ?? ??????? ????? (General) ???????? ????????? ?????? ??????? ? ???-
??? ? ????????? ????? Microsoft (File and Print Sharing for Microsoft Networks) ? ?????? ?????? ???????? (Properties). ????????? ????, ?????-
?????? ??????????????? ?? ???. 11.9. ???. 11.9. ????????? ?????? ?????? ?? ?????????? Windows ? ???? ???? ???????????? ????????? ??? ?????? ?????? (Server). ??? ???? ??? ?????? ?????????????? ? ?????? ???????? ??????????? (Server ћониторинг и оптимизаци¤ производительности SQL Server 2005 45
5
optimization) ?? ?????? ??????????, ??? ?????? ????? ?????????????? ?????-
?????? ?????? ?? ????? ???????: ?????????? ?????????? ?????? (minimize memory used) ? ??? ??????-
??? ????????????? ????????, ??? ???????? ??????????? ?????? ????? ??-
???????? ??????? ???????????, ??????????? ?????????????. ??? ?????-
??? ????? ????? ???????????? ? ????????? ?????????: ????? ?????? ???????????? ??? ??????? ??????? (?. ?. ??? ?????????? ?????????); ????? ??????? ?????? ??????? ? ???????????? ????????? ?????, ?????-
???????? ??? ???????????????? ??????????, ? ?? ??? ?????? (?????-
???, ? ??? ????? ???? ??????, ??????????????? ?????? ??? ?????????? ??????? SSIS); ???????????????? ??????????? (balance) ? ??? ????????????? ????-
???. ?????? ????? ?????????? ?????????????? ????? ????????????????? ???????????? ? ?????????? ????????; ???????????? ?????????? ??????????? ??????? ? ????? ?????? (maximize data throughput for file sharing) ? ???????? ??????????? ?????? ????? ??????? ??? ???????? ???. ??? ???????? ?????????? ??? ?????? ????????? ??????? ? ??????? ??????. ?? ????????? ??? ???????? Win-
dows 2000 ? Windows 2003 ??????????????? ?????? ??? ????????; ???????????? ?????????? ??????????? ??? ??????? ?????????? (maximize data throughput for network applications) ? ???????? ????????-
??? ?????? ????? ??????? ????????? ???????, ????????, SQL Server, Oracle, Exchange Server ? ?. ?. ??? ????????? SQL Server ? Exchange Server ????????????? ????????????? ??????????? ? ??? ????????? (??? ???????-
?? Oracle ? ???). ???? ???????, ???, ????????, ???????? ??????????? ?? ???? ???????? ?????? ?????? ??? ???????? ????????????? ? ?????? ????????? ????? ?????????? ????? ?????? (???????, ??????? ????? ???????????? ???????? ??? ????????? ???????? ??????). ????? ??? ?? ???? ????????????? ????????? ??????? ????-
??? ? ?? ???????? ?????? SQL Server 2005 ? Exchange Server. ???????, ??? ?? ?? ????????? ??????????????? ? ?????? ?????????, ?????? ????? ??? ???? ???????? ??????????. ?????????????? ????????? ????????? ?????????????????? Windows ???-
????? ? ????????? ??????????, ???? ?? ??????? ????????????? ?????? ?????? ?????????. ????????? ???? ????????? ??????????????. ?????-
??? ????????? ????????????? ?? ??????? ????????????? (???. 11.10). ??? ??????????? ?????????????????? ??? SQL Server 2005 ????????????? ????-
?? ???? ??????????? ???, ??? ?? ???. 11.10. ???????, ??? ????????????? ? √лава 11 45
6
?????? ????????????? ?????? ???????? ? ??? ?? ?????????? ??????? HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management\LargeSystemCache
, ??? ? ????????? ??? ?????? Server, ???????-
?????? ?????. ???. 11.10. ????????? ?????????????? Windows ??????? ??? ????????? ?????????? ????????? ????????: ??? ?????? ??????, ??????? ?? ??????? ?? ????????????, ????? ?????-
????. ??? ?????? ? ? ????? ?????? ??????????????????, ? ? ????? ?????? ???????????? ???????; ????? ?? ????????? ??????? ????????????????? ?? ????? ??????? (????-
?????????? ????? ????? ??? ????? ???????????? ???????????? ????????, ????????, Remote Desktop Connection ? ????????? ?????????? ??????? ??????). ???? ?? ???? ???????? ????????????????? SQL Server ????????-
?? ???????????, ? ????? ????? ????????? ?? ?????? ?? ??????? ??????? ??????????????; ћониторинг и оптимизаци¤ производительности SQL Server 2005 45
7
???????, ????????????? ?? ????????????? ?????????????? ?? ??????? ??-
?????? OpenGL; ???????????? ??????????? ??????????? ????? ????? ?????? ??????? ???-
??????????????? ?????? ??????????, ?? ??????? ?????????? SQL Server 2005. ? ??????????? ???????? ??? SQL Server ???????????? ???-
?????? ????????? ?? ?????. 11.5.3. ќбща¤ оптимизаци¤ работы SQL Server 2005 с помощью Best Practices Analyzer ????? ????? ??????????????, ??????? ?????????? ? ???????, ?????????????? ??? ?????????????, ??????? ???????????? ?????????????????? ??????????? ????????, ??????? ????????????? ?? SQL Server ? ???? ?????? ?????????? ? ????????????? ?????????? ????????, ? ??? ????? ??, ??????? ????? ??????-
?? ? ???????? ??????????????????. ????? ???????? ????. ??? ????????? ? ????????? ??????? ?? Web-????? Microsoft ? ?????????? Best Practices Analyzer Tool (BPA). ??? ????? ???????????? ? ????????????? ??? ??????? ????? ??????????? ??? ??????, ? ??????????????? ?????? ??? ??????? ??????? ??? ??????. ???????? ?????????? ????? ???????? ? ?????????? ???????? SQL Server ? ????????? ???? ??? ?????? ?? ???????????? ???????????? ????????. ?????????? ?????? ? Best Practices Analyzer ????? 80. ?????? ????? ??????, ??????? ????? ??????????? ??? ??????? ???????????? ???? ??????, ?? ??-
???? ??????? ???? (???. 11.11). ??????? ???????????? ?? ?????????? ??????????: Backup and Recovery (????????? ??????????? ? ??????????????) ? ???-
????? ? ?????????????? ????? ??????? ?????????? ?????????? ? ???, ??? ????? ??? ?????? ????????? ??????????? ?? ??????????? ??? ???????-
???? ?????, ????? ???? ?????? ??? ????????? ???????????, ?????????? ?? ????????? ??????????? ????????? ??? ??????, ???? ?? ???? ?????? ? ??????? ?????????????? Simple ? ?. ?.; Configuration Options (????????? ???????????? ???????) ? ??? ??????? ??????????, ??? ?? ????????????? ???????? ? ????? ?????? ?????????-
????????? ? ????????????; Database Design (?????? ???? ??????) ? ???? ?? ??????? ??? ?????????? ????? ? ????????? ?? ??????? ?????????? ????????; Database Administration (????????????????? ???? ??????) ? ????????? ?? ?????????? ? ?????????????? ??????, ????? ??????? ?????????? ???-
??????????????, ?????????? ?? ????? ?? ?????? ??? ?????? ??? ?????? ? ???????? ??????????, ????????? ?? ????????? ????????? ??? ??????; √лава 11 45
8
???. 11.11. ???? ?????? ?????? ? Best Practices Analyzer Deprecation (?????????????) ? ???????? ?????????? ???????? ?? ??????-
??????? ????????????????? ??????, ???????, ???????? ????????; General Administration (????? ????????????????? ???????) ? ????? ???????? ????????? ?? ???????????? ????????, ????? ?????? ?????? ?? ??? ??????????, ??? ?? ???????????????? ???????? ? ????????? ????? ?????? ? ?. ?.; TSQL ? ?????????? ????????????????? ???????????? Transact-SQL ? ????? ??????; Yukon Readiness (?????????? ? ?????) ? ?????? ??????, ??????????? ? ????? ???????????? SQL Server 2005; Full-Text (??????????????) ? ?????? ??? ?????????? ??????????????? ??????????????; Generic (?????) ? ? ???? ?????? ?????? ?? ?????? ?????????? ?????? ?????????? ? ????????? ? ????????? ??? ???????? ??? ??????. ? ?????????, ?? ?????? ????????? ???? ????? Best Practices Analyzer ??? SQL Server 2005 ???? ??? ?? ????????. ???????????? SQL Server 2005 ????-
??????? ???? ???????????? Best Practices Analyzer ??? SQL Server 2000 (??-
??????? ????? ?????? ?? ?????? ????). ?????? ????????? ??????? ??? ???-
??????? ? SQL Server 2005 ???????? ?????? ? ?????? Best Practices Analyzer. ????? ??????? ???????? ????????? ? ?????????? ???????? ??????. ћониторинг и оптимизаци¤ производительности SQL Server 2005 45
9
11.5.4. ќптимизаци¤ подключений к SQL Server 2005 ?????? ??????? ??????????? ?????????? ? ?????????????? SQL Server 2005 ? ??? ??????????? ??????????? ? ???????. ???????????? ? SQL Server ????? ??????? ?????????. ???? ????? ???????????? ??? ????????: ??????????? ?? OLE DB ? ???????? ????????????? ? ??????????? ???????. ???? ?????????? ????? ??????????? ??? Windows (??? ?????? ? ??????????? ???????), ????????????? ??????????? ?? OLE DB ? ??? ? ????? ??????? ??????; ??????????? ?? ODBC ? ??????????????, ?? ?? ?????????? ??????? ????? ?????????? ??????; ??????????? ? ?????????????? BDE (Borland Database Engine) ? ?????? ???????????? ? ???????????, ?????????? ?? ????? Delphi. ??????? ????? ???????? ??????????? ?? OLE DB. ??????? ??????: ??? ???-
????????? ?????? ???? ????????? ???????????? ??????????? COM-???-
???????. ????? ????, ?? ????????? ? ODBC ? BDE ?????????? ??????????? ??????? ?????????? ??????????????. ??????? ? ???????? ???????? ??????? ? ??? ???????, ????? ? ??????? ?? ?????????? ????????? ?????????? ??????? ?????????? ?????????? (????????, ??? ???????? ??????? ???????). ???????, ?????? ??????????? ?????????? ?????????????? ?????????? ???-
??????? (? ??? ???? ????? ???????? ???????? ????????? ??? ???? ???????, ? ?? ????? ???????). ?????? ?????????? ?????, ??????? ????????? ???????? ??????????? ?? ODBC ?? ??????????? ?? OLE DB, ??? ???? ??????? ??? ????????? ????????? ??? ??????????. ???????????, ??? ? ??? ???? ????????? ???????? ?????? ODBC, ??????? ?????????? SQL1
, ??????????? ?? ??????????? ? ???? ?????? SQL Ser-
ver 2005. ?????? ???? ???????? ?????? ODBC ???????????? ?????????? ???????????. ??????????? ??? ?? ????????????? OLE DB ????? ??????-
??? ???????. ??????, ??? ????? ???????, ? ??????? ?? ????? ???? ??????????? ?? OLE DB (???? UDL ? User Data Link). ????????????? ??? ? ?????????????? ??-
???? ????? ???: ??????? ?? ????? ????? ?????? ???? (??? ?????, ????????, ????? ????-
???? ?????? ??????? ???? ?? ??????? ???????????? ? ????? ? ????????-
?? Windows ? ? ??????????? ???? ??????? ??????? | ????????? ????-
????); ???????? ? ????? ????? ?????????? ?? udl. ???????????, ??? ???? ?????? ???? ??????? ????? ?????????? ??? ????????? ????? ??????. ???????? √лава 11 460 ??? ????? ?? ??????? ??? ? ???? ???????? ????? (???? ?????? ? ???-
???????); ???????? ????????, ??? ????? ????????? ?????????? ????? ????? ?????? ??? ??????? ????? ? ?????????? ?????????. ??????, ???? ???? ??????. ????? ????????? ? ??? ????????? ??????????? ?? OLE DB, ?????????? ???????? ?? ???? ??? ???? ?????. ????????? ???? ????????? ??????? ??????????? OLE DB; ?? ??????? ????????? ?????? ?????????? ??????? ?????? ??? ?????-
???? ?????? (? ?????? ?????? ? Microsoft OLE DB Provider for SQL Server). ????? ?? ??????? ??????????? ?????????? ????????? ???????-
?? ??????????? ? SQL Server 2005 (????????, ???, ??? ???????????? ?? ???. 11.12). ????? ????? ????????????? ?????? ?????? ????????? ???-
????????, ????? ?????????????? ??????????? ????????? ??????????, ? ?????? ?????? OK, ????? ??????? ???????? ????? ? ??????????? ????- ?????. ???? ??????? ???? ???? ? ????????, ?? ? ??? ????? ??????? ?????? ????????-
???, ???????, ????????, ????? ???????????? ??? ???????? ?????????? ???-
???????. ?????? ??? ????? ??? ????. ???. 11.12. ????????? ??????????? ?? OLE DB ћониторинг и оптимизаци¤ производительности SQL Server 2005 461 ?????????, ??? ????? ???????, ? ???????????? ???? ???? ??? ???????????-
?? ????????? ?????? ODBC. ? ???????????? ? ????????, ? ??? ???? ??????-
??? ???????? ?????? ODBC (System DSN), ??????? ?????????? SQL1
? ??-
???????? ? ???? ?? ??????? SQL Server 2005 ? ??? ?? ??????? ???????????-
???. "?????????" ???? ????????, ????? ?? ??????? ?? OLE DB, ????? ????? ??????: ???????? ???????? ??????? (?????? ? ????????? ?????? regedit
); ????????? ?????? HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\???_??????_ ?????????_??????
(? ?????? ?????? SQL1
); ?????? ????? DLL ??? ????????? Driver (???????) ??????? ????????? ???? UDL (???. 11.13). ???. 11.13. ?????? ??????????? ?? ODBC ?? ??????????? ?? OLE DB ????? ????? ???? ??????????, ????????? ? ????? ????????? ?????? ODBC, ?? ????? ???? ????? ???????? ?? OLE DB. ? ????????? ????????? ??? ????? ??????????? ???????? ???????? ???????? ?????? ????? ???????? ? ???- ?????. ??????? ??? ????????? ???????, ????????? ? ?????????? ?????????? ???-
???????? ? SQL Server: ? SQL Server 2005 ????????????? ??????????? ?????????? ??? OLE DB ? SQL Native Client ? ??????? ??????????? ????? ????????????. ???????-
??? ????? ?? ????? ????????????, ??????? ?????????? MARS (Multiple Access Result Set ? ????????????? ???????? ?????? ???????????), ? ??-
??????? ??????? ???????? ????? ?????? ???????? ?????????????????? ??? ?????? ??????? ? SQL Server. ??? ????????????? ?????????? MARS ?????? ????? ???????? ? ??????????? ?????? ? ?????????? ????????? ??????? ?? SQL Server, ?? ?????????, ???? ?????? ????? ?? ???????, ??-
?????????? ?????; ???? ???????? ? ??? ????? ????? (???? ???? ?? ?????), ? ????? ????????? ?????????? ?????????? ???????????? (???????? ????????, ????????, ??? √лава 11 46
2
call-??????), ?? ????? ????? ???????? ? ????????????? ??????? ??? ??-
?????????? ??????????? ?????????????. ?????? ????? ?????? ???????? ? ????? ???????? ??????????? ? ??????? SQL Server (?????????? ??????-
???? connection pooling) ? ?????? ????????? ??????????? ?????????????. 11.5.5. ќптимизаци¤ системы индексов ???? ?? ???????????? ????????? ??????????????????, ??????? ????? ???? ??????? ??????, ? ??? ??????????? ??????? ????????. ???????, ????????-
??? ??????? ? ???? ?????? ? ?????? ?????? ????????????? ????????????, ?? ???????? ??????????, ??? ??? ?????? ????? ??? ?? ???. ???? ????? ????????-
???? ??????? ?????? ????????? ??????? (???????, ????????, ???????????? ???????????? ???????? ? ???????????? ??????? ???????), ????? ?? ??????-
????? ??? ??????????? ???????? ??? ??????????? ????????. ? ?? ?? ????? ?? ?????? ??????? ???????? ?????????? ?????????????? ???????? ????? ???????? ? ????????? ?????????????????? ?????????? ???????? ? ????. ???????, ??? ??????????? ??????? ???????? ????? ??????????? ? ??????-
???????. ??? ???? ???????????????? ?????????? ????? ?? ??????????. ? ?????? ??? ??????????? ??????? ???????? ????????? ?? ??????? ?????-
????? ? ???????? ?????? ? ?????? ?????????, ??????? ????????? ??????-
??????, ?????????? ????? ?????????? ???????? ? ??????? ??????????, ????? ??????? ????? ????????????? ?????????????. ?????? ?? ???????? ??? ????-
??? ?????????? ????? ?????? ? ????????????? ? ??????? ???? ?????? ? ??-
???????? ???????? ??????????? ????????, ??????? ????????? ???????????? (? ??? ?????? ?? ??? ??????? ?? ????????? ???????????), ???????????? ??-
????????? ??????? ???????? ??????? ? ??? ?????????????????? ????? ???-
????. ??????? ??????? ???????? ????? ?????? ? ?????????????? ?????? ?????????? ????????? Database Tuning Advisor. ??? ???????? ?????????? ??-
??????? ?????????? ? ??????????? ???????? ??? ????, ????? ?????????? ????????? ????? ???????? ??? ???? ??????. ??????, ??? ????? ??????? ??? ?????????? Database Tuning Advisor, ? ??-
????? ?????????? ? ???????? ?????????????. ????? ????? ??? ??????? ????-
?????? SQL Server Profiler (??. ????. 11.2.3), ?????? ?????? Tuning. ???-
??????? ????? ???????? ?????????? ? ?????? ????????????? ? ??????? ???-
????????????? ???????, ???????? ???????? ???. ??????? ????? ??????????? ???????????????? ? ??????? ?? ??????? SQL Server, ?? ??? ??????? ????? ???????????? ? ????? ??????????? ?? ?????, ? ?????? ????? ?????? Transact-
SQL ? ????? ??????? ? ??????????? sql. ????? ???? ??? ???????? ?????????? ? ????????, ??????????? ??????????-
????, ??????, ????? ????????? Database Tuning Advisor (???? ???? | ???-
?????? | Microsoft SQL Server 2005 | Performance Tools | Database Engine ћониторинг и оптимизаци¤ производительности SQL Server 2005 46
3
Tuning Advisor). ??????, ??? ??? ??????????? ???????, ? ???????????? ? ???????, ??? ???????? ????? ????????????? ??????????? ????????. Database Tuning Advisor ????? ????????????? ??????????? ? ????? ??????? ????????-
??? ????????? ??????????. ????? ????, ???? ?????? ????? ?????????????? ??? ???????? ????????? ?????????? Database Tuning Advisor, ??????? ??-
???????? ??????? ????? ??????????? ?? ????????? ?????. ????? ??????????? ? ??????? ????? ???? ????????? ????????? Database Tuning Advisor. ? ????? ????? ??????????? ???? Session Monitor (??????? ??????) ?? ??????? ??????? ???????????. ??????? ??????? ??? ???? ????? ???????? ?? ??????, ??? ??????? ???????? ?????? ? ??????? ????????????. ?? ???????????? ???? ??? ???????? ?????? ?? ?????? ??????? ?????, ?????-
?????? ???, ?????????????, ???????, ????????? ?????? ? ?. ?. ????? ??????-
?????? ? ??? ???? ?????????? ???????????: ???? ??????????????? ???????? Import Session Definition (????????????? ??????????? ??????), ?? ????? ???????? Database Tuning Advisor ???? ? ??????????? xml ? ??????????? ??????, ???????, ????????, ?????????? ?? ????????, ??????? ??????? ?? ?????????????????? ??? ?? ?????????????? ???????? ????? ???????. ? ??-
???????? ? ??? ?????????? ??????????? ???????????? ???????? Database Tun-
ing Advisor ??? ????, ????? ?????????, ????? ???????? ??????? ????? ??????? ?????????? ??????, ??????? ?? ?????????? ???????. ?????? ? Database Tuning Advisor ??????????? ???????? ???? ? ??????????? ? ??????? ??????. ?????????? ? ??? ???? ??? ???????: General ? Tuning Options (????????? ???????????). ??????, ??? ?????????? ???????, ? ??-
????? ???????? ??????? ???????? (workload). ?? ????? ???? ??????? ??????-
????? ?? SQL Server (????????? ???????????????) ??? ???? ?????? ?? ???? ?????: ???????? ???? ???????????, ????????? ??????????????? (??? ????? ?????? ???????????? ?????????? trc); ???? ??????????? ? ??????? XML (????????? ???????? ????? ????????? ? ???? ???????, ??????????? ??????? File | Save As (???? | ????????? ???) ? ??????????????); ?????? ????????? ???? ? ????????? Transact-SQL (??? ???? ???????????? ?????????? sql). ???????? ???????? ?? ???????? Database for workload analysis (???? ?????? ??? ??????? ??????? ????????). ?? ?????????? ???? ??????, ? ??????? ????? ??????????? ????????? ??????? Database Tuning Advisor. ???????, ????? ????????? ??????? ?? ?????? ??????????? ?? ? ???? ?????? master
(??? ???????????? ?? ?????????), ?? ? ??????? ???? ??????. ????? ????? ??????-
?????? ??? ????????? ???????? ??????? ????? ???? ??????, ?????????? ???-
?????? ??? ???? ????. √лава 11 46
4
? ?????? ????? ??????? General ?? ?????? ??????? ???? ?????? ? ???????, ??? ??????? ????? ????????????? ?????? ??????? ???????? (????? ??????? ?????? ??????, ????? ???????? ?? ??????? ? ?????? ??? ???? ??????). ????-
????????? ???????????? Database Tuning Advisor ?? ????????? ? Index Tuning Wizard ? SQL Server 2000 ???????? ??, ??? ?????? ????? ??????????? ?????? ????? ?????????? ??? ??????. ??????? Tuning Options ????????????? ??? ????????? ?????????? ???????. ? ??????????? ??????? ???????????? ??????????? ????? ?????????: ?? ???????????? ????? ??????? (????? ?????? Limit tuning time). ??? ??? ??????????, ?????? ????? ??????????? ?? ????????? ?????. ????? ?????? ???????? ? ??????? ???? ?????? ????? ??????? ???????????? ???????? ??????? ?? ?????? ??????? ???????, ??????? ??????????? Database Tuning Advisor. ??????? ??, ?????? ??????????? ?? ????? ????????? ?????????-
??? ???????? ???????; ????????????? ??????????? ?????????? ???????? ? ??????????????? ????????????? (?????????? ????????????? Physical Design Structures to use in database (????????? ??????????? ??????? ??? ????????????? ? ???? ??????) ? ????????? Indexes and indexed views). ??? ????????? ?????-
??????? ???????? ??? ?????????? ???????. ??? ????????? ????????? ??-
??????????? (????????????? ?????????? ?????? ????????, ?????? ?????-
??????? ????????, ?????? ??????????????? ????????????? ??? ?????? ???????????? ??????? ??? ????????? ??????????? ?? ???????? ?????) ???????????? ????????, ??????? ????? ??????????????? ??? ???????; ???????????? ?????? ??????????? ??????????????? (?????????? ????-
????????? Partitioning strategy to employ (????????? ??????????????? ??? ??????????) ? ????????? Full partitioning); ?? ????????? ?????-???? ???????????? ?????????? ????????? ???????? (?????????? ????????????? Physical Design Structures to keep in database (?????????? ????????? ?????? ??? ?????????? ? ???? ??????) ? ??????-
??? Do not keep any existing PDS). ??? ???? ????? ?????????????? ????-
??????? ?? ?????? ?? ???????? ????? ????????, ?? ? ?? ???????? ????-
????????, ???? ??? ??????????? ?? ????????????. ?????????? ? ???, ??-
??? ??????? ?? ???????????? ? ?????? ????????? ???????? ?? ????????? ??????, ????? ????????? ????? ????????, ? ?????????? ??????? ??????? ????? ??? ?? ??????????. ????? ???? ??? ??? ????????? ?? ???? ??????? ???????????, ????? ?????? ?????? Start Analysis (?????? ??????) ?? ?????