ORCLE文件迁移方法汇总
一、数据文件迁移:
SQL> select name,file# from v$datafile;
NAME FILE# -------------------------------------------------------------------------------- D:\\ORACLE\\10G\\ORCL\\SYSTEM01.DBF 1 D:\\ORACLE\\10G\\ORCL\\UNDOTBS01.DBF 2 D:\\ORACLE\\10G\\ORCL\\SYSAUX01.DBF 3 D:\\ORACLE\\10G\\ORCL\\USERS01.DBF 4 SQL> shutdown immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。
SQL> $move d:\\oracle\\10g\\orcl\\system01.dbf d:\\oracle\\database\\orcl\\system01.dbf SQL> $move d:\\oracle\\10g\\orcl\%undotbs01.dbf d:\\oracle\\database\\orcl\%undotbs01.dbf SQL> $move d:\\oracle\\10g\\orcl\\sysaux01.dbf d:\\oracle\\database\\orcl\\sysaux01.dbf SQL> $move d:\\oracle\\10g\\orcl\%users01.dbf d:\\oracle\\database\\orcl\%users01.dbf SQL> startup mount ORACLE 例程已经启动。
Total System Global Area 167772160 bytes Fixed Size 1247900 bytes Variable Size 92276068 bytes Database Buffers 71303168 bytes Redo Buffers 2945024 bytes 数据库装载完毕。 SQL> alter database 2 rename file
3 'd:\\oracle\\10g\\orcl\\system01.dbf', 4 'd:\\oracle\\10g\\orcl\%undotbs01.dbf', 5 'd:\\oracle\\10g\\orcl\\sysaux01.dbf', 6 'd:\\oracle\\10g\\orcl\%users01.dbf' 7 to
8 'd:\\oracle\\database\\orcl\\system01.dbf', 9 'd:\\oracle\\database\\orcl\%undotbs01.dbf', 10 'd:\\oracle\\database\\orcl\\sysaux01.dbf', 11 'd:\\oracle\\database\\orcl\%users01.dbf';
数据库已更改。
SQL> alter database open ; 数据库已更改。
SQL> select name,status from v$datafile;
NAME STATUS
------------------------------------------ -------
D:\\ORACLE\\DATABASE\\ORCL\\SYSTEM01.DBF SYSTEM D:\\ORACLE\\DATABASE\\ORCL\\UNDOTBS01.DBF ONLINE D:\\ORACLE\\DATABASE\\ORCL\\SYSAUX01.DBF ONLINE D:\\ORACLE\\DATABASE\\ORCL\\USERS01.DBF ONLINE
二、日志文件迁移
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
1 1 2 52428800 1 NO CURRENT 542677 07-11月-06 2 1 0 52428800 1 YES UNUSED 0
3 1 1 52428800 1 YES INACTIVE 534907 07-11月-06
SQL> select * from v$logfile; GROUP# STATUS TYPE ---------- ------- -------
-------------------------------------------------------------------------------- IS_ ---
3 ONLINE
D:\\ORACLE\\10G\\ORCL\\REDO03.LOG NO
2 ONLINE
D:\\ORACLE\\10G\\ORCL\\REDO02.LOG NO
GROUP# STATUS TYPE ---------- ------- ------- MEMBER
-------------------------------------------------------------------------------- IS_ ---
1 ONLINE
D:\\ORACLE\\10G\\ORCL\\REDO01.LOG NO
SQL> alter system switch logfile; 系统已更改。
SQL> shutdown immediate
数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。
SQL> $ move d:\\oracle\\10g\\orcl\\redo01.log d:\\oracle\\database\\orcl\\redo01.log SQL> $ move d:\\oracle\\10g\\orcl\\redo02.log d:\\oracle\\database\\orcl\\redo02.log SQL> $ move d:\\oracle\\10g\\orcl\\redo03.log d:\\oracle\\database\\orcl\\redo03.log SQL> startup mount ORACLE 例程已经启动。
Total System Global Area 167772160 bytes Fixed Size 1247900 bytes Variable Size 96470372 bytes Database Buffers 67108864 bytes Redo Buffers 2945024 bytes 数据库装载完毕。 SQL> alter database 2 rename file
3 'd:\\oracle\\10g\\orcl\\redo01.log', 4 'd:\\oracle\\10g\\orcl\\redo02.log', 5 'd:\\oracle\\10g\\orcl\\redo03.log' 6 to
7 'd:\\oracle\\database\\orcl\\redo01.log', 8 'd:\\oracle\\database\\orcl\\redo02.log', 9 'd:\\oracle\\database\\orcl\\redo03.log'; 数据库已更改。 SQL> alter database open ; 数据库已更改。
SQL> alter system switch logfile; 系统已更改。
SQL> select * from v$logfile; GROUP# STATUS TYPE ---------- ------- ------- MEMBER
-------------------------------------------------------------------------------- IS_ ---
3 ONLINE
D:\\ORACLE\\DATABASE\\ORCL\\REDO03.LOG NO
2 ONLINE
D:\\ORACLE\\DATABASE\\ORCL\\REDO02.LOG NO
GROUP# STATUS TYPE ---------- ------- ------- MEMBER
-------------------------------------------------------------------------------- IS_ ---
1 ONLINE
D:\\ORACLE\\DATABASE\\ORCL\\REDO01.LOG NO
三、控制文件迁移
将数据库SHUTDOWN,然后修改pfile中的控制文件的路径,以pfile文件启动数据库, 然后create spfile from pfile.最后以spfile启动数据库即可。
四、临时表空间文件迁移
先查询用户的缺省临时表空间:
SQL> select username,temporary_tablespace from dba_users;
USERNAME TEMPORARY_TABLESPACE ------------------------------ ------------------------------ SYS TEMP2 SYSTEM TEMP2 OUTLN TEMP2 EYGLE TEMP2 CSMIG TEMP2 TEST TEMP2 REPADMIN TEMP2 ......
13 rows selected.
SQL> select name from v$tempfile;
NAME

