查询双机状态
数据库维护人员可下放双机查询命令以检查数据库双机是否正常运行,如果有异常,则可及时处理,保证数据库双机正常运行,从而使数据库具有高可靠性。
分别以gaussdba用户登录GaussDB服务器主机、备机和级联备机,执行如下命令查询双机状态。
gs_ctl query
Ha state:
LOCAL_ROLE : Standby
STATIC_CONNECTIONS : 1
DB_STATE : Normal
DETAIL_INFORMATION : Normal
Senders info:
No information
Receiver info:
RECEIVER_PID : 10640
LOCAL_ROLE : Standby
PEER_ROLE : Primary
PEER_STATE : Normal
STATE : streaming
SENDER_SENT_LOCATION : 0/3000000
SENDER_WRITE_LOCATION : 0/3000000
SENDER_FLUSH_LOCATION : 0/3000000
SENDER_REPLAY_LOCATION : 0/3000000
RECEIVER_RECEIVED_LOCATION : 0/3000000
RECEIVER_WRITE_LOCATION : 0/3000000
RECEIVER_FLUSH_LOCATION : 0/3000000
RECEIVER_REPLAY_LOCATION : 0/3000000
SYNC_PERCENT : 100%
CHANNEL : 10.144.197.189:52228 <--10.144.197.188:52228
字段说明如下
字段名称 | 说明 |
Ha state | 含义:表示如下字段说明本机状态信息。 取值范围:无 |
Senders info | 含义:表示如下字段说明本端作为事务日志发送端的信息。 取值范围: 如果本端是事务日志发送端,则会提示相关信息。 如果本端不是事务日志发送端,则下面显示为 No information。 |
Receiver info | 含义:表示如下字段说明本端作为事务日志接收端的信息。 取值范围: 如果本端是事务日志接收端,则会提示相关信息。 如果本端不是事务日志接收端,则下面显示为 No information。 |
LOCAL_ROLE | 含义:表示本端数据库的角色。 取值范围: Primary:表示本端数据库作为主机使用。 Standby:表示本端数据库作为备机使用。 CascadeStandby:表示本端数据库作为级联备机使用。 CascadeStandby1:表示本端数据库作为次级联备机使用。 Pending:表示本端数据库处于等待状态,此时可等待通知命令使其成为主机或备机。 Normal:表示本端数据库作为单机使用。 Unknown:表示本端数据库以未知的方式使用。 |
STATIC_CONNECTIONS | 含义:表示本端配置的节点数。 取值范围: 0 ~ 7:分别表示本端配置的节点个数,即经过用户配置的replconninfo1 ~ replconninfo7这7个参数的个数。0 代表没有配置节点,1 表示配置了replconninfo1 ~ replconninfo7中的一个,依次类推。 说明: replconninfo1 ~ replconninfo7 配置为空等效于未配置这七个参数。 |
DB_STATE | 含义:表示本端数据库状态。 取值范围: Normal:表示本端数据库状态正常,此时可以正常进行切换。 Starting:表示本端数据库正在启动。 NeedRepair:表示本端数据库需要重建。 Waiting:表示本端正在等待对端降备(备机、级联备机和次级联备机有此状态)。 Demoting:表示本端正在进行降备过程(主机、备机和级联备机有此状态)。 Promoting:表示本端正在进行升主过程(备机、级联备机和次级联备机有此状态)。 Unknown:表示本端处于未知的状态,此时不具备切换条件,不能进行切换。 说明: 主机此字段如果显示为 Normal ,也可以进行切换,并返回切换成功提示,但实际上会保持原状;级联备机正常连接备机时,此字段显示为Normal,但无法进行切换操作。 |
DETAIL_INFORMATION | 含义:表示数据库需要重建的原因或数据库查询失败的原因。数据库查询成功,则如果本端为主机,则此字段的取值为 Normal ,表示状态正常,但主机无法重建,因为主机不需进行重建。 取值范围: Normal:表示双机关系正常,不需重建。 本端为备机,表示主机与备机间双机关系正常。 本端为级联备机,表示级联备机与备机间双机关系正常。 本端为次级联备机,表示次级联备机与级联备机间双机关系正常。 Connecting...:表示正在尝试进行连接。 本端为备机,表示备机正在尝试连接主机。 本端为级联备机,表示级联备机正在尝试连接备机。 本端为次级联备机,表示次级联备机正在尝试连接级联备机。 WalSegmentRemoved:表示日志段已删除。 本端为备机,表示备机请求的日志段在主机上不存在。 本端为级联备机,表示级联备机请求的日志段在备机上不存在。 本端为次级联备机,表示次级联备机请求的日志段在级联备机上不存在。 Disconnected:表示未连接。 本端为备机,表示未找到主机。 本端为级联备机,表示未找到备机。 本端为次级联备机,表示未找到级联备机或不允许次级联备机远程连接级联备机。 VersionNotMatched:表示版本不匹配。 本端为备机,表示主机与备机的数据库版本不匹配。 本端为级联备机,表示备机与级联备机的数据库版本不匹配。 本端为次级联备机,表示级联备机与次级联备机的数据库版本不匹配。 ModeNotMatched:表示模式不匹配。 本端为备机,表示去尝试连接的 IP 不是主机。 本端为级联备机,表示去尝试连接的 IP 不是备机。 本端为次级联备机,表示去尝试连接的 IP 不是级联备机。 SystemIDNotMatched:表示数据不是同源的,即双机间的数据目录不是同一个数据库初始化创建的。 本端为备机,表示主机与备机的数据目录不是同一个数据库初始化创建的。 本端为级联备机,表示备机与级联备机的数据目录不是同一个数据库初始化创建的。 本端为次级联备机,表示级联备机与次级联备机的数据目录不是同一个数据库初始化创建的。 TimeLineNotMatched:表示时间线不匹配。 本端为备机,表示主机与备机的时间线不匹配。 本端为级联备机,表示备机与级联备机的时间线不匹配。 本端为次级联备机,表示级联备机与次级联备机的时间线不匹配。 说明: 如果备机、级联备机或次级联备机配置了0~7个节点 ,并且未与上层节点建立双机关系,则此字段会分别使用对应的repl1 ~ repl7 说明该数据库配置的n个节点需要重建的原因。 user/password invalid:表示数据库查询时认证失败。当 postgres 数据库被删除或者被锁定时,也会显示为user/password invalid。 |
SENDER_PID | 含义:表示日志发送进程的PID。 取值范围:整数 |
RECEIVER_PID | 含义:表示日志接收进程的PID。 取值范围:整数 |
PEER_ROLE | 含义:表示对端数据库角色。 取值范围: Primary:表示对端数据库作为主机使用。 Standby:表示对端数据库作为备机使用。 CascadeStandby:表示对端数据库作为级联备机使用。 CascadeStandby1:表示对端数据库作为次级联备机使用。 Unknown:表示对端数据库以未知的方式使用。 |
PEER_STATE | 含义:表示对端数据库状态 取值范围: Normal:表示对端数据库状态正常。 Building:表示对端正在进行数据库重建。 NeedRepair:表示对端数据库需要重建。 Waiting:表示对端备机正在等待主机降备(级联备机、次级联备机才有此状态)。 Demoting:表示对端正在进行降备或降次级联备过程。 Promoting:表示对端正在进行升主或升备过程。 Unknown:表示对端处于未知的状态。 |
STATE | 含义:表示事务日志复制的状态。 取值范围: 本端为事务日志发送端,取值范围如下: startup:表示日志发送进程刚启动。 backup:表示正在做日志备份。 catchup:表示日志复制处于追赶状态,本端日志并未完全复制到对端。 streaming:表示日志复制处于流复制状态,本端日志已复制到对端。 Unknown:表示未知的日志复制状态。 本端为事务日志接收端,取值范围如下: catchup:表示日志复制处于追赶状态,对端日志没有完全复制过来。 streaming:表示日志复制处于流复制状态,对端日志已复制过来。 |
SENDER_SENT_LOCATION | 含义:表示发送端发送日志的位置。 取值范围:无 |
SENDER_WRITE_LOCATION | 含义:表示发送端日志写的位置。 取值范围:无 |
SENDER_FLUSH_LOCATION | 含义:表示发送端日志 flush 的位置。 取值范围:无 |
SENDER_REPLAY_LOCATION | 含义:表示发送端日志重做的位置。 取值范围:无 |
RECEIVER_RECEIVED_LOCATION | 含义:表示接收端日志接收的位置。 取值范围:无 |
RECEIVER_WRITE_LOCATION | 含义:表示接收端日志写的位置。 取值范围:无 |
RECEIVER_FLUSH_LOCATION | 含义:表示接收端日志 flush 的位置。 取值范围:无 |
RECEIVER_REPLAY_LOCATION | 含义:表示接收端日志重做的位置。 取值范围:无 |
SYNC_PERCENT | 含义:表示日志同步的百分比。 取值范围:0%~100% |
SYNC_PRIORITY | 含义:表示多个备机存在的情况下,日志同步复制备机的优先级。 取值范围: 0:表示日志异步复制。 大于0的整数:表示日志同步复制备机的优先级。 说明: 参数synchronous_standby_names列出多个备机的名字,与SYNC_PRIORITY的取值对应,第一个备机名称对应1,第二个备机名称对应2,依次类推。 1表示优先进行日志同步复制的备机,根据序号排列,优先级逐渐降低。 |
SYNC_STATE | 含义:表示日志同步状态。 取值范围: async:表示日志异步复制。 sync:表示日志同步复制。 potential:表示潜在的同步者。 |
CHANNEL | 含义:表示通信通道信息。 取值范围: 本端为日志发送端,信息格式为:本端IP地址:端口号---->对端IP地址:端口号。 本端为日志接收端,信息格式为:本端IP地址:端口号<----对端IP地址:端口号。 |