达梦数据库-重做日志文件(二)-迁移日志
·
达梦数据库-重做日志文件(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$ = OPENARCH_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 验证路径 |
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)