首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle RMAN 備份集加密實戰:SET ENCRYPTION 密碼模式驗證與恢復測試

     編輯:Oracle 資料庫相關知識

備份檔若被竊取等同於資料庫被入侵。Oracle 10.2+ Enterprise Edition 提供 SET ENCRYPTION IDENTIFIED BY ... ONLY 密碼模式加密,僅支援 BACKUPSET(不支援 Image Copy),需搭配 OSB (Oracle Secure Backup) 寫入帶庫。本文完整記錄 11.2.0.4 環境下 AES256 加密備份、錯誤密碼拒絕、正確密碼恢復的全流程驗證。

環境基線

SQL> SELECT * FROM v$version;
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
SQL> SHOW PARAMETER compatible
NAME      TYPE   VALUE
compatible string 11.2.0.4.0

支援加密演算法

SQL> SELECT algorithm_name FROM v$rman_encryption_algorithms;
ALGORITHM_NAME
----------------
AES128
AES192
AES256

調整預設演算法為 AES256

RMAN> CONFIGURE ENCRYPTION ALGORITHM 'AES256';
RMAN> SHOW ENCRYPTION ALGORITHM;
CONFIGURE ENCRYPTION ALGORITHM 'AES256';

建立測試資料

SQL> CREATE TABLESPACE rman_xifenfei DATAFILE '/u01/app/oracle/oradata/orcl/xifenfei01.dbf' SIZE 100M;
SQL> CREATE TABLE chf.t_xifenfei TABLESPACE rman_xifenfei AS SELECT * FROM dba_objects;
SQL> SELECT COUNT(*) FROM chf.t_xifenfei;  -- 86721 rows

加密備份執行

RMAN> SET ENCRYPTION ON IDENTIFIED BY 'www.111cn.net' ONLY;
RMAN> BACKUP DATAFILE 5;

Starting backup at 28-JAN-15
allocated channel: ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00005 name=/u01/app/oracle/oradata/orcl/xifenfei01.dbf
channel ORA_DISK_1: starting piece 1 at 28-JAN-15
channel ORA_DISK_1: finished piece 1 at 28-JAN-15
piece handle=/u01/2015_01_28/o1_mf_nnndf_TAG20150128T230115_bdkyfvlw_.bkp
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 28-JAN-15

模擬災難:刪除資料檔

RMAN> SQL 'ALTER DATABASE DATAFILE 5 OFFLINE';
[oracle@localhost ~]$ rm /u01/app/oracle/oradata/orcl/xifenfei01.dbf

恢復測試三階段

1. 無密碼嘗試 → 失敗

RMAN> RESTORE DATAFILE 5;
ORA-19870: error while restoring backup piece ...
ORA-19913: unable to decrypt backup
ORA-28365: wallet is not open

2. 錯誤密碼嘗試 → 失敗

RMAN> SET DECRYPTION IDENTIFIED BY 'www.orasos.com';
RMAN> RESTORE DATAFILE 5;
ORA-19913: unable to decrypt backup
ORA-28365: wallet is not open

3. 正確密碼恢復 → 成功

RMAN> SET DECRYPTION IDENTIFIED BY 'www.111cn.net';
RMAN> RESTORE DATAFILE 5;
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 28-JAN-15

RMAN> RECOVER DATAFILE 5;
media recovery complete, elapsed time: 00:00:00

RMAN> SQL 'ALTER DATABASE DATAFILE 5 ONLINE';

資料驗證

SQL> SELECT COUNT(*) FROM chf.t_xifenfei;
COUNT(*)
----------
     86721

加密模式對比

模式語法金鑰管理適用場景優點缺點
密碼模式SET ENCRYPTION IDENTIFIED BY 'pwd' ONLY手工輸入/腳本變數異地備份、雲備份、無 Wallet 基礎設施簡單、無額外元件、跨平台可移植腳本含明文密碼風險、大量備份作業需重複輸入
Wallet 模式SET ENCRYPTION ON IDENTIFIED BY WALLETOracle Wallet (PKI)企業標準化備份、自動化腳本、合規要求無明文密碼、支援證書輪換、集中管理需部署 Wallet、啟動需開啟 Wallet、單點故障
透明模式CONFIGURE ENCRYPTION FOR DATABASE ONWallet 自動開啟全庫預設加密、零侵入應用完全透明、無需修改腳本依賴 Wallet 自動登入、安全性取決於 Wallet 保護

最佳實踐建議

  1. 密碼管理:使用環境變數/密碼保險箱 (HashiCorp Vault/CyberArk) 注入腳本,嚴禁明文寫死。
  2. 演算法選擇:AES256 為最高強度,效能損耗 < 5%,預設即可。
  3. 備份驗證:定期執行 RESTORE VALIDATE + SET DECRYPTION 驗證可恢復性。
  4. 金鑰輪換:密碼模式下定期更換密碼並重新備份;Wallet 模式依賴證書生命週期管理。
  5. 合規留存:加密備份同樣受資料留存政策約束,需規劃解密金鑰長期保管(離線、分散式存儲、多方授權)。

加密備份的核心價值在於「備份介質失竊 ≠ 資料洩露」。但若解密金鑰管理不善(寫在腳本、貼在螢幕、單人獨知),加密反而成為恢復障礙。金鑰管理比加密演算法更關鍵。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved