循序漸進oracle第7章:備份與恢復之利用控制檔案快照恢復控制檔案

mengzhaoliang發表於2008-06-05

/* 2008/06/05
*環境:Windows XP +Oracle10.2.0.1
*循序漸進oracle——資料庫管理、最佳化與備份恢復
*循序漸進oracle第7章:備份與恢復之利用控制檔案快照恢復控制檔案
*/
7.7.3 RMAN的備份與恢復
1、將控制檔案的建立語句備份到跟蹤檔案中
SQL> alter database backup controlfile to trace;

資料庫已更改。

生成的.trc檔案在$oracle_HOME\admin\sid\udump


2、執行一次資料庫控制檔案的轉儲
SQL> alter session set events 'immediate trace name controlf level 8';

會話已更改。

3、檢視controlfile的快照
RMAN> show snapshot controlfile name;

RMAN 配置引數為:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\S
NCFRISENET.ORA'; # default

4、備份當前的控制檔案
RMAN> backup current controlfile format 'g:\control.ctl';

啟動 backup 於 05-6月 -08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=138 devtype=DISK
通道 ORA_DISK_1: 啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集中的資料檔案
備份集中包括當前控制檔案
通道 ORA_DISK_1: 正在啟動段 1 於 05-6月 -08
通道 ORA_DISK_1: 已完成段 1 於 05-6月 -08
段控制程式碼=G:\CONTROL.CTL 標記=TAG20080605T075004 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:02
完成 backup 於 05-6月 -08

啟動 Control File Autobackup 於 05-6月 -08
段 handle=G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\AUTOBACKUP\2008_0
6_05\O1_MF_N_656581806_44GBKHDP_.BKP comment=NONE
完成 Control File Autobackup 於 05-6月 -08

 

還可以複製當前控制檔案:

RMAN> backup as copy current controlfile format 'e:\backup\controlcopy.ctl';

啟動 backup 於 05-6月 -08
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 啟動資料檔案副本
複製當前控制檔案
輸出檔名 = E:\BACKUP\CONTROLCOPY.CTL 標記 = TAG20080605T093351 recid = 24 時間
戳 = 656588032
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:01
完成 backup 於 05-6月 -08

啟動 Control File and SPFILE Autobackup 於 05-6月 -08
段 handle=G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\AUTOBACKUP\2008_0
6_05\O1_MF_S_656588032_44GJN1FO_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 於 05-6月 -08

注意:複製的控制檔案是當前控制檔案的一個原樣副本,可以直接用於啟動資料庫,而RMAN的控制檔案備份則需要透過RMAN進行恢復使用。

5、備份資料庫到其他位置
RMAN> backup database format 'e:\backup\risenetfull_%d_%t_%s';

6、當前時間、當前scn
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

會話已更改。

SQL> select sysdate,dbms_flashback.get_system_change_number from dual;

SYSDATE             GET_SYSTEM_CHANGE_NUMBER
------------------- ------------------------
2008-06-05 08:05:06                   895058

 


7、利用控制檔案快照恢復控制檔案


C:\>rman target/

恢復管理器: Release 10.2.0.1.0 - Production on 星期四 6月 5 08:23:15 2008

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

已連線到目標資料庫 (未啟動)

RMAN> startup nomount

Oracle 例項已啟動

系統全域性區域總計     272629760 位元組

Fixed Size                     1248476 位元組
Variable Size                100664100 位元組
Database Buffers             163577856 位元組
Redo Buffers                   7139328 位元組

RMAN> restore controlfile
2> from 'G:\oracle\product\10.2.0\db_1\database\SNCFRISENET.ORA';

啟動 restore 於 05-6月 -08
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=157 devtype=DISK

通道 ORA_DISK_1: 已複製控制檔案副本
輸出檔名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\CONTROL01.CTL
輸出檔名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\CONTROL02.CTL
輸出檔名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\CONTROL03.CTL
完成 restore 於 05-6月 -08


RMAN> alter database mount;

資料庫已裝載
釋放的通道: ORA_DISK_1

RMAN> run
2> {set until scn 895420;
3> restore database database;
4> recover database;
5> }

正在執行命令: SET until clause

啟動 restore 於 05-6月 -08
啟動 implicit crosscheck backup 於 05-6月 -08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
已交叉檢驗的 15 物件
完成 implicit crosscheck backup 於 05-6月 -08

啟動 implicit crosscheck copy 於 05-6月 -08
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 於 05-6月 -08

搜尋恢復區域中的所有檔案
正在編制檔案目錄...
目錄編制完畢

已列入目錄的檔案的列表
=======================
檔名: G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_06_
05\O1_MF_1_6_44GCZYSW_.ARC
檔名: G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_06_
05\O1_MF_1_7_44GD0FXS_.ARC
檔名: G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_06_
05\O1_MF_1_8_44GD124W_.ARC
檔名: G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_06_
05\O1_MF_1_9_44GD1K5V_.ARC

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00001恢復到G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01.DBF
正將資料檔案00002恢復到G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\UNDOTBS01.DBF
正將資料檔案00003恢復到G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSAUX01.DBF
正將資料檔案00004恢復到G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\USERS01.DBF
正將資料檔案00005恢復到G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF
正將資料檔案00006恢復到G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\MZL.DBF
通道 ORA_DISK_1: 正在讀取備份段 G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RIS
ENET\BACKUPSET\2008_06_05\O1_MF_NNNDF_20080605_44GC7W5C_.BKP
通道 ORA_DISK_1: 已恢復備份段 1
段控制程式碼 = G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\BACKUPSET\2008_06_
05\O1_MF_NNNDF_20080605_44GC7W5C_.BKP 標記 = 20080605
通道 ORA_DISK_1: 恢復完成, 用時: 00:01:16
完成 restore 於 05-6月 -08

啟動 recover 於 05-6月 -08
使用通道 ORA_DISK_1

正在開始介質的恢復

存檔日誌執行緒 1 序列 5 已作為檔案 G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RI
SENET\ARCHIVELOG\2008_06_05\O1_MF_1_5_44GC9BX9_.ARC 存在於磁碟上
存檔日誌執行緒 1 序列 6 已作為檔案 G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RI
SENET\ARCHIVELOG\2008_06_05\O1_MF_1_6_44GCZYSW_.ARC 存在於磁碟上
存檔日誌執行緒 1 序列 7 已作為檔案 G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RI
SENET\ARCHIVELOG\2008_06_05\O1_MF_1_7_44GD0FXS_.ARC 存在於磁碟上
存檔日誌檔名 =G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\
2008_06_05\O1_MF_1_5_44GC9BX9_.ARC 執行緒 =1 序列 =5
存檔日誌檔名 =G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\
2008_06_05\O1_MF_1_6_44GCZYSW_.ARC 執行緒 =1 序列 =6
存檔日誌檔名 =G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\
2008_06_05\O1_MF_1_7_44GD0FXS_.ARC 執行緒 =1 序列 =7
介質恢復完成, 用時: 00:00:04
完成 recover 於 05-6月 -08

RMAN> alter database open resetlogs;

資料庫已開啟

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

相關文章