Oracle RMAN備份恢復加密解密

說明:本文爲Oracle 11gR2下RMAN客戶端的備份恢復加密解密指導手冊
標籤:備份安全、Rman備份加密、Rman備份解密
溫馨提示:如果您發現本文哪裏寫的有問題或者有更好的寫法請留言或私信我進行修改優化

大綱
--密碼口令安全(英文:Password-based encryption[密碼加密])
--Oracle Wallet安全(英文:Transparent encryption[透明加密])
--混合加密安全(英文:Dual-mode encryption[雙模式加密])
--環境清理
--常見問題

★ 密碼口令安全(英文:Password-based encryption[密碼加密])
/////////////////////////////////////////
✔適用場景:如果本地備份恢復,就可以使用wallet進行透明操作。如果是異地恢復,可以使用密碼策略。
※ 查看數據庫RMAN加密解密設置
RMAN> show encryption algorithm;        默認:AES128,還可以是AES192、AES256
RMAN> show encryption for database;        默認:OFF

※ 加密
RMAN> set encryption on identified by 'oracle' only;    設置密碼清單,加ONLY以指示使用密碼加密
RMAN> backup datafile 4 tag 'encry';
RMAN> set encryption off;

※ 解密
RMAN> set decryption identified by 'oracle';
RMAN> sql 'alter database datafile 4 offline';
RMAN> restore datafile 4 force;

★ Oracle Wallet安全(英文:Transparent encryption[透明加密])
/////////////////////////////////////////
✔適用場景:這種方式比較適合本地數據恢復,如果本地異地恢復結合的方式,建議使用第三種混合策略。
✔安全性能:最安全的方式,但是不適合異機備份恢復,要是wallet損壞備份將無法恢復
※ 創建並開啓wallet
su - oracle
mkdir -p /home/oracle/zzt/wallet
cd $ORACLE_HOME/network/admin
vi sqlnet.ora
    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/home/oracle/zzt/wallet)))
sqlplus / as sysdba
SQL > alter system set encryption key authenticated by "oracle";            創建wallet
SQL > alter system set encryption wallet close identified by "oracle";        關閉wallet
SQL > alter system set encryption wallet open identified by "oracle";        開啓wallet

※ 加密(必須在SQL中打開wallet)
RMAN> set encryption on;        臨時配置RMAN的備份加密策略,如果配置了永久策略那麼臨時策略可以不設置
RMAN> backup datafile 4 tag 'encry';
RMAN> set encryption off;

※ 解密(必須在SQL中打開wallet)
RMAN> sql 'alter database datafile 4 offline';
RMAN> restore datafile 4 force;

★ 混合加密安全(英文:Dual-mode encryption[雙模式加密])
/////////////////////////////////////////
✔官方解釋:Dual-mode encryption, where backups can be created using either as with transparent encryption or password-based encryption, and where decryption can be performed based upon either the Oracle Wallet, or a password the DBA supplies at decryption time
✔適用場景:混合加密策略相當於使用了兩種策略進行了加密備份,恢復時任選其中一種模式即可進行恢復
✔安全性能:該模式並不比wallet模式更安全,它只是比較靈活方便而已
✔溫馨提示:Oracle會先檢測密碼清單,如果沒有密碼或沒有正確的密碼,就會轉而使用wallet進行解密,如果此時wallet也關閉的則恢復操作失敗告終
※ 創建並開啓wallet
su - oracle
mkdir -p /home/oracle/zzt/wallet
cd $ORACLE_HOME/network/admin
vi sqlnet.ora
    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/home/oracle/zzt/wallet)))
sqlplus / as sysdba
SQL > alter system set encryption key authenticated by "oracle";            創建wallet
SQL > alter system set encryption wallet close identified by "oracle";        關閉wallet
SQL > alter system set encryption wallet open identified by "oracle";        開啓wallet
SQL > exit
ls -l /home/oracle/zzt/wallet/

※ 加密(必須在SQL中打開wallet)
su - oracle
rman target /
RMAN> set encryption identified by "oracle" on;     設置密碼清單,省略ONLY以指示雙模式加密
RMAN> backup datafile 4 tag 'encry';
RMAN> set encryption off;                            關閉密碼清單
RMAN> list backup;

※ 解密(密碼模式解密)(wallet可以不打開)
su - oracle
rman target /
RMAN> set decryption identified by 'oracle';        設置密碼清單
RMAN> sql 'alter database datafile 4 offline';
RMAN> restore datafile 4 force;                        force會強制RMAN執行restore

※ 解密(wallet模式解密)(必須在SQL中打開wallet)
su - oracle
rman target /
RMAN> sql 'alter database datafile 4 offline';        使用wallet解密時不需要set特別指定
RMAN> restore datafile 4 force;

 

★ 清理環境
/////////////////////////////////////////
su - oracle
rman target /
RMAN> delete backup tag 'encry';        清理所有備份,Oracle禁止該方式使用noprompt


★ 常見問題
/////////////////////////////////////////
※ sqlplus需要重新登錄
    提示:ORA-28368: cannot auto-create wallet
    處理:退出後重新登錄

※ wallet沒有打開
    提示:
        ORA-19913: unable to decrypt backup
        ORA-28365: wallet is not open
    原因:
        wallet沒有打開
        Dual-mode encryption下密碼不正確,導致RMAN使用wallet解密,而wallet又沒有打開導致恢復失敗

 

 

※ 如果您覺得文章寫的還不錯, 別忘了在文末給作者點個贊哦 ~

over

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章