SQL Server 2000
SQL Server 2000
SQL Server 2000
Step Procedure
Introduction
Replication is the process of sharing data between databases in different locations. Using
replication, we can create copies of the database and share the copy with different users so that
they can make changes to their local copy of database and later synchronize the changes to the
source database.
Microsoft SQL Server replication uses publisher, distributor and subscriber entities.
Publisher is a server that makes the data available for subscription to other servers. In addition
to that, publisher also identifies what data has changed at the subscriber during the synchronizing
process. Publisher contains publication(s).
Subscriber is a server that receives and maintains the published data. Modifications to the data
at subscriber can be propagated back to the publisher.
Distributor is the server that manages the flow of data through the replication system. Two
types of distributors are present, one is remote distributor and the other one local distributor.
Remote distributor is separate from publisher and is configured as distributor for replication.
Local distributor is a server that is configured as publisher and distributor.
Agents are the processes that are responsible for copying and distributing data between publisher
and subscriber. There are different types of agents supporting different types of replication.
An article can be any database object, like Tables (Column filtered or Row filtered), Views,
Indexed views, Stored Procedures, and User defined functions.
Types of Subscription:
Changes to the subscriptions at the publisher can be replicated to subscribers via PUSH
subscription or PULL subscription. With Push subscription, the publisher is responsible for
synchronizing all the changes to the subscriber without subscriber asking for those changes. With
Pull subscription, the subscriber initiates the replication instead of the publisher.
Replication Types
Microsoft SQL Server 2000 supports the following types of replication:
Snapshot Replication
Transactional Replication
Merge Replication
Snapshot Replication
Snapshot replication is also known as static replication. Snapshot replication copies and
distributes data and database objects exactly as they appear at the current moment in
time.
Subscribers are updated with complete modified data and not by individual transactions,
and are not continuous in nature.
This type is mostly used when the amount of data to be replicated is small and data/DB
objects are static or does not change frequently.
Transactional Replication
Merge replication
It allows making autonomous changes to replicated data on the Publisher and on the Subscriber.
With merge replication, SQL Server captures all incremental data changes in the source and in
the target databases, and reconciles conflicts according to rules you configure or using a custom
resolver you create. Merge replication is best used when you want to support autonomous
changes on the replicated data on the Publisher and on the Subscriber.
Replication agents involved in merge replication are snapshot agent and merge agent.
Implement merge replication if, changes are made constantly at the publisher and subscribing
servers, and must be merged in the end.
By default, the publisher wins all conflicts that it has with subscribers because it has the highest
priority. Conflict resolver can be customized.
2. Adequate disk space should be allocated for publisher, distribution and subscriber’s
databases.
3. Use NOT FOR REPLICATION option when defining Identity columns.
4. It will ask to choose a Distributor for the selected server. Select “Make Server its own
Distributor; SQL Server will create a distribution database and a log”. Then click Next.
5. It will ask for the Snapshot folder path. Browse and select the appropriate path for
Snapshot folder and then click Next.
Note: Create one folder in the Publisher machine and share the folder, then give full
permissions for the user through which you logged in. Make sure that you are able to
access this folder from the Subscriber machine also. If you are not able to access, give
full permissions to that shared folder for the appropriate user in the Publisher machine.
The Snapshot folder should be in the Publisher machine.
6. Choose the database which you want to publish and Click Next.
7. Select the Publication Type as “Merge Publication”.
8. Specify the Subscriber Types. Select “Servers running SQL Server 2000”. Then click
Next.
9. Select the Object Types (like Tables, Stored Procedures and Views) which you want to
publish, and click Next.
10. It will show some issues which may require some changes at later stages in order to work
as expected. Just click Next.
14. Then, it will ask “Whether you want to allow anonymous subscription to this
publication?”. Select “No, allow only named subscriptions”, and click Next.
15. It will show “Set Snapshot Agent Schedule” dialog box. Change the Snapshot Agent
Schedule as per your requirement, then select “Create the first snapshot immediately”.
And click Next.
16. Click Finish to create a Publication.
17. Finally, it will show “SQL Server Enterprise Manager successfully created publication
‘pub1’ from database ‘db1’. Just click Close.
18. It will show the dialog box “Create and Manage Publications on respective Server”. Now
go to the respective created Publication and click “Push New Subscription”.
19. Before doing “Push New Subscription”, create new SQL Server Registration for
Subscriber machine in the Publisher machine’s SQL Server Enterprise manager with
SQL Authentication mode. For this, there should be one common SQL login name in
both Publisher and Subscriber machines. Set server roles for this user as System
Administrator, Process Administrator and Bulk Insert Administrators, and give database
access to the respective database for which you want to perform replication.
20. Go to “Push New Subscription” wizard. This will open “Push Subscription Wizard”. Just
Click Next.
21. Choose one or more subscribers from Enabled Subscribers and click Next. (Note: It will
show the Subscriber’s SQL Server name under Enable Subscribers only if you do step
19.)
22. Choose Subscription (destination) database name by browsing and clicking Next. (Note:
You can create new database if you want by clicking Create New).
23. “Set Merge Agent Schedule”. Change the Schedule as per your requirement and click
Next.
24. Specify whether the Subscription(s) needs to be initialized or not. Select “Yes, initialize
the schema and data” as well as select “Start the Snapshot Agent to begin the
initialization process immediately”, and click Next.
25. “Set Subscription Priority” as “Use the Publisher as a proxy for the Subscriber when
resolving conflicts”, and click Next.
26. It will show the status of the SQLSERVERAGENT service as running. Just click Next.
Important Note:
SQL Server 2000 replication will not support full-text indexing. But, enable full-text indexing at
the subscriber machine manually. This can be done by Full-text indexing wizard. Select the
appropriate table and enable the required fields in that table as full-text indexed. Then, create a
new catalog or else use the existing catalog and schedule it, if needed. Once this is done, go to
that particular catalog and right click and select “Start full population”. The status will be
displayed as “population in progress”.
Advantages in Replication:
Users working in different geographic locations can work with their local copy of data
thus allowing greater autonomy.
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.