DSC 归档配置相关

1 归档查询

一般建议DMDSC集群中的节点,除了配置本地归档以外,再双向配置集群中所有其他节点的远程归档。

在DMDSC中,每个节点都可以进行事务操作,也就是说每个节点都会产生归档数据。

达梦数据库中表的备份不依赖归档数据,但对于表空间和数据库备份,在恢复时为了保证一致性,必须依赖归档文件。

在DMDSC中的每个节点都有事务日志,所以在DMDSC中,在备份节点上需要能够访问到所有节点的归档日志。远程归档就是解决这个问题的方法

配置远程归档后可以将写入本地归档的REDO日志信息发送到远程节点的指定归档目录中。

注意,这里是在写入本地归档日志文件的同时,通过MAL系统将REDO日志发送给指定的数据库实例,没有先后顺序。

配置完成后就可以保证在任意一个节点的本地磁盘中都能够找到DMDSC所有节点产生的完整的归档日志文件。

达梦数据库在本地归档失败与远程归档失败时的处理策略是不同的:

(1)当本地归档失败,比如磁盘空间不足时,系统将会挂起。

(2)当远程归档失败时,远程归档将失效,不再发送REDO日志到指定数据库实例。当节点间网络恢复或者远程节点重启成功后,系统会自动检测并恢复远程归档,继续发送新写入的REDO日志,但不会主动补齐故障期间的REDO日志。此时需要手工从远程节点的本地归档复制缺失的归档到本地节点。

可通过查询以下视图获取归档配置以及归档状态等信息

sql 复制代码
-- V$DM_ARCH_INI,关于归档的详尽信息
SQL>  select ARCH_NAME,ARCH_TYPE,ARCH_DEST from V$DM_ARCH_INI;

行号     ARCH_NAME       ARCH_TYPE ARCH_DEST             
---------- --------------- --------- ----------------------
1          ARCHIVE_LOCAL1  LOCAL     +DMARCH/ARCH/DSC0/arch
2          ARCHIVE_REMOTE1 REMOTE    DSC1
3          ARCHIVE_LOCAL2  LOCAL     /dmarch

-- V$ARCH_STATUS,关于归档的状态信息
SQL> select * from v$arch_status;

行号     ARCH_TYPE ARCH_DEST              ARCH_STATUS ARCH_SRC
---------- --------- ---------------------- ----------- --------
1          LOCAL     +DMARCH/ARCH/DSC0/arch VALID       DSC0
2          REMOTE    +DMARCH/ARCH/DSC1/arch VALID       DSC1
3          LOCAL     /dmarch                VALID       DSC0

2 关于DMARCH.INI文件配置

以两节点DMDSC集群为例,说明如何配置远程归档。

DSC0实例dmarch.ini文件配置:

bash 复制代码
[dmdba@dsc01 DSC0]$ pwd
/dm/dmdbms/dsc_config/DSC0

[dmdba@dsc01 DSC0]$ cat dmarch.ini 
ARCH_WAIT_APPLY = 0    
-- 控制备库在接收到主库的归档日志后,是否需要等待重演(apply)完成后再响应主库。(Datawatch常用,1为事务一致模式,0为高性能模式立即响应主库归档日志)
ARCH_LOCAL_SHARE = 1   
-- 指定 DMDSC 集群中的本地归档是否共享给远程节点作为远程归档(1共享,0不共享)。设置为1意味着本地归档日志不仅对本地节点可用,还可以被集群中的其他节点访问和使用。这在多节点集群环境中尤为重要,以确保所有节点都能访问到完整的归档日志。
ARCH_LOCAL_SHARE_CHECK = 0
-- 是否进行本地归档和远程归档路径的一致性校验(1校验,0不校验),设置为0表示不进行路径一致性校验。
-- 这意味着系统不会验证本地归档路径和远程归档路径是否一致,这在某些高级配置中可能是必要的,但通常建议保持一致性以避免潜在的问题。

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/ARCH/DSC0/arch
ARCH_FILE_SIZE = 2048    
-- 单位M,范围64M~2048M
ARCH_SPACE_LIMIT = 204800  
-- 单位M,范围0或1024M~2147483647 M,0表示不限制当本地归档文件的总大小达到 204800 MB(200 GB)时,系统将自动删除最旧的归档日志文件以腾出空间。
ARCH_FLUSH_BUF_SIZE = 32
-- 归档合并刷盘缓存的大小,单位为 M。取值范围0~128M,设置为32MB,表示系统在进行归档日志刷盘操作时,会使用32 MB的缓存来优化性能。
-- 设置为0表示不使用归档合并刷盘缓存

[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = +DMARCH/ARCH/DSC1/arch
-- 指定远程节点DSC1的本地归档日志文件存放路径。
-- +DMARCH/ARCH/DSC1/arch 是 ASM 文件系统的路径,表示DSC1节点的归档日志将存储在 ASM 磁盘组DMARCH的ARCH/DSC1/arch目录下。
-- 注意:此路径必须与DSC1节点上dmarch.ini文件中[ARCHIVE_LOCAL1]配置的ARCH_DEST路径完全一致,否则服务器启动时会校验失败

ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 204800
ARCH_FLUSH_BUF_SIZE = 32

[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 409600
ARCH_FLUSH_BUF_SIZE = 32

DSC1实例dmarchi.ini文件配置:

bash 复制代码
[dmdba@dsc02 DSC1]$ pwd
/dm/dmdbms/dsc_config/DSC1

[dmdba@dsc02 DSC1]$ cat dmarch.ini 
ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK = 0

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/ARCH/DSC1/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 204800
ARCH_FLUSH_BUF_SIZE = 32

[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC0
ARCH_INCOMING_PATH = +DMARCH/ARCH/DSC0/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 204800
ARCH_FLUSH_BUF_SIZE = 32

[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 409600
ARCH_FLUSH_BUF_SIZE = 32

3 归档常见操作

3.1 手动生成归档

sql 复制代码
-- 切换日志
SQL> alter system switch logfile;
操作已执行
已用时间: 22.456(毫秒). 执行号:0.

SQL> alter database archivelog current;
操作已执行
已用时间: 4.306(毫秒). 执行号:0.

3.2 修改归档存放路径

达梦数据库在已经开启归档模式的情况,无法在open状态下修改归档目录,OPEN状态下仅允许添加REALTIME、TIMELY、ASYNC、SYNC归档。

把数据库改成mount状态下可以在线添加归档日志路径(新增归档目标 ),但无法修改已有归档路径。

要修改数据库的归档路径,只能是手工修改dmarch.ini文件,然后重启实例生效。

sql 复制代码
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.706(ms)
disql V8
SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST=/dm8/data/arch, TYPE = local, FILE_SIZE = 256, SPACE_LIMIT = 0';
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dm8/data/arch, TYPE = local, FILE_SIZE = 256, SPACE_LIMIT = 0';
第1 行附近出现错误[-980]:OPEN状态下仅允许添加REALTIME、TIMELY、ASYNC、SYNC归档.
已用时间: 0.609(毫秒). 执行号:0.

SQL> alter database mount;
操作已执行
已用时间: 25.041(毫秒). 执行号:0.
SQL>  ALTER DATABASE ADD ARCHIVELOG 'DEST=/dm8/dmarch, TYPE = local, FILE_SIZE = 256, SPACE_LIMIT = 0';
操作已执行
已用时间: 22.074(毫秒). 执行号:0.

[dmdba@dsc01 arch1]$ pwd
/dm8/dmarch/arch1

SQL> ALTER DATABASE modify ARCHIVELOG 'TYPE=local,DEST=/dm8/dmarch/arch1,FILE_SIZE = 512, SPACE_LIMIT = 10240';
ALTER DATABASE modify ARCHIVELOG 'TYPE=local,DEST=/dm8/dmarch/arch1,FILE_SIZE = 512, SPACE_LIMIT = 10240';
第1 行附近出现错误[-953]:归档目标不存在.
已用时间: 1.695(毫秒). 执行号:0.

SQL> ALTER DATABASE DELETE ARCHIVELOG 'DEST = /dm8/dmarch/arch1, TYPE = local';
ALTER DATABASE DELETE ARCHIVELOG 'DEST = /dm8/dmarch/arch1, TYPE = local';
第1 行附近出现错误[-953]:归档目标不存在.
已用时间: 2.410(毫秒). 执行号:0.

通过修改dmarch.ini文件调整归档存放路径

bash 复制代码
-- 两个节点停止集群服务
systemctl stop DmCSSServiceCSS.service

-- 两个节点创建新归档存放目录
[dmdba@dsc01 dmarch01]$ pwd
/dm8/dmarch01

[dmdba@dsc02 dmarch02]$ pwd
/dm8/dmarch02

-- 修改dmarch.ini
-- 节点1
[dmdba@dsc01 DSC0]$ cat dmarch.ini  
#DaMeng Database Archive Configuration file  
#this is comments  
        ARCH_WAIT_APPLY      = 0  
        ARCH_LOCAL_SHARE     = 1  
        ARCH_LOCAL_SHARE_CHECK = 1 
  
[ARCHIVE_LOCAL1]  
        ARCH_TYPE            = LOCAL  
        ARCH_DEST            = /dm8/dmarch01  
        ARCH_FILE_SIZE       = 1024  
        ARCH_SPACE_LIMIT     = 0  
        ARCH_FLUSH_BUF_SIZE  = 32  
        ARCH_HANG_FLAG       = 1  
  
[ARCHIVE_REMOTE1]  
        ARCH_TYPE            = REMOTE  
        ARCH_DEST            = DSC1  
        ARCH_INCOMING_PATH   = /dm8/dmarch02  
        ARCH_FILE_SIZE       = 1024  
        ARCH_SPACE_LIMIT     = 0  
        ARCH_FLUSH_BUF_SIZE  = 32

-- 节点2
[dmdba@dsc02 DSC1]$ cat dmarch.ini
#DaMeng Database Archive Configuration file
#this is comments
        ARCH_WAIT_APPLY      = 0
        ARCH_LOCAL_SHARE     = 1
        ARCH_LOCAL_SHARE_CHECK = 1

[ARCHIVE_LOCAL1]
        ARCH_TYPE            = LOCAL
        ARCH_DEST            = /dm8/dmarch02
        ARCH_FILE_SIZE       = 1024
        ARCH_SPACE_LIMIT     = 0
        ARCH_FLUSH_BUF_SIZE  = 32
        ARCH_HANG_FLAG       = 1

[ARCHIVE_REMOTE1]
        ARCH_TYPE            = REMOTE
        ARCH_DEST            = DSC0
        ARCH_INCOMING_PATH   = /dm8/dmarch01
        ARCH_FILE_SIZE       = 1024
        ARCH_SPACE_LIMIT     = 0
        ARCH_FLUSH_BUF_SIZE  = 32

-- 启动集群
-- 查询归档状态
SQL> select * from v$arch_status;

行号     ARCH_TYPE ARCH_DEST     ARCH_STATUS ARCH_SRC
---------- --------- ------------- ----------- --------
1          LOCAL     /dm8/dmarch01 VALID       DSC0
2          REMOTE    /dm8/dmarch02 VALID       DSC1

SQL> select * from v$arch_status;

行号     ARCH_TYPE ARCH_DEST     ARCH_STATUS ARCH_SRC
---------- --------- ------------- ----------- --------
1          LOCAL     /dm8/dmarch02 VALID       DSC1
2          REMOTE    /dm8/dmarch01 VALID       DSC0

已用时间: 2.550(毫秒). 执行号:1.

https://eco.dameng.com

相关推荐
文言一心2 小时前
MySQL脚本转换为StarRocks完整指南
android·数据库·mysql
235163 小时前
【Redis】缓存击穿、缓存穿透、缓存雪崩的解决方案
java·数据库·redis·分布式·后端·缓存·中间件
_Re.4 小时前
DSC 参数ARCH_HANG_FLAG对集群的影响
linux·服务器·数据库
GreatSQL4 小时前
GreatSQL 优化技巧:最值子查询与窗口函数相互转换
数据库
IDOlaoluo4 小时前
PLSQL Developer 13.0.2 x64 安装教程(附详细步骤和Oracle客户端配置)
数据库·oracle
qq_318693014 小时前
XML 站点地图制作与提交全流程,新站收录效率提升 50%
xml·数据库·mysql
毕设十刻6 小时前
基于vue的考研信息系统6kv17(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
龙茶清欢6 小时前
PostgreSQL 和 MySQL两个数据库的索引的区别
数据库·mysql·postgresql
望获linux6 小时前
论文解读:利用中断隔离技术的 Linux 亚微秒响应性能优化
java·linux·运维·前端·arm开发·数据库·性能优化