Presentation is loading. Please wait.

Presentation is loading. Please wait.

SQL Server Replication HILARY COTTER SQL SERVER MVP

Similar presentations


Presentation on theme: "SQL Server Replication HILARY COTTER SQL SERVER MVP"— Presentation transcript:

1 SQL Server Replication HILARY COTTER SQL SERVER MVP HILARY.COTTER@GMAIL.COM

2 Who am I?  SQL Server MVP – 14 years  20 year IT veteran  Author/coauthor – 6 books  Authors Microsoft courseware  Answer 20,000 questions on Microsoft forums  Some of them correctly  Specializes in replication, full-text search, service broker, performance tuning

3 Clients

4 Agenda  Replication Types  Performance Tuning  Troubleshooting  Monitoring

5 Terms  Publisher  Distributor  Subscriber  Gateway  Article  Schema and data  Schema only (table, indexed views, views, functions, stored procedures)  Stored procedure execution

6 Replication Types  Snapshot  Transactional  Transactional with updateable subscribers  Bi-Directional Transactional Replication  Peer to Peer  Merge  Sync Services

7 Replication Use Cases  Used to Distribute/Aggregate data or schema only objects  # 1 use case – offloading reporting  Move data closer to consumer  Avoiding network hop of linked server  Creating Islands of data  Replicating to SQL CE/SQL Compact  Load Balancing/Scale out reads  Peer to Peer  Bi-Directional Transactional  HA/DR  Poor fit  No client redirection  No predictable latency

8 What is new in SQL 2012/2014  Replication plays nicely with AlwaysON if you are using a remote distributor.  Performance improvements/Bug Fixes  New Extended Events  Sync Services no longer part of the install  Ability to replicate to the Cloud https://channel9.msdn.com/Shows/Data- Exposed/Azure-SQL-DB-Transactional-Replication

9 Replication Extended Events Name logreader_apply_filter_proc logreader_process_text_ptr logreader_process_filestream_info logreader_add_compensation_range logreader_add_eor logreader_add_tran_info logreader_process_text_info

10 Snapshot Replication  Point in time image of data sent to subscriber  Best fit when the majority of the data changes at one time  Catalogs  Price lists  Poor use cases  Tables don’t have PKs  No real time synchronization requirements

11 Transactional Replication  Replicates transactions from publisher to subscriber in a transactional context  Store and Forward mechanism  Tlog read asynchronously  Commands constructed and written to distribution database  Markers placed in log saying Transaction X read  LSN – log sequence numbers correlates to  XactSequence in profiler  xact_seqno in msrepl_transactions  Transactional boundaries are respected when applying commands on the subscribe  20 rows updated on publisher  20 rows read by log reader and written to distribution database  20 rows applied on subscriber in a transaction.  Upon failure the 20 row application is rolled back

12 Demo

13 Transaction Replication  Can Replicate execution of a stored procedure  Serializable -- SET TRANSACTION ISOLATION LEVEL Serializable; Begin tran tran1 Exec Proc1 Begin tran tran2 Exec proc2 -- 2 is committed before 1 Commit tran tran2 Commit tran tran1

14 Updateable Subscribers  Designed for the case where the majority of the DML originates at the Publisher  Contrast with merge where it is anywhere  Immediate - MS DTC – linked server  committed at publisher before subscriber  Queued  Uses queue reader  Long standing bug in Replication Scripting adds a queue reader for all transactional replication types

15 Updateable Subscribers  Immediate with queued failover  If Publisher goes down  Published tables go readonly  Deprecated in SQL 2012  Can still use it through stored procedures  Don’t use it  Small user base

16 Bi-Directional Transactional  Two way replication  No guid key required  Publisher is also a subscriber  sp_addsubscription  @loopback_detection=true  Faster than merge and p2p  Only scalable to 2 nodes  Can do three  Great for scaling read outs

17 Bi-Directional Transactional  demo

18 Bi-Directional Transactional  Caveats  Swapping data  Identity seeding  Downtime  The longer the downtime the greater the probability of duplicate data

19 Peer to Peer (P2P)  EE Feature only  Bi-directional  Uses a mesh technology  Each node can replicate to any other nodes in the topology.  A node can drop off and come back on the topology and automatically synchronize  SQL 2008 has conflict detection  No conflict resolution  Smaller feature set the Transactional Replication  No custom stored procedures  Network saturated at 10 nodes

20 P2P demo

21 Merge Replication  Designed for frequently disconnected clients which need to bi-directionally replicate  Ideal for POS applications  Uses a tracking column (rowguid) to uniquely identify rows across a replication topology  Uses tracking triggers to do change detection  Merge agent enumerates changes occurring between the publisher and subscriber between synchronizations and downloads changes to either side.  Should a change to a row occur on both sides of a merge replication topology the lineage column on msmerge_contents – sync cookie

22 Merge Replication  Conflicts  Error  Changes to same row (row level tracking) or column (column level tracking)  Conflict Priority  Server/Global  Client/Local  Determines who conflicts are persisted.  Server – first to publisher wins and persists  Client – determined by assigned priority  Publisher changes always persist

23 Merge Replication  Conflict resolution  Microsoft SQL Server Additive Conflict Resolver  Microsoft SQL Server Averaging Conflict Resolver  Microsoft SQL Server DATETIME (Earlier Wins) Conflict Resolver  Microsoft SQL Server DATETIME (Later Wins) Conflict Resolver  Microsoft SQL Server Download Only Conflict Resolver  Microsoft SQL Server Maximum Conflict Resolver  Microsoft SQL Server Merge Text Columns Conflict Resolver  Microsoft SQL Server Minimum Conflict Resolver  Microsoft SQL Server Priority Column Resolver  Microsoft SQL Server Subscriber Always Wins Conflict Resolver  Microsoft SQL Server Upload Only Conflict Resolver  Microsoft SQLServer Stored Procedure Resolver

24 Merge Replication  Web Synchronization  Secure transport  Rich Filtering  Can filter vertically and horizontally  Changes to parent rows will cause motion in child rows.  For example if you are filtering on region, and a sales person gets a new region all the child rows belonging to that region will be replicated down to the sales person’s subscription.  Termed a partition  Precomputed Partitions  Partitions are evaluated at run time (when changes happen) as opposed to filter/sync time  Can result in very short syncs, but sometimes depending on the hierarchies in the filters can result in longer DML time

25 Business Logic Resolver .Net class that allows you to  Handle Merge Errors  Conflicts  Update  Insert  Delete  Do things on each synchronization  Overhead  Stored Procedure Resolver

26 Performance Tuning - transactional

27

28 Performance Tuning

29 Merge Replication  Maximize Generations per batch  UploadGenerationsPerBatch  DownloadGenerationsPerBatch  UploadReadChangesPerBatch  DownloadReadChangesPerBatch  UploadWriteChangesPerBatch  DownloadWriteChangesPerBatch  Minimize Conflicts  Minimize Concurrent Merge Agents

30 Troubleshooting  Enable agents for logging  Run from the command line  Break up publication  For Transactional Replication  sp_replcounters  sp_browsereplcmds  sp_setsubscriptionxactseqno  For Merge Replication – tracking changes  sp_showlineage  sp_showcolv  sp_mergedummyupdate  sp_showpendingchanges

31 Troubleshooting  Limit number of concurrent merge syncs  sp_changemergepublication 'MyPublication','max_concurrent_merge','10‘  StartQueueTimeout  Reindex merge system tables nightly

32 Replication and Mirroring  Need a remote distributor  Need to use trace flag 1448

33 Replication and AGs  Configure your AG  Configure your remote distributor  Configure your Publication  Use Sp_redirect_publisher to have your publisher use the Listener nameSp_redirect_publisher

34 Questions


Download ppt "SQL Server Replication HILARY COTTER SQL SERVER MVP"

Similar presentations


Ads by Google