注册
达梦数据守护配置-灯下黑了
专栏/培训园地/ 文章详情 /

达梦数据守护配置-灯下黑了

fifsun 2025/04/24 94 0 0
摘要

前言

这里主要说一下在配置数据守护的时候遇到的坑,有可能大家没遇到也不会遇到,但是遇到了对新手来说真是个大坑,必须再次立贴

配置数据守护

  1. 只说一下主备的数据守护
  2. 主备两台机器数据库配置完全一样(克隆的
  3. 数据库在dm8目录下
  4. IP地址:主:10.2.113.251,备:10.2.113.252

1、冷备主机

  1. stop数据库服务
  2. 通过图形化console工具进行冷备,到/dm8/backup
  3. 将备份发送给备机:scp -r /dm8/backup dmdba@10.2.113.252:/dm8
  4. 备机还原

2、配置守护文件

  1. dm.ini文件 主备不同

主备不同
主:INSTANCE_NAME = DMSVR01
备:INSTANCE_NAME = DMSVR02

INSTANCE_NAME = DMSVR1 ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID ENABLE_OFFLINE_TS=2 #不允许备库 OFFLINE 表空间 MAL_INI=1 #打开 MAL 系统 ARCH_INI=1 #打开归档配置
  1. dmarch.ini文件 主备不同

主备不同:配置对方的实例名
主:ARCH_DEST = DMSVR02
备:ARCH_DEST = DMSVR01

[ARCHIVE_REALTIME]
        ARCH_TYPE            = REALTIME      #实时归档类型
        ARCH_DEST           = DMSVR02        #备机实例名
[ARCHIVE_LOCAL1]
	ARCH_TYPE            = LOCAL        
	ARCH_DEST            = /dm8/arch    #归档目录    
	ARCH_FILE_SIZE       = 64        
	ARCH_SPACE_LIMIT     = 1024
  1. dmmal.ini文件 主备都是这份文件

这文件本身是没有的直接vim就行,将下面内容直接复制,只需要修改这几个参数MAL_INST_NAME,MAL_HOST,MAL_POR,MAL_INST_PORT,MAL_DW_PORT,MAL_INST_DW_PORT值都是自己实例的

MAL_CHECK_INTERVAL      = 5             #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL  = 5             #判定MAL链路断开的时间
[MAL_INST1]
  MAL_INST_NAME                 = DMSVR01 #实例名,和dm.ini中的INSTANCE_NAME一致
  MAL_HOST                      = 10.2.113.251  #MAL系统监听TCP连接的IP地址
  MAL_PORT                      = 5240                   #MAL系统监听TCP连接的端口
  MAL_INST_PORT                 = 5236  #实例的对外服务端口,和dm.ini中的PORT_NUM一致
  MAL_DW_PORT                   = 5337  #实例本地的守护进程监听TCP连接的端口
  MAL_INST_DW_PORT         = 5238  #实例监听守护进程TCP连接的端口

[MAL_INST2]
  MAL_INST_NAME                 = DMSVR02
  MAL_HOST                      = 10.2.113.252
  MAL_PORT                      = 5240
  MAL_INST_PORT                 = 5236
  MAL_DW_PORT                   = 5337
  MAL_INST_DW_PORT         = 5238
  1. dmwatcher.ini文件 ( 主备都是这份文件

注意修改INST_OGUID,INST_INI,INST_STARTUP_CMD这参数

这里就是我遇到的大坑,重要的事情说三遍
[GRP1]主备要一样!!!
[GRP1]主备要一样!!!
[GRP1]主备要一样!!!

我就是这里主叫DW01,备叫DW02,看日志直接报code=-9402:无效的组名,要说到这也就应该知道是分组名称不一样的问题,但是就是不知道还硬生生的认为是不是这个分组的名称的事呢,主要就是因为跟注册dmwatcher服务时候要有服务后缀名整混,还来回反复的看老师的视频呢,生生没发现。

这里跟老师学了查错误码的sql:
select * from SYS.V$ERR INFO t where code=-9402;

[GRP1]
        DW_TYPE                         = GLOBAL    #全局守护类型
        DW_MODE                         = AUTO          #自动切换模式
        DW_ERROR_TIME           = 10            #远程守护进程故障认定时间
        INST_RECOVER_TIME       = 60            #主库守护进程启动恢复的间隔时间
        INST_ERROR_TIME         = 10            #本地实例故障认定时间
        INST_OGUID              = 888888        #守护系统唯一OGUID值
        INST_INI                = /dm8/data/DAMENG/dm.ini       #dm.ini配置文件路径
        INST_AUTO_RESTART       = 1                     #打开实例的自动启动功能
        INST_STARTUP_CMD        = /dm8/bin/dmserver     #命令行方式启动
        RLOG_APPLY_THRESHOLD    = 0         #指定备库重演日志的时间阈值,默认关闭
        RLOG_SEND_THRESHOLD     = 0          #指定主库发送日志到备库的时间阀值,默认关闭

OK 到这数据守护要用到的四个配置文件就都准本好了

3、修改oguid和实例mode

主备修改部分先后

主机:

  1. 启动数据库到mount
  2. 进入disql执行
    1. sp_set_oguid(888888);
    2. alter database primary;

备机:

  1. 启动数据库到mount
  2. 进入disql执行
    1. sp_set_oguid(888888);
    2. alter database standby;

4、注册dmwatcher服务 (主备都要注册)

root用户执行:
/dm8/script/root/dm_server_installer.sh -t dmwatcher -p dw01 -watcher_ini /dm8/data/DAMENG/dmwatcher.ini

就是这个-p dw01这个后缀名,和watcher的分组名等同了!!!

OK如果一切顺利的话你应该看到数据库status已经open,要是没看到就摇人吧,还有就是摇人前多看log日志仔细分析!!!

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服