首页 > 数据库 >达梦数据库系列—26. DSC主备搭建

达梦数据库系列—26. DSC主备搭建

时间:2024-07-11 13:02:11浏览次数:15  
标签:26 dm ## MAL 主备 ini INST ARCH DSC

配置DSC主备

配置环境

节点机器 

实例名称 

IP 

133 

GRP1_RT_01 

192.168.64.133 

192.168.169.143

端口规划

实例名

PORT_NUM

MAL_INST_DW_PORT

MAL_HOST

MAL_PORT

MAL_DW_PORT

DSC01

6636

4567

192.168.169.111

8338

3567

DSC02

6637

4568

192.168.169.112

8339

3568

GRP1_RT_01

9344

4569

192.168.169.143

8738

3569

1.配置 DMDSC 主库环境

参考《DM数据库DSC集群搭建

搭建完成后,正常退出 DMDSC 集群的两个 dmserver 节点实例,不需要退出 dmcss 和 dmasmsvr。

配置 dmarch.ini

分别编辑两个 DMDSC 节点的 dmarch.ini 文件,增加本地归档和远程归档。dmarch.ini 文件放在各自 dm.ini 中指定的 CONFIG_PATH 目录下。

配置 DSC01 的 dmarch.ini 文件

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = +DMDATA/DSC01/dsc01_local_arch

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

[ARCHIVE_REMOTE]

ARCH_TYPE = REMOTE

ARCH_DEST = DSC02

ARCH_INCOMING_PATH =  +DMDATA/DSC02/dsc01_remote_arch

配置 DSC02 的 dmarch.ini 文件

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = +DMDATA/DSC02/dsc02_local_arch

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

[ARCHIVE_REMOTE]

ARCH_TYPE = REMOTE

ARCH_DEST = DSC01

ARCH_INCOMING_PATH = +DMDATA/DSC01/dsc02_remote_arch

配置 dm.ini

分别编辑两个 DMDSC 节点的 dm.ini 文件,打开归档参数

ARCH_INI = 1

备份 DMDSC 库

重启 DMDSC 集群的两个 dmserver 实例,然后再正常退出。在 DMDSC 集群生成有归档日志的情况下进行脱机备份,以便后续校验日志连续性时使用。

//启动dmrman

./dmrman use_ap=2 dcr_ini=/dm/config/dmdcr.ini

//脱机备份DMDSC集群

RMAN>BACKUP DATABASE '/dm/config/DSC01_conf/dm.ini' FULL BACKUPSET  '/dm/config/DSC01_conf/bak/db_full_bak_for_DSC';

2.配置单节点备库

scp -r bak 192.168.64.133:/home/dmdba

//初始化备库

./dminit path=/dm/data/EP01/

//启动dmrman

./dmrman use_ap=2

//使用DMDSC库的备份集还原恢复到单节点备库

RMAN>RESTORE DATABASE '/dm/data/EP01/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/bak/db_full_bak_for_DSC';

RMAN>RECOVER DATABASE '/dm/data/EP01/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/bak/db_full_bak_for_DSC';

RMAN>RECOVER DATABASE '/dm/data/EP01/DAMENG/dm.ini' UPDATE DB_MAGIC;

3.配置 dm.ini

依次配置 DMDSC 主库所有节点和单节点备库的 dm.ini 文件,修改数据守护相关的参数配置。

配置 DSC01 的 dm.ini 文件

##实例名,建议使用“组名_守护环境_序号”的命名方式,总长度不能超过16

INSTANCE_NAME = DSC01

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

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次的日志发送信息

配置 DSC02 的 dm.ini 文件

INSTANCE_NAME = DSC02

PORT_NUM = 6637

DW_INACTIVE_INTERVAL = 60

ALTER_MODE_STATUS = 0

ENABLE_OFFLINE_TS = 2

MAL_INI = 1

ARCH_INI = 1

RLOG_SEND_APPLY_MON = 64

配置 GRP1_RT_01 的 dm.ini 文件

INSTANCE_NAME = GRP1_RT_01

PORT_NUM = 9344

DW_INACTIVE_INTERVAL = 60

ALTER_MODE_STATUS = 0

ENABLE_OFFLINE_TS = 2

MAL_INI = 1

ARCH_INI = 1

RLOG_SEND_APPLY_MON = 64

4.配置 dmmal.ini

在 DMDSC 集群的 dmmal.ini 文件基础上,增加备库 GRP1_RT_01 的配置项。

所有节点实例的 dmmal.ini 文件内容是一致的,配置完成后,拷贝到每个节点实例 dm.ini 中指定的 CONFIG_PATH 目录下。

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

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

[MAL_INST0]

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

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

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

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

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

MAL_DW_PORT = 3567 ##实例本地的守护进程监听TCP连接的端口

MAL_INST_DW_PORT = 4567 ##实例监听守护进程TCP连接的端口

[MAL_INST1]

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

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

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

MAL_INST_HOST = 192.168.64.112

MAL_INST_PORT = 6637

MAL_DW_PORT = 3568

MAL_INST_DW_PORT = 4568

[MAL_INST2]

MAL_INST_NAME = GRP1_RT_01

MAL_HOST = 192.168.169.143

MAL_PORT = 8738

MAL_INST_HOST = 192.168.64.133

MAL_INST_PORT = 9344

MAL_DW_PORT = 3569

MAL_INST_DW_PORT = 4569

5.配置 dmarch.ini

再次编辑各个节点的 dmarch.ini 文件,增加实时归档配置。

修改 DSC01 的 dmarch.ini 文件

增加:

[ARCHIVE_REALTIME]

ARCH_TYPE = REALTIME

ARCH_DEST = GRP1_RT_01

修改 DSC02 的 dmarch.ini 文件

增加:

[ARCHIVE_REALTIME]

ARCH_TYPE = REALTIME

ARCH_DEST = GRP1_RT_01

修改 GRP1_RT_01 的 dmarch.ini 文件

 [ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /dm/data/EP01/DAMENG/arch

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME

ARCH_DEST = DSC01/DSC02

6.配置 dmwatcher.ini

依次配置每个节点实例的 dmwatcher.ini 文件,放到各自 dm.ini 中指定的 CONFIG_PATH 目录下。

另外要注意,DMDSC 集群各节点实例的自动拉起是由各自本地的 dmcss 执行的,不是由守护进程执行,如果要打开 DMDSC 集群的自动拉起,需要再去配置 dmdcr.ini 中的自动拉起参数,为避免 dmcss 在所有配置步骤完成之前提前将 dmserver 自动拉起,这里先不修改 dmdcr.ini 配置。

配置 DSC01 的 dmwatcher.ini 文件

[GRP1]

DW_TYPE = GLOBAL ##全局守护类型

DW_MODE = MANUAL ##手动切换模式

DW_ERROR_TIME = 60 ##远程守护进程故障认定时间

INST_RECOVER_TIME = 60 ##主库守护进程启动恢复的间隔时间

INST_ERROR_TIME = 35 ##本地实例故障认定时间

INST_INI = /dm/config/DSC01_conf/dm.ini  ##dm.ini配置文件路径

DCR_INI = /dm/config/dmdcr.ini  ##dmdcr.ini配置文件路径

INST_OGUID = 1000 ##守护系统唯一OGUID值

INST_STARTUP_CMD = /dm/bin/dmserver ##命令行方式启动

INST_AUTO_RESTART = 0 ##关闭实例的自动启动功能

RLOG_SEND_THRESHOLD = 0 ##指定主库发送日志到备库的时间阈值,默认关闭

RLOG_APPLY_THRESHOLD = 0 ##指定备库重演日志的时间阈值,默认关闭

配置 DSC02 的 dmwatcher.ini 文件

[GRP1]

DW_TYPE = GLOBAL

DW_MODE = MANUAL

DW_ERROR_TIME = 60

INST_RECOVER_TIME = 60

INST_ERROR_TIME = 35

INST_INI = /dm/config/DSC02_conf/dm.ini

DCR_INI = /dm/config/dmdcr.ini

INST_OGUID = 1000

INST_STARTUP_CMD = /dm/bin/dmserver

INST_AUTO_RESTART = 0

RLOG_SEND_THRESHOLD = 0

RLOG_APPLY_THRESHOLD = 0

配置 GRP1_RT_01 的 dmwatcher.ini 文件

[GRP1]

DW_TYPE = GLOBAL

DW_MODE = MANUAL

DW_ERROR_TIME = 60

INST_RECOVER_TIME = 60

INST_ERROR_TIME = 35

INST_INI = /dm/data/EP01/DAMENG/dm.ini

INST_OGUID = 1000

INST_STARTUP_CMD = /dm/bin/dmserver

INST_AUTO_RESTART = 0 ##对单节点,如果需要打开自动拉起功能,将此配置修改为1即可

RLOG_SEND_THRESHOLD = 0

RLOG_APPLY_THRESHOLD = 0

7.配置 dmmonitor.ini

编辑 dmmonitor.ini 文件,放在/dm/data 目录下:

MON_LOG_PATH = /dm/data/log

MON_LOG_INTERVAL = 60

MON_LOG_FILE_SIZE = 64

MON_LOG_SPACE_LIMIT = 0

MON_DW_CONFIRM = 0

[GRP1]

MON_INST_OGUID = 1000

MON_DW_IP = 192.168.64.111:3567/192.168.64.112:3568

MON_DW_IP = 192.168.64.133:3569

8.配置 dmdcr.ini

如果不需要打开 dmcss 的自动拉起功能,该步骤可以省略。需要修改 dmdcr.ini 中的自动拉起配置参数,此参数修改完成后,需要重启 dmcss 才可以生效,为了避免重启 dmcss 引发 dmasmsvr 被强制关闭,需要先将 dmcss 和 dmasmsvr 都正常退出。参数中指定以 Mount 方式拉起 dmserver。

9.启动主备库

注意实例都要使用 Mount 方式启动。

启动 DMDSC 集群的两个 dmserver 实例

启动单节点备库

可以用服务的方式启动,例:

DmServiceDMSERVER start mount

10.设置 OGUID

连接 DMDSC 集群中的任意一个节点,设置 DMDSC 主库的 OGUID 值。

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL>SP_SET_OGUID(1000);

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

连接单节点备库,设置备库 OGUID。

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL>SP_SET_OGUID(1000);

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

11.修改主备库模式

连接 DMDSC 集群中的任意一个节点,修改 DMDSC 库为 Primary 模式。

SQL>ALTER DATABASE PRIMARY;

连接单节点备库,修改备库为 Standby 模式。

SQL>ALTER DATABASE STANDBY;

12.启动守护进程

启动 DMDSC 主库的所有守护进程:

./dmwatcher /dm/config/DSC01_conf/dmwatcher.ini

./dmwatcher /dm/config/DSC02_conf/dmwatcher.ini

启动备库的守护进程:

./dmwatcher /dm/data/EP01/DAMENG/dmwatcher.ini

以上如果配置了服务,也可以直接用服务启动。

13.启动监视器

./dmmonitor path=/dm/data/dmmonitor.ini

另外,DMDSC 集群也有自己的监视器工具,需要时也可以启动:

./dmcssm ini_path=/dm/config/dmcssm.ini

可以为主备库都配置上服务,主库的服务见安装文档。

cssm不配置服务

备库:

./dm_service_installer.sh -t dmserver -p DMSERVER -dm_ini /dm/data/EP01/DAMENG/dm.ini

./dm_service_installer.sh -t dmwatcher -p DMSERVER -watcher_ini /dm/data/EP01/DAMENG/dmwatcher.ini

监视器:

./dm_service_installer.sh -t dmmonitor -p DMSERVER -monitor_ini /dm/data/dmmonitor.ini

至此 DMDSC 集群的实时数据守护系统搭建完毕。

达梦技术社区:达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

标签:26,dm,##,MAL,主备,ini,INST,ARCH,DSC
From: https://blog.csdn.net/md54333/article/details/140348834

相关文章

  • MUNIK解读ISO26262 : 硬件架构评估及FMEDA(系统级)
    前言功能安全领域硬件层面的核心安全活动---FMEDA(FailureModesEffectsandDiagnosticAnalysis)一直受到功能安全工程师的广泛关注!作为定量分析的安全分析方法,FMEDA涉及到了复杂的计算公式和大范围的数据处理。为何做FMEDA汽车功能安全关注汽车电子/电气系统功能的正确、......
  • MUNIK解读ISO26262--系统架构
    功能安全之系统阶段-系统架构我们来浅析下功能安全系统阶段重要话题——“系统架构”目录概览:系统架构的作用系统架构类型系统架构层级的相关安全机制梳理1.系统架构的作用架构的思维包括抽象思维、分层思维、结构化思维和演化思维。通过将复杂系统分解为小的单元来简化......
  • UVA12683 Odd and Even Zeroes 题解
    题目简述定义\(\operatorname{count}(num)\)表示\(num\)末尾\(0\)的个数。给出\(n\)(\(n\leq10^{18}\)),求\(\sum\limits_{i=0}^{n}[2\mid\operatorname{count}(i!)]\)。题目分析对于一个\(i\),以下记成\(n\)。\(n!\)末尾\(0\)的个数取决于\(1\simn\)......
  • Linux (10) 配置HAProxy,实现负载均衡器的主备模式
    《WindowsAzurePlatform系列文章目录》 最近有1个客户需求,在这里记录一下。客户提出需要使用Azure负载均衡器(四层负载均衡器),实现主备模式。场景是负载均衡器后有2台虚拟机-平时100%的流量都发送到第一台虚拟机-如果第一台虚拟机发生......
  • 玩鸣潮提示错误代码126:加载x3daudio1_7.dll失败无法打开的多个详细有效解决方法分享
    玩游戏期间你是否也有遇到过找不到x3daudio1_7.dll无法继续执行代码打不开游戏?那么遇到这个问题要怎么办?有什么方法能解决?今天详细给大家介绍一下如何解决找不到x3daudio1_7.dll文件或x3daudio1_7.dll丢失的多个不同方法!第一、x3daudio1_7.dll丢失或损坏的影响系统问题表现......
  • MySQL导入数据库报错#1118 - Row size too large ( 8126). 的解决方法
    导入SQL文件时报错(在执行创建表或者增加字段时,发现rowsize长度过长,会导致出现以下错误)[ERR]1118-Rowsizetoolarge(>8126).ChangingsomecolumnstoTEXTorBLOBorusingROW_FORMAT=DYNAMICorROW_FORMAT=COMPRESSEDmayhelp.Incurrentrowformat,BLOBprefix......
  • 26、Django内建用户系统
    官方文档:https://docs.djangoproject.com/en/2.2/topics/auth 基本字段模型类位置:--fromdjango.contrib.auth.modelsimportUser   ......
  • POJ 3126 Prime Path
    题目链接:POJ3126【PrimePath】思路    由于最多有100组样例,所以直接先初始化判断出1000-9999之间的数字是否是素数。然后再对每个题目所给的四位数进行BFS搜索,依次对每个数位进行枚举,使用0-9的每一个数字对每一个数位进行替换,注意千位上的数字不能为0。然后检验当前......
  • not_the_same_3dsctf_2016
    not_the_same_3dsctf_2016查看保护就不说了IDA反编译发现为静态编译,不用找libc了这点节省不少功夫。打开main函数,发现栈溢出漏洞偏移为45,这个是根据gdb的cyclic算出来的发现后门函数get_secret,功能是把flag读取赋值给fl4g初步思路为通过栈溢出,调用get_secret,再通过write函......
  • 最简 INA226 写寄存器的代码
    #include"hardware/i2c.h"#include"pico/binary_info.h"#defineI2C_SDA16#defineI2C_SCL17voidsetup(){//putyoursetupcodehere,torunonce:Serial.begin(115200);i2c_init(i2c_default,100*1000);gpio_set_functio......