注册
达梦数据库主备数据守护
专栏/培训园地/ 文章详情 /

达梦数据库主备数据守护

xb 2025/04/24 95 0 0
摘要

一、系统环境预配置

1. 基础环境准备

# 所有节点执行(root用户) systemctl stop firewalld && systemctl disable firewalld sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0 # 创建专用用户与目录 groupadd dinstall useradd -g dinstall -m -d /home/dmdba/dm -s /bin/bash dmdba echo "dmdba123" | passwd --stdin dmdba mkdir -p /dm8/{data,backup,arch} && chown -R dmdba:dinstall /dm8

2. 网络配置示例

# 主库(192.168.248.22) cat > /etc/sysconfig/network-scripts/ifcfg-ens32 <<EOF TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.248.22 NETMASK=255.255.255.0 GATEWAY=192.168.248.2 DNS1=192.168.248.2 ONBOOT=yes EOF # 备库(192.168.248.23)同理修改IP

二、数据库初始化与备份还原

1. 主库脱机备份

# 主库执行 su - dmdba /dm8/bin/dmserver /dm8/data/DAMENG/dm.ini # 执行后输入exit退出控制台 /dm8/bin/dmrman BACKUP DATABASE '/dm8/data/DAMENG/dm.ini' TO BACKUPSET '/dm8/backup/full'

2. 备库数据还原

# 备库执行 scp -r dmdba@192.168.248.22:/dm8/backup/full /dm8/backup/ /dm8/bin/dmrman RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/backup/full' RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/backup/full' RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC

三、核心配置文件详解

1. dm.ini配置(主备差异)

# 主库配置 INSTANCE_NAME = GRP1_RT_01 PORT_NUM = 5236 DW_INACTIVE_INTERVAL = 60 ALTER_MODE_STATUS = 0 ENABLE_OFFLINE_TS = 2 MAL_INI = 1 ARCH_INI = 1 # 备库配置 INSTANCE_NAME = GRP1_RT_02 PORT_NUM = 5237

2. dmmal.ini(主备完全一致)

[MAL_INST1] MAL_INST_NAME = GRP1_RT_01 MAL_HOST = 192.168.248.22 MAL_PORT = 61141 MAL_INST_HOST = 192.168.248.22 MAL_INST_PORT = 5236 MAL_DW_PORT = 52141 [MAL_INST2] MAL_INST_NAME = GRP1_RT_02 MAL_HOST = 192.168.248.23 MAL_PORT = 61142 MAL_INST_HOST = 192.168.248.23 MAL_INST_PORT = 5237 MAL_DW_PORT = 52142

3. dmarch.ini(主备差异)

# 主库配置 [ARCHIVE_REALTIME] ARCH_TYPE = REALTIME ARCH_DEST = GRP1_RT_02 # 备库配置 [ARCHIVE_REALTIME] ARCH_TYPE = REALTIME ARCH_DEST = GRP1_RT_01 # 公共配置 [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = /dm8/arch ARCH_FILE_SIZE = 2048 ARCH_SPACE_LIMIT = 0

4. dmwatcher.ini(主备完全一致)

[GRP1] DW_TYPE = GLOBAL DW_MODE = AUTO DW_ERROR_TIME = 10 INST_RECOVER_TIME = 60 INST_ERROR_TIME = 10 INST_OGUID = 453331 INST_INI = /dm8/data/DAMENG/dm.ini INST_AUTO_RESTART = 1 INST_STARTUP_CMD = /dm8/bin/dmserver

四、主备库初始化流程

1. 启动数据库到MOUNT状态

# 主库执行 /dm8/bin/dmserver /dm8/data/DAMENG/dm.ini mount # 备库执行 /dm8/bin/dmserver /dm8/data/DAMENG/dm.ini mount

2. 设置OGUID与切换模式

-- 主库执行 SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); sp_set_oguid(453331); alter database primary; SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0); -- 备库执行 SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); sp_set_oguid(453331); alter database standby; SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

五、守护进程与监视器配置

1. 注册守护服务

# 主备库均执行(root用户) /dm8/script/root/dm_service_installer.sh -t dmwatcher -p DW_GRP1 -i /dm8/data/DAMENG/dmwatcher.ini

2. 监视器配置文件

# dmmonitor.ini MON_DW_CONFIRM = 1 MON_LOG_PATH = /dm8/log MON_LOG_INTERVAL = 60 MON_LOG_FILE_SIZE = 32 [GRP1] MON_INST_OGUID = 453331 MON_DW_IP = 192.168.248.22:52141 MON_DW_IP = 192.168.248.23:52142

3. 启动服务

# 主备库启动守护进程 systemctl start DmWatcherServiceDW_GRP1 # 监视器节点启动 /dm8/bin/dmmonitor /dm8/data/DAMENG/dmmonitor.ini

六、状态验证与故障切换

1. 关键状态查询

-- 检查归档状态 SELECT ARCH_NAME, ARCH_TYPE, ARCH_DEST FROM V$DM_ARCH_INI; -- 查看守护进程状态 SELECT * FROM V$DMWATCHER; -- 验证OGUID一致性 SELECT OGUID FROM V$INSTANCE;

2. 手动切换测试

# 在监视器控制台执行 SWITCHOVER GRP1_RT_01
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服