目录
2.2停止数据库实例服务,并从主库备份库在备份库上进行还原操作。
2.3配置主机的dm.ini文件(打开主机实例的dm.ini文件并作出一下修改。)
2.5配置主机的dmarch.ini文件(配置主机的归档文件应该发送到哪)
2.6配置主机的dmwatcher.ini设置守护进程控制文件
二 、DM主备机群部署
2.1安装前配置内容:两台虚拟机一台监视机
主机名 | ip地址 | 实例port |
Dm101 | 192.168.20.157 | 3371 |
Dm102 | 192.168.20.156 | 3372 |
监视器 | 192.168.20.156 |
2.2停止数据库实例服务,并从主库备份库在备份库上进行还原操作。
$停止数据库服务(为了保证是进行冷备份)
#systemctl stop DmServicedm101_z.service
#systemctl stop DmServicedm101_b.service
$备份数据库
#backup database '/soft/dmdata/dm101_z/dm.ini' full to dm101_b backupset '/soft/dmarch/dm101'
$将备库传输到备份机进行还原
scp -r dm101/ dm102@192.168.20.160:/soft/dmarch/
#确认传输文件
#启动DMRMAN进行备库恢复
#restore database '/soft/dmdata/dm102_b/dm.ini' from backupset '/soft/dmarch/dm101/'
由于主库中有实例库,而备库中没有,因此还原了部分数据文件
#recover database '/soft/dmdata/dm102_b/dm.ini' from backupset '/soft/dmarch/dm101/'
#recover database '/soft/dmdata/dm102_b/dm.ini' update db_magic
2.3配置主机的dm.ini文件(打开主机实例的dm.ini文件并作出一下修改。)
Instance_name= #你的主机名,不需要修改
Arch_ini=1
Mal_ini=1
Alter_mode_status=0
Enable_offline_ts=2
2.4配置主机的dmmal.ini文件(主备信息控制文件)
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1] #主机
MAL_INST_NAME =dm101_z #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST =192.168.20.157 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST =192.168.20.157 #实例的对外服务 IP 地址
MAL_INST_PORT = 3371#实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 52141 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 33141 #实例监听守护进程 TCP 连接的端口
[MAL_INST2] #备机
MAL_INST_NAME =dm102_b
MAL_HOST =192.168.20.158
MAL_PORT = 61142
MAL_INST_HOST =192.168.20.158
MAL_INST_PORT = 3372
MAL_DW_PORT = 52142
MAL_INST_DW_PORT = 33142
2.5配置主机的dmarch.ini文件(配置主机的归档文件应该发送到哪)
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = dm102_b #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST =/soft/dmarch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~2147483647M
2.6配置主机的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/dm101_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 #指定备库重演日志的时间阈值,默认关闭
2.7以mount挂载的方式重启服务
$以mount的方式启动数据库实例否则系统会重构roll表空间,产生redo日志,破坏数据一致性。
#./dmserver /soft/dmdata/dm101_z/dm.ini mount
2.8使用disql配置相关参数
$而后,新打开一个命令行窗口,启动disql命令行工具,登录数据库,将数据库设为primary模式并设置oguid值(在dmwatcher.ini中设置的),注意以disql连接数据库时如果不设ip和端口号则默认连接本机的5236端口,此时如果数据库实例不是默认端口便会报网络连接错误。
#conn SYSDBA/tangyurun123@192.168.20.157:3371
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);
2.9配置备机
2.9.1备机的dm.ini、dmmal.ini、dmwatcher配置与主机基本一致(仅实例名、安装路径可能存在差异需要调整),在此不做赘述,可用scp命令直接传输过来。
2.9.2配置备机的dmarch.ini,因为这是备机,要将归档发送到主机,因此ARCH_DEST要写主机的实例。
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST =dm101_z #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = 自己的归档路径 #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~2147483647M
2.9.3mount方式启动备库:
#./dmserver /soft/dmdata/dm102_b/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);
2.10配置监视器(本次建立在dm102上)
因为这个集群设置的故障自动切换,所以需要第三台机器作为监视器,在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.159:52141 #主机的MAL_HOST对应ip+冒号+主机的守护进程监听端口MAL_DW_PORT
MON_DW_IP = 192.168.20.160:52142
2.11注册并重启服务
1、注册服务。需要在服务器上注册数据库实例、守护进程与监视器的服务,当然,之前注册过的数据库实例是不需要再次注册的,命令行注册数据库实例、守护进程和监视器服务的方式,使用root用户在dm安装目录的bin目录下执行:
--注册主库实例服务
./dm_service_installer.sh -t dmserver -dm_ini /soft/dmdata/dm101_z/dm.ini -m mount -p dm101_z
./dm_service_installer.sh -t dmserver -dm_ini /soft/dmdata/dm102_b/dm.ini -m mount -p dm102_b
--注册主库守护进程服务
./dm_service_installer.sh -t dmwatcher -watcher_ini /soft/dmdata/dm101_z/dmwatcher.ini -p dm101_zS
./dm_service_installer.sh -t dmwatcher -watcher_ini /soft/dmdata/dm102_b/dmwatcher.ini -p dm102_bS
--注册监视器服务
./dm_service_installer.sh -t dmmonitor -monitor_ini /soft/dmdba/dmdbms/dmmonitor.ini -p dm102_bDm
2、启动服务,先启动主备机的数据库实例服务与守护进程而后启动监视器,启动方式是在dm安装目录的bin目录下执行:
--启动数据库实例启动守护进程
./dmserver /soft/dmdata/dm101_z/dm.ini
./dmwatcher /soft/dmdata/dm101_z/dmwatcher.ini
./dmserver /soft/dmdata/dm102_b/dm.ini
./dmwatcher /soft/dmdata/dm102_b/dmwatcher.ini
--启动监视器
./dmmonitor /soft/dmdba/dmdbms/dmmonitor.ini