读写分离集群的手动搭建

2022/8/31 6:24:12

本文主要是介绍读写分离集群的手动搭建,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1部署规划

读写分离集群适合读多写少的应用环境。

Ip规划

主机名

服务ip

数据库名

实例名

DM_Z

192.168.48.131

DMSERVER

DM01

DM_B

192.168.48.131

DMSERVER

DM02

目录规划:

数据库软件安装目录

/dm8/bin

实例安装目录

/dm8/data

归档日志存放目录

/dm8/fullbak

备份文件存放目录

/dm8/data

2 数据库软件安装

同 DM8 单机简易部署,执行到执行 DMInstall.bin 安装即可

3 初始化实例

2 个节点完成实例初始化

./dminit path=/dm8/data db_name=DMSERVER instance_name=DM01 port_num=5236

./dminit path=/dm8/data db_name=DMSERVER instance_name=DM02 port_num=5237

 

以主机 DM_1 为读写分离主库,启动实例

到 /dm8/bin

./dmserver /dm8/data/DMSERVER/dm.ini

 

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

 

 

 

4 脱机备份数据库

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

ps -ef|grep dmap

 

 

 

发现dmap 服务未启动,dmdba 到安装目录的 bin 下执行以下命令:

./DmAPService start

 

 

 

dmdba用户启动dmrman工具

./dmrman

执行 backup 全库:

backup database '/dm8/data/DMSERVER/dm.ini' backupset '/dm/dmbak/bakfull';

 

 

 

将数据库目录和备份文件从节点 01 分别拷贝到每个节点上

scp -r /dm8/data/DMSERVER 192.168.48.131:/dm8/data 

scp -r /dm8/dmbak/bakfull 192.168. 48.131:/dm8/dmbak

 

 

 

5 备份还原备库

在DM_B上使用 dmrman 工具还原备库:

restore database '/dm8/data/DMSERVER/dm.ini' from backupset '/dm8/dmbak';

recover database '/dm8/data/DMSERVER/dm.ini' from backupset '/dm8/dmbak';

recover database '/dm8/data/DMSERVER/dm.ini' update db_magic;

  

 

 

 

 

6 修改dm.ini参数

所有节点都要修改

执行以下命令:

vim /dm8/data/DMSERVER/dm.ini

主库 DM_1 上修改以下参数值:

INSTANCE_NAME = DM01 

MAL_INI = 1

ARCH_INI = 1

ALTER_MODE_STATUS = 0

ENABLE_OFFLINE_TS = 2

备库 DM_2 上修改以下参数值:

INSTANCE_NAME = DM02 

MAL_INI = 1

ARCH_INI = 1

ALTER_MODE_STATUS = 0

ENABLE_OFFLINE_TS = 2

7 配置归档配置文件 dmarch.ini

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

vim /dm8/data/DMSERVER/dmarch.ini

主库 DM_1 上添加以下内容:

ARCH_WAIT_APPLY=1

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME

ARCH_DEST = DM02 

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /dm8/dmarch

ARCH_FILE_SIZE = 2048

ARCH_SPACE_LIMIT = 76800

 

备库 DMSERVER02 上添加以下内容:

ARCH_WAIT_APPLY=1

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME

ARCH_DEST = DM01 

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCALARCH_DEST = /dm8/dmarch

ARCH_FILE_SIZE = 2048

ARCH_SPACE_LIMIT = 76800

 

8 配置 MAL 系统配置文件 dmmal.ini

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

vim /dm8/data/DMSERVER/dmmal.ini

主备库 2 个节点文件内容要相同。

MAL_CHECK_INTERVAL = 5

MAL_CONN_FAIL_INTERVAL = 15

[MAL_INST1]

MAL_INST_NAME = DM01 

MAL_HOST = 192.168.48.129 

MAL_PORT = 5235

MAL_INST_HOST =192.168.48.129

MAL_INST_PORT =5236

MAL_DW_PORT =5237

MAL_INST_DW_PORT = 5238

[MAL_INST2]

MAL_INST_NAME = DM02 

MAL_HOST = 192.168.48.131 

MAL_PORT = 5245

MAL_INST_HOST = 192.168.48.131

MAL_INST_PORT = 5237 

MAL_DW_PORT = 5238 

MAL_INST_DW_PORT = 5248

 

9 配置守护进程配置文件 dmwatcher.ini

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

vim /dm8/data/DMSERVER/dmwatcher.ini

主备库节点文件内容要相同。

[GRP_RW]

DW_TYPE = GLOBAL

DW_MODE = AUTO

DW_ERROR_TIME = 30

INST_RECOVER_TIME = 60

INST_ERROR_TIME = 20

INST_OGUID = 202269

INST_INI = /dm8/data/DMSERVER/dm.ini

INST_AUTO_RESTART = 1

INST_STARTUP_CMD = /dm8/dmdbms/bin/dmserver

 

 

 

以 mount 方式启动数据库实例

使用 dmdba 用户,执行以下命令(主备库都执行):

./dmserver /dm8/data/DMSERVER/dm.ini mount (无需关闭)

 

在新的终端使用 disql 工具连接数据库:

./disql SYSDBA/SYSDBA:5236

主备库都修改 oguid,执行以下命令:

sp_set_oguid(202269);

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

alter database primary;

 

 

 

 

备库 DM_2 上修改数据库模式为 standby,执行以下命令:

alter database standby;

 

 

 

 

启动守护进程 dmdba 用户下,到数据库安装目录的 bin 下执行以下命令(主备库都执

行):

./dmwatcher /dm8/data/DMSERVER/dmwatcher.ini

 

守护进程启动后,会将 Mount 的实例 Open。启动监视器守护进程配置为自动切换时,必 须配置确认监视器。在主备服务器以外的服务器上(需安装有 DM 数据库软件,且与主备 心跳网络端口开放)。

新建确认监视器配置文件 dmmonitor.ini,执行以下命令:

vim /dm8/dmdbms/bin/dmmonitor.ini

添加以下内容:

MON_DW_CONFIRM = 1

MON_LOG_PATH = /dm8/dmdbms/log

MON_LOG_INTERVAL = 60

MON_LOG_FILE_SIZE = 200

MON_LOG_SPACE_LIMIT = 1024

[GRP_RW]

MON_INST_OGUID = 202269

MON_DW_IP = 192.168.48.129:5237

MON_DW_IP = 192.168.48.131:5238

 

执行以下命令,启动监视器。

./dmmonitor /home/dmdba/dmdbms/bin/dmmonitor.ini

启动后输入 show 命令查看集群状态。

 

 

10注册服务

在主和备数据库服务器上分别注册实例服务和守护进程服务。

在监视器所在服务器上注册监视器服务。

 

注册服务的脚本在安装目录下dmdbms的script/root下面。

使用root用户在主数据库服务器上执行以下命令:

 

注册主库实例服务:

./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DMSERVER/dm.ini -m mount -p DM01

注册主库守护进程服务:

./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/data/DMSERVER/dmwatcher.ini -p DM01

注册成功以后会在/opt/dmdbms/bin目录下生成对应的服务脚本。

使用root用户在备数据库服务器上执行以下命令

 

注册备库服务:

./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DMSERVER/dm.ini -m mount -p DM02

注册备库守护进程服务:

./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/data/DMSERVER/dmwatcher.ini -p DM02

 

在监视器服务器上使用root用户在备数据库服务器上执行以下命令。

注册监视器服务

./dm_service_installer.sh -t dmmonitor -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor.ini -p DM_RW

 

达梦社区地址:https://eco.dameng.com



这篇关于读写分离集群的手动搭建的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程