DM8数据守护配置详情

DM8数据守护配置详情


前言

DM数据守护( Data Watch )的简单概述:
是一种集成化的高可用、高性能数据 库解决方案,是数据库异地容灾的首选方案。通过部署 DM 数据守护,可以在 硬件故障 (如磁盘损坏)、自然灾害(地震、火灾)等极端情况下,避免数据损坏、丢失,保障数据安全,并且可以快速恢复数据库服务,满足用户不间断提供数据库服务的要求。与常规的数据库备份( Backup )、还原( Restore )技术相比,数据守护可以更快地恢复数据库服务。随着数据规模不断增长,通过还原手段恢复数据,往往需要数个小时、甚至更长时间,而数据守护基本不受数据规模的影响,只需数秒时间就可以将备库切换为主库对外提供数据库服务。

DM 数据守护(Data Watch)的实现原理:
将主库(生产库)产生的Redo日志传输到备库,备库接收并重新应用Redo 日志,从而实现备库与主库的数据同步。DM数据守护的核心思想是监控数据库状态,获取主、备库数据同步情况,为Redo 日志传输与重演过程中出现的各种异常情况提供一系列的解决方案。DM 数据守护系统结构参考下图。主要由主库、备库、Redo 日志、Redo 日志传输、Redo 日志重演、守护进程(dmwatcher)、监视器(dmmonitor)组成。

在这里插入图片描述


提示:以下是数据守护配置流程。

一、环境准备

类型IP数据库名实例名端口
主库'10.10.66.170'DM01DMSERVER015236
备库'10.10.66.173'DM01DMSERVER025236
监视器'10.10.66.176'DM01DMSERVER035236

二、配置文件

1.主库配置(关闭实例)

1.1 创建一个备份目录:

[dmdba@qml_01 dm8]$ mkdir backup

1.2 脱机全库备份:

[dmdba@qml_01 dm8]$ cd /dm8/bin
[dmdba@qml_01 bin]$ ./dmrman 
dmrman V8
RMAN> BACKUP DATABASE '/dm8/data/DM01/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm8/backup/BACKUP_FILE_01'
BACKUP DATABASE '/dm8/data/DM01/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm8/backup/BACKUP_FILE_01'
file dm.key not found, use default license!
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[136017]
BACKUP DATABASE [DM01],execute......
CMD CHECK LSN......
BACKUP DATABASE [DM01],collect dbf......
CMD CHECK ......
DBF BACKUP SUBS......
total 0 packages processed...
total 0 packages processed...
total 0 packages processed...
total 0 packages processed...
total 0 packages processed...
total 0 packages processed...
DBF BACKUP MAIN......
BACKUPSET [/dm8/backup/BACKUP_FILE_01] END, CODE [0]......
META GENERATING......
CMD END.CODE:[0]
backup successfully!
time used: 00:00:02.128

1.3进入备份目录,远程复制备份文件到备库(root用户):

[root@qml_01 /]# cd /dm8/backup/BACKUP_FILE_01/
[root@qml_01 BACKUP_FILE_01]# scp *.* 10.10.66.173:/dm8/backup
root@10.10.66.173's password: 
BACKUP_FILE_01.bak                       100%   12MB  71.8MB/s   00:00                                                                                                                               
BACKUP_FILE_01.meta                      100%   85KB   8.1MB/s   00:00                                                                                                                              

1.4 检查主库的dm.ini文件,参考值内容如下:

INSTANCE_NAME = DMSERVER01
PORT_NUM = 5236
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64

1.5 配置主库的dmmal.ini文件,与dm.ini文件同级目录直接vi dmmal.ini,添加内容如下:

MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DMSERVER01
MAL_HOST = 10.10.66.170
MAL_PORT = 55101
MAL_INST_HOST = 10.10.66.170
MAL_INST_PORT = 5236
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101
[MAL_INST2]
MAL_INST_NAME = DMSERVER02
MAL_HOST = 10.10.66.173
MAL_PORT = 55121
MAL_INST_HOST = 10.10.66.173
MAL_INST_PORT = 5236
MAL_DW_PORT = 65121
MAL_INST_DW_PORT = 45121

1.6 配置主库的dmarch.ini文件,与dm.ini文件同级目录直接vi dmarch.ini,添加内容如下:

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DMSERVER02
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch --------如果没有arch,需要mkdir /dm8/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

1.7 配置主库的dmwatcher.ini文件,与dm.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
INST_INI = /dm8/data/DM01/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

1.8 启动主库为mount状态:

[dmdba@qml_01 ~]$ cd /dm8/bin
[dmdba@qml_01 bin]$ ./dmserver /dm8/data/DM01/dm.ini mount
file dm.key not found, use default license!
version info: develop
Use normal os_malloc instead of HugeTLB
Use normal os_malloc instead of HugeTLB
DM Database Server x64 V8 1-1-88-20.06.24-123627-ENT  startup...
Database mode = 0, oguid = 0
License will expire on 2021-06-24
file lsn: 136017
ndct db load finished
ndct fill fast pool finished
nsvr_startup end.
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info success.
SYSTEM IS READY.

1.9 进入主库/dm8/bin,登录disql,执行下面4条语句

[dmdba@qml_01 ~]$ cd /dm8/bin
[dmdba@qml_01 bin]$ ./disql SYSDBA/dameng123

服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间: 4.287(毫秒)
disql V8
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 53.261(毫秒). 执行号:1.
SQL> sp_set_oguid(453331);
DMSQL 过程已成功完成
已用时间: 51.355(毫秒). 执行号:2.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 4.275(毫秒). 执行号:3.
SQL> alter database primary;
操作已执行
已用时间: 50.253(毫秒). 执行号:0.
SQL> exit
[dmdba@qml_01 bin]$ ./disql SYSDBA/dameng123

服务器[LOCALHOST:5236]:处于主库配置状态
登录使用时间: 3.262(毫秒)
disql V8

提示:以上是主库配置流程,登录disql查看服务器显示“处于主库配置状态”为配置流程无误。


2.备库配置(关闭实例)

2.1 备库还原恢复备份集,dmdba进入/dm8/bin下执行:

提示:备库还原恢复备份集前,先调整备份集的属主属组。

[root@qml02 ~]# cd /dm8/backup/
[root@qml02 backup]# ll
总用量 12800
-rw-r--r--. 1 root root 13016576 528 14:10 BACKUP_FILE_01.bak
-rw-r--r--. 1 root root    86528 528 14:10 BACKUP_FILE_01.meta
[root@qml02 backup]# chown dmdba:dinstall BACKUP_FILE_01.bak 
[root@qml02 backup]# chown dmdba:dinstall BACKUP_FILE_01.meta 

提示:下面分3步根据主库scp到备库的备份集来恢复数据库,分别是还原数据库,恢复数据库,更新db_magic数据库:

[dmdba@qml02 bin]$ ./dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DM01/dm.ini' FROM BACKUPSET'/dm8/backup'" 
dmrman V8
RESTORE DATABASE '/dm8/data/DM01/dm.ini' FROM BACKUPSET '/dm8/backup'
file dm.key not found, use default license!
RESTORE DATABASE CHECK......
RESTORE DATABASE,data collect......
RESTORE DATABASE,database refresh ......
RESTORE BACKUPSET [/dm8/backup] START......
total 0 packages processed...
RESTORE DATABASE,UPDATE ctl file......
RESTORE DATABASE,REBUILD key file......
RESTORE DATABASE,CHECK db info......
RESTORE DATABASE,UPDATE db info......
CMD END.CODE:[0]
restore successfully.
time used: 00:00:02.373
[dmdba@qml02 bin]$ ./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DM01/dm.ini' FROM BACKUPSET'/dm8/backup'"
dmrman V8
RECOVER DATABASE '/dm8/data/DM01/dm.ini' FROM BACKUPSET '/dm8/backup'
file dm.key not found, use default license!
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[136017]
RESTORE RLOG CHECK......
CMD END.CODE:[603],DESC:[备份集[/dm8/backup]备份过程中未产生日志]
备份集[/dm8/backup]备份过程中未产生日志
recover successfully!
time used: 330.271(ms)
[dmdba@qml02 bin]$ ./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DM01/dm.ini' UPDATE DB_MAGIC"
dmrman V8
RECOVER DATABASE '/dm8/data/DM01/dm.ini' UPDATE DB_MAGIC
file dm.key not found, use default license!
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[136017]
EP[0]'s apply_lsn[136017] >= end_lsn[136017]
recover successfully!
time used: 00:00:01.004

2.2 检查备库的dm.ini文件,参考值内容如下:

INSTANCE_NAME = DMSERVER02
PORT_NUM = 5236
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64

2.3 配置备库的dmmal.ini文件,与dm.ini文件同级目录直接vi dmmal.ini,添加内容如下:

MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DMSERVER01
MAL_HOST = 10.10.66.170
MAL_PORT = 55101
MAL_INST_HOST = 10.10.66.170
MAL_INST_PORT = 5236
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101
[MAL_INST2]
MAL_INST_NAME = DMSERVER02
MAL_HOST = 10.10.66.173
MAL_PORT = 55121
MAL_INST_HOST = 10.10.66.173
MAL_INST_PORT = 5236
MAL_DW_PORT = 65121
MAL_INST_DW_PORT = 45121

2.4 配置备库的dmarch.ini文件,与dm.ini文件同级目录直接vi dmarch.ini,添加内容如下:

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST =DMSERVER01
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch --------------如果没有arch,需要mkdir /dm8/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

2.5 配置备库的dmwatcher.ini文件,与dm.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
INST_INI = /dm8/data/DM01/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
RLOG_APPLY_THRESHOLD = 0

2.6 启动备库为mount状态:

[dmdba@qml02 DM01]$ cd /dm8/bin
[dmdba@qml02 bin]$ ./dmserver /dm8/data/DM01/dm.ini mount
file dm.key not found, use default license!
version info: develop
Use normal os_malloc instead of HugeTLB
Use normal os_malloc instead of HugeTLB
DM Database Server x64 V8 1-1-88-20.06.24-123627-ENT  startup...
Database mode = 0, oguid = 0
License will expire on 2021-06-24
file lsn: 136017
ndct db load finished
ndct fill fast pool finished
nsvr_startup end.
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info success.
SYSTEM IS READY.

2.7 进入备库/dm8/bin,登录disql,执行下面4条语句

[dmdba@qml02 ~]$ cd /dm8/bin
[dmdba@qml02 bin]$ ./disql SYSDBA/dameng123

服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间: 2.746(毫秒)
disql V8
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 6.051(毫秒). 执行号:1.
SQL> sp_set_oguid(453331);
DMSQL 过程已成功完成
已用时间: 61.682(毫秒). 执行号:2.
SQL> alter database standby;
操作已执行
已用时间: 30.100(毫秒). 执行号:0.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 4.372(毫秒). 执行号:3.
SQL> exit
[dmdba@qml02 bin]$ ./disql SYSDBA/dameng123

服务器[LOCALHOST:5236]:处于备库配置状态
登录使用时间: 2.394(毫秒)
disql V8

提示:以上是备库配置流程,登录disql查看服务器显示“处于备库配置状态”为配置流程无误。


3.监视器配置

3.1 进入/dm8/data/DM01, vi dmmonitor.ini,添加如下内容:

MON_DW_CONFIRM = 1
MON_LOG_PATH = /dm8/data/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 453331
MON_DW_IP = 10.10.66.170:65101
MON_DW_IP = 10.10.66.173:65121

3.2 添加MON_LOG_PATH = /dm8/data/log 文件

[dmdba@qml_03 DM01]$ cd /dm8/data/
[dmdba@qml_03 data]$ mkdir log

4.启动、验证数据守护主备库

4.1 启动主库

[dmdba@qml_01 bin]$ ./dmwatcher /dm8/data/DM01/dmwatcher.ini 
DMWATCHER[4.0] V8
DMWATCHER[4.0] IS READY

4.2 启动备库

[dmdba@qml02 bin]$ ./dmwatcher /dm8/data/DM01/dmwatcher.ini
DMWATCHER[4.0] V8
DMWATCHER[4.0] IS READY

4.3 数据守护验证

重新通过disql登录主库,服务器状态为:处于主库打开状态:

[dmdba@qml_01 bin]$ ./disql sysdba/dameng123

服务器[LOCALHOST:5236]:处于主库打开状态
登录使用时间: 3.006(毫秒)
disql V8

重新通过disql登录备库,服务器状态为:处于主库打开状态:

[dmdba@qml02 bin]$ ./disql sysdba/dameng123

服务器[LOCALHOST:5236]:处于备库打开状态
登录使用时间: 3.045(毫秒)
disql V8

登录监视器服务验证:

[dmdba@qml_03 bin]$ ./dmmonitor /dm8/data/DM01/dmmonitor.ini 
[monitor]         2021-05-28 16:53:03: DMMONITOR[4.0] V8
[monitor]         2021-05-28 16:53:03: DMMONITOR[4.0] IS READY.

[monitor]         2021-05-28 16:53:03: 收到守护进程(DMSERVER01)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2021-05-28 16:53:04  OPEN           OK        DMSERVER01       OPEN        PRIMARY   VALID    2        138366          138366          

[monitor]         2021-05-28 16:53:03: 收到守护进程(DMSERVER02)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2021-05-28 16:53:03  OPEN           OK        DMSERVER02       OPEN        STANDBY   VALID    2        138366          138366   

提示:为了帮助大家更加直观的理解DM 数据守护方案,以上就是展示如何配置一个完整的数据守护读写分离集群的过程,配置方案为一个主库、一个即时备库和一个监视器。


三、总结

以上就是今天我要分享的内容,全部真实数据,实操分享,希望对大家有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值