最近在看《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;
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中設定聯機重做日志)(待續。。。)