ORACLE 10g将数据文件,日志文件和控制文件迁移到不同的路径
数据文件,控制文件和日志文件原路径在:"d:\oracle\10g\orcl",现在要将它们迁移至“d:\oracle\database\orcl”中。具体操作截图如下:
数据文件迁移:
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
NAME
--------------------------------------------------------------------------------
FILE#
----------
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.db
f
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
2 ;
数据库已更改。
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
NAME
------------------------------------------
STATUS
-------
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
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
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
2 ;
数据库已更改。
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启动数据库即可。
ORA-01078 & LRM-00109
错误信息:
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/opt/oracle/products/10.1.0.3/db_1/dbs/initrawdb.ora'
解决办法:
cp $ORACLE_BASE/admin/$ORACLE_SID/pfile/init.ora /opt/oracle/products/10.1.0.3/db_1/dbs/initrawdb.ora
注:Oracle在启动过程中,需要读取参数文件(pfile/spfile)来创建实例.Oracle在启动过程中,寻找参数文件的顺序为:spfile<sid>.ora,spfile.ora,init<sid>.ora.