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

news2024/11/16 15:29:23

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.coloradmin.cn/o/1543044.html

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

相关文章

小目标检测篇 | YOLOv8改进之增加小目标检测层(针对Neck网络为AFPN)

前言:Hello大家好,我是小哥谈。小目标检测是计算机视觉领域中的一个研究方向,旨在从图像或视频中准确地检测和定位尺寸较小的目标物体。相比于常规目标检测任务,小目标检测更具挑战性,因为小目标通常具有低分辨率、低对比度和模糊等特点,容易被背景干扰或遮挡。本篇文章就…

【C语言】tcp_sendmsg_locked

一、讲解 tcp_sendmsg_locked 函数是 Linux 内核中实现 TCP 数据发送的一个核心函数。这个函数被调用来将用户空间的数据通过 TCP 发送出去。以下是该函数的基本工作流程的中文解释: 1. 函数初始化和检查: - 它首先检查是否使用了 TCP 零拷贝发送&am…

【webpack】----错误解决【Cannot read properties of undefined (reading ‘tap‘)】

1. 报错场景 安装 webpack-obfuscator 后,进行 js 代码混淆编译的时候报错。 2. 报错截图 3. 错误原因 通常是由于版本不兼容或配置错误引起的。 4. 查询本地 webpack 版本 4.1 查询命令 npm 查询 npm view webpack versionyarn 查询 yarn info webpack ver…

Java学习笔记 | Java基础语法 | 03 | 流程控制语句

文章目录 0 前言1.流程控制语句1.1 流程控制语句分类1.2 顺序结构 2.判断语句2.1 if语句1. if语句格式1练习1:老丈人选女婿练习2:考试奖励 2. if语句格式2练习1:吃饭练习2:影院选座 3. if语句格式3练习1:考试奖励 2.2 …

C语言字节对齐关键字__attribute__((aligned(n)))的使用

0 前言 在进行嵌入式开发的过程中,我们经常会见到对齐操作。这些对齐操作有些是为了便于实现指针操作,有些是为了加速对内存的访问。因此,学习如何使用对齐关键字是对于嵌入式开发是很有必要的。 1 对齐规则 1.0 什么叫做对齐 众所周知&a…

实现登录拦截功能

1.4、实现登录拦截功能 温馨小贴士:tomcat的运行原理 当用户发起请求时,会访问我们像tomcat注册的端口,任何程序想要运行,都需要有一个线程对当前端口号进行监听,tomcat也不例外,当监听线程知道用户想要和…

发展规划--IM系统

1、时代背景 5G应用,多终端应用,物联网应用,小程序,工业互联,大数据应用等等大前端时代的到来,程序员不能只关注crud,因为以后的服务并发量只会越来越多。 高并发架构师、大数据架构师或者说j…

Redis入门到实战-第六弹

Redis实战热身Lists篇 完整命令参考官网 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://redis.io/Redis概述 Redis是一个开源的(采用BSD许可证),用作数据库、缓存、消息代理和流…

【基于HTML5的网页设计及应用】——随机验证码

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

WPF---1.入门学习

学习来源 布局 wpf布局原则 一个窗口中只能包含一个元素 不应显示设置元素尺寸 不应使用坐标设置元素的位置 可以嵌套布局容器 StackPanel-->表单条件查找布局 DataGrid wpf布局容器 StackPanel: 水平或垂直排列元素,Orientation属性分别: Horizontal / Vertic…

查询正在运行的Top SQL的脚本(建议收藏)

这篇文章提供了一些现成的SQL脚本,通过查询V$SQLSTATS视图找到正在运行的TOP SQL,用于后续的优化。建议大家收藏,需要查询TOP SQL时直接复制和粘贴即可。 之前的一篇文章解释了为什么要使用V$SQLSTATS视图。 当数据库表现出各种不同的性能问…

Linux/WifineticTwo

WifineticTwo Enumeration nmap 经过使用 nmap 对常见的 1000 个端口进行扫描,并加入禁止 ping 的参数,长时间的扫描结果显示,仅有 22 和 8080 两个端口处于开放状态 ┌──(kali㉿kali)-[~/vegetable/HTB/WifineticTwo] └─$ nmap 10.10…

渗压计测量:VW-102A与WM-103型读数仪的应用与优势

在当代工程测量领域,准确监测地下水压力变化对于确保建筑结构的安全和稳定至关重要。渗压计作为一种专业的测量工具,能够精确地监测和记录地下水的压力变化,是水利工程、地下建筑、坝体安全监测等领域不可或缺的仪器。今天主要给大家介绍下读…

make menuconfig

本文不是分析Linux的make menuconfig,而是如何将Linux这套机制适配到自己的项目里。 Linux内核配置工具会使用到menuconfig。menuconfig会用到mconf、conf两个命令。这两个命令是编译内核自动生成的。网上有开源的实现,我们下载下来自己编译&#xff1a…

SQLiteC/C++接口详细介绍sqlite3_stmt类(七)

返回:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(六) 下一篇: 无 22、sqlite3_column_database_name 用于返回结果集中指定列的数据库名称。如果结果集是由多个Join操作产生的,…

公域流量和私域流量该如何选择?

很多客户在做品牌推广的时候,都会犹豫应该把精力投放到公域流量还是做自己的私域流量。特别是现在流量为王的时代,大部分客户都在布局做公域流量,砸钱推广,直播带货各种形式进行曝光。 在无论是线上还是线下的公共领域&#xff0…

Microsoft Remote Desktop:无缝连接,高效远程工作的首选工具

随着科技的发展,远程工作已经成为了越来越多人的选择。在这样的背景下,一款高效、稳定且安全的远程桌面工具显得尤为重要。Microsoft Remote Desktop正是这样一款能够满足用户需求的远程桌面软件。 Microsoft Remote Desktop是微软开发的一款专为远程连…

38张最全计算机网络基础思维导图,值得一看!

你们好,我的网工朋友。 计算机网络基础知识点多且杂,想要系统地学习,思维导图肯定是必不可少的。 今天我给你找全了38张思维导图,帮助你轻松理清思路,快速掌握关键内容。 建议你收藏起来慢慢看,在看过之…

宋仕强说金航标kinghelm萨科微slkor都是网红品牌

宋仕强说金航标kinghelm萨科微slkor都是网红品牌,和宋仕强先生研究的“华强北”大ip一起,相互支持相互驱动,与金航标网站(www.kinghelm.com.cn)、萨科微网站(www.slkormicro.com)组合成为宣传矩…

2024/3/24--爬虫库

1.常用的爬虫库 (1)在setting的project里面点击Python Interpreter (2)常用的爬虫库有 import requests //用途:用于发送HTTP请求。from bs4 import BeautifulSoup //用于从HTML或XML文档中提取数据。import scrapy //一个功能强大的爬虫框架&#xf…