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 的推出。这一整合,预计将进一步降低以太坊生态系统的交易成本、提升交易速度,并带来更好的交易体…

开源IT自动化运维工具Ansible Playbook介绍

Ansible Playbook 是一种基于 YAML 格式的配置、编排与自动化工具,用于定义和执行IT基础设施的配置管理和应用程序部署任务。它允许您以声明式的方式编写任务集,这些任务集可以在一组或多组主机上按顺序执行,以实现自动化的配置管理、应用部署…

【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 有了一些经…

零基础入门多媒体音频(4)-GENIVIProjectAudioManager总览

GENIVI Project的AudioManager是一个专门设计用于汽车信息娱乐系统的音频管理解决方案。它负责管理和控制车辆内的音频源和音频路径&#xff0c;确保各种音频信号能够正确、高效地在车辆的音响系统中传输和播放。 AudioManager的核心功能包括音频源的管理、音频路径的控制以及音…

【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;也可…

Java与Go:对象

对象是面向对象编程的核心概念之一&#xff0c;它具有封装、抽象、继承、多态等特性&#xff0c;能够帮助程序员更好地组织和管理程序&#xff0c;提高代码的可读性、可维护性和可重用性。今天我们来聊一聊Java中的class和Go语言的struct。 Java的class 在Java中&#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…

Design Data Sheet for user shoppingcart in mysql

当设计用户的购物车模型表时: 1:购物车是订单的一种状态 订单的状态&#xff1a; 【待购买】&#xff1a;也就是购物车—超市中放置到购物篮 【待支付】&#xff1a;已经从购物车中确认–去到收银台中结算&#xff0c;但未给钱 【已支付】&#xff1a;已经支付过的订单----已经…

Vue3组件的注册

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

unlogged 分析

目录 实现原理示例 实现原理 以 Agent 的方式运行&#xff0c;启动了一个 Http Server&#xff0c;默认监听 12100 端口&#xff0c;支持执行某个类的某个方法&#xff0c;在执行方法的时候支持 mock 方法内的接口调用 示例 POST http://127.0.0.1:12100/command Body {&q…