赞
踩
一、安装环境准备
1.IP地址说明
node1:192.168.1.50 primary
node2:192.168.1.51 standby
db vip:192.168.1.60
cluster vip:192.168.1.61
2.设置hostname并添加主机名与IP映射关系(node1与node2执行)
3.一键工具添加kingbase用户且优化系统参数(node1与node2执行)
4.关闭防火墙(node1与node2执行)
二、配置SSH免密
1.各个节点生成密钥对(node1与node2执行)
root用户:
kingbase用户:
2.各个节点公钥汇集并分发
2.1 在任意节点执行如下命令汇集公钥(node1执行)
- ssh root@192.168.1.50 cat /root/.ssh/id_rsa.pub >> authorized_keys
- ssh root@192.168.1.50 cat /home/kingbase/.ssh/id_rsa.pub >> authorized_keys
- ssh root@192.168.1.51 cat /root/.ssh/id_rsa.pub >> authorized_keys
- ssh root@192.168.1.51 cat /home/kingbase/.ssh/id_rsa.pub >> authorized_keys
2.2 在node1节点分发刚刚生成authorized_keys文件
- scp authorized_keys root@192.168.1.50:~/.ssh
- scp authorized_keys kingbase@192.168.1.50:~/.ssh
- scp authorized_keys root@192.168.1.51:~/.ssh
- scp authorized_keys kingbase@192.168.1.51:~/.ssh
2.3 修改authorized_keys文件权限(node1与node2执行)
- chmod 600 /root/.ssh/authorized_keys
- chmod 600 /home/kingbase/.ssh/authorized_keys
2.4 测试免密码登录
三、primary节点部署(node1节点)
1.创建目录
- mkdir /home/kingbase/cluster
- mkdir /home/kingbase/cluster/mycluster
- mkdir /home/kingbase/cluster/mycluster/archivedir
- mkdir -p /home/kingbase/cluster/mycluster/log/kingbasecluster
- mkdir -p /home/kingbase/cluster/mycluster/run/kingbasecluster
- chown -R kingbase:kingbase /home/kingbase/cluster
2.部署db.zip
2.1 上传db.zip
2.2 解压
unzip -o db.zip -d /home/kingbase/cluster/mycluster/
2.3 上传license到集群
创建软连接
- ln -s /home/kingbase/cluster/license_3701_0.dat /home/kingbase/cluster/mycluster/db/bin/license.dat
- chmod 766 /home/kingbase/cluster/mycluster/db/bin/license.dat
2.4 配置db etc下配置文件
2.4.1 HAmodule.conf
- CLUSTER_PATH="/home/kingbase/cluster/mycluster" #集群安装路径
- DEV="ens33" #指定网卡名称
- CMD_IP_PATH="/usr/sbin" #which ip --/usr/sbin/ip 程序路径
- CMD_ARPING_PATH="/usr/sbin"
- KB_GATEWAY_IP='192.168.1.1' #网关
- KB_LOCALHOST_IP="192.168.1.50" #本地ip
- SYNC_FLAG=1
- KB_VIP="192.168.1.60/24" #数据库vip
- KB_POOL_VIP="192.168.1.61" #cluster vip
- KB_POOL_PORT="9999"
- PCP_USER="kingbase"
- PCP_PASS="MTIzNDU2"
- KB_ETC_PATH="$CLUSTER_PATH/db/etc"
- KB_PATH="$CLUSTER_PATH/db/bin"
- KB_LD_PATH="$CLUSTER_PATH/db/lib"
- CLUSTER_BIN_PATH="$CLUSTER_PATH/kingbasecluster/bin"
- CLUSTER_LIB_PATH="$CLUSTER_PATH/kingbasecluster/lib"
- KB_DATA_PATH="$CLUSTER_PATH/db/data"
- KB_USER="SUPERMANAGER_V8ADMIN"
- KB_PASS="S0lOR0JBU0VBRE1JTg\=\="
- KB_DATANAME="TEST"
- KB_PORT="54321"
- KB_EXECUTE_SYS_USER="kingbase"
- RECOVERY_LOG_DIR="$CLUSTER_PATH//log/recovery.log"
- KB_CLUSTER_STATUS="$CLUSTER_PATH//log/pool_nodes"
- KB_ALL_IP=(192.168.1.50 192.168.1.51 ) #所有节点ip
- KB_POOL_IP1="192.168.1.50" #kbpool节点1
- KB_POOL_IP2="192.168.1.51" #kbpool节点2
- POOL_EXENAME="kingbasecluster"
- KINGBASECLUSTERSOCKET1="/tmp/.s.KINGBASE.9999"
- KINGBASECLUSTERSOCKET2="/tmp/.s.KINGBASE.9898"
- KINGBASECLUSTERSOCKET3="/tmp/.s.KINGBASECLUSTERWD_CMD.9000"
- KINGBASECLUSTERSOCKET4="/tmp/.s.KINGBASECLUSTERWD_CMD.9000.lock"
- CLUSTER_STAT_FILE="$CLUSTER_PATH/run/kingbasecluster/kingbasecluster_status"
- CLUSTER_LOG_PATH="$CLUSTER_PATH/log"
- CLUSTER_LOG_NAME="cluster.log"
- PING_TIMES="3"
- POOL_RESTART="$CLUSTER_PATH//log/cluster_restart.log"
- FAILOVER_LOG_DIR="$CLUSTER_PATH//log/failover.log"
- KB_POOL_EXECUTE_SYS_USER="root"
- CONNECTTIMEOUT=10
- HEALTH_CHECK_MAX_RETRIES=2
- HEALTH_CHECK_RETRY_DELAY=1
- AUTO_PRIMARY_RECOVERY=1
- ALL_NODE_NAME=(node1,node2) #所有节点
- NODE_NAME="node1" #当前节点

2.4.2 recovery.done
- standby_mode='on'
- primary_conninfo='port=54321 host=192.168.1.51 user=SYSTEM password=MTIzNDU2 application_name=node1'
- recovery_target_timeline='latest'
- primary_slot_name ='slot_node1'
2.4.3 kingbase.conf
- listen_addresses='*'
- port=54321
- max_connections=100
- shared_buffers=512MB
- max_prepared_transactions=100
- dynamic_shared_memory_type = posix
- shared_preload_libraries = 'sysaudit, passwordcheck'
- wal_level=replica
- fsync=on
- wal_log_hints=on
- archive_mode=on
- archive_dest='/home/kingbase/cluster/mycluster/archivedir/' ##集群归档位置
- max_wal_senders=4
- wal_keep_segments=256
- max_replication_slots=4
- synchronous_standby_names='1(node1,node2)'
- hot_standby=on
- hot_standby_feedback=on
- log_destination='csvlog'
- logging_collector = on
- log_directory='/home/kingbase/cluster/mycluster/db/data/sys_log/' #数据库日志路径
- log_timezone = 'PRC'
- timezone='PRC'
- timezone_abbreviations = 'Default'
- lc_messages = 'en_US.UTF-8'
- lc_monetary = 'en_US.UTF-8'
- lc_numeric = 'en_US.UTF-8'
- lc_time = 'en_US.UTF-8'
- control_file_copy='/home/kingbase/cluster/mycluster/template.bk' #控制文件副本

3.部署 kingbasecluster.zip
3.1 上传kingbasecluster.zip
3.2 解压
unzip -o kingbasecluster.zip -d /home/kingbase/cluster/mycluster/
3.3 创建license软连接
- ln -s /home/kingbase/cluster/license_3701_0.dat /home/kingbase/cluster/mycluster/kingbasecluster/bin/license.dat
- chmod 766 /home/kingbase/cluster/mycluster/kingbasecluster/bin/license.dat
3.4 配置 kingbasecluster etc下配置文件
3.4.1 kingbasecluster.conf
- listen_addresses='*'
- port=9999
- socket_dir='/tmp'
- listen_backlog_multiplier=2
- serialize_accept=off
- pcp_listen_addresses='*'
- pcp_port=9898
- pcp_socket_dir='/tmp'
- backend_hostname0='192.168.1.50' #节点1
- backend_port0=54321 #端口
- backend_weight0=1
- backend_data_directory0='/home/kingbase/cluster/mycluster/db/data' #data目录
- backend_flag0='ALLOW_TO_FAILOVER'
- enable_cluster_hba=on
- cluster_passwd='cluster_passwd'
- authentication_timeout=60
- ssl=off
- num_init_children=16
- max_pool=4
- child_life_time=300
- child_max_connections=0
- connection_life_time=3
- client_idle_limit=0
- log_destination='stderr'
- log_line_prefix='%t: pid %p: '
- log_connections=off
- log_hostname=off
- log_statement=off
- log_per_node_statement=off
- log_standby_delay='none'
- syslog_facility='LOCAL0'
- syslog_ident='kingbasecluster'
- pid_file_name='/home/kingbase/cluster/mycluster/log/kingbasecluster/kingbasecluster.pid' #pid位置
- logdir='/home/kingbase/cluster/mycluster/run/kingbasecluster' #集群日志目录
- connection_cache=on
- reset_query_list='ABORT; DISCARD ALL'
- replication_mode=off
- replicate_select=off
- insert_lock=off
- lobj_lock_table=''
- replication_stop_on_mismatch=off
- failover_if_affected_tuples_mismatch=off
- load_balance_mode=on
- ignore_leading_white_space=on
- white_function_list=''
- black_function_list='nextval,setval,nextval,setval'
- database_redirect_preference_list=''
- app_name_redirect_preference_list=''
- allow_sql_comments=off
- master_slave_mode=on
- master_slave_sub_mode='stream'
- sr_check_period=0
- sr_check_user='SUPERMANAGER_V8ADMIN'
- sr_check_password='S0lOR0JBU0VBRE1JTg\=\='
- sr_check_database='TEMPLATE2'
- delay_threshold=0
- follow_master_command=''
- health_check_period='1'
- health_check_timeout=120
- health_check_user='SUPERMANAGER_V8ADMIN'
- health_check_password='S0lOR0JBU0VBRE1JTg\=\='
- health_check_database='TEMPLATE2'
- health_check_max_retries=2
- health_check_retry_delay=1
- connect_timeout='2000'
- failover_command='/home/kingbase/cluster/mycluster/kingbasecluster/bin/failover_stream.sh %H %P %d %h %O %m %M %D' # failover脚本命令
- failback_command=''
- fail_over_on_backend_error='off'
- search_primary_node_timeout=10
- recovery_user='SUPERMANAGER_V8ADMIN'
- recovery_password='S0lOR0JBU0VBRE1JTg\=\='
- recovery_1st_stage_command=''
- recovery_2nd_stage_command=''
- recovery_timeout=90
- client_idle_limit_in_recovery=0
- use_watchdog=on
- trusted_servers='192.168.1.1' #网关
- ping_path='/bin'
- wd_hostname='192.168.1.50' #watchdog本地节点
- wd_port=9000
- wd_priority=3
- wd_authkey='S0lOR0JBU0VBRE1JTg\=\='
- wd_ipc_socket_dir='/tmp'
- delegate_IP='192.168.1.61' #集群vip
- if_cmd_path='/usr/sbin'
- if_up_cmd='ip addr add 192.168.1.61/24 dev ens33 label ens33:0' #集群vip 及对应绑定网卡
- if_down_cmd='ip addr del 192.168.1.61/24 dev ens33' #集群vip 及对应绑定网卡
- arping_path='/usr/sbin'
- arping_cmd='arping -U 192.168.1.61 -I ens33 -w 1 -c 1' #集群vip 及对应绑定网卡
- clear_memqcache_on_escalation=on
- wd_escalation_command=''
- wd_de_escalation_command=''
- wd_monitoring_interfaces_list=''
- wd_lifecheck_method='heartbeat'
- wd_interval='1'
- wd_heartbeat_port=9694
- wd_heartbeat_keepalive='1'
- wd_heartbeat_deadtime='3'
- heartbeat_destination0='192.168.1.51' #要检测的其他节点
- heartbeat_destination_port0=9694
- heartbeat_device0='ens33' #网卡设备
- wd_life_point=3
- wd_lifecheck_query='SELECT 1'
- wd_lifecheck_dbname='TEMPLATE2'
- wd_lifecheck_user='SUPERMANAGER_V8ADMIN'
- wd_lifecheck_password='S0lOR0JBU0VBRE1JTg\=\='
- other_kingbasecluster_hostname0='192.168.1.51' #集群的其他节点
- other_kingbasecluster_port0='9999'
- other_wd_port0=9000
- relcache_expire=0
- relcache_size=256
- check_temp_table=on
- check_unlogged_table=on
- memory_cache_enabled=off
- memqcache_method='shmem'
- memqcache_memcached_host='localhost'
- memqcache_memcached_port=11211
- memqcache_total_size=67108864
- memqcache_max_num_cache=1000000
- memqcache_expire=0
- memqcache_auto_cache_invalidation=on
- memqcache_maxcache=409600
- memqcache_cache_block_size=1048576
- memqcache_oiddir='/home/kingbase/cluster/mycluster/log/kingbasecluster/oiddir'
- white_memqcache_table_list=''
- black_memqcache_table_list=''
- backend_hostname1='192.168.1.51' #集群的其他节点
- backend_port1=54321 #端口
- backend_weight1=1
- backend_data_directory1='/home/kingbase/cluster/mycluster/db/data' #数据目录

3.4.2 pcp.conf
kingbase:e10adc3949ba59abbe56e057f20f883e #这个值来源/home/kingbase/cluster/mycluster/kingbasecluster/bin/sys_md5 123456
3.4.3 cluster_hba.conf
- local all all md5
- # IPv4 local connections:
- host all all 127.0.0.1/32 md5
- host all all 192.168.8.0/24 md5
- host all all 0.0.0.0/0 md5
- host all all ::1/128 md5
- host all all 192.168.1.50/16 md5
3.4.4 cluster_passwd (以下为命令行执行)
- cd /home/kingbase/cluster/mycluster/kingbasecluster/bin
- ./sys_md5 -f ../etc/kingbasecluster.conf -u SUPERMANAGER_V8ADMIN -m KINGBASEADMIN
- enc=`./sys_md5 123456SYSTEM`
- echo "SYSTEM:md5$enc" >> /home/kingbase/cluster/mycluster/kingbasecluster/etc/cluster_passwd
3.4.5 HAmodule.conf
- CLUSTER_PATH="/home/kingbase/cluster/mycluster" #集群位置
- DEV="ens33" #网卡名称
- CMD_IP_PATH="/usr/sbin"
- CMD_ARPING_PATH="/usr/sbin"
- KB_GATEWAY_IP='192.168.1.1' #网关
- KB_LOCALHOST_IP="192.168.1.50" #本机ip
- SYNC_FLAG=1
- KB_VIP="192.168.1.60/24" #db vip
- KB_POOL_VIP="192.168.1.61" # cluster vip
- KB_POOL_PORT="9999"
- PCP_USER="kingbase"
- PCP_PASS="MTIzNDU2"
- KB_ETC_PATH="$CLUSTER_PATH/db/etc"
- KB_PATH="$CLUSTER_PATH/db/bin"
- KB_LD_PATH="$CLUSTER_PATH/db/lib"
- CLUSTER_BIN_PATH="$CLUSTER_PATH/kingbasecluster/bin"
- CLUSTER_LIB_PATH="$CLUSTER_PATH/kingbasecluster/lib"
- KB_DATA_PATH="$CLUSTER_PATH/db/data"
- KB_USER="SUPERMANAGER_V8ADMIN"
- KB_PASS="S0lOR0JBU0VBRE1JTg\=\="
- KB_DATANAME="TEST"
- KB_PORT="54321"
- KB_EXECUTE_SYS_USER="kingbase"
- RECOVERY_LOG_DIR="$CLUSTER_PATH//log/recovery.log"
- KB_CLUSTER_STATUS="$CLUSTER_PATH//log/pool_nodes"
- KB_ALL_IP=(192.168.1.50 192.168.1.51 ) #所有节点ip
- KB_POOL_IP1="192.168.1.50" #cluster节点1
- KB_POOL_IP2="192.168.1.51" #cluster节点2
- POOL_EXENAME="kingbasecluster"
- KINGBASECLUSTERSOCKET1="/tmp/.s.KINGBASE.9999"
- KINGBASECLUSTERSOCKET2="/tmp/.s.KINGBASE.9898"
- KINGBASECLUSTERSOCKET3="/tmp/.s.KINGBASECLUSTERWD_CMD.9000"
- KINGBASECLUSTERSOCKET4="/tmp/.s.KINGBASECLUSTERWD_CMD.9000.lock"
- CLUSTER_STAT_FILE="$CLUSTER_PATH/run/kingbasecluster/kingbasecluster_status"
- CLUSTER_LOG_PATH="$CLUSTER_PATH/log"
- CLUSTER_LOG_NAME="cluster.log"
- PING_TIMES="3"
- POOL_RESTART="$CLUSTER_PATH//log/cluster_restart.log"
- FAILOVER_LOG_DIR="$CLUSTER_PATH//log/failover.log"
- KB_POOL_EXECUTE_SYS_USER="root"
- CONNECTTIMEOUT=10
- HEALTH_CHECK_MAX_RETRIES=2
- HEALTH_CHECK_RETRY_DELAY=1
- AUTO_PRIMARY_RECOVERY=1
- ALL_NODE_NAME=(node1,node2) #所有节点
- NODE_NAME="node1" #当前节点

4.初始化主节点数据库
- cd /home/kingbase/cluster/mycluster/db/bin/
- ./initdb -D ../data -USYSTEM -W123456 --case-insensitive
四、standby节点部署(node2节点)
1.创建目录
- mkdir /home/kingbase/cluster
- mkdir /home/kingbase/cluster/mycluster
- mkdir /home/kingbase/cluster/mycluster/archivedir
- mkdir -p /home/kingbase/cluster/mycluster/log/kingbasecluster
- mkdir -p /home/kingbase/cluster/mycluster/run/kingbasecluster
- chown -R kingbase:kingbase /home/kingbase/cluster
2.部署db.zip
2.1 上传db.zip
2.2 解压
unzip -o db.zip -d /home/kingbase/cluster/mycluster/
2.3 上传license到集群
创建软连接
- ln -s /home/kingbase/cluster/license_3701_0.dat /home/kingbase/cluster/mycluster/db/bin/license.dat
- chmod 766 /home/kingbase/cluster/mycluster/db/bin/license.dat
2.4 配置db etc下配置文件
2.4.1 HAmodule.conf
- CLUSTER_PATH="/home/kingbase/cluster/mycluster" #集群安装路径
- DEV="ens33" #指定网卡名称
- CMD_IP_PATH="/usr/sbin" #which ip --/usr/sbin/ip 程序路径
- CMD_ARPING_PATH="/usr/sbin"
- KB_GATEWAY_IP='192.168.1.1' #网关
- KB_LOCALHOST_IP="192.168.1.51" #本地ip
- SYNC_FLAG=1
- KB_VIP="192.168.1.60/24" #数据库vip
- KB_POOL_VIP="192.168.1.61" #cluster vip
- KB_POOL_PORT="9999"
- PCP_USER="kingbase"
- PCP_PASS="MTIzNDU2"
- KB_ETC_PATH="$CLUSTER_PATH/db/etc"
- KB_PATH="$CLUSTER_PATH/db/bin"
- KB_LD_PATH="$CLUSTER_PATH/db/lib"
- CLUSTER_BIN_PATH="$CLUSTER_PATH/kingbasecluster/bin"
- CLUSTER_LIB_PATH="$CLUSTER_PATH/kingbasecluster/lib"
- KB_DATA_PATH="$CLUSTER_PATH/db/data"
- KB_USER="SUPERMANAGER_V8ADMIN"
- KB_PASS="S0lOR0JBU0VBRE1JTg\=\="
- KB_DATANAME="TEST"
- KB_PORT="54321"
- KB_EXECUTE_SYS_USER="kingbase"
- RECOVERY_LOG_DIR="$CLUSTER_PATH//log/recovery.log"
- KB_CLUSTER_STATUS="$CLUSTER_PATH//log/pool_nodes"
- KB_ALL_IP=(192.168.1.50 192.168.1.51 ) #所有节点ip
- KB_POOL_IP1="192.168.1.50" #kbpool节点1
- KB_POOL_IP2="192.168.1.51" #kbpool节点2
- POOL_EXENAME="kingbasecluster"
- KINGBASECLUSTERSOCKET1="/tmp/.s.KINGBASE.9999"
- KINGBASECLUSTERSOCKET2="/tmp/.s.KINGBASE.9898"
- KINGBASECLUSTERSOCKET3="/tmp/.s.KINGBASECLUSTERWD_CMD.9000"
- KINGBASECLUSTERSOCKET4="/tmp/.s.KINGBASECLUSTERWD_CMD.9000.lock"
- CLUSTER_STAT_FILE="$CLUSTER_PATH/run/kingbasecluster/kingbasecluster_status"
- CLUSTER_LOG_PATH="$CLUSTER_PATH/log"
- CLUSTER_LOG_NAME="cluster.log"
- PING_TIMES="3"
- POOL_RESTART="$CLUSTER_PATH//log/cluster_restart.log"
- FAILOVER_LOG_DIR="$CLUSTER_PATH//log/failover.log"
- KB_POOL_EXECUTE_SYS_USER="root"
- CONNECTTIMEOUT=10
- HEALTH_CHECK_MAX_RETRIES=2
- HEALTH_CHECK_RETRY_DELAY=1
- AUTO_PRIMARY_RECOVERY=1
- ALL_NODE_NAME=(node1,node2) #所有节点
- NODE_NAME="node2" #当前节点

2.4.2 recovery.done
- standby_mode='on'
- primary_conninfo='port=54321 host=192.168.1.50 user=SYSTEM password=MTIzNDU2 application_name=node2'
- recovery_target_timeline='latest'
- primary_slot_name ='slot_node2'
2.4.3 kingbase.conf
- listen_addresses='*'
- port=54321
- max_connections=100
- shared_buffers=512MB
- max_prepared_transactions=100
- dynamic_shared_memory_type = posix
- shared_preload_libraries = 'sysaudit, passwordcheck'
- wal_level=replica
- fsync=on
- wal_log_hints=on
- archive_mode=on
- archive_dest='/home/kingbase/cluster/mycluster/archivedir/' ##集群归档位置
- max_wal_senders=4
- wal_keep_segments=256
- max_replication_slots=4
- synchronous_standby_names='1(node1,node2)'
- hot_standby=on
- hot_standby_feedback=on
- log_destination='csvlog'
- logging_collector = on
- log_directory='/home/kingbase/cluster/mycluster/db/data/sys_log/' #数据库日志路径
- log_timezone = 'PRC'
- timezone='PRC'
- timezone_abbreviations = 'Default'
- lc_messages = 'en_US.UTF-8'
- lc_monetary = 'en_US.UTF-8'
- lc_numeric = 'en_US.UTF-8'
- lc_time = 'en_US.UTF-8'
- control_file_copy='/home/kingbase/cluster/mycluster/template.bk' #控制文件副本

3.部署 kingbasecluster.zip
3.1 上传kingbasecluster.zip
3.2 解压
unzip -o kingbasecluster.zip -d /home/kingbase/cluster/mycluster/
3.3 创建license软连接
- ln -s /home/kingbase/cluster/license_3701_0.dat /home/kingbase/cluster/mycluster/kingbasecluster/bin/license.dat
- chmod 766 /home/kingbase/cluster/mycluster/kingbasecluster/bin/license.dat
3.4 配置 kingbasecluster etc下配置文件
3.4.1 kingbasecluster.conf
- listen_addresses='*'
- port=9999
- socket_dir='/tmp'
- listen_backlog_multiplier=2
- serialize_accept=off
- pcp_listen_addresses='*'
- pcp_port=9898
- pcp_socket_dir='/tmp'
- backend_hostname0='192.168.1.50' #节点1
- backend_port0=54321 #端口
- backend_weight0=1
- backend_data_directory0='/home/kingbase/cluster/mycluster/db/data' #data目录
- backend_flag0='ALLOW_TO_FAILOVER'
- enable_cluster_hba=on
- cluster_passwd='cluster_passwd'
- authentication_timeout=60
- ssl=off
- num_init_children=16
- max_pool=4
- child_life_time=300
- child_max_connections=0
- connection_life_time=3
- client_idle_limit=0
- log_destination='stderr'
- log_line_prefix='%t: pid %p: '
- log_connections=off
- log_hostname=off
- log_statement=off
- log_per_node_statement=off
- log_standby_delay='none'
- syslog_facility='LOCAL0'
- syslog_ident='kingbasecluster'
- pid_file_name='/home/kingbase/cluster/mycluster/log/kingbasecluster/kingbasecluster.pid' #pid位置
- logdir='/home/kingbase/cluster/mycluster/run/kingbasecluster' #集群日志目录
- connection_cache=on
- reset_query_list='ABORT; DISCARD ALL'
- replication_mode=off
- replicate_select=off
- insert_lock=off
- lobj_lock_table=''
- replication_stop_on_mismatch=off
- failover_if_affected_tuples_mismatch=off
- load_balance_mode=on
- ignore_leading_white_space=on
- white_function_list=''
- black_function_list='nextval,setval,nextval,setval'
- database_redirect_preference_list=''
- app_name_redirect_preference_list=''
- allow_sql_comments=off
- master_slave_mode=on
- master_slave_sub_mode='stream'
- sr_check_period=0
- sr_check_user='SUPERMANAGER_V8ADMIN'
- sr_check_password='S0lOR0JBU0VBRE1JTg\=\='
- sr_check_database='TEMPLATE2'
- delay_threshold=0
- follow_master_command=''
- health_check_period='1'
- health_check_timeout=120
- health_check_user='SUPERMANAGER_V8ADMIN'
- health_check_password='S0lOR0JBU0VBRE1JTg\=\='
- health_check_database='TEMPLATE2'
- health_check_max_retries=2
- health_check_retry_delay=1
- connect_timeout='2000'
- failover_command='/home/kingbase/cluster/mycluster/kingbasecluster/bin/failover_stream.sh %H %P %d %h %O %m %M %D' # failover脚本命令
- failback_command=''
- fail_over_on_backend_error='off'
- search_primary_node_timeout=10
- recovery_user='SUPERMANAGER_V8ADMIN'
- recovery_password='S0lOR0JBU0VBRE1JTg\=\='
- recovery_1st_stage_command=''
- recovery_2nd_stage_command=''
- recovery_timeout=90
- client_idle_limit_in_recovery=0
- use_watchdog=on
- trusted_servers='192.168.1.1' #网关
- ping_path='/bin'
- wd_hostname='192.168.1.51' #watchdog本地节点
- wd_port=9000
- wd_priority=3
- wd_authkey='S0lOR0JBU0VBRE1JTg\=\='
- wd_ipc_socket_dir='/tmp'
- delegate_IP='192.168.1.61' #集群vip
- if_cmd_path='/usr/sbin'
- if_up_cmd='ip addr add 192.168.1.61/24 dev ens33 label ens33:0' #集群vip 及对应绑定网卡
- if_down_cmd='ip addr del 192.168.1.61/24 dev ens33' #集群vip 及对应绑定网卡
- arping_path='/usr/sbin'
- arping_cmd='arping -U 192.168.1.61 -I ens33 -w 1 -c 1' #集群vip 及对应绑定网卡
- clear_memqcache_on_escalation=on
- wd_escalation_command=''
- wd_de_escalation_command=''
- wd_monitoring_interfaces_list=''
- wd_lifecheck_method='heartbeat'
- wd_interval='1'
- wd_heartbeat_port=9694
- wd_heartbeat_keepalive='1'
- wd_heartbeat_deadtime='3'
- heartbeat_destination0='192.168.1.50' #要检测的其他节点
- heartbeat_destination_port0=9694
- heartbeat_device0='ens33' #网卡设备
- wd_life_point=3
- wd_lifecheck_query='SELECT 1'
- wd_lifecheck_dbname='TEMPLATE2'
- wd_lifecheck_user='SUPERMANAGER_V8ADMIN'
- wd_lifecheck_password='S0lOR0JBU0VBRE1JTg\=\='
- other_kingbasecluster_hostname0='192.168.1.50' #集群的其他节点
- other_kingbasecluster_port0='9999'
- other_wd_port0=9000
- relcache_expire=0
- relcache_size=256
- check_temp_table=on
- check_unlogged_table=on
- memory_cache_enabled=off
- memqcache_method='shmem'
- memqcache_memcached_host='localhost'
- memqcache_memcached_port=11211
- memqcache_total_size=67108864
- memqcache_max_num_cache=1000000
- memqcache_expire=0
- memqcache_auto_cache_invalidation=on
- memqcache_maxcache=409600
- memqcache_cache_block_size=1048576
- memqcache_oiddir='/home/kingbase/cluster/mycluster/log/kingbasecluster/oiddir'
- white_memqcache_table_list=''
- black_memqcache_table_list=''
- backend_hostname1='192.168.1.51'
- backend_port1=54321 #端口
- backend_weight1=1
- backend_data_directory1='/home/kingbase/cluster/mycluster/db/data' #数据目录

3.4.2 pcp.conf
kingbase:e10adc3949ba59abbe56e057f20f883e #这个值来源/home/kingbase/cluster/mycluster/kingbasecluster/bin/sys_md5 123456
3.4.3 cluster_hba.conf
- local all all md5
- # IPv4 local connections:
- host all all 127.0.0.1/32 md5
- host all all 192.168.8.0/24 md5
- host all all 0.0.0.0/0 md5
- host all all ::1/128 md5
- host all all 192.168.1.50/16 md5
3.4.4 cluster_passwd (以下为命令行执行)
- cd /home/kingbase/cluster/mycluster/kingbasecluster/bin
- ./sys_md5 -f ../etc/kingbasecluster.conf -u SUPERMANAGER_V8ADMIN -m KINGBASEADMIN
- enc=`./sys_md5 123456SYSTEM`
- echo "SYSTEM:md5$enc" >> /home/kingbase/cluster/mycluster/kingbasecluster/etc/cluster_passwd
3.4.5 HAmodule.conf
- CLUSTER_PATH="/home/kingbase/cluster/mycluster" #集群位置
- DEV="ens33" #网卡名称
- CMD_IP_PATH="/usr/sbin"
- CMD_ARPING_PATH="/usr/sbin"
- KB_GATEWAY_IP='192.168.1.1' #网关
- KB_LOCALHOST_IP="192.168.1.51" #本机ip
- SYNC_FLAG=1
- KB_VIP="192.168.1.60/24" #db vip
- KB_POOL_VIP="192.168.1.61" # cluster vip
- KB_POOL_PORT="9999"
- PCP_USER="kingbase"
- PCP_PASS="MTIzNDU2"
- KB_ETC_PATH="$CLUSTER_PATH/db/etc"
- KB_PATH="$CLUSTER_PATH/db/bin"
- KB_LD_PATH="$CLUSTER_PATH/db/lib"
- CLUSTER_BIN_PATH="$CLUSTER_PATH/kingbasecluster/bin"
- CLUSTER_LIB_PATH="$CLUSTER_PATH/kingbasecluster/lib"
- KB_DATA_PATH="$CLUSTER_PATH/db/data"
- KB_USER="SUPERMANAGER_V8ADMIN"
- KB_PASS="S0lOR0JBU0VBRE1JTg\=\="
- KB_DATANAME="TEST"
- KB_PORT="54321"
- KB_EXECUTE_SYS_USER="kingbase"
- RECOVERY_LOG_DIR="$CLUSTER_PATH//log/recovery.log"
- KB_CLUSTER_STATUS="$CLUSTER_PATH//log/pool_nodes"
- KB_ALL_IP=(192.168.1.50 192.168.1.51 ) #所有节点ip
- KB_POOL_IP1="192.168.1.50" #cluster节点1
- KB_POOL_IP2="192.168.1.51" #cluster节点2
- POOL_EXENAME="kingbasecluster"
- KINGBASECLUSTERSOCKET1="/tmp/.s.KINGBASE.9999"
- KINGBASECLUSTERSOCKET2="/tmp/.s.KINGBASE.9898"
- KINGBASECLUSTERSOCKET3="/tmp/.s.KINGBASECLUSTERWD_CMD.9000"
- KINGBASECLUSTERSOCKET4="/tmp/.s.KINGBASECLUSTERWD_CMD.9000.lock"
- CLUSTER_STAT_FILE="$CLUSTER_PATH/run/kingbasecluster/kingbasecluster_status"
- CLUSTER_LOG_PATH="$CLUSTER_PATH/log"
- CLUSTER_LOG_NAME="cluster.log"
- PING_TIMES="3"
- POOL_RESTART="$CLUSTER_PATH//log/cluster_restart.log"
- FAILOVER_LOG_DIR="$CLUSTER_PATH//log/failover.log"
- KB_POOL_EXECUTE_SYS_USER="root"
- CONNECTTIMEOUT=10
- HEALTH_CHECK_MAX_RETRIES=2
- HEALTH_CHECK_RETRY_DELAY=1
- AUTO_PRIMARY_RECOVERY=1
- ALL_NODE_NAME=(node1,node2) #所有节点
- NODE_NAME="node2" #当前节点

4. 备机操作克隆
4.1 主库(node1)sys_hba.conf添加如下
- host all SYSTEM 192.168.1.50/16 md5
- host replication SYSTEM 192.168.1.50/16 md5
- host all SYSTEM 192.168.1.51/16 md5
- host replication SYSTEM 192.168.0.231/16 md5
4.2 主库(node1)将db/etc/kingbase.conf内容添加到data/kingbase.conf中
4.3 启动主库(node1)
- cd /home/kingbase/cluster/mycluster/db/bin
- ./sys_ctl start -D /home/kingbase/cluster/mycluster/db/data
4.4 备机(node2)执行克隆操作
- cd /home/kingbase/cluster/mycluster/db/bin
- ./sys_basebackup -Fp -X stream -v -P -h192.168.1.50 -USYSTEM -W123456 -D ../data
5.配置db/data/下的recovery.conf
- standby_mode='on'
- primary_conninfo='port=54321 host=192.168.1.50 user=SYSTEM password=MTIzNDU2 application_name=node2'
- recovery_target_timeline='latest'
- primary_slot_name ='slot_node2'
五、创建复制槽
主节点备节点分别执行
- select * from sys_create_physical_replication_slot('slot_node1');
- select * from sys_create_physical_replication_slot('slot_node2');
六、添加定时
主备节点分别创建定时文件/etc/cron.d/KINGBASECRON,内容如下
- */1 * * * * kingbase /home/kingbase/cluster/mycluster/db/bin/network_rewind.sh
- #*/1 * * * * root /home/kingbase/cluster/mycluster/kingbasecluster/bin/restartcluster.sh
七、启动集群
- cd /home/kingbase/cluster/mycluster/db/bin
- ./kingbase_monitor.sh restart
1.主备节点设置环境变量
验证集群
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。