Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
azure SQL Managed Instance
Transact-SQL soubory skriptu lze použít k programové konfiguraci topologie replikace. Další informace naleznete v tématu Koncepty uložených procedur systému replikace.
Důležité
I když nemusíte upgradovat skripty, které spouští členové role sysadmin , doporučujeme upravit existující skripty, jak je popsáno v tomto tématu. Zadejte účet, který má minimální oprávnění pro každého agenta replikace, jak je popsáno v části Oprávnění vyžadovaná agenty tématu Model zabezpečení agenta replikace.
Tato vylepšení zabezpečení, která umožňují větší kontrolu nad oprávněními tím, že umožňují explicitně zadat účty Systému Microsoft Windows, pod kterými se spouští úlohy agenta replikace, ovlivňují následující uložené procedury v existujících skriptech:
sp_addpublication_snapshot:
Teď byste měli zadat přihlašovací údaje systému Windows jako
@job_login
a@job_password
při provádění sp_addpublication_snapshot (Transact-SQL) a vytvořit úlohu, ve které agent snímků běží na distributoru.sp_addpushsubscription_agent:
Teď byste měli spustit sp_addpushsubscription_agent (Transact-SQL) a explicitně přidat úlohu a zadat přihlašovací údaje systému Windows (
@job_login
a@job_password
), pod kterými se úloha distribučního agenta spouští u distributora. Ve verzích SQL Serveru před SQL Serverem 2005 (9.x) se to provedlo automaticky při vytvoření nabízeného předplatného.sp_addmergepushsubscription_agent:
Teď byste měli spustit sp_addmergepushsubscription_agent (Transact-SQL) a explicitně přidat úlohu a zadat přihlašovací údaje systému Windows (
@job_login
a@job_password
), pod kterými se úloha slučovacího agenta spouští u distributora. Ve verzích SQL Serveru před SQL Serverem 2005 (9.x) se to provedlo automaticky při vytvoření nabízeného předplatného.sp_addpullsubscription_agent:
Teď byste měli zadat přihlašovací údaje systému Windows jako
@job_login
a@job_password
při provádění sp_addpullsubscription_agent (Transact-SQL) a vytvořit úlohu, ve které distribuční agent běží u odběratele.sp_addmergepullsubscription_agent:
Teď byste měli zadat přihlašovací údaje systému Windows jako
@job_login
a@job_password
při provádění sp_addmergepullsubscription_agent (Transact-SQL) a vytvořit úlohu, ve které agent sloučení běží u odběratele.sp_addlogreader_agent:
Teď byste měli spustit sp_addlogreader_agent (Transact-SQL) a ručně přidat úlohu a zadat přihlašovací údaje systému Windows, pod kterými agent čtenáře protokolů běží na distributoru. Ve verzích SQL Serveru před SQL Serverem 2005 (9.x) se to provedlo automaticky při vytvoření transakční publikace.
sp_addqreader_agent:
Teď byste měli spustit sp_addqreader_agent (Transact-SQL) a ručně přidat úlohu a zadat přihlašovací údaje systému Windows, pod kterými běží agent čtenáře fronty u distributora. Ve verzích SQL Serveru před SQL Serverem 2005 (9.x) se to provedlo automaticky při vytvoření transakční publikace, která podporovala aktualizaci ve frontě.
V modelu zabezpečení zavedeném v SQL Serveru 2005 (9.x) se agenti replikace vždy připojují k místní instanci SQL Serveru pomocí ověřování systému Windows a přihlašovacích údajů zadaných v @job_name
a @job_password
. Informace o požadavcích účtů Systému Windows používaných při spouštění úloh agenta replikace naleznete v tématu Model zabezpečení agenta replikace.
Důležité
Pokud je to možné, vyzve uživatele, aby za běhu zadali přihlašovací údaje zabezpečení. Pokud přihlašovací údaje ukládáte do souboru skriptu, ujistěte se, že je samotný soubor zabezpečený.
Aktualizovat skripty, které konfigurují snímek nebo transakční publikaci.
V existujícím skriptu před sp_addpublication (Transact-SQL) spusťte sp_addlogreader_agent (Transact-SQL) v Publisheru v databázi publikace. Zadejte pověření systému Windows, pod kterými běží agent Čtenář protokolů pro
@job_name
a@job_password
. Pokud agent při připojování k publisheru použije ověřování SYSTÉMU SQL Server, je nutné zadat také hodnotu 0 pro@publisher_security_mode
a přihlašovací údaje systému SQL Server pro@publisher_login
a@publisher_password
. Tím se vytvoří úloha agenta Log Reader pro databázi publikace.Poznámka:
Tento krok je určen pouze pro transakční publikace a není vyžadován pro snímkové publikace.
(Volitelné) Před sp_addpublication (Transact-SQL)spusťte sp_addqreader_agent (Transact-SQL) u distributora v distribuční databázi. Zadejte přihlašovací údaje systému Windows, pod kterými běží agent čtenáře fronty pro
@job_name
a@job_password
. Tím se vytvoří úloha agenta čtenáře fronty pro distributora.Poznámka:
Tento krok se vyžaduje pouze pro transakční publikace, které podporují aktualizaci odběratelů ve frontě.
(Volitelné) Aktualizujte provádění sp_addpublication (Transact-SQL), aby se pro parametry, které implementují nové funkce replikace, nastavily všechny jiné než výchozí hodnoty.
Po sp_addpublication (Transact-SQL) spusťte sp_addpublication_snapshot (Transact-SQL) v Publisheru v databázi publikace. Zadejte
@publication
a přihlašovací údaje systému Windows, pod kterými běží agent snímků pro@job_name
a@job_password
. Pokud agent při připojování k publisheru použije ověřování SYSTÉMU SQL Server, je nutné zadat také hodnotu 0 pro@publisher_security_mode
a přihlašovací údaje systému SQL Server pro@publisher_login
a@publisher_password
. Tím se pro publikaci vytvoří úloha agenta snímku.(Volitelné) Aktualizujte provádění sp_addarticle (Transact-SQL), aby se pro parametry, které implementují nové funkce replikace, nastavily všechny jiné než výchozí hodnoty.
Chcete-li aktualizovat skripty, které přidávají předplatné do snímku nebo transakční publikace
Po spuštění uložené procedury, která vytvoří předplatné, ujistěte se, že spustíte uloženou proceduru, která vytvoří úlohu distribučního agenta pro synchronizaci předplatného. Uložená procedura, kterou použijete, bude záviset na typu předplatného.
V případě předplatného typu pull aktualizujte spuštění sp_addpullsubscription_agent (Transact-SQL) tak, aby byly zadány přihlašovací údaje systému Windows, pod kterými běží distribuční agent u odběratele pro
@job_name
a@job_password
. To se provádí po spuštění sp_addpullsubscription. Další informace najdete v Vytvoření odběru pomocí mechanismu 'pull'.V případě předplatného typu push spusťte sp_addpushsubscription_agent (Transact-SQL) u vydavatele. Zadejte
@subscriber
,@subscriber_db
,@publication
přihlašovací údaje systému Windows, pod kterými agent distribuce běží na distributoru pro@job_name
a@job_password
, a plán pro tuto úlohu agenta. Další informace naleznete v tématu Určení plánů synchronizace. To se provádí po spuštění sp_addsubscription. Další informace viz Vytvoření push předplatného.
Pro upgrade skriptů, které konfigurují sloučenou publikaci
(Volitelné) V existujícím skriptu aktualizujte spuštění sp_addmergepublication (Transact-SQL), aby se pro parametry, které implementují nové funkce replikace, nastavily všechny jiné než výchozí hodnoty.
Po sp_addmergepublication (Transact-SQL)spusťte sp_addpublication_snapshot (Transact-SQL) v Publisheru v databázi publikace. Zadejte
@publication
a přihlašovací údaje systému Windows, pod kterými běží agent snímků pro@job_name
a@job_password
. Pokud agent při připojování k publisheru použije ověřování SYSTÉMU SQL Server, je nutné zadat také hodnotu 0 pro@publisher_security_mode
a přihlašovací údaje systému SQL Server pro@publisher_login
a@publisher_password
. Tím se pro publikaci vytvoří úloha agenta snímku.(Volitelné) Aktualizujte provádění sp_addmergearticle (Transact-SQL), aby se pro parametry, které implementují nové funkce replikace, nastavily všechny jiné než výchozí hodnoty.
Provedení upgradu skriptů, které přidávají předplatná do sloučené publikace
Po spuštění uložené procedury, která vytvoří předplatné, ujistěte se, že spustíte uloženou proceduru, která vytvoří úlohu slučovacího agenta pro synchronizaci předplatného. Uložená procedura, kterou použijete, bude záviset na typu předplatného.
V případě předplatného pro vyžádání aktualizujte spuštění sp_addmergepullsubscription_agent (Transact-SQL) tak, aby zahrnovalo přihlašovací údaje systému Windows, pod kterými se agent sloučení spouští u odběratele pro
@job_name
a@job_password
. To se provádí po spuštění sp_addmergepullsubscription. Další informace najdete v Vytvoření odběru pomocí mechanismu 'pull'.U push předplatného spusťte sp_addmergepushsubscription_agent (Transact-SQL) na Publisheru. Zadejte
@subscriber
,@subscriber_db
,@publication
přihlašovací údaje systému Windows, pod kterými se agent sloučení na distributoru spouští pro@job_name
a@job_password
, a plán pro tuto úlohu agenta. Další informace naleznete v tématu Určení plánů synchronizace. To se provádí po spuštění sp_addmergesubscription. Další informace viz Vytvoření push předplatného.
Příklady
A. Skript SQL Serveru 2000 pro vytvoření transakční publikace
Následuje příklad skriptu SYSTÉMU SQL Server 2000 (8.x), který vytvoří transakční publikaci pro tabulku Product. Tato publikace podporuje okamžitou aktualizaci a aktualizaci ve frontě jako záložní řešení v případě selhání. Výchozí parametry byly odebrány pro čitelnost.
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 a novější skript pro vytvoření transakční publikace
Následuje příklad upgradu předchozího skriptu, který vytvoří transakční publikaci, aby se úspěšně spustil pro SQL Server 2005 (9.x) a novější verze. Tato publikace podporuje okamžitou aktualizaci a aktualizaci ve frontě jako záložní řešení v případě selhání. Výchozí hodnoty pro nové parametry byly explicitně deklarovány.
Poznámka:
Přihlašovací údaje systému Windows se za běhu zadají pomocí skriptovacích proměnných sqlcmd .
-- 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. Skript SQL Serveru 2000 pro vytvoření sloučené publikace
Následuje příklad skriptu SQL Serveru 2000 (8.x), který vytvoří publikaci sloučení pro tabulku Customers. Výchozí parametry byly odebrány pro čitelnost.
-- 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 a novější skript pro vytvoření slučovací publikace
Následuje příklad předchozího skriptu, který vytvoří sloučenou publikaci, upgradoval se tak, aby úspěšně běžel pro SQL Server 2005 (9.x) a novější verze. Výchozí hodnoty pro nové parametry byly explicitně deklarovány.
Poznámka:
Přihlašovací údaje systému Windows se za běhu zadají pomocí skriptovacích proměnných sqlcmd .
-- 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. Skript SQL Serveru 2000 pro vytvoření push odběru do transakční publikace
Následuje příklad skriptu pro SQL Server 2000 (8.x), který vytvoří push odběr k transakční publikaci. Výchozí parametry byly odebrány pro čitelnost.
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 a novější skript pro vytvoření push odběru k transakční publikaci
Následuje příklad předchozího skriptu, který vytvoří odběr push oznámení na transakční publikaci, upravený tak, aby úspěšně fungoval na SQL Server 2005 (9.x) a novějších verzích. Výchozí hodnoty pro nové parametry byly explicitně deklarovány.
Poznámka:
Přihlašovací údaje systému Windows se za běhu zadají pomocí skriptovacích proměnných sqlcmd .
-- 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. Skript SQL Server 2000 pro vytvoření push odběru ke sloučení publikace
Následuje příklad skriptu SQL Serveru 2000 (8.x), který vytvoří push odběr do sloučovací publikace. Výchozí parametry byly odebrány pro čitelnost.
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 a vyšší verze skript pro vytvoření push odběru do slučovací publikace
Následuje příklad předchozího skriptu, který vytvoří odběr nabízených oznámení do sloučené publikace, upgradoval se tak, aby se úspěšně spustil pro SQL Server 2005 (9.x) a novější verze. Výchozí hodnoty pro nové parametry byly explicitně deklarovány.
Poznámka:
Přihlašovací údaje systému Windows se za běhu zadají pomocí skriptovacích proměnných sqlcmd .
-- 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
Já. Skript SQL Serveru 2000 pro vytvoření vyžádaného odběru k transakční publikaci
Následuje příklad skriptu SQL Serveru 2000 (8.x), který vytvoří odběr dat z transakční publikace. Výchozí parametry byly odebrány pro čitelnost.
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 a novější - skript pro vytvoření pull odběru na transakční publikaci
Následuje příklad předchozího skriptu, který vytvoří odběr transakční publikace a byl upraven, aby spolehlivě fungoval pro SQL Server 2005 (9.x) a novější verze. Výchozí hodnoty pro nové parametry byly explicitně deklarovány.
Poznámka:
Přihlašovací údaje systému Windows se za běhu zadají pomocí skriptovacích proměnných sqlcmd .
-- 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. Skript SQL Serveru 2000 pro vytvoření předplatného typu pull pro sloučenou publikaci
Následuje příklad skriptu pro SQL Server 2000 (8.x), který vytvoří odběr typu pull ke sloučené publikaci. Výchozí parametry byly odebrány pro čitelnost.
-- 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 nebo novější skript pro vytvoření odběru na sloučenou publikaci
Následuje příklad předchozího skriptu, který vytvoří odběr replikace sloučení a byl vylepšen, aby se úspěšně provozoval pro SQL Server 2005 (9.x) a novější verze. Výchozí hodnoty pro nové parametry byly explicitně deklarovány.
Poznámka:
Přihlašovací údaje systému Windows se za běhu zadají pomocí skriptovacích proměnných sqlcmd .
-- 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
Související obsah
- Vytvoření publikace
- Vytvořit odběr push
- Vytvoření předplatného vyžádané replikace
- Zobrazení a úprava nastavení zabezpečení replikace
- MSSQL_ENG021797
- MSSQL_ENG021798
- Koncepty uložených procedur Replikačního Systému
- upgrade replikovaných databází