注册
dm数据守护集群搭建
专栏/技术分享/ 文章详情 /

dm数据守护集群搭建

果粒橙 2024/01/22 1020 0 0
摘要

之前已经安装了dm的单机库,今天来继续搭一下dm的数据守护集群

集群部署准备工作:

主机名称 IP 数据库名称 数据库实例名称
dmdb01 192.168.184.133 DAMENG DMSERVER01
dmdb02 192.168.184.136 DAMENG DMSERVER02

数据库端口:
主机名称 实例名称 实例端口 MAL 系统监听 TCP 连接的端口 实例本地守护进程监听TCP端口 实例监听守护进程端口
dmdb01 DMSERVER01 5236 55101 65101 45101
dmdb02 DMSERVER02 5236 55121 65121 45121

初始化实例
两台机器都需要完成实例的初始化

DMSERVER01

cd /home/dmdba/dm/dmdbms/bin	
./dminit path= /home/dmdba/dbdata/dmdata page_size=32 extent_size=16 log_size=2048 db_name=DAMENG instance_name=DMSERVER01

DMSERVER02

cd /home/dmdba/dm/dmdbms/bin
./dminit path= /home/dmdba/dbdata/dmdata page_size=32 extent_size=16 log_size=2048 db_name=DAMENG instance_name=DMSERVER02

脱机备份DMSERVER01数据库

cd /home/dmdba/dm/dmdbms/bin
./dmrman use_ap=2
backup database 'dm.ini' backupset '/home/dmdba/dbbak/dmbak/fullbak0122';

把fullbak发到DMSERVER02备库去,然后备份还原:

cd /home/dmdba/dm/dmdbms/bin
./dmrman use_ap=2
restore database 'dm.ini' from backupset '/home/dmdba/dbbak/dmbak/fullbak0122';
recover database 'dm.ini' from backupset '/home/dmdba/dbbak/dmbak/fullbak0122';
recover database 'dm.ini' update db_magic;  --dm8所需要加

检查数据一致性,DMSERVER01 & DMSERVER02
这里不能后台./dmserverd启动,因为数据守护集群是通过收发redo日志,重演redo日志来实现的,而后台启动会生成redo日志,造成主库和备库不是同一版本

cd /home/dmdba/dm/dmdbms/bin
./dmserver dm.ini mount
./disql SYSDBA/SYSDBA
select file_LSN, cur_LSN from v$rlog;


图片1.png图片2.png
修改配置参数
修改dm.ini

DMSERVER01 :

vi /home/dmdba/dm/dmdbms/bin/dm.ini
INSTANCE_NAME = DMSERVER01
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2

DMSERVER02 :

vi /home/dmdba/dm/dmdbms/bin/dm.ini
INSTANCE_NAME = DMSERVER02
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2


修改dmarch.ini
DMSERVER01:
注意,存放归档日志需要填写另一个库

vi /dbdata/dmdata/DAMENG/dmarch.ini
[ARCHIVE_REALTIME1]  
ARCH_TYPE     = REALTIME  
ARCH_DEST     = DMSERVER02  --填写另一个库
[ARCHIVE_LOCAL1]
ARCH_TYPE     = LOCAL 
ARCH_DEST     = /home/dmdba/dbarch/dmarch    
ARCH_FILE_SIZE    = 2048
ARCH_SPACE_LIMIT  = 10240

DMSERVER02:

vi /dbdata/dmdata/DAMENG/dmarch.ini
[ARCHIVE_REALTIME1]  
ARCH_TYPE     = REALTIME  
ARCH_DEST     = DMSERVER01
[ARCHIVE_LOCAL1]
ARCH_TYPE     = LOCAL 
ARCH_DEST     = /home/dmdba/dbarch/dmarch    
ARCH_FILE_SIZE    = 2048
ARCH_SPACE_LIMIT  = 10240


添加配置文件dmmal.ini
DMSERVER01& DMSERVER02

vi /home/dmdba/dbdata/dmdata/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DMSERVER01
MAL_HOST = 192.168.168.133
MAL_PORT = 55101
MAL_INST_HOST = 192.168.168.133
MAL_INST_PORT = 5236
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101
[MAL_INST2]
MAL_INST_NAME = DMSERVER02
MAL_HOST = 192.168.168.136
MAL_PORT = 55121
MAL_INST_HOST = 192.168.168.136
MAL_INST_PORT = 5236
MAL_DW_PORT = 65121
MAL_INST_DW_PORT = 45121


添加配置文件dmwatcher.ini
DMSERVER01& DMSERVER02

vi /home/dmdba/dbdata/dmdata/DAMENG/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO     --故障自动切换模式
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /home/dmdba/dm/dmdbms/bin/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dm/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0


dm7需要 配置 dmwatcher.ctl,dm8不需要

拷贝生成的 dmwatcher.ctl 文件到数据文件目录DAMENG下面。
同样需要把控制文件发到 备库的DAMENG下面

./dmctlcvt TYPE=3 SRC=/home/dmdba/dbdata/dmdata/DAMENG/dmwatcher.ini DEST=/home/dmdba/dbdata/dmdata/DAMENG

##以 mount 方式启动数据库实例
DMSERVER01

cd /home/dmdba/dm/dmdbms/bin
./dmserver dm.ini mount
./disql SYSDBA/SYSDBA
sp_set_oguid(453331);
alter database primary;    --主库

DMSERVER02

cd /home/dmdba/dm/dmdbms/bin
./dmserver dm.ini mount
./disql SYSDBA/SYSDBA
sp_set_oguid(453331);
alter database standby;    --备库


启动守护进程
DMSERVER01& DMSERVER02

cd /home/dmdba/dm/dmdbms/bin
./dmwatcher /home/dmdba/dbdata/dmdata/DAMENG/dmwatcher.ini


图片3.png图片4.png

添加dmmonitor.ini配置文件,并启动监视器,如果没有第三台,就在备库中添加监视器
DMSERVER02

vi /home/dmdba/dbdata/dmdata/DAMENG/dmmonitor.ini
MON_DW_CONFIRM = 0
MON_LOG_PATH = /home/dmdba/dm/dmdbms/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 453331
MON_DW_IP = 192.168.184.133:65101
MON_DW_IP = 192.168.184.136:65121

cd /home/dmdba/dm/dmdbms/bin
./dmmonitor  /home/dmdba/dbdata/dmdata/DAMENG/dmmonitor.ini
show


图片5.png

都是处于open状态就代表成功
验证主备集群同步
DMSERVER01

在主库插入数据,然后去备库验证

cd /home/dmdba/dm/dmdbms/bin
./disql SYSDBA/SYSDBA
create table t1 (a int, b int);
insert into t1 values (1,1);
insert into t1 values (2,2);
commit;
select * from t1;


DMSERVER02
备库查询

cd /home/dmdba/dm/dmdbms/bin
./disql SYSDBA/SYSDBA
select * from t1;
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服