REPLICATION
Replication is a set of technologies for copying and distributing data
and database objects from one database to another and then synchronizing
between databases to maintain consistency.
Replication is intended to be a way of distributing data automatically
from a source database to one or more recipient databases. As such, it can have
obvious uses a distributed system. It has also been used to implement high
availability system.
Advantages:
1. To allow sites work independently. So that each location can set up
its own rules and procedures for working with its copy of the data.
2. To
move data close to the user.
3. To
reduce locking conflicts when multiple users are working.
4.
Database replication can also supplement your disaster-recovery.
Note: Only committed transactions are
transferred to the subscriber database.
Support FILESTREAM.
Warm/ Hot Standby Solution:It provides a warm standby solution that has multiple copies of a database and require a manual failover.
Warm/ Hot Standby Solution:It provides a warm standby solution that has multiple copies of a database and require a manual failover.
There are three methods of Replication:
·
Snapshot Replication
·
Transactional Replication
·
Merge Replication
A publisher maintains the original copy of the data. It holds the definition of the 'publication'
which defines the 'articles' that are to be 'published'.
A 'Subscriber' receives the articles from a publisher. It can subscribe to one or more publications.
Any database can take on either role or even both roles at once.
A
Distributor is a specialist database that runs the 'Replication agents'
·
Publisher
·
Publication
·
Article
·
Distributor
·
Subscriber
·
Subscription
ü
Push Subscription
ü
Pull Subscription
Publisher:
It is the system that
provides the data to be replicated and acts as a source database. It makes data
available for replication. The publisher maintains information about which data
is configured for replication.
Distributor:
It is intermediary between publisher
and subscriber. They store the distribution database, Meta data, historical
data and transactions.
Publication:
A group of articles is
called publication. It is made up of one
or more articles. Publication is created in order to publish data to other
systems.
Subscriber:
They are the
destination servers for replication.
They store the replicated data and receive updates. Subscribers can also make changes to the
data. You can publish data to multiple
subscribers.
Push Subscription:
The Publisher is
responsible for providing updates to the subscribers. Updates are initiated without any request
from the subscriber. It can be configured to keep the replication close to real
time or to perform updates on a regular schedule. It is created at the publisher server.
Pull Subscription:
It allows synscroners
to specify when the changes are propagated.
It is useful if there are large number of subscribers and when the
subscribers are not connected to the network.
The Initiation of the replication is done on the subscriber side.
Articles Definition:
An Article is individual component of data that is to be
replicated. It could be an entire table
or specific columns in a table or specific rows in a table or a stored
procedure.
In short an article is a subset of a table that is being
replicated. Subsets are created by using
filters. A filter that is used to create
subset of rows is called Horizontal Filter.
A filter that is used to create a subset of columns is called Vertical
filter.
Articles are basic building blocks of Replication.
·
Snapshot Agent
·
Distributor Agent
·
Merge Agent
·
Log Reader Agent
·
Queue Reader Agent
The following
agents are associated with publications in Replication Monitor:
·
Snapshot Agent
·
Log Reader Agent
·
Queue Reader
Agent
The following
agents are associated with subscriptions in Replication Monitor:
·
Distribution
Agent
· Merge Agent
- Replication uses the following jobs to perform
scheduled and on-demand maintenance.
Clean up job
|
Description
|
Default schedule
|
Agent History Clean Up: Distribution
|
Removes replication agent history from the distribution
database.
|
Runs every ten minutes
|
Distribution Clean Up: Distribution
|
Removes replicated transactions from the distribution
database. Deactivates subscriptions that have not been synchronized within
the maximum distribution retention period.
|
Runs every ten minutes
|
Expired Subscription Clean Up
|
Detects and removes expired subscriptions from publication
databases.
|
Runs every day at 1:00 A.M.
|
Reinitialize Subscriptions Having Data Validation Failures
|
Detects all subscriptions that have data validation
failures and marks them for reinitialization. The next time the Merge Agent
or Distribution Agent runs, a new snapshot will be applied at the
Subscribers.
|
No default schedule (not enabled by default).
|
Replication Agents Checkup
|
Detects replication agents that are not actively logging
history. It writes to the Microsoft Windows event log if a job step
fails.
|
Runs every ten minutes.
|
Replication monitoring refresher for distribution
|
Refreshes cached queries used by Replication Monitor..
|
Runs continuously.
|
|
SQL ServerReplication Latency
Replication latency is the amount of time
it takes for a transaction that occurs in the primary database to be applied to
the replicate database.
The time includes
Replication Agent processing, Replication Server processing, and network usage.
Replication latency appears on the path dashboard.
Latency is the time delay
measure in the system.
Sys.dm_io_pending_io_requests- View pending I/O request(s) in SQL Server.
sys.dm_io_virtual_file_stats - Returns I/O
statistics for Database data and log files. Measure IO
transaction rates and sys.
Latency is the time it takes for the data to
replicate at the subscriber once itupdates the primary.
Reason for latency
Reason for latency
1. Huge
batch jobs.
2. Blocking at replicate
3. Replicate DB used intensively and it there is P/F impact to entire server.
4. Network
5. Secondary DB is full
6. Stats are not dated frequently in replicate and causing the query to take different query plan than what was executed at primary
2. Blocking at replicate
3. Replicate DB used intensively and it there is P/F impact to entire server.
4. Network
5. Secondary DB is full
6. Stats are not dated frequently in replicate and causing the query to take different query plan than what was executed at primary
These columns display different values, depending on replication latency threshold, and can report one of the following:
·
Excellent: latency is
0–34 percent of the threshold. For example, if the latency threshold is 30
seconds, and transactions are delivered within 3 seconds, performance is
excellent.
·
Good: Latency is 35–59
percent% of the threshold.
·
Fair: Latency is 60–84
percent of the threshold.
·
Poor: Latency is 85–99
percent of the threshold.
·
Critical: Latency
exceeds the threshold.
There are multiple built-in
system procedures that you can use to manage tracer tokens, some of which
include:- sp_posttracertoken (used to push a token into a publication)
- sp_helptracertokens (returns a row for each tracer token that has been inserted at a publisher for a given publication)
- sp_helptracertokenhistory (returns latency information for a given token id value retrieved from either of the procedures above)
- sp_deletetracertokenhistory (removes token records from the system meta tables)
|
1. Snapshot Agent:
The name of the Snapshot Agent executable is snapshot.exe. This agent
usually resides in the Distributor server. The Snapshot Agent is used in all
replications, particularly at the time of initial synchronization. It makes a
copy of the schema and the data of the tables that are to be published, stores
them in the snapshot file, and records information about synchronization in the
distribution database
Each published database has its own snapshot agentthat runs on the
distributor and connects to the publisher and takes a snapshot of the
objects.
For merge
replication, a snapshot is generated every time the Snapshot Agent runs. For
transactional replication, snapshot generation depends on the setting of the
publication property immediate_sync. If the property is set to TRUE (the
default when using the New Publication Wizard), a snapshot is generated every
time the Snapshot Agent runs, and it can be applied to a Subscriber at any
time. If the property is set to FALSE (the default when using sp_addpublication),
the snapshot is generated only if a new subscription has been added since the
last Snapshot Agent run; Subscribers must wait for the Snapshot Agent to
complete before they can synchronize.
The Snapshot Agent performs the following
steps:
1.
Establishes a
connection from the Distributor to the Publisher, and then takes locks on
published tables if necessary:
o
For merge
publications, the Snapshot Agent does not take any locks.
o
For transactional
publications, by default the Snapshot Agent take locks only during the initial
phase of snapshot generation.
o
For snapshot
publications, locks are held during the entire snapshot generation process.
2.
Writes a copy of
the table schema for each article to a .sch file. If other database objects are
published, such as indexes, constraints, stored procedures, views, user-defined
functions, and so on, additional script files are generated.
3.
Copies the data
from the published table at the Publisher and writes the data to the snapshot
folder. The snapshot is generated as a set of bulk copy program (BCP) files.
4.
For snapshot and
transactional publications, the Snapshot Agent appends rows to the MSrepl_commands
and MSrepl_transactions tables in the distribution database. The entries
in the MSrepl_commands table are commands indicating the location of
.sch and .bcp files, any other snapshot files, and references to any pre- or
post-snapshot scripts. The entries in the MSrepl_transactions table are
commands relevant to synchronizing the Subscriber.
For merge publications, the Snapshot Agent performs additional steps.
For more information, see How Merge Replication Initializes Publications and
Subscriptions.
5.
Releases any
locks on published tables.
During snapshot generation, you cannot make
schema changes on published tables. After the snapshot files are generated, you
can view them in the snapshot folder using Windows Explorer.
2.
Distribution Agent:
The name of the Distribution Agent executable is distrib.exe. Both
snapshot and transactional replication use this agent. The Distribution Agent
is responsible for moving the snapshot and the transactions held in the
distribution database to the subscribing servers. In the case of push
subscriptions, the Distribution Agent resides on the Distributor server, In the
case of pull Subscriptions; it resides on the Subscriber server.
For snapshot
publications, each time the Distribution Agent runs for the publication, it
moves a new snapshot to each Subscriber that has not yet been synchronized, has
been marked for reinitialization, or includes new articles.
For snapshot and
transactional replication, the Distribution Agent performs the following steps:
1. Establishes
a connection to the Distributor.
2. Examines
the MSrepl_commands and MSrepl_transactions
tables in the distribution database on the Distributor. The agent reads the
location of the snapshot files from the first table and Subscriber
synchronization commands from both tables.
3. Applies
the schema and commands to the subscription database.
For an unfiltered merge replication publication,
the Merge Agent performs the following steps:
1. Establishes
a connection to the Publisher.
2. Examines
the sysmergeschemachange table on the Publisher and determines
whether there is a new snapshot that should be applied at the Subscriber.
3. If
a new snapshot is available, the Merge Agent applies to the subscription
database the snapshot files from the location specified in sysmergeschemachange.
|
3. Merge Agent:
The name of the Merge Agent executable is replmerg.exe. This agent is
used with merge replication. The Merge Agent applies the initial snapshot to
the Subscriber servers. Incremental changes subsequent to the initial synchronization
are monitored and merged to the Subscriber servers by the Merge Agent. The
agent also resolves the update conflicts. Each of the databases taking part in
the process has one Merge Agent. Like the Distribution Agent, the Merge Agent
runs on the Distributor server in push subscriptions, and on the Subscriber
server in the case of pull subscriptions.
In merge replication there is no distribution of snapshot agent
involved. Instead the merge agent
communicates with both the publisher to the distributor.
There is one merge agent for each merge subscription.
4. Log Reader Agent:
|
The name of the Log Reader Agent executable is logread.exe. This agent
is used in transactional replication. The Log Reader Agent monitors the
transaction logs of all databases that are involved in transactional
replication. The agent copies any changes in the data that are marked for
replication in the transaction log of the publication database and sends them
to the Distributor server where they are stored in the distribution database.
The transactions are held there until they are ready to be sent to the
Subscriber servers.
Each database that is using transaction replication has its own log
reader agent on the publisher.
|
5. Queue Reader Agent:
The name of the Queue Reader Agent executable is qrdsvc.exe. In
transactional replication, there is an option to either immediately update the
messages or store them in a queue, using either the SQL Server queue or the
Microsoft Messaging queue. If the updated messages need to be sent immediately,
there needs to be a constant connection between the Publisher and the
Subscriber servers. However, if you are going to store the messages in the
queue, you do not need a constant connection; you can send the messages
whenever the connection is available. In such cases, the Queue Reader Agent
takes the messages from the queue and applies them to the publishing server.
The Queue Reader Agent is multithreaded and runs on the Distributor server.
There is only one instance of this agent for a given distribution database, and
it services all the publications and Publisher servers.
Purpose of Replication
The purpose of this document is to show most skilled ways to replicate
your database from one server to other and also to show the benefits of
replication of database. The following advantages users can avail by using
replication process.
Users working in different geographic locations can work with their
local copy of data thus allowing greater independence.
Database replication can also supplement your disaster-recovery plans
by duplicating the data from a local database server to a remote database
server. If the primary server fails, your applications can switch to the
replicated copy of the data and continue operations.
You can automatically back up a database by keeping a replica on a
different computer. Unlike traditional backup methods that prevent users from
getting access to a database during backup, replication allows you to continue
making changes online.
You can replicate a database on additional network servers and
reassign users to balance the loads across those servers. You can also give
users who need constant access to a database their own replica, thereby
reducing the total network traffic.
Database-replication logs the selected database transactions to a set
of internal replication-management tables, which can then be synchronized to
the source database. Database replication is different from file replication,
which essentially copies files.
Replication
Topology.
Central publisher/distributor, multiple subscribers.
Central Distributor, multiple publishers, multiple
subscribers.
Central Distributer, multiple publishers, single
subscriber.
Mixed Topology.
1. Snapshot Replication:
2. Transactional Replication
3. Merge Replication
1. Snapshot Replication
Snapshot replication makes a copy of the data and propagates changes
for the whole set of data rather than individual transactions, thereby making
it a discontinuous process and entailing a higher degree of latency. For
example, suppose a bookstore chain offers discounts once or twice a year. The
regional bookstores only need to be aware of the price changes occasionally, so
you could use snapshot replication to transfer the changes from the head office
to the regional bookstores. Using
Snapshot
replication by itself is most appropriate when one or more of the following is
true:
Data
changes infrequently.
It is
acceptable to have copies of data that are out of date with respect to the
Publisher for a period of time.
You are
replicating small volumes of data.
Many
changes occur over a short period of time.
Snapshot replication is most appropriate when data changes are
substantial but infrequent. For example, if a sales organization maintains a
product price list and the prices are all updated at the same time once or
twice each year, replicating the entire snapshot of data after it has changed
is recommended. Given certain types of data, more frequent snapshots might also
be appropriate. For example, if a relatively small table is updated at the
Publisher during the day, but some latency is acceptable, changes can be
delivered nightly as a snapshot. Snapshot replication has a lower continuous
overhead on the Publisher than transactional replication because incremental
changes are not tracked. However, if the dataset set being replicated is very
large, it will require substantial resources to generate and apply the
snapshot. Consider the size of the entire data set and the frequency of changes
to the data when evaluating whether to use snapshot replication. The below
figure 1 shows how snapshot replication will works.
Work Model Steps:-
1.
Publication Database Contains articles in publisher server.
2.
Snapshot agent transfers articles from publication database and stores in
snapshot folder.
3.
Snapshot agent writes history data and adds rows in MSrepl_commands table in
the Distribution database.
4. Distribution database transfers articles from Distribution database
to Subscription database.
Snapshot replication takes the entire set of data and sends it during
each cycle of the replication engine. By default, all three types of
replication use a snapshot to initialize Subscribers.
It is
also known as static replication
It
copies and distributes data and database objects exactly as they appear at the
current moment of time.
Scenarios:
·
When the
data is not changing frequently.
·
If we want
to replicate small amount of data.
·
To
replicate look-up tables which are not changing frequently.
·
It is
acceptable to have copies of data that are out of date with respect to the
publisher for a period of time.
Snapshot replication and transactional replication use the
Distribution Agent to deliver the files, whereas merge replication uses the SQL
Server Merge Agent. The Snapshot Agent runs at the Distributor. The
Distribution Agent and Merge Agent run at the Distributor for push
subscriptions, or at Subscribers for pull subscriptions.
It uses
Snapshot Agent and Distribution Agent
HOW IT WORKS:
Snapshot Agent
-Establishes
a connection from the Distributor to the Publisher, and places locks on the
tables during the entire snapshot generation process.
-Writes a copy of the table schema for each article to a .sch file. If other database objects
are published, such as indexes, constraints, stored procedures, views,
user-defined functions, and so on, additional script files are generated.
-Copies the data from the published table at the Publisher and writes
the data to the snapshot folder. The snapshot is generated as a set of bulk
copy program (BCP) files.
-For snapshot and transactional publications, the Snapshot Agent
appends rows to the MSrepl_commands and MSrepl_transactions tables in the
distribution database. The entries in the MSrepl_commands table are commands
indicating the location of .sch and .bcp files, any other snapshot files,
and references to any pre- or post-snapshot scripts. The entries in the
MSrepl_transactions table are commands relevant to synchronizing the
Subscriber.
-Releases
any locks on published tables.
To configure publication:
sp_replictiondboption
sp_addpublication
sp_addpublication_snapshot
sp_addarticle
To configure Subscriptions:
sp_addsubscription
sp_addpullsubscription
Transactional replication allows incremental changes to data to be
transferred either continuously or at specific time intervals. Transactional
replication is normally used where there is a high volume of inserts, updates,
and deletes. This type of replication is usually used in a Server-to-server
environment. For example, auto repair shops need to have real-time data about
inventory in their warehouses and other shops. By using transactional
replication across all stores, it is possible for each of the shops to know the
current inventory, and stock shortages can be anticipated ahead of time.
Transactional replication is typically used in server-to-server environments
and is appropriate in each of the following cases:
- You
want incremental changes to be propagated to Subscribers as they occur.
- The
application requires low state between the time changes are made at the
Publisher and the changes arrive at the Subscriber.
- The
application requires access to intermediate data states. For example, if a
row changes five times, transactional replication permits an application
to respond to each change, not only the net data change to the row.
- The
Publisher has a very high volume of insert, update, and delete activity.
- The
Publisher or Subscriber is a non-SQL Server database, such as Oracle.
By
default, Subscribers to transactional publication should be treated as
read-only, because changes are not propagated back to the Publisher. However,
transactional replication does offer options that permit updates at the
Subscriber. The below figure 2 shows how snapshot replication will works
Work
Model Steps:-
1. Transactions are written in the transaction
log of publication database.
2. Log reader agent reads only committed
transactions from publication database.
3. Log reader agent writes committed transactions
in the distribution database.
4. Distribution agent reads from
MSrepl_transactions.
5.
Distribution agent transfers data to the subscription database.
It is
also known as dynamic replication.
It is
typically used in server-to-server environment.
Transactional replication begins with an initial snapshot being
applied to the subscriber, to ensure that two databases are synchronized.
We can configure transaction replication with two optional modes:
* Immediate updating subscription
* Queued updating subscription
Truncate
command will not work here.
Scenarios:
For
database which changes regularly.
Subscribers
always need the latest data for processing.
The
application requires low latency between the time changes are made at the publisher
and the changes arrive at the subscriber.
Types of publication for T Replication:
T
Publication with updatable subscription
(It
uses Snapshot Agent & Distribution Agent and Log Reader Agent)
T
publication in a peer-to-peer topology.
(It
uses Snapshot Agent & Distribution Agent and Log Reader Agent)
How it works:
The snapshot agent prepares files containing schema and data of
published tables and database objects, stored the files in the snapshot folder,
and records synchronization jobs in the distribution database on the
distributor.
Log reader agent monitors transaction log of each database configured
for T R and copies the transactions marked for replication from T L into
MSrepl_transactions of distribution DB.
Distribution
agent moves the initial snapshot and the transactions held in the distribution
database tables to subscribers.
Note:
You
can't implement transactional replication in either a bidirectional or peer to
peer architecture due to data conflict.
Note: Do not replicate delete statement.
If we
delete any records in the publisher it will not affect to subscriber server
then we have to use above option in publisher properties->articles
properties.
3.
Merge Replication
Merge
replication permits a higher degree of autonomy. It allows the subscribing
servers to make changes and then it propagates those changes to the publishing
servers, which in turn transfer the changes to other subscriber servers. For
example, Sales people working in the field can enter their orders or changes
once the transactions are complete. The updated data from different sales
people can lead to conflicts, which can be resolved by setting up a conflict
policy in merge replication. The Conflict Policy Viewer in SQL Server 2005
helps you track the conflicts. Point of sales applications, like sales force
automation, are situations where you can use merge replication. Merge
replication is typically used in server-to-client environments. Merge replication
is appropriate in any of the following situations:
·
Multiple
Subscribers might update the same data at various times and propagate those
changes to the Publisher and to other Subscribers.
·
Subscribers
need to receive data, make changes offline, and later synchronize changes with
the Publisher and other Subscribers.
·
Each
Subscriber requires a different partition of data.
·
Conflicts
might occur. When they do, you need the ability to detect and resolve them.
·
The
application requires net data change instead of access to intermediate data
states. For example, if a row changes five times at a Subscriber before it
synchronizes with a Publisher, the row will change only once at the Publisher,
to the fifth value, to reflect the net data change.
Merge
replication enables various sites to work autonomously and later merge updates
into a single, uniform result. Because updates are made at more than one
server, the same data might have been updated by the Publisher and by more than
one Subscriber. Therefore, conflicts can occur when updates are merged. Merge
replication provides several ways to handle conflicts.
Work
Model Steps:-
1.
Publication database contains articles in the publisher server.
2.
Conflict tables, change- tracking tables, and triggers present in publication
and subscription databases.
3.
Merge agent transfers data.
4.
Merge agent writes history in MSmerge_history table in the distribution
database.
It
provides the advantages of both snapshot and transactional replication.
Both
publisher and subscriber can make changes.
Both
publisher and subscriber can work without any active connection.
When they are connected, the merge replication agent checks for
changes on both sets of data and modifies each database accordingly.
Truncate
command will not work here.
Here
both sides insert, update, delete triggers will be created
Note:
Replication
can be configured to run in either a continuous or a schedule mode.
It uses
Snapshot Agent Merge Agent
Scenarios:
Site
autonomy is very critical
Multiple
subscribers needs to change data either at the same time or at a different time
and propagates changes to publisher.
Question: When setting Replication, is it possible to have a
Publisher as 64 Bit SQL Server and Distributor or Subscribers as a 32 Bit SQL
Server.
Yes it is possible to have
various configurations in a Replication environment
Question: What the
different Topologies in which Replication can be configured?
§
Replication can be configured in any topology depending keeping in
view of the complexity and the workload of the entire Replication. It can be
any of the following:
§ Publisher, Distributor and
Subscriber on the same SQL Instance.
§ Publisher and Distributor on
the same SQL Instance and Subscriber on a separate Instance.
§ Publisher, Distributor and Subscriber on individual SQL Instances.
Important Replication Tables:
Important Replication Tables:
Table
|
Discription
|
MSrepl_commands
|
The MSrepl_commands table contains rows of replicated
commands. This table is stored in the distribution database.
|
MSrepl_errors
|
The MSrepl_errors table contains rows with extended Distribution
Agent and Merge Agent failure information. This table is stored in the
distribution database.
|
MSrepl_backup_lsns
|
The MSrepl_backup_lsns table contains transaction log sequence
numbers (LSN) for supporting the 'sync with backup' option of the
Distribution database. This table is stored in the distribution database.
|
MSrepl_identity_range
|
The MSrepl_identity_range table provides identity range
management support. This table is stored in the publication, distribution and
subscription databases
|
MSrepl_originators
|
The MSrepl_originators table contains one row for each
updatable Subscriber from which the transaction originated. This table is
stored in the distribution database.
|
MSreplication_queuedtraninfo
|
The MSreplication_queuedtraninfo table is used by the
replication process to store information about the queued commands issued by
all the queued updating subscriptions that are using SQL-based queued
updating. This table is stored in the Subscription database.
|
MSrepl_transactions
|
The MSrepl_transactions table contains one row for each
replicated transaction. This table is stored in the distribution database.
|
MSrepl_version
|
The MSrepl_version table contains one row with the
current version of replication installed. This table is stored in the
distribution database.
|
MSreplication_monitordata
|
The MSreplication_monitordata table contains cached data
used by Replication Monitor, with one row for each monitored subscription.
This table is stored in the distribution database.
|
MSreplication_objects
|
The MSreplication_objects table contains one row for each
object that is associated with replication in the Subscriber database. This
table is stored in the subscription database.
|
MSreplication_options
|
The MSreplication_options table stores metadata that is
used internally by replication. This table is stored in the master database.
|
MSreplication_queue
|
The MSreplication_queue table is used by the replication
process to store the queued commands issued by all the queued updating
subscriptions that are using SQL-based queued. This table is stored in the
subscription database.
|
MSreplication_subscriptions
|
The MSreplication_subscriptions table contains one row of
replication information for each Distribution Agent servicing the local
Subscriber database. This table is stored in the subscription database.
|
MSreplmonthresholdmetrics
|
The MSreplmonthresholdmetrics table defines the metrics
provided for monitoring replication. This table is stored in the msdb
database.
|
MSsnapshot_agents
|
The MSsnapshot_agents table contains one row for each
Snapshot Agent associated with the local Distributor. This table is stored in
the distribution database.
|
MSsnapshot_history
|
The MSsnapshot_history table contains history rows for
the Snapshot Agents associated with the local Distributor. This table is
stored in the distribution database.
|
MSsnapshotdeliveryprogress
|
The MSsnapshotdeliveryprogress table is used to track
files that have been successfully delivered to the Subscriber when a snapshot
is being applied. This data is used to resume the delivery of files in case
the Merge Agent fails to deliver all of the files during the session so that
the same files are not delivered again the next time that the Merge Agent is
run. This table is stored at the Subscriber in the subscription database.
|
MSsub_identity_range
|
The MSsub_identity_range table provides identity range
management support for subscriptions. This table is stored in the
subscription databases.
|
MSsubscriber_info
|
The MSsubscriber_info table contains one row for each
Publisher/Subscriber pair that is being pushed subscriptions from the local
Distributor. This table is stored in the distribution database.
|
MSsubscriber_schedule
|
The MSsubscriber_schedule table contains default merge
and transactional synchronization schedules for each Publisher/Subscriber
pair. This table is stored in the distribution database.
|
MSsubscription_agents
|
The MSsubscription_agents table is used by Distribution
Agent and triggers of updateable subscriptions to track subscription
properties. This table is stored in the subscription database.
|
MSsubscription_articles
|
The MSsubscription_articles table contains information
regarding the articles in a queued subscription. This table is populated only
for the replication types of queued updating and immediate updating with
queued updating as a failover
|
MSsubscription_properties
|
The MSsubscription_properties table contains rows for the
parameter information required to run replication agents at the Subscriber.
This table is stored in the subscription database at the Subscriber for a
pull subscription or in the distribution database at the Distributor for a
push subscription.
|
MSsubscriptions
|
The MSsubscriptions table contains one row for each
published article in a subscription serviced by the local Distributor. This
table is stored in the distribution database
|
MSsync_states
|
The MSsync_states table tracks which publication is still
in concurrent snapshot mode. This table is stored in the distribution
database.
|
MStracer_history
|
The MStracer_history table maintains a record of all
tracer tokens that have been received at the Subscriber. This table is stored
in the distribution database and is used by replication for performance
monitoring
|
MStracer_tokens
|
The MStracer_tokens table maintains a record of tracer
token records inserted into a publication. This table is stored in the
distribution database and is used by replication for performance monitoring.
|
sysarticlecolumns
|
The sysarticlecolumns table contains one row for each
table column that is published in a snapshot or transactional publication,
and maps each column to its article. This table is stored in the publication
database.
|
sysarticles
|
Contains a row for each article defined in the local database.
This table is stored in the published database
|
sysarticleupdates
|
Contains one row for each article that supports
immediate-updating subscriptions. This table is stored in the replicated
database.
|
No comments:
Post a Comment