暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle迁移数据文件到其他目录

原创 搬砖工人 2022-05-20
1056

背景:由于之前数据库文件放在/oradata目录下,现在需要将其迁移到/home/oracle目录下。

SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /oracle/app/product/12.2.0/dbhome_1/dbs/spfileeastdb.ora

SQL> show parameter control
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string /oradata/eastdb/control01.ctl,/oracle/app/fast_recovery_area/eastdb/control02.ctl
control_management_pack_access string DIAGNOSTIC+TUNING

SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/oradata/eastdb/system01.dbf
/oradata/eastdb/sysaux01.dbf
/oradata/eastdb/undotbs01.dbf
/oradata/eastdb/users01.dbf
/oradata/eastdb/undotbs2.dbf
/oradata/eastdb/etl.dbf
/oradata/eastdb/etl2.dbf
/oradata/eastdb/east.dbf

SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/oradata/eastdb/redo01.log
/oradata/eastdb/redo02.log
/oradata/eastdb/redo03.log

SQL> select name from v$tempfile;
NAME
--------------------------------------------------------------------------------
/oradata/eastdb/temp01.dbf
/oradata/eastdb/temp02.dbf

--在spfile中修改control file路径
alter system set control_files='/home/oracle/eastdb/control01.ctl','/home/oracle/eastdb/control02.ctl' scope=spfile;

--关闭数据库
shutdown immediate;

mv /oradata/eastdb /home/oracle
mv /oracle/app/fast_recovery_area/eastdb/control02.ctl /home/oracle/eastdb/

--修改数据文件
alter database rename file '/oradata/eastdb/system01.dbf' to '/home/oracle/eastdb/system01.dbf';
alter database rename file '/oradata/eastdb/sysaux01.dbf' to '/home/oracle/eastdb/sysaux01.dbf';
alter database rename file '/oradata/eastdb/undotbs01.dbf' to '/home/oracle/eastdb/undotbs01.dbf';
alter database rename file '/oradata/eastdb/users01.dbf' to '/home/oracle/eastdb/users01.dbf';
alter database rename file '/oradata/eastdb/etl.dbf' to '/home/oracle/eastdb/etl.dbf';
alter database rename file '/oradata/eastdb/etl2.dbf' to '/home/oracle/eastdb/etl2.dbf';
alter database rename file '/oradata/eastdb/east.dbf' to '/home/oracle/eastdb/east.dbf';
alter database rename file '/oradata/eastdb/undotbs2.dbf' to '/home/oracle/eastdb/undotbs2.dbf';

--修改redo文件
alter database rename file '/oradata/eastdb/redo01.log' to '/home/oracle/eastdb/redo01.log';
alter database rename file '/oradata/eastdb/redo02.log' to '/home/oracle/eastdb/redo02.log';
alter database rename file '/oradata/eastdb/redo03.log' to '/home/oracle/eastdb/redo03.log';

--修改temp文件
alter database rename file '/oradata/eastdb/temp01.dbf' to '/home/oracle/eastdb/temp01.dbf';
alter database rename file '/oradata/eastdb/temp02.dbf' to '/home/oracle/eastdb/temp02.dbf';

select open_mode from v$database;
alter system switch logfile;
alter system checkpoint;

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论