pacemaker+corosync+kingbase 8.6

pacemaker+corosync+kingbase 8.6

在pacemaker中如果用systemd agent方式创建kingbase资源,无法检测到kingbase的异常终止(其他资源完好的情况下),
所以改用ocf:heartbeat:pgsql agent的方式创建资源,因为ocf:heartbeat:pgsql是针对postgreSQL的,所以需要少许修改。
环境:OS:麒麟V10 SP3,corosync 3.1.8,pacemaker 2.1.6 ,crmsh 4.5 , resource-agents 4.2.0, fence-agents 4.2.1

1. /usr/lib/ocf/resource.d/heartbeat/pgsql种的postmaster.pid改成kingbase.pid,将 PG_VERSION改成SYS_VERSION

2. 给数据库创建用户kingbase,需要和pgdba(OS用户名)一样:

create user kingbase with password ‘123456’;

正常情况下应该给资源设置ocf:heartbeat:pgsql的monitor_user和monitor_password,指定监控用户和口令,但是设置了也不起作用,一直用kingbase(pgdba)连接数据库,应该是pgsql agent的bug,后续研究看升级resource agent是否能解决问题。

3.设置免密登陆:

ocf:heartbeat:pgsql agent连接数据库时,需要免密登陆,本来是用PGUSER,PGPASSWORD环境变量的方式,使命令行不需要交互,但是这种方式,在kingbase高版本不起作用,所以需要用encpwd工具设置免密登陆。

/opt/Kingbase/ES/V8/Server/bin/sys_encpwd -H \* -P \* -D \* -U kingbase -W 123456

工具会生成/home/kingbase/.encpwd文件,口令加密存储在这个文件里; 星号是通配符,需要用\转义,使用通配符不安全。

/opt/Kingbase/ES/V8/Server/bin/sys_encpwd -H 192.168.0.181 -P 54321 -D template1 -U kingbase -W 123456

测试免密登陆:

/opt/Kingbase/ES/V8/Server/bin/ksql -p 54321 -U kingbase template1

4. 用crmsh创建pacemaker资源:

crm configure primitive kingbasedb1 ocf:heartbeat:pgsql \
     params pgctl=”/opt/Kingbase/ES/V8/Server/bin/sys_ctl” \
     ctl_opt=”-w” \
     psql=”/opt/Kingbase/ES/V8/Server/bin/ksql” \
     pgdata=”/data01/kbdb” \
     pgdba=”kingbase” \
     pghost=”0.0.0.0″ \
     config=”/data01/kbdb/kingbase.conf” \
     pgport=”54321″ \
     pglibs=”/opt/Kingbase/ES/V8/Server/lib” \
     pgdb=”template1″ \
     logfile=”/data01/kbdb/sys_log/kingbasedb1.log” \
     op start interval=”0″ timeout=”120″ \
     op stop interval=”0″ timeout=”120″ \
     op monitor interval=”9s” timeout=”30″

Comments are closed.