Математика | ||||
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руб. |
||||