db_ha集群配置文件参数含义详解

Posted 瀚高PG实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了db_ha集群配置文件参数含义详解相关的知识,希望对你有一定的参考价值。

瀚高数据库
目录
环境
文档用途
详细信息

环境
系统平台:N/A
版本:4.5.6,4.5.7,6.0
文档用途
本文章详细介绍了db_ha高可用集群各参数的含义。

本篇文章以db_ha v4.1.1版本为例介绍。

详细信息
1、primary_monitor的配置文件

1)block_repair_switch = off  
 #块修复开关
2)block_repair_path_file = /usr/local/db_ha/log/special_block_repair.tmp 
 #块修复所需的文件名及其全路径;这两个参数是配合瀚高数据库块修复功能使用。建议配置在空间比较大的目录中,并确保相关用户有读写权限。
3)command_repeat_count = 5 
 #执行失败的操作(数据库启动、停止,重启或者promate等操作)重复执行数
4)daemon_server_port = 8000 
 #主监控监听端口号。如有在同一台机器上安装多套集群的情况,每套配置文件的值不可重复;建议每套配置文件使用专门日志目录以对日志加以区别。
5)monitor_cycle_time = 3 
 #primary_monitor 循环一周期的时间,单位秒(循环一周期指primary monitor检测agent、数据库状态、失效节点回归等的周期)
6)secondary_max_delay = 4 
 #secondary_montior 最大延迟周期数 

#primary失去secondary连接最大延迟周期个数(monitor_cycle_time的值定义循环一个周期的所需时间)。

#超过此周期个数,并且自动拉起secondary_monitor开关打开的话,会寻找合适节点拉起secondary_monitor。
7)max_async_delay = 5 
 #异步流复制延迟最大值(超过此值报警),单位M    

#报警就是打印warning log。异步流复制超过5M,并且replication_failure_standby_delete为on,则剔除该备节点。
8)log_path = /usr/local/db_ha/log 
 #日志文件路径
9)replication_failure_standby_delete = on 
 #流复制失败是否剔除集群 
10)failure_node_monitored = on   
  #failure_node_monitored = on/off 此选项控制monitor对于程序自动剔除的节点是否继续监控,on为继续监控,off为不在监控。

 #通过db_ha手动删除的节点不会被监控。
11)failure_node_polling_interval = 5    
  #此选项控制monitor每多少个循环周期检查一次失效节点,在failure_node_monitored配置打开后生效。
12)node_restart_times = 3   
  #此选项控制主节点发生故障后,monitor通知agent重新拉起主节点的重复次数,超过此次数再进行切换。
13)user_input_switch = off  
  #可选值:sql/sh/all/off;此选项控制在发生failover或switchover新主提升成功绑定VIP前,是否需要执行一些指令,all表示需要执行shell和sql指令,sh表示只执行shell指令,sql表示只执行sql指令,off表示不执行指令。
14)user_input_sql = none  
  #此选项可配置一条sql指令,需注意sql指令要在双引号内。比如:user_input_sql = "select * from test01"
15)user_input_shell = none 
  #此选项可配置一个shell的路径及文件。比如:user_input_shell = /home/wangb/pghig/ha/pgmanager/pg_monitor/test.sh
16)new_node_streaming_replication_waiting_time = 60   
  #此选项表示新加入集群的节点或新回归集群节点的流复制即使超出设定值(max_async_delay)也不会立即剔除节点,在等待该配置值(单位秒)后,才会剔除。

 #如果,新加入的节点如若因为数据量较大,导致在此参数设置的时间范围内没有完成同步,异步流复制超过5M,并且replication_failure_standby_delete为on,则剔除该备节点。
17)method_sync = FIRST  
  #此选项可选择填写FIRST、ANY、EMPTY用来控制synchronous_standby_names参数的同步方法
18)num_sync = 2         
  #此选项用来控制synchronous_standby_names的同步个数

  #用户修改method_sync、num_sync时,会对应修改synchronous_standby_names。如设置method_sync = FIRST和num_sync = 2,对应的参数为synchronous_standby_names = 'FIRST 2 (XX,XX)'。
19)log_level_info_file = LOG_INFO   
  #日志等级达到log_level_into_file的会写入日志文件。

 #日志等级可以设置为:LOG_TRACE(痕迹), LOG_DEBUG(调试), LOG_INFO(信息), LOG_WARN(警告), LOG_ERROR(错误), LOG_FATAL(严重);等级从低到高,日志等级设置越高打印的东西就越少,例如设置成为LOG_FATAL就只会打印严重的错误信息。
20)log_level_on_screen = LOG_ERROR  
  #日志等级达到log_level_into_file的会显示在命令行。

 #日志等级可以设置为:LOG_TRACE(痕迹), LOG_DEBUG(调试), LOG_INFO(信息), LOG_WARN(警告), LOG_ERROR(错误), LOG_FATAL(严重);等级从低到高,日志等级设置越高打印的东西就越少,例如设置成为LOG_FATAL就只会打印严重的错误信息。
21)db_restart_timeout = 10          
  #控制重启数据库的超时时间(单位秒) (不是agent等待10s后才尝试启动数据库,数据库服务异常后agent会立即尝试重启数据库。此参数控制primary连接agent,请求agent做数据库重启动作时,socket超时时间。如果socket超时时间大于10s,会不会尝试重启数据库,需要看有没有用到command_repeat_count参数;如果用了就会重启,否则不会。) 
22)db_rewind_timeout = 20           
  #数据库rewind超时时间(单位秒)。让primary_monitor等待指定的时间(参数设定为20秒),若在该时间内完成了指定的rewind操作,则会在原地进行后续操作。否则超时后,节点未完成指定的操作,其状态会被判定为不健康,等待该节点rewind成功后,高可用会自动判定为健康。

 #如果在该参数设置时间范围内完成了所有的操作(rewind后数据库已正常启动,且流复制状态正常),此时集群状态中也显示为健康。
23)arbitration_judge = on           
  #控制外部ping点开关;当集群只有两个数据库节点,并且主监控在其中一个节点上,当两个节点中有一个节点离网,剩下的节点无法判断是否是自身问题,如果配置外部ping点,可以依据是否ping通外部ping点再做相应处理。(ping通则表示当前节点无问题,继续正常流程,ping不通,打印报警日志,退出主监控)。

 #三节点及以上节点个数的集群,配置外部ping点,可实现使用操作系统service方式自动拉起primary monitor功能。

 #注意:ping点的稳定性必须需要有严格的保障(建议设置成网关的IP),且monitor必须能够ping通。
24)arbitration_ip = 192.168.31.40   
  #外ping的ip,一定要能ping通的;建议设置成网关或应用服务器IP地址。
25)auto_start_new_secondary = on    
  #是否开启secondary monitor自动拉起功能。

#Node information – 主节点信息为必填项(主节点一般为node1,将如下参数中的X改为1即可)

26)nodeX_nodetype = PRIMARY
  #节点类型:PRIMARY(主节点)、STANDBY(备节点),X表示数字
27)nodeX_nodeip = 192.168.31.67 
  #节点物理ip
28)nodeX_dbname = postgres 
  #连接数据库用的dbname
29)nodeX_applicationname = node1 
  #节点的复制名(用于流复制)
30)nodeX_username = postgres 
  #连接节点用的数据库用户名
31)nodeX_streaming = NONE 
  #节点的流复制类型(主节点填 NONE,同步填 SYNC,异步填 ASYNC)
32)nodeX_nodeport = 5432 
  #节点的数据库监听端口号
33)nodeX_agentport = 6666 
  #节点的 agent 端口号
34)nodeX_healthy = t 
  #节点状态 t健康 f不健康
35)nodeX_vip_num = 1 
  #节点 VIP 个数
36)nodeX_vipX = 192.168.90.10 
  #节点X的第X个VIP

#Node information – 集群中所有备节点的信息也需要填写,比如节点2(备节点)信息如下,参数含义参考如上:

37)node2_nodetype = STANDBY

(38)node2_nodeip = 192.168.80.11239)node2_dbname = highgo

(40)node2_applicationname = node2

(41)node2_username = highgo

(42)node2_streaming = ASYNC

(43)node2_nodeport = 543241)node2_agentport = 666645)node2_healthy = t

如有其它备节点,按照节点2参数添加即可。

2、secondary_monitor.conf配置文件

1)log_path = /usr/local/db_ha/log	
 #用于存放日志的目录
2)primary_monitor_ip = 192.168.31.67	
 #primary_monitor 的IP地址
3)primary_monitor_port = 8000			
 #primary_monitor 的监听端口号。

#如有在同一台机器上安装多套集群的情况,每套配置文件的值不可重复;建议每套配置文件使用专门日志目录以对日志加以区别。
4)primary_monitor_fail_count_max = 3	
 #探测primary_monitor失败多少次后启动在本地启动监控。 

#多长时间探测一次由check_interval(秒)参数设定,超过primary_monitor_fail_count_max * check_interval时间还连不上primary_monitor, 则secondary_monitor提升为primary_monitor。
5)primary_monitor_path = /usr/local/db_ha/bin/primary_monitor	
 #本地primary_monitor程序的路径。
6)primary_monitor_conf_path =/usr/local/db_ha/conf/primary_monitor.conf  
 #本地primary_monitor配置文件的路径。
7)primary_monitor_log_path = /usr/local/db_ha/log	
 #本地primary_monitor的日志。
8)check_interval = 10     
 #配合primary_monitor_fail_count_max使用;单位:秒。
9)log_level_into_file = LOG_INFO       
 #日志等级达到log_level_into_file的会写入日志文件。

#日志等级可以设置为:LOG_TRACE(痕迹), LOG_DEBUG(调试), LOG_INFO(信息), LOG_WARN(警告), LOG_ERROR(错误), LOG_FATAL(严重);等级从低到高,日志等级设置越高打印的东西就越少,例如设置成为LOG_FATAL就只会打印严重的错误信息。
10)log_level_on_screen = LOG_FATAL      
 #日志等级达到log_level_into_file的会显示在命令行。

#日志等级可以设置为:LOG_TRACE(痕迹), LOG_DEBUG(调试), LOG_INFO(信息), LOG_WARN(警告), LOG_ERROR(错误), LOG_FATAL(严重);等级从低到高,日志等级设置越高打印的东西就越少,例如设置成为LOG_FATAL就只会打印严重的错误信息。

3、agent.conf配置文件

1)listen_port = 6666       
 #agent 的监听端口。如有在同一台机器上安装多套集群的情况,每套配置文件的值不可重复;建议每套配置文件使用专门日志目录以对日志加以区别。
2)local_pg_path = /opt/hgdb/data		   	
 #本机数据库的数据目录
3)pg_connect_timeout = 60					
 #连接数据库时的超时时间(用于通过libpq连接数据库,当数据库连不上时,60s之内连不上会返回。)
4)network_card_for_vip = ens33			
 #服务器上用于绑定vip的网卡
5)log_path = /usr/local/db_ha/agent_log			
 #agent 用于存放日志的目录
6)log_level_into_file = LOG_INFO            
 #日志等级达到log_level_into_file的会写入日志文件。

#日志等级可以设置为:LOG_TRACE(痕迹), LOG_DEBUG(调试), LOG_INFO(信息), LOG_WARN(警告), LOG_ERROR(错误), LOG_FATAL(严重);等级从低到高,日志等级设置越高打印的东西就越少,例如设置成为LOG_FATAL就只会打印严重的错误信息。
7)log_level_on_screen = LOG_FATAL           
 #日志等级达到log_level_into_file的会显示在命令行。

#日志等级可以设置为:LOG_TRACE(痕迹), LOG_DEBUG(调试), LOG_INFO(信息), LOG_WARN(警告), LOG_ERROR(错误), LOG_FATAL(严重);等级从低到高,日志等级设置越高打印的东西就越少,例如设置成为LOG_FATAL就只会打印严重的错误信息。
8)primary_connect_timeout = 60            
 #判断与主监控失联的时间(默认值60秒;超时之后,检查ping点有没有开启,如果开启,并且可以ping通,则会拉起primary monitor。反之,如果没开启ping点,则解绑VIP。)

4、db_ha.conf配置文件

1)primary_monitor_ip = 192.168.31.67   
 #primary_onitor程序的IP地址
2)primary_monitor_port = 8000   		
 #primary_monitor程序的守护端口。

#如有在同一台机器上安装多套集群的情况,每套配置文件的值不可重复;建议每套配置文件使用专门日志目录以对日志加以区别。
3)secondary_monitor_ip = 192.168.31.22  
 #secondary_monitor程序的IP地址

以上是关于db_ha集群配置文件参数含义详解的主要内容,如果未能解决你的问题,请参考以下文章

db_ha集群配置文件参数含义详解

db_ha集群日常维护命令

YARN 内存参数终极详解

db_ha集群所有节点重新开机的操作步骤

db_ha集群日常维护命令

db_ha集群日常维护命令