达梦数据库-手动搭建实时主备

环境准备

两台虚拟机(已经安装好的数据库,待初始化。安装教程可以看之前文章)

主机名IP地址(自己测试,可以只用一个IP,dmmal.ini中配置同一个ip就行)
DW1(主)外IP:192.168.200.11
内IP:192.168.241.11
DW2(备)外IP:192.168.200.12
内IP:192.168.241.12

搭建步骤

1. 初始化主备服务器上的数据库,实例名不能一样,数据库安装目录是“/opt/dmdbms” (下面操作需要切换到dmdba用户)

-- 主库  实例名 dmdw1 
./dminit path=/opt/dmdbms/data instance_name=dmdw1 db_name=dmdw
-- 备库  实例名 dmdw2 
./dminit path=/opt/dmdbms/data instance_name=dmdw2 db_name=dmdw

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

2. 主库服务器启动数据库(进行初始化),进行脱机备份数据库(备份文件需要还原到备库上,确保数据一致)

-- 启动数据库 初始化
./dmserver /opt/dmdbms/data/dmdw/dm.ini
-- 备份数据库(备份前关闭数据库,脱机备份)
./dmrman
backup database '/opt/dmdbms/data/dmdw/dm.ini' full backupset '/opt/dmdbms/fullback'

在这里插入图片描述

3. 备库服务器,还原数据库

-- 拷贝主库备份文件到备库 (如果没有scp,可通过别的工具上传)
scp -r 192.168.200.11:/opt/dmdbms/fullback /opt/dmdbms/
-- 授权文件给dmdba用户
chown -R dmdba:dinstall fullback/

在这里插入图片描述

./dmrman
-- 还原数据库
restore database '/opt/dmdbms/data/dmdw/dm.ini' from backupset '/opt/dmdbms/fullback'
-- 恢复数据库
recover database '/opt/dmdbms/data/dmdw/dm.ini' from backupset '/opt/dmdbms/fullback'
-- 更新数据库
recover database '/opt/dmdbms/data/dmdw/dm.ini' update db_magic;

在这里插入图片描述

4. 修改主备数据库,dm.ini配置文件,主备修改一样

	vi /opt/dmdbms/data/dmdw/dm.ini
	-- 配置
	ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
	ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间

	MAL_INI = 1 #打开 MAL 系统
	ARCH_INI = 1 #打开归档配置

5. 配置mal系统,dmmal.ini,主备一样

vi /opt/dmdbms/data/dmdw/dmmal.ini
-- 配置
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
 MAL_INST_NAME = DMDW2 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
 MAL_HOST = 192.168.241.12 #MAL 系统监听 TCP 连接的 IP 地址
 MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口
 MAL_INST_HOST = 192.168.200.12 #实例的对外服务 IP 地址
 MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
 MAL_DW_PORT = 52141 #实例本地的守护进程监听 TCP 连接的端口
 MAL_INST_DW_PORT = 33141 #实例监听守护进程 TCP 连接的端口
[MAL_INST2]
 MAL_INST_NAME = DMDW1
 MAL_HOST = 192.168.241.11
 MAL_PORT = 61142
 MAL_INST_HOST = 192.168.200.11
 MAL_INST_PORT = 5236
 MAL_DW_PORT = 52142
 MAL_INST_DW_PORT = 33142

6. 配置归档,dmarch.ini

-- 创建归档路径 
mkdir  /opt/dmdbms/arch
vi  /opt/dmdbms/data/dmdw/dmarch.ini
-- 主服务器dmarch.ini配置
[ARCHIVE_REALTIME] 
ARCH_TYPE = REALTIME #实时归档类型  TIMELY读写分离
ARCH_DEST = DMDW2 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/dmdbms/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~2147483647M
-- 备服务器dmarch.ini配置
[ARCHIVE_REALTIME] 
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMDW1 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/dmdbms/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~2147483647M

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

8. 启动主备数据库,设置oguid

-- 必须已mount方式启动  主备一样的操作
./dmserver /opt/dmdbms/data/dmdw/dm.ini mount
-- 设置oguid  主备一样的操作
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453331);
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
-- 主库
alter database primary;
-- 备库
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>alter database standby; 
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0); 

9. 启动守护进程,搭建完成,此时已经可以实现主备实时同步

-- 主备都执行
./dmwatcher /opt/dmdbms/data/dmdw/dmwatcher.ini

在这里插入图片描述

10. 配置监视器(故障转移),dmmonitor.ini,一般监视器单独部署一台服务器上。

vi /opt/dmdbms/data/dmdw/dmmonitor.ini
-- 配置
MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /opt/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.241.12:52141
MON_DW_IP = 192.168.241.11:52142
-- 启动监视器
./dmmonitor /opt/dmdbms/data/dmdw/dmmonitor.ini

在这里插入图片描述

备注 其他

可以把守护进程、监视器都做成服务,这样实现开机自启动,需要切换到 root 用户

cd /opt/dmdbms/script/root/
-- 守护进程  主
./dm_service_installer.sh -t dmwatcher -p dmw01 -watcher_ini /opt/dmdbms/data/dmdw/dmwatcher.ini
-- 守护进程  备
./dm_service_installer.sh -t dmwatcher -p dmw02 -watcher_ini /opt/dmdbms/data/dmdw/dmwatcher.ini
-- 监视器 
./dm_service_installer.sh -t dmmonitor-p dmmonitor -monitor_ini /opt/dmdbms/data/dmdw/dmmonitor.ini
--

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值