首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

RMAN 備份加密全流程實測:AES256 密碼模式保護備份集防洩露

     編輯:Oracle 教學

業務痛點

備份文件 = 生產數據完整副本。**備份洩露 = 數據洩露**。RMAN 原生支持 **備份集加密**,防止文件被竊取後直接恢復。

環境與前提

  • Oracle 11.2.0.4+ 企業版
  • 備份類型:**BACKUPSET** (加密僅支持 Backup Set,**不支持 Image Copy**)
  • 算法:AES128 / AES192 / AES256 (推薦)
  • 模式:**密碼模式** (Password Mode) — 最簡單、無需 Wallet/HSM

完整實測流程

1. 檢查支持算法並設置默認

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

2. 創建測試表空間/表/數據

SQL> CREATE TABLESPACE rman_test DATAFILE '/u01/data/rman_test01.dbf' SIZE 100M;
SQL> CREATE TABLE chf.t_encrypt TABLESPACE rman_test AS SELECT * FROM dba_objects;
-- 86,721 行

3. 加密備份 (SET ENCRYPTION ON IDENTIFIED BY ... ONLY)

RMAN> SET ENCRYPTION ON IDENTIFIED BY 'StrongPass#2024' ONLY;
RMAN> BACKUP DATAFILE 5;  -- 文件號 5 為 rman_test01.dbf

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/data/rman_test01.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/backup/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

關鍵:ONLY 表示**僅密碼模式**,不使用 Wallet。無密碼不可恢復。

4. 模擬災難:離線並刪除數據文件

RMAN> SQL 'ALTER DATABASE DATAFILE 5 OFFLINE';
$ rm /u01/data/rman_test01.dbf

5. 恢復測試:三種密碼場景

場景命令結果
無密碼RESTORE DATAFILE 5;❌ ORA-19913: unable to decrypt backup ORA-28365: wallet is not open
錯誤密碼SET DECRYPTION IDENTIFIED BY 'WrongPass'; RESTORE DATAFILE 5;❌ 同樣解密失敗
正確密碼SET DECRYPTION IDENTIFIED BY 'StrongPass#2024'; RESTORE DATAFILE 5;✅ 成功恢復,後續 RECOVER DATAFILE 5; SQL 'ALTER DATABASE DATAFILE 5 ONLINE'; 完成

6. 數據完整性驗證

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

關鍵參數與命令速查

命令/參數作用
CONFIGURE ENCRYPTION ALGORITHM 'AES256'持久化默認算法
SET ENCRYPTION ON IDENTIFIED BY 'pwd' ONLY當前會話啟用密碼加密 (僅密碼模式)
SET ENCRYPTION ON IDENTIFIED BY 'pwd'密碼 + Wallet 雙模式 (任一可解密)
SET DECRYPTION IDENTIFIED BY 'pwd'恢復會話指定解密密碼
SET DECRYPTION WALLET恢復會話使用 Wallet 解密

最佳實踐與避坑指南

  1. 密碼管理:備份密碼**異地存儲、分級管控、定期輪換**,納入密碼管理系統 (KeePass/HashiCorp Vault/企業級 PAM)。
  2. 算法選 AES256:兼容性好、強度高、性能開銷可接受。
  3. 僅加密 BACKUPSET:BACKUP AS COPY (Image Copy) **不支持加密**,需轉換為 BACKUPSET 或配合存儲層加密 (SAN/NAS/雲盤加密)。
  4. 帶庫備份:需 Oracle Secure Backup (OSB) 或媒體管理層 (MML) 支持加密流傳輸。
  5. 定期演練:季度執行「全庫加密備份 → 異地恢復 → 數據校驗」演練,驗證密碼可用性、恢復流程時效。
  6. 兼容性:加密備份集**只能同版本/高版本恢復**,跨平台需 CONVERT。

總結

**RMAN 密碼模式加密是「零代碼、零架構變更、即開即用」的備份安全基線**。
核心三步:
1. CONFIGURE ENCRYPTION ALGORITHM 'AES256'
2. SET ENCRYPTION ON IDENTIFIED BY 'pwd' ONLY + BACKUP
3. SET DECRYPTION IDENTIFIED BY 'pwd' + RESTORE
將密碼納入核心機密管理體系,定期演練恢復,**讓備份文件在「被偷走」的那一刻依然是廢鐵**。

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