更改ORACLE資料檔名字的方法

anycall2010發表於2008-08-26

在論壇上看到一個經常遇到的問題,移動資料檔案,收錄一下,以後用得到:

有兩種方法可以更改ORACLE資料檔案的名字,聯機方法與離線方法。

一:離線(可以移動任何表空間中的資料檔案、日誌檔案,命令為alter database rename file)
Because the SYSTEM tablespace cannot be taken offline, you must use this method to move data files in the SYSTEM tablespace.
具體步驟為
1:$sqlplus “/ as sysdba”
SQL>shutdown

2:$mv or move  (使用作業系統命令改名字)

3:$sqlplus “/ as sysdba”
SQL>startup mount
SQL>alter database rename file 'xxxxx' to 'xxxxx'
(注意在alter open之前不要退出)

4:SQL>alter database open;

二:聯機(不可移動system表空間,回滾段和臨時表空間中的資料檔案,命令為alter tablespace )
The following alter tablespace command is applied only to data files in a non-SYSTEM tablespace that does not contain active rollback or temporary segments:
具體步驟為:
1:$sqlplus “/ as sysdba”;
SQL>alter tablespace xxxx offline(如果非歸檔加drop);

2:$mv xxxxx xxxxx  (用os命令移動資料檔案)

3:SQL>alter tablespace xxxx rename datafile 'xxxx' to 'xxxxx';

4:SQL>alter tablespace xxxx online;

三:表空間OFFLINE和ONLINE可以考慮是否是歸檔模式,可是,移動資料檔案 ,一定是在歸檔模式下進行:

例如:

1、ALTER DATABASE DATAFILE '/oracle/test/BULLETIN_INFO.dbf' OFFLINE;(歸檔模式)

2、SQL> ALTER DATABASE DATAFILE '/oracle/test/BULLETIN_INFO.dbf' OFFLINE;
ALTER DATABASE DATAFILE '/oracle/test/BULLETIN_INFO.dbf' OFFLINE
*
第 1 行出現錯誤:
ORA-01145: offline immediate disallowed unless media recovery enabled
ALTER DATABASE RENAME FILE '/oracle/test/BULLETIN_INFO.dbf'TO '/oracle/bulletin.dbf';
(非歸檔模式)
3、SQL> conn sys/oracle@dg1 as sysdba
已連線。
SQL> ALTER DATABASE DATAFILE '/oracle/test/BULLETIN_INFO.dbf' OFFLINE;

資料庫已更改。

SQL> ALTER DATABASE RENAME FILE '/oracle/test/BULLETIN_INFO.dbf'TO '/oracle/bull
etin.dbf';

資料庫已更改。

歸檔模式下移動一個資料檔案!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8334342/viewspace-434745/,如需轉載,請註明出處,否則將追究法律責任。

相關文章