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/)获取。

posted @ 2021-10-25 09:09  myflyand  阅读(247)  评论(0)    收藏  举报