ICode9

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

读写分离集群的手动搭建

2022-08-31 02:01:06  阅读:216  来源: 互联网

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


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

标签:dm,读写,DMSERVER,集群,ini,dm8,data,MAL,搭建
来源: https://www.cnblogs.com/-dym/p/16641526.html

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

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

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

ICode9版权所有