概述

达梦数据复制(DATA REPLICATION)是一个分担系统访问压力、加快异地访问响应速度、提高数据可靠性的解决方案。将一个服务器实例上的数据变更复制到另外的服务器实例。可以用于解决大、中型应用中出现的因来自不同地域、不同部门、不同类型的数据访问请求导致数据库服务器超负荷运行、网络阻塞、远程用户的数据响应迟缓的问题。

说明

搭建达梦DM8主从复制需要至少三台服务器(主服务器从服务器复制服务器(RPS))。
主服务器为发起复制操作的服务器,从服务器为接收主服务器发送的数据并进行复制的服务器。复制服务器(RPS)在数据复制环境中,负责配置复制环境,定义复制关系的服务器。RPS 有且仅有一台,它只负责配置和监控,并不参与到复制过程中。

准备工作

参与复制的实例信息:

服务器 实例名 IP 地址 服务器端口号 MAL 端口号 文件目录
复制服务器 TESTA 172.16.143.102 5236 5241 E:\server\dmdbms\data\TEST
主服务器 TESTB 172.16.143.103 5236 5242 /www/dm8/data/TEST/arch
从服务器 TESTC 172.16.143.104 5236 5243 /www/dm8/data/TEST/arch

参数设置

配置dm.ini

配置dm.ini,分别修改dm.ini中对应项如下表所示。

服务器 dm.ini 设置
复制服务器 INSTANCE_NAME = TESTA
PORT_NUM = 5236
MAL_INI = 1
主服务器 INSTANCE_NAME = TESTB
PORT_NUM = 5236
MAL_INI = 1
从服务器 INSTANCE_NAME = TESTC
PORT_NUM = 5236
MAL_INI = 1

配置dmmal.ini

在数据库文件目录,找到dmmal_example.ini,复制一份为dmmal.ini
在文件末尾添加内容:

MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME       =  TESTA
MAL_HOST        =  172.16.143.102
MAL_PORT        =  5241
MAL_INST_PORT       =  5236
MAL_INST_HOST       =  172.16.143.102[MAL_INST2]
MAL_INST_NAME       =  TESTB
MAL_HOST        =  172.16.143.103
MAL_PORT        =  5242
MAL_INST_PORT       =  5236
MAL_INST_HOST       =  172.16.143.103[MAL_INST3]
MAL_INST_NAME       =  TESTC
MAL_HOST        =  172.16.143.104
MAL_PORT        =  5243
MAL_INST_PORT       =  5236
MAL_INST_HOST       =  172.16.143.104

每个节点的 dmmal.ini 配置必须一致,一个节点配置好后可直接拷贝到另外两个节点。

复制服务器初始化

第一次使用复制服务器,需要对复制服务器执行初始化操作。通过执行系统函数SP_INIT_REP_SYS(create_flag)来初始化复制服务器。其主要作用是创建复制用户(SYSREP/SYSREP)和创建复制服务器上需要的系统表。SP_INIT_REP_SYS 的参数create_flag1 时表示创建用户和系统表,为 0 时表示删除用户和系统表。

复制环境的配置

  • 1 启动 3 台服务器,启动的顺序不分先后。

  • 2 登录 RPS A,保证服务器状态为 OPEN,开始复制配置。
    查看数据库状态:select name,instance_name,start_time,status$ from v$instance;

  • 3 创建复制组 TESTB_TO_TESTC

SP_RPS_ADD_GROUP('TESTB_TO_TESTC', '主从同步复制');

注:第一个参数为创建的复制组名称,第二个参数为复制组描述

  • 4开始复制设置
SP_RPS_SET_BEGIN('TESTB_TO_TESTC');

注:第一个参数为复制组名称

  • 5 添加复制关系
SP_RPS_ADD_REPLICATION ('TESTB_TO_TESTC', 'REPB2C', 'B 到 C 的同步复制', 'TESTB', 'TESTC', NULL, '/www/dm8/data/TEST/arch');

注:第一个参数为复制组名,第二个参数为复制名(必须在 RPS 上唯一),第三个参数为复制描述,第四个参数为主服务器实例名,第五个参数为从服务器实例名,第六个参数为复制定时器名(借助定时器,可以设置复制数据的同步时机。如果是同步复制则为 NULL),第7个参数为主服务器上逻辑日志的完整归档路径。

  • 6添加复制映射
    复制映射分为库级模式级表级三个级别。
    其中表级要求源表和目标表结构完全一致,库级和模式级没有要求。库级和模式级复制映射会将其 DDL 也进行复制。复制映射包括只读模式和非只读模式。对于只读模式的映射,映射的目的表禁止用户更新。

  • 6-1模式级复制映射

SP_RPS_ADD_SCH_MAP('REPB2C', 'TEST', 'TEST', 0);

注:模式级复制映射。第一个参数为复制关系名,第二个参数为主服务器模式名,第三个参数为从服务器模式名,第四个参数为只读复制模式(1 表示只读模式,从服务器只接受复制更新,0 表示非只读模式)

  • 6-2表级复制映射
SP_RPS_ADD_TAB_MAP('REPB2C', 'TEST', 'articles', 'TEST', 'articles', 0);

注:添加表级复制映射。第一个参数为复制关系名,第二个参数为主服务器模式名,第三个参数为主服务器表名,第四个参数为从服务器模式名,第五个参数为从服务器表名,第六个参数为只读复制模式(1 表示只读模式,从服务器只接受复制更新,0 表示非只读模式)

  • 7提交设置
SP_RPS_SET_APPLY();

至此,复制环境配置完成。

在配置过程中或配置完成后,可以对复制的配置进行修改。修改包括复制组、复制关系、复制对象的删除和复制关系属性的修改。这些修改操作都必须在开始复制SP_RPS_SET_BEGIN 和提交复制 SP_RPS_SET_APPLY 之间进行。若需要删除复制组,则该复制组不能处于配置阶段,即该组的配置已经提交或取消。

其他

  • 删除复制映射
SP_RPS_DROP_TAB_MAP('REPB2C', 'TEST', 'articles', 'TEST', 'articles');

注:删除表级复制映射。第一个参数为复制关系名,第二个参数为主表模式名,第三个参数为主表名,第四个参数为从表模式名,第五个参数为从表名

  • 添加一个定时器,将同步复制修改为异步复制
SP_RPS_ADD_TIMER('B2C_TIMER','',1,0,0,0,'19:50:33',NULL,'2011-08-2419:50:33',NULL,1);
SP_RPS_REP_RESET_TIMER('REPB2C','B2C_TIMER');

具体参数说明请看DM8 SQL.pdf

  • 删除复制关系
SP_RPS_DROP_REPLICATION('REPB2C');
  • 删除整个复制组
SP_RPS_DROP_GROUP('TESTB_TO_TESTC');
  • 在配置或修改配置时想要取消操作,可以使用如下系统过程结束配置
SP_RPS_SET_CANCEL();

遇到的坑

我在添加复制映射时,首先添加的是表级复制映射,当删除整个复制组,重新添加模式级复制映射时,发现之前添加过表级复制映射的表,不会自动复制,而其他表是可以的。后来通过将主从服务器的这张表删除后,重新导入就又可以自动复制了。

当修改了复制关系或复制映射时,可能会造成某些表不生效的情况,这时候只需要重启达梦数据库即可。

达梦DM8主从复制配置实战相关推荐

  1. 《达梦数据库运维实战》 发售了

    毕业以后一直从事数据库有关的工作,也一直在坚持技术分享,写了很多的博客,但博客有一定的局限性,所以这几年陆续出版了几本书,2019年和2020年写了2本Oracle 数据库有关的书籍,如下: < ...

  2. 国产化之路-统信UOS /Nginx /Asp.Net Core+ EF Core 3.1/达梦DM8实现简单增删改查操作

    引言 经过前期的准备工作,.net core 3.1的运行环境和WEB服务器已经搭建完毕,这里需要注意一下,达梦DM8数据库对于Entity Framework Core 3.1 的驱动在NuGet官 ...

  3. 立足国产自主可控技术 达梦DM8数据库新品化繁为简

    戳蓝字"CSDN云计算"关注我们哦! 面对技术日新月异的发展,如今俨然已经演变成为数据发展引来的潮流,而数据库的建立对企业的发展有着举足轻重的作用,对数据库的有效开发和管理是企业正 ...

  4. javaweb简单的登录增删改查系统_国产化之路统信UOS /Nginx /Asp.Net Core+ EF Core 3.1/达梦DM8实现简单增删改查操作...

    引言 经过前期的准备工作,.net core 3.1的运行环境和WEB服务器已经搭建完毕,这里需要注意一下,达梦DM8数据库对于Entity Framework Core 3.1 的驱动在NuGet官 ...

  5. 达梦dm8可视化工具_活字格兼容达梦DM8,低代码支持数据库国产化

    DM8是达梦公司在总结DM系列产品研发与应用经验的基础上,坚持开放创新.简洁实用的理念,历经五年匠心打磨,推出的新一代自研数据库.DM8和同类自主知识产权数据库一起,正在引领数据库国产化的大趋势. ( ...

  6. 达梦DM8搭建DSC过程以及遇到的问题

    达梦DM8搭建DSC过程以及遇到的问题 DMDSC 是什么? DM DSC是一个单数据库.多实例的集群系统:具有高可用性.高性能.负载均衡等特性 DMDSC架构 DMDSC 组件: 集群主要由数据库和 ...

  7. 【Nacos2.2.0适配达梦DM8数据源】

    Nacos2.2.0适配达梦DM8数据源 Nacos 从 2.2.0 版本开始,可通过 SPI 机制注入多数据源实现插件,并在引入对应数据源实现后,便可在 Nacos 启动时通过读取 applicat ...

  8. oracle数据库dblink创建语句_3场直播丨达梦DM8数据库安装部署初体验、新基建下的国产数据库应用和发展趋势、Oracle外部表创建与使用...

    1. 循序渐进-达梦DM8数据库安装部署初体验-07/16 简介: 本讲座主要介绍达梦DM8数据库软件安装与数据库创建. 2019年5月,DM8发布. 基于新技术发展的思考和市场的需求,坚持实用性.通 ...

  9. 3场直播丨达梦DM8数据库安装部署初体验、新基建下的国产数据库应用和发展趋势、Oracle外部表创建与使用...

    1. 循序渐进-达梦DM8数据库安装部署初体验-07/16 简介: 本讲座主要介绍达梦DM8数据库软件安装与数据库创建. 2019年5月,DM8发布. 基于新技术发展的思考和市场的需求,坚持实用性.通 ...

最新文章

  1. Linux C 实现生产者消费者问题
  2. Python读取大文件的坑“与内存占用检测
  3. python窗口显示表格_Python爬虫之GUI图表
  4. 详解linux io flush
  5. ionic day01教程第一天之多平台运行(ios android)
  6. java怎么将图片文件转流并在jsp前端显示_jsp已经被淘汰了吗?
  7. webpack静态资源地址注入html,Webpack4+ 多入口程序构建
  8. jsp人事管理系统_人事管理系统(论文+源码)(SSH+MYSQL+JSP+HTML5)
  9. linux apache安全,基于Linux平台的Web安全技术研究——Apache安全.doc
  10. 打开UG8.0出现启动界闪一下就没有任何反应了怎么回事?
  11. 计算机word的关闭怎么办,电脑无法打开Word提示已停止工作并自动退出怎么办
  12. Excel-几行几行进行转置
  13. 20210725:FLAC刻录音乐CD教程02-ape刻盘
  14. 神经科学探索脑第二十二章
  15. 论文阅读_基于知识图谱的约束性问答
  16. 54. Java序列化三连问,是什么?为什么需要?如何实现?
  17. IIS服务器安全配置[摘]
  18. NoteExpress引用文献出现ADDIN NE.Ref.
  19. 你真的了解计算机病毒吗?内容很“干”,记得喝水
  20. 代写java Assignment作业、代做UML Class Diagram程序作业、代写代做java程序作业代做McMaster-Carr、代做CS5010 java...

热门文章

  1. OmniGraffle for Mac 7.16中文版 — 思维导图 流程图工具
  2. A Lip Sync Expert Is All You Need for Speech to Lip Generation In The Wild 翻译
  3. 南师大计算机学院老师有哪些,南京师范大学计算机科学与技术学院导师介绍:杨志军...
  4. 模仿抖音直播商城带货打赏功能做一个app系统
  5. scarab postgres installation notes
  6. 生成ssh证书(windows)
  7. DPDK — Userspace PMD 源码分析
  8. 基于 ChatGPT 3.5 和 Bing 搜索引擎的会话式搜索引擎 Perplexity 初体验
  9. 谭浩强C++课后习题13——整数转化为字符串,求i平方和
  10. Could not create java virtual machine的问题解决