W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
發(fā)布可以被定義在任何物理復(fù)制的主服務(wù)器上。定義有發(fā)布的節(jié)點(diǎn)被稱為發(fā)布者。發(fā)布是從一個(gè)表或者一組表生成的改變的集合,也可以被描述為更改集合或者復(fù)制集合。每個(gè)發(fā)布都只存在于一個(gè)數(shù)據(jù)庫中。
發(fā)布與模式不同,不會(huì)影響表的訪問方式。如果需要,每個(gè)表都可以被加入到多個(gè)發(fā)布。當(dāng)前,發(fā)布只能包含表。對象必須被明確地加入到發(fā)布,除非發(fā)布是用ALL TABLES
創(chuàng)建的。
Publication可以選擇把它們產(chǎn)生的更改限制為INSERT
、UPDATE
、DELETE
以及TRUNCATE
的任意組合,類似于觸發(fā)器如何被特定事件類型觸發(fā)的方式。默認(rèn)情況下,所有操作類型都會(huì)被復(fù)制。
為了能夠復(fù)制UPDATE
和DELETE
操作,被發(fā)布的表必須配置有一個(gè)“復(fù)制標(biāo)識(shí)”,這樣在訂閱者那一端才能標(biāo)識(shí)對于更新或刪除合適的行。默認(rèn)情況下,復(fù)制標(biāo)識(shí)就是主鍵(如果有主鍵)。也可以在復(fù)制標(biāo)識(shí)上設(shè)置另一個(gè)唯一索引(有特定的額外要求)。如果表沒有合適的鍵,那么可以設(shè)置成復(fù)制標(biāo)識(shí)
“full”,它表示整個(gè)行都成為那個(gè)鍵。不過,這樣做效率很低,只有在沒有其他方案的情況下才應(yīng)該使用。如果在發(fā)布者端設(shè)置了“full”之外的復(fù)制標(biāo)識(shí),在訂閱者端也必須設(shè)置一個(gè)復(fù)制標(biāo)識(shí),它應(yīng)該由相同的或者少一些的列組成。如何設(shè)置復(fù)制標(biāo)識(shí)的細(xì)節(jié)請參考
REPLICA IDENTITY
。如果在復(fù)制UPDATE
或DELETE
操作的發(fā)布中加入了沒有復(fù)制標(biāo)識(shí)的表,那么訂閱者上后續(xù)的UPDATE
或DELETE
操作將導(dǎo)致錯(cuò)誤。不管有沒有復(fù)制標(biāo)識(shí),INSERT
操作都能繼續(xù)下去。
每一個(gè)發(fā)布都可以由多個(gè)訂閱者。
Publication通過使用CREATE PUBLICATION命令創(chuàng)建并且可以在之后使用相應(yīng)的命令進(jìn)行修改或者刪除。
表可以使用ALTER PUBLICATION動(dòng)態(tài)地增加或者移除。ADD TABLE
以及DROP TABLE
操作都是事務(wù)性的,因此一旦該事務(wù)提交,該表將以正確的快照開始或者停止復(fù)制。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: