全部控制檔案丟失後的完全恢復(轉)
全部控制檔案丟失後的完全恢復
分類: ORACLE |
如果資料庫控制檔案做過映象,比如一個資料庫有3個控制檔案,丟失一個控制檔案的恢復非常的容易,如果所有控制檔案的丟失,那麼恢復起來就要相對的麻煩一些。
如果注意觀察下面的例子你會發現,即使沒有控制檔案的備份也是可以把資料庫恢復的。
當然,最好不要把自己置於某種複雜和未知的環境,對資料庫做控制檔案的備份是一個很容易的事情。
我們這裡通過使用者管理的方法來建立控制檔案的備份:
1.生成重建控制檔案和修復資料庫的指令碼,指令碼會放在$ORACLE_HOME/admin/$ORACLE_SID/udump路徑下,其中sid是資料庫例項名。
alter database backup controlfile to trace;
2.生成控制檔案的映象拷貝
alter database backup controlfile to '/home/oracle/c.bak'
----引號部分是目錄和備份檔名
SQL> create table demo (x number,y number);
表已建立。
SQL> insert into demo values(1,100);
已建立 1 行。
SQL> insert into demo values(2,200);
已建立 1 行。
SQL> commit;
提交完成。
SQL> select * from demo;
X
Y
---------- ----------
1 100
2 200
SQL> conn / as sysdba
SQL> shutdown immediate
在這個時候,刪掉所有的控制檔案!!
$ oracle@model /oradata/test> ls
control01.ctl control03.ctl redo01.log redo03.log
system01.dbf undotbs01.dbf
control02.ctl example01.dbf redo02.log sysaux01.dbf
temp01.dbf users01.dbf
$ oracle@model /oradata/test> rm -rf *.ctl
$ oracle@model /oradata/test> ls
example01.dbf redo02.log sysaux01.dbf temp01.dbf
users01.dbf
redo01.log redo03.log system01.dbf
undotbs01.dbf
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 293601280 bytes
Fixed Size
1248600 bytes
Variable Size 100663976
bytes
Database Buffers 184549376 bytes
Redo Buffers 7139328
bytes
ORA-00205: ?????????, ??????, ???????
SQL> select status from v$instance;
STATUS
---------------------
STARTED
從trace檔案中獲得以下的SQL語句,並複製建立:
-rw-r----- 1 oracle oinstall 6382 May 18 17:43 test_ora_4912.trc
我們之前備份的檔案生成的是:test_ora_4912.trc
SQL> CREATE CONTROLFILE REUSE DATABASE "TEST" NORESETLOGS
ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/oradata/test/redo01.log' SIZE 50M,
GROUP 2 '/oradata/test/redo02.log' SIZE 50M,
GROUP 3 '/oradata/test/redo03.log' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'/oradata/test/system01.dbf',
'/oradata/test/undotbs01.dbf',
'/oradata/test/sysaux01.dbf',
'/oradata/test/users01.dbf',
'/oradata/test/example01.dbf',
'/home/oracle/mai_dbf/for_mai01.dbf',
'/home/oracle/mai_dbf/for_mai02.dbf',
'/home/oracle/mai_dbf/ts_test01.dbf'
CHARACTER SET ZHS16GBK;
SQL> select status from v$instance;
STATUS
------------
MOUNTED
SQL> recover database;
ORA-00283: ??????????
ORA-00264: ?????
資料庫不需要恢復的操作,所以報了上邊的錯誤。
SQL> alter database open;
由於我們重建了控制檔案,所以原來oracle資料庫的臨時表空間已經不能夠被使用了,在這裡我們需要對它進行重建:
SQL> select file_name from dba_temp_files;
no rows selected
SQL> alter tablespace temp add tempfile '/oradata/test/temp01.dbf' size
30M reuse;
SQL> select file_name from dba_temp_files;
FILE_NAME
---------------------------
/oradata/test/temp01.dbf
SQL> select * from demo;
X
Y
---------- ----------
1 100
2 200
測試完成!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24570973/viewspace-753762/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 控制檔案全部丟失恢復
- 控制檔案全部丟失的恢復
- 當前控制檔案全部丟失恢復
- 恢復案例:無歸檔,掉電,控制檔案全部丟失恢復
- 丟失全部控制檔案後從RMAN備份集中恢復示例
- 恢復之丟失全部控制檔案以及備份中的控制檔案
- 恢復案例:無歸檔,丟失全部控制檔案、日誌檔案恢復案例
- 控制檔案丟失恢復
- 【控制檔案丟失恢復】
- 恢復丟失的控制檔案
- RMAN恢復案例:丟失全部資料檔案恢復
- 控制檔案丟失恢復(二)
- 控制檔案部分丟失的恢復
- 控制檔案丟失的RMAN恢復
- RMAN恢復案例:無恢復目錄,丟失全部資料檔案、控制檔案、日誌檔案恢復
- RMAN完全恢復丟失的資料檔案
- 恢復測試:擁有當時的全部歸檔,控制檔案,恢復丟失的資料檔案。
- oracle控制檔案的損壞或完全丟失的恢復辦法Oracle
- 恢復案例:歸檔模式下丟失全部資料檔案的恢復模式
- 開啟 控制檔案自動備份下,引數檔案、控制檔案全部丟失恢復
- 控制檔案全部丟失,無備份,通過異機trace恢復
- 【備份恢復】所有控制檔案丟失後 利用trace中的控制檔案備份執行恢復
- 完全恢復之所有資料庫檔案丟失資料庫
- 沒有自動備份的情況下控制檔案全部丟失的恢復
- 模擬控制檔案丟失進行恢復。
- 控制檔案重建後的不完全恢復
- oracle丟失日誌檔案的恢復( 轉)Oracle
- 無備份丟失部分資料檔案和控制檔案恢復 [轉]
- 【備份恢復】 丟失一個控制檔案 之恢復操作
- 引數檔案控制檔案和資料檔案丟失的恢復
- 只有rman備份集,控制檔案丟失的恢復
- rman恢復--丟失控制檔案的恢復
- 【恢復】Redo日誌檔案丟失的恢復
- 資料檔案丟失的恢復
- Oracle Password檔案丟失的恢復Oracle
- 非歸檔無備份下控制檔案丟失的恢復
- 控制檔案丟失恢復例項(2) - 控制檔案備份後物理結構未變化
- 丟失一個控制檔案並恢復資料庫資料庫