ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

读写分离集群搭建

2022-08-29 00:32:20  阅读:154  来源: 互联网

标签:dm 读写 DMSERVER 集群 ini dm8 dmdata MAL 搭建


1部署规划

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

主机名 服务ip 数据库名 实例名
DM_1 192.168.44.172 DMSERVER rw_1
DM_2 192.168.44.167 DMSERVER rw_2

目录规划:

数据库软件安装目录 /dm8/dmdbms/bin
实例安装目录 /dm8/dmdata
归档日志存放目录 /dm8/dmarch
备份文件存放目录 /dm8/dmbak

2 数据库软件安装

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

3 初始化实例

2 个节点完成实例初始化
./dminit path=/dm8/dmdata db_name=DMSERVER instance_name=rw_1 port_num=5236
./dminit path=/dm8/dmdata db_name=DMSERVER instance_name=rw_2 port_num=5246


以主机 DM_1 为读写分离主库,启动实例
到 /dm8/dmdbms/bin
./dmserver /dm8/dmdata/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/dmdata/DMSERVER/dm.ini' backupset '/dm/dmbak/bakfull';

将数据库目录和备份文件从节点 01 分别拷贝到每个节点上
scp -r /dm8/dmdata/DMSERVER 192.168.44.167:/dm8/dmdata
scp -r /dm8/dmbak/bakfull 192.168. 44.167:/dm8/dmbak

5 备份还原备库

在DM_2上使用 dmrman 工具还原备库:
restore database '/dm8/dmdata/DMSERVER/dm.ini' from backupset '/dm8/dmbak';
recover database '/dm8/dmdata/DMSERVER/dm.ini' from backupset '/dm8/dmbak';
recover database '/dm8/dmdata/DMSERVER/dm.ini' update db_magic;

6 修改dm.ini参数

所有节点都要修改
执行以下命令:
vim /dm8/dmdata/DMSERVER/dm.ini
主库 DM_1 上修改以下参数值:
INSTANCE_NAME = rw_1
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
备库 DM_2 上修改以下参数值:
INSTANCE_NAME = rw_2
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2

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

在实例目录下新建文件 dmarch.ini,执行以下命令:
vim /dm8/dmdata/DMSERVER/dmarch.ini
主库 DM_1 上添加以下内容:
ARCH_WAIT_APPLY=1
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = RW_2
[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 = RW_1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCALARCH_DEST = /dm8/dmarch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 76800

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

在实例目录下新建文件 dmmal.ini,执行以下命令。
vim /dm8/dmdata/DMSERVER/dmmal.ini
主备库 2 个节点文件内容要相同。
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 15

[MAL_INST1]
MAL_INST_NAME = RW_1
MAL_HOST = 192.168.44.171
MAL_PORT = 5235
MAL_INST_HOST =192.168.44.171
MAL_INST_PORT =5236
MAL_DW_PORT =5237
MAL_INST_DW_PORT = 5238

[MAL_INST2]
MAL_INST_NAME = RW_2
MAL_HOST = 192.168.44.167
MAL_PORT = 5245
MAL_INST_HOST = 192.168.44.167
MAL_INST_PORT = 5246
MAL_DW_PORT = 5247
MAL_INST_DW_PORT = 5248

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

在实例目录下新建文件 dmwatcher.ini,执行以下命令:
vim /dm8/dmdata/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/dmdata/DMSERVER/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/dmdbms/bin/dmserver

以 mount 方式启动数据库实例
使用 dmdba 用户,执行以下命令(主备库都执行):
./dmserver /dm8/dmdata/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/dmdata/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.44.171:5237
MON_DW_IP = 192.168.44.167:5247

执行以下命令,启动监视器。
./dmmonitor /home/dmdba/dmdbms/bin/dmmonitor.ini
启动后输入 show 命令查看集群状态。

10注册服务

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

注册服务的脚本在安装目录下dmdbms的script/root下面。
使用root用户在主数据库服务器上执行以下命令:

注册主库实例服务:
./dm_service_installer.sh -t dmserver -dm_ini /dm8/dmdata/DMSERVER/dm.ini -m mount -p RW_1
注册主库守护进程服务:
./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/dmdata/DMSERVER/dmwatcher.ini -p RW_1

注册成功以后会在/opt/dmdbms/bin目录下生成对应的服务脚本。
使用root用户在备数据库服务器上执行以下命令

注册备库服务:
./dm_service_installer.sh -t dmserver -dm_ini /dm8/dmdata/DMSERVER/dm.ini -m mount -p RW_2
注册备库守护进程服务:
./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/dmdata/DMSERVER/dmwatcher.ini -p RW_2

在监视器服务器上使用root用户在备数据库服务器上执行以下命令。
注册监视器服务
./dm_service_installer.sh -t dmmonitor -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor.ini -p DM_RW

标签:dm,读写,DMSERVER,集群,ini,dm8,dmdata,MAL,搭建
来源: https://www.cnblogs.com/tazimi/p/16634552.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有