一、什么是DSC+DW
DMDSC:达梦共享存储集群,允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负载均衡等特性。DMDSC支持故障自动切换和故障自动重加入,某一个数据库实例故障后,不会导致数据库服务无法提供。数据文件、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这文件,这些文件保存在共享存储上。每个节点有自己独立的联机日志和归档日志,其中联机日志保存在共享存储上,归档日志可以保存在本地存储上也可以保存在共享存储上
DMDW:达梦数据守护集群,用于解决由于硬件故障、自然灾害等原因导致的数据库服务长时间中断问题,提供不间断的数据库服务,可同时满足用户对数据安全性和高可用性的要求。它的实现原理是将主库(生产库)产生的Redo日志传输到备库,备库接收并重新应用 Redo 日志,从而实现备库与主库的数据同步6
由上图可以看出,达梦dsc有实例1、实例2、实例3构成,均为主库可提供读写,实现了大规模的负载均衡,同时DMDW达梦数据守护集群保证保证安全性和可持续性
二、集群规划
类型 | 业务IP | 心跳IP | 实例名 | 节点用途 |
DSC主库 | 192.168.100.1 | 192.168.99.1 | DSC1 | DSC主库1 |
192.168.100.2 | 192.168.99.2 | DSC2 | DSC主库2 | |
DSC_DW备库 | 192.168.100.3 | 192.168.99.3 | DW_S | DSC备库 |
三、搭建DSC
3.1、环境准备
DMDSC共享存储设备支持裸设备及块设备,本次我采用在虚拟机上裸设备进行搭建
3.2、绑定裸设备
--输入 fdisk /dev/sdb(只需要一个节点进行操作)
cat /usr/lib/udev/rules.d/60-raw.rules --完成上述配置后,需要通过UDEV持久化 |
3.3、安装达梦数据库
-----前期已经部署很多,这里不再赘述
3.4、DMDSC配置文件
我这里DSC所有的配置文件均存放在一个位置:
3.4.1、配置dmdcr_cfg.ini
#两个节点均配置 echo ' #批量添加以下内容: |
3.4.2、创建且初始化DMASM磁盘
#任意一个节点操作 --使用 DMASMCMD 工具初始化(dmdba用户执行) cd /dm8/dmdbms/bin #仅在节点1执行,因为是共享存储,在节点1对共享磁盘做的操作,节点2 也能生效 #格式化裸设备:仅在节点1执行,因为是共享存储,在节点1对共享磁盘做的操作,节点2 也能生效 #初始化DCR & Voting Disk(注册表盘和表决盘)仅在节点1执行,因为是共享存储,在节点1对共享磁盘做的操 作,节点2 也能生效 #执行结果 ASM>init votedisk '/dev/raw/raw2' from '/dm8/dmdbms/config/dmdcr_cfg.ini' |
3.4.3、配置dmasvrmal.ini
#两个节点均配置 #DMASMSVR 是提供 DMASM 服务的主要载体,每个提供 DMASM 服务的节点都必须启动一个 DMASMSVR 服务器 echo '#批量添加以下内容 |
3.4.4、配置dmdcr.ini
--节点1添加以下内容 echo '#批量添加以下内容 --节点2添加以下内容 |
3.4.5、启动DMCSS,DMASM服务
#2个节点分别开2个窗口,先后分别启动 dmcss、dmasmsvr 程序。 启动dmasmsvr命令:(2个节点分别运行)#注意:如果dmdcr已经配置自动拉起功能,那么这一步就不用执行 #主屏幕打印相关信息 --查看服务是否正常(dmcss、dmasmsvr) dmdba 5360 5304 0 17:37 pts/2 00:00:00 ./dmcss dcr_ini=/dm8/dmdbms/config/dmdcr.ini |
3.4.6、创建DMASM磁盘组
#DMASMTOOL 是 DMASM 文件系统管理工具,提供了一套类 Linux 文件操作命令, #创建日志磁盘组 |
3.4.7、配置dminit.ini
echo '#批量添加以下内容: cat /dm8/dmdbms/config/dminit.ini |
3.5、初始化实例
----节点1操作执行:使用dmdba用户,初始化实例 ,执行以下命令:SYSDBA系统默认密 码:SYSDBA ./dminit control=/dm8/dmdbms/config/dminit.ini ----节点2操作执行:使用dmdba用户,初始化实例 ,执行以下命令: #将1节点/dm8/dmdbms/data下的内容拷贝到 节点2机器相同目录下 |
3.6、前台启动数据库服务
分别启动 dmserver 即可完成 DMDSC集群搭建。如果 DMCSS 配置有自动拉起 dmserver 的功能,
#节点2:(dmdba用户执行) |
3.7、配置监视器
同 一个 DMDSC 集群中,允许最多同时启动 10 个监视器,建议监视器放在独立的第三
1)在单独配置的监视器安装dm8数据库软件 2)配置监视器参数 cat /dm8/dmdbms/config/dmcssm.ini
[CSS1] auto check = TRUE, global info: [CSS2] auto check = TRUE, global info: #实例信息 =================== group[name = GRP_ASM, seq = 1, type = ASM, Control Node = 1] ======== |
#如果不需要DMDW备份,配置到这步跳到第X步进行css注册
-----------------//DSC配置结束//-------------
4、 配置 DMDSC+单节点数据守护
4.1、配置 dmarch.ini
--节点1 [ARCHIVE_REMOTE] #远程归档 cat /dm8/dmdbms/config/dmarch.ini --节点2 [ARCHIVE_REMOTE] #远程归档 cat /dm8/dmdbms/config/dmarch.ini |
4.2、打开归档
--节点1 --节点2 |
4.3、数据还原
数据还原目的是还原到单节点备库里,重启 DMDSC 集群的两个 dmserver 实例,然后再正常退出。在 DMDSC 集群生成有归 档日志的情况下进行脱机备份,以便后续校验日志连续性时使用。
#要注意:一定要确保两个节点的css、asmsvr已经启动,且数据库关闭 --脱机备份 DMDSC 集群 #运行结果 # 配置单节点备库(单节点备库上执行)
|
4.4、配置 dm.ini
依次配置 DMDSC 主库所有节点和单节点备库的 dm.ini 文件,修改数据守护相关的参数配置
4.4.1、DSC节点1配置 dm.ini
cd /dm8/dmdbms/data/DSC2 INSTANCE_NAME = DSC1 1、批量修改 2、查看修改的结果:查看是否修改成功 |
4.4.2、DSC节点2配置 dm.ini
cd /dm8/dmdbms/data/DSC2 1、批量修改 2、查看修改的结果:查看是否修改成功 |
4.4.3、DW备库节点配置 dm.ini
cd /dm8/dmdbms/data/DW_S 1、批量修改 2、查看修改的结果:查看是否修改成功 |
4.4、配置 dmmal.ini
在 DMDSC 集群的 dmmal.ini 文件基础上,增加备库 GRP1_RT_01 的配置项。
所有节点实例的 dmmal.ini 文件内容是一致的,配置完成后,拷贝到每个节点实例
dm.ini 中指定的 CONFIG_PATH 目录下
#添加以下内容 [MAL_INST1] [MAL_INST2] |
4.5、配置 dmarch.ini
---节点1 [ARCHIVE_REMOTE] [ARCHIVE_REALTIME] [ARCHIVE_REMOTE] [ARCHIVE_REALTIME] cat /dm8/dmdbms/data/DSC2_CONF/dmarch.ini ; ---DW备库 [ARCHIVE_REALTIME1] cat /dm8/dmdbms/data/DW_S/dmarch.ini; |
4.6、配置 dmwatcher.ini
依次配置每个节点实例的 dmwatcher.ini 文件,放到各自 dm.ini 中指定的
CONFIG_PATH 目录下
---节点1 cat /dm8/dmdbms/data/DSC1_CONF/dmwatcher.ini;
cat /dm8/dmdbms/data/DSC2_CONF/dmwatcher.ini; ---DW备库节点 cat /dm8/dmdbms/data/DW_S/dmwatcher.ini |
4.7、配置 dmmonitor.ini
编辑 dmmonitor.ini 文件,放在/dm/data 目录下: cat /dm8/dmdbms/monitor/dmmonitor.ini; |
4.8、重启 dmcss 和 dmasmsvr
--节点1: --节点2: |
4.9、启动主备库集群
启动 DMDSC 集群的两个 dmserver 实例 --手动启动命令如下: # 启动dw备库节点 |
4.10、设置 OGUID
---集群:连接任一的DSC节点进行配置 SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); ---集群:DIsql 连接单节点备库,设置备库 OGUID。 SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); |
4.11、修改主备库模式
---集群:连接任一的DSC节点进行配置 ---集群:DIsql 连接DW备库节点,修改主备库模式 |
4.12、启动守护进程
---DSC节点1 ---DSC节点2 ---备库的守护进程: |
4.13、启动监视器
--启动数据守护监视器: --DMDSC 集群也有自己的监视器工具,需要时也可以启动 |
4.14、正常启动下,有哪些进程
----DSC节点(dmcss、dmasmsvr、dmserver、dmwatcher) ----备份节点(dmserver、dmwatcher) ----监视器(dmwatcher、dmcssm) |
4.15、注册服务
----DSC节点注册:不能单独注册dmasmsvr,因为dmasmsvr依赖dmcss,所以集群只需要注册dmcss 和dmwatcher,开启自动dmserver、dmserver #注册dmwatcher #注册服务 ---节点2 #注册dmwatcher #注册服务 ----DW备机注册服务: #注册dmwatcher
#注册dmmonitor ----重启服务,看一下服务有没有自动起来 |
5、DSC测试
--1、客户端(管理工具)查询数据同步情况
./dmasmtool DCR_INI=/dm8/dmdbms/config/dmdcr.ini --查询日志文件:
file : ARCHIVE_LOCAL1_0x1C04FB98_EP1_2022-09-16_15-56-37.log --查询数据文件: ---进入DMASMTOOL在磁盘上查询文件: |
6、DSC故障模拟
--DSC集群节点:
情形3:当集群里的两个节点都宕机了,如果短时没办法恢复DSC,此时需要手工切换备库提供服务:尽量别手动切换,可能会出现问题 alter database mount; |
----------------------------//DSC+DW集群到此配置结束//----------------------------------
更多内容,请访问达梦社区地址:https:eco.dameng.com