Home > Articles > Databases > SQL Server

Setting Up Transactional Replication with SQL Server 2005

Baya Dewald
  • PrintPrint
  • Share ThisShare This
  • DiscussDiscuss
Close WindowBaya Dewald

Baya Dewald 

Learn more…

Recommended Practices for SQL Server Analysis Services 2005/2008 Design
Feb 8, 2010
SQL Server Analysis Services 2005/2008 Administration
Jan 22, 2010
SQL Server 2005 Transactional Replication Agents
Oct 20, 2006
Replicating Code Modules with SQL Server 2005
Sep 15, 2006
Monitoring and Troubleshooting Replication Using SQL Server 2005
Sep 1, 2006
Maintaining Transactional Replication with SQL Server 2005
Aug 18, 2006
Setting Up Transactional Replication with SQL Server 2005
Aug 11, 2006
Monitoring and Tuning SQL Server with Profiler
Mar 3, 2006
Tips and Tricks Within Microsoft Analysis Services
Feb 24, 2006
Case Study of Building a Data Warehouse with Analysis Services (Part Two)
Feb 17, 2006
Case Study of Building a Data Warehouse with Analysis Services (Part One)
Feb 10, 2006
Developers vs. DBAs: Keys to Successful Cohabitation
Oct 6, 2005
SQL Server Transactional Replication Agents
Oct 22, 2004
Replicating Code Modules in SQL Server
Oct 15, 2004
Working with Analysis Services Cubes in SQL Server
Oct 1, 2004
Dimensional Databases: Building A Data Warehouse
Sep 17, 2004
SQL Server Log Shipping
Aug 20, 2004
Maintaining Transactional Replication
Apr 30, 2004
Monitoring and Troubleshooting Transactional Replication
Apr 23, 2004
Setting Up Transactional Replication with SQL Server
Mar 26, 2004
Introduction to Database Replication
Mar 5, 2004
SQL Server: Advantages and Drawbacks of User-Defined Functions
May 16, 2003
SQL Server User-Defined Functions (UDFs)
May 2, 2003
SQL Server String, Cursor, Security and Rowset Functions
Apr 18, 2003
Date, Math and Text Functions in SQL Server 2000
Apr 4, 2003
SQL Server System-Related Functions
Mar 14, 2003
Enhancing SQL Server Functionality with Functions
Feb 21, 2003
Optimizing Transact-SQL Code
Aug 9, 2002
SQL Server: Optimizing Database Performance Through Indexes
Aug 2, 2002
SQL Server: Tuning Database Design
Jul 26, 2002
SQL Server Tuning: Database Maintenance
Jul 19, 2002
Application Performance Tuning
Jul 12, 2002
Options Affecting SQL Server Locking Behavior
May 31, 2002
SQL Server: Blocking Problems
May 24, 2002
SQL Server: Details of Locking
May 17, 2002
SQL Server: Transaction and Locking Architecture
May 10, 2002
SQL Server and OPENXML
May 1, 2002
DTS Tips and Tricks
Mar 8, 2002
The DTS Object Model
Mar 1, 2002
Introduction to Data Transformation Services (DTS)
Feb 22, 2002
Normalizing Name Data in SQL Server
Jan 25, 2002
String Manipulations with SQL Server 2000
Jan 25, 2002
The EXPLICIT Mode of FOR XML
Jan 18, 2002
XML Support in Transact-SQL
Jan 18, 2002
Gathering Data for a Data Warehouse
Jan 11, 2002
Steps Involved in Building a Data Warehouse
Jan 11, 2002
Populating a Data Warehouse with SQL Server 2000
Nov 9, 2001
SQL Server: Determining Whether a Date is a Business Day
Nov 9, 2001

Sorry, this author hasn't posted any blogs.

Administrator's Guide to SQL Server 2005

Like this article? We recommend
Administrator's Guide to SQL Server 2005

In Microsoft SQL Server, you can replicate data and schema changes from one database server to another. Baya Pavliashvili walks us through the use of the SQL Server 2005 wizards and scripts for setting up transactional replication and points out some of the cool new features of the latest version.

Replication is an advanced feature of Microsoft SQL Server, allowing you to move data and schema changes from one database server to another. In this article, I’ll show you how to set up transactional replication in a simple environment using SQL Server 2005. Subsequent articles in this series will discuss maintaining and troubleshooting transactional replication and replicating code modules.

The examples in this article are based on SQL Server 2005 Service Pack 1. Although this article isn’t intended to be a comparison of features between versions 2000 and 2005, I will underline the improvements that I consider worth observing. This article teaches you how to set up transactional replication using wizards and scripts. In most cases, you’ll set up the initial publication and subscribers using wizards; however, if you need to apply the same publication in multiple environments, you’ll appreciate the option of applying the scripts as opposed to going through wizards time and again.

Configuring a Distributor

SQL Server 2005 introduced numerous welcome improvements to replication, not the least of which is shorter wizards. Following a wizard isn’t difficult, but fewer wizard screens certainly make replication setup quicker. As a rule, replication wizards in SQL Server 2005 are nearly 50% shorter than those in SQL Server 2000.

The first step in configuring replication is designating a server that will take care of storing and delivering replicated transactions—the distributor. A single server can act as a publisher, distributor, and a subscriber, all at the same time. However, in a realistic scenario you’re likely to use two different servers as publisher and subscriber. Using a separate server as the distributor can help to reduce the load on the publisher.

To invoke the Configure Distribution Wizard, connect to an instance of SQL Server by using the SQL Server Management Studio (SSMS), navigate to the "replication" folder, right-click this folder, and choose Configure Distribution from the pop-up menu. Replication wizards are no longer modal; that is, you can continue working with SSMS while the wizard is active. The first screen of the wizard simply informs you of the tasks that this wizard can help you to accomplish. If you don’t ever want to see this screen again, simply check the option to skip the introductory screen in the future.

The next screen asks whether you want to use the local server or a different server as the distributor (see Figure 1).

If you want to use a remote distributor, you must first run the Configure Distribution Wizard on that server. For this example, I’ll use the same instance as both publisher and distributor. The next screen allows you to specify the snapshot folder where data and schema of the published database will be stored (see Figure 2). By default, the snapshot folder is called ReplData and is created within the directory where the current SQL Server instance is installed.

Notice the warning in the dialog box, indicating that the current directory doesn’t support pull subscriptions. To use pull subscriptions, you need a network folder for storing snapshots. Because both publisher and subscriber instances of SQL Server in this example will reside on the same computer, I can safely disregard this message, and simply click Next.

The following screen allows for configuring the distribution database’s name and the location for its data and transaction log files. By default, the distribution database is called distribution; you can modify the name if you have a compelling reason to do so. For example, if you have dozens or hundreds of publications, you might want to have multiple distribution databases, with descriptive names for each one. The wizard will use the default location for database and log files. You can configure the default location on the Database Settings tab in the Server Properties dialog box in SSMS (right-click the server and choose Properties to access the dialog box). Alternatively, you can change file locations in the wizard, as shown in Figure 3.

The next screen enables servers to use the current distributor when they’re configured as publishers (see Figure 4). This screen has a couple of interesting options. First, if you click the ellipsis (...) button next to a publisher, you’ll get a dialog box that allows you to configure the log reader agent’s security credentials as well as the snapshot folder for this publisher, as shown in Figure 5.

Second, the Add button allows you to add a SQL Server or Oracle publisher. This feature is worth your attention because using the distribution database for an Oracle publisher wasn’t available in previous versions.

After you’ve enabled the publishers, you can set a password for remote publishers (see Figure 6). You must enter the same password twice. SQL Server 2005 allows the administrator to enforce password policies and password expiration. Hence, the wizard warns you that the password you enter for a remote publisher must meet the password policy requirements.

After you click Next on this screen, you can configure distribution right away, save the script for later execution, or perform both actions. If you choose to save the script, you’ll be asked for the location where you want to save the file. At this point, the wizard presents a synopsis of the steps it’s about to undertake; once you click Finish, the wizard will create the script for adding a distributor and/or save the script, depending on what you specified.

Listing 1 shows a script for configuring a distributor and adding a publisher.

Listing 1 Sample script for configuring a distributor and adding a publisher.

use master
GO
exec sp_adddistributor @distributor = N’server\instance’, @password = N’’
GO

/* create and configure distribution database */

exec sp_adddistributiondb @database = N’distribution’,
@data_folder = N’C:\Program Files\Microsoft SQL Server\MSSQL.4\MSSQL\Data’,
@data_file_size = 4, @log_folder = N’C:\Program Files\Microsoft SQL Server\MSSQL.4\MSSQL\Data’,
@log_file_size = 2, @min_distretention = 0, @max_distretention = 72, @history_retention = 48,
@security_mode = 1
GO

use [distribution]
if (not exists (select * from sysobjects where name = ’UIProperties’ and type = ’U ’))
 create table UIProperties(id int)
if (exists
(select * from ::fn_listextendedproperty(’SnapshotFolder’, ’user’, ’dbo’, ’table’,
’UIProperties’, null, null)))

EXEC sp_updateextendedproperty
N’SnapshotFolder’, N’C:\Program Files\Microsoft SQL Server\MSSQL.4\MSSQL\ReplData’,
’user’, dbo, ’table’, ’UIProperties’
else
 EXEC sp_addextendedproperty N’SnapshotFolder’,
 ’C:\Program Files\Microsoft SQL Server\MSSQL.4\MSSQL\ReplData’, ’user’, dbo, ’table’,
 ’UIProperties’
GO

/* add a publisher */

exec sp_adddistpublisher @publisher = N’server\instance’, @distribution_db = N’distribution’,
@security_mode = 1,
@working_directory = N’C:\Program Files\Microsoft SQL Server\MSSQL.4\MSSQL\ReplData’,
@trusted = N’false’, @thirdparty_flag = 0, @publisher_type = N’MSSQLSERVER’
GO

Once you’ve configured the distribution database, you can read or modify the distributor properties by right-clicking the replication folder and choosing Distributor Properties. The resulting dialog box has two pages—a "general" page and a "publishers" page. The "general" page allows you to view distribution database properties and modify settings for transaction retention and/or history retention (see Figure 7).

Notice that you’re also allowed to create and configure a queue reader agent from this screen. The queue reader agent is beyond the scope of this article.

The "publishers" page of the Distribution Database Properties dialog box lets you add a publisher or change existing publishers’ properties.

  • Share ThisShare This
  • Your Account

Discussions

replication 2000 & 2005
Posted Aug 7, 2010 07:11 AM by ganeshanmsc
0 Replies
Doubt
Posted Nov 13, 2009 07:35 AM by tkrajasekar
0 Replies
bi directional transactional replication
Posted Nov 19, 2007 04:26 PM by BendJoe
1 Replies

Make a New Comment

You must log in in order to post a comment.

Related Resources

There are currently no related podcasts. Please check back later.

Buck WoodyDealing with Data Defining the Components to Tune
By Buck Woody on 0:00 No Comments

I've been reading a fascinating article about the Large Hadron Collider, or LHC facility. It's a scientific research facility that houses a particle collider, which generates an incredible amount of data. Their original plan was to stream the data to tape, then sending the data to "islands" closer to the users, offloading the network as quickly as possible. But they found that the network could handle the streaming better than they thought - so they now stream the data directly to the users, saturating the network. It's a new way of thinking about moving the data around.

Buck WoodyWork Swarms
By Buck Woody on August 24, 2010 No Comments

I’ve been reading some excerpts from Gartner, Inc. and information from others on the changes they are seeing in the workplace. It’s holding true where I work and in the workplaces of the other data professionals I work with. One of those new trends is called “Swarming” – where informal teams get together to work on a particular project, and in some cases a single task, as a group. They then move on to another task, and so on, like a swarm of bees. These are less formal than the “Tiger Teams” I used to be part of that were also temporary, but had a more formal banding and dis-banding. The Gartner article states that this is more often the norm in companies than not.

Buck WoodyA combination of crowdsourcing, people helping people, and the best technical community there is
By Buck Woody on August 19, 2010 No Comments

I talk a lot about “giving back”. It’s a personal issue with me – I grew up quite poor, and from time to time someone would take notice that my mom and I didn’t have enough to eat, and they would help us out. I’ve never forgotten those folks.

See All Related Blogs

Informit Network