創(chuàng)建新合并發(fā)布。此存儲過程在發(fā)布服務器的任何數據庫上執(zhí)行。
sp_addmergepublication [ @publication = ] 'publication'
[ , [ @description = ] 'description'
[ , [ @retention = ] retention ]
[ , [ @sync_mode = ] 'sync_mode' ]
[ , [ @allow_push = ] 'allow_push' ]
[ , [ @allow_pull = ] 'allow_pull' ]
[ , [ @allow_anonymous = ] 'allow_anonymous' ]
[ , [ @enabled_for_internet = ] 'enabled_for_internet' ]
[ , [ @centralized_conflicts = ] 'centralized_conflicts' ]
[ , [ @dynamic_filters = ] 'dynamic_filters' ]
[ , [ @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' ]
[ , [ @conflict_retention = ] conflict_retention ]
[ , [ @keep_partition_changes = ] 'keep_partition_changes' ]
[ , [ @allow_subscription_copy = ] 'allow_subscription_copy' ]
[ , [ @allow_synctoalternate = ] 'allow_synctoalternate' ]
[ , [ @validate_subscriber_info = ] 'validate_subscriber_info' ]
[ , [ @add_to_active_directory = ] 'add_to_active_directory' ]
[ , [ @max_concurrent_merge = ] maximum_concurrent_merge ]
[ , [ @max_concurrent_dynamic_snapshots =] max_concurrent_dynamic_snapshots ]
參數
[@publication = ] 'publication'
是要創(chuàng)建的合并發(fā)布名。publication 的數據類型為 sysname,沒有默認設置,而且一定不能是關鍵字 ALL。發(fā)布名在數據庫內必須唯一。
[@description = ] 'description'
是對發(fā)布的描述。description 的數據類型為 nvarchar(255),默認設置為 NULL。
[@retention = ] retention
是保存給定 publication 的更改的天數。retention 的數據類型為 int,默認設置為 14 天。如果訂閱在保持期內未合并,則將過期并被刪除。
[@sync_mode = ] 'sync_mode'
是發(fā)布的訂閱服務器的初始同步模式。sync_mode 的數據類型為 nvarchar(10),默認設置為 native。如果是 native,則表示生成所有表的本機模式大容量復制程序輸出。如果是 character,則表示生成所有表的字符模式大容量復制程序輸出。非 SQL Server 訂閱服務器要求使用 character。
[@allow_push = ] 'allow_push'
指定是否可以為給定發(fā)布創(chuàng)建強制訂閱。allow_push 的數據類型為 nvarchar(5),默認設置為 TRUE,它允許對發(fā)布進行強制訂閱。
[@allow_pull = ] 'allow_pull'
指定是否可以為給定發(fā)布創(chuàng)建請求訂閱。allow_pull 的數據類型為 nvarchar(5),默認設置為 TRUE,它允許對發(fā)布創(chuàng)建請求訂閱。
[@allow_anonymous = ] 'allow_anonymous'
指定是否可以為給定發(fā)布創(chuàng)建匿名訂閱。allow_anonymous 的數據類型為 nvarchar(5),默認設置為 FALSE,它不允許對發(fā)布創(chuàng)建匿名訂閱。
[@enabled_for_internet = ] 'enabled_for_internet'
指定是否為 Internet 啟用發(fā)布,并確定 FTP 是否可用于向訂閱服務器傳輸快照。enabled_for_internet 的數據類型為 nvarchar(5),默認設置為 FALSE。如果為 true,則將發(fā)布的同步文件放入 C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\Ftp 目錄中。用戶必須創(chuàng)建 Ftp 目錄。如果是 false,則不為 Internet 訪問啟用發(fā)布。
[@centralized_conflicts = ] 'centralized_conflicts'
指定沖突記錄是否存儲在發(fā)布服務器上。centralized_conflicts 的數據類型為 nvarchar(5),默認設置為 TRUE。如果是 true,則所有的沖突記錄都存儲在發(fā)布服務器上。如果是 false,則在引起沖突的發(fā)布服務器和訂閱服務器上都存儲沖突記錄。
[@dynamic_filters = ] 'dynamic_filters'
啟用合并發(fā)布以允許動態(tài)篩選。dynamic_filter 的數據類型為 nvarchar(5),默認設置為 FALSE。
[@snapshot_in_defaultfolder = ] 'snapshot_in_default_folder'
指定是否將快照文件存儲在默認文件夾中。snapshot_in_default_folder 的數據類型為 nvarchar(5),默認設置為 TRUE。如果是 true,則可以在默認文件夾中找到快照文件。如果是 false,則表示快照文件將存儲在 alternate_snapshot_folder 所指定的備用位置中。備用位置可以在另一臺服務器、一個網絡驅動器或可移動媒體(如 CD-ROM 或可移動磁盤)上。也可以將快照文件保存到文件傳輸協議 (FTP) 站點以供訂戶以后檢索。注意該參數可以為 true,并且在 @alt_snapshot_folder 參數中仍有位置。該組合指定將快照文件同時存儲在默認位置和備用位置。
[@alt_snapshot_folder = ] 'alternate_snapshot_folder'
指定快照的備用文件夾的位置。alternate_snapshot_folder 的數據類型為 nvarchar(255),默認設置為 NULL。
[@pre_snapshot_script = ] 'pre_snapshot_script'
指定指向 .sql 文件位置的指針。pre_snapshot_script 的數據類型為 nvarchar(255),默認設置為 NULL。當在訂閱服務器上應用快照時,合并代理程序將在運行任何復制的對象腳本之前運行快照前腳本。
[@post_snapshot_script = ] 'post_snapshot_script'
指定指向 .sql 文件位置的指針。post_snapshot_script 的數據類型為 nvarchar(255),默認設置為 NULL。分發(fā)代理程序或合并代理程序將在所有其它復制的對象腳本和數據已在初始同步過程中應用之后才運行快照后腳本。
[@compress_snapshot = ] 'compress_snapshot'
指定將寫入 @alt_snapshot_folder 位置快照壓縮成 Microsoft® CAB 格式。compress_snapshot 的數據類型為 nvarchar(5),默認設置為 FALSE。false 指定不壓縮快照;而 true 指定將壓縮快照。不能壓縮默認文件夾中的快照。
[@ftp_address = ] 'ftp_address'
是分發(fā)服務器的 FTP 服務網絡地址。ftp_address 的數據類型為 sysname,默認設置為 NULL。指定供訂閱服務器的分發(fā)代理程序或合并代理程序獲取的發(fā)布快照文件的位置。因為存儲每個發(fā)布的該屬性,所以每個發(fā)布可以有不同的 ftp_address。發(fā)布必須支持通過 FTP 傳播快照。有關更多信息,請參見配置發(fā)布以允許訂閱服務器使用 FTP 檢索快照。
[@ftp_port = ] ftp_port
是分發(fā)服務器的 FTP 服務的端口號。ftp_port 的數據類型為 int,默認設置為 21。指定供訂閱服務器的分發(fā)代理程序或合并代理程序獲取的發(fā)布快照文件的位置。因為存儲每個發(fā)布的該屬性,所以每個發(fā)布可以有自己的 ftp_port。
[@ftp_subdirectory = ] 'ftp_subdirectory'
如果發(fā)布支持通過 FTP 傳播快照,指定可供訂閱服務器的合并代理程序獲取的快照文件的位置。ftp_subdirectory 的數據類型為 nvarchar(255),默認設置為 NULL。因為存儲每個發(fā)布的該屬性,所以每個發(fā)布可以有自己的 ftp_subdirctory,或選擇沒有子目錄,如 NULL 值表示的那樣。
[@ftp_login = ] 'ftp_login'
是用于連接到 FTP 服務的用戶名。ftp_login 的數據類型為 sysname,默認設置為"anonymous"。
[@ftp_password = ] 'ftp_password'
是用于連接到 FTP 服務的用戶密碼。ftp_password 的數據類型為 sysname,默認設置為 NULL。
[@conflict_retention = ] conflict_retention
指定保留沖突的保持期(以天為單位)。conflict_retention 的數據類型為 int,從沖突文件中清除沖突行之前的默認設置是 14 天。
[@keep_partition_changes = ] 'keep_partition_changes'
指定同步優(yōu)化是否應發(fā)生。keep_partition_changes 的數據類型為 nvarchar(5),默認設置為 FALSE。false 表示不進行同步優(yōu)化,且當分區(qū)中的數據更改時,驗證發(fā)送給所有訂閱服務器的分區(qū)。true 表示進行同步優(yōu)化,且只有在更改的分區(qū)中有行的訂閱服務器受影響。有關更多信息,請參見優(yōu)化同步。
[@allow_subscription_copy = ] 'allow_subscription_copy'
啟用或禁用復制訂閱此發(fā)布的訂閱數據庫的能力。allow_subscription_copy 的數據類型為 nvarchar(5),默認設置為 FALSE。
[@allow_synctoalternate = ] 'allow_synctoalternate'
啟用可選同步伙伴以與此發(fā)布服務器同步。allow_synctoalternate 的數據類型為 nvarchar(5),默認設置為 FALSE。
[@validate_subscriber_info = ] 'validate_subscriber_info'
列出正用于檢索訂閱服務器信息的函數,并驗證動態(tài)篩選條件,而該條件正由訂閱服務器用于驗證分區(qū)信息是否與每個合并都一致。validate_subscriber_info 的數據類型為 nvarchar(500),默認設置為 NULL。例如,如果 SUSER_SNAME() 用于動態(tài)篩選,則該參數應該是 @validate_subscriber_info=N'SUSER_SNAME()'。有關更多信息,請參見驗證訂閱服務器信息。
[@add_to_active_directory = ] 'add_to_active_directory'
指定是否將發(fā)布信息發(fā)布到 Microsoft Active Directory™。add_to_active_directory 的數據類型為 nvarchar(5),默認設置為 FALSE。只有運行在 Windows® 2000 操作系統上的服務器才能使用該功能。true 值將發(fā)布信息添加到 Microsoft Active Directory。
[@max_concurrent_merge = ] maximum_concurrent_merge
最大并發(fā)合并進程數。該屬性的 0 值表示對在任何給定時間運行的并發(fā)合并進程數沒有限制。該屬性對可以同時在合并發(fā)布上運行的并發(fā)合并進程數設置限制。如果同時調度的快照進程數比該值允許運行的快照進程數要多,則多出的作業(yè)被放入隊列中,一直等到當前運行的合并進程結束。
[@max_concurrent_dynamic_snapshots =] max_concurrent_dynamic_snapshots
在合并發(fā)布上可以運行的最大并發(fā)動態(tài)快照會話數。如果是 0,表示對在任意給定時間運行的并發(fā)動態(tài)快照會話數沒有限制。該屬性對可以同時在合并發(fā)布上運行的并發(fā)快照進程數設置限制。如果同時調度的快照進程數比該值允許運行的快照進程數要多,則多出的作業(yè)被放入隊列中,一直等到當前運行的合并進程結束。
0(成功)或 1(失敗)
sp_addmergepublication 用于合并復制。
若要使用 @add_to_active_directory 參數列出 Active Directory 的發(fā)布對象,必須已經在 Active Directory 中創(chuàng)建了 SQL Server 對象。有關更多信息,請參見 Active Directory 服務。
只有 sysadmin 固定服務器角色成員或 db_owner 固定數據庫角色成員才能執(zhí)行 sp_addmergepublication。
相關文章