全部控制檔案丟失後的完全恢復(轉)
全部控制檔案丟失後的完全恢復
分類: 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle控制檔案的損壞或完全丟失的恢復辦法Oracle
- 剪下的檔案還能恢復嗎,恢復剪貼丟失的檔案
- 丟失的隨身碟檔案如何恢復?
- 電腦檔案丟失資料恢復資料恢復
- Sql Server資料庫檔案丟失的恢復方法SQLServer資料庫
- chkdsk 後資料丟失的恢復方法
- DATA GUARD主庫丟失資料檔案的恢復(3)
- DATA GUARD主庫丟失資料檔案的恢復(1)
- DATA GUARD主庫丟失資料檔案的恢復(2)
- 【BBED】丟失歸檔檔案情況下的恢復
- Sqlserver系統資料庫和使用者資料庫日誌檔案全部丟失的恢復SQLServer資料庫
- macOS Big Sur系統如何恢復丟失的資料檔案?Mac
- 存放在電腦中的檔案丟失了怎麼恢復
- win10 ppt檔案丟失怎麼恢復_win10 ppt文件丟失如何找回Win10
- 【北亞資料恢復】MongoDB資料遷移檔案丟失的MongoDB資料恢復案例資料恢復MongoDB
- 【資料庫資料恢復】mdb_catalog.wt檔案丟失的MongoDB資料恢復案例資料庫資料恢復MongoDB
- 【伺服器資料恢復】xfs檔案系統資料丟失的資料恢復案例伺服器資料恢復
- Oracle閃回功能恢復偶然丟失的資料(轉)Oracle
- 2.7.10 恢復丟失或損壞的伺服器引數檔案(SPFILE)伺服器
- 檔案丟失不用怕:超實用的Mac資料恢復軟體!Mac資料恢復
- 【資料庫資料恢復】Sql Server資料庫檔案丟失的資料恢復過程資料庫資料恢復SQLServer
- Oracle Redo丟失恢復方案Oracle
- 檔案替換後怎麼恢復,恢復被覆蓋的檔案
- 伺服器資料丟失了怎麼恢復/分割槽丟失恢復教程伺服器
- dg丟失歸檔,使用rman增量備份恢復
- 與控制檔案有關的恢復
- 【伺服器資料恢復】RAID5崩潰後強制上線導致檔案丟失的資料恢復案例伺服器資料恢復AI
- 新建的表空間(或資料檔案)丟失以及控制檔案丟失,有新建表空間(或資料檔案)前的控制文
- 【虛擬機器資料恢復】Hyper-V虛擬化檔案丟失的資料恢復案例虛擬機資料恢復
- uninstall 後的檔案如何恢復
- 【ASK_ORACLE】Oracle表決磁碟丟失後的恢復方法Oracle
- 剪下後的檔案可以恢復嗎?恢復剪下檔案怎麼辦?
- 【RMAN】如果控制檔案損壞那麼如何恢復?恢復控制檔案的方式有哪幾種?
- 硬碟資料丟失如何恢復?硬碟
- 分割槽丟失資料恢復資料恢復
- 資料庫資料恢復—MongoDB資料庫檔案丟失,啟動報錯的資料恢復案例資料庫資料恢復MongoDB
- 與控制檔案有關的恢復(二)
- 電腦硬碟資料丟失後怎麼恢復?硬碟資料恢復技巧教程硬碟資料恢復
- MongoDB資料庫報錯,資料庫檔案丟失資料恢復案例MongoDB資料庫資料恢復