oracle数据文件迁移

这篇文章是从网络上获取的,然后根据内容一步步操作,
1、目前的疑问:移动日志文件的时候,为何要先进行切换?
2、move操作后,再进行rename操作的原理
-----------------------------------------
环境: WinXP SP3Oracle10gR2
数据文件,控制文件和日志文件原路径在:"C:ora10gBaseoradataoy",
现在要将它们迁移至“D:D_Oracle_DBF”中。具体操作如下:
 
数据文件迁移:
SQL> select name from v$datafile;
NAME
-----------------------------------------
C:ORA10GBASEORADATAOYSYSTEM01.DBF
C:ORA10GBASEORADATAOYUNDOTBS01.DBF
C:ORA10GBASEORADATAOYSYSAUX01.DBF
C:ORA10GBASEORADATAOYUSERS01.DBF
C:ORA10GBASEORADATAOYEXAMPLE01.DBF
D:D_ORACLE_DBFEXAMPLE02.DBF
D:D_ORACLE_DBFSYSAUX02.DBF
D:D_ORACLE_DBFSYSTEM02.DBF
D:D_ORACLE_DBFUNDOTBS02.DBF
D:D_ORACLE_DBFUSERS02.DBF
已选择10行。
SQL> shutdown
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
 
(以下的$move命令 应该等同于操作系统的剪切粘贴命令)
SQL> $move C:ORA10GBASEORADATAOYSYSTEM01.DBF D:D_ORACLE_DBFSYSTEM01.DBF
SQL> $move C:ORA10GBASEORADATAOYSYSAUX01.DBF D:D_ORACLE_DBFSYSAUX01.DBF
SQL> $move C:ORA10GBASEORADATAOYUNDOTBS01.DBF D:D_ORACLE_DBFUNDOTBS01.DBF
SQL> $move C:ORA10GBASEORADATAOYUSERS01.DBF D:D_ORACLE_DBFUSERS01.DBF
SQL> $move C:ORA10GBASEORADATAOYEXAMPLE01.DBF D:D_ORACLE_DBFEXAMPLE01.DBF
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area  209715200 bytes
Fixed Size                  1248140 bytes
Variable Size              92275828 bytes
Database Buffers          113246208 bytes
Redo Buffers                2945024 bytes
数据库装载完毕。
 
SQL>  alter database
  2   rename file
  3   'C:ORA10GBASEORADATAOYSYSTEM01.DBF',
  4   'C:ORA10GBASEORADATAOYSYSAUX01.DBF',
  5   'C:ORA10GBASEORADATAOYUNDOTBS01.DBF',
  6   'C:ORA10GBASEORADATAOYUSERS01.DBF',
  7   'C:ORA10GBASEORADATAOYEXAMPLE01.DBF'
  8   to
  9   'D:D_ORACLE_DBFSYSTEM01.DBF',
 10   'D:D_ORACLE_DBFSYSAUX01.DBF',
 11   'D:D_ORACLE_DBFUNDOTBS01.DBF',
 12   'D:D_ORACLE_DBFUSERS01.DBF',
 13   'D:D_ORACLE_DBFEXAMPLE01.DBF';
数据库已更改。
 
SQL> alter database open;
数据库已更改。
SQL> select name,status from v$datafile;
NAME                                                         STATUS
------------------------------------------------------------ -------
D:D_ORACLE_DBFSYSTEM01.DBF                                 SYSTEM
D:D_ORACLE_DBFUNDOTBS01.DBF                                ONLINE
D:D_ORACLE_DBFSYSAUX01.DBF                                 ONLINE
D:D_ORACLE_DBFUSERS01.DBF                                  ONLINE
D:D_ORACLE_DBFEXAMPLE01.DBF                                ONLINE
D:D_ORACLE_DBFEXAMPLE02.DBF                                ONLINE
D:D_ORACLE_DBFSYSAUX02.DBF                                 ONLINE
D:D_ORACLE_DBFSYSTEM02.DBF                                 SYSTEM
D:D_ORACLE_DBFUNDOTBS02.DBF                                ONLINE
D:D_ORACLE_DBFUSERS02.DBF                                  ONLINE
已选择10行。
 
日志文件迁移
SQL> select * from v$log;
    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS    FIRST_CHANGE# FIRST_TIME
-------- ------- ---------- ---------- ---------- --- --------- ------------- --------------
       1       1          5   52428800          1 NO  CURRENT          618740 27-4月 -11
       2       1          3   52428800          1 NO  INACTIVE         572830 26-4月 -11
       3       1          4   52428800          1 NO  INACTIVE         598395 27-4月 -11
 
SQL> col type format a10
SQL> col IS_RECOVERY_DEST_FILE format a10
SQL> col member format a50
SQL> select * from v$logfile;
    GROUP# STATUS   TYPE       MEMBER                                   IS_RECOVER
---------- -------- ---------- ---------------------------------------- ----------
########## STALE    ONLINE     C:ORA10GBASEORADATAOYREDO03.LOG      NO
########## STALE    ONLINE     C:ORA10GBASEORADATAOYREDO02.LOG      NO
##########          ONLINE     C:ORA10GBASEORADATAOYREDO01.LOG      NO
 
SQL> alter system switch logfile;
系统已更改。
SQL> shutdown
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> $ move C:ora10gBaseoradataoyREDO01.LOG  D:D_Oracle_DBFREDO01.LOG
SQL> $ move C:ora10gBaseoradataoyREDO02.LOG  D:D_Oracle_DBFREDO02.LOG
SQL> $ move C:ora10gBaseoradataoyREDO03.LOG  D:D_Oracle_DBFREDO03.LOG
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area  209715200 bytes
Fixed Size                  1248140 bytes
Variable Size              92275828 bytes
Database Buffers          113246208 bytes
Redo Buffers                2945024 bytes
数据库装载完毕。
 
SQL> alter database
  2  rename file
  3  'C:ora10gBaseoradataoyREDO01.LOG',
  4  'C:ora10gBaseoradataoyREDO02.LOG',
  5  'C:ora10gBaseoradataoyREDO03.LOG'
  6  to
  7  'D:D_Oracle_DBFREDO01.LOG',
  8  'D:D_Oracle_DBFREDO02.LOG',
  9  'D:D_Oracle_DBFREDO03.LOG';
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> alter system switch logfile;
系统已更改。
 
控制文件迁移
 
 
将数据库SHUTDOWN,然后修改pfile中的控制文件的路径,以pfile文件启动数据库,
然后create spfile from pfile.最后以spfile启动数据库即可。
SQL> create spfile from pfile='D:xxxxpfileinit.ora.2162010162124';
 
-----------------------------
 
此外,其他移动数据文件的方法(在数据库启动归档的情况下,可以开机迁移,还未测试是否正确):
 
移动Oracle数据库表空间文件
 
目的:把oracle表空间文件从一个地方移动到另外一个地方。
 
详细操作步骤:
 
第一、启用介质恢复模式:
A、Shutdown immdiate;
B、Startup mount;
C、Alter database archivelog;
D、Alter database open;
 
第二、卸载表空间:
A、Alter tablespace 表空间名字 offline;(注:如果为非归档模式后面加Drop);
 
第三、在操作系统下移动文件到新位置。
 
第四、告诉表空间数据文件已经移动:
A、Alter database rename file '原文件路径' to '新文件路径';
 
第五、装载表空间:
A、Alter tablespace 表空间名字 online;
 
第六、关闭数据库:
A、Shutdown;
 
第七、启动数据库:
A、Startup force;
 
Oracle数据库表空间文件移动成功。
原文地址:https://www.cnblogs.com/sddychj/p/4724427.html