DM数据库搭建实时主备

ip端口规划在这里插入图片描述

数据库安装路径: /home/dmdba执行程序路径:/home/dmdba/dmdbms/bin数据存放路径:/home/dmdba/dmdbms/data

初始化主备库,可以在初始化的时候指定实例名INSTANCE_NAME,也可以初始化后在dm.ini文件里面修改参数INSTANCE_NAME

在这里插入图片描述
在这里插入图片描述
前台启停一次数据库,否则在备份时会报错
./dmserver …/data/DAMENG/dm.ini

使用dmrman工具备份主库
./dmrman ctlstmt=“backup database ‘/home/dmdba/dmdbms/data/DAMENG/dm.ini’ full to backup_file_01 backupset ‘/home/dmdba/backup_file_01’”

远程拷贝到备库
scp -r /home/dmdba/backup_file_01/ 172.16.20.102:/home/dmdba/
在这里插入图片描述

在备库停机状态下执行restore和recover

./dmrman ctlstmt=“restore database ‘/home/dmdba/dmdbms/data/DAMENG/dm.ini’ from backupset ‘/home/dmdba/backup_file_01’”
在这里插入图片描述

./dmrman ctlstmt=“recover database ‘/home/dmdba/dmdbms/data/DAMENG/dm.ini’ from backupset ‘/home/dmdba/backup_file_01’”

在这里插入图片描述

./dmrman ctlstmt=“recover database ‘/home/dmdba/dmdbms/data/DAMENG/dm.ini’ update db_magic”

在这里插入图片描述

配置主库的dm.ini
INSTANCE_NAME = GRP1_RT_01
PORT_NUM = 5236 #数据库实例监听端口DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

配置主库dmmal文件,主备库的dmmal文件参数必须一样 MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01
MAL_HOST = 172.16.20.101
MAL_PORT = 5240
MAL_INST_HOST = 172.16.20.101
MAL_INST_PORT = 5236
MAL_DW_PORT = 5242
MAL_INST_DW_PORT = 5238
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 172.16.20.102
MAL_PORT = 5241
MAL_INST_HOST = 172.16.20.102
MAL_INST_PORT = 5237
MAL_DW_PORT = 5243
MAL_INST_DW_PORT = 5239

配置dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_02
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdbms/data/DAMENG/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

修改 dmwatcher.ini 配置守护进程,配置为全局守护类型,使用自动切换模式
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式DW_ERROR_TIME = 10 #远程守护进程故障认定时间INST_RECOVER_TIME = 60 #主库守护进程启动恢复时间间隔
INST_ERROR_TIME = 10 #本地实例故障认定时间INST_OGUID = 123 #守护系统唯一OGUID值
INST_INI = /home/dmdba/dmdbms/data/DAMENG/dm.ini
INST_AUTO_RESTART = 1 #打开实例的自动启动功能INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

将主库启动到mount状态,注意不能open
./dmserver …/data/DAMENG/dm.ini mount

DISQL连接数据库,修改数据库OGUID和模式[[email protected] bin]$ ./disql SYSDBA/SYSDBA:5236
SQL> sp_set_oguid(123);
SQL> alter database primary;
SQL> sp_set_para_value(1,‘ALTER_MODE_STATUS’,0);

配置备库

配置备库dm.ini
INSTANCE_NAME = GRP1_RT_02
PORT_NUM = 5237 #数据库实例监听端口DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志重演信息

配置dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_01
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdbms/data/DAMENG/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

修改 dmwatcher.ini 配置守护进程,配置为全局守护类型,使用自动切换模式
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式DW_ERROR_TIME = 10 #远程守护进程故障认定时间INST_RECOVER_TIME = 60 #主库守护进程启动恢复时间间隔
INST_ERROR_TIME = 10 #本地实例故障认定时间INST_OGUID = 123 #守护系统唯一OGUID值
INST_INI = /home/dmdba/dmdbms/data/DAMENG/dm.ini
INST_AUTO_RESTART = 1 #打开实例的自动启动功能INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

mount启动备库

./dmserver …/data/DAMENG/dm.ini mount

DISQL连接数据库修改OGUID和模式
[[email protected] bin]$ ./disql SYSDBA/SYSDBA:5237
SQL> sp_set_oguid(123);DMSQL
SQL> alter database standby;
SQL> sp_set_para_value(1,‘ALTER_MODE_STATUS’,0);

配置监视器参数文件dmmonitor.ini
MON_DW_CONFIRM = 1 #确认监视器模式MON_LOG_PATH = /home/dmdba/dmdbms/data/DAMENG/log #监视器日志文件路径
MON_LOG_INTERVAL = 60 #每隔60秒定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 123
MON_DW_IP = 172.16.20.101:5242
MON_DW_IP = 172.16.20.102:5243

启动主备库守护进程
./dmwatcher …/data/DAMENG/dmwatcher.ini

在这里插入图片描述

启动监视器进程
./dmmonitor …/data/DAMENG/dmmonitor.ini

在这里插入图片描述