RMAN備份與恢複之可離線資料檔案丟失

來源:互聯網
上載者:User

一 資料表空間講解

在上一篇文章(RMAN備份與恢複之控制檔案丟失   ),我們講解了控制檔案丟失並且RMAN中有備份怎麼處理,這篇文章講解可離線資料檔案丟失的處理。

資料表空間是一種邏輯結構,資料表空間下可以存放資料檔案。資料表空間有系統資料表空間(SYSTEM)、輔助資料表空間(SYSAUX)、使用者資料表空間(USERS)、回退資料表空間(UNDOTBS1)、暫存資料表空間(TEMP)、測試資料表空間(EXAMPLE)、資料資料表空間。其中系統資料表空間用於儲存資料字典的資訊,不能離線,不能唯讀,也不能改名。輔助資料表空間用於儲存一些工具以及一些常用的組件,10G開始引入,不能離線,可以唯讀,可以改名。使用者資料表空間用於儲存使用者資料的資料表空間,可以離線,可以唯讀,可以改名。回退資料表空間用於儲存DML操作的事務資訊,不能離線,不能唯讀,可以改名。暫存資料表空間用於存放臨時資料,不能離線,不能唯讀,可以改名。資料資料表空間用於存放自訂資料,項目中我們一般建立資料資料表空間,資料存放在資料資料表空間,這是一種很好的做法,切忌把資料放在預設的USERS資料表空間。

至於有些資料表空間可以離線,有些不可以。那是因為資料庫在運行期間需要向這些資料表空間寫入資料,比如系統資料表空間、輔助資料表空間、回退資料表空間、暫存資料表空間,而使用者資料表空間、測試資料表空間、資料資料表空間不同,只要沒有對這些資料表空間進行操作,是可以離線的。

二 備份與恢複可離線資料檔案講解

備份與恢複可離線資料檔案,首先我們要使用RMAN做一個備份全庫的操作,然後類比USERS資料表空間丟失,此時我們查看資料會提示資料檔案找不到。因為USERS資料表空間可以離線,所以我們可以在SQL Plus中使USERS資料表空間離線,切記要先離線再進行下面的操作。因為在RMAN中我們有備份,所以我們可以在RMAN中對USERS資料表空間對應的資料檔案編號進行還原,實際上後台就行進行了一個拷貝操作。還原成功後,我們需要對USERS資料表空間對應的資料檔案編號進行恢複,等待恢複完成後,再在SQL Plus中使USERS資料表空間線上,所有的操作完成後,USERS資料表空間備份與恢複完成,我們可以對資料進行訪問,測試是否恢複成功。需要注意的是,使資料表空間線上、離線、還原和恢複資料檔案一些列的操作切記不要把編號弄錯了,做這些操作應該確認USERS資料表空間的編號,預設是4號,但是由於後期的修改,USERS資料表空間資料檔案的編號很不能不是4號。作為DBA,需要時刻保持謹慎! 

三 類比 

Step1,RMAN中備份全庫,並在SQL Plus確定資料的正確性

RMAN> BACKUP DATABASE;

Starting backup at 12-DEC-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/Oracle/oradata/justdb/system01.dbf
input datafile file number=00002 name=/u01/oracle/oradata/justdb/sysaux01.dbf
input datafile file number=00003 name=/u01/oracle/oradata/justdb/undotbs01.dbf
input datafile file number=00004 name=/u01/oracle/oradata/justdb/users01.dbf
channel ORA_DISK_1: starting piece 1 at 12-DEC-13
channel ORA_DISK_1: finished piece 1 at 12-DEC-13
piece handle=/u01/oracle/fast_recovery_area/JUSTDB/backupset/2013_12_12/o1_mf_nnndf_TAG20131212T095816_9bl61rrn_.bkp tag=TAG20131212T095816 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:25
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 12-DEC-13
channel ORA_DISK_1: finished piece 1 at 12-DEC-13
piece handle=/u01/oracle/fast_recovery_area/JUSTDB/backupset/2013_12_12/o1_mf_ncsnf_TAG20131212T095816_9bl62lw2_.bkp tag=TAG20131212T095816 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 12-DEC-13

[oracle@orcl backupset]$ ll 2013_12_12/
total 1025556
-rw------- 1 oracle oinstall    9830400 Dec 12 09:58 o1_mf_ncsnf_TAG20131212T095816_9bl62lw2_.bkp
-rw------- 1 oracle oinstall 1040334848 Dec 12 09:58 o1_mf_nnndf_TAG20131212T095816_9bl61rrn_.bkp

RMAN> LIST BACKUP;


List of Backup Sets
===================


BS Key  Type LV Size      Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
14      Full    992.13M    DISK        00:00:19    12-DEC-13     
        BP Key: 14  Status: AVAILABLE  Compressed: NO  Tag: TAG20131212T095816
        Piece Name: /u01/oracle/fast_recovery_area/JUSTDB/backupset/2013_12_12/o1_mf_nnndf_TAG20131212T095816_9bl61rrn_.bkp
  List of Datafiles in backup set 14
  File LV Type Ckp SCN    Ckp Time  Name
  ---- -- ---- ---------- --------- ----
  1      Full 1088247    12-DEC-13 /u01/oracle/oradata/justdb/system01.dbf
  2      Full 1088247    12-DEC-13 /u01/oracle/oradata/justdb/sysaux01.dbf
  3      Full 1088247    12-DEC-13 /u01/oracle/oradata/justdb/undotbs01.dbf
  4      Full 1088247    12-DEC-13 /u01/oracle/oradata/justdb/users01.dbf

BS Key  Type LV Size      Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
15      Full    9.36M      DISK        00:00:01    12-DEC-13     
        BP Key: 15  Status: AVAILABLE  Compressed: NO  Tag: TAG20131212T095816
        Piece Name: /u01/oracle/fast_recovery_area/JUSTDB/backupset/2013_12_12/o1_mf_ncsnf_TAG20131212T095816_9bl62lw2_.bkp
  SPFILE Included: Modification time: 12-DEC-13
  SPFILE db_unique_name: JUSTDB
  Control File Included: Ckp SCN: 1088267      Ckp time: 12-DEC-13

SQL> CONN SCOTT/tiger;
Connected.
SQL> SELECT * FROM tab;

TNAME            TABTYPE  CLUSTERID
------------------------------ ------- ----------
BONUS            TABLE
DEPT            TABLE
EMP            TABLE
SALGRADE          TABLE

 

Step2,SQL Plus中刪除USERS資料表空間,類比USERS資料表空間丟失

SQL> HO mv /u01/oracle/oradata/justdb/users01.dbf /opt/learn/

 

Step 3,scott使用者查看資料失敗

SQL> CONN SCOTT/tiger;
Connected.
SQL> DESC dept;
ERROR:
ORA-01116: error in opening database file 4
ORA-01110: data file 4: '/u01/oracle/oradata/justdb/users01.dbf'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3

 

Step4,SQL Plus中使第4號資料檔案離線

SQL> CONN / AS SYSDBA;
Connected.
SQL> ALTER DATABASE DATAFILE 4 OFFLINE;

Database altered.

 

Step5,RMAN中還原4號資料檔案

RMAN> RESTORE DATAFILE 4;

Starting restore at 12-DEC-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: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00004 to /u01/oracle/oradata/justdb/users01.dbf
channel ORA_DISK_1: reading from backup piece /u01/oracle/fast_recovery_area/JUSTDB/backupset/2013_12_12/o1_mf_nnndf_TAG20131212T095816_9bl61rrn_.bkp
channel ORA_DISK_1: piece handle=/u01/oracle/fast_recovery_area/JUSTDB/backupset/2013_12_12/o1_mf_nnndf_TAG20131212T095816_9bl61rrn_.bkp tag=TAG20131212T095816
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 12-DEC-13

 

Step6,RMAN中恢複4號檔案

RMAN> RECOVER DATAFILE 4;

Starting recover at 12-DEC-13
using channel ORA_DISK_1

starting media recovery
media recovery complete, elapsed time: 00:00:00

Finished recover at 12-DEC-13

 

Step7,SQL Plus中使4號資料檔案線上

SQL> ALTER DATABASE DATAFILE 4 ONLINE;

Database altered.

 

Step8,SQL Plus中查看資料

SQL> CONN SCOTT/tiger;
Connected.
SQL> DESC dept;
Name            Null?    Type
 ----------------------------------------- -------- ----------------------------
 DEPTNO            NOT NULL NUMBER(2)
 DNAME                VARCHAR2(14)
 LOC                VARCHAR2(13)

SQL> SELECT * FROM dept;

    DEPTNO DNAME    LOC
---------- -------------- -------------
  10 ACCOUNTING  NEW YORK
  20 RESEARCH  DALLAS
  30 SALES    CHICAGO
  40 OPERATIONS  BOSTON

推薦閱讀:

RMAN 配置歸檔日誌刪除策略

Oracle基礎教程之通過RMAN複製資料庫

RMAN備份策略制定參考內容

RMAN備份學習筆記

OracleDatabase Backup加密 RMAN加密

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.