DM8数据库读写分离集群配置
DM8数据库读写分离集群配置
一、部署规划
|
主机名 |
服务ip |
心跳ip |
数据库名 |
实例名 |
|
DM01 |
192.168.3.11 |
192.168.3.18 |
DAMENG |
dmrw1 |
|
DM02 |
192.168.3.12 |
192.168.3.19 |
DAMENG |
dmrw2 |
|
DM03 |
192.168.3.13 |
192.168.3.20 |
DAMENG |
dmrw3 |
端口规划:
|
实例名 |
实例端口 |
MAL 系统监听 TCP 连接的端口 |
实例本地的守护进程监听 TCP 连接的端口 |
实例监听守护进程 TCP 连接的端口 |
|
dmrw1 |
5236 |
61141 |
52141 |
33141 |
|
dmrw2 |
5236 |
61141 |
52141 |
33141 |
|
dmrw3 |
5236 |
61141 |
52141 |
33141 |
目录规划:(在对应服务器上创建目录owner为dmdba组为dinstall)
|
数据库软件安装目录 |
/db/dmdbms |
|
实例安装目录 |
/dm/dmdbms/data |
|
归档日志存放目录 |
/dm/dmdbms/data/arch |
|
备份文件存放目录 |
/dm/dmdbms/bak |
二、数据库软件安装
注:所有服务器节点都需要安装数据库软件。
2.1 操作系统配置
2.1.1 操作系统用户创建
groupadd -g 12349 dinstall
useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba
2.1.2 修改操作系统用户变量
使用dmdba用户执行以下命令:
vi .bash_profile
添加如下内容:
export DM_HOME=/dm/dmdbms
export PATH=$PATH:$DM_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin
变量生效:
[dmdba@DM1 ~]$ source .bash_profile
2.1.3 修改操作系统用户资源限制
使用root用户执行以下命令:
vi /etc/security/limits.conf
添加如下内容:
dmdba soft nice 0
dmdba hard nice 0
dmdba soft as unlimited
dmdba hard as unlimited
dmdba soft fsize unlimited
dmdba hard fsize unlimited
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft data unlimited
dmdba hard data unlimited
2.1.4 修改操作系统参数
使用root用户执行以下命令:
vi /etc/sysctl.conf
添加如下内容:
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
vm.swappiness = 0
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
kernel.core_pattern=/coredump/%e.core.%p
参数生效:
sysctl -p
2.1.5 安装目录创建
使用root用户执行以下命令:
mkdir -p /dm/dmdbms
chown -R dmdba:dinstall /dm
2.2 数据库软件安装
2.2.1 解压软件包
使用root用户执行以下命令:
unzip dm8_20210630_x86_rh6_64_ent.zip
chown dmdba:dinstall DM*
2.2.2 数据库软件安装
注:主备节点和监视器节点都需安装数据库软件
使用dmdba用户执行以下命令:
./DMInstall.bin -i
Please select the installer's language (E/e:English C/c:Chinese) [E/e]:c
解压安装程序..........
欢迎使用达梦数据库安装程序
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n
是否设置时区? (Y/y:是 N/n:否) [Y/y]:y
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=伊斯兰堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [21]:21
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1
所需空间: 1178M
请选择安装目录 [/home/dmdba/dmdbms]:/dm/dmdbms
可用空间: 36G
是否确认安装路径(/dm/dmdbms)? (Y/y:是 N/n:否) [Y/y]:y
安装前小结
安装位置: /dm/dmdbms
所需空间: 1178M
可用空间: 36G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2021-10-07 18:11:25
[INFO] 安装达梦数据库...
2021-10-07 18:11:25
[INFO] 安装 基础 模块...
2021-10-07 18:12:10
[INFO] 安装 服务器 模块...
2021-10-07 18:12:11
[INFO] 安装 客户端 模块...
2021-10-07 18:12:19
[INFO] 安装 驱动 模块...
2021-10-07 18:12:21
[INFO] 安装 手册 模块...
2021-10-07 18:12:23
[INFO] 安装 服务 模块...
2021-10-07 18:12:24
[INFO] 移动日志文件。
2021-10-07 18:12:24
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/dm/dmdbms/script/root/root_installer.sh
安装结束
三、读写分离集群配置
3.1 创建数据库实例
所有节点都需创建数据库实例
使用dmdba用户执行如下操作命令:
dminit path=/dm/dmdbms/data page_size=32 charset=1 log_size=256
3.2 启停主库
以DM01节点为主节点(以下简称为主库),DM02、DM03节点为备节点(以下简称为备库)。
在DM01节点使用dmdba用户执行以下命令:
dmserver /dmdata/data/DAMENG/dm.ini
出现system is ready后ctrl +c停止数据库。
3.3 脱机备份主库
在DM01节点使用dmdba用户执行以下命令:
创建备份目录:
mkdir -p /dm/dmdbms/bak
启动dmrman备份工具:
dmrman
在dmrman命令行中执行以下语句:
backup database '/dm/dmdbms/data/DAMENG/dm.ini' backupset '/dm/dmdbms/bak/bakfull';
3.4 脱机还原备库
在DM01节点使用dmdba用户执行以下命令:
将主库备份文件拷贝到DM02、DM03两个节点
cd /dm/dmdbms/bak/bakfull
scp * dmdba@192.168.3.13:/dm/dmdbms/bak
scp * dmdba@192.168.3.14:/dm/dmdbms/bak
3.4.1 数据还原
在DM02、DM03两个节点上使用dmdba用户执行以下命令:
启动dmrman备份工具:
dmrman
在dmrman命令行中执行以下语句:
restore database '/dm/dmdbms/data/DAMENG/dm.ini' from backupset '/dm/dmdbms/bak';
3.4.2 数据库更新
在DM02、DM03两个节点上使用dmdba用户执行以下命令:
在dmrman命令行中执行以下语句:
recover database '/dm/dmdbms/data/DAMENG/dm.ini' from backupset '/dm/dmdbms/bak';
recover database '/dm/dmdbms/data/DAMENG/dm.ini' update db_magic;
3.5 配置dm.ini
所有节点都需配置dm.ini文件。
DM01:
使用dmdba用户执行以下命令:
vi dm.ini
修改如下内容:
INSTANCE_NAME = dmrw1
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
DM02:
使用dmdba用户执行以下命令:
vi dm.ini
修改如下内容:
INSTANCE_NAME = dmrw2
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
DM02:
使用dmdba用户执行以下命令:
vi dm.ini
修改如下内容:
INSTANCE_NAME = dmrw3
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
3.6 配置dmarch.ini
所有节点都需配置dmarch.ini文件,在dm.ini文件同级目录下创建dmarch.ini文件。
DM01:
使用dmdba用户执行以下命令:
mkdir -p /dm/dmdbms/data/arch
vi dmarch.ini
添加如下内容:
[ARCHIVE_TIMELY1]
ARCH_TYPE = TIMELY
ARCH_DEST = dmrw2
[ARCHIVE_TIMELY2]
ARCH_TYPE = TIMELY
ARCH_DEST = dmrw3
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm/dmdbms/data/arch
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 10240
DM02:
使用dmdba用户执行以下命令:
mkdir -p /dm/dmdbms/data/arch
vi dmarch.ini
添加如下内容:
[ARCHIVE_TIMELY1]
ARCH_TYPE = TIMELY
ARCH_DEST = dmrw1
[ARCHIVE_TIMELY2]
ARCH_TYPE = TIMELY
ARCH_DEST = dmrw3
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm/dmdbms/data/arch
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 10240
DM03:
使用dmdba用户执行以下命令:
mkdir -p /dm/dmdbms/data/arch
vi dmarch.ini
添加如下内容:
[ARCHIVE_TIMELY1]
ARCH_TYPE = TIMELY
ARCH_DEST = dmrw1
[ARCHIVE_TIMELY2]
ARCH_TYPE = TIMELY
ARCH_DEST = dmrw2
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm/dmdbms/data/arch
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 10240
3.7 配置dmmal.ini
所有节点都需配置dmmal.ini文件,在dm.ini文件同级目录下创建dmmal.ini文件。所有节点的dmmal.ini文件内容需保持一致。
vi dmmal.ini
添加如下内容:
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = dmrw1
MAL_HOST = 192.168.3.18
MAL_PORT = 61141
MAL_INST_HOST = 192.168.3.11
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST2]
MAL_INST_NAME = dmrw2
MAL_HOST = 192.168.3.19
MAL_PORT = 61141
MAL_INST_HOST = 192.168.3.12
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST3]
MAL_INST_NAME = dmrw3
MAL_HOST = 192.168.3.20
MAL_PORT = 61141
MAL_INST_HOST = 192.168.3.13
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
3.8 配置dmwatcher.ini
所有节点都需配置dmwatcher.ini文件,在dm.ini文件同级目录下创建dmwatcher.ini文件。所有节点的dmwatcher.ini文件内容需保持一致。
vi dmwatcher.ini
添加如下内容:
[GRP_RW]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /dm/dmdbms/data/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm/dmdbms/bin/dmserver
3.9 启动数据库库到mount状态
在所有数据库节点,使用dmdba用户执行以下命令:
dmserver /dm/dmdbms/data/GRP1_RT_01/dm.ini mount
3.10 设置OGUID
在所有数据库节点,使用dmdba用户执行以下命令:
disql sysdba/SYSDBA
SQL> sp_set_oguid(453331);
3.11 修改数据库模式
DM01:
使用dmdba用户执行以下命令:
disql sysdba/SYSDBA
SQL>alter database primary;
DM02、DM03:
使用dmdba用户执行以下命令:
disql sysdba/SYSDBA
SQL>alter database standby;
3.12 注册数据库服务
在所有数据库节点,使用root用户执行以下命令:
./dm_service_installer.sh -t dmwatcher -p dmrw -watcher_ini /dm/dmdbms/data/DAMENG/dmwatcher.ini
./dm_service_installer.sh -t dmserver -p dmrw -dm_ini /dm/dmdbms/data/DAMENG/dm.ini
3.13 启动守护进程
在所有数据库节点,使用root用户执行以下命令:
systemctl enable DmWatcherServicedmrw
systemctl start DmWatcherServicedmrw
systemctl status DmWatcherServicedmrw
3.14 配置监视器
因为主备库配置为手动切换模式,所以可在任意节点监视器。选择在DM01节点配置监视器。
在DM01服务器的dm.ini文件的同级目录下创建dmmonitor.ini。
使用dmdba用户执行以下命令:
vi dmmonitor.ini
添加如下内容:
MON_DW_Confirm = 0
MON_LOG_PATH = /dm/dmdbms/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP_RW]
MON_INST_OGUID = 453331
MON_DW_IP = 192.168.3.18:52141
MON_DW_IP = 192.168.3.19:52141
MON_DW_IP = 192.168.3.20:52141
3.15 启动监视器
使用dmdba用户执行以下命令:
dmmonitor /dm/dmdbms/data/DAMENG/dmmonitor.ini
3.16 验证集群主备同步状态
DM01:
使用dmdba用户执行以下命令:
disql sysdba/SYSDBA
SQL> create user test identified by test12345;
SQL> grant resource to test;
SQL> conn test/test12345;
SQL> create table t1(name char(20));
SQL> insert into t1 values('zhang');
SQL> commit;
DM02:
使用dmdba用户执行以下命令:
disql test/test12345;
SQL> select * from t1;
行号 NAME
---------- --------------------
1 zhang
已用时间: 21.447(毫秒). 执行号:100.
DM03:
使用dmdba用户执行以下命令:
disql test/test12345;
SQL> select * from t1;
行号 NAME
---------- --------------------
1 zhang
已用时间: 9.888(毫秒). 执行号:100.
主库插入的数据,在备库中可正常查询,证实集群主备同步状态正常。
四、数据库参数调整
执行参数优化脚本,优化数据库参数。
五、重启数据库实例
(1) 若为第一次关闭数据库实例,执行以下操作:
使用root用户执行以下命令:
关闭主库守护进程:systemctl stop DmWatcherServiceGRP1_RT_01.service
关闭备库守护进程:systemctl stop DmWatcherServiceGRP1_RT_02.service
关闭主、备库数据库实例:
使用dmdba用户执行以下操作:
在system is ready界面,按ctrl +c停止数据库。
启动主库实例:systemctl start DmServiceGRP1_RT_01.service
启动备库实例:systemctl start DmServiceGRP1_RT_02.service
启动主库守护进程:systemctl start DmWatcherServiceGRP1_RT_01.service
启动备库守护进程:systemctl start DmWatcherServiceGRP1_RT_02.service
(2) 若为第二次关闭数据库实例,执行以下操作
使用root用户执行以下命令:
关闭主库守护进程:systemctl stop DmWatcherServiceGRP1_RT_01.service
关闭备库守护进程:systemctl stop DmWatcherServiceGRP1_RT_02.service
关闭主库实例:systemctl stop DmServiceGRP1_RT_01.service
关闭备库实例:systemctl stop DmServiceGRP1_RT_02.service
启动主库实例:systemctl start DmServiceGRP1_RT_01.service
启动备库实例:systemctl start DmServiceGRP1_RT_02.service
启动主库守护进程:systemctl start DmWatcherServiceGRP1_RT_01.service
启动备库守护进程:systemctl start DmWatcherServiceGRP1_RT_02.service
想要获取达梦数据库更多的学习资料,可登陆达梦数据云适配中心(https://eco.dameng.com/)获取。

浙公网安备 33010602011771号