linux环境搭建达梦一主两备守护集群

准备工作

前期准备工作可以看第一篇博客,此处直接从安装开始。

安装搭建达梦数据库

由于是一主两备,可以在一主一备的基础上搭建一主两备,但是要注意备份后只能以mount形式启动,否则会导致主备不同步。也可以从头开始搭建,下面讲解从头开始搭建,流程跟一主一备差不多,多一台虚拟机,配置文件加一点内容即可

创建用户组 创建用户

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

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

mkdir /home/dmdba/dmdata /home/dmdba/dmarch /home/dmdba/dmbak -p     //数据存放目录,归档日志存放目录,备份存放目录
chown -R dmdba:dinstall /home/dmdba/dmdata /home/dmdba/dmarch /home/dmdba/dmbak

修改open file的大小

ulimit -a       //查看open file的值
su - root
vi  /etc/security/limits.conf  //末尾加上如下两行
//* soft  nofile  65536
//* hard  nofile  65536
reboot            //重启

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

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

chmod 755 dm7_setup_rh7_64_ent_7.6.1.60_20200603.iso
mount dm7_setup_rh7_64_ent_7.6.1.60_20200603.iso  /mnt/
chmod 755 DMInstall.bin 
chown -R dmdba:dinstall DMInstall.bin
su -dmdba
./DMInstall.bin -i          //-i表示命令行安装

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

初始化实例

//进入安装bin目录
./dminit help                    //查看初始化信息帮助
./dminit PATH=/home/dmdba/dmdata/ page_size=16

备份

//进入安装bin目录
./dmrman ctlstmt="backup database '/home/dmdba/dmdata/DAMENG/dm.ini' full to backup2021 backupset '/home/dmdba/dmdata/DAMENG/backup'"     //备份
scp	-r 	 /home/dmdba/dmdata/DAMENG/backup/ root@192.168.150.132:/home/dmdba/dmdata/DAMENG   //由主库发送到备库1
scp	-r 	 /home/dmdba/dmdata/DAMENG/backup/ root@192.168.150.142:/home/dmdba/dmdata/DAMENG   //由主库发送到备库2

还原

备库1,备库2均需要恢复,还原,更新

chown -R dmdba:dinstall /home/dmdba/dmdata/DAMENG/backup  //由于是root用户发送所以需要修改权限
./dmrman ctlstmt="restore database '/home/dmdba/dmdata/DAMENG/dm.ini' from backupset   '/home/dmdba/dmdata/DAMENG/backup'"            //恢复   
./dmrman ctlstmt="recover database '/home/dmdba/dmdata/DAMENG/dm.ini' from backupset '/home/dmdba/dmdata/DAMENG/backup'"           //还原
./dmrman ctlstmt="recover database '/home/dmdba/dmdata/DAMENG/dm.ini' update db_magic"  //更新魔术

修改文件

修改主库配置文件:

进入DAMENG目录
修改dm.ini
vi dm.ini

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

修改dmmal.ini
vi dmmal.ini

MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DM1
MAL_HOST =192.168.150.131
MAL_PORT = 61141
MAL_INST_HOST = 192.168.150.131
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST2]
MAL_INST_NAME = DM2
MAL_HOST = 192.168.150.132
MAL_PORT = 61142
MAL_INST_HOST = 192.168.150.132
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142
MAL_INST_DW_PORT = 33142
[MAL_INST3]
MAL_INST_NAME = DM3
MAL_HOST = 192.168.150.142
MAL_PORT = 61143
MAL_INST_HOST = 192.168.150.142
MAL_INST_PORT = 5236
MAL_DW_PORT = 52143
MAL_INST_DW_PORT = 33143

修改dmarch.ini
新建一个arch文件夹
vi dmarch.ini

ARCH_WAIT_APPLY=1
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DM2
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME
ARCH_DEST = DM3
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdata/DAMENG/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 5120


修改dmwatcher.ini
vi 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/dmdata/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

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

scp dmmal.ini dmarch.ini dmwatcher.ini root@192.168.150.132:/home/dmdba/dmdata/DAMENG
scp dmmal.ini dmarch.ini dmwatcher.ini root@192.168.150.142:/home/dmdba/dmdata/DAMENG //主库发送至备库1,备库2
chown -R dmdba:dinstall  dmmal.ini           //在备库修改权限
chown -R dmdba:dinstall  dmwatcher.ini
chown -R dmdba:dinstall  dmarch.ini

配置主库oguid:
进入安装bin目录
以mount方式启动,以open形式启动会使主备不同步
./dmserver /home/dmdba/dmdata/DAMENG/dm.ini mount
运行disql,修改oguid 并设置为主库
./disql SYSDBA/SYSDBA
sp_set_oguid(453331);
alter database primary;
退出服务exit

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

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

修改dmarch.ini

ARCH_WAIT_APPLY=1
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DM1
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME
ARCH_DEST = DM3
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdata/DAMENG/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 5120

使用dmdba用户在/home/dmdba/dmdata/DAMENG文件夹下创建arch文件夹。

配置备库1oguid:
进入安装bin目录
以mount方式启动,以open形式启动会使主备不同步
./dmserver /home/dmdba/dmdata/DAMENG/dm.ini mount
运行disql,修改oguid 并设置为备库
./disql SYSDBA/SYSDBA
sp_set_oguid(453331);
alter database standby;
退出服务exit

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

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

修改dmarch.ini

ARCH_WAIT_APPLY=1
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DM1
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME
ARCH_DEST = DM2
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdata/DAMENG/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 5120

使用dmdba用户在/home/dmdba/dmdata/DAMENG文件夹下创建arch文件夹。

配置备库2oguid:
进入安装bin目录
以mount方式启动,以open形式启动会使主备不同步
./dmserver /home/dmdba/dmdata/DAMENG/dm.ini mount
运行disql,修改oguid 并设置为备库
./disql SYSDBA/SYSDBA
sp_set_oguid(453331);
alter database standby;
退出服务exit

在备库2新建监视器配置文件
在dmdbms目录下创建监视器配置文件
vi /home/dmdba/dmdbms/dmmonitor.ini

MON_DW_Confirm = 1
MON_LOG_PATH = /home/dmdba/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.150.131:52141
MON_DW_IP = 192.168.150.132:52142
MON_DW_IP = 192.168.150.142:52143

注册服务

用root用户进入/home/dmdba/dmdbms/script/root目录
主库:

./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdata/DAMENG/dm.ini -m mount -p DM1   //注册服务
./dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdba/dmdata/DAMENG/dmwatcher.ini -p DM1   //注册守护进程

备库1:

./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdata/DAMENG/dm.ini -m mount -p DM2   //注册服务
./dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdba/dmdata/DAMENG/dmwatcher.ini -p DM2   //注册守护进程

备库2:

./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdata/DAMENG/dm.ini -m mount -p DM3   //注册服务
./dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdba/dmdata/DAMENG/dmwatcher.ini -p DM3   //注册守护进程
./dm_service_installer.sh -t dmmonitor -monitor_ini /home/dmdba/dmdbms/dmmonitor.ini -p DM           //注册监视器

进入root用户关闭防火墙
systemctl stop firewalld

启动服务

监视器如果是建立的确认监视器 又需要查看信息的话,可以先关闭监视器服务,之后直接从前台启动,代码如下:
进入安装bin目录

./DmServiceDM1 start  //启动主库服务
./DmServiceDM2 start   //启动备库1服务
./DmServiceDM3 start   //启动备库2服务
./DmWatcherServiceDM1 start    //启动主库守护进程服务
./DmWatcherServiceDM2 start    //启动备库守护进程服务
./DmWatcherServiceDM3 start    //启动备库守护进程服务
./dmmonitor /home/dmdba/dmdbms/dmmonitor.ini   //备库2启动监视器(show查看主库备库情况)

监视器查看情况如下,DM1为主库,DM2,DM3为备库均处于open状态
在这里插入图片描述

主库异常后状态转换情况

使用命令查看进程情况,使用kill -9命令直接杀掉主库进程,监视器会监视到主库异常如下图:
在这里插入图片描述
[外链图片转存失败,源站可能有防盗在这里插入!链机制,建描述]议将图片上https://传(imblog.csdnimg.cn/c5e71ae949a7423a914bbd8f023d1e.png?x-oss-process=image/watermark,type_ZmFgZ3poZW5naGupdGk,sh4BYVadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Jvb2tpZV9kcmFnb25f,size_16,color_FFFFFF,t_70)无7423a914d0bbc8f023d1e.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Jvb2tpZV9kcmFnb25f,size_16,color_FFFFFF,t_70)]
守护进程状态切换情况
在这里插入图片描述
DM2也就是备一自动接管DM1成为主库,DM1,DM2成为备库

在这里插入图片描述
之后恢复正常运行

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值