新聞中心
MSSQL數(shù)據(jù)庫(kù)的復(fù)制訂閱功能是數(shù)據(jù)庫(kù)復(fù)制的一種實(shí)現(xiàn)機(jī)制,用于實(shí)現(xiàn)發(fā)布者和訂閱者之間的異步數(shù)據(jù)復(fù)制。 它可以將數(shù)據(jù)復(fù)制到多個(gè)發(fā)布者,也可以將數(shù)據(jù)復(fù)制到多個(gè)訂閱者。使用mssql復(fù)制訂閱功能可以更好地實(shí)現(xiàn)主從、主從分布式等復(fù)雜數(shù)據(jù)復(fù)制場(chǎng)景。

復(fù)制訂閱系統(tǒng)由發(fā)布者和訂閱者組成。發(fā)布者將保存在該系統(tǒng)中的更改,如數(shù)據(jù)行插入、更新和刪除,捆綁在一起,稱為事務(wù)復(fù)制。發(fā)布者將更改發(fā)布到發(fā)布數(shù)據(jù)庫(kù),這也是發(fā)布數(shù)據(jù)庫(kù)的最初版本。訂閱者獲取發(fā)布數(shù)據(jù)庫(kù)的范圍,并將其復(fù)制到訂閱數(shù)據(jù)庫(kù)。每次復(fù)制發(fā)布更改,就會(huì)在訂閱者處重新生成訂閱數(shù)據(jù)庫(kù)的最新版本。
MS SQL復(fù)制訂閱服務(wù)的功能類似于Pub/Sub模式,客戶端無(wú)需開(kāi)發(fā)代碼以獲取發(fā)布的數(shù)據(jù),而只需訂閱數(shù)據(jù)更改。當(dāng)數(shù)據(jù)更改時(shí),在訂閱者上,注冊(cè)的事件句柄將被調(diào)用,可以執(zhí)行存儲(chǔ)過(guò)程或推送系統(tǒng),從而可以輕松實(shí)現(xiàn)復(fù)制訂閱功能。
下面是采用MSSQL復(fù)制訂閱功能實(shí)現(xiàn)復(fù)雜數(shù)據(jù)復(fù)制的示例:
使用MSSQL數(shù)據(jù)庫(kù)管理系統(tǒng),從西雅圖的主服務(wù)器的ISAM_DB復(fù)制相同的數(shù)據(jù)到東京的服務(wù)器。
–創(chuàng)建一個(gè)第二個(gè)publication
USE [master]
GO
EXEC sp_addpublication @publication = N’ISAM_DB_copy’, @description = N’Transactional replication of ISAM databases’, @whitelistservicename = N’ISAM-DB_Copy_Snapshot_Replication’, @delivery_stream = N’Repli_ISAM_DB_Copy’, @delivery_type = 1, @immediate_sync = 0
GO
–設(shè)定isam_db數(shù)據(jù)庫(kù)作為發(fā)布者
use [ISAM_DB]
EXEC sp_addarticle @publication = N’ISAM_DB_Copy’, @article = N’db_customer’, @source_owner = N’dbo’, @source_object = N’db_customer’, @type = N’logbased’, @description = N’db_customer’, @destination_table = N’db_customer’, @pre_creation_cmd = N’drop’, @schema_option = 0x000000000803509D, @identityrangemanagementoption = N’manual’, @identity_range = 0, @parameters = N’unsplittable’
GO
–讓ISAM下的Data_Sales表作為發(fā)布者
use [ISAM_DB]
EXEC sp_addarticle @publication = N’ISAM_DB_Copy’, @article = N’data_sales’, @source_owner = N’dbo’, @source_object = N’data_sales’, @type = N’logbased’, @description = N’data_sales’, @destination_table = N’data_sales’, @pre_creation_cmd = N’drop’, @schema_option = 0x000000000803509D, @identityrangemanagementoption = N’manual’, @identity_range = 0, @parameters = N’unsplittable’
GO
–讓ISAM_DB下的Inventory表作為發(fā)布者
use [ISAM_DB]
EXEC sp_addarticle @publication = N’ISAM_DB_Copy’, @article = N’inventory’, @source_owner = N’dbo’, @source_object = N’inventory’, @type = N’logbased’, @description = N’inventory’, @destination_table = N’inventory’, @pre_creation_cmd = N’drop’, @schema_option = 0x000000000803509D, @identityrangemanagementoption = N’manual’, @identity_range = 0, @parameters = N’unsplittable’
GO
–添加一個(gè)訂閱
EXEC sp_addsubscription @publication = N’ISAM_DB_Copy’, @subscriber = N’DESKTOP-K1TNHR6\sqlserver’, @destination_db = N’ISAM_DB_Copy_Tokyo’, @sync_type = N’initialize with backup’, @backupdevicetype = N’disk’, @backupdevicename = N’c:\backup_tokyo\ISAM_DB_Copy_Backup.bak’, @subscription_type = N’push’, @update_mode = N’read only’
GO
–啟動(dòng)復(fù)制
EXEC sp_startpublication_snapshot @publication = N’ISAM_DB_Copy’, @force_initiator = 1, @force_reinit = 1
GO
使用MSSQL復(fù)制訂閱功能可以更有效地實(shí)現(xiàn)復(fù)雜的復(fù)制場(chǎng)景,進(jìn)而降低數(shù)據(jù)復(fù)制的開(kāi)發(fā)難度,提高復(fù)制性能,提供最佳的高可用性數(shù)據(jù)解決方案。
成都網(wǎng)站建設(shè)選創(chuàng)新互聯(lián)(?:028-86922220),專業(yè)從事成都網(wǎng)站制作設(shè)計(jì),高端小程序APP定制開(kāi)發(fā),成都網(wǎng)絡(luò)營(yíng)銷推廣等一站式服務(wù)。
當(dāng)前題目:MSSQL數(shù)據(jù)庫(kù)的復(fù)制訂閱功能(mssql復(fù)制訂閱)
文章位置:http://fisionsoft.com.cn/article/cdcegcs.html


咨詢
建站咨詢
