創(chuàng)建快照發(fā)布或事務發(fā)布此存儲過程在發(fā)布服務器的發(fā)布數(shù)據(jù)庫上執(zhí)行。
sp_addpublication [ @publication = ] 'publication'
[ , [ @taskid = ] tasked ]
[ , [ @restricted = ] 'restricted' ]
[ , [ @sync_method = ] 'sync_method' ]
[ , [ @repl_freq = ] 'repl_freq' ]
[ , [ @description = ] 'description' ]
[ , [ @status = ] 'status' ]
[ , [ @independent_agent = ] 'independent_agent' ]
[ , [ @immediate_sync = ] 'immediate_sync' ]
[ , [ @enabled_for_internet = ] 'enabled_for_internet' ]
[ , [ @allow_push = ] 'allow_push'
[ , [ @allow_pull = ] 'allow_pull' ]
[ , [ @allow_anonymous = ] 'allow_anonymous' ]
[ , [ @allow_sync_tran = ] 'allow_sync_tran' ]
[ , [ @autogen_sync_procs = ] 'autogen_sync_procs' ]
[ , [ @retention = ] retention ]
[ , [ @allow_queued_tran= ] 'allow_queued_updating' ]
[ , [ @snapshot_in_defaultfolder= ] 'snapshot_in_default_folder' ]
[ , [ @alt_snapshot_folder= ] 'alternate_snapshot_folder' ]
[ , [ @pre_snapshot_script= ] 'pre_snapshot_script' ]
[ , [ @post_snapshot_script= ] 'post_snapshot_script' ]
[ , [ @compress_snapshot= ] 'compress_snapshot' ]
[ , [ @ftp_address = ] 'ftp_address' ]
[ , [ @ftp_port= ] ftp_port ]
[ , [ @ftp_subdirectory = ] 'ftp_subdirectory' ]
[ , [ @ftp_login = ] 'ftp_login' ]
[ , [ @ftp_password = ] 'ftp_password' ]
[ , [ @allow_dts = ] 'allow_transformable_subscriptions' ]
[ , [ @allow_subscription_copy = ] 'allow_subscription_copy' ]
[ , [ @conflict_policy = ] 'conflict_policy' ]
[ , [ @centralized_conflicts = ] 'centralized_conflicts' ]
[ , [ @conflict_retention = ] conflict_retention ]
[ , [ @queue_type = ] 'queue_type' ]
[ , [ @add_to_active_directory = ] 'add_to_active_directory' ]
[ , [ @logreader_job_name = ] 'logreader_agent_name' ]
[ , [ @qreader_job_name = ] 'queue_reader_agent_name' ]
[@publication = ] 'publication'
是要創(chuàng)建的發(fā)布名。publication 的數(shù)據(jù)類型為 sysname,沒有默認設置。該名稱在數(shù)據(jù)庫內(nèi)必須唯一。
[@taskid = ] taskid
只支持向后兼容性;使用 sp_addpublication_snapshot。
[@restricted = ] 'restricted'
只支持向后兼容性;使用 default_access。
[@sync_method = ] 'sync_method'
是同步模式。sync_method 的數(shù)據(jù)類型為 nvarchar(13),可以是下列值之一。
值 | 描述 |
---|---|
native(默認值) | 生成所有表的本機模式大容量復制程序輸出。 |
character | 生成所有表的字符模式大容量復制程序輸出。 |
concurrent | 生成所有表的本機模式大容量復制程序輸出,但在快照過程中并不鎖定表。 |
concurrent_c | 生成所有表的字符模式大容量復制程序輸出,但在快照過程中并不鎖定表。 |
說明 值 concurrent 和 concurrent_c 可用于事務復制和合并復制,但不可用于快照復制。
[@repl_freq = ] 'repl_freq'
是復制頻率的類型。replication_frequency 的數(shù)據(jù)類型為 nvarchar(10),默認設置為 continuous。如果是 continuous,則表示發(fā)布服務器提供所有基于日志的事務輸出。如果是 Snapshot,則表示發(fā)布服務器只生成已調(diào)度同步事件。
[@description = ] 'description'
是對發(fā)布的可選描述。description 的數(shù)據(jù)類型為 nvarchar(255),默認設置為 NULL。
[@status = ] 'status'
指定發(fā)布數(shù)據(jù)是否可用。status 的數(shù)據(jù)類型為 nvarchar(8),可以是下列值之一。
值 | 描述 |
---|---|
active | 發(fā)布數(shù)據(jù)可立即用于訂閱服務器。 |
inactive(默認值) | 首次創(chuàng)建發(fā)布時,發(fā)布數(shù)據(jù)不能由訂閱服務器使用(訂閱服務器可以訂閱,但這些訂閱不被處理)。 |
[@independent_agent = ] 'independent_agent'
指定是否有用于發(fā)布的單獨的分發(fā)代理程序。independent_agent 的數(shù)據(jù)類型為 nvarchar(5),默認設置為 FALSE。如果是 true,則表示有用于該發(fā)布的獨立分發(fā)代理程序。如果是 false,則表示該發(fā)布使用共享的分發(fā)代理程序,每對發(fā)布服務器數(shù)據(jù)庫/訂閱服務器數(shù)據(jù)庫都有一個共享的代理程序。
[@immediate_sync = ] 'immediate_synchronization'
指定是否每次快照代理程序運行時都創(chuàng)建發(fā)布的同步文件。immediate_synchronization 的數(shù)據(jù)類型為 nvarchar(5),默認設置為 FALSE。如果是 true,則表示每次快照代理程序運行時都創(chuàng)建或重新創(chuàng)建同步文件。如果在創(chuàng)建訂閱之前已完成快照代理程序,則訂閱服務器能夠立即獲得同步文件。新訂閱獲得最后一次執(zhí)行快照代理程序所生成的最新同步文件。要想使 immediate_synchronization 為 true,independent_agent 必須為 true。如果是 false,則表示只有存在新訂閱時才創(chuàng)建同步文件。訂閱服務器不能在訂閱后接收同步文件,直到快照代理程序啟動并完成。
[@enabled_for_internet = ] 'enabled_for_internet'
指定是否為 Internet 啟用發(fā)布,并確定是否可通過 FTP 向訂閱服務器傳輸快照文件。enabled_for_internet 的數(shù)據(jù)類型為 nvarchar(5),默認設置為 FALSE。如果為 true,則將發(fā)布的同步文件放入 C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\Ftp 目錄中。用戶必須創(chuàng)建 Ftp 目錄。
[@allow_push = ] 'allow_push'
指定是否可以為給定發(fā)布創(chuàng)建強制訂閱。allow_push 的數(shù)據(jù)類型為 nvarchar(5),默認設置為 TRUE,它允許對發(fā)布進行強制訂閱。
[@allow_pull = ] 'allow_pull'
指定是否可以為給定發(fā)布創(chuàng)建請求訂閱。allow_pull 的數(shù)據(jù)類型為 nvarchar(5),默認設置為 FALSE。如果是 false,則表示不允許在該發(fā)布上使用請求訂閱。
[@allow_anonymous = ] 'allow_anonymous'
指定是否可以為給定發(fā)布創(chuàng)建匿名訂閱。allow_anonymous 的數(shù)據(jù)類型為 nvarchar(5),默認設置為 FALSE。如果是 true,則 immediate_synchronization 也必須設置為 true。如果是 false,則表示不允許在該發(fā)布上使用匿名訂閱。
[@allow_sync_tran = ] 'allow_sync_tran'
指定對發(fā)布是否允許即時更新訂閱。allow_sync_tran 的數(shù)據(jù)類型為 nvarchar(5),默認設置為 FALSE。
[@autogen_sync_procs = ] 'autogen_sync_procs'
指定是否在發(fā)布服務器上生成即時更新訂閱的同步存儲過程。autogen_sync_procs 的數(shù)據(jù)類型為 nvarchar(5),默認設置為 TRUE。
[@retention = ] retention]
是訂閱活動的保持期(以小時為單位)。retention 的數(shù)據(jù)類型為 int,默認設置為 336 小時。如果訂閱在保持期內(nèi)不活動,則該訂閱過期并被刪除。該值可大于發(fā)布服務器所使用的分發(fā)數(shù)據(jù)庫的最大保持期。如果為 0,則發(fā)布所知道的訂閱將永遠不會過期,且不會被過期訂閱清除代理程序刪除。有關更多信息,請參見訂閱停用和過期。
[@allow_queued_tran = ] 'allow_queued_updating'
在訂閱服務器上啟用或禁用更改的隊列,除非可以在發(fā)布服務器上應用它們。allow_queued_updating 的數(shù)據(jù)類型為 nvarchar(5),默認設置為 FALSE。如果是 false,則不排隊訂閱服務器上的更改。
[@snapshot_in_defaultfolder = ] 'snapshot_in_default_folder'
指定是否將快照文件存儲在默認文件夾中。snapshot_in_default_folder 的數(shù)據(jù)類型為 nvarchar(5),默認設置為 TRUE。如果是 true,則可以在默認文件夾中找到快照文件。如果是 false,則表示快照文件已存儲在 alternate_snapshot_folder 所指定的備用位置中。備用位置可以在另一臺服務器、一個網(wǎng)絡驅(qū)動器或可移動媒體(如光盤或可移動磁盤)上。也可以將快照文件保存到文件傳輸協(xié)議 (FTP) 站點以供訂戶以后檢索。注意該參數(shù)可以為 true,并且在 @alt_snapshot_folder 參數(shù)中仍有位置。該組合指定將快照文件同時存儲在默認位置和備用位置。
[@alt_snapshot_folder = ] 'alternate_snapshot_folder'
指定快照的備用文件夾的位置。alternate_snapshot_folder 的數(shù)據(jù)類型為 nvarchar(255),默認設置為 NULL。
[@pre_snapshot_script = ] 'pre_snapshot_script'
指定指向 .sql 文件位置的指針。pre_snapshot_script 的數(shù)據(jù)類型為 nvarchar(255),默認設置為 NULL。在訂閱服務器上應用快照時,分發(fā)代理程序?qū)⒃谶\行任何復制的對象腳本之前運行快照前腳本。
[@post_snapshot_script = ] 'post_snapshot_script'
指定指向 .sql 文件位置的指針。post_snapshot_script 的數(shù)據(jù)類型為 nvarchar(255),默認設置為 NULL。分發(fā)代理程序?qū)⒃诔跏纪竭^程中已應用所有其它復制的對象腳本和數(shù)據(jù)之后才運行快照后腳本。
[@compress_snapshot = ] 'compress_snapshot'
指定將寫入 @alt_snapshot_folder 位置的快照壓縮成 Microsoft® CAB 格式。compress_snapshot 的數(shù)據(jù)類型為 nvarchar(5),默認設置為 FALSE。false 指定不壓縮快照,而 true 指定將壓縮快照。不能壓縮默認文件夾中的快照。
[@ftp_address = ] 'ftp_address'
是分發(fā)服務器的 FTP 服務網(wǎng)絡地址。ftp_address 的數(shù)據(jù)類型為 sysname,默認設置為 NULL。指定供訂閱服務器的分發(fā)代理程序或合并代理程序獲取的發(fā)布快照文件的位置。因為存儲每個發(fā)布的該屬性,所以每個發(fā)布可以有不同的 ftp_address。發(fā)布必須支持通過 FTP 傳播快照。有關更多信息,請參見配置發(fā)布以允許訂閱服務器使用 FTP 檢索快照。
[@ftp_port = ] ftp_port
是分發(fā)服務器的 FTP 服務的端口號。ftp_port 的數(shù)據(jù)類型為 int,默認設置為 21。指定供訂閱服務器的分發(fā)代理程序或合并代理程序獲取的發(fā)布快照文件的位置。因為存儲每個發(fā)布的該屬性,所以每個發(fā)布可以有自己的 ftp_port。
[@ftp_subdirectory = ] 'ftp_subdirectory'
如果發(fā)布支持通過 FTP 傳播快照,則指定可供訂閱服務器的分發(fā)代理程序或合并代理程序獲取的快照文件的位置。ftp_subdirectory 的數(shù)據(jù)類型為 nvarchar(255),默認設置為 NULL。因為存儲每個發(fā)布的該屬性,所以每個發(fā)布可以有自己的 ftp_subdirctory,或選擇沒有子目錄,如 NULL 值表示的那樣。
[@ftp_login = ] 'ftp_login'
是用于連接到 FTP 服務的用戶名。ftp_login 的數(shù)據(jù)類型為 sysname,默認設置為 ANONYMOUS。
[@ftp_password = ] 'ftp_password'
是用于連接到 FTP 服務的用戶密碼。ftp_password 的數(shù)據(jù)類型為 sysname,默認設置為 NULL。
[@allow_dts = ] 'allow_transformable_subscriptions'
指定發(fā)布允許數(shù)據(jù)轉(zhuǎn)換。創(chuàng)建訂閱時可以指定 DTS 包。allow_transformable_subscriptions 的數(shù)據(jù)類型為 nvarchar(5),默認設置為 FALSE,它不允許 DTS 轉(zhuǎn)換。
[@allow_subscription_copy = ] 'allow_subscription_copy'
啟用或禁用復制訂閱此發(fā)布的訂閱數(shù)據(jù)庫的能力。allow_subscription_copy 的數(shù)據(jù)類型為 nvarchar(5),默認設置為 FALSE。
[@conflict_policy = ] 'conflict_policy'
指定當使用排隊更新訂閱服務器選項時所遵從的沖突解決策略。conflict_policy 的數(shù)據(jù)類型為 nvarchar(100),默認設置為 NULL,可以是下列值之一。
值 | 描述 |
---|---|
pub wins | 發(fā)布服務器在沖突中獲勝。 |
sub reinit | 重新初始化訂閱。 |
sub wins | 訂閱服務器在沖突中獲勝。 |
NULL(默認值) | 如果是 NULL 且該發(fā)布是快照發(fā)布,則默認策略變成 sub reinit。如果是 NULL 且發(fā)布不是快照發(fā)布,則默認策略變成 pub wins。 |
[@centralized_conflicts = ] 'centralized_conflicts'
指定沖突記錄是否存儲在發(fā)布服務器上。centralized_conflicts 的數(shù)據(jù)類型為 nvarchar(5),默認設置為 TRUE。如果是 true,則表示沖突記錄存儲在發(fā)布服務器上。如果是 false,則在引起沖突的發(fā)布服務器和訂閱服務器上都存儲沖突記錄。
[@conflict_retention = ] conflict_retention
指定沖突保持期(以天為單位)。conflict_retention 的數(shù)據(jù)類型為 int,默認設置為 14。
[@queue_type = ] 'queue_type'
指定使用的隊列類型。queue_type 的數(shù)據(jù)類型為 nvarchar(10),默認設置為 NULL,可以是下列值之一。
值 | 描述 |
---|---|
msmq | 使用 Microsoft® 消息隊列存儲事務。 |
sql | 使用 SQL Server 存儲事務。 |
NULL(默認值) | 默認設置為 sql,指定使用 SQL Server 存儲事務。 |
[@add_to_active_directory = ] 'add_to_active_directory'
指定是否將發(fā)布信息發(fā)布到 Microsoft Active Directory™。add_to_active_directory 的數(shù)據(jù)類型為 nvarchar(10),默認設置為 FALSE。只有運行 Windows® 2000 操作系統(tǒng)的服務器才能使用該功能。
[@logreader_job_name = ] 'logreader_agent_name'
僅限內(nèi)部使用。
[@qreader_job_name = ] 'queue_reader_agent_name'
僅限內(nèi)部使用。
0(成功)或 1(失敗)
sp_addpublication 用于快照復制和事務復制。
若要使用 @add_to_active_directory 參數(shù)列出 Active Directory 的發(fā)布對象,必須已經(jīng)在 Active Directory 中創(chuàng)建了 SQL Server 對象。有關更多信息,請參見 Active Directory 服務。
只有 sysadmin 固定服務器角色成員或 db_owner 固定數(shù)據(jù)庫角色成員才能執(zhí)行 sp_addpublication。
相關文章