达梦DM8主从复制配置实战
概述
达梦数据复制(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_flag
为 1
时表示创建用户和系统表,为 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主从复制配置实战相关推荐
- 《达梦数据库运维实战》 发售了
毕业以后一直从事数据库有关的工作,也一直在坚持技术分享,写了很多的博客,但博客有一定的局限性,所以这几年陆续出版了几本书,2019年和2020年写了2本Oracle 数据库有关的书籍,如下: < ...
- 国产化之路-统信UOS /Nginx /Asp.Net Core+ EF Core 3.1/达梦DM8实现简单增删改查操作
引言 经过前期的准备工作,.net core 3.1的运行环境和WEB服务器已经搭建完毕,这里需要注意一下,达梦DM8数据库对于Entity Framework Core 3.1 的驱动在NuGet官 ...
- 立足国产自主可控技术 达梦DM8数据库新品化繁为简
戳蓝字"CSDN云计算"关注我们哦! 面对技术日新月异的发展,如今俨然已经演变成为数据发展引来的潮流,而数据库的建立对企业的发展有着举足轻重的作用,对数据库的有效开发和管理是企业正 ...
- javaweb简单的登录增删改查系统_国产化之路统信UOS /Nginx /Asp.Net Core+ EF Core 3.1/达梦DM8实现简单增删改查操作...
引言 经过前期的准备工作,.net core 3.1的运行环境和WEB服务器已经搭建完毕,这里需要注意一下,达梦DM8数据库对于Entity Framework Core 3.1 的驱动在NuGet官 ...
- 达梦dm8可视化工具_活字格兼容达梦DM8,低代码支持数据库国产化
DM8是达梦公司在总结DM系列产品研发与应用经验的基础上,坚持开放创新.简洁实用的理念,历经五年匠心打磨,推出的新一代自研数据库.DM8和同类自主知识产权数据库一起,正在引领数据库国产化的大趋势. ( ...
- 达梦DM8搭建DSC过程以及遇到的问题
达梦DM8搭建DSC过程以及遇到的问题 DMDSC 是什么? DM DSC是一个单数据库.多实例的集群系统:具有高可用性.高性能.负载均衡等特性 DMDSC架构 DMDSC 组件: 集群主要由数据库和 ...
- 【Nacos2.2.0适配达梦DM8数据源】
Nacos2.2.0适配达梦DM8数据源 Nacos 从 2.2.0 版本开始,可通过 SPI 机制注入多数据源实现插件,并在引入对应数据源实现后,便可在 Nacos 启动时通过读取 applicat ...
- oracle数据库dblink创建语句_3场直播丨达梦DM8数据库安装部署初体验、新基建下的国产数据库应用和发展趋势、Oracle外部表创建与使用...
1. 循序渐进-达梦DM8数据库安装部署初体验-07/16 简介: 本讲座主要介绍达梦DM8数据库软件安装与数据库创建. 2019年5月,DM8发布. 基于新技术发展的思考和市场的需求,坚持实用性.通 ...
- 3场直播丨达梦DM8数据库安装部署初体验、新基建下的国产数据库应用和发展趋势、Oracle外部表创建与使用...
1. 循序渐进-达梦DM8数据库安装部署初体验-07/16 简介: 本讲座主要介绍达梦DM8数据库软件安装与数据库创建. 2019年5月,DM8发布. 基于新技术发展的思考和市场的需求,坚持实用性.通 ...
最新文章
- Linux C 实现生产者消费者问题
- Python读取大文件的坑“与内存占用检测
- python窗口显示表格_Python爬虫之GUI图表
- 详解linux io flush
- ionic day01教程第一天之多平台运行(ios android)
- java怎么将图片文件转流并在jsp前端显示_jsp已经被淘汰了吗?
- webpack静态资源地址注入html,Webpack4+ 多入口程序构建
- jsp人事管理系统_人事管理系统(论文+源码)(SSH+MYSQL+JSP+HTML5)
- linux apache安全,基于Linux平台的Web安全技术研究——Apache安全.doc
- 打开UG8.0出现启动界闪一下就没有任何反应了怎么回事?
- 计算机word的关闭怎么办,电脑无法打开Word提示已停止工作并自动退出怎么办
- Excel-几行几行进行转置
- 20210725:FLAC刻录音乐CD教程02-ape刻盘
- 神经科学探索脑第二十二章
- 论文阅读_基于知识图谱的约束性问答
- 54. Java序列化三连问,是什么?为什么需要?如何实现?
- IIS服务器安全配置[摘]
- NoteExpress引用文献出现ADDIN NE.Ref.
- 你真的了解计算机病毒吗?内容很“干”,记得喝水
- 代写java Assignment作业、代做UML Class Diagram程序作业、代写代做java程序作业代做McMaster-Carr、代做CS5010 java...
热门文章
- OmniGraffle for Mac 7.16中文版 — 思维导图 流程图工具
- A Lip Sync Expert Is All You Need for Speech to Lip Generation In The Wild 翻译
- 南师大计算机学院老师有哪些,南京师范大学计算机科学与技术学院导师介绍:杨志军...
- 模仿抖音直播商城带货打赏功能做一个app系统
- scarab postgres installation notes
- 生成ssh证书(windows)
- DPDK — Userspace PMD 源码分析
- 基于 ChatGPT 3.5 和 Bing 搜索引擎的会话式搜索引擎 Perplexity 初体验
- 谭浩强C++课后习题13——整数转化为字符串,求i平方和
- Could not create java virtual machine的问题解决