说明:本文为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