当前位置:   article > 正文

Kingbase V8R3 命令行搭建集群

kingbase v8r3

一、安装环境准备

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执行)

  1. ssh root@192.168.1.50 cat /root/.ssh/id_rsa.pub >> authorized_keys
  2. ssh root@192.168.1.50 cat /home/kingbase/.ssh/id_rsa.pub >> authorized_keys
  3. ssh root@192.168.1.51 cat /root/.ssh/id_rsa.pub >> authorized_keys
  4. ssh root@192.168.1.51 cat /home/kingbase/.ssh/id_rsa.pub >> authorized_keys

2.2 在node1节点分发刚刚生成authorized_keys文件

  1. scp authorized_keys root@192.168.1.50:~/.ssh
  2. scp authorized_keys kingbase@192.168.1.50:~/.ssh
  3. scp authorized_keys root@192.168.1.51:~/.ssh
  4. scp authorized_keys kingbase@192.168.1.51:~/.ssh

2.3 修改authorized_keys文件权限(node1与node2执行)

  1. chmod 600 /root/.ssh/authorized_keys
  2. chmod 600 /home/kingbase/.ssh/authorized_keys

2.4 测试免密码登录

三、primary节点部署(node1节点)

1.创建目录

  1. mkdir /home/kingbase/cluster
  2. mkdir /home/kingbase/cluster/mycluster
  3. mkdir /home/kingbase/cluster/mycluster/archivedir
  4. mkdir -p /home/kingbase/cluster/mycluster/log/kingbasecluster
  5. mkdir -p /home/kingbase/cluster/mycluster/run/kingbasecluster
  6. 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到集群

创建软连接

  1. ln -s /home/kingbase/cluster/license_3701_0.dat /home/kingbase/cluster/mycluster/db/bin/license.dat
  2. chmod 766 /home/kingbase/cluster/mycluster/db/bin/license.dat

2.4 配置db etc下配置文件

2.4.1 HAmodule.conf

  1. CLUSTER_PATH="/home/kingbase/cluster/mycluster" #集群安装路径
  2. DEV="ens33" #指定网卡名称
  3. CMD_IP_PATH="/usr/sbin" #which ip --/usr/sbin/ip 程序路径
  4. CMD_ARPING_PATH="/usr/sbin"
  5. KB_GATEWAY_IP='192.168.1.1' #网关
  6. KB_LOCALHOST_IP="192.168.1.50" #本地ip
  7. SYNC_FLAG=1
  8. KB_VIP="192.168.1.60/24" #数据库vip
  9. KB_POOL_VIP="192.168.1.61" #cluster vip
  10. KB_POOL_PORT="9999"
  11. PCP_USER="kingbase"
  12. PCP_PASS="MTIzNDU2"
  13. KB_ETC_PATH="$CLUSTER_PATH/db/etc"
  14. KB_PATH="$CLUSTER_PATH/db/bin"
  15. KB_LD_PATH="$CLUSTER_PATH/db/lib"
  16. CLUSTER_BIN_PATH="$CLUSTER_PATH/kingbasecluster/bin"
  17. CLUSTER_LIB_PATH="$CLUSTER_PATH/kingbasecluster/lib"
  18. KB_DATA_PATH="$CLUSTER_PATH/db/data"
  19. KB_USER="SUPERMANAGER_V8ADMIN"
  20. KB_PASS="S0lOR0JBU0VBRE1JTg\=\="
  21. KB_DATANAME="TEST"
  22. KB_PORT="54321"
  23. KB_EXECUTE_SYS_USER="kingbase"
  24. RECOVERY_LOG_DIR="$CLUSTER_PATH//log/recovery.log"
  25. KB_CLUSTER_STATUS="$CLUSTER_PATH//log/pool_nodes"
  26. KB_ALL_IP=(192.168.1.50 192.168.1.51 ) #所有节点ip
  27. KB_POOL_IP1="192.168.1.50" #kbpool节点1
  28. KB_POOL_IP2="192.168.1.51" #kbpool节点2
  29. POOL_EXENAME="kingbasecluster"
  30. KINGBASECLUSTERSOCKET1="/tmp/.s.KINGBASE.9999"
  31. KINGBASECLUSTERSOCKET2="/tmp/.s.KINGBASE.9898"
  32. KINGBASECLUSTERSOCKET3="/tmp/.s.KINGBASECLUSTERWD_CMD.9000"
  33. KINGBASECLUSTERSOCKET4="/tmp/.s.KINGBASECLUSTERWD_CMD.9000.lock"
  34. CLUSTER_STAT_FILE="$CLUSTER_PATH/run/kingbasecluster/kingbasecluster_status"
  35. CLUSTER_LOG_PATH="$CLUSTER_PATH/log"
  36. CLUSTER_LOG_NAME="cluster.log"
  37. PING_TIMES="3"
  38. POOL_RESTART="$CLUSTER_PATH//log/cluster_restart.log"
  39. FAILOVER_LOG_DIR="$CLUSTER_PATH//log/failover.log"
  40. KB_POOL_EXECUTE_SYS_USER="root"
  41. CONNECTTIMEOUT=10
  42. HEALTH_CHECK_MAX_RETRIES=2
  43. HEALTH_CHECK_RETRY_DELAY=1
  44. AUTO_PRIMARY_RECOVERY=1
  45. ALL_NODE_NAME=(node1,node2) #所有节点
  46. NODE_NAME="node1" #当前节点

2.4.2 recovery.done

  1. standby_mode='on'
  2. primary_conninfo='port=54321 host=192.168.1.51 user=SYSTEM password=MTIzNDU2 application_name=node1'
  3. recovery_target_timeline='latest'
  4. primary_slot_name ='slot_node1'

2.4.3 kingbase.conf

  1. listen_addresses='*'
  2. port=54321
  3. max_connections=100
  4. shared_buffers=512MB
  5. max_prepared_transactions=100
  6. dynamic_shared_memory_type = posix
  7. shared_preload_libraries = 'sysaudit, passwordcheck'
  8. wal_level=replica
  9. fsync=on
  10. wal_log_hints=on
  11. archive_mode=on
  12. archive_dest='/home/kingbase/cluster/mycluster/archivedir/' ##集群归档位置
  13. max_wal_senders=4
  14. wal_keep_segments=256
  15. max_replication_slots=4
  16. synchronous_standby_names='1(node1,node2)'
  17. hot_standby=on
  18. hot_standby_feedback=on
  19. log_destination='csvlog'
  20. logging_collector = on
  21. log_directory='/home/kingbase/cluster/mycluster/db/data/sys_log/' #数据库日志路径
  22. log_timezone = 'PRC'
  23. timezone='PRC'
  24. timezone_abbreviations = 'Default'
  25. lc_messages = 'en_US.UTF-8'
  26. lc_monetary = 'en_US.UTF-8'
  27. lc_numeric = 'en_US.UTF-8'
  28. lc_time = 'en_US.UTF-8'
  29. 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软连接

  1. ln -s /home/kingbase/cluster/license_3701_0.dat /home/kingbase/cluster/mycluster/kingbasecluster/bin/license.dat
  2. chmod 766 /home/kingbase/cluster/mycluster/kingbasecluster/bin/license.dat

3.4 配置 kingbasecluster etc下配置文件

3.4.1 kingbasecluster.conf

  1. listen_addresses='*'
  2. port=9999
  3. socket_dir='/tmp'
  4. listen_backlog_multiplier=2
  5. serialize_accept=off
  6. pcp_listen_addresses='*'
  7. pcp_port=9898
  8. pcp_socket_dir='/tmp'
  9. backend_hostname0='192.168.1.50' #节点1
  10. backend_port0=54321 #端口
  11. backend_weight0=1
  12. backend_data_directory0='/home/kingbase/cluster/mycluster/db/data' #data目录
  13. backend_flag0='ALLOW_TO_FAILOVER'
  14. enable_cluster_hba=on
  15. cluster_passwd='cluster_passwd'
  16. authentication_timeout=60
  17. ssl=off
  18. num_init_children=16
  19. max_pool=4
  20. child_life_time=300
  21. child_max_connections=0
  22. connection_life_time=3
  23. client_idle_limit=0
  24. log_destination='stderr'
  25. log_line_prefix='%t: pid %p: '
  26. log_connections=off
  27. log_hostname=off
  28. log_statement=off
  29. log_per_node_statement=off
  30. log_standby_delay='none'
  31. syslog_facility='LOCAL0'
  32. syslog_ident='kingbasecluster'
  33. pid_file_name='/home/kingbase/cluster/mycluster/log/kingbasecluster/kingbasecluster.pid' #pid位置
  34. logdir='/home/kingbase/cluster/mycluster/run/kingbasecluster' #集群日志目录
  35. connection_cache=on
  36. reset_query_list='ABORT; DISCARD ALL'
  37. replication_mode=off
  38. replicate_select=off
  39. insert_lock=off
  40. lobj_lock_table=''
  41. replication_stop_on_mismatch=off
  42. failover_if_affected_tuples_mismatch=off
  43. load_balance_mode=on
  44. ignore_leading_white_space=on
  45. white_function_list=''
  46. black_function_list='nextval,setval,nextval,setval'
  47. database_redirect_preference_list=''
  48. app_name_redirect_preference_list=''
  49. allow_sql_comments=off
  50. master_slave_mode=on
  51. master_slave_sub_mode='stream'
  52. sr_check_period=0
  53. sr_check_user='SUPERMANAGER_V8ADMIN'
  54. sr_check_password='S0lOR0JBU0VBRE1JTg\=\='
  55. sr_check_database='TEMPLATE2'
  56. delay_threshold=0
  57. follow_master_command=''
  58. health_check_period='1'
  59. health_check_timeout=120
  60. health_check_user='SUPERMANAGER_V8ADMIN'
  61. health_check_password='S0lOR0JBU0VBRE1JTg\=\='
  62. health_check_database='TEMPLATE2'
  63. health_check_max_retries=2
  64. health_check_retry_delay=1
  65. connect_timeout='2000'
  66. failover_command='/home/kingbase/cluster/mycluster/kingbasecluster/bin/failover_stream.sh %H %P %d %h %O %m %M %D' # failover脚本命令
  67. failback_command=''
  68. fail_over_on_backend_error='off'
  69. search_primary_node_timeout=10
  70. recovery_user='SUPERMANAGER_V8ADMIN'
  71. recovery_password='S0lOR0JBU0VBRE1JTg\=\='
  72. recovery_1st_stage_command=''
  73. recovery_2nd_stage_command=''
  74. recovery_timeout=90
  75. client_idle_limit_in_recovery=0
  76. use_watchdog=on
  77. trusted_servers='192.168.1.1' #网关
  78. ping_path='/bin'
  79. wd_hostname='192.168.1.50' #watchdog本地节点
  80. wd_port=9000
  81. wd_priority=3
  82. wd_authkey='S0lOR0JBU0VBRE1JTg\=\='
  83. wd_ipc_socket_dir='/tmp'
  84. delegate_IP='192.168.1.61' #集群vip
  85. if_cmd_path='/usr/sbin'
  86. if_up_cmd='ip addr add 192.168.1.61/24 dev ens33 label ens33:0' #集群vip 及对应绑定网卡
  87. if_down_cmd='ip addr del 192.168.1.61/24 dev ens33' #集群vip 及对应绑定网卡
  88. arping_path='/usr/sbin'
  89. arping_cmd='arping -U 192.168.1.61 -I ens33 -w 1 -c 1' #集群vip 及对应绑定网卡
  90. clear_memqcache_on_escalation=on
  91. wd_escalation_command=''
  92. wd_de_escalation_command=''
  93. wd_monitoring_interfaces_list=''
  94. wd_lifecheck_method='heartbeat'
  95. wd_interval='1'
  96. wd_heartbeat_port=9694
  97. wd_heartbeat_keepalive='1'
  98. wd_heartbeat_deadtime='3'
  99. heartbeat_destination0='192.168.1.51' #要检测的其他节点
  100. heartbeat_destination_port0=9694
  101. heartbeat_device0='ens33' #网卡设备
  102. wd_life_point=3
  103. wd_lifecheck_query='SELECT 1'
  104. wd_lifecheck_dbname='TEMPLATE2'
  105. wd_lifecheck_user='SUPERMANAGER_V8ADMIN'
  106. wd_lifecheck_password='S0lOR0JBU0VBRE1JTg\=\='
  107. other_kingbasecluster_hostname0='192.168.1.51' #集群的其他节点
  108. other_kingbasecluster_port0='9999'
  109. other_wd_port0=9000
  110. relcache_expire=0
  111. relcache_size=256
  112. check_temp_table=on
  113. check_unlogged_table=on
  114. memory_cache_enabled=off
  115. memqcache_method='shmem'
  116. memqcache_memcached_host='localhost'
  117. memqcache_memcached_port=11211
  118. memqcache_total_size=67108864
  119. memqcache_max_num_cache=1000000
  120. memqcache_expire=0
  121. memqcache_auto_cache_invalidation=on
  122. memqcache_maxcache=409600
  123. memqcache_cache_block_size=1048576
  124. memqcache_oiddir='/home/kingbase/cluster/mycluster/log/kingbasecluster/oiddir'
  125. white_memqcache_table_list=''
  126. black_memqcache_table_list=''
  127. backend_hostname1='192.168.1.51' #集群的其他节点
  128. backend_port1=54321 #端口
  129. backend_weight1=1
  130. 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

  1. local all all md5
  2. # IPv4 local connections:
  3. host all all 127.0.0.1/32 md5
  4. host all all 192.168.8.0/24 md5
  5. host all all 0.0.0.0/0 md5
  6. host all all ::1/128 md5
  7. host all all 192.168.1.50/16 md5

3.4.4 cluster_passwd (以下为命令行执行)

  1. cd /home/kingbase/cluster/mycluster/kingbasecluster/bin
  2. ./sys_md5 -f ../etc/kingbasecluster.conf -u SUPERMANAGER_V8ADMIN -m KINGBASEADMIN
  3. enc=`./sys_md5 123456SYSTEM`
  4. echo "SYSTEM:md5$enc" >> /home/kingbase/cluster/mycluster/kingbasecluster/etc/cluster_passwd

3.4.5 HAmodule.conf

  1. CLUSTER_PATH="/home/kingbase/cluster/mycluster" #集群位置
  2. DEV="ens33" #网卡名称
  3. CMD_IP_PATH="/usr/sbin"
  4. CMD_ARPING_PATH="/usr/sbin"
  5. KB_GATEWAY_IP='192.168.1.1' #网关
  6. KB_LOCALHOST_IP="192.168.1.50" #本机ip
  7. SYNC_FLAG=1
  8. KB_VIP="192.168.1.60/24" #db vip
  9. KB_POOL_VIP="192.168.1.61" # cluster vip
  10. KB_POOL_PORT="9999"
  11. PCP_USER="kingbase"
  12. PCP_PASS="MTIzNDU2"
  13. KB_ETC_PATH="$CLUSTER_PATH/db/etc"
  14. KB_PATH="$CLUSTER_PATH/db/bin"
  15. KB_LD_PATH="$CLUSTER_PATH/db/lib"
  16. CLUSTER_BIN_PATH="$CLUSTER_PATH/kingbasecluster/bin"
  17. CLUSTER_LIB_PATH="$CLUSTER_PATH/kingbasecluster/lib"
  18. KB_DATA_PATH="$CLUSTER_PATH/db/data"
  19. KB_USER="SUPERMANAGER_V8ADMIN"
  20. KB_PASS="S0lOR0JBU0VBRE1JTg\=\="
  21. KB_DATANAME="TEST"
  22. KB_PORT="54321"
  23. KB_EXECUTE_SYS_USER="kingbase"
  24. RECOVERY_LOG_DIR="$CLUSTER_PATH//log/recovery.log"
  25. KB_CLUSTER_STATUS="$CLUSTER_PATH//log/pool_nodes"
  26. KB_ALL_IP=(192.168.1.50 192.168.1.51 ) #所有节点ip
  27. KB_POOL_IP1="192.168.1.50" #cluster节点1
  28. KB_POOL_IP2="192.168.1.51" #cluster节点2
  29. POOL_EXENAME="kingbasecluster"
  30. KINGBASECLUSTERSOCKET1="/tmp/.s.KINGBASE.9999"
  31. KINGBASECLUSTERSOCKET2="/tmp/.s.KINGBASE.9898"
  32. KINGBASECLUSTERSOCKET3="/tmp/.s.KINGBASECLUSTERWD_CMD.9000"
  33. KINGBASECLUSTERSOCKET4="/tmp/.s.KINGBASECLUSTERWD_CMD.9000.lock"
  34. CLUSTER_STAT_FILE="$CLUSTER_PATH/run/kingbasecluster/kingbasecluster_status"
  35. CLUSTER_LOG_PATH="$CLUSTER_PATH/log"
  36. CLUSTER_LOG_NAME="cluster.log"
  37. PING_TIMES="3"
  38. POOL_RESTART="$CLUSTER_PATH//log/cluster_restart.log"
  39. FAILOVER_LOG_DIR="$CLUSTER_PATH//log/failover.log"
  40. KB_POOL_EXECUTE_SYS_USER="root"
  41. CONNECTTIMEOUT=10
  42. HEALTH_CHECK_MAX_RETRIES=2
  43. HEALTH_CHECK_RETRY_DELAY=1
  44. AUTO_PRIMARY_RECOVERY=1
  45. ALL_NODE_NAME=(node1,node2) #所有节点
  46. NODE_NAME="node1" #当前节点

4.初始化主节点数据库

  1. cd /home/kingbase/cluster/mycluster/db/bin/
  2. ./initdb -D ../data -USYSTEM -W123456 --case-insensitive

四、standby节点部署(node2节点)

1.创建目录

  1. mkdir /home/kingbase/cluster
  2. mkdir /home/kingbase/cluster/mycluster
  3. mkdir /home/kingbase/cluster/mycluster/archivedir
  4. mkdir -p /home/kingbase/cluster/mycluster/log/kingbasecluster
  5. mkdir -p /home/kingbase/cluster/mycluster/run/kingbasecluster
  6. 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到集群

创建软连接

  1. ln -s /home/kingbase/cluster/license_3701_0.dat /home/kingbase/cluster/mycluster/db/bin/license.dat
  2. chmod 766 /home/kingbase/cluster/mycluster/db/bin/license.dat

2.4 配置db etc下配置文件

2.4.1 HAmodule.conf

  1. CLUSTER_PATH="/home/kingbase/cluster/mycluster" #集群安装路径
  2. DEV="ens33" #指定网卡名称
  3. CMD_IP_PATH="/usr/sbin" #which ip --/usr/sbin/ip 程序路径
  4. CMD_ARPING_PATH="/usr/sbin"
  5. KB_GATEWAY_IP='192.168.1.1' #网关
  6. KB_LOCALHOST_IP="192.168.1.51" #本地ip
  7. SYNC_FLAG=1
  8. KB_VIP="192.168.1.60/24" #数据库vip
  9. KB_POOL_VIP="192.168.1.61" #cluster vip
  10. KB_POOL_PORT="9999"
  11. PCP_USER="kingbase"
  12. PCP_PASS="MTIzNDU2"
  13. KB_ETC_PATH="$CLUSTER_PATH/db/etc"
  14. KB_PATH="$CLUSTER_PATH/db/bin"
  15. KB_LD_PATH="$CLUSTER_PATH/db/lib"
  16. CLUSTER_BIN_PATH="$CLUSTER_PATH/kingbasecluster/bin"
  17. CLUSTER_LIB_PATH="$CLUSTER_PATH/kingbasecluster/lib"
  18. KB_DATA_PATH="$CLUSTER_PATH/db/data"
  19. KB_USER="SUPERMANAGER_V8ADMIN"
  20. KB_PASS="S0lOR0JBU0VBRE1JTg\=\="
  21. KB_DATANAME="TEST"
  22. KB_PORT="54321"
  23. KB_EXECUTE_SYS_USER="kingbase"
  24. RECOVERY_LOG_DIR="$CLUSTER_PATH//log/recovery.log"
  25. KB_CLUSTER_STATUS="$CLUSTER_PATH//log/pool_nodes"
  26. KB_ALL_IP=(192.168.1.50 192.168.1.51 ) #所有节点ip
  27. KB_POOL_IP1="192.168.1.50" #kbpool节点1
  28. KB_POOL_IP2="192.168.1.51" #kbpool节点2
  29. POOL_EXENAME="kingbasecluster"
  30. KINGBASECLUSTERSOCKET1="/tmp/.s.KINGBASE.9999"
  31. KINGBASECLUSTERSOCKET2="/tmp/.s.KINGBASE.9898"
  32. KINGBASECLUSTERSOCKET3="/tmp/.s.KINGBASECLUSTERWD_CMD.9000"
  33. KINGBASECLUSTERSOCKET4="/tmp/.s.KINGBASECLUSTERWD_CMD.9000.lock"
  34. CLUSTER_STAT_FILE="$CLUSTER_PATH/run/kingbasecluster/kingbasecluster_status"
  35. CLUSTER_LOG_PATH="$CLUSTER_PATH/log"
  36. CLUSTER_LOG_NAME="cluster.log"
  37. PING_TIMES="3"
  38. POOL_RESTART="$CLUSTER_PATH//log/cluster_restart.log"
  39. FAILOVER_LOG_DIR="$CLUSTER_PATH//log/failover.log"
  40. KB_POOL_EXECUTE_SYS_USER="root"
  41. CONNECTTIMEOUT=10
  42. HEALTH_CHECK_MAX_RETRIES=2
  43. HEALTH_CHECK_RETRY_DELAY=1
  44. AUTO_PRIMARY_RECOVERY=1
  45. ALL_NODE_NAME=(node1,node2) #所有节点
  46. NODE_NAME="node2" #当前节点

2.4.2 recovery.done

  1. standby_mode='on'
  2. primary_conninfo='port=54321 host=192.168.1.50 user=SYSTEM password=MTIzNDU2 application_name=node2'
  3. recovery_target_timeline='latest'
  4. primary_slot_name ='slot_node2'

2.4.3 kingbase.conf

  1. listen_addresses='*'
  2. port=54321
  3. max_connections=100
  4. shared_buffers=512MB
  5. max_prepared_transactions=100
  6. dynamic_shared_memory_type = posix
  7. shared_preload_libraries = 'sysaudit, passwordcheck'
  8. wal_level=replica
  9. fsync=on
  10. wal_log_hints=on
  11. archive_mode=on
  12. archive_dest='/home/kingbase/cluster/mycluster/archivedir/' ##集群归档位置
  13. max_wal_senders=4
  14. wal_keep_segments=256
  15. max_replication_slots=4
  16. synchronous_standby_names='1(node1,node2)'
  17. hot_standby=on
  18. hot_standby_feedback=on
  19. log_destination='csvlog'
  20. logging_collector = on
  21. log_directory='/home/kingbase/cluster/mycluster/db/data/sys_log/' #数据库日志路径
  22. log_timezone = 'PRC'
  23. timezone='PRC'
  24. timezone_abbreviations = 'Default'
  25. lc_messages = 'en_US.UTF-8'
  26. lc_monetary = 'en_US.UTF-8'
  27. lc_numeric = 'en_US.UTF-8'
  28. lc_time = 'en_US.UTF-8'
  29. 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软连接

  1. ln -s /home/kingbase/cluster/license_3701_0.dat /home/kingbase/cluster/mycluster/kingbasecluster/bin/license.dat
  2. chmod 766 /home/kingbase/cluster/mycluster/kingbasecluster/bin/license.dat

3.4 配置 kingbasecluster etc下配置文件

3.4.1 kingbasecluster.conf

  1. listen_addresses='*'
  2. port=9999
  3. socket_dir='/tmp'
  4. listen_backlog_multiplier=2
  5. serialize_accept=off
  6. pcp_listen_addresses='*'
  7. pcp_port=9898
  8. pcp_socket_dir='/tmp'
  9. backend_hostname0='192.168.1.50' #节点1
  10. backend_port0=54321 #端口
  11. backend_weight0=1
  12. backend_data_directory0='/home/kingbase/cluster/mycluster/db/data' #data目录
  13. backend_flag0='ALLOW_TO_FAILOVER'
  14. enable_cluster_hba=on
  15. cluster_passwd='cluster_passwd'
  16. authentication_timeout=60
  17. ssl=off
  18. num_init_children=16
  19. max_pool=4
  20. child_life_time=300
  21. child_max_connections=0
  22. connection_life_time=3
  23. client_idle_limit=0
  24. log_destination='stderr'
  25. log_line_prefix='%t: pid %p: '
  26. log_connections=off
  27. log_hostname=off
  28. log_statement=off
  29. log_per_node_statement=off
  30. log_standby_delay='none'
  31. syslog_facility='LOCAL0'
  32. syslog_ident='kingbasecluster'
  33. pid_file_name='/home/kingbase/cluster/mycluster/log/kingbasecluster/kingbasecluster.pid' #pid位置
  34. logdir='/home/kingbase/cluster/mycluster/run/kingbasecluster' #集群日志目录
  35. connection_cache=on
  36. reset_query_list='ABORT; DISCARD ALL'
  37. replication_mode=off
  38. replicate_select=off
  39. insert_lock=off
  40. lobj_lock_table=''
  41. replication_stop_on_mismatch=off
  42. failover_if_affected_tuples_mismatch=off
  43. load_balance_mode=on
  44. ignore_leading_white_space=on
  45. white_function_list=''
  46. black_function_list='nextval,setval,nextval,setval'
  47. database_redirect_preference_list=''
  48. app_name_redirect_preference_list=''
  49. allow_sql_comments=off
  50. master_slave_mode=on
  51. master_slave_sub_mode='stream'
  52. sr_check_period=0
  53. sr_check_user='SUPERMANAGER_V8ADMIN'
  54. sr_check_password='S0lOR0JBU0VBRE1JTg\=\='
  55. sr_check_database='TEMPLATE2'
  56. delay_threshold=0
  57. follow_master_command=''
  58. health_check_period='1'
  59. health_check_timeout=120
  60. health_check_user='SUPERMANAGER_V8ADMIN'
  61. health_check_password='S0lOR0JBU0VBRE1JTg\=\='
  62. health_check_database='TEMPLATE2'
  63. health_check_max_retries=2
  64. health_check_retry_delay=1
  65. connect_timeout='2000'
  66. failover_command='/home/kingbase/cluster/mycluster/kingbasecluster/bin/failover_stream.sh %H %P %d %h %O %m %M %D' # failover脚本命令
  67. failback_command=''
  68. fail_over_on_backend_error='off'
  69. search_primary_node_timeout=10
  70. recovery_user='SUPERMANAGER_V8ADMIN'
  71. recovery_password='S0lOR0JBU0VBRE1JTg\=\='
  72. recovery_1st_stage_command=''
  73. recovery_2nd_stage_command=''
  74. recovery_timeout=90
  75. client_idle_limit_in_recovery=0
  76. use_watchdog=on
  77. trusted_servers='192.168.1.1' #网关
  78. ping_path='/bin'
  79. wd_hostname='192.168.1.51' #watchdog本地节点
  80. wd_port=9000
  81. wd_priority=3
  82. wd_authkey='S0lOR0JBU0VBRE1JTg\=\='
  83. wd_ipc_socket_dir='/tmp'
  84. delegate_IP='192.168.1.61' #集群vip
  85. if_cmd_path='/usr/sbin'
  86. if_up_cmd='ip addr add 192.168.1.61/24 dev ens33 label ens33:0' #集群vip 及对应绑定网卡
  87. if_down_cmd='ip addr del 192.168.1.61/24 dev ens33' #集群vip 及对应绑定网卡
  88. arping_path='/usr/sbin'
  89. arping_cmd='arping -U 192.168.1.61 -I ens33 -w 1 -c 1' #集群vip 及对应绑定网卡
  90. clear_memqcache_on_escalation=on
  91. wd_escalation_command=''
  92. wd_de_escalation_command=''
  93. wd_monitoring_interfaces_list=''
  94. wd_lifecheck_method='heartbeat'
  95. wd_interval='1'
  96. wd_heartbeat_port=9694
  97. wd_heartbeat_keepalive='1'
  98. wd_heartbeat_deadtime='3'
  99. heartbeat_destination0='192.168.1.50' #要检测的其他节点
  100. heartbeat_destination_port0=9694
  101. heartbeat_device0='ens33' #网卡设备
  102. wd_life_point=3
  103. wd_lifecheck_query='SELECT 1'
  104. wd_lifecheck_dbname='TEMPLATE2'
  105. wd_lifecheck_user='SUPERMANAGER_V8ADMIN'
  106. wd_lifecheck_password='S0lOR0JBU0VBRE1JTg\=\='
  107. other_kingbasecluster_hostname0='192.168.1.50' #集群的其他节点
  108. other_kingbasecluster_port0='9999'
  109. other_wd_port0=9000
  110. relcache_expire=0
  111. relcache_size=256
  112. check_temp_table=on
  113. check_unlogged_table=on
  114. memory_cache_enabled=off
  115. memqcache_method='shmem'
  116. memqcache_memcached_host='localhost'
  117. memqcache_memcached_port=11211
  118. memqcache_total_size=67108864
  119. memqcache_max_num_cache=1000000
  120. memqcache_expire=0
  121. memqcache_auto_cache_invalidation=on
  122. memqcache_maxcache=409600
  123. memqcache_cache_block_size=1048576
  124. memqcache_oiddir='/home/kingbase/cluster/mycluster/log/kingbasecluster/oiddir'
  125. white_memqcache_table_list=''
  126. black_memqcache_table_list=''
  127. backend_hostname1='192.168.1.51'
  128. backend_port1=54321 #端口
  129. backend_weight1=1
  130. 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

  1. local all all md5
  2. # IPv4 local connections:
  3. host all all 127.0.0.1/32 md5
  4. host all all 192.168.8.0/24 md5
  5. host all all 0.0.0.0/0 md5
  6. host all all ::1/128 md5
  7. host all all 192.168.1.50/16 md5

3.4.4 cluster_passwd (以下为命令行执行)

  1. cd /home/kingbase/cluster/mycluster/kingbasecluster/bin
  2. ./sys_md5 -f ../etc/kingbasecluster.conf -u SUPERMANAGER_V8ADMIN -m KINGBASEADMIN
  3. enc=`./sys_md5 123456SYSTEM`
  4. echo "SYSTEM:md5$enc" >> /home/kingbase/cluster/mycluster/kingbasecluster/etc/cluster_passwd

3.4.5 HAmodule.conf

  1. CLUSTER_PATH="/home/kingbase/cluster/mycluster" #集群位置
  2. DEV="ens33" #网卡名称
  3. CMD_IP_PATH="/usr/sbin"
  4. CMD_ARPING_PATH="/usr/sbin"
  5. KB_GATEWAY_IP='192.168.1.1' #网关
  6. KB_LOCALHOST_IP="192.168.1.51" #本机ip
  7. SYNC_FLAG=1
  8. KB_VIP="192.168.1.60/24" #db vip
  9. KB_POOL_VIP="192.168.1.61" # cluster vip
  10. KB_POOL_PORT="9999"
  11. PCP_USER="kingbase"
  12. PCP_PASS="MTIzNDU2"
  13. KB_ETC_PATH="$CLUSTER_PATH/db/etc"
  14. KB_PATH="$CLUSTER_PATH/db/bin"
  15. KB_LD_PATH="$CLUSTER_PATH/db/lib"
  16. CLUSTER_BIN_PATH="$CLUSTER_PATH/kingbasecluster/bin"
  17. CLUSTER_LIB_PATH="$CLUSTER_PATH/kingbasecluster/lib"
  18. KB_DATA_PATH="$CLUSTER_PATH/db/data"
  19. KB_USER="SUPERMANAGER_V8ADMIN"
  20. KB_PASS="S0lOR0JBU0VBRE1JTg\=\="
  21. KB_DATANAME="TEST"
  22. KB_PORT="54321"
  23. KB_EXECUTE_SYS_USER="kingbase"
  24. RECOVERY_LOG_DIR="$CLUSTER_PATH//log/recovery.log"
  25. KB_CLUSTER_STATUS="$CLUSTER_PATH//log/pool_nodes"
  26. KB_ALL_IP=(192.168.1.50 192.168.1.51 ) #所有节点ip
  27. KB_POOL_IP1="192.168.1.50" #cluster节点1
  28. KB_POOL_IP2="192.168.1.51" #cluster节点2
  29. POOL_EXENAME="kingbasecluster"
  30. KINGBASECLUSTERSOCKET1="/tmp/.s.KINGBASE.9999"
  31. KINGBASECLUSTERSOCKET2="/tmp/.s.KINGBASE.9898"
  32. KINGBASECLUSTERSOCKET3="/tmp/.s.KINGBASECLUSTERWD_CMD.9000"
  33. KINGBASECLUSTERSOCKET4="/tmp/.s.KINGBASECLUSTERWD_CMD.9000.lock"
  34. CLUSTER_STAT_FILE="$CLUSTER_PATH/run/kingbasecluster/kingbasecluster_status"
  35. CLUSTER_LOG_PATH="$CLUSTER_PATH/log"
  36. CLUSTER_LOG_NAME="cluster.log"
  37. PING_TIMES="3"
  38. POOL_RESTART="$CLUSTER_PATH//log/cluster_restart.log"
  39. FAILOVER_LOG_DIR="$CLUSTER_PATH//log/failover.log"
  40. KB_POOL_EXECUTE_SYS_USER="root"
  41. CONNECTTIMEOUT=10
  42. HEALTH_CHECK_MAX_RETRIES=2
  43. HEALTH_CHECK_RETRY_DELAY=1
  44. AUTO_PRIMARY_RECOVERY=1
  45. ALL_NODE_NAME=(node1,node2) #所有节点
  46. NODE_NAME="node2" #当前节点

4. 备机操作克隆

4.1 主库(node1)sys_hba.conf添加如下

  1. host all SYSTEM 192.168.1.50/16 md5
  2. host replication SYSTEM 192.168.1.50/16 md5
  3. host all SYSTEM 192.168.1.51/16 md5
  4. host replication SYSTEM 192.168.0.231/16 md5

4.2 主库(node1)将db/etc/kingbase.conf内容添加到data/kingbase.conf中

4.3 启动主库(node1)

  1. cd /home/kingbase/cluster/mycluster/db/bin
  2. ./sys_ctl start -D /home/kingbase/cluster/mycluster/db/data

4.4 备机(node2)执行克隆操作

  1. cd /home/kingbase/cluster/mycluster/db/bin
  2. ./sys_basebackup -Fp -X stream -v -P -h192.168.1.50 -USYSTEM -W123456 -D ../data

5.配置db/data/下的recovery.conf

  1. standby_mode='on'
  2. primary_conninfo='port=54321 host=192.168.1.50 user=SYSTEM password=MTIzNDU2 application_name=node2'
  3. recovery_target_timeline='latest'
  4. primary_slot_name ='slot_node2'

五、创建复制槽

主节点备节点分别执行

  1. select * from sys_create_physical_replication_slot('slot_node1');
  2. select * from sys_create_physical_replication_slot('slot_node2');

六、添加定时

主备节点分别创建定时文件/etc/cron.d/KINGBASECRON,内容如下

  1. */1 * * * * kingbase /home/kingbase/cluster/mycluster/db/bin/network_rewind.sh
  2. #*/1 * * * * root /home/kingbase/cluster/mycluster/kingbasecluster/bin/restartcluster.sh

七、启动集群

  1. cd /home/kingbase/cluster/mycluster/db/bin
  2. ./kingbase_monitor.sh restart

1.主备节点设置环境变量

验证集群

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/980339
推荐阅读
相关标签
  

闽ICP备14008679号