三种Oracle RMAN备份加密策略
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
RMAN备份安全的三种策略分别为:密码口令安全、Oracle Wallet安全和混合加密安全
RMAN> show encryption for database ;
db_unique_name 为 NEWTEST 的数据库的 RMAN 配置参数为:
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
RMAN> show encryption algorithm;
db_unique_name 为 NEWTEST 的数据库的 RMAN 配置参数为:
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
默认RMAN是不启用加密机制的。加密问题一定跟随着加密算法,默认加密算法为AES128。查看视图v$RMAN_ENCRYPTION_ALGORITHMS,可以看到当前可以使用的加密算法。
RMAN> select * from v$rman_encryption_algorithms;
ALGORITHM_ID ALGORITHM_NAME
ALGORITHMDESCRIPTION IS RES
CON_ID
1 AES128
AES 128-bit key YES NO
0
2 AES192
AES 192-bit key NO NO
0
3 AES256
AES 256-bit key NO NO
0
使用口令加密,首先使用set encryption命令设置上口令。
RMAN> set encryption on identified by 'test' only
2> ;
正在执行命令: SET encryption
RMAN> show encryption for database;
db_unique_name 为 NEWTEST 的数据库的 RMAN 配置参数为:
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
RMAN> backup database plus archivelog;
从位于 05-2月 -18 的 backup 开始
当前日志已存档
从位于 05-2月 -18 的 backup 开始
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动归档日志备份集
通道 ORA_DISK_1: 正在指定备份集内的归档日志
输入归档日志线程 = 1 序列 = 15 RECID=155 STAMP=967284487
通道 ORA_DISK_1: 正于 05-2月 -18 启动段 1
通道 ORA_DISK_1: 完成了于 05-2月 -18 启动段 1
片段句柄 = E:\RECOVERYFLASH\NEWTEST\BACKUPSET\2018_02_05\O1_MF_ANNNN_TAG20180205T100807F7HH47FM.BKP 标记 = TAG20180205T100807 注释 = NONE
通道 ORA_DISK_1: 备份集完成, 用时: 00:00:01
在 05-2月 -18 完成了 backup
从位于 05-2月 -18 的 Control File and SPFILE Autobackup 开始
片段句柄 = E:\CONTROLBACKUP\CF-C-1779551310-20180205-04 注释 = NONE
在 05-2月 -18 完成了 Control File and SPFILE Autobackup
RMAN> shutdown immediate;
数据库已关闭
数据库已卸装
Oracle 实例已关闭
RMAN> startup mount;
已连接到目标数据库 (未启动)
Oracle 实例已启动
数据库已装载
系统全局区域总计 2768240640 字节
Fixed Size 8922760 字节
Variable Size 704645496 字节
Database Buffers 2046820352 字节
Redo Buffers 7852032 字节
RMAN> restore database ;
从位于 05-2月 -18 的 restore 开始
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=33 设备类型=DISK
正在跳过数据文件 2; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\PDBSEED\SYSTEM01.DBF
正在跳过数据文件 4; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\PDBSEED\SYSAUX01.DBF
正在跳过数据文件 6; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\PDBSEED\UNDOTBS01.DBF
正在跳过数据文件 8; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\PDBTEST\SYSTEM01.DBF
正在跳过数据文件 9; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\PDBTEST\SYSAUX01.DBF
正在跳过数据文件 10; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\PDBTEST\UNDOTBS01.DBF
正在跳过数据文件 11; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\PDBTEST\USERS01.DBF
正在跳过数据文件 40; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\CLONEPDB_PLUG\SYSTEM01.DBF
正在跳过数据文件 41; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\CLONEPDB_PLUG\SYSAUX01.DBF
正在跳过数据文件 42; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\CLONEPDB_PLUG\UNDOTBS01.DBF
正在跳过数据文件 43; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\CLONEPDB_PLUG\USERS01.DBF
正在跳过数据文件 45; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\CLONEPDB_PLUG\FDA01.DBF
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\SYSTEM01.DBF
通道 ORA_DISK_1: 将数据文件 00003 还原到 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\SYSAUX01.DBF
通道 ORA_DISK_1: 将数据文件 00005 还原到 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\UNDOTBS01.DBF
通道 ORA_DISK_1: 将数据文件 00007 还原到 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份片段 E:\RECOVERYFLASH\NEWTEST\BACKUPSET\2018_02_05\O1_MF_NNNDF_TAG20180205T100514F7HGYVZ5.BKP
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: 位于 02/05/2018 10:11:52 的 restore 命令失败
ORA-19870: 还原备份片段 E:\RECOVERYFLASH\NEWTEST\BACKUPSET\2018_02_05\O1_MF_NNNDF_TAG20180205T100514F7HGYVZ5.BKP 时出错
ORA-19913: 无法解密备份
ORA-28365: Wallet 未打开
RMAN> set decryption identified by 'test';
正在执行命令: SET decryption
RMAN> restore database ;
从位于 05-2月 -18 的 restore 开始
使用通道 ORA_DISK_1
正在跳过数据文件 2; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\PDBSEED\SYSTEM01.DBF
正在跳过数据文件 4; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\PDBSEED\SYSAUX01.DBF
正在跳过数据文件 6; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\PDBSEED\UNDOTBS01.DBF
正在跳过数据文件 8; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\PDBTEST\SYSTEM01.DBF
正在跳过数据文件 9; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\PDBTEST\SYSAUX01.DBF
正在跳过数据文件 10; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\PDBTEST\UNDOTBS01.DBF
正在跳过数据文件 11; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\PDBTEST\USERS01.DBF
正在跳过数据文件 40; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\CLONEPDB_PLUG\SYSTEM01.DBF
正在跳过数据文件 41; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\CLONEPDB_PLUG\SYSAUX01.DBF
正在跳过数据文件 42; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\CLONEPDB_PLUG\UNDOTBS01.DBF
正在跳过数据文件 43; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\CLONEPDB_PLUG\USERS01.DBF
正在跳过数据文件 45; 已还原到文件 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\CLONEPDB_PLUG\FDA01.DBF
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\SYSTEM01.DBF
通道 ORA_DISK_1: 将数据文件 00003 还原到 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\SYSAUX01.DBF
通道 ORA_DISK_1: 将数据文件 00005 还原到 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\UNDOTBS01.DBF
通道 ORA_DISK_1: 将数据文件 00007 还原到 C:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\NEWTEST\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份片段 E:\RECOVERYFLASH\NEWTEST\BACKUPSET\2018_02_05\O1_MF_NNNDF_TAG20180205T100514F7HGYVZ5.BKP
通道 ORA_DISK_1: 片段句柄 = E:\RECOVERYFLASH\NEWTEST\BACKUPSET\2018_02_05\O1_MF_NNNDF_TAG20180205T100514F7HGYVZ5.BKP 标记 = TAG20180205T100514
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:01:05
在 05-2月 -18 完成了 restore
RMAN> recover database;
从位于 05-2月 -18 的 recover 开始
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:01
在 05-2月 -18 完成了 recover
RMAN> alter database open;
已处理语句
RMAN> set encryption off;
正在执行命令: SET encryption
这种策略,是比较简单的RMAN备份集合加密策略。一般正式运维场景下,是不使用这个的。
Oracle Wallet加密策略
Oracle Wallet是一种加密安全策略,过去我们在TDE(Oracle透明加密)部分研究过这个组件。简单的说,Oracle Wallet就是在本机上配置一个加密配置文件,通过SQL命令控制Oracle Wallet的开启关闭状态,如果Wallet关闭或者不存在,那么一些加密的信息(包括TDE和RMAN备份集合)数据就不能正常打开。
使用Oracle Wallet应用在RMAN备份中,可以实现类似的透明策略。而且,备份集合只能在相同的服务器(借助Wallet文件)才能正确打开。
rman似乎有问题下次测试