天天看點

RMAN Recipes 中對Flash Recovery Area的總結

最近在看《RMAN Recipes for Oracle Database 11g》,老外講得啰裡吧嗦,我把其中有一些比較重要的操作記下,以便以後查閱,如果順利,以後看完每章都做一次總結,希望對初學Oracle備份與恢複的朋友有所幫助。筆記中若有不正确的地方歡迎大家留言拍磚。      
其中,第一章《Backup and Recovery》針對備份和恢複的基本概念作了詳細闡述,包括資料庫故障的類型、Oracle中備份與恢複的幾個概念、備份類型、恢複類型、RMAN體系結構、備份與恢複的幾個最佳實踐。第二章《Jump-Starting RMAN》是針對初識RMAN的朋友準備的,作者用最簡單的例子讓初學者幾下子就能作一個備份和恢複,這一章包括連接配接資料庫、打開和關閉資料庫、使用歸檔模式、連接配接RMAN、備份資料庫、Restoring and Recovering 資料庫。這兩章主要是從概念上講備份與恢複,也舉了幾個例子,大家一看就懂,我也不一一羅列了,下面進入正題。

	第三章《Using the Flash Recovery Area》是對閃回恢複區作了些論述,我用例子來說明一些概念。
	3-1.Creating the Flash Recovery Area(建立閃回恢複區)
	這個閃回恢複區我們可以自定義建立,在建立前我們思考兩個問題,第一:這個閃回恢複區我建立在哪兒?第二:我要建立多大的閃回恢複區?
	如果大家已經确定了答案,我們就可以建立了。
	3.1.1確定log_archive_dest和log_archive_duplex_dest為空
	大家可以show parameter log_archive_dest看一下這兩個初始化參數是否為空,若不為空,則:
	Alter system set log_archive_duplex_dest = ‘ ’;
	Alter system set log_archive_dest = ‘ ‘;
	如果大家想要把歸檔檔案放入自定義的路徑,則可以使用log_archive_dest_1,
	Alter system set log_archive_dest_1=’location=/dbarch’;
	并保證log_archive_dest為空,具體參數說明見Oracle聯機文檔《Reference》。
	3.1.2以sysdba角色登入資料庫
	Sqlplus / as sysdba 或者
	Sqlplus sys/<PasswordOfUserSys> as sysdba
	3.1.3建立閃回恢複區并指定相應大小
	Alter system set db_recovery_file_dest_size=4G;(原作有誤,少了file_dest)
	Alter system set db_recovery_file_dest=’/home/oracle/flasharea’;

	好了,這樣就指定了一個閃回恢複區,記住,這個/home/oracle/flasharea必須存在,若作業系統層面沒有這個目錄,必須建立一個目錄。
	這個閃回恢複區将來是用來存放備份檔案的,是以大家最好不要把閃回恢複區和資料庫檔案放在同一塊磁盤上,萬一磁盤塊了,那閃回恢複區也一起悲劇。
	3-2Writing Regular RMAN Backups to the FRA(在閃回恢複區有規律地備份)
	3.2.1啟動RMAN
	$rman
	Recovery Manager:......
	RMAN>
	3.2.2連接配接到目标資料庫
	RMAN>connect target /
	Connected to target database:PRODB2(DBID=524826567)
	3.2.3開始不指定路徑地備份資料庫
	RMAN>backup database;
	......
	從螢幕産生的資訊我們發現,資料庫配置設定了一個channel,把資料檔案備份到閃回恢複區,同時控制檔案和spfile也一起備份。
	3-3Free FRA Space in an Emergency(緊急情況下釋放閃回恢複區)
	我們有時在備份時會出現FRA空間不夠,那怎麼辦呢?有三種辦法。
	3.3.1增大閃回恢複區空間
	Alter system set db_recovery_file_size_size=10G;
	3.3.2删除沒用的Restore Points
	Select name,storage_size from v$restore_point;
	找到沒用的Restore Points,然後
	Drop restore point rp0;
	3.3.3禁用閃回恢複區
	我索性不用閃回恢複區,将它Disable。
	Shutdown immediate
	Startup mount
	Alter database flashback off;
	現在我可以用rman安心删除東西了,把archivelog删除:
	Rman>delete noprompt archivelog all;
	然後打開資料庫,
	Alter database open;
	注意,這次的資料庫是沒有閃回恢複區的。	      
3-4.Checking Space Usage in the FRA(檢查FRA使用空間)
	有幾個動态性能視圖對這一問題有很好的幫助,下面看下怎麼查詢。
	SQL>select * from v$flash_recovery_area_useage;
		
        
RMAN Recipes 中對Flash Recovery Area的總結
通過列名我們可以清晰地得到各種檔案占用了多少空間,注意是百分比。那我們怎麼看具體用了多少空間?大家可以檢視v$recovery_file_dest這個動态性能視圖,我們還能通過FILE_TYPE将這兩個視圖連接配接查詢自己想要的資訊。
3-5.Expanding or Shrinking the FRA(擴大或收縮FRA)
	其實這塊前面在建立時就提過了,
	SQL>alter system set db_recovery_file_dest_size=2G;
	這個值看實際情況調整。
	3-6.Configureing Archived Redo Logs to Go to FRA(給FRA配置歸檔日志)
	我們原來可以把歸檔日志放其它的路徑下,這節闡述了怎麼向FRA裡配置。書上有幾步前面我們已經做過,下面我會把那些操作略去。
	3.6.1用FRA做為歸檔路徑
	Alter system set log_archive_dest_1=’LOCATION=USE_DB_RECOVERY_FILE_DEST’;
	3.6.2確定上面的路徑可用
	SQL>show parameter log_archive_dest_state_1
	那個值必須是ENABLE,不然沒法用這個路徑,如果不是ENABLE,則
	Alter system set log_archive_dest_state_1=enable;
	3.6.3檢查你的設定
	SQL>archive log list
	3.6.4切換日志看是不是真的歸檔到新目錄
	Alter system switch logfile;
	以上就是基本操作,設定完了後大家可以查詢v$archive_log看下歸檔路徑。
	3-7.Using the Same FRA for Two Database with the Same Name(略,以後用到再寫)
	3-8.Placing a Control File in the FRA(将控制檔案放入FRA)
	控制檔案一般是怎麼産生的?首先,在建立資料庫時,會産生;還可以用SQL腳本在恢複時産生;也可以從備份檔案中找到。在pfile裡我們一般會看到一個參數是指定控制檔案的路徑的。講到這想必大家知道怎麼設定了吧,改一下pfile裡的路徑就行了。
	3-9.Placing Online Redo Log Files in FRA(在FRA中設定聯機重做日志)(待續。。。)