一 資料表空間講解
在上一篇文章(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加密