部署DM实时主备-配置实时主备

环境准备

最好为一主多备加一个独立确认监视器服务器,本次为测试环境,确认监视器放在了备库上

应用ipprot
集群主库192.168.189.1295236实例的对外服务端口
集群主库192.168.189.12952141实例对应的守护进程监听 TCP 连接的端口
集群主库192.168.189.12961141系统监听 TCP 连接的端口
集群主库192.168.189.12933141守护环境下,监听守护进程连接端口
集群备库192.168.189.1305236实例的对外服务端口
集群备库192.168.189.13052142实例对应的守护进程监听 TCP 连接的端口
集群备库192.168.189.13061142系统监听 TCP 连接的端口
集群备库192.168.189.13033142守护环境下,监听守护进程连接端口
集群监视器192.168.189.130

一 创建安装用户

主库、备库与确认监视器相同操作,下方仅以主库为例

1.1 创建安装用户组 dinstall

# groupadd dinstall

1.2 创建安装用户 dmdba

# useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba

1.3 初始化用户密码

# passwd dmdba

1.4 创建达梦数据库安装目录并授权

# mkdir -p /opt/dmdbms
# chown -R dmdba:dinstall /opt/dmdbms

1.5 挂载iso文件

# mount -o loop dm***.iso /mnt
# cd ../mnt
# cp DMInstall.bin /opt
# cd ../
# umount /mnt

二 安装数据库

主库、备库与确认监视器相同操作,下方仅以主库为例

2.1 安装数据库软件 注:主备库都需要安装

切换用户到dmdba

# su - dmdba
$ cd /opt
$ ./DMInstall.bin -i

依次输入 c 选择中文
y 选择输入dm.key文件路径(有key选择输入路径,没有key输入 n 跳过)
/opt/dm.key 输入路径地址
y 选择设置时区
21 默认为21中国标准时间
1 默认为1标准安装
/opt/dmdbms/ 输入安装目录
y 输入y确认安装
安装结束,根据提示,请以root系统用户执行命令:

$ su - root
# cd /opt/dmdbms/script/root/
# ./root_installer.sh

数据库安装完成

2.2 主库初始化实例

注:搭建达梦主备仅需要主库初始化实例即可,如主库存在实例且有数据的情况,请参考搭建DM实时主备-数据准备,此处选择数据拷贝方式同步实例数据,所以仅初始化主库实例

# su – dmdba
$ cd /opt/dmdbms/bin
$ ./dminit PATH=/opt/dmdbms/data/ CHARSET=1

初始化实例可选参数,此处选择字符集为UTF-8
初始化成功后将以正常方式启动,并退出一次
对于新初始化的库,首次启动不允许使用 mount 方式,需要先正常启动并正常退出,然后才允许 mount 方式启动。

$ cd /opt/dmdbms/bin
$ ./dmserver /opt/dmdbms/data/DAMENG/dm.ini

启动后关闭进程即可

2.3 数据文件拷贝

将主库DAMENG文件夹scp至备库data文件夹下

$ cd /opt/dmdbms
$ scp -r data/ 192.168.189.130:/opt/dmdbms/data/

2.4 检查数据一致性

分别在主备库/opt/dmdbms/bin/目录下,以mount形式启动数据库

$ cd /opt/dmdbms/bin/
$ ./dmserver /opt/dmdbms/data/DAMENG/dm.ini mount

分别启动命令行工具 DIsql

$ cd /opt/dmdbms/bin/
$ ./disql SYSDBA/SYSDBA
SQL>select file_LSN, cur_LSN from v$rlog;
SQL>select permanent_magic;

查看备库file_LSN值、cur_LSN 值与 permanent值是否一致,其中主备库file_LSN值与cur_LSN 值应为同一值(四组值相同),主备库permanent值为同一值。
确保值都一致的情况下,正常关闭各个实例

三 配置主库配置文件

3.1 配置 dm.ini

$ cd /opt/dmdbms/data/DAMENG/
$ vi dm.ini
  1. 将INSTANCE_NAME值改为GRP1_RT_01
  2. 将DW_PORT值改为33141
  3. 将DW_ERROR_TIME值改为60
  4. 将ALTER_MODE_STATUS值改为 0
  5. 将ENABLE_OFFLINE_TS 值改为2
  6. 将MAL_INI 值改为1
  7. 将ARCH_INI值改为1
  8. 将HA_INST_CHECK_FLAG 值改为1

3.2 配置 dmmal.ini

$ vi dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.189.129 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.189.129 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 192.168.189.130
MAL_PORT = 61142
MAL_INST_HOST = 192.168.189.130
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142

3.3 配置 dmarch.ini

$ vi dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = GRP1_RT_02 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/dmdbms/data/DAMENG/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb, 0 表示无限制,范围 1024~4294967294M

3.4 配置 dmwatcher.ini

$ vi 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 = /opt/dmdbms/data/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /opt/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭

3.5 生成 dmwatcher.ctl文件

**同一个守护进程组,必须使用同一份 dmwatcher.ctl。因此,只需要使用 dmctlcvt
工具生成一份 dmwatcher.ctl 文件,然后拷贝到192.168.189.130目录下即可.
**

$ cd /opt/dmdbms/bin
$ ./dmctlcvt TYPE=3 SRC=/opt/dmdbms/data/DAMENG/dmwatcher.ini DEST=/opt/dmdbms/data
$ cd /opt/dmdbms/data/GRP1/
$ cp dmwatcher.ctl /opt/dmdbms/data/DAMENG/
$ scp dmwatcher.ctl 192.168.189.130:/opt/dmdbms/data/DAMENG/

3.6 启动主库

以 mount 方式启动主库

$ cd /opt/dmdbms/bin/
$ ./dmserver /opt/dmdbms/data/DAMENG/dm.ini mount

另开窗口

$ cd /opt/dmdbms/bin/
$ ./disql
输入以下sql
SQL>sp_set_oguid(453331); 注:设置OUGID值
SQL>alter database primary; 注:登录主库修改数据库为 primary 模式

四 配置备库配置文件

4.1 配置 dm.ini

$ cd /opt/dmdbms/data/DAMENG/
$ vi dm.ini
9.	将INSTANCE_NAME值改为GRP1_RT_02
10.	将DW_PORT值改为33142
11.	将DW_ERROR_TIME值改为60
12.	将ALTER_MODE_STATUS值改为 0
13.	将ENABLE_OFFLINE_TS 值改为2
14.	将MAL_INI 值改为1
15.	将ARCH_INI值改为1
16.	将HA_INST_CHECK_FLAG 值改为1

4.2 配置 dmmal.ini

$ vi dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.189.129 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.189.129 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 192.168.189.130
MAL_PORT = 61142
MAL_INST_HOST = 192.168.189.130
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142

4.3 配置 dmarch.ini

$ vi dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = GRP1_RT_01 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/dmdbms/data/DAMENG/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb, 0 表示无限制,范围 1024~4294967294M

4.4 配置 dmwatcher.ini

$ vi 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 = /opt/dmdbms/data/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /opt/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭

4.5 启动备库

以 mount 方式启动备库

$ cd /opt/dmdbms/bin/
$ ./dmserver /opt/dmdbms/data/DAMENG/dm.ini mount
$ cd /opt/dmdbms/bin/

进入disql

$ ./disql SYSDBA/SYSDBA

将以下sql执行

SQL>sp_set_oguid(453331); --注:设置OUGID值
SQL>alter database standby; --注:登录备库修改数据库为 Standby 模式

五 配置监视器

最好配置两个监视器 一个作为确认监视器,后台启动,保障主库发生故障会自动接管,一个作为普通监视器可以随时登录查看状态
此次为测试环境,监视器部署在备库上

5.1 配置普通监视器

# mkdir monitor
# chown -R dmdba:dinstall /monitor 
# su - dmdba
$ cd /opt/dmdbms/monitor
$ vi monitor_nor.ini

将以下内容添加至文件中

MON_DW_CONFIRM = 0 #确认监视器模式
MON_LOG_PATH = /opt/dmdbms/monitor/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.189.129:52141
MON_DW_IP = 192.168.189.130:52142

5.2 配置确认监视器

$ vi monitor.ini

将以下内容添加至文件

MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /opt/dmdbms/monitor/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.189.129:52141
MON_DW_IP = 192.168.189.130:52142

5.3 启动进程

1.启动主备库实例进程

$ cd /opt/dmdbms/bin/
$ ./dmserver /opt/dmdbms/data/DAMENG/dm.ini mount

2.启动主备库守护进程

$ cd /opt/dmdbms/bin/
./dmwatcher /opt/dmdbms/data/DAMENG/dmwatcher.ini

3.启动确认监视器

./dmmonitor /opt/dmdbms/monitor_cloud /monitor.ini
查看主备库处于正常状态关闭进程,注册服务。

六 注册服务

6.1 主库注册实例服务

$ cd /opt/dmdbms/script/root
$ ./dm_service_installer.sh -t dmserver -i /opt/dmdbms/data/DAMENG/dm.ini -m mount -p GRP1_RT_01

6.2 主库注册守护进程服务

$ ./dm_service_installer.sh -t dmwatcher -i /opt/dmdbms/data/DAMENG/dmwatcher.ini -p dm1

6.3 备库注册实例服务

$ cd /opt/dmdbms/script/root
$ ./dm_service_installer.sh -t dmserver -i /opt/dmdbms/data/DAMENG/dm.ini -m mount -p GRP1_RT_02

6.4 备库注册守护进程服务

$ ./dm_service_installer.sh -t dmwatcher -i /opt/dmdbms/data/DAMENG/dmwatcher.ini -p dm2

6.5 注册监视器服务

$ ./dm_service_installer.sh -t dmmonitor -i /opt/dmdbms/monitor/monitor.ini

7 查看状态

登录普通监视器查看状态

$ cd /opt/dmdbms/bin
$ ./dmmonitor /opt/dmdbms/monitor_cloud /monitor_nor.ini

集群状态定时刷新,也可登录监视器,输入 login,提示输入用户名密码,默认为SYSDBA,登录后输入 show 即可实时查看集群状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值