0
点赞
收藏
分享

微信扫一扫

达梦读写分离集群部署

蓝莲听雨 2022-07-27 阅读 42


读写分离集群部署

主机规划

主机名

服务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

dm-19

192.168.3.19

192.168.3.19

dmrw

dmrw3


端口规划

实例名

实例端口

MAL 系统监听 TCP 连接的端口

实例本地的守护进程监听 TCP 连接的端口

实例监听守护进程 TCP 连接的端口

dm-16

5236

7336

7436

7536

dmrw1

5236

7336

7436

7536

dmrw2

5236

7336

7436

7536

dmrw3

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\dm-19

dminit path=/home/dmdba/dmdata page_size=32 extent_size=32 charset=1 log_size=2048 db_name=dmrw instance_name=dmrw

达梦读写分离集群部署_hive



以主机dm-17为读写分离主库,启动实例

dmserver /home/dmdba/dmdata/dmrw/dm.ini

出现system is ready后输入exit停止数据库

脱机备份数据库

在主机dm-17上执行以下命令,确认主库 dmap 服务已启动:

ps -ef|grep dmap

达梦读写分离集群部署_守护进程_02


dmdba用户 启动dmrman工具

dmrman use_ap=2

执行 backup 全库:

backup database '/home/dmdba/dmdata/dmrw/dm.ini' backupset '/home/dmdba/dmdata/dmbak/bakfull';


达梦读写分离集群部署_hive_03


备份还原备库

备份的文件/home/dmdba/dmdba/dmbak/bakfull 拷贝到另外两台服务器上。

scp -r /home/dmdba/dmdata/dmbak/bakfull 192.168.2.18:/home/dmdba/dmdata/dmbak/.

scp -r /home/dmdba/dmdata/dmbak/bakfull 192.168.2.19:/home/dmdba/dmdata/dmbak/.

在主机dm-18和dm-19上

使用 dmrman 工具还原备库,dmdba 用户执行:

dmrman use_ap=2

进入dmrman工具交互界面

执行 restore:

restore database '/home/dmdba/dmdata/dmrw/dm.ini' from backupset '/home/dmdba/dmdata/dmbak/bakfull'

达梦读写分离集群部署_数据库_04


完成后执行 recover:

recover database '/home/dmdba/dmdata/dmrw/dm.ini' from backupset '/home/dmdba/dmdata/dmbak/bakfull '

达梦读写分离集群部署_hive_05


最后执行 recover update db_magic。

recover database '/home/dmdba/dmdata/dmrw/dm.ini' update db_magic;

达梦读写分离集群部署_hive_06


修改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


备库dm-19上修改以下参数值:

INSTANCE_NAME = dmrw3

MAL_INI = 1

ARCH_INI = 1

ALTER_MODE_STATUS = 0

ENABLE_OFFLINE_TS = 2


配置归档配置文件

在实例目录下新建文件 dmarch.ini,执行以下命令:

vi /dmdata/dmdb/dmarch.ini

REALTIME自动切换模式下

需要指定ARCH_WAIT_APPLY=1保证主备事务一致:

在实例目录下新建文件 dmarch.ini,执行以下命令:

vi /dmdata/dmdb/dmarch.ini

主库dm-17上添加以下内容:

ARCH_WAIT_APPLY=1

[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上添加以下内容:

ARCH_WAIT_APPLY=1

[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


备库dm-19上添加以下内容:

ARCH_WAIT_APPLY=1

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME

ARCH_DEST = dmrw1

[ARCHIVE_REALTIME2]

ARCH_TYPE = REALTIME

ARCH_DEST = dmrw2

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /home/dmdba/dmdata/arch

ARCH_FILE_SIZE = 2048

ARCH_SPACE_LIMIT = 102400

配置dmmal.ini(心跳网络)

三个节点都要配置,且配置必须相同

[dmdba@dm-17 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

[MAL_INST3]

MAL_INST_NAME = dmrw3

MAL_HOST = 192.168.3.19

MAL_PORT = 7336

MAL_INST_HOST = 192.168.2.19

MAL_INST_PORT = 5236

MAL_DW_PORT = 7436

MAL_INST_DW_PORT = 7536

配置守护进程

三个节点都要配置,且配置必须相同

[dmdba@dm-17 dmrw]$ cat dmwatcher.ini

[GRP_RW]

DW_TYPE = GLOBAL

DW_MODE = AUTO

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);

达梦读写分离集群部署_守护进程_07


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

alter database primary;

达梦读写分离集群部署_守护进程_08


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

alter database standby;

达梦读写分离集群部署_守护进程_09


dmdba 用户下,到数据库安装目录的 bin 下执行以下命令(主备库都执行):

dmwatcher /home/dmdba/dmdata/dmrw/dmwatcher.ini

达梦读写分离集群部署_hive_10


查看状态

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

达梦读写分离集群部署_数据库_11



达梦读写分离集群部署_守护进程_12



达梦读写分离集群部署_数据库_13



配置监视器(服务器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

MON_DW_IP = 192.168.3.19:7436

达梦读写分离集群部署_数据库_14


启动监视器

在服务器dm-16上操作:

dmmonitor /dmdata/dmdb/dmmonitor.ini


达梦读写分离集群部署_守护进程_15


可以看见集群状态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

[dmdba@dm-16 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

MON_DW_IP = 192.168.3.19:7436




启动集群:

启动备库实例

192.168.2.18启动实例

systemctl start DmServicedmrw

达梦读写分离集群部署_数据库_16


192.168.2.19 启动实例

systemctl start DmServicedmrw

达梦读写分离集群部署_数据库_17


启动主库实例

192.168.2.17

systemctl start DmServicedmrw

达梦读写分离集群部署_守护进程_18


启动主库守护进程

192.168.2.17

systemctl start DmWatcherServicedmrw

达梦读写分离集群部署_数据库_19


启动备库守护进程

192.168.2.18

systemctl start DmWatcherServicedmrw

192.168.2.19

systemctl start DmWatcherServicedmrw

启动监视服务

192.168.3.16

达梦读写分离集群部署_数据库_20



查看集群状态

法一:查看日志:

cat /home/dmdba/dmdbms/log/DmMonitorservicemonitor-confirm.log

法二:前端查看

dmmonitor path= /home/dmdba/dmdbms/bin/dmmonitor-normal.ini

达梦读写分离集群部署_hive_21


补充

在守护进程启动过程中,主库处于mount状态,这时主数据库是不能写东西,但备库会是正常open状态,可以查询



举报

相关推荐

0 条评论