当前位置:网站首页>达梦实时主备集群搭建
达梦实时主备集群搭建
2022-07-24 13:59:00 【51CTO】
读写分离集群部署
主机规划
主机名 | 服务ip | 心跳ip | 数据库名 | 实例名 |
dm-16 | 192.168.3.16 | 无需实例,仅做监视管理用 | 无需实例,仅做监视管理用 | |
dm-17 | 192.168.2.17 | 192.168.3.17 | dmrw | dmrw1 |
dm-18 | 192.168.3.18 | 192.168.3.18 | dmrw | dmrw2 |
端口规划
实例名 | 实例端口 | MAL 系统监听 TCP 连接的端口 | 实例本地的守护进程监听 TCP 连接的端口 | 实例监听守护进程 TCP 连接的端口 |
dmrw1 | 5236 | 7336 | 7436 | 7536 |
dmrw2 | 5236 | 7336 | 7436 | 7536 |
本地存储LVM磁盘
磁盘 | LVM磁盘名/用途 |
/dev/sda(25G) | /dev/mapper/centos-root数据库安装磁盘) |
/dev/sda(25G) | /dev/mapper/centos-root数据磁盘) |
目录规划
数据库软件安装目录 | /home/dmdba/dmdbms |
实例安装目录 | /home/dmdba/dmdata/ |
归档日志存放目录 | /home/dmdba/dmdata/arch |
备份文件存放目录 | /home/dmdba/dmdata/dmbak/ |
搭建步骤
修改主机名
vi /etc/hostname
修改规划上面的主机名
软件安装
dm数据库单节点安装步骤,此处略
初始化实例
二个节点都要操作(dm-17\dm-18)
dminit path=/home/dmdba/dmdata page_size=32 extent_size=32 charset=1 log_size=2048 db_name=dmrw instance_name=dmrw

以主机dm-17为读写分离主库,启动实例
dmserver /home/dmdba/dmdata/dmrw/dm.ini
出现system is ready后输入exit停止数据库
脱机备份数据库
在主机dmdb01上执行以下命令,确认主库 dmap 服务已启动:
ps -ef|grep dmap

dmdba用户 启动dmrman工具
dmrman use_ap=2
执行 backup 全库:
backup database '/home/dmdba/dmdata/dmrw/dm.ini' backupset '/home/dmdba/dmdata/dmbak/bakfull';

备份还原备库
备份的文件/home/dmdba/dmdba/dmbak/bakfull 拷贝到服务器dm-18上。
scp -r /home/dmdba/dmdata/dmbak/bakfull 192.168.2.18:/home/dmdba/dmdata/dmbak/.
在主机dm-18上
使用 dmrman 工具还原备库,dmdba 用户执行:
dmrman use_ap=2
进入dmrman工具交互界面
执行 restore:
restore database '/home/dmdba/dmdata/dmrw/dm.ini' from backupset '/home/dmdba/dmdata/dmbak/bakfull'

完成后执行 recover:
recover database '/home/dmdba/dmdata/dmrw/dm.ini' from backupset '/home/dmdba/dmdata/dmbak/bakfull '

最后执行 recover update db_magic。
recover database '/home/dmdba/dmdata/dmrw/dm.ini' update db_magic;

修改dm.ini参数
所有节点都要修改
执行以下命令:
vi /home/dmdba/dmdata/dmrw/dm.ini
主库dm-17上修改以下参数值:
INSTANCE_NAME = dmrw1
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
备库dm-18上修改以下参数值:
INSTANCE_NAME = dmrw2
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
配置归档配置文件
在实例目录下新建文件 dmarch.ini,执行以下命令:
vi /dmdata/dmdb/dmarch.ini
在实例目录下新建文件 dmarch.ini,执行以下命令:
vi /dmdata/dmdb/dmarch.ini
主库dm-17上添加以下内容:
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = dmrw2
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME
ARCH_DEST = dmrw3
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdata/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 102400
备库dm-18上添加以下内容:
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = dmrw1
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME
ARCH_DEST = dmrw3
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdata/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 102400
配置dmmal.ini(心跳网络)
两个节点都要配置,且配置必须相同
[[email protected] dmrw]$ cat dmmal.ini
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 15
[MAL_INST1]
MAL_INST_NAME = dmrw1
MAL_HOST = 192.168.3.17
MAL_PORT = 7336
MAL_INST_HOST = 192.168.2.17
MAL_INST_PORT = 5236
MAL_DW_PORT = 7436
MAL_INST_DW_PORT = 7536
[MAL_INST2]
MAL_INST_NAME = dmrw2
MAL_HOST = 192.168.3.18
MAL_PORT = 7336
MAL_INST_HOST = 192.168.2.18
MAL_INST_PORT = 5236
MAL_DW_PORT = 7436
MAL_INST_DW_PORT = 7536
配置守护进程
二个节点都要配置,且配置必须相同
[[email protected] dmrw]$ cat dmwatcher.ini
[GRP_RW]
DW_TYPE = GLOBAL
DW_MODE =MANUAL
DW_ERROR_TIME = 30
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 20
INST_OGUID = 453331
INST_INI = /home/dmdba/dmdata/dmrw/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
方式启动数据库实例
使用 dmdba 用户,在主库上执行以下命令(主备库都执行):
dmserver /home/dmdba/dmdata/dmrw/dm.ini mount
在新的终端使用 disql 工具连接数据库:
./disql SYSDBA/SYSDBA
主备库都修改 oguid,执行以下命令:
sp_set_oguid(453331);

主库dm-17上修改数据库模式为 primary,执行以下命令:
alter database primary;

备库dm-18上类似操作,但注意修改数据库模式为 standby,执行以下命令:
alter database standby;

dmdba 用户下,到数据库安装目录的 bin 下执行以下命令(主备库都执行):
dmwatcher /home/dmdba/dmdata/dmrw/dmwatcher.ini

查看状态
使用DM管理工具,连上二个实例上面查看


配置监视器(服务器192.168.3.16)
192.168.3.16首先也要安装数据库软件再操作下面步骤
vi /home/dmdba/dmdbms/bin/dmmonitor.ini
添加以下内容:
说明:具体配置时,请把#和#之后的中文内容删除。
MON_DW_CONFIRM = 1
MON_LOG_PATH = /home/dmdba/dmdbms/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 200
MON_LOG_SPACE_LIMIT = 1024
[GRP_RW]
MON_INST_OGUID = 453331
MON_DW_IP = 192.168.3.17:7436
MON_DW_IP = 192.168.3.18:7436

启动监视器
在服务器dm-16上操作:
dmmonitor /dmdata/dmdb/dmmonitor.ini

可以看见集群状态ok
以上证明集群搭建成功
关库
按照关闭dmmonitor---dmwatcher关闭后(dmwatcher关闭顺序先主后备)---dmserver(dmserver关闭顺序先主后备)的顺序依次关闭数据库
添加服务作为系统启动服务
下面的操作在主备节点都要执行,执行顺序:先主库执行----备库执行:
cd /home/dmdba/dmdbms/script/root/
./dm_service_installer.sh -t dmwatcher -p dmrw -watcher_ini /home/dmdba/dmdata/dmrw/dmwatcher.ini
./dm_service_installer.sh -t dmserver -p dmrw -dm_ini /home/dmdba/dmdata/dmrw/dm.ini
监视器执行(192.168.3.16)执行
使用 root 用户,到数据库安装目录的script/root下。
cd /home/dmdba/dmdbms/script/root/
./dm_service_installer.sh -t dmmonitor -p monitor-confirm -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor.ini
启动命令
systemctl start DmMonitorServicemonitor-confirm
主机dm-16再添加一个普通监视器
cd /home/dmdba/dmdbms/bin
cp dmmonitor.ini dmmonitor-normal.ini
修改dmmonitor-normal.ini
[[email protected] bin]$ cat dmmonitor-normal.ini
MON_DW_CONFIRM = 0
MON_LOG_PATH = /home/dmdba/dmdbms/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 200
MON_LOG_SPACE_LIMIT = 1024
[GRP_RW]
MON_INST_OGUID = 453331
MON_DW_IP = 192.168.3.17:7436
MON_DW_IP = 192.168.3.18:7436
启动集群:
启动备库实例
192.168.2.18启动实例
systemctl start DmServicedmrw

启动主库实例
192.168.2.17
systemctl start DmServicedmrw

启动主库守护进程
192.168.2.17
systemctl start DmWatcherServicedmrw

启动备库守护进程
192.168.2.18
systemctl start DmWatcherServicedmrw
启动监视服务
192.168.3.16

查看集群状态
法一:查看日志:
cat /home/dmdba/dmdbms/log/DmMonitorservicemonitor-confirm.log
法二:前端查看
dmmonitor path= /home/dmdba/dmdbms/bin/dmmonitor-normal.ini

主备与读写分离比较归纳
主备及读写分离本质还是相同的,都是对redo日志的处理不同产生的几种解决模式,
主库redo 备库模式 | Realtime | Timely |
高性能 Arch_wait_apply=0 | 优点: 1、备库对主库性能影响小 2、保障备库最快收到redo日志 | 优点: 主库日志比备库只多不少 备库与主库能保证事务一致 |
缺点:备库数据因为redo未及时重演,可能会有延迟 | 缺点: 备库数据可能有延迟,一方面来自于redo未及时重演引起的延迟,另一方面来自于主库写联机日志这时间引发的延迟 | |
架构模式:实时主备 | 架构模式:普通主备架构 | |
适用场景:业务一致性要求一般,对主库可用性要求较高的场景 | 适用场景:备库对业务的实时一致性要求一般,但对容灾的备库有事务不能丢失要求 | |
事务一致 Arch_wait_apply=1 | 优点:在满足事务一致性基础上,对主库性能影响最低 | 优点: 强事务一致性保证,主备数据库能同步 |
缺点: 1、主库性能受备库的影响较高 2、当主库故障时有可能引起备库与主库数据不一致 | 缺点: 主库性能影响受备库居中, | |
架构模式:实时读写分离集群,要求守护进程是自动模式 | 架构架构模式:普通读写分离集群 | |
适用场景:业务一致性要求一般,对主库可用性要求较高的场景 | 适用场景:业务一致性要求高,对主库可用性没有高要求场景 |
达梦社区地址: https://eco.dameng.com
边栏推荐
- Introduction to the separation of front and rear platforms of predecessors
- Detailed analysis of common command modules of ansible service
- Csp2021 T3 palindrome
- Soft link, hard link
- CSP2021 T3 回文
- OWASP ZAP安全测试工具使用教程(高级)
- The gather function of tidyr package of R language converts a wide table into a long table (a wide table into a long table), the first parameter specifies the name of the new data column generated by
- Summary of week 22-07-23
- 软链接、硬链接
- Network security - file upload whitelist bypass
猜你喜欢

CSDN垃圾的没有底线!

Network security - file upload competitive conditions bypass

网络安全——文件上传竞争条件绕过

Network security -- Service Vulnerability scanning and utilization

Multithreaded common classes

CSDN garbage has no bottom line!

Unity pedestrians walk randomly without collision
![[C language note sharing] - dynamic memory management malloc, free, calloc, realloc, flexible array](/img/3f/35c9ff3be5c0ef781ffcb537287a20.png)
[C language note sharing] - dynamic memory management malloc, free, calloc, realloc, flexible array

软链接、硬链接

Nmap security testing tool tutorial
随机推荐
【C语言笔记分享】——动态内存管理malloc、free、calloc、realloc、柔性数组
Add an element to the object array with unshift
Wechat applet todo case
Data type binary string type
网络安全——文件上传白名单绕过
网络安全——文件上传竞争条件绕过
CSDN垃圾的没有底线!
Flinktable & SQL (VI)
2022.7.22 simulation match
FlinkTable&SQL(六)
Flink容错机制(五)
2021-07-09
String - 459. Repeated substrings
Editor formula
FlinkTable&SQL(七)
uni-app 背景音频 熄屏或者退回桌面之后不在播放
2021年最新最全Flink系列教程_Flink原理初探和流批一体API(二.五)v2
CAS atomic type
Nmap security testing tool tutorial
SQL subquery