安裝AntDB步驟:node
一、從github上下載源碼:python
https://github.com/ADBSQL/AntDBgit
二、編譯、安裝到指定目錄下,例如$HOME/pgsql_xcgithub
../adb_sql/configure --prefix=$HOME/pgsql_xc --with-segsize=8 --with-wal-segsize=64 --with-wal-blocksize=64 --with-perl --with-python --with-openssl --with-pam --with-ldap --with-libxml --with-libxslt --enable-thread-safety --enable-cassert --enable-debug --enable-depend CFLAGS='-DADB -O0 -ggdb3'sql
make install-world-contrib-recurse -j 3 >/dev/nullssh
三、初始化manager異步
命令:initmgr –D 目錄,例如initmgr –D /home/user1/mgrpost
(mgr目錄會自動建立,若是原本就存在,應該保證目錄爲空,不然會初始化失敗)debug
初始化後,在mgr文件加下生成以下文件:postgresql
1.二、(可選)修改mgr配置文件
Manager的默認端口是6432,能夠修改/home/user1/mgr/postgresql.conf文件,例如修改成8432,只要與其它進程號不衝突。
修改成
4 、啓動manager
有兩種方式:
一、mgr_ctl start -D 路徑
二、adbmgrd -D 路徑&
方式一(推薦):mgr_ctl start -D 路徑
方式二:adbmgrd -D 路徑&
啓動後,查看進程以下:
5 、 鏈接到manager上
-p後面是端口號,剛纔已將默認的6432修改成7432。
六、添加主機
manager經過三張表管理集羣,host、node、param表。
首先須要在host表中添加主機信息,後面gtm、datanode、coordinator會部署到這些主機上。
添加命令: |
add host 主機名(address, agentport, user, adbhome); |
查看命令: |
list host; |
裏面的參數能夠不寫,有默認值, 例如port能夠不寫,默認22,user默認值是當前用戶,(例子中將manager安裝在user1,集羣安裝在user2下,因此這裏須要配置user=’user2’)。
舉例:
add host localhost1(port=22,protocol='ssh',adbhome='/home/mass/pgsql_xc',address="10.1.226.201",agentport=8442,user='mass');
add host localhost2(port=22,protocol='ssh',adbhome='/home/mass/pgsql_xc',address="10.1.226.202",agentport=8442,user='mass');
add host localhost3(port=22,protocol='ssh',adbhome='/home/mass/pgsql_xc',address="10.1.226.203",agentport=8442,user='mass');
7 deploy
deploy命令會將ADB的bin的上級目錄複製到host表中的主機上。
命令:
一次部署全部主機 |
deploy all password='123456'; |
部署指定的主機 |
deploy localhost1,localhost2 password='123456'; |
8 、啓動agent。
有兩種方式:一次啓動所有agent和單獨啓動一臺主機agent(多個主機須要屢次執行),password是host表中配置的user對應的密碼。
一次啓動所有agent |
start agent all password='123456'; |
啓動指定的agent |
start agent localhost1,localhost2 password='123456'; |
查看agent已經啓動
九、配置集羣節點
Node表中添加coordinator、datanode slave、datanode master信息。
注意: host名稱必須來自host表,端口號不要衝突,path指定的文件夾必須爲空,不然初始化將失敗。
添加命令:
一、 添加coordinator信息:
add coordinator 名字(path = 'xxx', host='localhost1', port=xxx);
二、 添加datanode master信息:
add datanode master 名字(path = 'xxx', host='localhost1', port=xxx);
三、 添加datanode slave和extra信息,從節點與master同名,因此同名的master必須存在,同異步關係經過sync參數設置。
add datanode slave名字 for master名字(host='localhost2', port=xxx, path='xxx', sync=t);
add datanode extra名字 for master名字(host='localhost2', port=xxx, path='xxx', sync=f);
四、 添加gtm信息,從節點必須與主節點同名;
add gtm master名字(host='localhost3',port=xxx, path='xxx');
add gtm slave名字 for master名字(host='localhost2',port=xxx, path='xxx');
add gtm extra名字 for master名字(host='localhost1',port=xxx, path='xxx');
添加完成後,list node查看剛剛添加的節點信息:
list node;
舉例:
add coordinator master coord0(path = '/home/mass/pgdata_xc/coord/0', host='localhost1', port=4332);
add coordinator master coord1(path = '/home/mass/pgdata_xc/coord/1', host='localhost2', port=4332);
add datanode master dm0(path = '/home/mass/pgdata_xc/datanode/0', host='localhost1', port=14332);
add datanode slave ds0 for dm0(host='localhost2',port=14332,path='/home/mass/pgdata_xc/datanode/00');
add datanode master dm1(path = '/home/mass/pgdata_xc/datanode/1', host='localhost2', port=24332);
add datanode slave ds1 for dm1(host='localhost1',port=24332,path='/home/mass/pgdata_xc/datanode/11');
add gtm master gtm(host='localhost3',port=6655, path='/home/mass/pgdata_xc/gtm');
十、配置節點參數
Ø 同時設置全部同類型節點:
set datanode|coordinator|gtm all(key1=value1, key2=value2...);
Ø 設置某一個節點的參數
set {datanode|coordinator|gtm} {master|slave|extra} {nodename|all} (key1=value1, key2=value2...);
注意:相同的參數,slave的參數必須大於等於master,不然啓動失敗,查看log以下:
2016-09-06 10:50:55.730 CST 22023 0FATAL: hot standby is not possible because max_prepared_transactions = 100 is a lower setting than on the master server (its value was 150)
設置完成後
Ø reset參數:
reset {datanode|coordinator|gtm} {master|slave|extra} {nodename|all} (key1,key2...); (key,...) 也能夠 (key=value,key2,...),可是value沒有做用。
若param表中存在參數設置,則刪除;若存在all可是如今只reset 單個nodename,則新加1行參數信息在param表中。
十一、init all啓動集羣
集羣的節點都已經配置完成,此時就能夠用init all啓動集羣了。以下圖,能夠看到init all內部的操做步驟。
此時集羣已經啓動,能夠登陸到coordinator上,建立表,導入數據等。