在达梦数据库运维中,“备份失败,数据库未开启归档模式”是高频踩坑点。很多开发者初始化数据库后直接上手备份,却被这个报错拦住去路。其实归档模式是数据安全的“核心保障”,不仅能解决备份报错,还能实现故障时的完整恢复。今天就带大家吃透达梦归档的开启方法,两种方案按需选择,新手也能快速上手!
一、为什么必须开启归档?
归档模式的核心是把数据库的重做日志(Redo Log)永久保存到指定目录,相当于给数据操作做“全程录像”。开启后有3个关键价值,缺一不可:
-
支持时间点恢复:全量备份只能恢复到备份时刻,结合归档日志能恢复到故障前任意时间点,比如误删数据后挽回损失。 -
保障数据一致性:数据库崩溃时,可通过归档日志重演未完成事务,避免数据丢失或损坏。 -
支撑高级功能:主从复制、数据同步等架构依赖归档日志,不开启就无法搭建高可用环境。
简单说,归档模式是数据库从“能用”到“好用且安全”的必经之路,生产环境必须开启!
二、2种开启归档的完整步骤
达梦数据库支持SQL命令和配置文件两种开启方式,均需在mount模式下操作(不影响已有数据,但需重启数据库),建议操作前先做一次全量备份。
准备工作:确认当前状态
-
用disql工具登录数据库,执行以下命令查看归档状态:
SELECT ARCH_MODE,STATUS$,OPEN_COUNT FROM V$DATABASE;
SELECT NAME, VALUE, DESCRIPTION FROM V$PARAMETER
WHERE NAME LIKE '%ARCH_INI%';
-
若返回“N”表示未开启,继续后续操作;返回“Y”则已开启,无需重复配置。
方案一:SQL命令方式
适合需要临时开启或测试环境,步骤简洁无需修改配置文件:
-
关闭数据库,切换到mount模式(仅加载实例,不打开数据库):
-- 关闭数据库
shutdown immediate;
exit;
-- 以mount模式启动(Linux示例,Windows可通过服务面板操作)
./dmserver /opt/dmdbms/data/DAMENG/dm.ini mount
-
重新连接disql,执行开启归档命令:
-- 切换为归档模式
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
-- 配置归档参数(路径、文件大小、空间限制)
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dmarch, TYPE=LOCAL, FILE_SIZE=2048, SPACE_LIMIT=102400';
-- 启动数据库,使配置生效
ALTER DATABASE OPEN;
-
验证结果:再次执行 SELECT ARCH_MODE FROM V$DATABASE;,返回“Y”即成功。
参数说明:
-
DEST:归档日志存储路径(需提前创建,如 mkdir -p /dmarch,并授权dmdba用户访问); -
FILE_SIZE:单个归档文件大小(推荐2048M,避免文件过多); -
SPACE_LIMIT:归档总空间上限(推荐102400M=100G,0表示无限制,需预留足够磁盘空间)。
方案二:配置文件方式
通过修改配置文件开启,重启数据库后无需重新配置,更适合长期使用:
-
关闭数据库服务:
# Linux命令行
systemctl stop DmServiceDMSERVER
# Windows服务面板
找到“DmServiceDMSERVER”服务,点击停止
-
修改dm.ini文件,开启归档开关:
# Linux编辑文件(路径替换为实际数据库目录)
vi /opt/dmdbms/data/DAMENG/dm.ini
# 找到ARCH_INI参数,改为1(开启归档功能)
ARCH_INI = 1
-
新建dmarch.ini归档配置文件: 在数据库实例目录(如/opt/dmdbms/data/DAMENG)下新建dmarch.ini,添加以下内容:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL # 归档类型:本地归档
ARCH_DEST = /dmarch # 归档存储路径
ARCH_FILE_SIZE = 2048 # 单个归档文件大小(M)
ARCH_SPACE_LIMIT = 102400 # 归档总空间限制(M)
-
启动数据库服务,验证结果:
# Linux启动服务
cd /usr/lib/systemd/system
systemctl start DmServiceDMSERVER
# 登录disql验证
SELECT ARCH_MODE FROM V$DATABASE; # 返回“Y”即成功
三、关键注意事项
-
路径要求:归档目录需独立创建,避免与数据文件同目录;路径不能包含中文、空格,建议用英文+数字+下划线命名。 -
空间规划:归档日志会持续占用磁盘,建议按每日增量数据的1-2倍设置SPACE_LIMIT,定期清理过期日志。 -
权限设置:归档目录需赋予dmdba用户读写权限(Linux执行 chown -R dmdba:dinstall /dmarch)。 -
业务影响:开启归档需重启数据库,建议在业务低峰期操作,提前通知相关部门。 -
验证归档:开启后可通过 SELECT * FROM V$ARCH_STATUS;查看归档状态,确保STATUS为“VALID”。
四、总结
开启归档是达梦数据库运维的基础操作,两种方案各有优势:SQL命令方式适合快速测试,配置文件方式适合生产环境长期使用。无论哪种方式,核心都是通过合理配置归档路径和空间限制,为数据安全保驾护航。
下次再遇到备份失败的报错,就按照上面的步骤开启归档,搭配定时备份策略,数据安全才能万无一失!如果觉得有用,欢迎转发给身边的运维同行~
五、参考资料
1、开启本地归档
https://eco.dameng.com/document/dm/zh-cn/ops/installation-install.html#2.2%20%E5%BC%80%E5%90%AF%E6%9C%AC%E5%9C%B0%E5%BD%92%E6%A1%A3
2、归档日志
https://eco.dameng.com/document/dm/zh-cn/ops/check-instance

