达梦实时主备可参考文章
数据守护添加异步备库
异步备库是基于实时主备的基础上增加一个备库,基于指定的规则时间周期同步
添加异步节点
root:
主库操作
disql sysdba/SYSDBA
backup database full backupset '/dm/dmback/bak_full_02';
exit;
scp -r /dm/dmback/bak_full_02 192.168.90.96:/dm/dmback
采用备份建库
恢复
192.168.90.96
cd /dm/dmdbms/dm8/bin
./dmrman
restore database '/dm/dmdata/DAMENG/dm.ini' from backupset '/dm/dmback/bak_full_02';
recover database '/dm/dmdata/DAMENG/dm.ini' from backupset '/dm/dmback/bak_full_02'; recover database '/dm/dmdata/DAMENG/dm.ini' update db_magic;
修改参数(grp1、grp2)
192.168.90.93/94
vi dm.ini
TIMER_INI = 1 #配置有异步归档时,打开定时器,定时同步归档到异步 备库
添加第三个实例
vi dmmal.ini
[MAL_INST3]
MAL_INST_NAME = DMSERVER3 # 实 例 名 , 和 dm.ini 中 的 INSTANCE_NAME 一致 MAL_HOST = 192.168.90.96 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 35239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.90.96 #实例的对外服务 IP 地址
MAL_INST_PORT = 35236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致 MAL_INST_DW_PORT = 35237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 35238 #实例对应的守护进程监听 TCP 连接的端口
在配置 dmarch.ini 的基础上,增加异步归档的配置项)
vi dmarch.ini
[ARCHIVE_ASYNC]
ARCH_TYPE = ASYNC #异步归档类型
ARCH_DEST = DMSERVER3 #异步归档目标实例名
ARCH_TIMER_NAME = RT_TIMER #定时器名称,和 dmtimer.ini 中的 名称一致
dmtimer.ini(配置 dmtimer.ini,用于定时触发实例发送归档日志到异步备 库) 异步归档的最小触发间隔是 1 分钟
定时器调度类型:
1:执行一次
2:按日执行
3:按周执行
4:按月执行的第几天
5:按月执行的第一周
6:按月执行的第二周
7:按月执行的第三周
8:按月执行的第四周
9:按月执行的最后一周
下面示例中定时器配置为每天分钟触发主库发送归档日志到异步备库,可 以根据实际情况再做调整
vi dmtimer.ini
[RT_TIMER] #和 dmarch.ini 中的 ARCH_TIMER_NAME 一致
TYPE = 2 #2 按日执行
FREQ_MONTH_WEEK_INTERVAL = 1 #间隔月或周数
FREQ_SUB_INTERVAL = 0 #间隔天数
FREQ_MINUTE_INTERVAL = 1 #间隔分钟数
START_TIME = 00:00:00 #开始时间
END_TIME = 00:00:00 #结束时间
DURING_START_DATE = 2022-01-01 12:00:00 #开始时间点
DURING_END_DATE = 9999-12-31 23:59:59 #结束时间点
NO_END_DATE_FLAG = 1 #是否结束标记
DESCRIBE = RT_TIMER #定时器描述
IS_VALID = 1 #0:表示关闭定时器,1:表示启用定时器
192.168.90.95(监控主机)
vi /dm/dmdbms/dm8/data/dmmonitor.ini
MON_DW_IP = 192.168.90.96:35238
启动原主备库至 mount 状态 先关闭监视器
192.168.90.96
ps -ef|grep dmmonitor
kill -9 xxx
192.168.90.93/94: 停止服务:
DmServicefgedudb stop
DmWatcherServicefgedudb stop
ps -ef|grep dmwatcher
ps -ef|grep dmserver
设置 mount 状态:
nohup dmserver /dm/dmdata/fgedudb/dm.ini mount &
启动守护进程:
DmWatcherServicefgedudb start
配置异步库
192.168.90.96:
su - dmdba
vi dm.ini
INSTANCE_NAME = DMSERVER3 #异步备库实例
PORT_NUM = 35236 #数据库实例监听端口
DW_PORT = 35237 #守护环境下,监听守护进程连接端口,为上面规划表 中的 MAL_INST_DW_PORT 值
DW_ERROR_TIME = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
HA_INST_CHECK_FLAG = 1 #检测是否多个实例进程同时启动
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
vi dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMSERVER1 # 实 例 名 , 和 dm.ini 中 的 INSTANCE_NAME 一致 MAL_HOST = 192.168.90.93 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 15239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.90.93 #实例的对外服务 IP 地址
MAL_INST_PORT = 15236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致 MAL_INST_DW_PORT = 15237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 15238 #实例对应的守护进程监听 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = DMSERVER2 # 实 例 名 , 和 dm.ini 中 的 INSTANCE_NAME 一致 MAL_HOST = 192.168.90.94 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 25239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.90.94 #实例的对外服务 IP 地址
MAL_INST_PORT = 25236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致 MAL_INST_DW_PORT = 25237 #实例监听守护进程 TCP 连接的端 口
MAL_DW_PORT = 25238 #实例对应的守护进程监听 TCP 连接的端口
[MAL_INST3]
MAL_INST_NAME = DMSERVER3 # 实 例 名 , 和 dm.ini 中 的 INSTANCE_NAME 一致 MAL_HOST = 192.168.90.96 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 35239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.90.96 #实例的对外服务 IP 地址
MAL_INST_PORT = 35236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致 MAL_INST_DW_PORT = 35237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 35238 #实例对应的守护进程监听 TCP 连接的端口
vi dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm/dmarch #本地归档文件存放路径
ARCH_FILE_SIZE = 256 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 # 单 位 Mb , 0 表 示 无 限 制 , 范 围 1024~4294967294M
vi dmwatcher.ini
[GRP1]
DW_TYPE = LOCAL #本地类型
DW_MODE = MANUAL #手工切换模式
DW_ERROR_TIME = 10 #远程守护进程故 障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启 动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认 定时间
INST_OGUID = 453331 #守护系统唯一 OGUID 值
INST_INI = /dm/dmdata/DAMENG/dm.ini #dm.ini 配置文件路 径
INST_AUTO_RESTART = 1 #打开实例的自动 启动功能
INST_STARTUP_CMD = /dm/dmdbms/dm8/bin/dmserver #命令 行方式启动
192.168.90.96
su - dmdba
cd /dm/dmdbms/dm8/bin
nohup dmserver /dm/dmdata/fgedudb/dm.ini mount &
disql SYSDBA/SYSDBA
select status$ from v$database;
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);