rman備份最佳化思路,rman備份
本章不講rman備份原理,只提供一些思路
1.oracle11g 選擇壓縮演算法為中級;
2.增加rman備份的通道。
以上兩種做法,增加CPU的利用率,減少IO
3.指定rate參數
這個rate和通道總和不要大於硬碟的IOPS,以免造成IO等待
--未完(請持續關注)
謝謝
請解釋下Oracle裡邏輯備份、物理備份、Rman備份的區別。教科書和百度上的解釋不是很懂,謝謝。Oracle資料庫邏輯備份
ORACLE資料庫有兩類備份方法第類物理備份該方法實現資料庫完整恢複資料庫必須運行歸擋模式下(業務資料庫非歸擋模式下運行)且需要極大外部存放裝置例磁帶庫;第二類備份方式邏輯備份業務資料庫採用此種方式此方法需要資料庫運行歸擋模式下備份簡單而且需要外部存放裝置資料庫邏輯備份方法ORACLE資料庫邏輯備份分三種模式:表備份、使用者備份和完全備份
表模式
備份某使用者模式下指定對象(表)業務資料庫通常採用種備份方式若備份本地檔案使用下命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=exp_icdmain_csd_yyyymmdd.dmp
log=exp_icdmain_csd_yyyymmdd.log
tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
若直接備份磁帶裝置使用下命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=/dev/rmt0
log=exp_icdmain_csd_yyyymmdd.log
tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
註:磁碟空間允許情況下應先備份本機伺服器再拷貝磁帶出於速度方面考慮盡量要直接備份磁帶裝置
使用者模式
備份某使用者模式下所有對象業務資料庫通常採用種備份方式 若備份本地檔案使用下命令:
exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=exp_icdmain_yyyymmdd.dmp
log=exp_icdmain_yyyymmdd.log
若直接備份磁帶裝置使用下命令:
exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=/dev/rmt0
log=exp_icdmain_yyyymmdd.log
註:磁碟有空間建議備份磁碟再拷貝磁帶資料庫資料量較小採用種辦法備份
完全模式
備份完整資料庫業務資料庫採用種備份方式備份命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0 full=y
file=exp_fulldb_yyyymmdd.dmp(磁帶裝置則/dev/rmt0)
log=exp_fulldb_yyyymmdd.log
對於Database Backup建議採用增量備份即只備份上次備份來更改資料增量備份命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0 full=y inctype=incremental
file=exp_fulldb_yyyymmdd.dmp(磁帶裝置則/dev/rmt0)
log=exp_fulldb_yyyymmdd.log
註:關於增量備份必須滿足下列條件:
1. 只對完整Database Backup有效且第次需要full=y參數需要inctype=incremental參數
2. 使用者必須有EXP_FULL_DATABASE系統角色
3. 務量較小時方採用Database Backup
4. 磁碟有空間建議備份磁碟再備份磁帶
業務Database Backup方法及周期用EXP進行備份前先SYS使用者下運行CATEXP.SQL檔案(前已運行該檔案則要執行指令碼)
沒有特殊說明允許用戶端執行備份命令
備份命令參照表模式下備份命令
RMAN備份原理
之前看了使用者管理備份恢複管理通過SCN線索貫穿整過程來熟悉了備份原理
RMAN備份過程和使用者備份恢複管理有大區別多朋友了都沒有理清楚原理
下面我理解:
RMAN備份資料區塊工作原理:
原理:RMAN基於備份演算法規則來編譯要備份資料檔案列表基於通道數和同時備份資料檔案數RMANORACEL共用記憶體段
建立些記憶體緩衝區般PGA過有時候記憶體緩衝區會被推入SGA通道服務進程隨開始讀取資料檔案並RMAN緩衝取
填充些資料區塊緩衝區被填滿時輸入緩衝區資料會推出輸出緩衝區資料檔案資料區塊都會都會發生種
memery—to—monery write 過程資料區塊符合備份標準並且memery—to—monery write操作沒有檢查
資料corruption則該資料區塊會被儲存輸出資料緩衝區直輸出緩衝區被填滿輸出緩衝區被填滿輸出緩衝區內容會被
推備份位置(磁碟或者磁帶)
RMAN備份資料庫過程:
RMAN發出備份全庫命令RMAN產生目標資料庫bequeath串連也說會檢查ORACLA_SID變數執行個體名並該實
例上產生伺服器處理序作sysdba登陸會產生作備份通道(PGA或者SGA分配儲存)隨RMAN調用
SYS.DBMS_RCVMAN請求資料庫結構資訊包括控制檔案資訊(當前序號建立時間……)由於指定了備份全庫所RMAN會請求
資料庫資料檔案資訊並判斷否存offline資料檔案(包括所位置和工作方式)
RMAN開始備份了保持資料致性RMAN必須構建控制檔案快照接下來RMAN調用DBMS _BACKUP_RESTORE資料包該調用
建立備份片RMAN擁有檔案清單所資料檔案讀取操作分配記憶體緩衝區分配緩衝區RMAN初始化備份片旦初始化了備份片
RMAN會判斷否使用了伺服器參數檔案使用了則會做備份部分還要備份控制檔案之才開始備份資料檔案並其推至記憶體
了實現功能通道進程磁碟上執行預讀取操作並且多資料檔案讀入記憶體RMAN會判斷資料區塊頭資訊否仍零資料區塊
沒有被使用過會發生輸出緩衝區寫操作同時會丟棄資料區塊(RMAN會只備份使用過資料原因也優點)
RMAN還會執行檢查資料區塊有沒有corruption操作當檢查通過了被寫入輸出緩衝區旦輸出緩衝區填滿了被推至備份檔案位置
備份資料區塊時候RMAN影子進程會得備份狀態資訊並傳給V$session_longops視圖查詢能得資訊
當資料檔案所有資料區塊都被讀入輸入緩衝區並確定了狀態之RMAN會通過資料檔案寫入備份片來結束該檔案備份操作所有
資料檔案寫入備份片之RMAN產生對SYS DBMS BACKUP RESTORE 資料包調用該調用控制檔案寫入備份資訊(包括
備份片名啟動備份操作時檢查點SCN和完成備份時間)
至此完成備份
希望大家繼續討論RMAN備份恢複原理(RMAN功能太強大了)
rman 控制檔案備份恢複過程?========================備份控制檔案====================
backup current controlfile
backup database include current controlfile
=======================RMAN恢複================
非catalog模式下備份資訊儲存controlfile檔案controlfile檔案發生毀壞能能夠進行恢複
使用備份時候需要把controlfile也進行自動備份
RMAN>show all;
using target database control file instead of recovery catalog
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/home/oracle/product/10.20/dbs/snapcf_ora10g.f'; # default
其CONFIGURE CONTROLFILE AUTOBACKUP OFF; 沒有對controlfile進行 autobackup,使用我們需要運行下面命令來對controlfile進行自動備份
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> show all;
手動備份控制檔案:
backup current controlfile
Dbid表示databaseID來用於恢複spfile和controlfile時候要用.
RMAN> connect target /
connected to target database: ORA10G (DBID=3988862108)
Dbid=3988862108
RMAN> list backup;查看前備份資訊
RMAN>delete backupset 24;//24代表backupset 編號
RMAN>backup format '/u01/rmanbak/full_%T_%U.bak' database plus archivelog;(進行次全備份)