重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 105|回复: 0
打印 上一主题 下一主题

[Oracle] Oracle 11g 备库数据文件离线迁移操作文档

[复制链接]
跳转到指定楼层
楼主
发表于 5 天前 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
Oracle 11g Data Guard 备库数据文件离线迁移操作文档
1. 背景与目标
环境说明: Oracle 11.2.0.4 物理备库(Physical Standby),已开启 Active Data Guard (ADG)。

迁移原因: 备库所在的 /data 目录所在磁盘空间不足。

操作目标: 在不改变主备同步架构及其他参数的前提下,将 /data/orcl/ 目录下的 10 个 OMF 数据文件安全平滑地迁移至 /u01/app/oracle/oradata/ 目录下,并释放原目录空间。

2. 核心注意事项(避坑指南)
文件管理参数: 备库通常配置了 standby_file_management='AUTO'。在执行数据文件重命名(RENAME)前,必须将其临时改为 MANUAL,否则会报 ORA-01511 和 ORA-01275 错误。操作完成后需立即改回 AUTO。

文件拷贝方式: 强烈建议使用 cp -p(保留权限和时间戳)进行文件拷贝,而不是直接使用 mv 剪切。在验证数据库同步完全正常后,再去操作系统层面删除原文件,以保证最高安全性。

3. 详细操作步骤
3.1 停止备库日志应用
登录备库服务器,使用 sysdba 身份进入 SQL*Plus,取消当前的 Managed Recovery Process (MRP)。

SQL
sqlplus / as sysdba

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
3.2 将备库重启至 MOUNT 状态
为了彻底释放操作系统层面对数据文件的占用(解除 ADG 只读打开状态的锁),将数据库重启并保留在 MOUNT 状态。

SQL
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
3.3 操作系统层面拷贝数据文件
新开一个服务器终端会话,确保目标目录存在且权限正确,然后执行物理拷贝。

Bash


# 1. 拷贝指定的 10 个数据文件 (使用 -p 参数保留属性)
cp -p /data/orcl/z19cisrec.269.1029882661   /u01/app/oracle/oradata/.
cp -p /data/orcl/z19eprlob.270.1029882661   /u01/app/oracle/oradata/.
cp -p /data/orcl/zltoolstbs.307.1029884303  /u01/app/oracle/oradata/.
cp -p /data/orcl/z19indexhis.271.1029882661 /u01/app/oracle/oradata/.
cp -p /data/orcl/zlmsgdata.330.1029884463   /u01/app/oracle/oradata/.
cp -p /data/orcl/z19indexhis.281.1029883123 /u01/app/oracle/oradata/.
cp -p /data/orcl/z19indexhis.279.1029883051 /u01/app/oracle/oradata/.
cp -p /data/orcl/z19baseitem.282.1029883123 /u01/app/oracle/oradata/.
cp -p /data/orcl/z19baseitem.268.1029882661 /u01/app/oracle/oradata/.
cp -p /data/orcl/z19cisrec.276.1029883041   /u01/app/oracle/oradata/.
3.4 数据库控制文件路径重命名
回到 SQL*Plus 界面,临时修改文件管理参数,并更新数据文件指针。

SQL
-- 1. 临时改为手动管理模式 (关键步骤)
ALTER SYSTEM SET standby_file_management='MANUAL';

-- 2. 执行重命名操作更新控制文件
ALTER DATABASE RENAME FILE '/data/orcl/z19cisrec.269.1029882661'   TO '/u01/app/oracle/oradata/z19cisrec.269.1029882661';
ALTER DATABASE RENAME FILE '/data/orcl/z19eprlob.270.1029882661'   TO '/u01/app/oracle/oradata/z19eprlob.270.1029882661';
ALTER DATABASE RENAME FILE '/data/orcl/zltoolstbs.307.1029884303'  TO '/u01/app/oracle/oradata/zltoolstbs.307.1029884303';
ALTER DATABASE RENAME FILE '/data/orcl/z19indexhis.271.1029882661' TO '/u01/app/oracle/oradata/z19indexhis.271.1029882661';
ALTER DATABASE RENAME FILE '/data/orcl/zlmsgdata.330.1029884463'   TO '/u01/app/oracle/oradata/zlmsgdata.330.1029884463';
ALTER DATABASE RENAME FILE '/data/orcl/z19indexhis.281.1029883123' TO '/u01/app/oracle/oradata/z19indexhis.281.1029883123';
ALTER DATABASE RENAME FILE '/data/orcl/z19indexhis.279.1029883051' TO '/u01/app/oracle/oradata/z19indexhis.279.1029883051';
ALTER DATABASE RENAME FILE '/data/orcl/z19baseitem.282.1029883123' TO '/u01/app/oracle/oradata/z19baseitem.282.1029883123';
ALTER DATABASE RENAME FILE '/data/orcl/z19baseitem.268.1029882661' TO '/u01/app/oracle/oradata/z19baseitem.268.1029882661';
ALTER DATABASE RENAME FILE '/data/orcl/z19cisrec.276.1029883041'   TO '/u01/app/oracle/oradata/z19cisrec.276.1029883041';

-- 3. 恢复自动管理模式 (极其重要,遗忘会导致后续主备同步断开)
ALTER SYSTEM SET standby_file_management='AUTO' SCOPE=BOTH;
3.5 重新打开数据库并开启实时同步
SQL
-- 以只读模式打开数据库 (恢复 ADG 状态)
ALTER DATABASE OPEN;

-- 开启实时日志应用 (Real-Time Apply)
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
4. 验证与空间清理
4.1 状态验证
在数据库中执行以下查询,确认 MRP0 进程处于 APPLYING_LOG 状态,说明主备实时同步已恢复正常:

SQL
SELECT process, status, sequence# FROM v$managed_standby;
(也可配合 tail -f alert_SID.log 观察告警日志,确认 Managed Standby Recovery starting Real Time Apply 且无报错信息。)

4.2 清理旧文件释放空间
确认数据库已稳定运行,并正在读取新路径下的文件后,回到操作系统终端安全删除旧文件:

Bash
# 逐一删除旧路径下的文件,释放 /data 目录空间
rm -f /data/orcl/z19cisrec.269.1029882661
rm -f /data/orcl/z19eprlob.270.1029882661
rm -f /data/orcl/zltoolstbs.307.1029884303
rm -f /data/orcl/z19indexhis.271.1029882661
rm -f /data/orcl/zlmsgdata.330.1029884463
rm -f /data/orcl/z19indexhis.281.1029883123
rm -f /data/orcl/z19indexhis.279.1029883051
rm -f /data/orcl/z19baseitem.282.1029883123
rm -f /data/orcl/z19baseitem.268.1029882661
rm -f /data/orcl/z19cisrec.276.1029883041

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-8-21 06:46 , Processed in 0.238628 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表