oracle 在線rename數據文件
今天給表空間加數據文件的時候,馬虎大意多加了一個空格,為了避免之后備份等問題。現在準備在
線rename數據文件。先在測試庫上進行試驗
SQL> create tablespace test datafile '/home/oracle/tst.dbf ' size 1m;
Tablespace created.
確認是否為歸檔模式
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /archive/archive1
Oldest online log sequence 109
Next log sequence to archive 111
Current log sequence 111
如果不是歸檔模式,需要將數據庫啟到mount 狀態,將數據庫更改成歸檔模式
SQL>alter database archivelog;
此時可能碰到 ora-00265錯誤!解決辦法是將數據庫已限制模式啟動,再重啟到mount狀態
SQL>startup restrict;
當數據庫處于歸檔模式的時候,便可進行在線rename 操作:
1查詢datafile 的文件號
SQL> select file_id,file_name from dba_data_files where tablespace_name='TEST';
FILE_ID FILE_NAME
---------- --------------------------------------------------
13 /home/oracle/tst.dbf
2.將數據文件offline
SQL> alter database datafile 13 offline;
Database altered
3.操作系統中將文件名稱修改:
SQL>host mv '/home/oracle/tst.dbf ' /home/oracle/tst.dbf
4rename數據文件
SQL> alter database rename file '/home/oracle/tst.dbf ' to '/home/oracle/tst.dbf';
Database altered.
5.恢復數據文件并online
SQL> recover datafile 13;
Media recovery complete.
SQL> alter database datafile 13 online;
Database altered
6、查詢數據文件狀態
SQL> select file_id,file_name,status from dba_data_files where tablespace_name='TEST';
FILE_ID FILE_NAME STATUS
---------- -------------------------------------------------- ------------------
13 /home/oracle/tst.dbf AVAILABLE