首页 > 其他分享 >读写分离集群搭建

读写分离集群搭建

时间:2022-08-29 00:22:50浏览次数:40  
标签: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,搭建
From: https://www.cnblogs.com/tazimi/p/16634552.html

相关文章

  • 快速搭建 SpringCloud Alibaba Nacos 配置中心!
    SpringCloudAlibaba是阿里巴巴提供的一站式微服务开发解决方案,目前已被SpringCloud官方收录。而Nacos作为SpringCloudAlibaba的核心组件之一,提供了两个非常重......
  • nginx 搭建脚本
    vimnginx.shmkdir-p/data/software/init_installcd/data/software/init_install/tar-zxvfnginx-1.4.4.tar.gztar-zxvfpcre-8.20.tar.gzcdnginx-1.4.4#在......
  • 踩坑,发现一个ShardingJdbc读写分离的BUG
    ShardingJdbc怎么处理写完数据立即读的情况的呢?写在前面我本地使用了两个库来做写库(ds_0_master)和读库(ds_0_salve),两个库并没有配置主从。下面我就使用库里的city表......
  • ShardingSphere数据库读写分离
    学习:渣男小四:https://www.cnblogs.com/steakliu/p/16514796.html背景在现在这个数据量与日俱增的时代,传统的单表,单库已经无法满足我们的需求,可能早期数据量不是很大,CRU......
  • Paragon NTFS 15 for Mac(Mac电脑读写NTFS格式数据)
    想让Mac电脑读取Windows上NTFS格式的磁盘?用ParagonNTFS15forMac,这是一款MacOS系统上广受青睐的ntfs读写工具。NTFS15轻松实现Mac电脑读写NTFS磁盘文件。通过Microsoft......
  • Java我的高效编程之环境搭建
    前言:刚毕业,工作之余写博客有利于提高技术,更是能帮助人,接下来会认认真真写好每一篇博客。希望大家多多支持。废话不多说,马上开始。这是一篇环境搭建的博客。jdk+eclipse+s......
  • Spring源码01:环境搭建
    写在开始:这个系列会陆续更新我学习Spring源码的一些笔记与自己的理解,由于本人水平有限,难免对有些知识理解不到位,亦或者手误导致文中有不正确的地方,欢迎各位指正与探讨。......
  • bind搭建内网DNS服务器架构(主从、子域授权、DNS转发器)
    实验目的模拟企业DNS服务架构服务器及原理实验环境准备实验架构图实验设备DNS服务器4台主服务器master(centos8):IP_192.168.100.30,从服务器slave(rocky8):192.168.1......
  • CrystalDiskMark 磁盘读写性能测试 All In One
    磁盘读写性能测试AllInOneU盘,移动固态硬盘,硬盘macOS支持✅BlackmagicDiskSpeedTesthttps://apps.apple.com/us/app/blackmagic-disk-speed-test/id42526......
  • rocketMQ 集群的搭建
    准备四台机器     先实现2主2从同步   修改主配置文件   brokerName//主从要一致brokerId=0//master是0 slave>0brokerRole=SYNC_MAST......