RMAN的備份加密
http://hi.baidu.com/optical/item/f00623d908c4393f49e1dd5b
RMAN的備份加密
Oracle 從10gR2開始,提供備份加密,也就是說,對備份出來的檔案採用一定的加密演算法,防止備份檔案被拷貝到別的地方可以隨意恢復。採用加密方法的備份,如果在異地還原(Restore)的話,需要提供正確的密碼才能做到。
啟動rman後,用show all命令可以看到與備份加密有關的配置:
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
RMAN支援的加密演算法可以通過如下檢視看到:V$RMAN_ENCRYPTION_ALGORITHMS;
配置加密演算法通過如下語句完成:
RMAN> CONFIGURE ENCRYPTION ALGORITHM TO 'AES256';
可以用如下的方法開啟加密備份方式:
1)RMAN> set encryption on identified by 'password' only;
2)RMAN> set encryption on identified by 'password';
3)RMAN> configure encryption for database on;
RMAN> set encryption on;
以上的加密分為3個級別:
1)密碼(password)形式
這是最簡單的模式,備份的時候通過以下語句設定備份密碼,然後備份資料庫或對應的表空間、資料檔案等。
RMAN> set encryption on identified by "mypass" only;
RMAN> backup database;
恢復的時候,則需要指定解密的密碼才可:
RMAN> set decryption identified by "mypass";
RMAN> restore database;
這種方法簡單,但缺點是密碼是明文的。
下面是一個簡單的測試過程:
D:oracle11gBIN>rman target/
恢復管理器: Release 11.1.0.7.0 - Production on 星期四 11月 20 21:26:19 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
已連線到目標資料庫 (未啟動)
RMAN> startup mount;
Oracle 例項已啟動
資料庫已裝載
系統全域性區域總計 313860096 位元組
Fixed Size 1347020 位元組
Variable Size 276824628 位元組
Database Buffers 29360128 位元組
Redo Buffers 6328320 位元組
RMAN> set encryption on identified by "mypass" only;
正在執行命令: SET encryption
使用目標資料庫控制檔案替代恢復目錄
RMAN> backup database format='d:backup%d_%s.bak';
啟動 backup 於 20-11月-08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=154 裝置型別=DISK
通道 ORA_DISK_1: 正在啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集內的資料檔案
輸入資料檔案: 檔案號=00001 名稱=D:ORACLE11GORADATAORA11GSYSTEM01.DBF
輸入資料檔案: 檔案號=00002 名稱=D:ORACLE11GORADATAORA11GSYSAUX01.DBF
輸入資料檔案: 檔案號=00005 名稱=D:ORACLE11GORADATAORA11GDATA_01.DBF
輸入資料檔案: 檔案號=00006 名稱=D:ORACLE11GORADATAORA11GUNDOTBS02.DBF
輸入資料檔案: 檔案號=00004 名稱=D:ORACLE11GORADATAORA11GUSERS01.DBF
通道 ORA_DISK_1: 正在啟動段 1 於 20-11月-08
通道 ORA_DISK_1: 已完成段 1 於 20-11月-08
段控制程式碼=D:BACKUPORA11G_11.BAK 標記=TAG20081120T212648 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:02:05
通道 ORA_DISK_1: 正在啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集內的資料檔案
備份集內包括當前控制檔案
備份集內包括當前的 SPFILE
通道 ORA_DISK_1: 正在啟動段 1 於 20-11月-08
通道 ORA_DISK_1: 已完成段 1 於 20-11月-08
段控制程式碼=D:BACKUPORA11G_12.BAK 標記=TAG20081120T212648 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:01
完成 backup 於 20-11月-08
RMAN> shutdown immediate;
使用目標資料庫控制檔案替代恢復目錄
資料庫已卸裝
Oracle 例項已關閉
--刪除資料檔案,模擬資料庫損壞
RMAN> startup mount;
資料庫已經啟動
資料庫已裝載
未指定密碼,看是否能夠恢復
RMAN> restore database;
啟動 restore 於 20-11月-08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=154 裝置型別=DISK
通道 ORA_DISK_1: 正在開始還原資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
通道 ORA_DISK_1: 將資料檔案 00001 還原到 D:ORACLE11GORADATAORA11GSYSTEM01.DBF
通道 ORA_DISK_1: 將資料檔案 00002 還原到 D:ORACLE11GORADATAORA11GSYSAUX01.DBF
通道 ORA_DISK_1: 將資料檔案 00004 還原到 D:ORACLE11GORADATAORA11GUSERS01.DBF
通道 ORA_DISK_1: 將資料檔案 00005 還原到 D:ORACLE11GORADATAORA11GDATA_01.DBF
通道 ORA_DISK_1: 將資料檔案 00006 還原到 D:ORACLE11GORADATAORA11GUNDOTBS02.DBF
通道 ORA_DISK_1: 正在讀取備份片段 D:BACKUPORA11G_11.BAK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 11/20/2008 21:33:52 上) 失敗
ORA-19870: 還原備份片段 D:BACKUPORA11G_11.BAK 時出錯
ORA-19913: 無法解密備份
ORA-28365: Wallet 未開啟
下面指定密碼,進行正常的恢復
RMAN> set decryption identified by "mypass";
正在執行命令: SET decryption
RMAN> restore database;
啟動 restore 於 20-11月-08
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始還原資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
通道 ORA_DISK_1: 將資料檔案 00001 還原到 D:ORACLE11GORADATAORA11GSYSTEM01.DBF
通道 ORA_DISK_1: 將資料檔案 00002 還原到 D:ORACLE11GORADATAORA11GSYSAUX01.DBF
通道 ORA_DISK_1: 將資料檔案 00004 還原到 D:ORACLE11GORADATAORA11GUSERS01.DBF
通道 ORA_DISK_1: 將資料檔案 00005 還原到 D:ORACLE11GORADATAORA11GDATA_01.DBF
通道 ORA_DISK_1: 將資料檔案 00006 還原到 D:ORACLE11GORADATAORA11GUNDOTBS02.DBF
通道 ORA_DISK_1: 正在讀取備份片段 D:BACKUPORA11G_11.BAK
通道 ORA_DISK_1: 段控制程式碼 = D:BACKUPORA11G_11.BAK 標記 = TAG20081120T212648
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 還原完成, 用時: 00:02:05
完成 restore 於 20-11月-08
RMAN> alter database open;
資料庫已開啟
RMAN>
2)透明(Transparent)形式
這種方法不需要設定密碼,很適合在本地的備份與恢復,如果備份不需要傳到其他的機器上,建議採用這樣的加密方法。因為不需要密碼,只需要配置加密/解密信任書,也就是Oracle Encryption Wallet.
啟動這種形式的加密方法很簡單,首先需要配置Oracle Encryption Wallet,簡單的步驟如下:
■配置sqlnet.ora,設定加密方式與檔案地址:
ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=D:oradatawallet)))
■建立wallet,包括設定密碼、生成信任檔案、並啟動wallet:
SQL> alter system set encryption key authenticated BY "zrp123";
然後可以用如下的方式開啟或關閉wallet,需要注意的是,以上的命令完成以後,wallet就自動啟動了,不需要在啟動。
SQL> alter system set wallet open identified by "zrp123";
SQL> alter system set encryption wallet close;
在採用這種方式備份前,確保wallet是open的.
RMAN> configure encryption for database on;
RMAN> set encryption on;
然後就可以加密備份了,下面看一個測試過程:
D:oracle11gBIN>rman target/
恢復管理器: Release 11.1.0.7.0 - Production on 星期四 11月 20 21:53:17 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
已連線到目標資料庫 (未啟動)
RMAN> startup mount;
Oracle 例項已啟動
資料庫已裝載
系統全域性區域總計 313860096 位元組
Fixed Size 1347020 位元組
Variable Size 276824628 位元組
Database Buffers 29360128 位元組
Redo Buffers 6328320 位元組
RMAN> sql 'alter system set wallet open identified by "zrp123"'; --開啟Wallet
使用目標資料庫控制檔案替代恢復目錄
sql 語句: alter system set wallet open identified by "zrp123"
RMAN> configure encryption for database on; --採用透明加密方式
新的 RMAN 配置引數:
CONFIGURE ENCRYPTION FOR DATABASE ON;
已成功儲存新的 RMAN 配置引數
RMAN> set encryption on;
正在執行命令: SET encryption
RMAN> backup database format='d:backup%d_%s.bak';
啟動 backup 於 20-11月-08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=154 裝置型別=DISK
通道 ORA_DISK_1: 正在啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集內的資料檔案
輸入資料檔案: 檔案號=00001 名稱=D:ORACLE11GORADATAORA11GSYSTEM01.DBF
輸入資料檔案: 檔案號=00002 名稱=D:ORACLE11GORADATAORA11GSYSAUX01.DBF
輸入資料檔案: 檔案號=00005 名稱=D:ORACLE11GORADATAORA11GDATA_01.DBF
輸入資料檔案: 檔案號=00006 名稱=D:ORACLE11GORADATAORA11GUNDOTBS02.DBF
輸入資料檔案: 檔案號=00004 名稱=D:ORACLE11GORADATAORA11GUSERS01.DBF
通道 ORA_DISK_1: 正在啟動段 1 於 20-11月-08
通道 ORA_DISK_1: 已完成段 1 於 20-11月-08
段控制程式碼=D:BACKUPORA11G_13.BAK 標記=TAG20081120T215400 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:02:06
通道 ORA_DISK_1: 正在啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集內的資料檔案
備份集內包括當前控制檔案
備份集內包括當前的 SPFILE
通道 ORA_DISK_1: 正在啟動段 1 於 20-11月-08
通道 ORA_DISK_1: 已完成段 1 於 20-11月-08
段控制程式碼=D:BACKUPORA11G_14.BAK 標記=TAG20081120T215400 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:01
完成 backup 於 20-11月-08
先關閉wallet,並刪除users表空間下的所有資料檔案,模擬損壞表空間,看能不能恢復. RMAN> sql 'alter system set encryption wallet close';
sql 語句: alter system set encryption wallet close
RMAN> RESTORE TABLESPACE users;
啟動 restore 於 20-11月-08
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始還原資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
通道 ORA_DISK_1: 將資料檔案 00004 還原到 D:ORACLE11GORADATAORA11GUSERS01.DBF
通道 ORA_DISK_1: 正在讀取備份片段 D:BACKUPORA11G_13.BAK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 11/20/2008 21:59:22 上) 失敗
ORA-19870: 還原備份片段 D:BACKUPORA11G_13.BAK 時出錯
ORA-19913: 無法解密備份
ORA-28365: Wallet 未開啟 下面再開啟Wallet,接著恢復看看:
RMAN> sql 'alter system set wallet open identified by "zrp123"';
sql 語句: alter system set wallet open identified by "zrp123"
RMAN> RESTORE TABLESPACE users;
啟動 restore 於 20-11月-08
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始還原資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
通道 ORA_DISK_1: 將資料檔案 00004 還原到 D:ORACLE11GORADATAORA11GUSERS01.DBF
通道 ORA_DISK_1: 正在讀取備份片段 D:BACKUPORA11G_13.BAK
通道 ORA_DISK_1: 段控制程式碼 = D:BACKUPORA11G_13.BAK 標記 = TAG20081120T215400
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 還原完成, 用時: 00:00:01
完成 restore 於 20-11月-08
RMAN> RECOVER TABLESPACE users;
啟動 recover 於 20-11月-08
使用通道 ORA_DISK_1
正在開始介質的恢復
介質恢復完成, 用時: 00:00:00
完成 recover 於 20-11月-08
RMAN> alter database open;
資料庫已開啟
RMAN>OK,恢復成功.
3)混合(Dual-mode)形式
因為在透明模式下,啟動了Oracle Encryption Wallet,這樣的備份是無法到別的機器上去恢復的。這個時候,可以通過設定加密的密碼,如:
RMAN> set encryption on identified by "mypass";
對比密碼方式,它僅僅是少了only這個關鍵字,這種情況下,如果在本地備份與恢復,是不需要密碼的,如果是在異地恢復(如在別的機器上恢復該備份),只需要設定解密的密碼即可。
RMAN> set decryption on identified by "mypass";
RMAN> restore database;
第三種方式,是前面2種方式的混合模式,就不再繼續測試了
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24570973/viewspace-751873/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RMAN加密備份的三種方式加密
- 【RMAN】RMAN的備份保留策略
- RMAN的備份原理
- 【RMAN】RMAN備份至ASMASM
- RMAN備份概述
- RMAN備份恢復典型案例——RMAN備份&系統變慢
- RMAN備份進度
- rman 備份指令碼指令碼
- RMAN 備份相關的概念
- RMAN備份恢復技巧
- 【rman備份策略】實驗
- Oracle RMAN備份實戰Oracle
- Oracle OCP(60):RMAN 備份Oracle
- rman 增量備份恢復
- 分享Oracle Rman的備份指令碼Oracle指令碼
- 【備份】RMAN中對控制檔案的幾種備份方法
- 【RMAN】同時建立多個備份(建立多重備份)
- 【RMAN】在備庫執行rman備份時報錯RMAN-06820 ORA-17629
- [20190522]rman備份問題.txt
- RMAN備份異機恢復
- RMAN備份詳解(轉載)
- 使用RMAN備份資料庫資料庫
- rman開啟備份優化對備份歸檔的影響優化
- Oracle ADG環境下的RMAN備份策略Oracle
- RMAN備份的最佳化和調整
- [20190510]rman備份的疑問8.txt
- [20190510]rman備份的疑問7.txt
- [20190509]rman備份的疑問5.txt
- RMAN備份恢復效能優化優化
- RMAN備份中發現壞塊
- RMAN自動備份任務新增
- oracle 12c rman備份pdbOracle
- 利用RMAN備份重建資料庫資料庫
- RMAN備份與恢復測試
- 【RMAN】在多租戶環境下的RMAN備份及恢復
- Oracle Rman Catalog的建立方法和備份原理Oracle
- RMAN備份中的通道(CHANNEL)相關 - PARALLELISM 、FILESPERSETParallel
- oracle10g RMAN增量備份策略Oracle
- rman備份archivelog出現ORA-19625Hive