成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle數據庫中各種類型的文件損壞與修復過程詳解

數據庫 Oracle
本文我們介紹了10中Oracle文件的損壞及恢復的過程,幾乎涵蓋了Oracle數據庫中所有類型文件的損壞與恢復的方法,希望能夠對您有所幫助。

Oracle數據庫的文件有哪些種類呢?這些文件在什么情況下容易被損壞呢?損壞以后又該怎么樣去修復呢?本文就介紹了這些內容,包括了10中Oracle文件的損壞與修復的過程,這10種文件幾乎涵蓋了Oracle數據庫中所有類型的文件,接下來就讓我們一起來了解一下這10種文件的損壞與修復的過程吧。

一、數據庫服務器基本情況

OS:RHEL 3

CPU:4個Intel(R) Xeon(TM) MP CPU 2.70GHz

Mem:8G

Swap:16G

Disk:120G

Oracle Database 10g Enterprise Edition Release 10.1.0.3.0

二、備份方式

數據庫以archive模式運行,RMAN多級增量備份。策略如下:

設置控制文件自動備份。

每三個月做一個數據庫的全備份(包括所有得數據庫和只讀表空間),并備份歸檔日志。

每一個月做一次零級備份(不包含只讀表空間),并備份歸檔日志。

每周做一次一級備份,并備份歸檔日志。

每天做一次二級備份,并備份歸檔日志。

三、恢復案例

所有恢復的前提:已經做過數據庫全備份(包括歸檔日志),控制文件和spfile自動備份。

1.損壞一個數據文件

(1)故障模擬

刪除數據文件:rm /u02/oradata/dbnms/users01.dbf

關閉數據庫:shutdown immediate;

 

  1. ORA-01116: error in opening database file 4   
  2.  
  3. ORA-01110: data file 4: '/u02/oradata/dbnms/users01.dbf'   
  4.  
  5. ORA-27041: unable to open file   
  6.  
  7. Linux Error: 2: No such file or directory   
  8.  
  9. Additional information: 3  

 

強行關閉:sutdown abort;

啟動數據庫:startup;

 

  1. ORA-01157: cannot identify/lock data file 4 - see DBWR trace file   
  2.  
  3. ORA-01110: data file 4: '/u02/oradata/dbnms/users01.dbf'  

 

(2)恢復步驟

 

  1. rman target sys@dbnms catalog rmanuser@cata   
  2.  
  3. run{   
  4.  
  5. allocate channel c1 type disk;   
  6.  
  7. restore datafile 4;   
  8.  
  9. recover datafile 4;   
  10.  
  11. sql 'alter database datafile 4 online';   
  12.  
  13. sql 'alter database open';   
  14.  
  15. release channel c1;   
  16.  
  17. }   
  18.  
  19.  
  20. sqlplus sys as sysdba   
  21.  
  22. select instance_name,status from v$instance;   
  23.  
  24. INSTANCE_NAME STATUS   
  25.  
  26. ---------------- ------------   
  27.  
  28. dbnms OPEN  

 

恢復成功。

2.損壞全部數據文件

(1)故障模擬

刪除數據文件:rm /u02/oradata/dbnms/*.dbf

強行關閉:sutdown abort;

啟動數據庫:startup;

 

  1. ORA-01157: cannot identify/lock data file 1 - see DBWR trace file   
  2.  
  3. ORA-01110: data file 1: '/u02/oradata/dbnms/system01.dbf'  

 

(2)恢復步驟

 

  1. rman target sys@dbnms catalog rmanuser@cata   
  2.  
  3. run{   
  4.  
  5. allocate channel c1 type disk;   
  6.  
  7. restore database;   
  8.  
  9. recover database;   
  10.  
  11. sql 'alter database open';   
  12.  
  13. release channel c1;   
  14.  
  15. }   
  16.  
  17. sqlplus sys as sysdba   
  18.  
  19. select instance_name,status from v$instance;   
  20.  
  21. INSTANCE_NAME STATUS   
  22.  
  23. ---------------- ------------   
  24.  
  25. dbnms OPEN 

 

恢復臨時文件:

 

  1. alter database tempfile '/u02/oradata/dbnms/temp01.dbf' drop;   
  2.  
  3. alter tablespace temp add tempfile '/u02/oradata/dbnms/temp01.dbf' size 50M autoextend on next 5M maxsize unlimited;  

 

恢復成功。

3.損壞非當前聯機日志成員

(1)故障模擬

刪除日志文件:rm /u02/oradata/dbnms/redo01.log

關閉數據庫:shutdown immediate;

啟動數據庫:startup;

 

  1. select * from v$logfile;   
  2.  
  3. GROUP# STATUS TYPE MEMBER IS_   
  4.  
  5. ---------- ------- ------- ------------------------------ ---   
  6.  
  7. 3 ONLINE /u02/oradata/dbnms/redo03.log NO   
  8.  
  9. 2 STALE ONLINE /u02/oradata/dbnms/redo02.log NO   
  10.  
  11. 1 INVALID ONLINE /u02/oradata/dbnms/redo01.log NO   
  12.  
  13. 1 STALE ONLINE /u02/oradata/dbnms/redo11.log NO   
  14.  
  15. 1 STALE ONLINE /u02/oradata/dbnms/redo21.log NO   
  16.  
  17. 2 STALE ONLINE /u02/oradata/dbnms/redo12.log NO   
  18.  
  19. 3 ONLINE /u02/oradata/dbnms/redo13.log NO   
  20.  
  21. 2 STALE ONLINE /u02/oradata/dbnms/redo22.log NO   
  22.  
  23. 3 ONLINE /u02/oradata/dbnms/redo23.log NO   
  24.  
  25. 4 ONLINE /u02/oradata/dbnms/redo31.log NO   
  26.  
  27. 4 ONLINE /u02/oradata/dbnms/redo32.log NO   
  28.  
  29. GROUP# STATUS TYPE MEMBER IS_   
  30.  
  31. ---------- ------- ------- ------------------------------ ---   
  32.  
  33. 4 ONLINE /u02/oradata/dbnms/redo33.log NO 

 

(2)恢復步驟

 

  1. alter database drop logfile member '/u02/oradata/dbnms/redo01.log';   
  2.  
  3. alter database add logfile member '/u02/oradata/dbnms/redo01.log' to group 1;  

 

恢復成功.

4.損壞非當前聯機日志組

(1)故障模擬

刪除日志文件組1的所有文件:

 

  1. rm /u02/oradata/dbnms/redo01.log   
  2.  
  3. rm /u02/oradata/dbnms/redo11.log   
  4.  
  5. rm /u02/oradata/dbnms/redo21.log  

 

關閉數據庫:shutdown immediate;

啟動數據庫:startup;

 

  1. Database mounted.   
  2.  
  3. ORA-00313: open failed for members of log group 1 of thread 1   
  4.  
  5. ORA-00312: online log 1 thread 1: '/u02/oradata/dbnms/redo11.log'   
  6.  
  7. ORA-00312: online log 1 thread 1: '/u02/oradata/dbnms/redo21.log'   
  8.  
  9. ORA-00312: online log 1 thread 1: '/u02/oradata/dbnms/redo01.log'  

 

(2)恢復步驟

 

  1. alter database clear logfile group 1;  

 

如果該日志組還沒有歸檔,則用:

 

  1. alter database clear unarchived logfile group 1;  

 

打開數據庫:

 

  1. alter database open;  

 

恢復成功。

#p#

5.損壞全部聯機日志

(1)故障模擬

刪除日志文件:rm /u02/oradata/dbnms/*.log

關閉數據庫:shutdown immediate;

啟動數據庫:startup;

 

  1. Database mounted.   
  2.  
  3. ORA-00313: open failed for members of log group 1 of thread 1   
  4.  
  5. ORA-00312: online log 1 thread 1: '/u02/oradata/dbnms/redo11.log'   
  6.  
  7. ORA-00312: online log 1 thread 1: '/u02/oradata/dbnms/redo21.log'   
  8.  
  9. ORA-00312: online log 1 thread 1: '/u02/oradata/dbnms/redo01.log'  

 

(2)恢復步驟

 

  1. shutdown immediate;   
  2.  
  3. create pfile from spfile;   
  4.  
  5. cd $ORACLE_HOME/dbs   
  6.  
  7. vi initdbnms.ora  

 

加一個參數:_allow_resetlogs_corruption=true

 

  1. create spfile from pfile;   
  2.  
  3. startup;   
  4.  
  5. Database mounted.   
  6.  
  7. ORA-00313: open failed for members of log group 1 of thread 1   
  8.  
  9. ORA-00312: online log 1 thread 1: '/u02/oradata/dbnms/redo11.log'   
  10.  
  11. ORA-00312: online log 1 thread 1: '/u02/oradata/dbnms/redo21.log'   
  12.  
  13. ORA-00312: online log 1 thread 1: '/u02/oradata/dbnms/redo01.log'   
  14.  
  15. recover database until cancel;   
  16.  
  17. alter database open resetlogs;  

 

同步catalog:

 

  1. rman target sys@dbnms catalog rmanuser@cata   
  2.  
  3. reset database;   
  4.  
  5. new incarnation of database registered in recovery catalog   
  6.  
  7. starting full resync of recovery catalog   
  8.  
  9. full resync complete  

 

做一個full備份:

 

  1. /home/oracle/dbbat/backup_full.sh 

 

恢復成功

6.損壞一個控制文件

(1)故障模擬

刪除控制文件:rm /u02/oradata/dbnms/control01.ctl

關閉數據庫:shutdown immediate;

 

  1. ORA-00210: cannot open the specified controlfile   
  2.  
  3. ORA-00202: controlfile: '/u02/oradata/dbnms/control01.ctl'   
  4.  
  5. ORA-27041: unable to open file   
  6.  
  7. Linux Error: 2: No such file or directory   
  8.  
  9. Additional information: 3  

 

(2)恢復步驟

拷貝一個好的控制文件:

 

  1. cp control02.ctl control01.ctl   
  2.  
  3. shutdown immediate;   
  4.  
  5. startup;   
  6.  
  7. Database mounted.   
  8.  
  9. ORA-01122: database file 1 failed verification check   
  10.  
  11. ORA-01110: data file 1: '/u02/oradata/dbnms/system01.dbf'   
  12.  
  13. ORA-01207: file is more recent than controlfile - old controlfile   
  14.  
  15. rman target sys@dbnms catalog rmanuser@cata   
  16.  
  17. run{   
  18.  
  19. allocate channel c1 type disk;   
  20.  
  21. restore database;   
  22.  
  23. recover database;   
  24.  
  25. sql 'alter database open';   
  26.  
  27. release channel c1;   
  28.  
  29. }   
  30.  
  31. RMAN-00571: ===========================================================   
  32.  
  33. RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============   
  34.  
  35. RMAN-00571: ===========================================================   
  36.  
  37. RMAN-03009: failure of sql command on default channel at 09/08/2005 17:29:04   
  38.  
  39. RMAN-11003: failure during parse/execution of SQL statement: alter database open   
  40.  
  41. ORA-00322: log 3 of thread 1 is not current copy   
  42.  
  43. ORA-00312: online log 3 thread 1: '/u02/oradata/dbnms/redo03.log'   
  44.  
  45. ORA-00312: online log 3 thread 1: '/u02/oradata/dbnms/redo13.log'   
  46.  
  47. ORA-00312: online log 3 thread 1: '/u02/oradata/dbnms/redo23.log'   
  48.  
  49. alter database clear unarchived logfile group 3;   
  50.  
  51. alter database open;  

 

恢復成功。

7.損壞全部控制文件

(1)故障模擬

刪除控制文件:rm /u02/oradata/dbnms/control01.ctl

關閉數據庫:shutdown immediate;

 

  1. ORA-00210: cannot open the specified controlfile   
  2.  
  3. ORA-00202: controlfile: '/u02/oradata/dbnms/control01.ctl'   
  4.  
  5. ORA-27041: unable to open file   
  6.  
  7. Linux Error: 2: No such file or directory   
  8.  
  9. Additional information: 3  

 

(2)恢復步驟

 

  1. shutdown abort;   
  2.  
  3. startup nomount;   
  4.  
  5. rman target sys catalog rmanuser@cata   
  6.  
  7. run{   
  8.  
  9. allocate channel c1 type disk;   
  10.  
  11. restore controlfile;   
  12.  
  13. restore database;   
  14.  
  15. sql 'alter database mount';   
  16.  
  17. recover database;   
  18.  
  19. sql 'alter database open resetlogs';   
  20.  
  21. release channel c1;   
  22.  
  23. }   
  24.  
  25. RMAN-00571: ===========================================================   
  26.  
  27. RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============   
  28.  
  29. RMAN-00571: ===========================================================   
  30.  
  31. RMAN-03002: failure of recover command at 09/08/2005 17:43:31   
  32.  
  33. RMAN-06054: media recovery requesting unknown log: thread 1 seq 9 lowscn 670233   
  34.  
  35. alter database open resetlogs;  

 

做一個full備份:

 

  1. /home/oracle/dbbat/backup_full.sh 

 

恢復成功

8.損壞臨時數據文件

(1)故障模擬

刪除臨時數據文件:rm /u02/oradata/dbnms/temp01.dbf

關閉數據庫:shutdown immediate;

啟動數據庫:startup;

(2)恢復步驟

 

  1. alter database tempfile '/u02/oradata/dbnms/temp01.dbf' drop;   
  2.  
  3. ERROR at line 1:   
  4.  
  5. ORA-01516: nonexistent log file, datafile, or tempfile   
  6.  
  7. "/u02/oradata/dbnms/temp01.dbf"   
  8.  
  9. alter tablespace temp add tempfile '/u02/oradata/dbnms/temp01.dbf' size 50M autoextend on next 5M maxsize unlimited;  

 

恢復成功

9.損壞spfile參數文件

(1)故障模擬

刪除spfile文件:rm $ORACLE_HOME/dbs/spfiledbnms.ora

關閉數據庫:shutdown immediate;

啟動數據庫:startup;

(2)恢復步驟

 

  1. startup nomount;   
  2.  
  3. rman target sys catalog rmanuser@cata   
  4.  
  5. restore spfile;   
  6.  
  7. shutdown immediate;   
  8.  
  9. startup;  

 

恢復成功

10.損壞全部文件(包括全部數據文件、控制文件、臨時數據文件、聯機日志文件)

(1)故障模擬

刪除全部文件:rm /u02/oradata/dbnms/*

關閉數據庫:shutdown immediate;

 

  1. ORA-03113: end-of-file on communication channel 

 

(2)恢復步驟

 

  1. sqlplus sys as sysdba   
  2.  
  3. startup nomount;   
  4.  
  5. rman target sys catalog rmanuser@cata  

 

還原控制文件:restore controlfile;

還原數據庫:restore database;

mount 數據庫:alter database mount;

恢復數據庫:recover database;

 

  1. RMAN-00571: ===========================================================   
  2.  
  3. RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============   
  4.  
  5. RMAN-00571: ===========================================================   
  6.  
  7. RMAN-03002: failure of recover command at 09/09/2005 10:33:13   
  8.  
  9. RMAN-06054: media recovery requesting unknown log: thread 1 seq 19 lowscn 718284  

 

用resetlogs方式打開數據庫:alter database open resetlogs;

 

  1. database opened   
  2.  
  3. new incarnation of database registered in recovery catalog   
  4.  
  5. starting full resync of recovery catalog   
  6.  
  7. full resync complete  

 

重建臨時文件:

 

  1. sqlplus sys as sysdba   
  2.  
  3. alter database tempfile '/u02/oradata/dbnms/temp01.dbf' drop;   
  4.  
  5. ERROR at line 1:   
  6.  
  7. ORA-01516: nonexistent log file, datafile, or tempfile   
  8.  
  9. "/u02/oradata/dbnms/temp01.dbf"   
  10.  
  11. alter tablespace temp add tempfile '/u02/oradata/dbnms/temp01.dbf' size 50M autoextend on next 5M maxsize unlimited;  

 

執行一次全庫備份:/home/oracle/dbbat/backup_full.sh,恢復成功。

關于Oracle數據庫損壞文件的修復方法就就介紹到這里了,希望本次的介紹能夠帶給您一些收獲吧!

 

【編輯推薦】

  1. 淺析Oracle 10g isqlplus使用DBA賬戶的方法
  2. Oracle數據庫中如何檢查索引碎片并重建索引
  3. 數據庫優化技術之Oracle數據庫動態綁定變量
  4. PL/SQL Developer導入導出數據庫方法及說明
  5. 關于在極高負荷下Oracle redolog搭配的一些建議
責任編輯:趙鵬 來源: ChinaUnix博客
相關推薦

2010-02-04 11:32:01

數據交換技術

2009-12-24 17:19:13

WPF觸發器

2024-03-08 12:04:22

PythonPillow驗證碼

2010-02-25 10:29:17

WCF Transac

2010-02-26 14:58:14

WCF單例模式

2019-06-12 08:57:43

Oracle數據庫恢復

2010-01-19 16:56:46

交換機光纖端口

2023-10-27 07:03:22

字符串String類型

2021-04-20 08:32:56

蘋果AppStore違規

2010-04-12 16:35:15

Oracle數據庫

2011-07-20 16:28:54

Oracle數據庫shared pool

2021-10-20 06:02:41

網絡釣魚漏洞安全工具

2010-01-18 11:13:59

光纖交換機接口

2010-04-02 17:11:45

Oracle數據庫

2009-02-09 12:52:32

文件加密Oracle數據庫

2015-12-10 10:13:22

2011-09-02 14:09:47

OracleDML命令

2011-05-19 13:25:14

Oracle數據庫

2019-11-29 07:37:44

Oracle數據庫索引

2023-03-05 16:25:38

NoSQL數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 激情五月婷婷在线 | 午夜小电影| 韩国久久| 一区在线播放 | 亚洲欧美中文日韩在线v日本 | 中文字幕在线视频免费观看 | 日韩羞羞 | 国产在线看片 | 国产成人精品免高潮在线观看 | xxx视频 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 亚洲欧美综合 | 免费一区二区三区在线视频 | 午夜一区二区三区在线观看 | 久久久久久久久国产成人免费 | 在线观看成人免费视频 | 亚洲国产欧美在线 | 精品一区二区久久久久久久网精 | 国产精品永久免费 | 国产精品高清一区二区 | 毛片视频免费观看 | 成人做爰www免费看 午夜精品久久久久久久久久久久 | 日韩免费一区二区 | 国产日韩亚洲欧美 | 欧美精品一区二区三区四区五区 | 欧美日批 | 春色av| 欧美久 | 玖玖在线精品 | 久久99精品久久久久久国产越南 | 欧美视频在线看 | 欧美一区二区三区在线观看 | 亚洲精品91 | 天天干天天爱天天操 | 久久久久久久久久久久一区二区 | 亚洲国产成人精品在线 | 99热国产免费 | 6080亚洲精品一区二区 | 久夜精品| 99re在线观看 | 亚洲成人黄色 |