专栏/培训园地/ 文章详情 /

DCP备考_数据守护集群搭建

汤小杨 2024/05/21 483 0 0
摘要

1 环境信息

服务器类型 数据库名 实例名 IP地址 PROT_NUM MAL_INST_DW_PORT MAL_PORT MAL_DW_PORT
主机服务器 DM01 DMSVR01 192.168.75.129 5236 45101 55101 65101
备机服务器 DM01 DMSVR02 192.168.75.153 5236 45121 55121 65121
监视器 -- -- 192.168.75.154 -- -- -- --

2 创建备机数据库(dcp02)

初始化实例,注意数据库名和实例名

cd /dm8/bin ./dminit path=/dm8/data PAGE_SIZE=16 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DM01 INSTANCE_NAME=DMSVR02 PORT_NUM=5236 LOG_SIZE=500 SYSDBA_PWD=DM01SYSDBA SYSAUDITOR_PWD=DM01SYSDBA

复制

创建服务,注意数据库名和实例名

cd /dm8/script/root ./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DM01/dm.ini -p DMSVR02 systemctl start DmServiceDMSVR01 # 启动服务 systemctl status DmServiceDMSVR01 # 查看服务

复制

3 离线备份和恢复

./dmrman CTLSTMT="BACKUP DATABASE '/dm8/data/DM01/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm8/data/BACKUP_FILE_01'" scp -r /dm8/data/BACKUP_FILE_01/ dmdba@192.168.75.153:/dm8/data/

复制

RMAN>RESTORE DATABASE '/dm8/data/DM01/dm.ini' FROM BACKUPSET '/dm8/data/BACKUP_FILE_01'; RMAN>RECOVER DATABASE '/dm8/data/DM01/dm.ini' FROM BACKUPSET '/dm8/data/BACKUP_FILE_01'; RMAN>RECOVER DATABASE '/dm8/data/DM01/dm.ini' UPDATE DB_MAGIC;

复制

4 配置主库文件

dm.ini

INSTANCE_NAME = DMSVR01 PORT_NUM =5236 ##数据库实例监听端口 DW_INACTIVE_INTERVAL = 60 ##接收守护进程消息超时时间 ALTER_MODE_STATUS = 0 ##不允许手工方式修改实例模式/状态/OGUID ENABLE_OFFLINE_TS = 2 ##不允许备库OFFLINE表空间 MAL_INI = 1 ##打开MAL系统 ARCH_INI = 1 ##打开归档配置 RLOG_SEND_APPLY_MON = 64 ##统计最近64次的日志发送信息

复制

dmmal.ini,主备库一致

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

复制

dmarch.ini

[ARCHIVE_REALTIME] ARCH_TYPE=REALTIME ARCH_DEST=DMSVR02 [ARCHIEVE_LOCAL1] ARCH_TYPE=LOCAL ARCH_DEST=/dm8/data/DM01/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 = 123456 ##守护系统唯一OGUID值 INST_INI = /dm8/data/DM01/dm.ini ##dm.ini配置文件路径 INST_AUTO_RESTART = 1 ##打开实例的自动启动功能 INST_STARTUP_CMD = /dm8/bin/dmserver ##命令行方式启动 RLOG_SEND_THRESHOLD = 0 ##指定主库发送日志到备库的时间阈值,默认关闭 RLOG_APPLY_THRESHOLD = 0 ##指定备库重演日志的时间阈值,默认关闭

复制

5 以mount形式启动主库

./dmserver /dm8/data/DM01/dm.ini mount

复制

SQL> sp_set_para_value(1,'alter_mode_status',1); SQL> sp_set_oguid(123456); SQL> alter database primary; SQL> sp_set_para_value(1,'alter_mode_status',0);

复制

6 配置从库文件

dm.ini

INSTANCE_NAME = DMSVR02 PORT_NUM =5236 ##数据库实例监听端口 DW_INACTIVE_INTERVAL = 60 ##接收守护进程消息超时时间 ALTER_MODE_STATUS = 0 ##不允许手工方式修改实例模式/状态/OGUID ENABLE_OFFLINE_TS = 2 ##不允许备库OFFLINE表空间 MAL_INI = 1 ##打开MAL系统 ARCH_INI = 1 ##打开归档配置 RLOG_SEND_APPLY_MON = 64 ##统计最近64次的日志发送信息

复制

dmmal.ini,和主库一致

dmarch.ini

[ARCHIVE_REALTIME] ARCH_TYPE=REALTIME ARCH_DEST=DMSVR01 [ARCHIEVE_LOCAL1] ARCH_TYPE=LOCAL ARCH_DEST=/dm8/data/DM01/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 = 123456 ##守护系统唯一OGUID值 INST_INI = /dm8/data/DM01/dm.ini ##dm.ini配置文件路径 INST_AUTO_RESTART = 1 ##打开实例的自动启动功能 INST_STARTUP_CMD = /dm8/bin/dmserver ##命令行方式启动 RLOG_SEND_THRESHOLD = 0 ##指定主库发送日志到备库的时间阈值,默认关闭 RLOG_APPLY_THRESHOLD = 0 ##指定备库重演日志的时间阈值,默认关闭

复制

7 以mount形式启动从库

./dmserver /dm8/data/DM01/dm.ini mount

复制

SQL> sp_set_para_value(1,'alter_mode_status',1); SQL> sp_set_oguid(123456); SQL> alter database standby; SQL> sp_set_para_value(1,'alter_mode_status',0);

复制

8 配置确认监视器,在第三台服务器上

先拷贝iso到本地,安装数据库软件,才有dmmonitor程序

[root@dm_m DAMENG]# cat dmmonitor.ini MON_DW_CONFIRM = 1 ##确认监视器模式 MON_LOG_PATH = /dm8/log ##监视器日志文件存放路径 MON_LOG_INTERVAL = 60 ##每隔60s定时记录系统信息到日志文件 MON_LOG_FILE_SIZE = 32 ##每个日志文件最大32M MON_LOG_SPACE_LIMIT = 0 ##不限定日志文件总占用空间 [GRP1] MON_INST_OGUID = 123456 ##组GRP1的唯一OGUID值 MON_DW_IP = 192.168.75.129:65101 MON_DW_IP = 192.168.75.153:65121

复制

9 启动守护进程和监视器

## 主备守护进程 ./dmwatcher /dm8/data/DM01/dmwatcher.ini ## 监视器 ./dmmonitor /dm8/dmmonitor.ini

复制

10守护进程和监视器注册服务

./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/data/DM01/dmwatcher.ini -p watcher01 ./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/data/DM01/dmwatcher.ini -p watcher02 ./dm_service_installer.sh -t dmmonitor -monitor_ini /dm8/dmmonitor.ini -p monitor

复制

11 启动停止顺序

# 启动 systemctl start DmServiceDMSVR01 # 主库实例 systemctl start DmServiceDMSVR02 # 备库实例 systemctl start DmWatcherServicewatcher01 # 主库守护 systemctl start DmWatcherServicewatcher02 # 备库守护 ./dmmonitor /dm8/dmmonitor.ini # 确保monitor显示正常 systemctl start DmMonitorServicemonitor # 确认监视器 # 停止 主库守护进程-备库守护进程-备库实例-主库实例-监视器

复制

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服