达梦8主备数据守护集群搭建

1主备搭建前准备

主机类型

IP地址

实例名

操作系统

主库

192.168.125.140(外部)192.168.125.140(内部)

GRP1_RT_01

Centos7.5.1804

备库

192.168.125.141(外部)192.168.125.141(内部)

GRP1_RT_02

Centos 7.5.1804

监视器

192.168.125.140(外部)192.168.125.140(内部)

Centos 7.5.1804

实例名

PORT_NUM

MAL_INST_DW_PORT

MAL_HOST

MAL_PORT

MAL_DW_PORT

GRP1_RT_01

5236

33141

192.168.125.140

61141

52141

GRP1_RT_02

5236

33142

192.168.125.141

61142

52142

B2主备库初始化、启动服务、开启归档

(注:一般初始化之后前台启动一下在退出算是一次完整的初始化)

2.1主库初始化

  1. 主库初始化: ./dminit path=/home/dmdba/dmdbms/data EXTENT_SIZE=32 PAGE_SIZE=32 LOG_SIZE=2048 CASE_SENSITIVE=y CHARSET=1

2.启动数据库:./dmserver path=/home/dmdba/dmdbms/data/DAMENG/dm.ini

3.注册实例服务(root注册):

cd /opt/dmdbms/ /script/root

./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/data/DAMENG/dm.ini -p GRP1_RT_01 -m -mount​ 

4.启用归档:./disql执行

ALTER DATABASE MOUNT;

ALTER DATABASE ADD ARCHIVELOG 'DEST=/opt/dmdbms/arch, TYPE = local,FILE_SIZE = 1024, SPACE_LIMIT = 2048';

ALTER DATABASE ARCHIVELOG;

ALTER DATABASE OPEN;

2.2备库初始化

1.备库初始化:./dminit path=/home/dmdba/dmdbms/data EXTENT_SIZE=32 PAGE_SIZE=32 LOG_SIZE=2048 CASE_SENSITIVE=y CHARSET=1

2.启动数据库:./dmserver path=/home/dmdba/dmdbms/data/DAMENG/dm.ini

3.注册实例服务:

cd /opt/dmdbms/ /script/root

./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/data/DAMENG/dm.ini -p GRP1_RT_02 -m mount

3脱机备份还原

1. 正常关闭数据库

cd /opt/dmdbms/bin/

./DmServiceDMSERVER stop

2. 进行脱机备份

cd /opt/dmdbms/bin

./dmrman

backup database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' to backup_file_01 backupset '/home/dmdba/dmdbms/data/DAMENG/backup_file_01'

3. 拷贝备份文件到备库所在机器

scp -r /home/dmdba/dmdbms/data/DAMENG/backup_file_01/ dmdba@192.168.125.141:/home/dmdba/dmdbms/data/DAMENG

4. 执行脱机数据库还原与恢复

检查

check backupset '/home/dmdba/dmdbms/data/DAMENG/backup_file_01'

还原

restore database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmdbms/data/DAMENG/backup_file_01'

回复

recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmdbms/data/DAMENG/backup_file_01'

更新

recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' update db_magic

4配置主库文件

4.1配置dm.ini

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

PORT_NUM = 5236          #数据库实例监听端口,即对外端口,与 dmmal.ini 中 的 MAL_INST_PORT 对应

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 次的日志发送信息

4.2配置dmmal.ini

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

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

[MAL_INST1]

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

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

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

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

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

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

  MAL_INST_DW_PORT = 33141     #实例监听守护进程 TCP 连接的端口 (守护V4.0配置,V3.0在dm.ini中配置DW_PORT)

[MAL_INST2]

  MAL_INST_NAME         = GRP1_RT_02

  MAL_HOST               = 192.168.125.141

  MAL_PORT               = 61142

  MAL_INST_HOST          = 192.168.125.141

  MAL_INST_PORT          = 5236

  MAL_DW_PORT = 52142

  MAL_INST_DW_PORT   = 33142

4.3配置dmarch.ini

[ARCHIVE_REALTIME]

ARCH_TYPE     = REALTIME

ARCH_DEST     = GRP1_RT_02

[ARCHIVE_LOCAL1]

ARCH_TYPE     = LOCAL

ARCH_DEST     = /home/dmdba/dmdbms/data/DAMENG/arch

ARCH_FILE_SIZE  = 128

ARCH_SPACE_LIMIT  = 102400

4.4配置dmwatcher.ini

[GRP1_RT_01]

DW_TYPE = GLOBAL  #全局守护类型

DW_MODE = MANUAL    #手动切换模式

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

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

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

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

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

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

INST_STARTUP_CMD   = /home/dmdba/dmdbms/bin/dmserver

#命令行方式启动

4.5 oguid

./dmserver /data/DAMENG/dm.ini mount

#新开窗口,进入disql,设置参数

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);

5配置备库文件

5.1配置dm.ini

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

PORT_NUM = 5236          #数据库实例监听端口,即对外端口,与 dmmal.ini 中 的 MAL_INST_PORT 对应

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 次的日志发送信息

5.2配置dmmal.ini

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

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

[MAL_INST1]

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

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

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

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

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

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

  MAL_INST_DW_PORT = 33141     #实例监听守护进程 TCP 连接的端口 (守护V4.0配置,V3.0在dm.ini中配置DW_PORT)

[MAL_INST2]

  MAL_INST_NAME         = GRP1_RT_02

  MAL_HOST               = 192.168.125.141

  MAL_PORT               = 61142

  MAL_INST_HOST          = 192.168.125.141

  MAL_INST_PORT          = 5236

  MAL_DW_PORT = 52142

  MAL_INST_DW_PORT   = 33142

5.3配置dmarch.ini

[ARCHIVE_REALTIME]

ARCH_TYPE     = REALTIME

ARCH_DEST     = GRP1_RT_01

[ARCHIVE_LOCAL1]

ARCH_TYPE     = LOCAL

ARCH_DEST     = /home/dmdba/dmdbms/data/DAMENG/arch

ARCH_FILE_SIZE  = 128

ARCH_SPACE_LIMIT  = 102400

5.4配置dmwatcher.ini

[GRP1_RT_01]

DW_TYPE = GLOBAL  #全局守护类型

DW_MODE = MANUAL    #手动切换模式

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

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

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

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

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

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

INST_STARTUP_CMD   = /home/dmdba/dmdbms/bin/dmserver

#命令行方式启动

5.5 oguid

./dmserver /data/DAMENG/dm.ini mount

#新开窗口,进入disql,设置参数

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);

6配置监视器

(由于电脑原因,所以将监视器配在了主库上)在主库的DAMENG下创建dmmonitor.ini文件

MON_DW_CONFIRM              = 0   #非确认监视器模式

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

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

MON_LOG_FILE_SIZE    = 32

MON_LOG_SPACE_LIMIT  = 0

[GRP1_RT_01]

MON_INST_OGUID     = 453331 #组GRP1_RT_01的唯一OGUID值

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

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

MON_DW_IP = 192.168.125.140:52141

MON_DW_IP = 192.168.125.141:52142

7注册服务

(需要root用户注册3个服务:dmserver、dmwatcher、dmmonitor服务,因为2目录已经注册了dmserver,所以只需注册剩下两个)

7.1主库注册服务

(由于电脑问题,监视服务注册在了主库上)

./dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini -p GRP1_RT_01

./dm_service_installer.sh -t dmmonitor -monitor_ini /dm8/data/DAMENG/dmmonitor.ini -p DMMONITOR

7.2备库注册服务

./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/data/DAMENG/dmwatcher.ini -p GRP1_RT_02

8服务开关顺序

8.1打开集群顺序

(1)启动主库和备库的实例服务

[dmdba@localhost bin]$cd /home/dmdba/dmdbms/bin

[dmdba@localhost bin]$./DmServiceGRP1_RT_01  start

Starting DmServiceGRP1_RT_01:                  [OK]

[dmdba@localhost bin]$cd /home/dmdba/dmdbms/bin

[dmdba@localhost bin]$./DmServiceGRP1_RT_02  start

Starting DmServiceGRP1_RT_02:                  [OK]

(2)启动主库和备库的数据守护服务

[dmdba@localhost bin]$./DmWatcherServiceGRP1_RT_01  start

Starting DmWatcherServiceGRP1_RT_01:         [OK]

[dmdba@localhost bin]$./DmWatcherServiceGRP1_RT_02  start

Starting DmWatcherServiceGRP1_RT_02        [OK]

(3)启动监视器

[dmdba@localhost bin]$cd /home/dmdba/dmdbms/bin

[dmdba@localhost bin]$./DmMonitorServiceGRP1_RT_01  start

Starting DmMonitorServiceGRP1_RT_01:           [OK]

8.2关闭集群顺序

(1)关闭监视器服务

[dmdba@localhost bin]$cd /home/dmdba/dmdbms/bin

[dmdba@localhost bin]$./DmMonitorServiceMonitor  stop

Stoping DmMonitorServiceMonitor:           [OK]

(2)关闭备库数据守护进程

[dmdba@localhost bin]$cd /home/dmdba/dmdbms/bin

[dmdba@localhost bin]$./DmWatcherServiceGRP1_RT_02  stop

Stoping DmWatcherServiceGRP1_RT_02         [OK]

(3)关闭主库数据守护进程

[dmdba@localhost bin]$cd /home/dmdba/dmdbms/bin

[dmdba@localhost bin]$./DmWatcherServiceGRP1_RT_01  stop

Stoping DmWatcherServiceGRP1_RT_01:         [OK]

(4)关闭主库实例服务

[dmdba@localhost bin]$cd /home/dmdba/dmdbms/bin

[dmdba@localhost bin]$./DmServiceGRP1_RT_01  stop

Stoping DmServiceGRP1_RT_01:                  [OK]

(5)关闭备库实例服务

[dmdba@localhost bin]$cd /home/dmdba/dmdbms/bin

[dmdba@localhost bin]$./DmServiceGRP1_RT_02  stop

Stoping DmServiceGRP1_RT_02:                  [OK]

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 Docker 搭建达梦8主备集群,需要按照以下步骤进行: 1. 安装 Docker 和 Docker Compose 2. 下载达梦8主备集群安装包,并解压缩到指定目录下,例如 /opt/dm8-cluster。 3. 在 /opt/dm8-cluster 目录下创建 docker-compose.yml 文件,内容如下: ``` version: '3' services: dm8_primary: image: dm8_image container_name: dm8_primary volumes: - ./dm8_primary:/opt/dmdbms environment: - DM8_HOME=/opt/dmdbms - DM8_PRIMARY=Y ports: - "5236:5236" networks: dm8_network: ipv4_address: 172.20.0.2 dm8_standby: image: dm8_image container_name: dm8_standby volumes: - ./dm8_standby:/opt/dmdbms environment: - DM8_HOME=/opt/dmdbms - DM8_STANDBY=Y - DM8_PRIMARY_IP=172.20.0.2 ports: - "5236:5236" networks: dm8_network: ipv4_address: 172.20.0.3 networks: dm8_network: driver: bridge ipam: config: - subnet: 172.20.0.0/16 ``` 其中,dm8_primary 为达梦8主节点的 Docker 容器,dm8_standby 为达梦8备节点的 Docker 容器。dm8_image 为达梦8的 Docker 镜像,可以使用达梦官方提供的镜像,也可以自己构建镜像。dm8_primary 和 dm8_standby 都挂载了本地目录到容器内,用于存储数据库文件。DM8_HOME 环境变量指定了达梦8的安装目录,DM8_PRIMARY 和 DM8_STANDBY 环境变量分别表示是否为主节点和备节点,DM8_PRIMARY_IP 环境变量指定了主节点的 IP 地址。容器内的 5236 端口映射到宿主机的 5236 端口,用于客户端访问。最后,将两个容器连接到 dm8_network 网络中。 4. 构建 Docker 镜像 在 /opt/dm8-cluster 目录下执行以下命令构建 Docker 镜像: ``` docker build -t dm8_image . ``` 其中,dm8_image 为镜像名称,最后的 . 表示 Dockerfile 文件路径为当前目录。 5. 启动容器 在 /opt/dm8-cluster 目录下执行以下命令启动容器: ``` docker-compose up -d ``` 其中,-d 表示在后台运行容器。 6. 验证主备集群 使用客户端连接到主节点的 5236 端口,验证主备集群是否正常工作。可以先停止主节点的容器,观察备节点是否自动切换为主节点。然后再启动主节点的容器,观察主备节点是否重新建立复制关系。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值