Oracle10g增加備份集的CATALOG

yangtingkun發表於2007-09-05

對於9i之前,如果控制檔案重建或者控制檔案恢復,導致部分備份集資訊丟失,是一件很麻煩的事情。

不過在10g中,Oracle增強了CATALOG的功能,不但可以將資料檔案、日誌檔案的複製增加到控制檔案或CATALOG中,RMAN的備份集也可以手工新增到控制檔案中,這樣就可以輕鬆解決有備份難以恢復的問題了。


看一個簡單的例子,加入資料庫進行了如下備份:

RMAN> backup tablespace users;

啟動 backup 24-8 -07使用通道 ORA_DISK_1通道 ORA_DISK_1: 啟動全部資料檔案備份集通道 ORA_DISK_1: 正在指定備份集中的資料檔案輸入資料檔案 fno=00004 name=E:ORACLEORADATAYTKDATAFILEO1_MF_USERS_1TDY4JMK_
.DBF
通道 ORA_DISK_1: 正在啟動段 1 24-8
-07通道 ORA_DISK_1: 已完成段 1 24-8 -07段控制程式碼=E:ORACLEBACKUPBIQ6MGD_1_1 標記=TAG20070824T141333 註釋=NONE通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:15完成 backup 24-8 -07

RMAN> run
2> {
3> allocate channel c1 device type disk format 'e:oracleackup\%U' maxpiecesize 100m;
4> backup tablespace sysaux;
5> }

釋放的通道: ORA_DISK_1分配的通道: c1通道 c1: sid=123 devtype=DISK

啟動 backup 24-8 -07通道 c1: 啟動全部資料檔案備份集通道 c1: 正在指定備份集中的資料檔案輸入資料檔案 fno=00003 name=E:ORACLEORADATAYTKDATAFILEO1_MF_SYSAUX_1TDY3TRF_.DBF通道 c1: 正在啟動段 1 24-8 -07通道 c1: 已完成段 1 24-8 -07段控制程式碼=E:ORACLEBACKUPCIQ6MIS_1_1 標記=TAG20070824T141452 註釋=NONE通道 c1: 正在啟動段 2 24-8 -07通道 c1: 已完成段 2 24-8 -07段控制程式碼=E:ORACLEBACKUPCIQ6MIS_2_1 標記=TAG20070824T141452 註釋=NONE通道 c1: 正在啟動段 3 24-8 -07通道 c1: 已完成段 3 24-8 -07段控制程式碼=E:ORACLEBACKUPCIQ6MIS_3_1 標記=TAG20070824T141452 註釋=NONE通道 c1: 正在啟動段 4 24-8 -07通道 c1: 已完成段 4 24-8 -07段控制程式碼=E:ORACLEBACKUPCIQ6MIS_4_1 標記=TAG20070824T141452 註釋=NONE通道 c1: 正在啟動段 5 24-8 -07通道 c1: 已完成段 5 24-8 -07段控制程式碼=E:ORACLEBACKUPCIQ6MIS_5_1 標記=TAG20070824T141452 註釋=NONE通道 c1: 備份集已完成, 經過時間:00:01:01完成 backup 24-8 -07釋放的通道: c1

檢查一下系統中的備份資訊:

RMAN> list backup;

備份集列表
===================

BS 關鍵字 型別 LV 大小 裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
8 Full 91.88M DISK 00:00:09 24-8
-07
BP
關鍵字: 13 狀態: AVAILABLE 已壓縮: NO 標記
: TAG20070824T141333段名:E:ORACLEBACKUPBIQ6MGD_1_1
備份集 8 中的資料檔案列表

檔案 LV 型別 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ---------- ----
4 Full 4033892051 24-8
-07 E:ORACLEORADATAYTKDATAFILEO1_MF_USERS_1TDY4JMK_.DBF

BS 關鍵字 型別 LV 大小 裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
9 Full 409.81M DISK 00:01:01 24-8
-07
備份集 9 中的資料檔案列表

檔案 LV 型別 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ---------- ----
3 Full 4033892136 24-8
-07 E:ORACLEORADATAYTKDATAFILEO1_MF_SYSAUX_1TDY3TRF_.DBF

備份集 副本號 1 屬於備份集 9
裝置型別 經過時間 完成時間 壓縮標記

----------- ------------ ---------- ---------- ---
DISK 00:01:01 24-8
-07 NO TAG20070824T141452

備份集 9 副本號 1的備份段列表
BP
關鍵字 Pc# 狀態 段名稱
------- --- ----------- ----------
14 1 AVAILABLE E:ORACLEBACKUPCIQ6MIS_1_1
15 2 AVAILABLE E:ORACLEBACKUPCIQ6MIS_2_1
16 3 AVAILABLE E:ORACLEBACKUPCIQ6MIS_3_1
17 4 AVAILABLE E:ORACLEBACKUPCIQ6MIS_4_1
18 5 AVAILABLE E:ORACLEBACKUPCIQ6MIS_5_1

資料庫備份了表空間USERSSYSAUX,下面重建控制檔案:

SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

資料庫已更改。

SQL> CONN YANGTK/YANGTK@YTK AS SYSDBA已連線。
SQL> SHUTDOWN IMMEDIATE
資料庫已經關閉。已經解除安裝資料庫。
ORACLE
例程已經關閉。

SQL> STARTUP NOMOUNT
ORACLE
例程已經啟動。

Total System Global Area 209715200 bytes
Fixed Size 1247068 bytes
Variable Size 92276900 bytes
Database Buffers 109051904 bytes
Redo Buffers 7139328 bytes
SQL> CREATE CONTROLFILE REUSE DATABASE "YTK" NORESETLOGS ARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 (
9 'E:ORACLEORADATAYTKONLINELOGO1_MF_1_1TDY20N0_.LOG',
10 'E:ORACLEFLASH_RECOVERY_AREAYTKONLINELOGO1_MF_1_1TDY22PG_.LOG'
11 ) SIZE 50M,
12 GROUP 2 (
13 'E:ORACLEORADATAYTKONLINELOGO1_MF_2_1TDY24K2_.LOG',
14 'E:ORACLEFLASH_RECOVERY_AREAYTKONLINELOGO1_MF_2_1TDY264W_.LOG'
15 ) SIZE 50M,
16 GROUP 3 (
17 'E:ORACLEORADATAYTKONLINELOGO1_MF_3_1TDY27PG_.LOG',
18 'E:ORACLEFLASH_RECOVERY_AREAYTKONLINELOGO1_MF_3_1TDY296C_.LOG'
19 ) SIZE 50M
20 -- STANDBY LOGFILE
21 DATAFILE
22 'E:ORACLEORADATAYTKDATAFILEO1_MF_SYSTEM_1TDY2CXS_.DBF',
23 'E:ORACLEORADATAYTKDATAFILEO1_MF_UNDOTBS1_1TDY3GNZ_.DBF',
24 'E:ORACLEORADATAYTKDATAFILEO1_MF_SYSAUX_1TDY3TRF_.DBF',
25 'E:ORACLEORADATAYTKDATAFILEO1_MF_USERS_1TDY4JMK_.DBF',
26 'E:ORACLEORADATAYTKDATAFILEO1_MF_YANGTK_1THCKSRW_.DBF',
27 'E:ORACLEORADATAYTKDATAFILEO1_MF_YANGTK_22MWCD5C_.DBF'
28 CHARACTER SET ZHS16GBK
29 ;

控制檔案已建立。

SQL> VARIABLE RECNO NUMBER;
SQL> EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('CHANNEL','DEVICE TYPE DISK FORMAT ''e:o
racleackup\%U''');

PL/SQL 過程已成功完成。

SQL> RECOVER DATABASE
ORA-00283: ??????????
ORA-00264: ?????


SQL> ALTER SYSTEM ARCHIVE LOG ALL;

系統已更改。

SQL> ALTER DATABASE OPEN;

資料庫已更改。

SQL> ALTER TABLESPACE TEMP ADD TEMPFILE 'E:ORACLEORADATAYTKDATAFILEO1_MF_TEMP_1TDY49L2_.TMP'
2 SIZE 419430400 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 65535M;

表空間已更改。

資料庫控制檔案完成,這時候會發現丟失所有的備份資訊:

E:>rman target /

恢復管理器: Release 10.2.0.1.0 - Production on 星期五 8 24 14:24:21 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

連線到目標資料庫: YTK (DBID=97298047)

RMAN> list backup;

使用目標資料庫控制檔案替代恢復目錄

使用CATALOG BACKUPPIECE就可以將備份集重新新增到控制檔案中:

RMAN> catalog backuppiece 'E:ORACLEBACKUPBIQ6MGD_1_1';

已列入目錄的備份段備份段 handle=E:ORACLEBACKUPBIQ6MGD_1_1 recid=1 stamp=631463169

RMAN> list backup;

備份集列表
===================

BS 關鍵字 型別 LV 大小 裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
1 Full 91.88M DISK 00:00:00 24-8
-07
BP
關鍵字: 1 狀態: AVAILABLE 已壓縮: NO 標記
: TAG20070824T141333段名:E:ORACLEBACKUPBIQ6MGD_1_1
備份集 1 中的資料檔案列表

檔案 LV 型別 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ---------- ----
4 Full 4033892051 24-8
-07 E:ORACLEORADATAYTKDATAFILEO1_MF_USERS_1TDY4JMK_.DBF

10g還增加了一個CATALOGSTART WITH語句,可以批次的CATALOG物件:

RMAN> catalog start with 'E:ORACLEBACKUPCIQ6MIS_';

搜尋與樣式 E:ORACLEBACKUPCIQ6MIS_ 匹配的所有檔案

資料庫未知檔案的列表
=====================================
檔名: E:ORACLEBACKUPCIQ6MIS_1_1檔名: E:ORACLEBACKUPCIQ6MIS_2_1檔名: E:ORACLEBACKUPCIQ6MIS_3_1檔名: E:ORACLEBACKUPCIQ6MIS_4_1檔名: E:ORACLEBACKUPCIQ6MIS_5_1

是否確實要將上述檔案列入目錄 (輸入 YES NO)? yes正在編制檔案目錄...目錄編制完畢

已列入目錄的檔案的列表
=======================
檔名: E:ORACLEBACKUPCIQ6MIS_1_1檔名: E:ORACLEBACKUPCIQ6MIS_2_1檔名: E:ORACLEBACKUPCIQ6MIS_3_1檔名: E:ORACLEBACKUPCIQ6MIS_4_1檔名: E:ORACLEBACKUPCIQ6MIS_5_1

RMAN> list backup;

備份集列表
===================

BS 關鍵字 型別 LV 大小 裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
1 Full 91.88M DISK 00:00:00 24-8
-07
BP
關鍵字: 1 狀態: AVAILABLE 已壓縮: NO 標記
: TAG20070824T141333段名:E:ORACLEBACKUPBIQ6MGD_1_1
備份集 1 中的資料檔案列表

檔案 LV 型別 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ---------- ----
4 Full 4033892051 24-8
-07 E:ORACLEORADATAYTKDATAFILEO1_MF_USERS_1TDY4JMK_.DBF

BS 關鍵字 型別 LV 大小 裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
5 Full 409.81M DISK 00:00:00 24-8
-07
備份集 5 中的資料檔案列表

檔案 LV 型別 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ---------- ----
3 Full 4033892136 24-8
-07 E:ORACLEORADATAYTKDATAFILEO1_MF_SYSAUX_1TDY3TRF_.DBF

備份集 副本號 1 屬於備份集 5
裝置型別 經過時間 完成時間 壓縮標記

----------- ------------ ---------- ---------- ---
DISK 00:00:00 24-8
-07 NO TAG20070824T141452

備份集 5 副本號 1的備份段列表
BP
關鍵字 Pc# 狀態 段名稱
------- --- ----------- ----------
2 1 AVAILABLE E:ORACLEBACKUPCIQ6MIS_1_1
3 2 AVAILABLE E:ORACLEBACKUPCIQ6MIS_2_1
4 3 AVAILABLE E:ORACLEBACKUPCIQ6MIS_3_1
5 4 AVAILABLE E:ORACLEBACKUPCIQ6MIS_4_1
6 5 AVAILABLE E:ORACLEBACKUPCIQ6MIS_5_1

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-69414/,如需轉載,請註明出處,否則將追究法律責任。

相關文章