使用RMAN备份,数据库兼容性初始参数至少是10.2.0,RMAN不支持复制镜像加密
启动rman后,用show all命令可以看到与备份加密有关的配置:
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
RMAN支持的加密算法可以通过如下视图看到:V$RMAN_ENCRYPTION_ALGORITHMS;
RMAN 加密备份分一下三种模式
1、透明加密备份(Transparent Encryption of backups) ---默认加密模式
这种方法不需要设置密码,很适合在本地的备份与恢复,如果备份不需要传到其他的机器上,建议采用这样的加密方法。因为不需要密码,只需要配置加密/解密信任书,也就是Oracle Encryption Wallet.
启动这种形式的加密方法很简单,首先需要配置Oracle Encryption Wallet,简单的步骤如下:
■配置sqlnet.ora,设置加密方式与文件地址:
打开$ORACLE_HOME/network/admin目录下的sqlnet.ora添加以下条目:
ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=D:\oracle\product\10.2.0\db_1\admin)))
■创建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;
然后就可以加密备份了
2、密码加密备份(Password Encryption of Backups)
当你需要将备份文件传送到另外一个站点的时候,Password方式就非常有用了,它不需要事先在另一端设置。你可以将下列脚本添加到RMAN备份脚本中:
SET ENCRYPTION ON IDENTIFIED BY 'password' ONLY
当备份文件带有密码的时候,你就必须提供原始密码:
SET DECRYPTION IDENTIFIED BY 'password'
如果你把密码遗失了,数据就不能恢复。同样,为了确保RMAN脚本的安全性,你同样也可以对它使用密码保护。
下面是一个测试
--关闭数据库,删除数据文件,模拟数据库损坏
--不指定密码恢复
--下面指定密码进行正常恢复
3、双模式加密备份(Dual Encryption of Backups)
该方式既具有透明性又使用了密码。如果你通常都同一个服务器上进行恢复,但是偶尔也需要把它转移到没有安装Oracle Encryption Wallet的其它服务器上的话,这时候你就可以使用dual-mode这种方式了。这种方式与password方式类似,但是在这种方式下,如果备份文件离开了自身的服务器后就需要密码了:
SET ENCRYPTION ON IDENTIFIED BY 'password'
参看:http://www.di.unipi.it/~ghelli/didattica/bdldoc/B19306_01/backup.102/b14191/rcmbackp006.htm