达梦8读写分离集群搭建

达梦读写分离集群搭建

端口规划

ABC
心跳ip192.168.56.111192.168.56.112192.168.56.114
业务ip172.16.1.1172.16.1.2172.16.1.4
服务器作用主库备库监视器

一.初始化实例

A/B:

./dminit path=/home/dmdba/dmdbms/data

开启服务

/home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini

在这里插入图片描述

在末尾输入exit退出

二.配置读写分离集群

(一)数据准备

1.使用dmdba用户进行脱机备份
检查dmap是否启动

ps -ef|grep dmap

在这里插入图片描述

脱机备份

/home/dmdba/dmdbms/bin/dmrman ctlstmt="backup database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' full to backup20220805 backupset '/home/dmdba/dmdbms/data/DAMENG/bak/backup20220805'"

在这里插入图片描述

备份成功后将文件夹发送至备库B

scp -r /home/dmdba/dmdbms/data/DAMENG/bak/backup20220805/ 192.168.56.112:/home/dmdba/dmdbms/data/DAMENG/bak

在这里插入图片描述2.在备库上进行备份还原与更新
#在备库上使用dmrman工具,备份文件backup20220805还原、恢复与更新

首先要将接收到的备份文件的权限修改为dmdba

chown -R dmdba.dinstall /home/dmdba/dmdbms/data/DAMENG/bak/backup20220805

还原

/home/dmdba/dmdbms/bin/dmrman ctlstmt="restore database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmdbms/data/DAMENG/bak/backup20220805'"

在这里插入图片描述

恢复

/home/dmdba/dmdbms/bin/dmrman ctlstmt="recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmdbms/data/DAMENG/bak/backup20220805'"

在这里插入图片描述

更新db_magic

/home/dmdba/dmdbms/bin/dmrman ctlstmt="recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' update db_magic"

在这里插入图片描述

(二)配置主库A

1.配置dm.ini

vi /home/dmdba/dmdbms/data/DAMENG/dm.ini
INSTANCE_NAME=DM1
ARCH_INI=1
MAL_INI=1
ALTER_MODE_STATUS= 0
ENABLE_OFFLINE_TS = 2

2.创建dmmal.ini

vi /home/dmdba/dmdbms/data/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 5 
MAL_CONN_FAIL_INTERVAL = 5 
[MAL_INST1] 
MAL_INST_NAME = DM1
MAL_HOST =172.16.1.1
MAL_PORT = 61141 
MAL_INST_HOST = 192.168.56.111
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141 
MAL_INST_DW_PORT = 33141 
[MAL_INST2] 
MAL_INST_NAME = DM2 
MAL_HOST = 172.16.1.2
MAL_PORT = 61142 
MAL_INST_HOST = 192.168.56.112
MAL_INST_PORT = 5236 
MAL_DW_PORT = 52142 
MAL_INST_DW_PORT = 33142

3.配置dmarch.ini

vi /home/dmdba/dmdbms/data/DAMENG/dmarch.ini
ARCH_WAIT_APPLY=1
[ARCHIVE_REALTIME1] 
ARCH_TYPE = REALTIME
ARCH_DEST = DM2  
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL 
ARCH_DEST = /home/dmdba/dmdbms/data/DAMENG/arch 
ARCH_FILE_SIZE = 512 
ARCH_SPACE_LIMIT = 10240

使用dmdba用户在/home/dmdba/dmdbms/data/DAMENG文件夹下创建arch文件夹

cd /home/dmdba/dmdbms/data/DAMENG
mkdir -p arch

4.配置dmwatcher

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

使用dmdba用户将配置文件发送至备库

scp dmmal.ini dmarch.ini dmwatcher.ini @192.168.56.112:/home/dmdba/dmdbms/data/DAMENG 

并在备库检查这个三个文件的权限是否属于dmdba:dinstall
ll

如果不属于,使用以下语句修改权限:

chown -R dmdba:dinstall  dmmal.ini
chown -R dmdba:dinstall  dmwatcher.ini
chown -R dmdba:dinstall  dmarch.ini

配置OGUID

用dmdba用户以mount模式开启主库

/home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini mount

显示后重新打开终端(别关)
登录disql
修改oguid

sp_set_oguid(453331);

修改数据库模式

alter database primary;

修改成功以后,在/home/dmdba/dmdbms/data/DAMENG/dm.ini mount窗口后输入exit退出

(三)配置备库B

1.修改dm.ini文件

vi /home/dmdba/dmdbms/data/DAMENG/dm.ini
INSTANCE_NAME=DM2
ARCH_INI=1
MAL_INI=1
ALTER_MODE_STATUS= 0
ENABLE_OFFLINE_TS = 2

2.修改dmarch.ini文件

vi /home/dmdba/dmdbms/data/DAMENG/dmarch.ini
ARCH_WAIT_APPLY=1
[ARCHIVE_REALTIME1] 
ARCH_TYPE = REALTIME
ARCH_DEST = DM1 
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL 
ARCH_DEST = /home/dmdba/dmdbms/data/DAMENG/arch 
ARCH_FILE_SIZE = 512 
ARCH_SPACE_LIMIT = 10240

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

cd /home/dmdba/dmdbms/data/DAMENG
mkdir -p arch

3.配置备库的OGUID

#使用dmdba用户以mount模式开启备库
进入bin目录下

cd /home/dmdba/dmdbms/bin
./dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini mount

在这里插入图片描述

连接disql
修改oguid,将数据库模式修改为备库

sp_set_oguid(453331);
alter database standby;

在这里插入图片描述

修改成功以后,./dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini mount窗口后输入exit退出。

注意:dmmal文件以及在配置主库的过程中拷贝进了备库,它不需要进行修改

(四)注册服务

在主和备数据库服务器上分别注册实例服务和守护进程服务。
在监视器所在服务器上注册监视器服务。

主库

注册主库实例服务
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/data/DAMENG/dm.ini -m mount -p DM1
注册主库守护进程服务
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini -p DM1

备库

注册备库服务
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/data/DAMENG/dm.ini -m mount -p DM2
注册备库守护进程服务
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini -p DM2

监视器

在第三台服务器上配置监视器并注册监控器服务
配置确认监视器

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 = 172.16.1.1:52141
MON_DW_IP = 172.16.1.2:52142
注册监视器服务
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -monitor_ini /home/dmdba/dmdbms/dmmonitor.ini -p DM

三.启停集群

启动集群的顺序

主库实例(DmServiceDM1)

/home/dmdba/dmdbms/bin/DmServiceDM1 start

备库实例(DmServiceDM2)

/home/dmdba/dmdbms/bin/DmServiceDM2 start

主库守护进程(DmWatcherServiceDM1)

/home/dmdba/dmdbms/bin/DmWatcherServiceDM1 start

备库守护进程(DmWatcherServiceDM2)

/home/dmdba/dmdbms/bin/DmWatcherServiceDM2 start

监视器服务(DmMonitorServiceDM)

/home/dmdba/dmdbms/bin/DmMonitorServiceDM start

关闭集群的顺序

监视器服务(DmMonitorServiceDM)

/home/dmdba/dmdbms/bin/DmMonitorServiceDM stop

备库守护进程(DmWatcherServiceDM2)

/home/dmdba/dmdbms/bin/DmWatcherServiceDM2 stop

主库守护进程(DmWatcherServiceDM1)

/home/dmdba/dmdbms/bin/DmWatcherServiceDM1 stop

主库实例(DmServiceDM1)

/home/dmdba/dmdbms/bin/DmServiceDM1 stop

备库实例(DmServiceDM2)

/home/dmdba/dmdbms/bin/DmServiceDM2 stop

四.验证集群同步状态

启动监视器

/home/dmdba/dmdbms/bin/dmmonitor /home/dmdba/dmdbms/dmmonitor.ini

输入show查看集群

在这里插入图片描述

使用disql 客户端验证。
使用 disql 客户端登录主库,创建rwtest测试表,插入数据,执行以下命令:

home/dmdba/dmdbms/bin/disql SYSDBA/SYSDBA@172.16.1.1 

SQL 提示符下执行以下命令:

create table rwtest(id int);
insert into rwtest values (1);
commit;

在这里插入图片描述使用 disql 客户端登录备库,查询测试表验证,执行以下命令:

home/dmdba/dmdbms/bin/disql SYSDBA/SYSDBA@172.16.1.2

SQL 提示符下执行以下命令:

select * from rwtest;

在这里插入图片描述
更多达梦相关知识:https://eco.dameng.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值