目录
部署流程
1 dmrman方式数据备份还原
备份(主库)还原(备库),检查数据一致性(数据库启动到mount,select file_LSN,cur_LSN from v$rlog;)如果是一个新数据库新的主备环境,需要初始化主库后完整的启停一次,然后再继续下面步骤。
2 配置dm.ini
3 配置dmmal.ini
4 配置dmarch.ini
5 配置dmwatcher.ini
6 生成dmwatcher.ctl
使用dmctlcvt工具根据上一步配置的dmwatcher.ini生成dmwatcher.ctl,将生成好的dmwatcher.ctl拷贝到/dbdata/dmdata/DAMENG/下,然后将这份ctl再拷贝到备库,主备的dmwatcher.ctl必须相同
./dmctlcvt TYPE=3 SRC=/dbdata/dmdata/DAMENG/dmwatcher.ini DEST=/dbdata
7 启动主备库到mount
8 设置主备库OGUID
(sp_set_oguid(453331);)
9 修改主备数据库模式
SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1); —允许修改数据库模式
alter database standby/primary; —修改为相应角色
SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);—不允许修改数据库模式
10 配置监视器dmmonitor
11 启动守护进程
它会根据数据库情况,自动使mount状态下的数据库open
12 启动监视器
13 将集群进程注册为服务
使用root用户执行,主备都注册
将守护进程dmwatcher注册为服务
su – root
cd $DM_HOME/dmdbms/script/root/
./dm_service_installer.sh -t dmwatcher -p dmwatcher01 -i /dbdata/dmdata/DAMENG/dmwatcher.ini
服务名DmWatcherServicedmwatcher01
启停守护进程
systemctl start/stop DmWatcherServicedmwatcher01
或者
service DmWatcherServicedmwatcher01 start/stop
将监视器dmmonitor注册为服务(在确认监视器节点执行)仅自动切换模式需要注册为服务,即dmmonitor.ini中MON_DW_CONFIRM=1。
su – root
cd /home/dmdba/dmdbms/script/root/
./dm_service_installer.sh -t dmmonitor -p dmmon01 -i /dbdata/dmdata/dmmonitor.ini
创建服务(DmMonitorServicedmmon01)完成
14 配置dm_svc.conf
在/etc 目录下会自动生成集群的dm_svc.conf配置文件,请自行复制它到客户端机器的相关目录下:
dm_svc.conf配置文件,Windows平台下位于%SystemRoot%\system32目录,Linux平台下位于/etc目录。
DM_DW=(192.168.13.142:5236,192.168.13.155:5236)
[DM_DW]
LOGIN_MODE=(1)
#以下参数为读写分离集群配置
RW_SEPARATE=(1)#是否开启读写分离
RW_PERCENT=(25)#读写分离比,0-100,按需配置
此处需要注意将服务名(红色字体部分)改为:DM_DW 或自己需要的。应用接口中ip配置替换为DM_DW
e.g. jdbc连接串:
jdbc:dm://DM_DW
数据守护启停顺序
启动顺序
- dmserver mount(每次都要以mount状态启动,搭建成功之后就不需要这一步了直接dmwatcher拉起各个数据库即可)
- dmwatcher(先备后主)
- dmmonitor
停止顺序
- 退出监视器(dmmonitor)
- 关闭所有的守护进程(先备后主 dmwatcher)
- 关闭主机实例(exit先主后备)
备注说明
- 先关闭dmwatcher后关闭实例,是为了防止实例关闭后又被守护进程(dmwatcher)拉起
- 先关备机的dmwatcher,是为了防止在自动切换模式下,备机会自动切换为主机
- 先关闭主机实例,是为了防止主机还存在客户端连接有数据操作的情况下被挂起