达梦数据库-重做日志文件(redo)(二)-迁移日志

1.查看redo文件

SQL> select * from v$rlogfile;

行号     GROUP_ID    FILE_ID     PATH                          CLIENT_PATH  CREATE_TIME                RLOG_SIZE            MIN_EXEC_VER MIN_DCT_VER
---------- ----------- ----------- ----------------------------- ------------ -------------------------- -------------------- ------------ -----------
1          2           0           /dm8/data/DAMENG/DAMENG01.log DAMENG01.log 2025-08-26 14:26:59.000000 2147483648           V8.1.1.1     4
2          2           1           /dm8/data/DAMENG/DAMENG02.log DAMENG02.log 2025-08-26 14:26:59.000000 2147483648           V8.1.1.1     4

已用时间: 2.813(毫秒). 执行号:1001.

“迁移达梦数据库日志文件路径” 这一项操作。这是一项常见且重要的维护任务,目的是将日志文件从默认磁盘迁移到 独立、高速的磁盘(如 SSD),以提升 I/O 性能、避免与数据文件争抢资源,并增强系统可靠性。


🎯 目标

将当前日志文件:

/dm8/data/DAMENG/DAMENG01.log
/dm8/data/DAMENG/DAMENG02.log

迁移到新路径:

/relog/DAMENG01.log
/relog/DAMENG02.log

✅ 假设你希望使用 /relog 作为新的日志存储目录。


⚠️ 重要前提

  • 必须以 SYSDBA 权限操作
  • 必须关闭数据库(不能在线迁移)
  • 确保目标磁盘空间充足
  • 建议操作前备份 dm.ini 文件

✅ 操作步骤(详细、安全)

🔧 步骤 1:关闭数据库

# 进入 disql
disql SYSDBA/SYSDBA@localhost:5236
-- 执行关闭
SHUTDOWN IMMEDIATE;

-- 退出
EXIT;

✅ 确保数据库完全关闭,dmserver 进程已终止。


🔧 步骤 2:创建新日志目录并设置权限

# 创建新目录
sudo mkdir -p /relog

# 修改属主为 dmdba(根据你的安装用户调整)
sudo chown dmdba:dinstall /relog

# 设置权限
sudo chmod 755 /relog

🔧 步骤 3:复制(或移动)日志文件到新位置

📌 推荐先 复制,确认无误后再删除原文件。

# 复制日志文件
cp /dm8/data/DAMENG/DAMENG01.log /relog/
cp /dm8/data/DAMENG/DAMENG02.log /relog/

# 查看是否复制成功
ls -l /relog/

输出应类似:

-rw-r--r-- 1 dmdba dinstall 2147483648 Aug 26 14:26 DAMENG01.log
-rw-r--r-- 1 dmdba dinstall 2147483648 Aug 26 14:26 DAMENG02.log

🔧 步骤 4:修改数据库配置文件 dm.ini

编辑 /dm8/data/DAMENG/dm.ini 文件:

vi /dm8/data/DAMENG/dm.ini

找到 LOG_PATH 参数,修改为新路径:

# 修改前(原路径)
LOG_PATH = /dm8/data/DAMENG/DAMENG01.log,/dm8/data/DAMENG/DAMENG02.log

# 修改后(新路径)
LOG_PATH = /relog/DAMENG01.log,/relog/DAMENG02.log

📌 说明:

  • LOG_PATH 定义了所有联机重做日志文件的路径
  • 多个文件用 英文逗号 分隔
  • 路径必须真实存在且可读写

🔧 步骤 5:启动数据库

# 启动数据库服务
/dm8/bin/dmserver /dm8/data/DAMENG/dm.ini

📌 如果你在终端前台运行,会看到启动日志。
也可以后台运行:nohup /dm8/bin/dmserver /dm8/data/DAMENG/dm.ini &


🔧 步骤 6:验证迁移是否成功

# 登录 disql
disql SYSDBA/SYSDBA@localhost:5236

执行查询:

SELECT GROUP_ID, FILE_ID, PATH, RLOG_SIZE/1024/1024 AS SIZE_MB 
FROM V$RLOGFILE;

✅ 正确输出应为:

GROUP_ID  FILE_ID  PATH                     SIZE_MB
--------  -------  ------------------------ -------
2         0        /relog/DAMENG01.log      2048
2         1        /relog/DAMENG02.log      2048

如果路径已更新,说明迁移成功!


✅ 验证数据库状态

-- 检查实例状态
SELECT STATUS$ FROM V$INSTANCE;

-- 检查归档状态(如果有启用)
SELECT ARCH_MODE FROM V$DATABASE;

应返回:

  • STATUS$ = OPEN
  • ARCH_MODE = ARCHIVELOG 或 NONE

✅ 可选:删除旧日志文件(确认无误后)

# 确认数据库运行正常 24 小时后,再删除原文件
rm /dm8/data/DAMENG/DAMENG01.log
rm /dm8/data/DAMENG/DAMENG02.log

⚠️ 建议保留一段时间作为备份,或改名保留:

mv /dm8/data/DAMENG/DAMENG01.log /dm8/data/DAMENG/DAMENG01.log.bak

📌 注意事项

项目说明
🔐 权限问题确保 dmdba 对 /relog 有读写权限
💾 磁盘类型建议使用 SSD 或高性能 RAID
🔄 不能在线操作必须关闭数据库才能修改 LOG_PATH
📁 路径一致性dm.ini 中路径必须与实际文件一致
🧩 主备环境如果是主备集群,需同步修改备库配置
📋 备份配置修改前备份 dm.ini

✅ 成功标志

当你看到:

SELECT PATH FROM V$RLOGFILE;

返回的是 /relog/... 路径,并且数据库正常运行,迁移就成功了!


🎯 总结

步骤操作
1关闭数据库
2创建新目录 /relog
3复制日志文件到新目录
4修改 dm.ini 中 LOG_PATH 指向新路径
5启动数据库
6查询 V$RLOGFILE 验证路径
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐