完全恢復之所有資料庫檔案丟失
說明:
作業系統:oracle_linux_5.6_32
資料庫:oracle_10.2.0.1 單例項
故障模擬:
丟失了所有的控制檔案,資料檔案、日誌檔案。
資料庫歸檔已經開啟,歸檔日誌沒有丟失。
演示步驟:
(1)
先對資料庫做一個全備,rman會自動備份控制檔案和spfile。
RMAN> run {
2> allocate channel c1 device type disk;
3> allocate channel c2 device type disk;
4> allocate channel c3 device type disk;
5> allocate channel c4 device type disk;
6> backup database format '/backup/rmanbak/full_2013_9_29_2020%U';
7> }
(2)
檢視要刪除的所有檔案列表:
SQL> select name from v$datafile
2 union
3 select name from v$controlfile
4 union
5 select member from v$logfile;
NAME
-----------------------------------------------------------
/u01/app/oracle/oradata/rac3/control01.ctl
/u01/app/oracle/oradata/rac3/control02.ctl
/u01/app/oracle/oradata/rac3/example01.dbf
/u01/app/oracle/oradata/rac3/redo01.log
/u01/app/oracle/oradata/rac3/redo02.log
/u01/app/oracle/oradata/rac3/redo03.log
/u01/app/oracle/oradata/rac3/sysaux01.dbf
/u01/app/oracle/oradata/rac3/system01.dbf
/u01/app/oracle/oradata/rac3/undotbs01.dbf
/u01/app/oracle/oradata/rac3/users01.dbf
/u01/app/oracle/oradata/rac3/zsx01.dbf
(3)
建立測試表、插入測試資料。
SQL> conn zsx/zsx
SQL> create table test(id number);
SQL> insert into test values(1);
SQL> commit;
(4)
手工切換日誌,是日誌歸檔。
SQL> alter system switch logfile;
System altered.
(5)
強制關閉資料庫
SQL> shutdown abort;
ORACLE instance shut down.
(6)
刪除資料檔案、聯機日誌、控制檔案。
[oracle@rac3 rmanbak]$ cd /u01/app/oracle/oradata/rac3/
[oracle@rac3 rac3]$ ls -al
total 1953812
drwxr-x--- 2 oracle oinstall 4096 Sep 29 17:37 .
drwxr-x--- 3 oracle oinstall 4096 Sep 28 13:24 ..
-rw-r----- 1 oracle oinstall 9748480 Sep 29 18:13 control01.ctl
-rw-r----- 1 oracle oinstall 9748480 Sep 29 18:13 control02.ctl
-rw-r----- 1 oracle oinstall 362422272 Sep 29 18:12 example01.dbf
-rw-r----- 1 oracle oinstall 52429312 Sep 29 18:11 redo01.log
-rw-r----- 1 oracle oinstall 52429312 Sep 29 18:12 redo02.log
-rw-r----- 1 oracle oinstall 52429312 Sep 29 18:11 redo03.log
-rw-r----- 1 oracle oinstall 576724992 Sep 29 18:12 sysaux01.dbf
-rw-r----- 1 oracle oinstall 754982912 Sep 29 18:12 system01.dbf
-rw-r----- 1 oracle oinstall 30416896 Sep 29 15:33 temp01.dbf
-rw-r----- 1 oracle oinstall 99622912 Sep 29 18:12 undotbs01.dbf
-rw-r----- 1 oracle oinstall 5251072 Sep 29 18:12 users01.dbf
-rw-r----- 1 oracle oinstall 20979712 Sep 29 18:12 zsx01.dbf
[oracle@rac3 rac3]$ rm -rf *
(7)
先恢復控制檔案,啟動到nomount;
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 849530880 bytes
Fixed Size 1348244 bytes
Variable Size 511708524 bytes
Database Buffers 331350016 bytes
Redo Buffers 5124096 bytes
RMAN> restore controlfile from '/backup/rmanbak/full_2013_9_29_20200col36fs_1_1';
Starting restore at 29-SEP-13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1 device type=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:07
output file name=/u01/app/oracle/oradata/rac3/control01.ctl
output file name=/u01/app/oracle/oradata/rac3/control02.ctl
Finished restore at 29-SEP-13
(8)
將資料庫啟動到mount狀態:
RMAN> sql 'alter database mount';
sql statement: alter database mount
released channel: ORA_DISK_1
檢視oradata下的控制檔案
[root@rac3 rmanbak]# cd /u01/app/oracle/oradata/rac3/
[root@rac3 rac3]# ll
total 19072
-rw-r----- 1 oracle oinstall 9748480 Sep 29 18:30 control01.ctl
-rw-r----- 1 oracle oinstall 9748480 Sep 29 18:30 control02.ctl
(9)
開始恢復資料檔案
RMAN> restore database;
......
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:01:25
Finished restore at 29-SEP-13
RMAN> recover database;
......
media recovery complete, elapsed time: 00:00:16
Finished recover at 29-SEP-13
(10)
開啟資料庫,以resetlogs的方式
SQL> alter database open resetlogs;
Database altered.
(11)
查詢測試資料是否丟失:
SQL> conn zsx/zsx
Connected.
SQL> select * from s;
ID
----------
1
注意:
表存在,資料也存在,證明資料庫是完全恢復了,並沒有丟失資料。
作業系統:oracle_linux_5.6_32
資料庫:oracle_10.2.0.1 單例項
故障模擬:
丟失了所有的控制檔案,資料檔案、日誌檔案。
資料庫歸檔已經開啟,歸檔日誌沒有丟失。
演示步驟:
(1)
先對資料庫做一個全備,rman會自動備份控制檔案和spfile。
RMAN> run {
2> allocate channel c1 device type disk;
3> allocate channel c2 device type disk;
4> allocate channel c3 device type disk;
5> allocate channel c4 device type disk;
6> backup database format '/backup/rmanbak/full_2013_9_29_2020%U';
7> }
(2)
檢視要刪除的所有檔案列表:
SQL> select name from v$datafile
2 union
3 select name from v$controlfile
4 union
5 select member from v$logfile;
NAME
-----------------------------------------------------------
/u01/app/oracle/oradata/rac3/control01.ctl
/u01/app/oracle/oradata/rac3/control02.ctl
/u01/app/oracle/oradata/rac3/example01.dbf
/u01/app/oracle/oradata/rac3/redo01.log
/u01/app/oracle/oradata/rac3/redo02.log
/u01/app/oracle/oradata/rac3/redo03.log
/u01/app/oracle/oradata/rac3/sysaux01.dbf
/u01/app/oracle/oradata/rac3/system01.dbf
/u01/app/oracle/oradata/rac3/undotbs01.dbf
/u01/app/oracle/oradata/rac3/users01.dbf
/u01/app/oracle/oradata/rac3/zsx01.dbf
(3)
建立測試表、插入測試資料。
SQL> conn zsx/zsx
SQL> create table test(id number);
SQL> insert into test values(1);
SQL> commit;
(4)
手工切換日誌,是日誌歸檔。
SQL> alter system switch logfile;
System altered.
(5)
強制關閉資料庫
SQL> shutdown abort;
ORACLE instance shut down.
(6)
刪除資料檔案、聯機日誌、控制檔案。
[oracle@rac3 rmanbak]$ cd /u01/app/oracle/oradata/rac3/
[oracle@rac3 rac3]$ ls -al
total 1953812
drwxr-x--- 2 oracle oinstall 4096 Sep 29 17:37 .
drwxr-x--- 3 oracle oinstall 4096 Sep 28 13:24 ..
-rw-r----- 1 oracle oinstall 9748480 Sep 29 18:13 control01.ctl
-rw-r----- 1 oracle oinstall 9748480 Sep 29 18:13 control02.ctl
-rw-r----- 1 oracle oinstall 362422272 Sep 29 18:12 example01.dbf
-rw-r----- 1 oracle oinstall 52429312 Sep 29 18:11 redo01.log
-rw-r----- 1 oracle oinstall 52429312 Sep 29 18:12 redo02.log
-rw-r----- 1 oracle oinstall 52429312 Sep 29 18:11 redo03.log
-rw-r----- 1 oracle oinstall 576724992 Sep 29 18:12 sysaux01.dbf
-rw-r----- 1 oracle oinstall 754982912 Sep 29 18:12 system01.dbf
-rw-r----- 1 oracle oinstall 30416896 Sep 29 15:33 temp01.dbf
-rw-r----- 1 oracle oinstall 99622912 Sep 29 18:12 undotbs01.dbf
-rw-r----- 1 oracle oinstall 5251072 Sep 29 18:12 users01.dbf
-rw-r----- 1 oracle oinstall 20979712 Sep 29 18:12 zsx01.dbf
[oracle@rac3 rac3]$ rm -rf *
(7)
先恢復控制檔案,啟動到nomount;
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 849530880 bytes
Fixed Size 1348244 bytes
Variable Size 511708524 bytes
Database Buffers 331350016 bytes
Redo Buffers 5124096 bytes
RMAN> restore controlfile from '/backup/rmanbak/full_2013_9_29_20200col36fs_1_1';
Starting restore at 29-SEP-13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1 device type=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:07
output file name=/u01/app/oracle/oradata/rac3/control01.ctl
output file name=/u01/app/oracle/oradata/rac3/control02.ctl
Finished restore at 29-SEP-13
(8)
將資料庫啟動到mount狀態:
RMAN> sql 'alter database mount';
sql statement: alter database mount
released channel: ORA_DISK_1
檢視oradata下的控制檔案
[root@rac3 rmanbak]# cd /u01/app/oracle/oradata/rac3/
[root@rac3 rac3]# ll
total 19072
-rw-r----- 1 oracle oinstall 9748480 Sep 29 18:30 control01.ctl
-rw-r----- 1 oracle oinstall 9748480 Sep 29 18:30 control02.ctl
(9)
開始恢復資料檔案
RMAN> restore database;
......
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:01:25
Finished restore at 29-SEP-13
RMAN> recover database;
......
media recovery complete, elapsed time: 00:00:16
Finished recover at 29-SEP-13
(10)
開啟資料庫,以resetlogs的方式
SQL> alter database open resetlogs;
Database altered.
(11)
查詢測試資料是否丟失:
SQL> conn zsx/zsx
Connected.
SQL> select * from s;
ID
----------
1
注意:
表存在,資料也存在,證明資料庫是完全恢復了,並沒有丟失資料。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29107230/viewspace-1062582/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Sql Server資料庫檔案丟失的恢復方法SQLServer資料庫
- 電腦檔案丟失資料恢復資料恢復
- 【資料庫資料恢復】Sql Server資料庫檔案丟失的資料恢復過程資料庫資料恢復SQLServer
- MongoDB資料庫報錯,資料庫檔案丟失資料恢復案例MongoDB資料庫資料恢復
- DATA GUARD主庫丟失資料檔案的恢復(3)
- DATA GUARD主庫丟失資料檔案的恢復(1)
- DATA GUARD主庫丟失資料檔案的恢復(2)
- 【資料庫資料恢復】mdb_catalog.wt檔案丟失的MongoDB資料恢復案例資料庫資料恢復MongoDB
- 資料庫資料恢復—MongoDB資料庫檔案丟失,啟動報錯的資料恢復案例資料庫資料恢復MongoDB
- 【北亞資料恢復】MongoDB資料遷移檔案丟失的MongoDB資料恢復案例資料恢復MongoDB
- 【伺服器資料恢復】xfs檔案系統資料丟失的資料恢復案例伺服器資料恢復
- 寶塔資料庫恢復 mysql資料庫丟失恢復 mysql資料庫刪除庫恢復 寶塔mysql資料庫恢復資料庫MySql
- Omni Recover for Mac如何恢復所有丟失的iPhone資料MaciPhone
- oracle控制檔案的損壞或完全丟失的恢復辦法Oracle
- 伺服器資料恢復案例之RAID資訊丟失資料恢復伺服器資料恢復AI
- macOS Big Sur系統如何恢復丟失的資料檔案?Mac
- Sqlserver系統資料庫和使用者資料庫日誌檔案全部丟失的恢復SQLServer資料庫
- 硬碟資料丟失如何恢復?硬碟
- 分割槽丟失資料恢復資料恢復
- 【資料庫資料恢復】LINUX EXT3檔案系統下ORACLE資料庫誤操作導致資料丟失的資料恢復案例資料庫資料恢復LinuxOracle
- 剪下的檔案還能恢復嗎,恢復剪貼丟失的檔案
- 【資料庫資料恢復】斷電導致Oracle資料庫資料丟失的資料恢復案例資料庫資料恢復Oracle
- 丟失的隨身碟檔案如何恢復?
- 【虛擬機器資料恢復】Hyper-V虛擬化檔案丟失的資料恢復案例虛擬機資料恢復
- 伺服器資料丟失了怎麼恢復/分割槽丟失恢復教程伺服器
- 伺服器儲存金蝶資料庫丟失恢復伺服器資料庫
- 檔案丟失不用怕:超實用的Mac資料恢復軟體!Mac資料恢復
- 【伺服器資料恢復】SAN LUN對映出錯導致檔案系統資料丟失的資料恢復案例伺服器資料恢復
- 【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程資料庫資料恢復
- chkdsk 後資料丟失的恢復方法
- 伺服器RAID資料丟失恢復伺服器AI
- OMV資料恢復NAS陣列丟失資料恢復陣列
- 如何恢復伺服器資料丟失伺服器
- 伺服器資料恢復-誤操作導致mysql資料庫資料丟失的資料恢復案例伺服器資料恢復MySql資料庫
- 【資料庫資料恢復】MongoDB資料庫檔案損壞的資料恢復案例資料庫資料恢復MongoDB
- 伺服器資料恢復—重灌系統導致XFS檔案系統分割槽丟失的資料恢復案例伺服器資料恢復
- 【Vsan資料恢復】斷電導致Vsan分散式儲存虛擬磁碟檔案丟失的資料恢復案例資料恢復分散式
- 【伺服器資料恢復】虛擬機器檔案丟失導致Hyper-V癱瘓的資料恢復伺服器資料恢復虛擬機
- 【北亞資料恢復】vmfs還原快照操作導致SqlServer資料庫資料丟失的資料恢復資料恢復SQLServer資料庫