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

dm实时主备说明          

        将主库产生的 Redo日志传输到备库,备库接收并重演Redo日志,从而实现备库与主库的数据同步。

一、环境准备

1.1、配置环境准备

首先搭建实时主备,要规划好机器的,我准备两台机器服务器

主服务器 master: 192.168.179.11

从服务器 slave:      192.168.179.12

主节点数据库测试实例名:TEST  端口:5236        dmwatcher守护      安装监视器
从节点数据库测试实例名:
TEST      端口:5236       dmwatcher守护

1.2、资源环境查查

CPU :lscpu  内存:free -g 操作系统:cat /etc/os-release  磁盘:dd bs=32k count=20k if=/dev/zero of=test oflag=dsync网络:ethtool +网卡名

1.3、文件目录规划

dm_ini 文件位置:/dmdata/data/DAMENG/dm.ini

dmmal.ini文件位置:/dmdata/data/DAMENG/dmmal.ini

dmarch.ini文件位置:/dmdata/data/DAMENG/dmarch.ini

dmwatcher.ini文件位置:/dmdata/data/DAMENG/dmwatcher.ini

back  备份位置:/opt/back

arch  归档文件存放路径:/dmdata/data/DAMENG/arch

二、主从数据库数据同步

        主节点的数据备份,通过SCP到从节点,然后从节点回滚主节点的数据库备份文件,做到主从同步。

2.1、主数据库备份数据Master(192.168.179.11

通过sql工具,进行联机备份数据库信息。

通过dmrman命令执行联机备份

./dmrman
dmrman V8
RMAN>backup database '/dmdata/data/DAMENG/dm.ini' full backupset '/bak/bak_full_01';

2.2、从服务器对备份数据进行还原Salve(192.168.179.12)

脱机还原

./dmrman ctlstmt="restore database to '/dmdata/data/DAMENG' from backupset '/bak/bak_full_01'"

./dmrman ctlstmt="recover database '/dmdata/data/DAMENG/dm.ini' from backupset '/bak/bak_full_01'"

./dmrman ctlstmt="recover database '/dmdata/data/DAMENG/dm.ini' update db_magic"

三、主从服务器配置文件

3.1、dm.ini文件

3.1.1、修改主服务器上的dm.ini(192.168.179.11)

INSTANCE_NAME = TEST   

PORT_NUM = 5236  #数据库实例监听端口

DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间

ALTER_MODE_STATUS = 0  #不允许手工方式修改实例模式/状态/OGUID

ENABLE_OFFLINE_TS = 2  #不允许备库OFFLINE表空间

MAL_INI = 1  #打开MAL系统

ARCH_INI = 1  #打开归档配置

RLOG_SEND_APPLY_MON = 64  #统计最近64次的日志发送信息

3.1.2、修改从服务器上的dm.ini(192.168.179.12)

INSTANCE_NAME = TEST

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

3.2、dmmal.ini文件

3.2.1、主服务器,在/dmdata/data/DAMENG下创建文件dmmal.ini(192.168.179.11)

MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔

MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间

[MAL_INST1]

MAL_INST_NAME = TEST  #实例名,和dm.ini中的一致

MAL_HOST = 192.168.179.11 #MAL系统监听TCP连接的IP地址

MAL_PORT = 55101 #MAL系统监听TCP连接的端口

MAL_INST_HOST = 192.168.179.11 #实例的对外服务IP地址

MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致

MAL_DW_PORT = 65101 #实例对应的守护进程监听TCP连接的端口

MAL_INST_DW_PORT = 45101

[MAL_INST2]

MAL_INST_NAME = TEST

MAL_HOST = 192.168.179.12

MAL_PORT = 55121

MAL_INST_HOST = 192.168.179.12

MAL_INST_PORT = 5236

MAL_DW_PORT = 65121

MAL_INST_DW_PORT = 45121

3.2.2、从服务器上,在/dmdata/data/DAMENG下创建文件dmmal.ini(192.168.179.12)

MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔

MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间

[MAL_INST1]

MAL_INST_NAME = TEST #实例名,和dm.ini中的一致

MAL_HOST = 192.168.179.11 #MAL系统监听TCP连接的IP地址

MAL_PORT = 55101 #MAL系统监听TCP连接的端口

MAL_INST_HOST = 192.168.179.11 #实例的对外服务IP地址

MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致

MAL_DW_PORT = 65101 #实例对应的守护进程监听TCP连接的端口

MAL_INST_DW_PORT = 45101

[MAL_INST2]

MAL_INST_NAME = TEST

MAL_HOST = 192.168.179.12

MAL_PORT = 55121

MAL_INST_HOST = 192.168.179.12

MAL_INST_PORT = 5236

MAL_DW_PORT = 65121

MAL_INST_DW_PORT = 45121

3.3、dmarch.ini文件

3.3.1、主服务器,在/dmdata/data/DAMENG下创建文件dmarch.ini(192.168.179.11

[ARCHIVE_LOCAL2]

       ARCH_TYPE = LOCAL     ##本地归档类型

       ARCH_DEST = /dmdata/data/DAMENG/arch   #本地归档文件存放路径

       ARCH_FILE_SIZE = 1024      #单位Mb,本地单个归档文件最大值

       ARCH_SPACE_LIMIT = 4096

       ARCH_FLUSH_BUF_SIZE = 0   ##单位Mb,0表示无限制

       ARCH_HANG_FLAG = 1

[ARCHIVE_REALTIME1]

       ARCH_TYPE = REALTIME   ##实时归档类型

       ARCH_DEST = TEST      #实时归档目标实例名

3.3.2、从服务器,在/dmdata/data/DAMENG下创建文件dmarch.ini(192.168.179.12

[ARCHIVE_LOCAL2]

       ARCH_TYPE = LOCAL

       ARCH_DEST = /dmdata/data/DAMENG/arch

       ARCH_FILE_SIZE = 1024

       ARCH_SPACE_LIMIT = 4096

       ARCH_FLUSH_BUF_SIZE = 0

       ARCH_HANG_FLAG = 1

[ARCHIVE_REALTIME1]

       ARCH_TYPE = REALTIME

       ARCH_DEST = TEST

3.4、dmwatcher.ini文件(192.168.179.11)

在主库/dmdata/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 = 230330 #守护系统唯一OGUID值

INST_INI = /dmdata/data/DAMENG/dm.ini #dm.ini配置文件路径

INST_AUTO_RESTART = 1 #打开实例的自动拉起功能

INST_STARTUP_CMD = /dmdata/bin/dmserver

3.5、以mount方式启动达梦服务

3.5.1、启动主库 (192.168.179.11)

./dmserver /dmdata/data/DAMENG/dm.ini mount

设置OGUID。登录disql执行

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

sp_set_oguid(230330);

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

3.5.2、启动从库(192.168.179.12)

  ./dmserver /dmdata/data/DAMENG/dm.ini mount

设置OGUID。登录disql执行修改状态

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

sp_set_oguid(230330);

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

3.6、数据库模式

3.6.1、修改主服务器数据库模式

启动命令行工具 DIsql,登录主库修改数据库为 Primary 模式

SQL>alter database primary;

3.6.2、修改从服务器数据库模式

启动命令行工具 DIsql,登录备库修改数据库为 Standby 模式。如果当前数据库不是 Normal 模式,需要先修改 dm.ini 中 ALTER_MODE_STATUS 值为 1,允许修改数据库模式,修改 Standby 模式成功后再改回为 0。

如果是 Normal 模式,请忽略下面的第 1 步和第 3 步。

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);     --第1步
 
SQL>alter database standby;                                                           --第2步
 
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);     --第3步

3.7、启动守护进程     

3.7.1、主库启动(192.168.179.11)

           ./dmwatcher   /dmdata/data/DAMENG/dmwatcher.ini

3.7.2、从库启动(192.168.179.12)

            ./dmwatcher   /dmdata/data/DAMENG/dmwatcher.ini

3.8、安装监视器(在主备服务器中任意一台或者第三台服务器上配置监视器)

3.8.1、dmmonitor.ini文件配置(192.168.179.11)

MON_DW_CONFIRM = 1

MON_LOG_PATH = /dmdata/data/log

MON_LOG_INTERVAL = 60

MON_LOG_FILE_SIZE = 32

MON_LOG_SPACE_LIMIT = 0

[GRP1]

MON_INST_OGUID = 230330

MON_DW_IP = 192.168.179.11:65101

MON_DW_IP = 192.168.179.12:65121

3.8.2、启动监视器(192.168.179.11)
./dmmonitor    /dmdata/data/DAMENG/dmmonitor.ini 

3.9、注册服务


3.9.1、主库上以root用户登录创建服务(192.168.179.11

/dmdata/script/root/dm_service_installer.sh   -t     dmwatcher     -watcher_ini /dmdata/data/DAMENG/dmwatcher.ini     -p     TEST

3.9.2、从库上以root用户登录创建服务(192.168.179.12)

/dmdata/script/root/dm_service_installer.sh   -t     dmwatcher     -watcher_ini /dmdata/data/DAMENG/dmwatcher.ini     -p     TEST

3.10、启动守护进程 

3.10.1、主库启动守护进程(192.168.179.11)

        systemctl start DmWatcherServiceTEST

3.10.2、从库启动守护进程(192.168.179.12)

             systemctl start DmWatcherServiceTEST

四、关闭集群顺序

关闭监视器-->关闭备库守护进程-->关闭主库守护进程--->关闭主库-->关闭从库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/759559.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

监控系统prometheus+grafana+发送告警信息

1、基础环境准备两台或更多的主机 2、关闭selinux vi /etc/selinux/config,修改SELINUX的值为disabled 3、关闭防火墙 systemctl disable firewalld systemctl stop firewalld 4、prometheus官网下载 https://prometheus.io/download/ 5、grafana官网下载 https…

Cronos zkEVM 基于 Covalent Network(CQT)数据可用性 API,推动其 Layer2 DeFi 生态更好地发展

在一项旨在显著改善 DeFi 生态的战略举措中,Cronos 与 Covalent Network(CQT)携手合作,以期待 Cronos zkEVM 的推出。这一整合,预计将进一步降低以太坊生态系统的交易成本、提升交易速度,并带来更好的交易体…

【Qt】使用Qt实现Web服务器(三):QtWebApp中HttpRequest和HttpResponse

1、HttpRequest 1.1 示例 1)在Demo1的Dump HTTP request示例 在浏览器中输入http://127.0.0.1:8080点击Dump HTTP request 2)切换到页面:http://127.0.0.1:8080/dump 该页面显示请求和响应的内容: Request: Method: GET Path: /dump Version: HTTP/1.1 Headers: accep…

C语言 指针练习

一、 a、b是两个浮点型变量&#xff0c;给a、b赋值&#xff0c;建立两个指针分别指向a的地址和b的地址&#xff0c;输出两个指针的值。 #include<stdio.h> int main() {float a,b,*p1,*p2;a10.2;b2.3;p1&a;p2&b;printf("a%f,b%f\n",a,b);printf("…

Python 深度学习第二版(GPT 重译)(三)

七、使用 Keras&#xff1a;深入探讨 本章涵盖 使用 Sequential 类、功能 API 和模型子类创建 Keras 模型 使用内置的 Keras 训练和评估循环 使用 Keras 回调函数自定义训练 使用 TensorBoard 监控训练和评估指标 从头开始编写训练和评估循环 您现在对 Keras 有了一些经…

【Spring Cloud】微服务通信概述

SueWakeup 个人主页&#xff1a;SueWakeup 系列专栏&#xff1a;学习技术栈 个性签名&#xff1a;人生乏味啊&#xff0c;我欲令之光怪陆离 本文封面由 凯楠&#x1f4f7; 友情赞助播出 目录 前言 1. Dubbo&#xff08;Spring Cloud Alibaba&#xff09;和 Spring Cloud 的适…

Python利用pygame实现飞机大战游戏

文章目录&#xff1a; 一&#xff1a;运行效果 1.演示 2.思路和功能 二&#xff1a;代码 文件架构 Demo 必备知识&#xff1a;python图形化编程pygame游戏模块 一&#xff1a;运行效果 1.演示 效果图◕‿◕✌✌✌ Python利用pygame实现飞机大战游戏运行演示 参考&#x…

AMPQ和rabbitMQ

RabbitMQ 的 Channel、Connection、Queue 和 Exchange 都是按照 AMQP&#xff08;Advanced Message Queuing Protocol&#xff09;标准实现的。 AMPQ的网络部分 AMQP没有使用HTTP&#xff0c;使用TCP自己实现了应用层协议。 AMQP实现了自己特有的网络帧格式。 一个Connection…

[网鼎杯 2020 朱雀组]Think Java

[网鼎杯 2020 朱雀组]Think Java swagger [[swagger]] 首先下载源码&#xff0c;查看之后发现 查找swagger资料&#xff0c;或者扫描&#xff0c;得到&#xff1a;swagger-ui.html swagger-ui 提供了一个可视化的UI页面展示描述文件。接口的调用方、测试、项目经理等都可以…

[激光原理与应用-76]:光束指向性与影响因素

目录 一、光束指向性 1.1 概述 2.2 光束指向性与光斑大小的区别 2.3 光束指向性与时间的关系 二、激光器的光束指向性的测量方法 2.1 概述 2.2 计算方法 三、激光器中影响光束指向性的因素 一、光束指向性 1.1 概述 光束指向性是指光束传播方向的特性&#xff0c;也可…

【Linux】进程通信

目录 一、管道通信 二、共享内存 三、消息队列 一、管道通信 管道是由操作系统维护的一个文件&#xff0c;管道通信的本质就是将管道文件作为临界资源&#xff0c;实现不同进程之间的数据读写&#xff0c;但是管道只允许父子进程或者兄弟进程之间的通信。 管道文件本身是全…

刷题DAY29 | LeetCode 491-递增子序列 46-全排列 47-全排列 II

491 递增子序列&#xff08;medium&#xff09; 给你一个整数数组 nums &#xff0c;找出并返回所有该数组中不同的递增子序列&#xff0c;递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素&#xff0c;如出现两个整数相等&#xff0c;也…

开放签开源电子签章白皮书-简版

开放签开源电子签章白皮书-简版 一、摘要&#xff1a; 开放签电子签章团队源自于电子合同SaaS公司&#xff0c;立志于通过开源、开放的模式&#xff0c;结合团队十多年的行业经验&#xff0c;将电子签章产品更简单、更低门槛的推广到各行各业中。让电子签章应用更简单&#x…

Fetch、Axios 和 jQuery(Ajax) 三种常用的网络请求技术

Fetch、Axios 和 jQuery(Ajax) 是三种常用的网络请求技术&#xff0c;它们各自有着不同的特点和优势。本文将对这三种技术进行详细的介绍和比较&#xff0c;以帮助开发者更好地选择和使用合适的网络请求技术。 一、Fetch Fetch(浏览器自带) 是一种现代的网络请求 API&#xff…

Vue3组件的注册

组件是Vue.js中的一个重要概念&#xff0c;它是一种抽象&#xff0c;是一个可以复用的Vue.js实例。它拥有独一无二的组件名称&#xff0c;可以扩展HTML元素&#xff0c;以组件名称的方式作为自定义的HTML标签。 在大多数系统网页中&#xff0c;网页都包含header、body、footer…

Debezium vs OGG vs Tapdata:如何实时同步 Oracle 数据到 Kafka 消息队列?

随着信息时代的蓬勃发展&#xff0c;企业对实时数据处理的需求逐渐成为推动业务创新和发展的重要驱动力。在这个快速变化的环境中&#xff0c;许多企业选择将 Oracle 数据库同步到 Kafka&#xff0c;以满足日益增长的实时数据处理需求。本文将深入探讨这一趋势的背后原因&#…

数学建模(熵权法 python代码 例子)

目录 介绍&#xff1a; 模板&#xff1a; 例子&#xff1a;择偶 极小型指标转化为极大型&#xff08;正向化&#xff09;&#xff1a; 中间型指标转为极大型&#xff08;正向化&#xff09;&#xff1a; 区间型指标转为极大型&#xff08;正向化&#xff09;&#xff1a…

基于BusyBox的imx6ull移植sqlite3到ARM板子上

1.官网下载源码 https://www.sqlite.org/download.html 下载源码解压到本地的linux环境下 2.解压并创建install文件夹 3.使用命令行配置 在解压的文件夹下打开终端&#xff0c;然后输入以下内容&#xff0c;其中arm-linux-gnueabihf是自己的交叉编译器【自己替换】 ./config…

PyTorch 深度学习(GPT 重译)(三)

六、使用神经网络拟合数据 本章内容包括 与线性模型相比&#xff0c;非线性激活函数是关键区别 使用 PyTorch 的nn模块 使用神经网络解决线性拟合问题 到目前为止&#xff0c;我们已经仔细研究了线性模型如何学习以及如何在 PyTorch 中实现这一点。我们专注于一个非常简单…

拷贝他人maven仓库jar包到自己本地仓库,加载maven依然提示无法下载对应依赖

所遇问题&#xff1a; 拷贝他人maven仓库jar包到自己本地maven仓库repository下的对应依赖位置&#xff0c;重新加载idea的maven依然提示无法下载对应依赖。 解决办法&#xff1a; 在maven->repository找到对应报错依赖路径&#xff0c;删除xxx.repositories 和 xxx.lastU…