达梦守护集群与读写分离集群及异步备库添加部署

一、守护集群

  1. 环境说明

本地三台虚拟机如下

机器

初始状态

操作系统

实例

192.168.43.128

主库

Centos 7

DMOA_P

192.168.43.129

备库

Centos 7

DMOA_S

192.168.43.130

监视服务器

Centos 7

2.数据准备

  1.对192.168.43.128(前面DM8安装实验的实例机器)进行联机备份操作

另开窗口使用disql连接

./disql SYSDBA/SYSDBA@192.168.43.128:5234

SQL>BACKUP DATABASE BACKUPSET '/home/dmdba/dmdbms/BACKUP_FILE_01';

  

拷贝备份文件到备库所在机器, 并执行脱机数据库还原与恢复

拷贝备份文件:

su - dmdba

scp -rp BACKUP_FILE_01/ 192.168.43.129:/home/dmdba/dmdbms/

192.168.43.129上执行如下:

dmdba初始化DMOA_S实例

./dminit PATH=/home/dmdba/dmdbms/ INSTANCE_NAME=DMOA_S DB_NAME=DMOA PORT_NUM=5234 PAGE_SIZE=16 CASE_SENSITIVE=Y CHARSET=0

还原:

./dmrman  CTLSTMT="RESTORE DATABASE  '/home/dmdba/dmdbms/DMOA/dm.ini'  FROM  BACKUPSET '/home/dmdba/dmdbms/BACKUP_FILE_01'"

恢复:

./dmrman  CTLSTMT="RECOVER  DATABASE  '/home/dmdba/dmdbms/DMOA/dm.ini'  FROM  BACKUPSET '/home/dmdba/dmdbms/BACKUP_FILE_01'"

更新:

./dmrman CTLSTMT="RECOVER DATABASE '/home/dmdba/dmdbms/DMOA/dm.ini' UPDATE DB_MAGIC"

恢复时屏幕输出如下:

 

 

3.配置主库

dm.ini

INSTANCE_NAME= DMOA_P

PORT_NUM= 5234            #数据库实例监听端口

DW_INACTIVE_INTERVAL= 60

ALTER_MODE_STATUS= 0       #不允许手工方式修改实例模式/状态/OGUID

ENABLE_OFFLINE_TS= 2         #不允许备库OFFLINE表空间

MAL_INI= 1                    #打开MAL系统

ARCH_INI= 1                    #打开归档配置

RLOG_SEND_APPLY_MON= 64         #统计最近64次的日志发送

dmmal.ini

MAL_CHECK_INTERVAL      = 5   #MAL链路检测时间间隔

MAL_CONN_FAIL_INTERVAL  = 5   #判定MAL链路断开的时间

[MAL_INST1]

MAL_INST_NAME           = DMOA_P          #实例名,和dm.ini中的INSTANCE_NAME一致

MAL_HOST                = 192.168.43.128  #MAL系统监听TCP连接的IP地址

MAL_PORT                = 61141           #MAL系统监听TCP连接的端口

MAL_INST_HOST           = 192.168.43.128  #实例的对外服务IP地址

MAL_INST_PORT           = 5234           #实例的对外服务端口,和dm.ini中的PORT_NUM一致

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

MAL_INST_DW_PORT        = 33141  #实例监听守护进程TCP连接的端口

[MAL_INST2]

MAL_INST_NAME           = DMOA_S

MAL_HOST                = 192.168.43.129

MAL_PORT                = 61141

MAL_INST_HOST           = 192.168.43.129

MAL_INST_PORT           = 5234

MAL_DW_PORT             = 52141

MAL_INST_DW_PORT        = 33141

dmarch.ini

[ARCHIVE_LOCAL1]

        ARCH_TYPE            = LOCAL

        ARCH_DEST            = /home/dmdba/dmdbms/DMOA/arch_DMOA

        ARCH_FILE_SIZE       = 256

        ARCH_SPACE_LIMIT     = 10240

        ARCH_FLUSH_BUF_SIZE  = 0

[ARCHIVE_REALTIME]

        ARCH_TYPE            = REALTIME

        ARCH_DEST            = DMOA_S

dmwatcher.ini

[GRP1]

DW_TYPE = GLOBAL            #全局守护类型

DW_MODE = AUTO              #自动切换模式

DW_ERROR_TIME    = 10       #远程守护进程故障认定时间

INST_RECOVER_TIME  = 60     #主库守护进程启动恢复的间隔时间

INST_ERROR_TIME  = 10       #本地实例故障认定时间

INST_OGUID        = 453331  #守护系统唯一OGUID值

INST_INI          = /home/dmdba/dmdbms/DMOA/dm.ini #dm.ini配置文件路径

INST_AUTO_RESTART  = 1      #打开实例的自动启动功能

INST_STARTUP_CMD   = /home/dmdba/dmdbms/bin/dmserver  #命令行方式启动

RLOG_SEND_THRESHOLD  = 0         #指定主库发送日志到备库的时间阈值,默认关闭

RLOG_APPLY_THRESHOLD = 0         #指定备库重演日志的时间阈值,默认关闭

设置OGUID

./disql SYSDBA/SYSDBA@192.168.43.128:5234

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS',1);

SQL>sp_set_oguid(453331);

SQL>alter database primary;

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

4.配置备库

dm.ini

INSTANCE_NAME= DMOA_P

PORT_NUM= 5234            #数据库实例监听端口

DW_INACTIVE_INTERVAL= 60

ALTER_MODE_STATUS= 0       #不允许手工方式修改实例模式/状态/OGUID

ENABLE_OFFLINE_TS= 2         #不允许备库OFFLINE表空间

MAL_INI= 1                    #打开MAL系统

ARCH_INI= 1                    #打开归档配置

RLOG_SEND_APPLY_MON= 64         #统计最近64次的日志发送

dmmal.ini

与主库一致从主库copye一份即可

dmarch.ini

[ARCHIVE_LOCAL1]

        ARCH_TYPE            = LOCAL

        ARCH_DEST            = /home/dmdba/dmdbms/DMOA/arch_DMOA

        ARCH_FILE_SIZE       = 256

        ARCH_SPACE_LIMIT     = 10240

        ARCH_FLUSH_BUF_SIZE  = 0

[ARCHIVE_REALTIME]

        ARCH_TYPE            = REALTIME

        ARCH_DEST            = DMOA_P

dmwatcher.ini

[GRP1]

DW_TYPE = GLOBAL       #全局守护类型

DW_MODE = AUTO #自动切换模式

DW_ERROR_TIME    = 10    #远程守护进程故障认定时间

INST_RECOVER_TIME  = 60        #主库守护进程启动恢复的间隔时间

INST_ERROR_TIME  =10#本地实例故障认定时间

INST_OGUID        = 453331     #守护系统唯一OGUID值

INST_INI  = /home/dmdba/dmdbms/DMOA/dm.ini   #dm.ini配置文件路径

INST_AUTO_RESTART  = 1   #打开实例的自动启动功能

INST_STARTUP_CMD  = /home/dmdba/dmdbms/bin/dmserver    #命令行方式启动

RLOG_APPLY_THRESHOLD = 0         #指定备库重演日志的时间阈值,

以mount方式启动

./dmserver /home/dmdba/dmdbms/DMOA/dm.ini mount

设置OGUID

另开窗口使用disql

./disql SYSDBA/SYSDBA@192.168.43.129:5234

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS',1);

SQL>sp_set_oguid(453331);

SQL>alter database standby;

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

5.开启守护进程

主备库都要执行:

cd /home/dmdba/dmdbms/bin

./dmwatcher /home/dmdba/dmdbms/DMOA/dmwatcher.ini

注册并启动守护进程服务

./dm_service_installer.sh -t dmwatcher -p DMOA_P -watcher_ini /home/dmdba/dmdbms/DMOA/dmwatcher.ini

./dm_service_installer.sh -t dmwatcher -p DMOA_S -watcher_ini /home/dmdba/dmdbms/DMOA/dmwatcher.ini

启动守护服务

service DmWatcherServiceDMOA_P start

service DmWatcherServiceDMOA_S start

6. 开启监视器

配置监视器(192.168.43.130已安装dm软件 无库实例)dmmonitor.ini

MON_DW_CONFIRM = 1  #确认监视器模式

MON_LOG_PATH = /home/dmdba/dmdbms/log#监视器日志文件存放路径

MON_LOG_INTERVAL= 60#每隔60s定时记录系统信息到日志文件

MON_LOG_FILE_SIZE = 32#每个日志文件最大32M

MON_LOG_SPACE_LIMIT = 0#不限定日志文件总占用空间

[GRP1]

MON_INST_OGUID = 453331 #组GRP1的唯一OGUID值

#以下配置为监视器到组GRP1的守护进程的连接信息,以―IP:PORT‖的形式配置

#IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT

MON_DW_IP = 192.168.43.128:52141

MON_DW_IP = 192.168.43.129:52141

启动监视器

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

 

7.测试建表和插入数据备机是否能及时同步

主库执行的一系列DDL及DML更新插入都会同步到备库

8.模拟主库故障

断开(192.168.43.128)网络 关闭网卡后确认监视器进行了自动主备切换

192.168.43 129即DMOA_S可以继续提供服务,作为主库可以进行读写操作

恢复网络后(ifup ens33)DMOA_P作为standby加入集群

9.手动切换

192.168.43.130监视服务器上login 登陆监视器运行并执行switchover

二、读写分离集群

读写分离集群部署步骤同守护集群大致相同,不再复述。区别点在于归档的配置是实时归档和即时归档的区别(dmarch.ini配置参数的不同)

三、异步备库

本部署流程是在已有2节点数据守护集群的前提下添加一台异步备库

  1. 环境说明

机器

初始状态

操作系统

实例

192.168.43.121

异步备库

Centos 7

DMOA_ST

    2.数据准备

  192.168.43.128(主库)进行联机备份操作

另开窗口使用disql连接

./disql SYSDBA/SYSDBA@192.168.43.128:5234

SQL>BACKUP DATABASE BACKUPSET '/home/dmdba/dmdbms/BACKUP_FILE_01';

  

拷贝备份文件到备库所在机器, 并执行脱机数据库还原与恢复

拷贝备份文件:

su - dmdba

scp -rp BACKUP_FILE_01/ 192.168.43.131:/home/dmdba/dmdbms/

192.168.43.131上执行如下:

dmdba初始化DMOA_ST实例

./dminit PATH=/home/dmdba/dmdbms/ INSTANCE_NAME=DMOA_ST DB_NAME=DMOA_ST PORT_NUM=5234 PAGE_SIZE=16 CASE_SENSITIVE=Y CHARSET=0

还原:

./dmrman  CTLSTMT="RECOVER  DATABASE  '/home/dmdba/dmdbms/DMOA/dm.ini'  FROM  BACKUPSET '/home/dmdba/dmdbms/BACKUP_FILE_01'"

恢复:

./dmrman  CTLSTMT="RECOVER  DATABASE  '/home/dmdba/dmdbms/DMOA/dm.ini'  FROM  BACKUPSET '/home/dmdba/dmdbms/BACKUP_FILE_01'"

更新:

./dmrman CTLSTMT="RECOVER DATABASE '/home/dmdba/dmdbms/DMOA/dm.ini' UPDATE DB_MAGIC"

    3.配置主库

dm.ini

#配置有异步归档时,打开定时器,定时同步归档到异备库

TIMER_INI= 1

dmmal.ini 增加异步备库DMOA_ST的配置项如下

[MAL_INST3]

MAL_INST_NAME       = DMOA_ST  #实例名,和dm.ini中的INSTANCE_NAME一致

MAL_HOST              =  192.168.43.131  #MAL系统监听TCP连接的IP地址

MAL_PORT         =  61141  #MAL系统监听TCP连接的端口

MAL_INST_HOST         =  192.168.43.131 #实例的对外服务IP地址

MAL_INST_PORT         =  5234  #实例的对外服务端口,和dm.ini中的PORT_NUM一致

MAL_DW_PORT = 52141    #实例对应的守护进程监听TCP连接的端口

MAL_INST_DW_PORT = 33141 #实例监听守护进程TCP连接的端

dmarch.ini添加如下增加异步归档配置

[ARCHIVE_ASYNC]

ARCH_TYPE = ASYNC #异步归档类型

ARCH_DEST = DMOA_ST #异步归档目标实例名

ARCH_TIMER_NAME = RT_TIMER  #定时器名称,和dmtimer.ini中的名称

配置dmtimer.ini,用于定时触发实例发送归档日志到异步备库。

[RT_TIMER] #和dmarch.ini中的ARCH_TIMER_NAME一致

TYPE                 = 2

FREQ_MONTH_WEEK_INTERVAL      = 1

FREQ_SUB_INTERVAL     = 0

FREQ_MINUTE_INTERVAL = 0

START_TIME            = 14:00:00

END_TIME           = 15:00:00

DURING_START_DATE   = 2021-08-05 13:00:00

DURING_END_DATE     = 9999-12-31 23:59:59

NO_END_DATE_FLAG    = 1

DESCRIBE             = RT TIMER

IS_VALID            = 1

   4.配置备库

dm.ini

#配置有异步归档时,打开定时器,定时同步归档到异备库

TIMER_INI= 1

dmmal.ini 增加异步备库DMOA_ST的配置项如下

[MAL_INST3]

MAL_INST_NAME       = DMOA_ST  #实例名,和dm.ini中的INSTANCE_NAME一致

MAL_HOST              =  192.168.43.131  #MAL系统监听TCP连接的IP地址

MAL_PORT         =  61141  #MAL系统监听TCP连接的端口

MAL_INST_HOST         =  192.168.43.131 #实例的对外服务IP地址

MAL_INST_PORT         =  5234  #实例的对外服务端口,和dm.ini中的PORT_NUM一致

MAL_DW_PORT = 52141    #实例对应的守护进程监听TCP连接的端口

MAL_INST_DW_PORT = 33141 #实例监听守护进程TCP连接的端

dmarch.ini添加如下增加异步归档配置

[ARCHIVE_ASYNC]

ARCH_TYPE = ASYNC #异步归档类型

ARCH_DEST = DMOA_ST #异步归档目标实例名

ARCH_TIMER_NAME = RT_TIMER  #定时器名称,和dmtimer.ini中的名称

配置dmtimer.ini,用于定时触发实例发送归档日志到异步备库。

[RT_TIMER] #和dmarch.ini中的ARCH_TIMER_NAME一致

TYPE                 = 2

FREQ_MONTH_WEEK_INTERVAL      = 1

FREQ_SUB_INTERVAL     = 0

FREQ_MINUTE_INTERVAL = 0

START_TIME            = 14:00:00

END_TIME           = 15:00:00

DURING_START_DATE   = 2021-08-05 13:00:00

DURING_END_DATE     = 9999-12-31 23:59:59

NO_END_DATE_FLAG    = 1

DESCRIBE             = RT TIMER

IS_VALID            = 1

    5.配置异步备库

dm.ini修改如下

#实例名,建议使用―组名_守护环境_序号的命名方式,总长度不能超过16

INSTANCE_NAME= DMOA_ST

PORT_NUM= 5234 #数据库实例监听端口

DW_INACTIVE_INTERVAL= 60     #接收守护进程消息超时时间

ALTER_MODE_STATUS= 0 #不允许手工方式修改实例模式/状态/OGUID

ENABLE_OFFLINE_TS= 2 #不允许备库OFFLINE表空间

MAL_INI= 1 #打开MAL系统

ARCH_INI= 1 #打开归档配置

RLOG_SEND_APPLY_MON= 64    #统计最近64

将主库dmmal.ini复制到异步备库上

cd /home/dmdba/dmdbms/DMOA

scp dmmal.ini 192.168.43.131:/home/dmdba/dmdbms/DMOA

dmarch.ini如下(异步备库只需要本地归档)

[ARCHIVE_LOCAL1]

        ARCH_TYPE            = LOCAL

        ARCH_DEST            = /home/dmdba/dmdbms/DMOA/arch_DMOA

        ARCH_FILE_SIZE       = 256

        ARCH_SPACE_LIMIT     = 10240

        ARCH_FLUSH_BUF_SIZE  = 0

dmwatcher.ini

[GRP1]

DW_TYPE = GLOBAL       #全局守护类型

DW_MODE = MANUAL #自动切换模式

DW_ERROR_TIME    = 10    #远程守护进程故障认定时间

INST_ERROR_TIME  =10#本地实例故障认定时间

INST_OGUID        = 453331     #守护系统唯一OGUID值

INST_INI  = /home/dmdba/dmdbms/DMOA/dm.ini   #dm.ini配置文件路径

INST_AUTO_RESTART  = 1   #打开实例的自动启动功能

INST_STARTUP_CMD  = /home/dmdba/dmdbms/bin/dmserver    #命令行方式启动

Mount方式启动异步备库

su - dmdba

cd /home/dmdba/dmdbms/bin

./dmserver /home/dmdba/dmdbms/DMOA/dm.ini mount

设置OGUID

./disql SYSDBA/SYSDBA@192.168.43.131:5234

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS',1);

SQL>sp_set_oguid(453331);

SQL>alter database standby;

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

配置监视器dmmonitor.ini,增加到DMOA_ST守护进程的MON_DW_IP配置项

MON_DW_IP = 192.168.43.131:52141

 6.启动异步备库守护进程

./dmwatcher /home/dmdba/dmdbms/DMOA/dmwatcher.in

 7.开启监视器

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

显示如下

  • 注册服务

如果想让dmserver、dmwatcher和dmmonitor服务开机自启动,需要手动注册服务,注册步骤必须用root用户进行,注册完成后重启机器时,就会自动启动dmserver、dmwatcher和dmmonitor服务。其中,因为确认监视器一直处于工作状态,所以确认监视器需要注册dmmonitor服务,自动启动;非确认监视器是在查看信息时才使用,届时手动启动控制台dmmonitor服务即可,可以不用注册dmmonitor服务。详细的配置请参考《DM8_Linux服务脚本使用手册》。

    以下为本次实验注册的守护进程服务和监视进程服务(除了创建服务时使用root用户其他操作都在dmdba用户下进行)

./dm_service_installer.sh -t dmwatcher -p DMOA_P -watcher_ini /home/dmdba/dmdbms/DMOA/dmwatcher.ini

./dm_service_installer.sh -t dmwatcher -p DMOA_S -watcher_ini /home/dmdba/dmdbms/DMOA/dmwatcher.ini

./dm_service_installer.sh -t dmwatcher -p DMOA_ST -watcher_ini /home/dmdba/dmdbms/DMOA/dmwatcher.ini

./dm_service_installer.sh -t dmmonitor -p monitor -watcher_ini /home/dmdba/dmdbms/DMOA/dmwatcher.ini

更多资讯请上达梦技术社区了解: https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值