Математика | ||||
Pro SQL Server 2008 Replication 2009 Sujoy Paul str 875 | ||||
Pro SQL Server 2008 Replication 2009 Sujoy Paul str 875
Contents at a Glance About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii ¦CHAPTER 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 ¦CHAPTER 2 Replication Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 ¦CHAPTER 3 Types of Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 ¦CHAPTER 4 Configuring Snapshot Replication Using the GUI . . . . . . . . . . . . . . . 85 ¦CHAPTER 5 Configuring Snapshot Replication Using T-SQL . . . . . . . . . . . . . . . 123 ¦CHAPTER 6 Snapshot Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 ¦CHAPTER 7 Internals of Snapshot Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 ¦CHAPTER 8 Configuring Transactional Replication Using the GUI . . . . . . . . . . 223 ¦CHAPTER 9 Configuring Transactional Replication Using T-SQL . . . . . . . . . . . 261 ¦CHAPTER 10 Internals of Transactional Replication . . . . . . . . . . . . . . . . . . . . . . . . 315 ¦CHAPTER 11 Configuring Merge Replication Using the GUI . . . . . . . . . . . . . . . . . 399 ¦CHAPTER 12 Web Synchronization with Merge Replication . . . . . . . . . . . . . . . . . 443 ¦CHAPTER 13 Configuring Merge Replication Using T-SQL . . . . . . . . . . . . . . . . . . 471 ¦CHAPTER 14 The Internals of Merge Replication . . . . . . . . . . . . . . . . . . . . . . . . . . 537 ¦CHAPTER 15 Backup and Recovery of Snapshot and Transactional Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 ¦CHAPTER 16 Backup and Recovery of Merge Replication . . . . . . . . . . . . . . . . . . 653 ¦CHAPTER 17 Optimizing Snapshot Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697 ¦CHAPTER 18 Optimizing Transactional Replication . . . . . . . . . . . . . . . . . . . . . . . . 737 ¦CHAPTER 19 Optimizing Merge Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801 ¦CHAPTER 20 Heterogeneous Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837 ¦APPENDIX E-R Diagram of the mysales Database . . . . . . . . . . . . . . . . . . . . . . . 875 ¦INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879 vii Contents About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii ¦CHAPTER 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Distributed Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Distributed Data Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Eager Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Lazy Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Replication in SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Benefits of Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 SQL Server 2008 Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 SQL Server Configuration Manager . . . . . . . . . . . . . . . . . . . . . . . . . . 15 SQL Server Management Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Database Engine Tuning Advisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Replication Monitor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 ¦CHAPTER 2 Replication Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Publisher-Subscriber Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Components of Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Distributor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Publisher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Publication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Article. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Subscriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Agents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 viii ¦CONTENTS Physical Replication Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Publisher/Distributor–Subscriber Model . . . . . . . . . . . . . . . . . . . . . . 26 Central Publisher–Multiple Subscribers Model . . . . . . . . . . . . . . . . . 26 Central Subscriber–Multiple Publishers Model . . . . . . . . . . . . . . . . . 28 Multiple Publishers–Multiple Subscribers Model . . . . . . . . . . . . . . . 29 Installing and Configuring Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Installing SQL Server Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Configuring with the GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Configuring Database Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Configuring with T-SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 ¦CHAPTER 3 Types of Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Snapshot Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 The Snapshot Agent Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 How Snapshot Replication Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Transactional Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 How Transactional Replication Works . . . . . . . . . . . . . . . . . . . . . . . . 64 Immediate Updating and Queued Updating Subscriptions. . . . . . . . 65 The Log and Queue Reader Agent Profiles . . . . . . . . . . . . . . . . . . . . 68 Peer-to-Peer Transactional Replication . . . . . . . . . . . . . . . . . . . . . . . 72 Merge Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 The Merge Agent Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 ¦CHAPTER 4 Configuring Snapshot Replication Using the GUI . . . . . . . . 85 Configuring Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Configuring a Subscription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Configuring Push Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Configuring Pull Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Adding and Deleting an Article . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 ¦CONTENTS ix ¦CHAPTER 5 Configuring Snapshot Replication Using T-SQL . . . . . . . . . 123 Dropping Subscriptions and Publications . . . . . . . . . . . . . . . . . . . . . . . . 123 Dropping a Pull Subscription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Dropping a Push Subscription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Dropping a Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Configuring a Publication Using T-SQL . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Creating a Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Creating a Snapshot Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Granting Publication Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Creating Articles for Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Starting the Snapshot Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Configuring a Subscription Using T-SQL . . . . . . . . . . . . . . . . . . . . . . . . . 140 Configuring Push Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Configuring Pull Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Configuring Anonymous Subscriptions. . . . . . . . . . . . . . . . . . . . . . . 146 Snapshot Replication Stored Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 148 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 ¦CHAPTER 6 Snapshot Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Locating the Snapshot Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Securing Snapshot Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Transmitting and Storing Snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Transferring Compressed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 Transferring a Snapshot with Other Methods . . . . . . . . . . . . . . . . . 156 Locating the Snapshot Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 Determining the Types and Size of Snapshot Files. . . . . . . . . . . . . 157 Transmitting Snapshots Using FTP. . . . . . . . . . . . . . . . . . . . . . . . . . 161 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 ¦CHAPTER 7 Internals of Snapshot Replication . . . . . . . . . . . . . . . . . . . . . . . 169 On the Publisher Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 The Publication Access List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 The Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 The Snapshot Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 The Distribution Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 The Maintenance Cleanup Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 x ¦CONTENTS On the Distributor Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 The Distribution Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 The MSDB Database. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 On the Subscriber Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 ¦CHAPTER 8 Configuring Transactional Replication Using the GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Configuring Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 Configuring Standard Transactional Publications . . . . . . . . . . . . . . 225 Configuring Transactional Publications with Updatable Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 Configuring Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Configuring Updatable Subscriptions for Transactional Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Switching Update Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Configuring Peer-to-Peer Transactional Replication . . . . . . . . . . . . . . . . 250 Setting Up the Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Enabling the Publication for Peer-to-Peer Replication . . . . . . . . . . 251 Initializing the Database Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Configuring Peer-to-Peer Topology . . . . . . . . . . . . . . . . . . . . . . . . . 254 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 ¦CHAPTER 9 Configuring Transactional Replication Using T-SQL . . . . 261 Configuring Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 Configuring Standard Transactional Publication . . . . . . . . . . . . . . . 263 Configuring a Push Subscription for Standard Publication . . . . . . 272 Configuring a Pull Subscription for Standard Publication. . . . . . . . 273 Configuring Transactional Publication with Updatable Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 Configuring a Pull Subscription for Immediate Updating . . . . . . . . 281 Configuring a Push Subscription for Immediate Updating . . . . . . . 286 Configuring a Push Subscription for Queued Updating . . . . . . . . . 287 Configuring a Pull Subscription for Queued Updating. . . . . . . . . . . 289 Switching Between Immediate and Queued Updating Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 ¦CONTENTS xi Configuring Peer-to-Peer Transactional Replication . . . . . . . . . . . . . . . . 294 Adding the Publication on Node A. . . . . . . . . . . . . . . . . . . . . . . . . . . 294 Adding the Articles to the Publication on Node A . . . . . . . . . . . . . . 295 Adding the Subscription on Node A . . . . . . . . . . . . . . . . . . . . . . . . . 296 Adding the Push Subscription Agent on Node A . . . . . . . . . . . . . . . 296 Adding the Publication on Node B. . . . . . . . . . . . . . . . . . . . . . . . . . . 297 Adding the Articles to the Publication on Node B . . . . . . . . . . . . . . 298 Adding the Subscription on Node B . . . . . . . . . . . . . . . . . . . . . . . . . 299 Adding the Push Subscription Agent on Node B . . . . . . . . . . . . . . . 300 Checking the Configuration for Peer-to-Peer Replication . . . . . . . 300 Configuring Bidirectional Transactional Replication . . . . . . . . . . . . . . . . 302 Transactional Replication Stored Procedures . . . . . . . . . . . . . . . . . . . . . 310 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 ¦CHAPTER 10 Internals of Transactional Replication . . . . . . . . . . . . . . . . . . 315 Concurrent Snapshot Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 The Transaction Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 The Log Reader Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 The Queue Reader Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 Transactional Replication with Queued Updating . . . . . . . . . . . . . . . . . . 335 The Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 The Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 Conflict Detection and Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . 346 Transactional Replication with Immediate Updating . . . . . . . . . . . . . . . . 351 The Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 The Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 Peer-to-Peer Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 Standard Transactional Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 The Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 The Distribution Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 ¦CHAPTER 11 Configuring Merge Replication Using the GUI . . . . . . . . . . . 399 Configuring Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 Configuring a Publication for Download-Only Articles . . . . . . . . . . 400 Configuring a Publication for Standard Articles. . . . . . . . . . . . . . . . 409 Adding Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 xii ¦CONTENTS Configuring Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 Configuring Pull Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 Configuring Push Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 ¦CHAPTER 12 Web Synchronization with Merge Replication . . . . . . . . . . 443 Web Synchronization Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 Configuring a Publication for Web Synchronization . . . . . . . . . . . . . . . . 444 Configuring IIS for Web Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . 446 Configuring SSL for Web Synchronization . . . . . . . . . . . . . . . . . . . . 446 Configuring the IIS Server for Web Synchronization . . . . . . . . . . . . 454 Setting Permissions for the SQL Server Replication Listener . . . . 459 Running IIS in Diagnostic Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 Configuring Subscriptions for Web Synchronization . . . . . . . . . . . . . . . . 462 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 ¦CHAPTER 13 Configuring Merge Replication Using T-SQL . . . . . . . . . . . . 471 Configuring Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 Configuring Publication with Download-Only Articles . . . . . . . . . . 472 Configuring Publication with Standard Articles . . . . . . . . . . . . . . . . 479 Configuring Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 Configuring Client-Type Push Subscriptions for Download-Only Articles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 Configuring Pull Subscriptions for Standard Articles . . . . . . . . . . . 515 Identity Range Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 Understanding the Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 Configuring Automatic Range Management . . . . . . . . . . . . . . . . . . 519 Merge Replication with Filestream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 Merge Replication Stored Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 ¦CHAPTER 14 The Internals of Merge Replication . . . . . . . . . . . . . . . . . . . . . 537 The Merge Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 Subsystems and Proxies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 Subsystem Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 The Roles of Subsystems and Proxies . . . . . . . . . . . . . . . . . . . . . . . 548 ¦CONTENTS xiii Publication and Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 Publication with Download-Only Articles . . . . . . . . . . . . . . . . . . . . . 560 Publication with Standard Articles and Parameterized Filters . . . . 576 Conflict Detection and Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 ¦CHAPTER 15 Backup and Recovery of Snapshot and Transactional Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 Snapshot Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 Backing Up the Publication Database. . . . . . . . . . . . . . . . . . . . . . . . 601 Restoring the Publication Database . . . . . . . . . . . . . . . . . . . . . . . . . 611 Considerations for Other Databases . . . . . . . . . . . . . . . . . . . . . . . . . 615 Transactional Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616 Validating Subscriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616 Standard Read-Only Transactional Replication . . . . . . . . . . . . . . . . 624 Transactional Publication with Updatable Subscriptions . . . . . . . . 632 Peer-to-Peer Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639 Log Shipping with Transactional Replication. . . . . . . . . . . . . . . . . . 644 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652 ¦CHAPTER 16 Backup and Recovery of Merge Replication . . . . . . . . . . . . 653 Publication with Download-Only Articles . . . . . . . . . . . . . . . . . . . . . . . . . 653 Backing Up the Publication Database. . . . . . . . . . . . . . . . . . . . . . . . 654 Restoring the Publication Database for Push Subscription . . . . . . 654 Restoring the Publication Database for Pull Subscription . . . . . . . 659 Synchronizing Subscriptions with No-Sync Initialization Using T-SQL and sqlcmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676 Backing Up and Restoring Subscription Databases . . . . . . . . . . . . . . . . 679 Validating Subscriptions for Merge Replication . . . . . . . . . . . . . . . . . . . . 682 Log Shipping with Download-Only Articles . . . . . . . . . . . . . . . . . . . . . . . 687 Configuring Log Shipping on the Primary Server . . . . . . . . . . . . . . 687 Configuring Log Shipping on the Secondary Server . . . . . . . . . . . . 689 Adding the Secondary Server Information to the Primary Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695 xiv ¦CONTENTS ¦CHAPTER 17 Optimizing Snapshot Replication . . . . . . . . . . . . . . . . . . . . . . . . 697 Optimizing Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697 Using the System Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699 Using SQL Server Profiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717 Management Data Warehouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726 Configuring the Management Data Warehouse . . . . . . . . . . . . . . . 727 Creating Custom Data Collection Sets . . . . . . . . . . . . . . . . . . . . . . . 727 Viewing Reports and Query Statistics. . . . . . . . . . . . . . . . . . . . . . . . 728 Generating a Custom SQL Trace Collection Set . . . . . . . . . . . . . . . 729 Best Practices for Snapshot Replication . . . . . . . . . . . . . . . . . . . . . . . . . 732 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736 ¦CHAPTER 18 Optimizing Transactional Replication . . . . . . . . . . . . . . . . . . . 737 Performance Considerations for the Transaction Log . . . . . . . . . . . . . . 737 Using Tracer Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740 Using the System Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746 Using SQL Trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751 Using the Database Engine Tuning Advisor . . . . . . . . . . . . . . . . . . . . . . . 785 Best Practices for Transactional Replication . . . . . . . . . . . . . . . . . . . . . . 795 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 800 ¦CHAPTER 19 Optimizing Merge Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . 801 Using the System Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801 Using the SQL Server Profiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804 Using the Management Data Warehouse . . . . . . . . . . . . . . . . . . . . . . . . . 823 Adjusting Publication Retention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827 Changing Merge Agent Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828 Snapshot Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 830 Best Practices for Merge Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835 ¦CONTENTS xv ¦CHAPTER 20 Heterogeneous Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837 Snapshot Replication from an Oracle Publisher to a SQL Server Subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837 Configuring an Oracle Publication for Snapshot Replication . . . . . 837 Configuring a SQL Server Subscription for Snapshot Publication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849 Monitoring Replication with Replication Monitor. . . . . . . . . . . . . . . 856 Transactional Replication from an Oracle Publisher to a SQL Server Subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858 Configuring an Oracle Publication for Transactional Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859 Configuring a SQL Server Subscription for Transactional Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874 Quick Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874 ¦APPENDIX E-R Diagram of the mysales Database . . . . . . . . . . . . . . . . . . 875 Цена: 200руб. |
||||