Oracle 在mount狀態下重新命名資料檔案
Oracle考試中看到一個題目
問:Oracle在mount狀態時,能做哪些動作。
其中就有renaming off datafile;
這個一開始認為Oracle在mount stage,已經載入了control file不能再重新命名資料檔案了。而實際卻恰恰相反,只有到control file被載入後,重新命名資料檔案的改動才會寫入到control file中。犯了一個先後顛倒的錯誤。
重新命名控制檔案,需要注意:在mount階段,首先將資料檔案更名為需要改動的目標名稱(在這裡是test02.dbf),再執行更名命令。
在此之前,我認為Oracle的重新命名命令會自動將物理的資料檔案命名為新的名稱,但是從實驗中可以看到,需要手工去先把物理的資料檔案更名。
以下是一些實驗的步驟:
SQL> alter tablespace fund_table rename datafile 'E:\ORACLE\ORADATA\LYON\TEST01.DBF' to 'E:\ORACLE\ORADATA\LYON\TEST02.DBF';
alter tablespace fund_table rename datafile 'E:\ORACLE\ORADATA\LYON\TEST01.DBF' to 'E:\ORACLE\ORADATA\LYON\TEST02.DBF'
*
ERROR 位於第 1 行:
ORA-01525: 重新命名資料檔案時出錯
ORA-01121: 無法重新命名資料庫檔案 29 - 檔案在使用中或在恢復中
ORA-01110: 資料檔案 29: 'E:\ORACLE\ORADATA\LYON\TEST01.DBF'
SQL> shutdowm immediate;
SP2-0734: 未知的命令開頭 "shutdowm i..." - 忽略了剩餘的行。
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup nomount;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
SQL> alter tablespace fund_table rename datafile 'E:\ORACLE\ORADATA\LYON\TEST01.DBF' to 'E:\ORACLE\ORADATA\LYON\TEST02.DBF';
alter tablespace fund_table rename datafile 'E:\ORACLE\ORADATA\LYON\TEST01.DBF' to 'E:\ORACLE\ORADATA\LYON\TEST02.DBF'
*
ERROR 位於第 1 行:
ORA-01109: ??????
SQL> alter database mount;
資料庫已更改。
SQL> alter tablespace fund_table rename datafile 'E:\ORACLE\ORADATA\LYON\TEST01.DBF' to 'E:\ORACLE\ORADATA\LYON\TEST02.DBF';
alter tablespace fund_table rename datafile 'E:\ORACLE\ORADATA\LYON\TEST01.DBF' to 'E:\ORACLE\ORADATA\LYON\TEST02.DBF'
*
ERROR 位於第 1 行:
ORA-01109: ??????
SQL> alter database rename file 'E:\ORACLE\ORADATA\LYON\TEST01.DBF' to 'E:\ORACLE\ORADATA\LYON\TEST02.DBF';
alter database rename file 'E:\ORACLE\ORADATA\LYON\TEST01.DBF' to 'E:\ORACLE\ORADATA\LYON\TEST02.DBF'
*
ERROR 位於第 1 行:
ORA-01511: ?????/???????
ORA-01141: ??????? 29 ??? - ?????? 'E:\ORACLE\ORADATA\LYON\TEST02.DBF'
ORA-01110: ???? 29: 'E:\ORACLE\ORADATA\LYON\TEST01.DBF'
ORA-27041: ??????
OSD-04002: N^7(4r?*NDO/S-Error: (OS 2) O5M3UR2;5=V86(5DND
SQL> alter database nomount;
alter database nomount
*
ERROR 位於第 1 行:
ORA-02231: ?????? ALTER DATABASE ??
SQL> shutdown immediate;
ORA-01109: ??????
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup nomount U1;
SP2-0714: 無效的 STARTUP 選項組合
SQL> startup mount U1;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
ORA-01504: ????'U1'??? db_name 'orcl'???
SQL> startup mount orcl;
ORA-01081: ????????? ORACLE --- ?????
SQL> alter database mount;
資料庫已更改。
SQL> alter database rename file 'E:\ORACLE\ORADATA\LYON\TEST01.DBF' to 'E:\ORACLE\ORADATA\LYON\TEST02.DBF'
2 ;
alter database rename file 'E:\ORACLE\ORADATA\LYON\TEST01.DBF' to 'E:\ORACLE\ORADATA\LYON\TEST02.DBF'
*
ERROR 位於第 1 行:
ORA-01511: ?????/???????
ORA-01141: ??????? 29 ??? - ?????? 'E:\ORACLE\ORADATA\LYON\TEST02.DBF'
ORA-01110: ???? 29: 'E:\ORACLE\ORADATA\LYON\TEST01.DBF'
ORA-27041: ??????
OSD-04002: N^7(4r?*NDO/S-Error: (OS 2) O5M3UR2;5=V86(5DND
SQL> alter database rename file 'E:\ORACLE\ORADATA\LYON\TEST01.DBF' to 'E:\ORACLE\ORADATA\LYON\TEST02.DBF';
資料庫已更改。
SQL>
最終在最後一個步驟執行成功了。
另外,在mount階段,也可以更改資料庫的歸檔模式:
alter database archivelog/noarchivelog;
但是對於drop user這樣的操作,在mount階段是不能做的。個人分析原因在於mount階段所有v$/dba/user檢視都尚未啟用(只啟用了x$檢視),而user與這些檢視關係密切,所以不能在這個階段做此操作。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12932950/viewspace-611193/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【TABLESPACE】資料庫Mount狀態下調整表空間資料檔案位置及名稱資料庫
- ORACLE 重新命名資料檔案Oracle
- 在open狀態下恢復丟失的資料檔案
- 在open狀態下恢復未備份的資料檔案
- 資料庫啟動在mount狀態,無任何報錯資料庫
- 案例:在open狀態下恢復未備份的資料檔案
- oracle10g data guard(dg)__主庫重新命名資料檔案_在備庫上同步重新命名資料檔案Oracle
- 重新命名資料檔案
- oracle資料庫正常關閉狀態下丟失undo檔案的恢復Oracle資料庫
- 談談Oracle日誌檔案的INVALID狀態(下)Oracle
- 在INDEX 處於UNABLE 狀態下插入資料Index
- oracle資料庫狀態Oracle資料庫
- git重新命名檔案和資料夾Git
- DG備援資料檔案重新命名
- 【TABLESPACE】資料庫Open狀態下調整表空間資料檔案位置及名稱資料庫
- #include 檔案狀態
- data gurad物理備份方式下重新命名資料檔案
- 在Oracle中移動資料檔案Oracle
- 在ORACLE移動資料庫檔案Oracle資料庫
- oracle 12c 新特性之一:線上重新命名資料檔案Oracle
- 重新命名資料檔案和表空間
- oracle 12c R1 可以線上對資料檔案重新命名或者移動資料檔案位置Oracle
- 12c pdb線上移動資料檔案或者重新命名資料檔案
- 12c 聯機狀態移動資料檔案
- oracle資料庫例項狀態Oracle資料庫
- Oracle12C新特性-線上重新命名遷移資料檔案(一)Oracle
- Oracle 11g R2之物理Dataguard 重新命名資料檔案Oracle
- 在歸檔下恢復系統資料檔案
- Oracle資料庫的靜默狀態和掛起狀態Oracle資料庫
- 在ORACLE中移動資料庫檔案在(轉)Oracle資料庫
- 在ORACLE中移動資料庫檔案Oracle資料庫
- Oracle 11g 通過 RMAN 檢查資料檔案、控制檔案、引數檔案的狀態和是否存在壞塊Oracle
- 重新命名與遷移聯機資料檔案
- 如何高效撤銷Git管理的檔案在各種狀態下的更改Git
- 在Oracle中移動資料檔案、控制檔案和日誌檔案Oracle
- Oracle 11g 資料庫恢復-場景1:所有的資料檔案損壞,OPEN狀態Oracle資料庫
- oracle 下最大資料檔案能建立多大Oracle大資料
- Oracle DG資料庫狀態轉換Oracle資料庫