三、Slony-I 基礎(chǔ)知識(shí)

基本概念

  • 集群(cluster)
  • 節(jié)點(diǎn)(Node)
  • 復(fù)制集合(replication set)
  • 數(shù)據(jù)原始生產(chǎn)者(Origin)、數(shù)據(jù)提供者(Providers)和數(shù)據(jù)訂閱者(Subscribers)
  • slon 守護(hù)程序(slon daemons)(俄語(yǔ)里的大象,slony表示slon的復(fù)數(shù),一群大象)
  • slonik 配置程序(slonik configuration processor)(俄語(yǔ)里的 小象)

集群
指的是一組PostgreSQL數(shù)據(jù)庫(kù)實(shí)例,在集群間發(fā)生數(shù)據(jù)復(fù)制。集群在每個(gè)Slonik腳本中通過(guò)變量cluster_name = cname來(lái)指定。
Slony-I在各個(gè)數(shù)據(jù)庫(kù)中用集群名稱(chēng)創(chuàng)建一個(gè)模式,Slony-I內(nèi)部使用的函數(shù)(包括觸發(fā)器函數(shù))、表、視圖和序列都放在這個(gè)模式下。

節(jié)點(diǎn)
數(shù)據(jù)庫(kù)集群里的單個(gè)數(shù)據(jù)庫(kù)實(shí)例,在Slonik腳本里的開(kāi)頭定義,基本格式:
NODE 1 ADMIN CONNINFO = 'dbname=testdb host=server1 userslony'
1表示節(jié)點(diǎn)1,節(jié)點(diǎn)號(hào)在集群中唯一?!癈ONNINFO” 是用來(lái)連接PostgreSQL數(shù)據(jù)庫(kù)的參數(shù)字符串,里面是鍵值對(duì)組成,鍵值對(duì)之間用空格隔開(kāi)。這個(gè)字符串配置好以后,Slony-I不會(huì)檢查是否正確,只在連接的時(shí)候才會(huì)判斷。

復(fù)制集合
指的是需要復(fù)制的表和序列的集合,目的是把要復(fù)制的對(duì)象進(jìn)行分組,然后對(duì)不同的分組進(jìn)行不同的操作。

數(shù)據(jù)原始生產(chǎn)者、提供者和訂閱者
節(jié)點(diǎn)生產(chǎn)數(shù)據(jù)時(shí),被稱(chēng)為數(shù)據(jù)原始生產(chǎn)者,復(fù)制原始數(shù)據(jù)的節(jié)點(diǎn)被稱(chēng)為數(shù)據(jù)訂閱者,但是Slony-I支持級(jí)聯(lián)復(fù)制,因此當(dāng)一個(gè)復(fù)制節(jié)點(diǎn)為另外一個(gè)復(fù)制節(jié)點(diǎn)提供數(shù)據(jù)時(shí),它又被稱(chēng)為數(shù)據(jù)提供者。即同時(shí)具有提供者和訂閱者的角色。

slon守護(hù)程序
集群的每一個(gè)節(jié)點(diǎn)上都有一個(gè)slon守護(hù)進(jìn)程,用于處理復(fù)制中的事件,事件分為兩類(lèi):

  1. 配置事件:做管理配置時(shí),使用slonik程序發(fā)出的配置事件(修改或刪除配置等)
  2. 同步事件:當(dāng)源數(shù)據(jù)庫(kù)上需要同步的表發(fā)生數(shù)據(jù)變更時(shí),變更的多個(gè)事務(wù)組合成一個(gè)同步事件。

slonik配置程序
slonik是一個(gè)命令行工具,可以處理slonik命令以及slonik命令組合成的腳本

Slony-I復(fù)制的限制

限制主要有:

  1. 對(duì)大對(duì)象的變更不能復(fù)制
  2. DDL的變更不能復(fù)制
  3. 用戶和權(quán)限的變更不能復(fù)制
    基本上只支持對(duì)于表數(shù)據(jù)的同步(大多數(shù)基于觸發(fā)器的數(shù)據(jù)同步軟件特性),此外Slony-I還支持對(duì)于序列的同步。
    對(duì)DDL,支持使用命令“SLONIK EXECUTE SCRIPT”來(lái)將DDL執(zhí)行到所有節(jié)點(diǎn)上。使用PgAdmin Ⅲ做表結(jié)構(gòu)變更時(shí),可以使用里面的“使用Slony選項(xiàng)來(lái)讓表變更在Slony集群里執(zhí)行”。

對(duì)表的要求是:

  1. 要有主鍵,可以自動(dòng)識(shí)別
  2. 沒(méi)有主鍵要有唯一鍵
  3. 沒(méi)有主鍵,要手動(dòng)指定唯一鍵,沒(méi)有唯一鍵,則不能復(fù)制表數(shù)據(jù)。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容