linux环境搭建达梦双实例交叉主备守护集群

本文详细介绍了如何在Linux环境中搭建达梦数据库的双实例交叉主备守护集群,包括创建用户组和用户、规划文件路径、设置初始化参数、修改系统限制、挂载镜像、执行安装命令、初始化实例、备份还原、配置服务、启动服务等步骤。同时,文章提到了主备切换的风险,并提供了备用实例的配置方法。
摘要由CSDN通过智能技术生成

安装达梦数据库

创建用户组 创建用户

groupadd dinstall   //创建用户组
useradd -g dinstall -d /home/dmdba dmdba    //创建用户及用户目录

提前规划好搭建的文件路径

安装目录:/dm8/dmdbms
实例1:
	数据目录:/dmdata/data/lsl
	归档目录:/dmdata/data/lsl_arch01
	备份目录:/dmbak

实例2:
	数据目录:/dmdata/data/DAMENG
	归档目录:/dmdata/data/arch02
	备份目录:/dmbak

提前确定实例初始化参数

日志:2048*2
实例1:
数据库名:lsl
页大小:16
字符集:UTF8
端口:5237
其余默认
实例2:
页大小:16
字符集:UTF8
端口:5238
其余默认

修改open file的大小

vi  /etc/security/limits.conf  //末尾加上如下两行
//* soft  nofile  65536
//* hard  nofile  65536
reboot            //重启

保险起见重启后可以再次使用ulimit -a命令查看一下

挂载镜像 使用dmdba用户执行安装命令

chmod 755 dm8_20210818_HWarm_centos7_64_ent_8.1.2.46_pack4.iso
mount dm8_20210818_HWarm_centos7_64_ent_8.1.2.46_pack4.iso  /mnt/
./DMInstall.bin -i          //-i表示命令行安装,注意使用创建的dmdba用户安装

此处注意用dmdba用户安装后需要用root执行一条语句。

初始化实例1

分别在两台主机上初始化实例1

//进入安装bin目录
./dminit help                    //查看初始化信息帮助
./dminit PATH=/dmdata/data/ charset=1 db_name=lsl page_size=16 log_size=2048 port_num=5237

完成初始化之后需要启停数据库一次

./dmserver /dmdata/data/lsl/dm.ini   //安装目录下bin目录执行
exit

对实例1备份还原

为保证数据同步故选择备份还原的方法

//进入安装bin目录
./dmrman ctlstmt="backup database '/dmdata/data/lsl/dm.ini' full to backup2021 backupset '/home/dmdba/bak/'"
scp	-r 	 /home/dmdba/bak/ dmdba@192.168.2.18:/home/dmdba/ //由主库发送到备库

在备库进行还原

./dmrman ctlstmt="restore database '/dmdata/data/lsl/dm.ini' from backupset '/home/dmdba/bak/'"
./dmrman ctlstmt="recover database '/dmdata/data/lsl/dm.ini' from backupset '/home/dmdba/bak/'"
./dmrman ctlstmt="recover database '/dmdata/data/lsl/dm.ini' update db_magic"   //更新数据库魔术

修改文件

修改主库配置文件:

进入lsl目录
修改dm.ini配置文件中如下几项

INSTANCE_NAME=lsl_01   
ARCH_INI=1
MAL_INI=1
ALTER_MODE_STATUS= 0
ENABLE_OFFLINE_TS = 2

修改dmmal.ini 配置文件如下:

MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = lsl_01
MAL_HOST =192.168.2.17
MAL_PORT = 61141
MAL_INST_HOST = 192.168.2.17
MAL_INST_PORT = 5237
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST2]
MAL_INST_NAME = lsl_02
MAL_HOST = 192.168.2.18
MAL_PORT = 61142
MAL_INST_HOST = 192.168.2.18
MAL_INST_PORT = 5237
MAL_DW_PORT = 52142
MAL_INST_DW_PORT = 33142

修改dmarch.ini
新建一个/dmdata/data/lsl_arch文件夹

ARCH_WAIT_APPLY=1 //事务一致性
[ARCHIVE_TIMELY1]
ARCH_TYPE = TIMELY
ARCH_DEST = lsl_02
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/data/lsl_arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 204800

修改dmwatcher.ini
vi dmwatcher.ini

[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /dmdata/data/lsl/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /wwb/dmdbms/bin/DmServicelsl02 restart
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

将主库的配置文件发送到备库,后续配置备库就只需要修改部分内容

scp dmmal.ini dmarch.ini dmwatcher.ini dmdba@192.168.2.18:/dmdata/data/lsl/ 

配置主库oguid:
进入安装bin目录
以mount方式启动,以open形式启动会使主备不同步

./dmserver /dmdata/data/lsl/dm.ini mount

./disql SYSDBA/SYSDBA:5237
sp_set_oguid(453331);
alter database primary;

exit //停库处理

配置备库文件
修改备库配置文件dm.ini

INSTANCE_NAME=lsl_02
ARCH_INI=1
MAL_INI=1
ALTER_MODE_STATUS= 0
ENABLE_OFFLINE_TS = 2

修改dmarch.ini

[ARCHIVE_TIMELY1]
ARCH_TYPE = TIMELY
ARCH_DEST = lsl_01

使用dmdba用户创建/dmdata/data/lsl_arch文件夹。

配置主库oguid:
进入安装bin目录
以mount方式启动,以open形式启动会使主备不同步

./dmserver /dmdata/data/lsl/dm.ini mount

./disql SYSDBA/SYSDBA:5237
sp_set_oguid(453331);
alter database standby;

exit //停库处理

创建监视器配置文件

在/dmdata/data/lsl/目录下创建dmmonitor.ini
dmmonitor.ini文件的配置如下

MON_DW_Confirm = 1
MON_LOG_PATH = /home/dmdba/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 1024
[GRP1]
MON_INST_OGUID = 453331
MON_DW_IP = 192.168.2.17:52141
MON_DW_IP = 192.168.2.18:52142

注册服务

用root用户进入安装目录下script/root目录
主库:

./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/lsl/dm.ini -m mount -p lsl01
./dm_service_installer.sh -t dmwatcher -watcher_ini /dmdata/data/lsl/dmwatcher.ini -p lsl01

备库:

./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/lsl/dm.ini -m mount -p lsl02
./dm_service_installer.sh -t dmwatcher -watcher_ini /dmdata/data/lsl/dmwatcher.ini -p lsl02
./dm_service_installer.sh -t dmmonitor -monitor_ini /dmdata/data/lsl/dmmonitor.ini  -p lsl           //注册监视器

启动服务

先启动服务 后启动守护

./DmServicelsl01 start  //启动主库服务
./DmServicelsl02 start   //启动备库服务
./DmWatcherServicelsl01 start    //启动主库守护进程服务
./DmWatcherServicelsl02 start    //启动备库守护进程服务
./dmmonitor /dmdata/data/lsl/dmmonitor.ini   //启动监视器(show查看主库备库情况)

看到主库备库均处于open状态 第一个实例就搭建成功了!

后续初始化第二套实例。由于是交叉主备,故原本做备库的2号机,此时变成了第二套实例的主库。配置过程与第一套一致,下面说一说不同的地方。

初始化配置实例2

./dminit PATH=/dmdata/data/ charset=1 page_size=16 log_size=2048 port_num=5238 

初始化之后还是需要启停库一次。

此时备份还原是在2号主库备份,还原到1号备库。由于第一套主备守护集群已经搭建完毕,故在备份还原时就可以直接用之前的目录,覆盖第一次的备份记录。自己新建目录也可以,看个人习惯。

配置文件上的区别:
dm.ini配置文件修改 INSTANCE_NAME 即可

dmmal.ini配置文件 这个文件主要记录各种通信端口,为保证正常通信与前一个实例互不影响可以参照如下配置

MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DMSERVER01
MAL_HOST =192.168.2.17
MAL_PORT = 62141
MAL_INST_HOST = 192.168.2.17
MAL_INST_PORT = 5238
MAL_DW_PORT = 53141
MAL_INST_DW_PORT = 34141
[MAL_INST2]
MAL_INST_NAME = DMSERVER02
MAL_HOST = 192.168.2.18
MAL_PORT = 62142
MAL_INST_HOST = 192.168.2.18
MAL_INST_PORT = 5238
MAL_DW_PORT = 53142
MAL_INST_DW_PORT = 34142

dmarch.ini配置文件需要注意归档目录ARCH_DEST = /dmdata/data/arch
此处不要和之前的实例混淆 注意使用不同的目录。

dmwatcher.ini配置文件中INST_OGUID = 453332 注意修改oguid的值
主库备库均要修改成453332。

注册服务时也需要加以区分后缀

注册主库服务:
./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DAMENG/dm.ini -m mount -p DM01
./dm_service_installer.sh -t dmwatcher -watcher_ini /dmdata/data/DAMENG/dmwatcher.ini -p DM01
注册备库服务
./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DAMENG/dm.ini -m mount -p DM02
./dm_service_installer.sh -t dmwatcher -watcher_ini /dmdata/data/DAMENG/dmwatcher.ini -p DM02

监视器配置文件对应监视端口修改即可。
监视器看到如下信息即说明配置成功:
在这里插入图片描述
这种交叉主备守护集群,看似互不影响,其实还是存在一定联系,且会产生一定风险的。试想一下两个主库都正常对外服务,一旦一个主库出现故障挂掉,此时备库代替主库提供服务,如此一来原本两台服务器的压力将全部集中的一个服务器上面,对性能等方面的影响还是很巨大的。因此这个部署配置方式谨慎使用。

更多资讯请上达梦技术社区了解:https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值