亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > PostgreSQL > 正文

使用Bucardo5實現(xiàn)PostgreSQL的主數(shù)據(jù)庫復(fù)制

2020-10-29 21:49:53
字體:
供稿:網(wǎng)友

下一代異步多個主數(shù)據(jù)庫復(fù)制系統(tǒng)Bucardo 5發(fā)布了。這個版本刪除了老版本中兩個數(shù)據(jù)庫源的限制,允許有更多的源數(shù)據(jù)庫(即主數(shù)據(jù)庫)以及更多的目標(biāo)數(shù)據(jù)庫(即備份數(shù)據(jù)庫)。Bucardo還可以復(fù)制到其他類型的目標(biāo)數(shù)據(jù)庫,其中包括MySQL、MariaDB、Oracle、SQLite、MongoDB和Redis。Bucardo已經(jīng)被完全重寫了,這個版本比前一版本Bucardo 4功能更強(qiáng)大,效率更高。你可以訪問Bucardo wiki查找最新版本的Bucardo。

這篇文章快速的介紹了一下Bucardo。以后的博客文章將會介紹Bucardo的強(qiáng)大功能,現(xiàn)在我們將介紹如何簡單地實現(xiàn)多主數(shù)據(jù)庫復(fù)制。


為了演示方便,我使用了亞馬遜Web服務(wù)(AWS)提供的可快速創(chuàng)建、隨意使用的服務(wù)器,即運(yùn)行Amazon Linux的基本t1.micro服務(wù)器。如果你按照提示繼續(xù)的話,它將免費(fèi)而且簡單地給你創(chuàng)建一個服務(wù)器實例。一旦實例創(chuàng)建成功,我們就可以使用ec2-user賬戶通過SSH協(xié)議登陸到服務(wù)器,這時就可以開始安裝PostgreSQL和Bucardo了。
 

# Always a good idea:$ sudo yum update# This also installs other postgresql packages:$ sudo yum install postgresql-plperl# Create a new Postgres cluster:$ initdb btest

此時,我們?nèi)匀徊荒芷诖赌銈€PostgreSQL,因為這個發(fā)布版的socket通信目錄使用的是/var/run/postgresql和/tmp。我們調(diào)整了第一個目錄的權(quán)限后就可以啟動PostgreSQL了,然后創(chuàng)建第一個測試數(shù)據(jù)庫:
 

$ sudo chmod 777 /var/run/postgresql$ pg_ctl -D btest -l logfile start$ createdb shake1


接下來我們就可以進(jìn)行數(shù)據(jù)庫復(fù)制了!為了得到樣例數(shù)據(jù),我使用了開放源代碼的Shakespeare項目。它有一個易于裝載的小型的、可任意使用的、簡單的數(shù)據(jù)庫模式。github上的這個小型項目就包含了一個現(xiàn)成的PostgreSQL數(shù)據(jù)庫模式,現(xiàn)在我們將可以把它裝載到新的數(shù)據(jù)庫了:
 

$ sudo yum install git$ git clone -q https://github.com/catherinedevlin/opensourceshakespeare.git$ psql shake1 -q -f opensourceshakespeare/shakespeare.sql# You can safely ignore the 'role does not exist' errors

我們打算創(chuàng)建這個數(shù)據(jù)庫的副本,這些副本可被當(dāng)作其他數(shù)據(jù)源。換個說法,這些服務(wù)器擁有相同的數(shù)據(jù)而且可以寫入。實現(xiàn)這些非常簡單:
 

$ createdb shake2 -T shake1$ createdb shake3 -T shake1

Bucardo需要安裝一些依賴包。如果你安裝的操作系統(tǒng)發(fā)布不同,那么你可能要安裝的依賴包就不同:下面是我寫這篇文章的時候Amazon Linux需要安裝的依賴包。(如果幸運(yùn)的話,你的發(fā)布包可能已經(jīng)包含了Bucardo,在這種情況下,下面的執(zhí)行步驟就不需要執(zhí)行了,你只要運(yùn)行"yum install bucard"就可以了-不過要確定一下你使用的是版本5或者更好的版本!(通過yum info bucardo查看))
 

$ sudo yum install perl-ExtUtils-MakeMaker perl-DBD-Pg /> perl-Encode-Locale perl-Sys-Syslog perl-boolean /> perl-Time-HiRes perl-Test-Simple perl-Pod-Parser$ sudo yum install cpan$ echo y | cpan DBIx::Safe


在這個系統(tǒng)的yum軟件倉庫里不包含Perl模塊DBIx::Safe,因此我們需要通過CPAN來安裝這個模塊。一旦上面的所有依賴都安裝成功,這時我們就準(zhǔn)備安裝Bucardo。我們將獲取官方壓縮包,驗證、解壓,接著安裝:
 

$ wget -nv http://bucardo.org/Bucardo.tar.gz$ wget -nv http://bucardo.org/Bucardo.tar.gz.asc$ gpg -q --keyserver pgp.mit.edu --recv-key 14964AC8$ gpg --verify Bucardo.tar.gz.asc$ tar xfz Bucardo.tar.gz $ ln -s Bucardo-5.0.0 bucardo$ cd bucardo$ perl Makefile.PL$ make$ sudo make install

我們對bucardorc文件(設(shè)置某些全局信息的文件)進(jìn)行某些小的調(diào)整。然后運(yùn)行"bucardo install",這條命令將創(chuàng)建bucardo的主數(shù)據(jù)庫,其中包含Bucardo服務(wù)進(jìn)程所需的信息:
 

$ mkdir pid$ echo -e "piddir=pid/nlogdest=." > .bucardorc$ bucardo install --batch --quietCreating superuser 'bucardo'


現(xiàn)在已經(jīng)安裝好Bucardo,接下來就準(zhǔn)備復(fù)制了。此時,我們有了三個可以彼此復(fù)制的數(shù)據(jù)庫。下面我們只使用了兩條命令就可以實現(xiàn)三數(shù)據(jù)庫彼此復(fù)制:
 

 bucardo add dbs s1,s2,s3 dbname=shake1,shake2,shake3Added databases "s1","s2","s3"$ bucardo add sync bard dbs=s1:source,s2:source,s3:source tables=allAdded sync "bard"Created a new relgroup named "bard"Created a new dbgroup named "bard" Added table "public.chapter" Added table "public.character" Added table "public.character_work" Added table "public.paragraph" Added table "public.wordform" Added table "public.work"

第一條命令,我們告訴Bucardo如何連接到三個數(shù)據(jù)庫,我們告訴Bucardo數(shù)據(jù)庫的名字,然后Bucardo把這三個數(shù)據(jù)庫看作(s1,s2,s3)。你還可以指定端口和主機(jī),不過在這個例子里,默認(rèn)的端口為5432,而且不需要主機(jī)(采用的是Unix Socket通信機(jī)制)。


第二條命令創(chuàng)建了一個已命名的復(fù)制系統(tǒng),其sync名稱為bard。Bucardo需要知道復(fù)制到哪兒和如何復(fù)制,因此我們告訴它使用三個數(shù)據(jù)庫s1,s2和s3。每一個數(shù)據(jù)庫都可以作為源數(shù)據(jù)庫,因此我們給它們添加了這樣的信息。最后我們需要知道要復(fù)制什么。在這個例子里,我們需要復(fù)制的是所有表(或者更精確點(diǎn),復(fù)制具有主鍵或者唯一索引的所有數(shù)據(jù)庫)。注意: Bucardo總是把數(shù)據(jù)庫和表放在命名組里-在這個例子里我們只是硬編碼其為10,然而通常這個值是表格視圖控制器數(shù)組的長度?,F(xiàn)在例子里,這一切都是自動進(jìn)行的,dbgroup和relgroup都是以sync的名字命名的。

我們驗證一下復(fù)制是否運(yùn)行,即檢查一下更新行是否復(fù)制到sync里包含的所有數(shù)據(jù)庫了:
 

$ bucardo start$ psql shake1 -c /> "update character set speechcount=123 where charname='Hamlet'"UPDATE 1$ for i in {1,2,3}; do psql shake$i -tc "select /> current_database(), speechcount from character /> where charname='Hamlet'"; done | grep s shake1    |   123 shake2    |   123 shake3    |   123

我們還可以查看Bucardo的日志文件"log.bucardo",看看是否有復(fù)制操作:
 

$ tail -2 log.bucardo(25181) KID (bard) Delta count for s1.public."character": 1(25181) KID (bard) Totals: deletes=2 inserts=2 conflicts=0


上面出現(xiàn)了兩條delete和兩條insert命令,這是因為更新一行意味著在其他兩個數(shù)據(jù)庫上首先運(yùn)行的是delete,然后才運(yùn)行insert(技術(shù)上采用的COPY)。接下來我們看看Bucardo是怎么處理沖突的。我們將對所有服務(wù)器上的同一行進(jìn)行更新,這樣就會產(chǎn)生沖突:
 

$ for i in {1,2,3}; do psql shake$i -tc /> "update character set speechcount=$i$i$i /> where charname='Hamlet'"; doneUPDATE 1UPDATE 1UPDATE 1

查看日志表明確實存在沖突,而且也很好的解決了沖突。默認(rèn)的沖突解決方案表明:最后一個更新的數(shù)據(jù)庫是獲勝者,現(xiàn)在所有三個數(shù)據(jù)庫具有與最后一個更新數(shù)據(jù)庫相同的行。
 

$ tail log.bucardo(25181) KID (bard) Delta count for s1.public."character": 1(25181) KID (bard) Delta count for s2.public."character": 1(25181) KID (bard) Delta count for s3.public."character": 1(25181) KID (bard) Conflicts for public."character": 1(25181) KID (bard) Conflicts have been resolved(25181) KID (bard) Totals: deletes=2 inserts=2 conflicts=1 $ for i in {1,2,3}; do psql shake$i -tc /> "select current_database(), speechcount /> from character where charname='Hamlet'"; done | grep s shake1    |   333 shake2    |   333 shake3    |   333

我們開發(fā)這個示例的時候,Bucardo有時運(yùn)行的非???,所以沒有發(fā)生沖突。也就是說,因為更新時順序執(zhí)行的。所以在下一個更新之前,存在一個時間窗口可以讓Bucardo完成更新的復(fù)制。另外,“暫停sync"功能也非常方便,只要在你需要暫時停止運(yùn)行sync的情況下,運(yùn)行下面命令即可:
 

$ bucardo pause bardSyncs paused: bard$ psql shake1 -c "update character set speechcount=1234 where charname='Hamlet'"UPDATE 1$ psql shake2 -c "update character set speechcount=4321 where charname='Hamlet'"UPDATE 1$ bucardo resume bardSyncs resumed: bard $ tail log.bucardo(27344) KID (bard) Delta count for s1.public."character": 1(27344) KID (bard) Delta count for s2.public."character": 1(27344) KID (bard) Conflicts for public."character": 1(27344) KID (bard) Conflicts have been resolved(27344) KID (bard) Totals: deletes=2 inserts=2 conflicts=1


Bucardo 5比我們在這兒演示的功能多很多。以后的博客文章里我們將包含它可以完成的其他功能,從復(fù)制到比如Oracle、Mysql或者M(jìn)ongoDB等非PostgreSQL系統(tǒng)到使用自定義的沖突解決方案。以及復(fù)制時對正在運(yùn)行的數(shù)據(jù)實行轉(zhuǎn)換。如果你有任何問題,請在下面的評論里說明,或者寫一封短信給Bucardo郵件列表bucardo-general@bucardo.org。

這么多年,如果沒有許多人貢獻(xiàn)代碼、提出漏洞、測試Bucardo以及詢問(或者回答?。┲卮髥栴},就不可能有這個重大版本的發(fā)布。查看 Changes文件,你就可以看到部分貢獻(xiàn)者的列表。謝謝你們所有人,特別感謝Jon Jensen,是他在很久之前就開啟了這個項目。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
亚洲欧美日韩国产另类专区| 高清视频在线观看一区| 日韩亚洲色图| 国产亚洲精品福利| 久久久一区二区三区不卡| 欧美精品丝袜中出| 久久久久久久久久一级| 亚洲一区在线观| √天堂中文www官网| 国产网红主播福利一区二区| 欧美国产在线观看| 色无极亚洲影院| 久久精品第九区免费观看| 麻豆91免费| 欧美大片在线看免费观看| 亚洲国产精品一区二区三区| 国产伦精品一区二区三区四区视频| 日本天堂在线播放| 亚洲欧洲精品一区二区三区不卡| 亚洲综合第一区| 国产精品99一区二区三| 成人午夜激情免费视频| 亚洲色图狂野欧美| 无码国产色欲xxxx视频| 亚洲精品第1页| 波多野结衣50连登视频| 精品视频中文字幕| 亚洲乱码中文字幕久久孕妇黑人| 美国欧美日韩国产在线播放| 制服 丝袜 综合 日韩 欧美| 欧美一区二区三区成人久久片| 自拍偷拍精品| 91精品国模一区二区三区| 成人精品一区二区三区免费| 国产精品一区一区| 亚洲成人精品视频| 国产二区视频在线观看| 久久久亚洲欧洲日产国码aⅴ| 在线免费黄色| 欧洲生活片亚洲生活在线观看| 鲁鲁狠狠狠7777一区二区| 妺妺窝人体色WWW精品| 国产传媒在线视频| 91高跟黑色丝袜呻吟在线观看| 北条麻妃在线视频| 国产午夜性春猛交ⅹxxx| 国产精品18久久久久久首页狼| 无遮挡又色又刺激的女人视频| 波多野结衣av在线免费观看| 玖玖玖国产精品| 国产高清在线视频| 欧美激情中文字幕| 亚洲视频国产视频| 日韩三级成人| 亚洲天堂一级片| 欧美体内she精高潮| 精品亚洲一区二区三区四区五区高| 在线视频国产三级| 日韩黄色在线观看| 国产精品视频网站| 国产女呦网站| 国产精品乱码久久久| 国产99对白在线播放| 美日韩精品免费观看视频| 国产精选久久久久久| 999人在线精品播放视频| 欧洲亚洲精品| 91国内免费在线视频| 综合激情网站| 国产精品免费一区二区三区观看| 7777精品久久久大香线蕉| 成人在线免费高清视频| 亚洲日产国产精品| 亚洲av毛片在线观看| 免费男女羞羞的视频网站中文字幕妖精视频| 爱情电影网av一区二区| 精品无码久久久久国产| 欧美mv日韩mv| 国产日韩视频在线播放| 亚洲欧美日韩精品久久亚洲区| 精品美女一区二区三区| 日韩在线观看av| 国产亚洲欧美色| 韩国无码一区二区三区精品| 欧美激情综合色综合啪啪| 在线播放一级片| 欧美亚洲国产一区在线观看网站| 中文字幕精品综合| 成人免费无码大片a毛片| 精品国产乱码久久久久久郑州公司| 欧美一区二区三区免费观看视频| 亚洲一区二区综合| 成人久久一区二区| 国产裸体无遮挡| 欧美午夜片在线看| 国内精品视频一区| 国产精品成人3p一区二区三区| 中文字幕欧美国内| 国内精品久久久久久| 日本不卡一区二区三区在线观看| 国产精品丝袜久久久久久不卡| 成人在线观看一区二区| 欧美日韩一级视频| 极品av在线| 精品亚洲免a| 中国国产一级毛片| 国产欧美精品一区二区色综合朱莉| 精品magnet| 精品亚洲成av人在线观看| 成人美女免费网站视频| 国产成人无码精品久久久性色| 日韩限制级电影在线观看| 成人黄色91| 国产精品久久av| 国产自产高清不卡| 国产精品v日韩精品v在线观看| 日本一区高清在线视频| www天堂在线| 欧美性猛交xxxx乱大交hd| 一区二区三区在线高清| 57pao成人国产永久免费| 天天爱天天色| 欧美一级视频精品观看| 成人在线免费在线观看| 一级做a爱片久久| 国产欧美一区二区精品秋霞影院| 99精品国产热久久91蜜凸| 欧美成人午夜做爰视频在线观看| 午夜电影一区二区| 久久91超碰青草在哪里看| 亚洲日本aⅴ片在线观看香蕉| 亚洲成人一二三区| 欧美片一区二区| 污网站免费在线观看| 欧美电影在线观看完整版| 国产精品久久久久久亚洲影视| 四虎永久在线高清国产精品| 欧美美乳视频网站在线观看| 日韩不卡一二三| 欧美亚洲一区在线| 操bbb操bbb| 成人精品久久| 欧美极品欧美精品欧美| 看全色黄大色黄大片免责看的| 欧美日韩成人| 香蕉视频国产在线观看| 人妻少妇无码精品视频区| 久久久九九九九| 国产剧情久久久| 国产精品久久久精品a级小说| 黄色三级电影网| 国产精品一区二区三区网站| 成年人免费网站| 欧美日韩综合一区二区| 久久久在线免费观看| 在线国产成人影院| 国内精品不卡在线| 成人高清视频观看www| 久久久精品视频免费观看| 亚洲国产福利| 性欧美videos白嫩| 色婷婷激情五月| 国产精品444| 欧美日韩亚洲天堂| 久久久久99精品一区| 99国产超薄肉色丝袜交足的后果| asian性开放少妇pics| 色婷婷777777仙踪林| 免费色片视频| 欧美变态视频| 国产欧美一区二区三区网站| 国产1区2区在线观看| 高清免费观看在线| 欧美一区二区三区综合| 美女一级全黄| 高清视频欧美一级| 爱情岛论坛vip永久入口| 日韩国产第一页| 久久免费看av| 精品国产一区二区三区忘忧草| 洋洋成人永久网站入口| 久久精品一区蜜桃臀影院| 无码人妻丰满熟妇奶水区码| 久久国产夜色精品鲁鲁99| 999精品一区| 中文字幕视频免费在线观看| 亚洲国产高清在线观看| 激情综合丁香五月| 精品久久久久久久久中文字幕| av在线免费不卡| 欧美黑人xxxⅹ高潮交| 麻豆影视国产在线观看| 国产精品迅雷| 黑人性受xxxx黑人xyx性爽| 99精品欧美| 国产精品视频九色porn| 日本a一级在线免费播放| 国产不卡在线播放| 日韩精品极品在线观看播放免费视频| 亚洲三级在线视频| 女人扒开腿免费视频app| 中文字幕 日本| wwwjizzjizzcom| 黄色片视频网站| 免费男女羞羞的视频网站主页在线观看| 男人的天堂亚洲一区| 成人在线视频一区二区三区| 国产一区喷水| 久久久91精品| 欧美日韩免费电影| 国产精品入口福利| 国产成人精品一区二区免费视频| 精品一区二区免费| 丝袜美腿成人在线| 午夜在线成人av| 欧美性色欧美a在线播放| 免费黄色网网址| 日本美女高清在线观看免费| 3d玉蒲团在线观看| 91社区视频| 91影院未满十八岁禁止入内| 国产网站麻豆精品视频| 欧美13~18sex性hd| 在线观看国产精品入口男同| youjizz久久| 久久精品午夜福利| 操你啦在线视频| 午夜天堂影视香蕉久久| 亚洲 欧美 日韩系列| 岛国成人毛片| 成年人免费观看视频网站| 日本高清视频免费在线观看| 91久久国产综合久久91精品网站| 亚洲欧美日韩国产成人| 欧美一区亚洲| 久久久久久一级片| 99国产精品国产精品毛片| 国产一区二区中文字幕免费看| 色妞一区二区三区| 香蕉成人啪国产精品视频综合网| 高清电影在线观看免费| 四虎影视永久免费观看| 欧美巨猛xxxx猛交黑人97人| 欧美xxx性| 国产精品高潮呻吟久久av无限| 欧美黑人国产人伦爽爽爽| 一级特黄特色的免费大片| 136国产福利精品导航网址应用| 亚洲一区二区影视| 日韩三级久久久| 精品亚洲aⅴ乱码一区二区三区| 国产精品女同互慰在线看| 国产女主播喷水高潮网红在线| 无码精品a∨在线观看中文| 山东少妇露脸刺激对白在线| 国产不卡av在线播放| 久久精品国产77777蜜臀| 日本免费久久| 一个人免费视频www在线观看| 91极品尤物在线播放国产| 国产精品免费视频xxxx| 肥熟一91porny丨九色丨| 暧暧视频在线免费观看| 日韩欧美xxxx| 精品视频一区 二区 三区| 女人在下体塞跳蛋在线观看| 亚洲男人的天堂在线观看| 欧美 日韩 国产精品免费观看| 91免费观看在线| 九九精品在线观看| 高h视频在线播放| 久久婷婷开心| 国产成人女人毛片视频在线| 久久精品国产第一区二区三区| 国产香蕉视频在线观看| 亚洲精品在线视频免费| 成人欧美在线观看| 日本熟妇色xxxxx日本免费看| 国内自拍视频在线观看| 黄色网址电影| 日韩欧美一区二区三区视频| 欧美色图影院| 一区二区在线视频观看| 成人动漫视频在线观看免费| 成年人视频在线免费看| 国产精品69xx| 日本免费一区二区三区最新| 国产特级黄色大片| 小黄文在线观看| 国产黑丝在线观看| 粉嫩欧美一区二区三区| 97热在线精品视频在线观看| 一区二区成人在线视频| 麻豆网站在线看| 91在线精品一区二区| 国产高清精品网站| 97国产精品久久| 日本黄色录像片| 成人av网站观看| 免费在线看电影| 国产青青草视频| 国产va亚洲va在线va| 欧美不卡一区| 国产原创一区二区三区| 久久久国产精品| 色偷偷综合网| 国产.精品.日韩.另类.中文.在线.播放| 黄色在线网站| 国产乱妇乱子在线播视频播放网站| hs网站在线观看| 欧美成人亚洲高清在线观看| 在线xxxxx| 国产精品永久| 国产伦精品一区二区三区视频青涩| 日韩精品视频免费在线观看| 日本久久久久久久久久久| 91国产一区在线| 中文字幕中文字幕中文字幕亚洲无线| 四虎a级欧美在线观看| 亚洲成av人片一区二区梦乃| 奇米影视首页 狠狠色丁香婷婷久久综合| 97久久国产亚洲精品超碰热| 99视频只有精品| 国产真人真事毛片| 欧美jizzhd欧美精品巨大| 成人ssswww在线播放| 精品一区二区三区在线| 日韩国产在线|