数据库的资料泄密不是管好数据库的登录用户口令之类就可以了的。如果忽视了备份介质的存放,
别人在得到备份后,如果还原,不就能得到所有资料了。
所以如果数据真的很重要,把备份
加密起来,也是多了一种数据保护措施,再说通过测试,发现
Oracle设这个
也是很方便的。
--===============================
测试一:
1. 准备好测试用的表空间
CREATE TABLESPACE TBS_PWD DATAFILE 'C:\ORACLE\ORADATA\XCLDB\TBS_PWD01.DBF' SIZE 5m ;
2.打开加密
configure encryption for database on;
set encryption on identified by 'xcl' only;
3.开始备份,发现原来Wallet没打开
RMAN> backup tablespace tbs_pwd;
启动 backup 于 05-3月 -14
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=35 设备类型=DISK
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00010 名称=C:\ORACLE\ORADATA\XCLDB\TBS_PWD01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 05-3月 -14
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: backup 命令 (ORA_DISK_1 通道上, 在 03/05/2014 11:49:23 上) 失败
ORA-19914: 无法加密备份
ORA-28365: Wallet 未打开
4.尝试打开,噢,原来这个库还没创建
RMAN> sql 'alter system set wallet open identified by "xcl"';
sql 语句: alter system set wallet open identified by "xcl"
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: sql 命令 (default 通道上, 在 03/05/2014 11:52:19 上) 失败
RMAN-11003: 在分析/执行 SQL 语句期间失败: alter system set wallet open identified by "xcl"
ORA-28367: wallet 不存在
5. 创建Wallet,并设置密码.
a. 新建目录:
C:\oracle\admin\xcldb\wallet
b.找到sqlnet.ora
加上Wallet的配置
ENCRYPTION_WALLET_LOCATION=
(SOURCE=(METHOD=FILE) (METHOD_DATA=(DIRECTORY=C:\oracle\admin\xcldb\wallet)))
如果是UNIX/
Linux :
su - oracle
mkdir -p $ORACLE_BASE/oradata/$ORACLE_SID/wallet
chmod -R 750 $ORACLE_BASE/oradata/$ORACLE_SID/wallet
c.设置密码
RMAN> sql 'alter system set encryption key identified by "xcl"';
sql 语句: alter system set encryption key identified by "xcl"
执行完成后,会在C:\oracle\admin\xcldb\wallet生成一个文件
ewallet.p12
6. 备份表空间
RMAN> backup tablespace tbs_pwd;
启动 backup 于 05-3月 -14
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=223 设备类型=DISK
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00010 名称=C:\ORACLE\ORADATA\XCLDB\TBS_PWD01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 05-3月 -14
通道 ORA_DISK_1: 已完成段 1 于 05-3月 -14
段句柄=C:\ORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\05P2DUK3_1_1 标记=TAG20140305T142819 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
完成 backup 于 05-3月 -14
7. 关库,破坏,启动
a.关库
RMAN> shutdown immediate;
数据库已关闭
数据库已卸装
Oracle 实例已关闭
b. 删除tbs_pwd表空间的数据文件
c.启动
RMAN> startup
已连接到目标数据库 (未启动)
Oracle 实例已启动
数据库已装载
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: startup 命令 (在 03/05/2014 14:54:49 上) 失败
ORA-01157: 无法标识/锁定数据文件 10 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 10: 'C:\ORACLE\ORADATA\XCLDB\TBS_PWD01.DBF'
8.尝试还原,发现Wallet没打开,原来每次数据库启动,都要手工打开Wallet.
a. 尝试还原
RMAN> restore tablespace tbs_pwd;
启动 restore 于 05-3月 -14
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00010 还原到 C:\ORACLE\ORADATA\XCLDB\TBS_PW