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

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

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

2020-03-12 23:53:47
字體:
供稿:網(wǎng)友

這篇文章主要介紹了使用Bucardo5實現(xiàn)PostgreSQL的主數(shù)據(jù)庫復制,作者基于AWS給出演示,需要的朋友可以參考下

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

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

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

 

 
  1. # Always a good idea: 
  2. $ sudo yum update 
  3. # This also installs other postgresql packages: 
  4. $ sudo yum install postgresql-plperl 
  5. Create a new Postgres cluster: 
  6. $ initdb btest 

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

 

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

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

 

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

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

 

  
  1. $ createdb shake2 -T shake1 
  2. $ createdb shake3 -T shake1 

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

 

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

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

 

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

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

 

 
  1. $ mkdir pid 
  2. $ echo -e "piddir=pid/nlogdest=." > .bucardorc 
  3. $ bucardo install --batch --quiet 
  4. Creating superuser 'bucardo' 

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

 

 
  1. bucardo add dbs s1,s2,s3 dbname=shake1,shake2,shake3 
  2. Added databases "s1","s2","s3" 
  3. $ bucardo add sync bard dbs=s1:source,s2:source,s3:source tables=all 
  4. Added sync "bard" 
  5. Created a new relgroup named "bard" 
  6. Created a new dbgroup named "bard" 
  7. Added table "public.chapter" 
  8. Added table "public.character" 
  9. Added table "public.character_work" 
  10. Added table "public.paragraph" 
  11. Added table "public.wordform" 
  12. Added table "public.work" 

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

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

 
  1. $ bucardo pause bard 
  2. Syncs paused: bard 
  3. $ psql shake1 -c "update character set speechcount=1234 where charname='Hamlet'" 
  4. UPDATE 1 
  5. $ psql shake2 -c "update character set speechcount=4321 where charname='Hamlet'" 
  6. UPDATE 1 
  7. $ bucardo resume bard 
  8. Syncs resumed: bard 
  9.  
  10. $ tail log.bucardo 
  11. (27344) KID (bard) Delta count for s1.public."character": 1 
  12. (27344) KID (bard) Delta count for s2.public."character": 1 
  13. (27344) KID (bard) Conflicts for public."character": 1 
  14. (27344) KID (bard) Conflicts have been resolved 
  15. (27344) KID (bard) Totals: deletes=2 inserts=2 conflicts=1 

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

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
青青草国产精品97视觉盛宴| 欧美羞羞免费网站| 欧美午夜大胆人体| 久久69精品久久久久久国产越南| 中文字幕日韩欧美精品高清在线| 欧美成人一区二区在线| 欧美三日本三级少妇三99| 亚洲高清成人影院| 亚洲传媒在线| heyzo亚洲| 黑丝美女一区二区| 国产中文精品久高清在线不| 岛国视频一区| 麻豆久久久av免费| 日韩一区二区欧美| 精品动漫3d一区二区三区免费| 亚洲mv大片欧洲mv大片精品| 日韩av三级在线| 日韩国产在线一区| 五月婷婷欧美视频| 亚洲精品国产suv一区88| 亚洲乱码国产乱码精品精的特点| 伊人亚洲精品| 亚洲欧美另类久久久精品| 天天做综合网| 亚洲国产日韩欧美综合久久| 北岛玲精品视频在线观看| 精品一级少妇久久久久久久| 555夜色666亚洲国产免| 国产精品亚洲美女av网站| 免费中文字幕日韩欧美| 亚洲欧美国产高清va在线播| 一区二区xxx| 国产一区在线视频观看| 日韩小视频网址| 国产精品夜夜嗨| 国产精品私拍pans大尺度在线| 欧美另类69精品久久久久9999| 亚洲一区3d动漫同人无遮挡| 日韩中文在线观看| 激情一区二区三区| 国产极品久久久久久久久波多结野| 国产美女情趣调教h一区二区| 国产片一区二区| 国产精品久久久久久久免费软件| 久久超碰亚洲| 日韩一级电影| 日本欧美一区二区三区乱码| 首播影院在线观看免费观看电视| 美女免费免费看网站| 男操女免费网站| 中文字幕一区二区三区域| 国产偷窥洗澡视频| 久久免费公开视频| 92久久精品| 日本va欧美va国产激情| 久久久91精品国产| caoliu在线| 久操视频在线免费播放| 成人亚洲综合色就1024| 欧美在线亚洲一区| 青青操在线观看| 国外成人在线直播| 精品中文字幕一区二区| 五月天激情图片| 青青在线免费视频| 日韩欧美国产精品一区二区三区| 色综合 综合色| 国产资源在线免费观看| 蜜臀精品一区二区三区在线观看| 亚洲精品天堂| 精品欧美一区二区精品久久| 视频一区二区三区中文字幕| 天堂а√在线中文在线| 国产成人综合久久| 日本少妇做爰全过程毛片| 中国成人亚色综合网站| 亚洲国产日本| 国产精品男人的天堂| 欧美成人精品激情在线视频| 一区二区蜜桃| 中文字幕剧情在线观看| 中文字幕免费在线观看| 欧美1区二区三区公司| 亚洲加勒比久久88色综合| 国产99久久久国产精品免费看| 熟女俱乐部一区二区| 国产一区二区三区四区大秀| 久久婷婷国产综合国色天香| 狠狠干夜夜爽| 久久av资源网站| a天堂中文字幕| 视频一区二区三区免费观看| 678在线观看视频| 熟女人妻在线视频| 国内精品久久99人妻无码| 国产精品一区二区三区久久久| 国内国产区免费视频| 国产精品va在线观看视色| 亚洲熟妇无码一区二区三区导航| 国内视频精品| 日韩av在线资源| 热久久国产精品| 美女精品一区二区| 国产激情视频网站| 97精品国产97久久久久久久久久久久| 日韩欧美精品在线不卡| 99精品视频免费在线观看| 黄色电影免费在线观看| 神马午夜伦理不卡| 日韩精品一区二区三区视频| 日韩成人av影院| 欧美性一区二区三区| 国产69精品久久久久9999apgf| 日本道在线视频| 97在线观视频免费观看| 97在线视频精品| 狠狠色狠色综合曰曰| 污污网址在线观看| 日本在线高清视频一区| 色琪琪免费视频网站| 亚洲精品无码国产| 欧美午夜在线视频| 免费a级在线播放| 91精品亚洲一区在线观看| 欧美日韩国产综合久久| h视频免费高清在线观看| 欧美精品自拍视频| 国产午夜精品理论片在线| 亚洲一区 二区| 亚洲精品第一国产综合野草社区| 国产精品一区三区| 可以免费观看av毛片| 免费网站黄在线观看| 一个人看的视频www| 午夜成年人在线免费视频| 免费高清在线观看电视| 成人嫩草影院免费观看| 中文字幕2区| 国产一区二区三区三区在线观看| 中文字幕一区二区三区在线乱码| 成年免费视频| 日韩高清国产一区在线观看| 亚洲欧美va天堂人熟伦| 成人国产精品色哟哟| 国产精品沙发午睡系列| 国产精品怡红院| 成年人在线观看网站| 玖玖精品视频| 97激碰免费视频| 欧美国产偷国产精品三区| 女女调教被c哭捆绑喷水百合| 日韩精品视频中文字幕| 麻豆国产一区| eeuss影院www影院入口| 久久日.com| 亚洲成人精品一区二区| 成人伊人精品色xxxx视频| 成人在线观看你懂的| 精品精品视频| 丰满人妻一区二区三区免费| 97国产一区二区| 免费久久99精品国产| 一区二区三区四区av| 久久青草精品视频免费观看| 亚洲 欧美 国产 另类| 92福利视频午夜1000合集在线观看| 四虎永久在线高清国产精品| 亚州欧美精品suv| 亚洲欧美激情插| 最新电影电视剧在线观看免费观看| 欧美日韩午夜影院| h视频免费在线观看| 亚洲欧美日韩第一页| 欧美极品中文字幕| 久久综合久中文字幕青草| 精品精品99| 国产三级做爰在线观看| 午夜电影亚洲| 国产天堂第一区| 国外亚洲成av人片在线观看| 日韩一区二区三区免费| 国产不卡视频一区二区三区| 午夜久久久影院| 蜜臀久久99精品久久久画质超高清| 欧美成人欧美edvon| 欧美精品激情视频| 综合久久婷婷| 亚洲人体在线| 国产hs免费高清在线观看| sese一区| 精品国产视频| 香蕉视频网站入口| 国产成人综合自拍| 男人天堂网在线观看| 青青草草视频| 亚洲精品日韩久久久| 国产1区2区在线观看| 国产麻豆视频网站| **毛片在线网站| 国产综合色在线观看| 美国黄色小视频| 中文字幕人妻一区二区在线视频| 91av在线免费观看视频| 日韩精品一卡| 国产理论在线播放| 久久99国产精品久久99小说| 91美女片黄在线观| 国产又色又爽又黄的| 999国内精品视频在线| 国产又粗又猛视频免费| 国产在线观看免费播放| www.久久久.com| 色视频在线看| jvid福利在线一区二区| 国产精品麻豆久久| 折磨小男生性器羞耻的故事| 国产在线日韩欧美| 国产高潮国产高潮久久久91| 美女少妇全过程你懂的久久| 96久久精品| 国精产品视频一二二区| 欧美精品成人一区二区在线观看| 欧美精品在线免费播放| 中文字幕专区| 91九色成人| 中日韩在线视频| 日本久久国产| 亚洲视频免费观看| 日韩欧美在线影院| 亚洲图片欧美综合| 性一交一乱一色一免费无遮挡| 中文字幕在线看精品乱码| 性欧美大战久久久久久久免费观看| 国产清纯美女被跳蛋高潮一区二区久久w| 一区二区三区四区日韩| 男人的天堂免费| 香蕉视频在线观看网站| 妞干网在线免费视频| 亚洲精品国产一区| 91亚洲视频在线观看| 欧美一二三四五区| 欧美三级三级三级| 日日草天天草| 日韩精品在线免费观看| 日韩欧美在线看| 四虎精品视频| 成午夜精品一区二区三区软件| 亚洲欧美久久| 正在播放91九色| 夜色资源网av在先锋网站观看| 91精品国产高清自在线| 国产精品3区| 日韩精品久久久久久久| 好吊色免费视频| 欧美日韩一本到| 欧美三级午夜理伦三级中视频| 调教+趴+乳夹+国产+精品| sm捆绑调教视频| 色综合色综合色综合色综合色综合| 欧美日韩免费一区二区三区| 亚洲欧美国产日韩中文字幕| 国产99在线|亚洲| 在线看免费毛片| 麻豆精品一区二区三区视频| 天堂在线观看一卡二卡三卡四卡| a在线观看网站| 一二三四在线观看视频| 久久国产精品网| xxxx性bbbb欧美野外| 美日韩免费视频| 好吊色在线观看| 亚洲天堂av影院| 亚洲国产日韩a在线播放| 黄色资源在线观看| 国产免费久久久久| 热re66久久精品国产99热| 精品国内产的精品视频在线观看| 欧美人妖在线观看| 91午夜理伦私人影院| 日本人妻伦在线中文字幕| 久久99伊人| 国产精品中出一区二区三区| 亚洲图区综合| 懂色av一区二区三区| 精品亚洲视频在线| 亚洲欧洲精品一区二区| 免费观看v片在线观看| 国产精品黄色| 韩国黄色一级片| 狠狠操视频网站| 国产乱女淫av麻豆国产| 亚洲天天做日日做天天谢日日欢| 亚洲美女视频在线观看| 麻豆成人久久精品二区三区小说| 日韩电影中文字幕在线观看| 成人亚洲一区二区| 人妻人人澡人人添人人爽| 国产精品爽爽久久| 永久亚洲成a人片777777| 国产丝袜一区二区| 欧美男女交配视频| 成年男女免费视频网站不卡| 国产激情久久久久久熟女老人av| 成人激情黄色网| 亚州av电影免费在线观看| 操91在线视频| 亚洲欧美日韩国产综合| 韩国一区二区三区四区| 一级特黄妇女高潮| 国产精品三级av在线播放| 日韩精品欧美一区二区三区| 亚洲在线免费视频| 亚洲精品在线观看www| 亚洲视频久久| 亚洲精品国产一区二区三区| 黄色影视在线观看| 日韩久久精品电影| 精品午夜一区二区| 成年人视频免费在线观看| 欧美性猛交xxx乱大交3蜜桃| avtt天堂资源网| 国产日韩在线不卡| 久久超碰97人人做人人爱| 一本一本久久a久久精品综合麻豆| 蜜桃传媒在线观看免费进入| 亚洲熟妇无码av| 久久久久国产精品人|