Математика

Физика

Химия

Биология

Техника и    технологии

Pro SQL Server 2005 Replication 2006 Sujoy Paul str959
Pro SQL Server 2005 Replication 2006 Sujoy Paul 959




Contents at a Glance
About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
nCHAPTER 1 Introduction: Distributed Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
nCHAPTER 2 Replication Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
nCHAPTER 3 Types of Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
nCHAPTER 4 Configuring Snapshot Replication Using the GUI . . . . . . . . . . . . . . . . 89
nCHAPTER 5 Configuring Snapshot Replication Using T-SQL . . . . . . . . . . . . . . . . 133
nCHAPTER 6 Snapshot Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
nCHAPTER 7 Internals of Snapshot Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
nCHAPTER 8 Configuring Transactional Replication Using the GUI . . . . . . . . . . . 251
nCHAPTER 9 Configuring Transactional Replication Using T-SQL . . . . . . . . . . . . 301
nCHAPTER 10 Internals of Transactional Replication . . . . . . . . . . . . . . . . . . . . . . . . . 357
nCHAPTER 11 Configuring Merge Replication Using the GUI . . . . . . . . . . . . . . . . . . 445
nCHAPTER 12 Web Synchronization with Merge Replication. . . . . . . . . . . . . . . . . . 491
nCHAPTER 13 Configuring Merge Replication Using T-SQL . . . . . . . . . . . . . . . . . . . 525
nCHAPTER 14 The Internals of Merge Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
nCHAPTER 15 Backup and Recovery of Snapshot and Transactional
Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651
nCHAPTER 16 Backup and Recovery of Merge Replication. . . . . . . . . . . . . . . . . . . . 715
nCHAPTER 17 Optimizing Snapshot Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
nCHAPTER 18 Optimizing Transactional Replication . . . . . . . . . . . . . . . . . . . . . . . . . . 803
nCHAPTER 19 Optimizing Merge Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867
nCHAPTER 20 Heterogeneous Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
nAPPENDIX A E-R Diagram of the mysales Database. . . . . . . . . . . . . . . . . . . . . . . . . 943
nAPPENDIX B SQL Code for the Database. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947
nREFERENCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 959
nINDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 961
v

Contents
About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
nCHAPTER 1 Introduction: Distributed Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Distributed Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Methods of Distributing Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Distributed Data Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
SQL Server 2005 Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
nCHAPTER 2 Replication Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Publisher-Subscriber Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Components of Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Distributor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Publisher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Subscriber. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Article. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Agents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Physical Replication Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Publisher/Distributor–Subscriber Model . . . . . . . . . . . . . . . . . . . . . . . 27
Central Publisher–Multiple Subscribers Model. . . . . . . . . . . . . . . . . . 27
Central Subscriber–Multiple Publishers Model. . . . . . . . . . . . . . . . . . 29
Multiple Publishers–Multiple Subscribers Model . . . . . . . . . . . . . . . . 30
Installing and Configuring Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Installing SQL Server Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Configuring with the GUI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Configuring Database Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Configuring with T-SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
vii
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
nCHAPTER 3 Types of Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Snapshot Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
The Snapshot Agent Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
How Snapshot Replication Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Transactional Replication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
How Transactional Replication Works . . . . . . . . . . . . . . . . . . . . . . . . . 69
Immediate Updating and Queued Updating Subscriptions . . . . . . . . 70
The Log and Queue Reader Agent Profiles . . . . . . . . . . . . . . . . . . . . . 74
Peer-to-Peer Transactional Replication . . . . . . . . . . . . . . . . . . . . . . . . 77
Merge Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
The Merge Agent Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
nCHAPTER 4 Configuring Snapshot Replication Using the GUI . . . . . . . . . 89
Configuring Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Configuring a Subscription. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Configuring Push Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Configuring Pull Subscriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Adding and Deleting an Article . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
nCHAPTER 5 Configuring Snapshot Replication Using T-SQL. . . . . . . . . . 133
Dropping Subscriptions and Publications . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Dropping a Pull Subscription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Dropping a Push Subscription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Dropping a Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Configuring a Publication Using T-SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Creating a Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Creating a Snapshot Agent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Granting Publication Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Creating Articles for Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Starting the Snapshot Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
viii nCONTENTS
Configuring a Subscription Using T-SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Configuring Push Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Configuring Pull Subscriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Configuring Anonymous Subscriptions . . . . . . . . . . . . . . . . . . . . . . . 157
Snapshot Replication Stored Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
nCHAPTER 6 Snapshot Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Locating the Snapshot Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Securing Snapshot Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Transmitting and Storing Snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Transferring Compressed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Transferring a Snapshot with Other Methods . . . . . . . . . . . . . . . . . . 169
Locating the Snapshot Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Determining the Types and Size of Snapshot Files . . . . . . . . . . . . . 171
Transmitting Snapshots Using FTP. . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
nCHAPTER 7 Internals of Snapshot Replication . . . . . . . . . . . . . . . . . . . . . . . . 185
On the Publisher Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
The Publication Access List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
The Publication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
The Snapshot Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
The Distribution Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
The Miscellaneous Clean Up Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
On the Distributor Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
The Distribution Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
The MSDB Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
On the Subscriber Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
nCHAPTER 8 Configuring Transactional Replication Using the GUI . . . 251
Configuring Publications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Configuring Standard Transactional Publications. . . . . . . . . . . . . . . 253
Configuring Transactional Publications with Updatable
Subscriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
nCONTENTS ix
Configuring Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Configuring Updatable Subscriptions for Transactional
Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Switching Update Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Configuring Peer-to-Peer Transactional Replication . . . . . . . . . . . . . . . . . 286
Setting Up the Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Enabling the Publication for Peer-to-Peer Replication . . . . . . . . . . 288
Initializing the Database Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Configuring Peer-to-Peer Topology . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
nCHAPTER 9 Configuring Transactional Replication Using T-SQL. . . . . 301
Configuring Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Configuring Standard Transactional Publication. . . . . . . . . . . . . . . . 303
Configuring a Push Subscription for Standard Publication . . . . . . . 313
Configuring a Pull Subscription for Standard Publication . . . . . . . . 315
Configuring Transactional Publication with Updatable
Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Configuring a Pull Subscription for Immediate Updating . . . . . . . . 322
Configuring a Push Subscription for Immediate Updating . . . . . . . 327
Configuring a Push Subscription for Queued Updating . . . . . . . . . . 329
Configuring a Pull Subscription for Queued Updating . . . . . . . . . . . 330
Switching Between Immediate and Queued Updating
Subscriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Configuring Peer-to-Peer Transactional Replication . . . . . . . . . . . . . . . . . 335
Adding the Publication on Node A. . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Adding the Articles to the Publication on Node A . . . . . . . . . . . . . . . 336
Adding the Subscription on Node A . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Adding the Push Subscription Agent on Node A. . . . . . . . . . . . . . . . 337
Adding the Publication on Node B. . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Adding the Articles to the Publication on Node B. . . . . . . . . . . . . . . 339
Adding the Subscription on Node B . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Adding the Push Subscription Agent on Node B. . . . . . . . . . . . . . . . 340
Checking the Configuration for Peer-to-Peer Replication. . . . . . . . 341
Configuring Bidirectional Transactional Replication . . . . . . . . . . . . . . . . . 343
Transactional Replication Stored Procedures. . . . . . . . . . . . . . . . . . . . . . . 351
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
x nCONTENTS
nCHAPTER 10 Internals of Transactional Replication . . . . . . . . . . . . . . . . . . . 357
Concurrent Snapshot Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
The Transaction Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
The Log Reader Agent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
The Queue Reader Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Transactional Replication with Queued Updating . . . . . . . . . . . . . . . . . . . 383
The Publication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
The Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Conflict Detection and Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
Transactional Replication with Immediate Updating . . . . . . . . . . . . . . . . . 399
The Publication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
The Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Peer-to-Peer Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
Standard Transactional Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
The Publication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
The Distribution Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
nCHAPTER 11 Configuring Merge Replication Using the GUI. . . . . . . . . . . . 445
Configuring Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
Configuring a Publication for Download-Only Articles. . . . . . . . . . . 446
Configuring a Publication for Standard Articles . . . . . . . . . . . . . . . . 454
Adding Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
Configuring Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Configuring Pull Subscriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Configuring Push Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
nCHAPTER 12 Web Synchronization with Merge Replication . . . . . . . . . . . 491
Web Synchronization Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
Configuring a Publication for Web Synchronization. . . . . . . . . . . . . . . . . . 492
Configuring IIS for Web Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
Configuring SSL for Web Synchronization . . . . . . . . . . . . . . . . . . . . . 495
Configuring the IIS Server for Web Synchronization . . . . . . . . . . . . 504
Setting Permissions for the SQL Server Replication Listener. . . . . 512
Running IIS in Diagnostic Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
nCONTENTS xi
Configuring Subscriptions for Web Synchronization . . . . . . . . . . . . . . . . . 516
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
nCHAPTER 13 Configuring Merge Replication Using T-SQL . . . . . . . . . . . . . 525
Configuring Publications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
Configuring Publication with Download-Only Articles . . . . . . . . . . . 527
Configuring Publication with Standard Articles . . . . . . . . . . . . . . . . 533
Configuring Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
Configuring Client-Type Push Subscriptions for Download-Only
Articles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
Configuring Pull Subscriptions for Standard Articles . . . . . . . . . . . . 569
Identity Range Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
Configuring Automatic Range Management . . . . . . . . . . . . . . . . . . . 573
Merge Replication Stored Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
nCHAPTER 14 The Internals of Merge Replication . . . . . . . . . . . . . . . . . . . . . . . 583
The Merge Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
Subsystems and Proxies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
Using SQLCMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
The Roles of Subsystems and Proxies . . . . . . . . . . . . . . . . . . . . . . . . 597
Publication and Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610
Publication with Download-Only Articles. . . . . . . . . . . . . . . . . . . . . . 611
Publication with Standard Articles and Parameterized Filters . . . . 627
Conflict Detection and Resolution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650
nCHAPTER 15 Backup and Recovery of Snapshot and Transactional
Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651
Snapshot Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651
Backing Up the Publication Database . . . . . . . . . . . . . . . . . . . . . . . . 653
Restoring the Publication Database . . . . . . . . . . . . . . . . . . . . . . . . . . 663
Considerations for Other Databases. . . . . . . . . . . . . . . . . . . . . . . . . . 668
xii nCONTENTS
Transactional Replication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669
Validating Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669
Standard Read-Only Transactional Replication . . . . . . . . . . . . . . . . 678
Transactional Publication with Updatable Subscriptions . . . . . . . . 688
Peer-to-Peer Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696
Log Shipping with Transactional Replication . . . . . . . . . . . . . . . . . . 700
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
nCHAPTER 16 Backup and Recovery of Merge Replication . . . . . . . . . . . . . 715
Publication with Download-Only Articles. . . . . . . . . . . . . . . . . . . . . . . . . . . 715
Backing Up the Publication Database . . . . . . . . . . . . . . . . . . . . . . . . 716
Restoring the Publication Database for Push Subscription. . . . . . . 716
Restoring the Publication Database for Pull Subscription. . . . . . . . 722
Synchronizing Subscriptions with No-Sync Initialization
Using T-SQL and SQLCMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740
Backing Up and Restoring Subscription Databases. . . . . . . . . . . . . . . . . . 742
Validating Subscriptions for Merge Replication . . . . . . . . . . . . . . . . . . . . . 745
Log Shipping with Download-Only Articles. . . . . . . . . . . . . . . . . . . . . . . . . 750
Configuring Log Shipping on the Primary Server . . . . . . . . . . . . . . . 751
Configuring Log Shipping on the Secondary Server . . . . . . . . . . . . 753
Adding the Secondary Server Information to the Primary
Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758
nCHAPTER 17 Optimizing Snapshot Replication . . . . . . . . . . . . . . . . . . . . . . . . . 759
Optimizing Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
Using the System Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
Using SQL Server Profiler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784
Best Practices for Snapshot Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . 798
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 800
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802
nCHAPTER 18 Optimizing Transactional Replication . . . . . . . . . . . . . . . . . . . . 803
Performance Considerations for the Transaction Log . . . . . . . . . . . . . . . . 803
Using Tracer Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806
Using the System Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812
Using SQL Trace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818
nCONTENTS xiii
Using the Database Engine Tuning Advisor . . . . . . . . . . . . . . . . . . . . . . . . 841
Best Practices for Transactional Replication . . . . . . . . . . . . . . . . . . . . . . . 860
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866
nCHAPTER 19 Optimizing Merge Replication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867
Using the System Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867
Using the SQL Server Profiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 869
Adjusting Publication Retention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 894
Changing Merge Agent Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
Snapshot Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897
Best Practices for Merge Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 901
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902
nCHAPTER 20 Heterogeneous Replication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
Snapshot Replication from an Oracle Publisher to a SQL Server
Subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
Configuring an Oracle Publication for Snapshot Replication . . . . . 903
Configuring a SQL Server Subscription for Snapshot
Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 914
Monitoring Replication with Replication Monitor . . . . . . . . . . . . . . . 920
Transactional Replication from an Oracle Publisher to a SQL Server
Subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923
Configuring an Oracle Publication for Transactional
Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924
Configuring a SQL Server Subscription for Transactional
Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940
Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 941
nAPPENDIX A E-R Diagram of the mysales Database . . . . . . . . . . . . . . . . . . . 943
nAPPENDIX B SQL Code for the Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947
nREFERENCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 959







Contents at a Glance
About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
About the T

Цена: 200руб.

Назад

Заказ

На главную страницу