Linux环境下达梦数据库两节点实时主备集群的搭建


前言

实时主备
达梦数据库实时主备的原理是主库修改数据产生的REDO日志, 通过实时归档机制, 在写入本地REDO之前发送给备库,备库接收到REDO后重新应用REDO日志来保持与主库数据同步,当主库故障时, 备库再将所有REOD日志应用完成后,就切换为主库对外提供服务。

本文主要介绍在Linux系统中规范化部署达梦数据库两节点主备集群的过程,以供学习参考。

一、环境准备

1.1创建虚拟机

搭建DM两节点主备集群需要准备2台服务器,一台主库服务器,一台备库服务器,备库服务器也作为监视器服务器使用,2台服务器都需要安装有DM数据库软件。

1.1.1 IP地址规划

主库 IP: 192.168.10.112 实例名 its1 数据库名称 its
备库 IP: 192.168.10.113 实例名 its2 数据库名称 its

1.1.2 端口规划

   MAL_INST_PORT       5236      数据库实例监听端口

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

   MAL_DW_PORT         33141     实例监听守护进程 TCP 连接的端口

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

1.1.3 目录规划

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

1.1.4 前期准备

用户与组

DM 数据库不应该使用 root 用户安装和维护。需要在安装之前为 DM 数据库创建一个专用的系统用户 (dmdba) 和用户组(dinstall),并设置系统用户dmdba的密码。

在这里插入图片描述

关闭防火墙

查看防火墙状态,如果显示为active,需要关闭防火墙,禁用则开机不启动防火墙。

systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service

关闭SELinux

查看是否开启了SELinux,如果显示为Enforcing,需要改为Disabled,再重启系统使配置生效。

getenforce
vi /etc/selinux/config
#进入文件后修改 SELINUX = disabled
#保存退出文件
reboot

二、数据库软件安装(两个节点相同操作)

1.命令行形式安装

进入达梦软件挂载目录,执行./DMInstall.bin -i 命令
在这里插入图片描述
按照要求使用root用户执行脚本
在这里插入图片描述

2.初始化数据库实例

1、主库

[dmdba@k8s112 bin]$ ./dminit PATH=/home/dmdba/dmdata db_name=its instance_name=its1

2、备库

 [dmdba@k8s113 bin]$ ./dminit PATH=/home/dmdba/dmdata db_name=its instance_name=its2

在这里插入图片描述

3.前台启动各个实例,启动后关闭

1、主库

[dmdba@k8s112 bin]$ ./dmserver /home/dmdba/dmdata/its/dm.ini

2、备库

[dmdba@k8s113 bin]$ ./dmserver /home/dmdba/dmdata/its/dm.ini

在这里插入图片描述

4.主库进行脱机备份

脱机备份前要关闭数据库实例,否则备份会出错

[dmdba@k8s112 bin]$ ./dmrman
dmrman V8
RMAN> BACKUP DATABASE ‘/home/dmdba/dmdata/its/dm.ini’ FULL BACKUPSET ‘/home/dmdba/dmbak/full_database’;

在这里插入图片描述

5.备库进行数据恢复

1、主库复制备份文件到备库

[dmdba@k8s112 bin]$ scp -r /home/dmdba/dmbak/full_database
192.168.10.113:/home/dmdba/dmbak/

在这里插入图片描述

2、备库进行恢复

[dmdba@k8s113 bin]$ ./dmrman

dmrman V8

RMAN> RESTORE DATABASE ‘/home/dmdba/dmdata/its/dm.ini’ FROM BACKUPSET ‘/home/dmdba/dmbak/full_database’;

RMAN> RECOVER DATABASE ‘/home/dmdba/dmdata/its/dm.ini’ FROM BACKUPSET ‘/home/dmdba/dmbak/full_database’;

RMAN> RECOVER DATABASE ‘/home/dmdba/dmdata/its/dm.ini’ UPDATE DB_MAGIC;

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

三、配置文件设置

1.主库配置所需配置文件

1、dm.ini

   [dmdba@k8s112 ~]$ vi /home/dmdba/dmdata/its/dm.ini

   INSTANCE_NAME     = its1

   MAL_INI           = 1

   ARCH_INI          = 1

   ALTER_MODE_STATUS = 0      

   ENABLE_OFFLINE_TS = 2

2、dmarch.ini

   [dmdba@k8s112 ~]$ vi /home/dmdba/dmdata/its/dmarch.ini

    [ARCHIVE_REALTIME]

    ARCH_TYPE         = REALTIME

    ARCH_DEST         = its2

    [ARCHIVE_LOCAL1]

    ARCH_TYPE         = LOCAL

    ARCH_DEST         =/home/dmdba/dmarch

    ARCH_FILE_SIZE    = 128

    ARCH_SPACE_LIMIT  = 10240

3、dmmal.ini

  [dmdba@k8s112 ~]$ vi /home/dmdba/dmdata/its/dmmal.ini

    MAL_CHECK_INTERVAL      = 5

    MAL_CONN_FAIL_INTERVAL  = 5

    [MAL_INST1]

    MAL_INST_NAME    = its1

    MAL_HOST         = 192.168.10.112

    MAL_PORT         = 61141

    MAL_INST_HOST    = 192.168.10.112

    MAL_INST_PORT    = 5236

    MAL_DW_PORT      = 52141

    MAL_INST_DW_PORT = 33141

    [MAL_INST2]

    MAL_INST_NAME    = its2

    MAL_HOST         = 192.168.10.113

    MAL_PORT         = 61141  

    MAL_INST_HOST    = 192.168.10.113

    MAL_INST_PORT    = 5236

    MAL_DW_PORT      = 52141

    MAL_INST_DW_PORT = 33141

4、dmwatcher.ini

 [dmdba@k8s112 ~]$ vi /home/dmdba/dmdata/its/dmwatcher.ini

    [GRP_RW]

    DW_TYPE           = GLOBAL

    DW_MODE           = AUTO

    DW_ERROR_TIME     = 10

    INST_RECOVER_TIME = 60

    INST_ERROR_TIME   = 10

    INST_OGUID        = 453331

    INST_INI          = /home/dmdba/dmdata/its/dm.ini

    INST_AUTO_RESTART = 1

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

2.备库配置所需配置文件

1、dm.ini

   [dmdba@k8s113 ~]$ vi /home/dmdba/dmdata/its/dm.ini

   INSTANCE_NAME     = its2

   MAL_INI           = 1

   ARCH_INI          = 1

   ALTER_MODE_STATUS = 0      

   ENABLE_OFFLINE_TS = 2

2、dmarch.ini

   [dmdba@k8s113 ~]$ vi /home/dmdba/dmdata/its/dmarch.ini

    [ARCHIVE_REALTIME]

    ARCH_TYPE         = REALTIME

    ARCH_DEST         = its1

    [ARCHIVE_LOCAL1]

    ARCH_TYPE         = LOCAL

    ARCH_DEST         =/home/dmdba/dmarch

    ARCH_FILE_SIZE    = 128

    ARCH_SPACE_LIMIT  = 10240

3、dmmal.ini

  [dmdba@k8s113 ~]$ vi /home/dmdba/dmdata/its/dmmal.ini

    MAL_CHECK_INTERVAL      = 5

    MAL_CONN_FAIL_INTERVAL  = 5

    [MAL_INST1]

    MAL_INST_NAME    = its1

    MAL_HOST         = 192.168.10.112

    MAL_PORT         = 61141

    MAL_INST_HOST    = 192.168.10.112

    MAL_INST_PORT    = 5236

    MAL_DW_PORT      = 52141

    MAL_INST_DW_PORT = 33141

    [MAL_INST2]

    MAL_INST_NAME    = its2

    MAL_HOST         = 192.168.10.113

    MAL_PORT         = 61141  

    MAL_INST_HOST    = 192.168.10.113

    MAL_INST_PORT    = 5236

    MAL_DW_PORT      = 52141

    MAL_INST_DW_PORT = 33141

4、dmwatcher.ini

 [dmdba@k8s113 ~]$ vi /home/dmdba/dmdata/its/dmwatcher.ini

    [GRP_RW]

    DW_TYPE           = GLOBAL

    DW_MODE           = AUTO

    DW_ERROR_TIME     = 10

    INST_RECOVER_TIME = 60

    INST_ERROR_TIME   = 10

    INST_OGUID        = 453331

    INST_INI          = /home/dmdba/dmdata/its/dm.ini

    INST_AUTO_RESTART = 1

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

四、启动主备集群

1.启动数据库实例

使用 dmdba 用户,到数据库安装目录的 bin 下执行以下命令。
(主备库都执行)

./dmserver /home/dmdba/dmdata/its/dm.ini mount

在这里插入图片描述

另外开一个新的终端,使用 disql 工具连接数据库,修改 oguid。
(主备库都执行)

./disql SYSDBA/SYSDBA
#连接成功后修改 oguid sp_set_oguid(453331);

主库修改数据库模式为 primary,执行以下命令:

alter database primary;

备库修改数据库模式为 standby,执行以下命令:

alter database standby;

在这里插入图片描述
在这里插入图片描述

2.启动守护进程

dmdba 用户下,到数据库安装目录的 bin 下执行。
(主备库都执行) 守护进程启动后,会将 Mount 的实例 Open。

./dmwatcher /home/dmdba/dmdata/its/dmwatcher.ini
在这里插入图片描述
在这里插入图片描述

五、在备库上配置监视器

1、监视器配置文件

[dmdba@k8s113 ~]$ vi /home/dmdba/dmdata/its/dmmonitor.ini

    MON_DW_CONFIRM      = 1

    MON_LOG_PATH        = /home/dmdba/dmdbms/log

    MON_LOG_INTERVAL    = 60

    MON_LOG_FILE_SIZE   = 32

    MON_LOG_SPACE_LIMIT = 0

    [GRP_RW]

    MON_INST_OGUID      = 453331

    MON_DW_IP           = 192.168.10.112:52141

    MON_DW_IP           = 192.168.10.113:52141

2、启动监视器

[dmdba@k8s113 bin]$ ./dmmonitor /home/dmdba/dmdata/its/dmmonitor.ini
在这里插入图片描述

测试切换备库为主库:switchover its2

在这里插入图片描述

六、disql客户端验证主备集群

1.使用 disql 客户端登录主库,创建测试表,插入数据。

./disql SYSDBA/SYSDBA@192.168.10.112:5236

在这里插入图片描述

2.使用 disql 客户端登录备库,查询测试表验证。

./disql SYSDBA/SYSDBA@192.168.10.113:5236
在这里插入图片描述

总结

本文主要介绍在CentOS7(Linux 系统)规范化部署 DM 两节点主备集群的过程。如果文中有误,欢迎指出。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值