DM数据库数据守护集群搭建
目录
1、环境说明
2、数据准备
(1)正常关闭数据库:前台+后台
(2)进行脱机备份
(3)拷贝备份文件到备机
(4)备机进行脱机数据库还原与恢复
3、配置主库DMDB1
3.1 配置dm.ini
3.2 配置dmmal.ini
3.3 配置dmarch.ini
3.4 配置dmwatcher.ini
3.5 mount配置模式启动主库
4、配置备库DMDB2
4.1 配置dm.ini
4.2 配置dmmal.ini
4.3 配置dmmal.ini
4.4 配置dmwatcher.ini
4.5 mount配置模式启动备库
5、配置监视器
6、启动守护进程
7、启动监视器
1、环境说明
机器名 | IP地址 | 初始状态 | 操作系统 |
DM_P |
192.168.174.130(外网) 192.168.158.130(内网) |
主库 DMDB1 |
CentOS-7-x86_64-DVD-2009 |
DM_S1 |
192.168.174.131(外网) 192.168.158.131(内网) |
备库 DMDB2 |
CentOS-7-x86_64-DVD-2009 |
DM_M |
192.168.174.134(外网) |
监视器 | CentOS-7-x86_64-DVD-2009 |
端口规划
实例名 | PORT_NUM | MAL_INST_DW_PORT | MAL_HOST | MAL_PORT | MAL_DW_PORT |
DMDB1 | 32141 | 32141 | 192.168.158.130 | 61141 | 52141 |
DMDB2 | 32142 | 32142 | 192.168.158.131 | 61142 | 52142 |
2、数据准备
配置数据守护之前,必须先通过备份还原方式同步各数据库的数据,确保各数据的数据保持完全一致。主库可以是新初始化的数据库,也可以是正在生产、使用中的数据库。备库在备份还原前,需要先准备初始化一个新库。
不能使用分别初始化库或者直接拷贝数据文件的方法来直接配置数据库守护,原因如下:
1.每个库都有一个永久魔数(permanent_magic),一经生成,永远不会改变,主库传送日志时会判断这个值是否一样,确保是来自同一个数据守护环境中的库,否则传送不了日志。
2.由于dminit初始化数据库时,会生成随机密钥用于加密,每次生成的密钥都不相同,备库无法解析采用主库密钥加密的数据。
3.每个库都有一个数据库魔数(DB_MAGIC),每经过一次还原、恢复操作,DB_MAGIC就会产生变化,需要通过这种方式来区分同一个数据守护环境中各个不同的库。
如果是初始搭建环境,可以通过对主库脱机备份、对备库脱机还原的方式来准备数据,如果主库已经处于运行状态,则可以对主库进行联机备份、对备库脱机还原的方式来准备数据。
克隆的已经安装达梦数据库,初始化了实例的虚拟机的话,在操作之前是需要关闭数据库的。总之脱机备份之前要保证数据库是关闭的。
数据准备的具体步骤包括:
(1)正常关闭数据库:前台+后台
后台关闭:
systemctl stop DmServiceDMSERVER.service
数据库在初始化实例之后必须前台启动刷新一下!不然会出现守护进程无法自动将数据库转变为open状态,数据库将一直处于mount状态。
前台打开:切换到达梦数据库安装的bin目录下执行下面语句,我的达梦数据库bin目录路径为:/dm8/bin
./dmserver /dm8/data/DAMENG/dm.ini
前台关闭:Ctrl+C
(2)进行脱机备份
到bin目录下使用dmrman工具进行脱机备份。
./dmrman.sh RMAN> backup database '/dm8/data/DAMENG/dm.ini' full backupset '/dm8/fullbak';
(3)拷贝备份文件到备机
[dmdba@localhost ~]$ scp -r 192.168.174.130:/dm8/fullbak /dm8/
(4)备机进行脱机数据库还原与恢复
执行/dm8/bin目录下的dmrman工具
restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/fullbak';
recover database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/fullbak';
recover database '/dm8/data/DAMENG/dm.ini' update db_magic;
3、配置主库DMDB1
切忌:如果你已经初始化过实例,或者采用克隆的方式克隆已经安装达梦数据库,且实例化的虚拟机,请不要再初始化了!!会出现overwrite一些文件的情况。
DW_P机器上初始化主库至目录/dm8/data:
./dminit path=/dm8/data
DW_S1机器上初始化备库至目录/dm8/data:
./dminit path=/dm8/data
3.1 配置dm.ini
vi /dm8/data/DAMENG/dm.ini
一般只修改前面四个参数值。
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开 归档
ALTER_MODE_SATUS= 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS= 2 #不允许备库 OFFLINE 表空间
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
INSTANCE_NAME = DMDB1 #实例名
PORT_NUM = 32141 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
3.2 配置dmmal.ini
主备库的dmmal.ini配置必须完全一致,MAL_HOST使用内部网络IP,MAL_PORT与dm.ini中PORT_NUM使用不同的端口值,MAL_DW_PORT是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:
vi /dm8/data/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMDB1 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.158.130 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.174.130 #实例的对外服务 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 = DMDB2 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.158.131
MAL_PORT = 61142
MAL_INST_HOST = 192.168.174.131 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 33142 #实例监听守护进程 TCP 连接的端口
3.3 配置dmarch.ini
当前实例DMDB1是主库,需要向DMDB2(实时守护类型的备库)同步数据,因此实时归档的ARCH_DEST配置为DMDB2。
vi /dm8/data/DAMENG/dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMDB2 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/data/DAMENG/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb, 0 表示无限制,范围 1024~4294967294M
3.4 配置dmwatcher.ini
修改 dmwatcher.ini 配置守护进程,配置为全局守护类型,使用自动切换模式。
vi /dm8/data/DAMENG/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 = /dm8/data/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
3.5 mount配置模式启动主库
./dmserver /dm8/data/DAMENG/dm.ini mount
启动命令行工具disql,登录主库设置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;
4、配置备库DMDB2
4.1 配置dm.ini
vi /dm8/data/DAMENG/dm.ini
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开 归档
ALTER_MODE_SATUS= 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS= 2 #不允许备库 OFFLINE 表空间
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
INSTANCE_NAME = DMDB2 #实例名
PORT_NUM = 32141 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
4.2 配置dmmal.ini
主备库的dmmal.ini配置必须完全一致,MAL_HOST使用内部网络IP,MAL_PORT与dm.ini中PORT_NUM使用不同的端口值,MAL_DW_PORT是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:
vi /dm8/data/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMDB1 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.158.130 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.174.130 #实例的对外服务 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 = DMDB2 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.158.131
MAL_PORT = 61142
MAL_INST_HOST = 192.168.174.131 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 33142 #实例监听守护进程 TCP 连接的端口
4.3 配置dmmal.ini
当前实例DMDB1是主库,需要向DMDB2(实时守护类型的备库)同步数据,因此实时归档的ARCH_DEST配置为DMDB2。
vi /dm8/data/DAMENG/dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMDB1 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/data/DAMENG/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb, 0 表示无限制,范围 1024~4294967294M
4.4 配置dmwatcher.ini
修改dmwatcher.ini配置守护进程,配置为实时守护类型,使用自动切换模式。
vi /dm8/data/DAMENG/dmwatcher.ini
修改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 = /dm8/data/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
4.5 mount配置模式启动备库
./dmserver /dm8/data/DAMENG/dm.ini mount
启动命令行工具disql,登录设置OGUID值为453331
SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
sp_set_oguid(453331);
SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);
修改数据库为 Standby 模式
alter database standby;
5、配置监视器
- 监控数据守护系统
- 管理数据守护系统
- 确认状态信息
- 发起故障自动接管命令
- 确认模式和监控模式的区别在于,确认监视器还具有状态确认和自动接管两个功能。
- 故障自动切换模式的数据守护系统,必须部署一个确认监视器,否则在出现数据库故障时,会导致数据库服务中断。
- 在使用主备多实例监视器的情况下,确认监视器可以配置多个。
- 除使用主备多实例监视器的情况外,一个数据守护系统只能配置一个确认监视器。
由于主库和实时备库的守护进程配置为自动切换模式,因此这里选择配置确认监视器。和普通监视器相比,确认监视器除了相同的命令支持外,在主库发生故障时,能够自动通知实时备库接管为新的主库,具有自动故障处理的功能。
vi /dm8/data/dmmonitor.ini
修改 dmmonitor.ini 配置确认监视器, 其中 MON_DW_IP 中的 IP 和 PORT 和dmmal.ini 中的 MAL_HOST 和 MAL_DW_PORT 配置项保持一致。
MON_DW_Confirm = 1 #确认监视器模式
MON_LOG_PATH = /dm8/data/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_PORTMON_DW_IP = 192.168.158.130:52141MON_DW_IP = 192.168.158.131:52142
6、启动守护进程
启动各个主备库上的守护进程:
./dmwatcher /dm8/data/DAMENG/dmwatcher.ini
守护进程启动后,进入Startup状态,此时实例都处于Mount状态。守护进程开始广播自身和其监控实例的状态信息,结合自身信息和远程守护进程的广播信息,守护进程将本地实例Open,并切换为Open状态,如果在监视器中没有看见主备库处于Open状态,那就说明数据库状态存在问题。
7、启动监视器
./dmmonitor /dm8/data/dmmonitor.ini
监视器提供一系列命令,支持当前守护系统状态查看以及故障处理,可输入help命令,查看各种命令说明使用,结合实际情况选择使用。 至此实时守护类型的数据守护系统搭建完毕,在搭建步骤和各项配置都正确的情况下,在监视器上执行show命令,可以监控到所有实例都处于Open状态,所有守护进程也都处于Open状态,即为正常运行状态。
数据守护集群的关闭:
stop GROUP GRP1
至此数据守护集群搭建完毕。更多详细信息请参考达梦数据库官方社。
DM数据库数据守护集群搭建相关推荐
- 达梦数据库数据守护集群搭建(命令行方式)
文章目录 达梦数据守护集群介绍 一.前提 二.环境准备 1.数据守护集群搭建 2.配置过程 达梦数据守护集群介绍 达梦数据守护集群软件(DM Data Watch)是一种集成化的高可靠性解决方案,该方 ...
- 达梦数据库数据守护集群搭建
目录 数据守护 集群搭建 备份还原 dm.ini文件修改 配置dmmal.ini文件 配置dmarch.ini归档文件 配置dmwatcher.ini文件 监视器文件配置 mount启动数据库,设置o ...
- DM数据守护集群搭建
DM数据守护集群搭建 文章目录 DM数据守护集群搭建 一.概述 二.系统结构图 三.基本概念 (1)主库 (2)备库 (3)Redo日志 (4)Redo日志传输 (5)Redo日志重演 (6)守护进程 ...
- DM8数据守护集群搭建
DM8数据守护集群搭建 1.安装规划 1.1 环境说明 1.2 端口配置 2.准备主库 2.1. 修改dm.ini参数 2.2. 配置dmmal.ini 2.3 配置dmwatcher.ini 3.备 ...
- 达梦7数据库数据守护集群 技术方案
达梦数据库数据守护集群 技术方案 目录 1 DM7数据守护集群部署实施流程 3 1.1 流程 3 1.2 系统架构图 3 1.3 网络拓扑图 4 2 部署规划 4 2.1 路径规划 4 2.2 实例规 ...
- DM数据守护集群部署
DM数据守护集群部署 部署规划 A机器 B机器 心跳ip(MAL_HOST) 172.16.1.1 172.16.1.2 业务ip(对外ip) 192.168.56.145 192.168.56.14 ...
- DM8配置数据守护集群
DM8配置数据守护集群 数据库软件:dm8_setup_rh7_64_ent_8.1.1.88_20200629.iso 操作系统:Centos7 主机地址:192.168.1.170 备机地址:19 ...
- 大数据Hadoop集群搭建
大数据Hadoop集群搭建 一.环境 服务器配置: CPU型号:Intel® Xeon® CPU E5-2620 v4 @ 2.10GHz CPU核数:16 内存:64GB 操作系统 版本:CentO ...
- 大数据分布式集群搭建(1)
在学习了几天的hadoop分布式集群搭建之后想写写文章记录一下一路以来遇到的困难和解决方案. 闲话不多说,进入正题. 一.环境及准备 因为只有一台电脑,所以需要用虚拟机来模拟环境. 本地机器用到软件: ...
最新文章
- 负样本的艺术,再读Facebook双塔向量召回算法
- ☆ 10个小技巧,让你的 Python 代码更加优雅~ ☆
- matlab mex路径,使用matlab进行mex编译时的路径问题mexopts
- MS speech SDK5.1朗读控件
- TurtleCoin节点搭建
- 5e怎么绑定一键跳投_一键开启100台主机?我不是开玩笑,你真该了解一下这根小棒子...
- java实现英文文件单词搜索系统_java对于目录下文件的单词查找操作代码实现
- Atitit hadoop使用总结 目录 1.1. 下载300m ,解压后800M	1 1.2. 二:需要的jar包	1 2. Demo code	2 2.1. WCMapper	2 2.2. WC
- 王国斌最新演讲!给企业家7大建议:资本从来都不是免费的
- 计算机在信息社会中最广泛的应用是,计算机一级考题及答案整理
- 史上最全最新手机号码号段大全
- 提供淘宝进销存管理软件
- 4 月 1 日罗永浩直播首秀带货小米 10,你会剁手吗?
- 虚拟机服务器一直自动关机,诡异的Vmware虚拟机自动关机故障
- html5文本框里插图片文字,word应用教程:在文本框内插入图片
- 2020年Java就业前景和就业方向分析!
- Genexus 15 安卓SDK配置项
- WINDOWS下文件夾里到底有什麼,各個文件夾都代表的什麼?
- sass/lsee 转换css 网站 SASS 转 CSS 工具,在线 SASS/SCSS 编译工具 - 在线工具-wetools.com微工具
- 每日英语:China's Conflicted Consumers
热门文章
- linux dig命令_如何在Linux上使用dig命令
- oracle中的CURRVAL和NEXTVAL用法(sequence是序列号生成器)
- CAD中线宽问题的说明
- 数据分析师CDA认证 Level Ⅰ笔记(完结)
- 基于webgl、封装threejs的3d物联网可视化开发平台
- 谷歌加速扩张 发展当日送达物流服务
- 启用计算机并口,启动(计算机启动)_百度百科
- linux用5块磁盘组rid5,raid10 五块硬盘/raid5(三块使用,两块备份)
- python turtle库在哪里_Python中turtle库的使用
- 阿里云网盘与相册服务企业版介绍