准备背景:
三台已安装DM数据库的Centos7.三台虚拟机是监视器、主机和备机,安装目录为/soft/dmdba/dmdhs
注意:
三台虚拟机IP地址
监视器 192.168.20.139
主机 192.168.20.150
备机 192.168.20.149
第一步是在主机上建立数据库实例,并将脱机备份到备机上。(脱机备份的目的是确保连接后主机数据库的一致性)
主备库实例信息 (记住主备库的例名不一样)
停止数据库实例服务
#systemctl stop DmServicedmzb101_z.service
#systemctl stop DmServicedmzb102_b.service
备份库:
#backup database '/soft/dmdata/dmzb101_z/dm.ini' full to dmzb101_b backupset '/soft/dmarch';
recover database '/soft/dmdata/dm102_zb1_b/dm.ini' from backupset '/soft/dmback'
在备份机上恢复数据库
#restore database '/soft/dmdata/dmzb102_b/dm.ini' from backupset '/soft/dmarch'
#recover database '/soft/dmdata/dmzb102_b/dm.ini' from backupset '/soft/dmarch'
#recover database '/soft/dmdata/dmzb102_b/dm.ini' update db_magic
第二步:配置主机配置:
vi dm.ini
配置dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 断开链路的时间
[MAL_INST1] #主机
MAL_INST_NAME =dmzb101_z #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST =192.168.20.150 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST =192.168.20.150 #实例外部服务 IP 地址
MAL_INST_PORT = 50001 #实例外部服务端口和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 52141 #实例监控当地守护过程 TCP 连接的端口
MAL_INST_DW_PORT = 33141 #实例监控守护过程 TCP 连接的端口
[MAL_INST2] #备机
MAL_INST_NAME =dmzb102_b
MAL_HOST =192.168.20.149
MAL_PORT = 61142
MAL_INST_HOST =192.168.20.149
MAL_INST_PORT = 50002
MAL_DW_PORT = 52142
MAL_INST_DW_PORT = 33142
配置dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = dmzb102_b #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST =/soft/dmarch ##本地归档文件存储路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限,范围 1024~2147483647M
配置dmwatcher.ini
[GRP1] #组名
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程保护过程中的故障识别时间
INST_RECOVER_TIME = 60 ##启动恢复主库守护过程的间隔时间
INST_ERROR_TIME = 10 ##当地实例故障识别时间
INST_OGUID = 453331 #唯一的守护系统 OGUID 值(根据情况修改)
INST_INI =/soft/dmdata/dmzb101_z/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 ##打开实例的自动启动功能
INST_STARTUP_CMD = /soft/dmdba/dmdhs/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定从主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重复日志的时间阈值,默认关闭
以mount启动数据库实例,否则系统将重构roll产生表空间redo破坏数据一致性的日志。
#./dmserver dm安装目录/data/实例名/dm.ini mount
然后打开新的命令行窗口,启动disql命令行工具,登录数据库,设置数据库primary模式并设置oguid值(在dmwatcher.ini中间设置),注意disql连接数据库时如果不设ip与端口号默认连接本机5236端口。此时,如果数据库实例不是默认端口,将报告网络连接错误。
#conn SYSDBA/tangyurun123@192.168.20.150:50001
- 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);
第三步:配置备库
1、备机的dm.ini、dmmal.ini、dmwatcher配置与主机基本一致(只有实例名和安装路径可能有差异需要调整),这里不赘述,可用scp命令直接传输。
2.配备备机dmarch.ini,因为是备机,要把归档发送到主机,所以ARCH_DEST写主机的例子,这里可能有漂亮的问题:啊~为什么备机要把归档发给主机?我猜是因为未来可能会发生主机故障,需要将备机切换到主机的主备交换身份,所以有可能成为主机的备机需要知道将来可能会把日志发给谁。
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST =dmzb101_z #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = 自己的归档路径 ##本地归档文件存储路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限,范围 1024~2147483647M
3、mount启动备库的方式:
./dmserver dm安装目录/data/实例名/dm.ini mount
新命令行,使用disql执行SQL:
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);
第四步 配置监视器
由于集群设置的故障自动切换,需要第三台机器作为监视器dm新建的安装目录dmmonitor.ini,其中的MON_DW_IP中的IP与PORT需要和dmmal.ini中的MAL_HOST与MAL_DW_PORT保持一致。
MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /soft/dmdba/dmdhs/log #监视器日志文件存储路径
MON_LOG_INTERVAL = 60 #每隔 60s 定期记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
MON_LOG_SPACE_LIMIT = 0 #不限制日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453331 #组 GRP1 的唯一 OGUID 值
MON_DW_IP = 192.168.20.150:52141 #主机的MAL_HOST对应ip 冒号 主机的保护过程监控端口MAL_DW_PORT
MON_DW_IP = 192.168.20.149:52142
第五步 注册并启动服务
1、注册服务。需要在服务器上注册数据库实例、守护进程与监视器的服务,当然,之前注册过的数据库实例是不需要再次注册的,命令行注册数据库实例、守护进程和监视器服务的方式,使用root用户在dm安装目录的bin目录下执行:
--注册主库实例服务
./dm_service_installer.sh -t dmserver -dm_ini /soft/dmdata/dmzb101_z/dm.ini -m mount -p dmzb101_z
--注册主库守护进程服务
./dm_service_installer.sh -t dmwatcher -watcher_ini /soft/dmdata/dmzb101_z/dmwatcher.ini -p dmzb101_zS
--注册监视器服务
./dm_service_installer.sh -t dmmonitor -monitor_ini /soft/dmdba/dmdhs/bin/dmmonitor.ini -p dmzb101_zDm
2、启动服务,先启动主备机的数据库实例服务与守护进程而后启动监视器,启动方式是在dm安装目录的bin目录下执行:
--启动数据库实例
./dmserver /soft/dmdata/dmzb101_z/dm.ini
./dmserver /soft/dmdata/dmzb102_b/dm.ini
--启动守护进程
./dmwatcher /soft/dmdata/dmzb101_z/dmwatcher.ini
./dmwatcher /soft/dmdata/dmzb102_b/dmwatcher.ini
--启动监视器
./dmmonitor /soft/dmdba/dmdhs/bin/dmmonitor.ini
eco.dameng.com