从零开始使用AntDB

安装AntDB步骤:

1、从github上下载源码:

https://github.com/ADBSQL/AntDB

2、编译、安装到指定目录下,例如$HOME/pgsql_xc

  • 编译:

../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'

  • 安装:

make install-world-contrib-recurse -j 3 >/dev/null

3、初始化manager

命令:initmgr –D 目录,例如initmgr –D /home/user1/mgr

(mgr目录会自动创建,如果本来就存在,应该保证目录为空,否则会初始化失败)

初始化后,在mgr文件加下生成如下文件:

1.2、(可选)修改mgr配置文件

Manager的默认端口是6432,可以修改/home/user1/mgr/postgresql.conf文件,例如修改为8432,只要与其它进程号不冲突。

修改为

4 、启动manager

有两种方式:

1、mgr_ctl start -D 路径

2、adbmgrd -D 路径&

方式一(推荐):mgr_ctl start -D 路径

方式二:adbmgrd -D 路径&

启动后,查看进程如下:

5 、 连接到manager上

-p后面是端口号,刚才已将默认的6432修改为7432。

6、添加主机

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已经启动

9、配置集群节点

Node表中添加coordinator、datanode slave、datanode master信息。

注意: host名称必须来自host表,端口号不要冲突,path指定的文件夹必须为空,否则初始化将失败。

添加命令:

1、   添加coordinator信息:

add coordinator 名字(path = 'xxx', host='localhost1', port=xxx);

2、   添加datanode master信息:

add datanode master 名字(path = 'xxx', host='localhost1', port=xxx);

3、   添加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);

4、   添加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');

10、配置节点参数

Ø  同时设置所有同类型节点:

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表中。

11、init all启动集群

集群的节点都已经配置完成,此时就可以用init all启动集群了。如下图,可以看到init all内部的操作步骤。

此时集群已经启动,可以登录到coordinator上,创建表,导入数据等。

猜你喜欢

转载自my.oschina.net/u/3771732/blog/1610936