Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Managed Instance
Transact-SQL scriptbestanden kunnen worden gebruikt om programmatisch een replicatietopologie te configureren. Zie Concepten van opgeslagen procedures voor replicatiesysteem voor meer informatie.
Belangrijk
Hoewel u geen scripts hoeft te upgraden die worden uitgevoerd door leden van de rol sysadmin , raden we u aan bestaande scripts te wijzigen zoals beschreven in dit onderwerp. Geef een account op met minimale machtigingen voor elke replicatieagent, zoals beschreven in de sectie Machtigingen die vereist zijn voor agents van het beveiligingsmodel van de replicatieagent.
Deze beveiligingsverbeteringen, die meer controle over machtigingen mogelijk maken door expliciet de Microsoft Windows-accounts op te geven waaronder replicatieagenttaken worden uitgevoerd, zijn van invloed op de volgende opgeslagen procedures in bestaande scripts:
sp_addpublication_snapshot:
U moet nu de Windows-referenties opgeven als
@job_loginen@job_passwordbij het uitvoeren van sp_addpublication_snapshot (Transact-SQL) om de taak te maken waarmee de Snapshot Agent bij de distributeur wordt uitgevoerd.sp_addpushsubscription_agent:
U moet nu sp_addpushsubscription_agent (Transact-SQL) uitvoeren om expliciet een taak toe te voegen en de Windows-referenties (
@job_loginen@job_password) op te geven waaronder de distributieagenttaak wordt uitgevoerd bij de distributeur. In versies van SQL Server vóór SQL Server 2005 (9.x) is dit automatisch gedaan toen een push-abonnement werd gemaakt.sp_addmergepushsubscription_agent:
U moet nu sp_addmergepushsubscription_agent (Transact-SQL) uitvoeren om expliciet een taak toe te voegen en de Windows-referenties (
@job_loginen@job_password) op te geven waaronder de samenvoegagenttaak wordt uitgevoerd bij de distributeur. In versies van SQL Server vóór SQL Server 2005 (9.x) is dit automatisch gedaan toen een push-abonnement werd gemaakt.sp_addpullsubscription_agent:
U moet nu de Windows-referenties opgeven als
@job_loginen@job_passwordbij het uitvoeren van sp_addpullsubscription_agent (Transact-SQL) om de taak te maken waaronder de distributieagent wordt uitgevoerd bij de abonnee.sp_addmergepullsubscription_agent:
U moet nu de Windows-referenties opgeven als
@job_loginen@job_passwordwanneer u sp_addmergepullsubscription_agent (Transact-SQL) uitvoert om een taak aan te maken waaronder de samenvoegagent bij de abonnee draait.sp_addlogreader_agent:
U moet nu sp_addlogreader_agent (Transact-SQL) uitvoeren om de taak handmatig toe te voegen en de Windows-referenties op te geven waaronder de logboeklezeragent wordt uitgevoerd bij de distributeur. In versies van SQL Server vóór SQL Server 2005 (9.x) is dit automatisch gedaan toen een transactionele publicatie werd gemaakt.
sp_addqreader_agent:
U moet nu sp_addqreader_agent (Transact-SQL) uitvoeren om de taak handmatig toe te voegen en de Windows-referenties op te geven waaronder de Queue Reader-agent wordt uitgevoerd bij de distributeur. In versies van SQL Server vóór SQL Server 2005 (9.x) is dit automatisch gedaan toen een transactionele publicatie die het bijwerken in de wachtrij ondersteunde, werd gemaakt.
In het beveiligingsmodel dat is geïntroduceerd in SQL Server 2005 (9.x), maken replicatieagents altijd verbindingen met het lokale exemplaar van SQL Server met Windows-verificatie met behulp van de referenties die zijn opgegeven in @job_name en @job_password. Zie Replicatieagentbeveiligingsmodel voor informatie over de vereisten van Windows-accounts die worden gebruikt bij het uitvoeren van replicatieagenttaken.
Belangrijk
Indien mogelijk vraagt u gebruikers om beveiligingsreferenties in te voeren tijdens runtime. Als u referenties opslaat in een scriptbestand, moet u ervoor zorgen dat het bestand zelf is beveiligd.
Scripts bijwerken die een momentopname of transactionele publicatie configureren
In het bestaande script voert u, voordat u sp_addpublication (Transact-SQL) uitvoert, sp_addlogreader_agent (Transact-SQL) uit bij de uitgever op de publicatiedatabase. Geef de Windows-referenties op waaronder de Log Reader Agent voor
@job_nameen@job_passwordwordt uitgevoerd. Als de agent SQL Server-verificatie gebruikt bij het maken van verbinding met publisher, moet u ook een waarde 0 opgeven voor@publisher_security_modeen de SQL Server-aanmeldingsgegevens voor@publisher_loginen@publisher_password. Hiermee maakt u een logboeklezeragenttaak voor de publicatiedatabase.Opmerking
Deze stap is alleen bedoeld voor transactionele publicaties en is niet vereist voor momentopnamepublicaties.
(Optioneel) Voordat sp_addpublication (Transact-SQL), voert u sp_addqreader_agent (Transact-SQL) uit bij de Distributor in de distributiedatabase. Geef de Windows-referenties op waarvoor de Queue Reader-agent wordt uitgevoerd voor
@job_nameen@job_password. Hiermee wordt een Queue Reader Agent job gemaakt voor de distributeur.Opmerking
Deze stap is alleen vereist voor transactionele publicaties die ondersteuning bieden voor het bijwerken van abonnees in de wachtrij.
(Optioneel) Werk de uitvoering van sp_addpublication (Transact-SQL) bij om niet-standaardwaarden in te stellen voor parameters die nieuwe replicatiefuncties implementeren.
Voer na sp_addpublication (Transact-SQL)sp_addpublication_snapshot (Transact-SQL) uit bij Publisher in de publicatiedatabase. Geef
@publicationen de Windows-referenties op waaronder de momentopnameagent wordt uitgevoerd voor@job_nameen@job_password. Als de agent SQL Server-verificatie gebruikt bij het maken van verbinding met publisher, moet u ook een waarde 0 opgeven voor@publisher_security_modeen de SQL Server-aanmeldingsgegevens voor@publisher_loginen@publisher_password. Hiermee maakt u een taak voor de momentopname-agent aan voor de publicatie.(Optioneel) Werk de uitvoering van sp_addarticle (Transact-SQL) bij om eventuele niet-standaardwaarden in te stellen voor parameters die nieuwe replicatiefuncties implementeren.
Scripts bijwerken die abonnementen toevoegen aan een momentopname of transactionele publicatie
Nadat u de opgeslagen procedure hebt uitgevoerd waarmee het abonnement wordt gemaakt, moet u ervoor zorgen dat u de opgeslagen procedure uitvoert waarmee een distributieagenttaak wordt gemaakt om het abonnement te synchroniseren. De opgeslagen procedure die u gebruikt, is afhankelijk van het type abonnement.
Werk voor een pull-abonnement de uitvoering van sp_addpullsubscription_agent (Transact-SQL) bij om de Windows-referenties op te geven waaronder de distributieagent wordt uitgevoerd bij de abonnee voor
@job_nameen@job_password. Dit gebeurt na de uitvoering van sp_addpullsubscription. Zie Een pull-abonnement maken voor meer informatie.Voor een pushabonnement voert u sp_addpushsubscription_agent (Transact-SQL) uit bij Publisher. Geef
@subscriber,@subscriber_db,@publication, Windows-referenties op waaronder de distributieagent wordt uitgevoerd bij de distributeur voor@job_nameen@job_password, en een schema voor deze agenttaak. Zie Synchronisatieschema's opgeven voor meer informatie. Dit gebeurt na de uitvoering van sp_addsubscription. Zie Een pushabonnement maken voor meer informatie.
Het bijwerken van scripts die een samenvoegpublicatie configureren
(Optioneel) Werk in het bestaande script de uitvoering van sp_addmergepublication (Transact-SQL) bij om eventuele niet-standaardwaarden in te stellen voor parameters die nieuwe replicatiefuncties implementeren.
Voer na sp_addmergepublication (Transact-SQL)sp_addpublication_snapshot (Transact-SQL) uit bij Publisher in de publicatiedatabase. Geef
@publicationen de Windows-referenties op waaronder de momentopnameagent wordt uitgevoerd voor@job_nameen@job_password. Als de agent SQL Server-verificatie gebruikt bij het maken van verbinding met publisher, moet u ook een waarde 0 opgeven voor@publisher_security_modeen de SQL Server-aanmeldingsgegevens voor@publisher_loginen@publisher_password. Hiermee maakt u een taak voor de momentopname-agent aan voor de publicatie.(Optioneel) Werk de uitvoering van sp_addmergearticle (Transact-SQL) bij om eventuele niet-standaardwaarden in te stellen voor parameters die nieuwe replicatiefuncties implementeren.
Scripts bijwerken die abonnementen toevoegen aan een samenvoegpublicatie
Nadat u de opgeslagen procedure voor het maken van het abonnement hebt uitgevoerd, moet u ervoor zorgen dat u de opgeslagen procedure uitvoert waarmee een samenvoegagenttaak wordt gemaakt om het abonnement te synchroniseren. De opgeslagen procedure die u gebruikt, is afhankelijk van het type abonnement.
Werk voor een pull-abonnement de uitvoering van sp_addmergepullsubscription_agent (Transact-SQL) bij. Hiermee geef je de Windows-referenties op waaronder de Samenvoegagent wordt uitgevoerd bij de abonnee voor
@job_nameen@job_password. Dit gebeurt na de uitvoering van sp_addmergepullsubscription. Zie Een pull-abonnement maken voor meer informatie.Voor een pushabonnement voert u sp_addmergepushsubscription_agent (Transact-SQL) uit bij Publisher. Geef
@subscriber,@subscriber_db,@publicationde Windows-referenties op waaronder de Merge Agent bij de distributeur wordt uitgevoerd voor@job_nameen@job_password, en stel een schema op voor deze agenttaak. Zie Synchronisatieschema's opgeven voor meer informatie. Dit gebeurt na de uitvoering van sp_addmergesubscription. Zie Een pushabonnement maken voor meer informatie.
Voorbeelden
Eén. SQL Server 2000-script voor het maken van een transactionele publicatie
Hier volgt een voorbeeld van een SQL Server 2000-script (8.x) waarmee een transactionele publicatie voor de tabel Product wordt gemaakt. Deze publicatie ondersteunt directe bijwerking, waarbij bijwerken in de wachtrij als een failoveroptie fungeert. Standaardparameters zijn verwijderd voor leesbaarheid.
USE [Northwind]
GO
DECLARE @publication AS sysname
DECLARE @publicationDB AS sysname
DECLARE @article AS sysname
SET @publication = N'NwdProductTran'
SET @publicationDB = N'Northwind'
SET @article = N'Products'
-- Enable the replication database.
EXEC sp_replicationdboption
@dbname = @publicationDB,
@optname = N'publish',
@value = N'true'
-- Add the transactional publication.
EXEC sp_addpublication
@publication = @publication,
@sync_method = N'native',
@status = N'active',
@repl_freq = N'continuous',
@description = N'Transactional publication of Northwind.',
@allow_push = N'true',
@allow_pull = N'true',
@allow_sync_tran = N'true',
@autogen_sync_procs = N'true',
@allow_queued_tran = N'true'
-- Add a snapshot job.
EXEC sp_addpublication_snapshot
@publication = @publication
-- Add the transactional articles.
EXEC sp_addarticle
@publication = @publication,
@article = @article,
@source_owner = N'dbo',
@source_object = @article,
@destination_table = @article,
@type = N'logbased',
@schema_option = 0x00000000000080F3,
@ins_cmd = N'CALL sp_MSins_Products',
@del_cmd = N'XCALL sp_MSdel_Products',
@upd_cmd = N'XCALL sp_MSupd_Products',
@auto_identity_range = N'false'
GO
B. SQL Server 2005 en hoger script voor het maken van een transactionele publicatie
Hier volgt een voorbeeld van het upgraden van het vorige script, waarmee een transactionele publicatie wordt gemaakt, om te worden uitgevoerd voor SQL Server 2005 (9.x) en latere versies. Deze publicatie ondersteunt directe bijwerking, waarbij bijwerken in de wachtrij als een failoveroptie fungeert. Standaardwaarden voor nieuwe parameters zijn expliciet gedeclareerd.
Opmerking
Windows-referenties worden tijdens runtime opgegeven met behulp van sqlcmd-scriptvariabelen .
-- To avoid storing the login and password in the script file, the value
-- is passed into SQLCMD as a scripting variable. For information about
-- how to use scripting variables on the command line and in SQL Server
-- Management Studio, see the "Executing Replication Scripts" section in
-- the topic "Programming Replication Using System Stored Procedures".
-- Execute at the Distributor.
USE [distribution]
DECLARE @login AS sysname;
DECLARE @password AS sysname;
-- Specify the Windows account to run the Queue Reader Agent.
SET @login = $(Login);
-- Pass the password at runtime.
SET @password = $(Password);
-- Execute sp_addqreader_agent to create the Queue Reader Agent job.
EXEC sp_addqreader_agent
@job_login = @login,
@job_password = @password;
GO
-- Execute at the Publisher.
USE [Northwind]
GO
DECLARE @publication AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @article AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publication = N'NwdProductTran';
SET @publicationDB = N'Northwind';
SET @article = N'Products';
-- Specify the Windows account to run the Log Reader and Snapshot Agents.
SET @login = $(Login);
-- Pass the password at runtime.
SET @password = $(Password);
-- Enable the replication database.
EXEC sp_replicationdboption
@dbname = @publicationDB,
@optname = N'publish',
@value = N'true';
-- Execute sp_addlogreader_agent to create the agent job.
EXEC sp_addlogreader_agent
@job_login = @login,
@job_password = @password,
-- Explicitly specify the use of Windows Integrated Authentication (default)
-- when connecting to the Publisher.
@publisher_security_mode = 1;
-- Add the transactional publication.
EXEC sp_addpublication
@publication = @publication,
@sync_method = N'native',
@repl_freq = N'continuous',
@status = N'active',
@description = N'Transactional publication of Northwind.',
@allow_push = N'true',
@allow_pull = N'true',
@allow_sync_tran = N'true',
@autogen_sync_procs = N'true',
@allow_queued_tran = N'true',
@replicate_ddl = 1,
@enabled_for_p2p = N'false';
-- Create a new snapshot job for the publication, using a default schedule.
EXEC sp_addpublication_snapshot
@publication = @publication,
@job_login = @login,
@job_password = @password,
-- Explicitly specify the use of Windows Integrated Authentication (default)
-- when connecting to the Publisher.
@publisher_security_mode = 1;
-- Add a transactional article.
EXEC sp_addarticle
@publication = @publication,
@article = @article,
@source_owner = N'dbo',
@source_object = @article,
@destination_table = @article,
@type = N'logbased',
@schema_option = 0x00000000000080F3,
@ins_cmd = N'CALL sp_MSins_Products',
@del_cmd = N'XCALL sp_MSdel_Products',
@upd_cmd = N'XCALL sp_MSupd_Products',
@auto_identity_range = N'false',
@identityrangemanagementoption = N'manual',
@fire_triggers_on_snapshot = N'false';
GO
C. SQL Server 2000-script voor het maken van een samenvoegpublicatie
Hier volgt een voorbeeld van een SQL Server 2000-script (8.x) waarmee een samenvoegpublicatie voor de tabel Klanten wordt gemaakt. Standaardparameters zijn verwijderd voor leesbaarheid.
-- Enable the replication database.
USE [Northwind]
GO
DECLARE @publicationDB AS sysname
DECLARE @publication AS sysname
DECLARE @article AS sysname
SET @publicationDB = N'Northwind'
SET @publication = N'NwdCustomersMerge'
SET @article = N'Customers'
EXEC sp_replicationdboption
@dbname = @publicationDB,
@optname = N'merge publish',
@value = N'true'
-- Add the merge publication.
EXEC sp_addmergepublication
@publication = @publication,
@description = N'Merge publication of Northwind.',
@retention = 14,
@sync_mode = N'native',
@centralized_conflicts = N'true',
@dynamic_filters = N'false',
@keep_partition_changes = N'false'
EXEC sp_addpublication_snapshot
@publication = @publication
-- Add the merge articles.
EXEC sp_addmergearticle
@publication = @publication,
@article = @article,
@source_owner = N'dbo',
@source_object = @article,
@type = N'table',
@description = null,
@column_tracking = N'true',
@schema_option = 0x000000000000CFF1
GO
D. SQL Server 2005 en later script om een samenvoegpublicatie te maken
Hier volgt een voorbeeld van het vorige script, waarmee een samenvoegpublicatie wordt gemaakt, die is bijgewerkt om te worden uitgevoerd voor SQL Server 2005 (9.x) en latere versies. Standaardwaarden voor nieuwe parameters zijn expliciet gedeclareerd.
Opmerking
Windows-referenties worden tijdens runtime opgegeven met behulp van sqlcmd-scriptvariabelen .
-- To avoid storing the login and password in the script file, the value
-- is passed into SQLCMD as a scripting variable. For information about
-- how to use scripting variables on the command line and in SQL Server
-- Management Studio, see the "Executing Replication Scripts" section in
-- the topic "Programming Replication Using System Stored Procedures".
-- Enabling the replication database
-- Enable the replication database.
USE [Northwind]
GO
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'Northwind';
SET @publication = N'NwdCustomersMerge';
SET @article = N'Customers';
-- Specify the Windows account to run the Snapshot Agent.
SET @login = $(Login);
-- Supply the password at runtime.
SET @password = $(Password);
EXEC sp_replicationdboption
@dbname = @publicationDB,
@optname = N'merge publish',
@value = N'true';
-- Add the merge publication.
EXEC sp_addmergepublication
@publication = @publication,
@description = N'Merge publication of Northwind.',
@retention = 14,
@sync_mode = N'native',
@dynamic_filters = N'false',
@keep_partition_changes = N'false',
-- Only set to '90RTM' if all Subscribers are SQL Server 2005.
@publication_compatibility_level = N'90RTM',
@replicate_ddl = 1,
@allow_subscriber_initiated_snapshot = N'true',
@allow_web_synchronization = N'false',
@allow_partition_realignment = N'true',
@retention_period_unit = N'day',
@automatic_reinitialization_policy = 0,
@conflict_logging = N'both';
EXEC sp_addpublication_snapshot
@publication = @publication,
@job_login = @login,
@job_password = @password;
-- Add the merge article.
EXEC sp_addmergearticle
@publication = @publication,
@article = @article,
@source_owner = N'dbo',
@source_object = @article,
@type = N'table',
@description = null,
@column_tracking = N'true',
@schema_option = 0x0000000000034FD1,
@partition_options = 0,
@subscriber_upload_options = 0,
@identityrangemanagementoption = N'manual',
@delete_tracking = N'true',
@compensate_for_errors = N'false',
@stream_blob_columns = N'true';
GO
E. SQL Server 2000-script voor het maken van een push-abonnement naar een transactionele publicatie
Hier volgt een voorbeeld van een SQL Server 2000-script (8.x) waarmee een push-abonnement wordt gemaakt naar een transactionele publicatie. Standaardparameters zijn verwijderd voor leesbaarheid.
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
SET @publication = N'NwdProductTran'
SET @subscriber = N'MYSUBSERVER'
SET @subscriptionDB = N'NorthwindReplica'
-- Add a Subscriber, using the defaults.
USE [master]
EXEC sp_addsubscriber
@subscriber = @subscriber
-- Add a push subscription to a transactional publication.
USE [Northwind]
EXEC sp_addsubscription
@publication = @publication,
@subscriber = @subscriber,
@destination_db = @subscriptionDB,
@subscription_type = N'push'
GO
F. SQL Server 2005 en hoger script voor het maken van een push-abonnement op een transactionele publicatie
Hier volgt een voorbeeld van het vorige script, waarmee een pushabonnement wordt gemaakt op een transactionele publicatie, die is bijgewerkt om te worden uitgevoerd voor SQL Server 2005 (9.x) en latere versies. Standaardwaarden voor nieuwe parameters zijn expliciet gedeclareerd.
Opmerking
Windows-referenties worden tijdens runtime opgegeven met behulp van sqlcmd-scriptvariabelen .
-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables
-- on the command line and in SQL Server Management Studio, see the
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publication = N'NwdProductTran';
SET @subscriber = $(Subscriber);
SET @subscriptionDB = N'NorthwindReplica';
-- Specify the Windows account to run the Distribution Agent.
SET @login = $(Login);
-- Supply the password at runtime.
SET @password = $(Password);
-- Add a push subscription to a transactional publication.
USE [Northwind]
EXEC sp_addsubscription
@publication = @publication,
@subscriber = @subscriber,
@destination_db = @subscriptionDB,
@subscription_type = N'push';
-- Add an agent job to synchronize the push subscription.
EXEC sp_addpushsubscription_agent
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@job_login = @login,
@job_password = @password;
GO
G. SQL Server 2000-script om een push-abonnement te maken voor een samenvoegpublicatie
Hier volgt een voorbeeld van een SQL Server 2000-script (8.x) waarmee een push-abonnement wordt gemaakt voor een samenvoegpublicatie. Standaardparameters zijn verwijderd voor leesbaarheid.
DECLARE @publication AS sysname
DECLARE @subscriber AS sysname
DECLARE @subscriptionDB AS sysname
SET @publication = N'NwdCustomersMerge'
SET @subscriber = N'SUBSERVER'
SET @subscriptionDB = N'NorthwindReplica'
-- Add a Subscriber, using the defaults.
USE [master]
EXEC sp_addsubscriber
@subscriber = @subscriber
-- Add a push subscription to a merge publication.
USE [Northwind]
EXEC sp_addmergesubscription
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@subscription_type = N'push',
@subscriber_type = N'local',
@sync_type = N'automatic'
GO
H. SQL Server 2005 en hoger script om een push-abonnement te maken voor een samenvoegpublicatie
Hier volgt een voorbeeld van het vorige script, waarmee een push-abonnement wordt gemaakt naar een samenvoegpublicatie, die is bijgewerkt om te worden uitgevoerd voor SQL Server 2005 (9.x) en latere versies. Standaardwaarden voor nieuwe parameters zijn expliciet gedeclareerd.
Opmerking
Windows-referenties worden tijdens runtime opgegeven met behulp van sqlcmd-scriptvariabelen .
-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables
-- on the command line and in SQL Server Management Studio, see the
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publication = N'NwdCustomersMerge';
SET @subscriber = $(Subscriber);
SET @subscriptionDB = N'NorthwindReplica';
-- Specify the Windows account to run the Merge Agent.
SET @login = $(Login);
-- Supply the password at runtime.
SET @password = $(Password);
-- Add a push subscription to a merge publication.
USE [Northwind]
EXEC sp_addmergesubscription
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@subscription_type = N'push';
-- Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@job_login = @login,
@job_password = @password;
GO
Ik. SQL Server 2000-script voor het maken van een pull-abonnement op een transactionele publicatie
Hier volgt een voorbeeld van een SQL Server 2000-script (8.x) waarmee een pull-abonnement wordt gemaakt voor een transactionele publicatie. Standaardparameters zijn verwijderd voor leesbaarheid.
DECLARE @publication AS sysname
DECLARE @subscriber AS sysname
DECLARE @subscriptionDB AS sysname
SET @publication = N'NwdCustomersMerge'
SET @subscriber = N'SUBSERVER'
SET @subscriptionDB = N'NorthwindReplica'
-- Add a Subscriber, using the defaults.
USE [master]
EXEC sp_addsubscriber
@subscriber = @subscriber
-- Add a push subscription to a merge publication.
USE [Northwind]
EXEC sp_addmergesubscription
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@subscription_type = N'push',
@subscriber_type = N'local',
@sync_type = N'automatic'
GO
J. SQL Server 2005 en hoger script voor het maken van een pull-abonnement op een transactionele publicatie
Hier volgt een voorbeeld van het vorige script, waarmee een pull-abonnement wordt gemaakt op een transactionele publicatie, die is bijgewerkt om te worden uitgevoerd voor SQL Server 2005 (9.x) en latere versies. Standaardwaarden voor nieuwe parameters zijn expliciet gedeclareerd.
Opmerking
Windows-referenties worden tijdens runtime opgegeven met behulp van sqlcmd-scriptvariabelen .
-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables
-- on the command line and in SQL Server Management Studio, see the
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".
-- Execute at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publication = N'NwdProductTran';
SET @publisher = $(Publisher);
SET @publicationDB = N'Northwind';
-- Specify the Windows account to run the Distribution Agent.
SET @login = $(Login);
-- Supply the password at runtime.
SET @password = $(Password);
-- At the subscription database, create a pull subscription
-- to a transactional publication.
USE [NorthwindReplica]
EXEC sp_addpullsubscription
@publisher = @publisher,
@publication = @publication,
@publisher_db = @publicationDB,
@subscription_type = N'pull';
-- Add an agent job to synchronize the pull subscription.
EXEC sp_addpullsubscription_agent
@publisher = @publisher,
@publisher_db = @publicationDB,
@publication = @publication,
@distributor = @publisher,
@job_login = @login,
@job_password = @password;
GO
-- Execute at the Publisher.
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
SET @publication = N'NwdProductTran';
SET @subscriber = $(Subscriber);
SET @subscriptionDB = N'NorthwindReplica';
-- Add a pull subscription to a transactional publication.
USE [Northwind]
EXEC sp_addsubscription
@publication = @publication,
@subscriber = @subscriber,
@destination_db = @subscriptionDB,
@subscription_type = N'pull';
GO
K. SQL Server 2000-script voor het maken van een pull-abonnement voor een samenvoegpublicatie
Hier volgt een voorbeeld van een SQL Server 2000-script (8.x) waarmee een pull-abonnement wordt gemaakt voor een samenvoegpublicatie. Standaardparameters zijn verwijderd voor leesbaarheid.
-- Execute at the Subscriber
DECLARE @publication AS sysname
DECLARE @publisher AS sysname
DECLARE @publicationDB AS sysname
DECLARE @subscriber AS sysname
DECLARE @subscriptionDB AS sysname
SET @publication = N'NwdCustomersMerge'
SET @publisher = N'PUBSERVER'
SET @publicationDB = N'Northwind'
SET @subscriber = N'SUBSERVER'
SET @subscriptionDB = N'NorthwindReplica'
-- At the subscription database, create a pull subscription
-- to a merge publication.
USE [NorthwindReplica]
EXEC sp_addmergepullsubscription
@publisher = @publisher,
@publication = @publication,
@publisher_db = @publicationDB
-- Add an agent job to synchronize the pull subscription.
EXEC sp_addmergepullsubscription_agent
@publisher = @publisher,
@publisher_db = @publicationDB,
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@distributor = @publisher
GO
-- Execute at the Publisher.
DECLARE @publication AS sysname
DECLARE @subscriber AS sysname
DECLARE @subscriptionDB AS sysname
SET @publication = N'NwdCustomersMerge'
SET @subscriber = N'MYSUBSERVER'
SET @subscriptionDB = N'NorthwindReplica'
-- Add a Subscriber, using the defaults.
USE [master]
EXEC sp_addsubscriber
@subscriber = @subscriber
-- Add a pull subscription to a merge publication.
USE [Northwind]
EXEC sp_addmergesubscription
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@subscription_type = N'pull',
@subscriber_type = N'local',
@sync_type = N'automatic'
GO
L. SQL Server 2005 en hoger script om een pull-abonnement te maken voor een samenvoegpublicatie
Hier volgt een voorbeeld van het vorige script, waarmee een pull-abonnement wordt gemaakt voor een samenvoegpublicatie, die is bijgewerkt om te worden uitgevoerd voor SQL Server 2005 (9.x) en latere versies. Standaardwaarden voor nieuwe parameters zijn expliciet gedeclareerd.
Opmerking
Windows-referenties worden tijdens runtime opgegeven met behulp van sqlcmd-scriptvariabelen .
-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables
-- on the command line and in SQL Server Management Studio, see the
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".
-- Execute at the Subscriber
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publication = N'NwdCustomersMerge';
SET @publisher = $(Publisher);
SET @publicationDB = N'Northwind';
-- Specify the Windows account to run the Merge Agent.
SET @login = $(Login);
-- Pass the password at runtime.
SET @password = $(Password);
-- At the subscription database, create a pull subscription
-- to a merge publication.
USE [NorthwindReplica]
EXEC sp_addmergepullsubscription
@publisher = @publisher,
@publication = @publication,
@publisher_db = @publicationDB;
-- Add an agent job to synchronize the pull subscription.
EXEC sp_addmergepullsubscription_agent
@publisher = @publisher,
@publisher_db = @publicationDB,
@publication = @publication,
@distributor = @publisher,
@job_login = @login,
@job_password = @password;
GO
-- Execute at the Publisher.
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
SET @publication = N'NwdCustomersMerge';
SET @subscriber = $(Subscriber);
SET @subscriptionDB = N'NorthwindReplica';
-- Add a pull subscription to a merge publication.
USE [Northwind]
EXEC sp_addmergesubscription
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@subscription_type = N'pull',
@subscriber_type = N'local',
@sync_type = N'automatic';
GO