达梦数据库-初探监视器服务与守护进程服务

在深入了解达梦数据库后,我们会知道监视器服务和守护进程服务都是很重要的一部分,它们主要用来监控数据库状态,并在异常情况下进行故障处理。

以下我们对这两个服务进行一些测试,来了解它们的工作特性。

首先搭建了一主一备的集群,启动非确认监视器信息如下:

一、监视器正常情况下的主备

模拟主库发生异常:

  1. 库数据库进程KILL(由于dmwatcher进程,kill后会很快进程会被重新拉起)
  2. 查看主库和备库的状态

     原主库(OPEN) MODE变成STANDBY/  原备库(OPEN)MODE变成PARMARY

  现象:主备模式发生切换 

 模拟备库发生异常:

  1. 备库数据库进程KILL(由于dmwatcher进程,kill后会很快进程会被重新拉起)
  2. 查看主库和备库的状态

     现象:主库会短暂的进入suspend挂起状态,然后变为open。

监视器异常情况下的主备(器服务器网络断开

模拟主库数据库服务发生异常:

  1. 库数据库进程KILL(由于dmwatcher进程,kill后会很快进程会被重新拉起)
  2. 查看主库和备库的状态

          主库(OPEN)

           备库(OPEN)

        现象:主备模式无变化,数据库依然正常对外提供服务。

模拟主库数据库服务和守护进程都发生异常: 

  1. 库数据库进程和守护进程都KILL
  2. 查看主库和备库的状态
  3. 恢复主库守护进程和数据库服务进程后,主库和备库的状态都为OPEN,恢复正常。

备库(OPEN)

     现象:备库模式虽然处于OPEN状态,可依旧为standby模式。无法正常对外提供服务。

    

模拟备库发生异常:

      1.将备库数据库进程KILL(由于dmwatcher进程,kill后会很快进程会被重新拉起)

      2.查看主库和备库的状态

            主库:(SUSPEND)

            备库:(OPEN)

        3.查看主库的log日志

显示是由于主库将存档日志发送到远程实例失败,导致主库挂起

        4.此时数据库处于挂起状态,无法对外提供正常服务,此时只需要恢复监视器服务即可故障恢复(主库:->MON CONFIRM->FAILOVER->OPEN->RECOVER->OPEN)

现象:监视器服务断开后,主库出现故障后,备库不会正常切换成主库,但主库服务恢复正常后,主备依旧可以正常使用;备库出现故障时,主库会变成挂起状态,无法正常提供服务,就算备库恢复正常后,也不会故障恢复变为OPEN。

根据以上情况进行总结如下:

  • 依靠监视器服务,主备才能进行正常的故障切换。
  • 依靠守护进程服务,数据库服务在出现异常断开时才能被自动拉起。
  • 当主库将存档日志发送到远程实例失败,会挂起,且就算备库恢复正常后,由于没有监视器提供信息,也无法正常OPEN
  • 无监视器时,主库自身的异常和恢复过程对备库无影响,且恢复后可正常使用

另外就守护进程服务,还有一点需要说明,并非只有集群下才能使用,单机达梦也可以设置并起到相同的作用。

以下是单机守护进程的搭建过程

      ①修改达梦dm.ini中MAL_INI=1,DW_PORT=9997
      ②disql执行以下命令

alter database mount;
sp_set_oguid(453331);
alter database open;


      ③实例目录下创建dmmal.ini,内容:

[MAL_INST]
MAL_INST_NAME=DMSERVER #和dm.ini中INSTANCE_NAME对应
MAL_HOST=127.0.0.1
MAL_PORT=9998
MAL_INST_HOST=127.0.0.1
MAL_INST_PORT=5236 #和dm.ini中PORT_NUM对应
MAL_DW_PORT=9999


       ④实例目录下创建dmwatcher.ini,内容:

[GRP1]
DW_TYPE = LOCAL #全局守护类型
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一 OGUID 值
INST_INI = /opt/dmdbms/bin/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /opt/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭


      ⑤重启实例
      ⑥注册守护进程服务:cd /opt/dmdbms/script/roo    t执行./dm_service_installer.sh -t dmwatcher -p DM -i /opt/dmdbms/bin/DAMENG/dmwatcher.ini
      ⑦修改目录权限:chown -R dmdba:dinstall /opt/dmdbms和实例目录
      ⑧启动守护进程服务: service DmWatcherServiceDM start

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值