OCP读书笔记(4)

4.Configuring Backup Settings

查看RMAN持久化设置

[oracle@easthome ~]$ rman target /
RMAN> show all;
SQL> select name, value from v$rman_configuration;

控制文件自动备份

SQL> create tablespace tt datafile '/u01/app/oracle/oradata/orcl/tt01.dbf' size 1M;

RMAN> list backup of controlfile;--此时控制文件没有发生自动备份
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;--打开控制文件的自动备份

SQL> drop tablespace tt including contents and datafiles;--表空间tt被删除,控制文件内容发生变化,自动备份打开,所以控制文件自动备份

RMAN> list backup of controlfile;

配置控制文件自动备份到的位置:

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/app/oracle/backup/rmanbk/%F'; --默认备份到快速闪回区(/u01/app/oracle/fast_recovery_area/ORCL/autobackup)

SQL> create tablespace tt datafile '/u01/app/oracle/oradata/orcl/tt01.dbf' size 1m;

RMAN> list backup of controlfile;

IIIIIIIIII stands for the DBID.
YYYYMMDD:备份的时间
QQ:产生备份的序列号,十六进制,从00开始FF结束

创建多个备份集

RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 3; --改变配置

RMAN> BACKUP COPIES 3 TABLESPACE USERS FORMAT='/u01/app/oracle/backup/rmanbk/%N_%s_%c.dbf','/u01/app/oracle/backup/rmanbk/%N_%s_%c.dbf','/u01/app/oracle/backup/rmanbk/%N_%s_%c.dbf'; --通过在命令中指定份数:

注意:多份备份只适用于备份集备份,不能用于镜像备份,不能使用快速闪回区

备份优化

RMAN> CONFIGURE BACKUP OPTIMIZATION ON; --跳过已经备份的文件
RMAN> BACKUP DEVICE TYPE sbt BACKUPSET ALL FORCE; --使用force选项覆盖已有备份

配置生效之后,会在在备份的时候,跳过某些数据,比如只读表空间

sqlplus / as sysdba

alter tablespace users read only;

rman target /

RMAN> backup database format='/u01/app/oracle/backup/rmanbk/%d_%s.dbf';
RMAN> backup database format='/u01/app/oracle/backup/rmanbk/%d_%s.dbf';
RMAN> backup database format='/u01/app/oracle/backup/rmanbk/%d_%s.dbf';--当第三次备的时候,oracle发现users表空间为只读的而且已经备过两次,没有必要再进行备份,所以跳过

压缩备份

LOW: 这种压缩级别速度最快,压缩程度比MEDIUM小,使用最小的CPU,使用LZIP压缩算法
MEDIUM: 这种压缩级别在CPU和压缩之间进行平衡,使用ZIP压缩算法
HIGH: 这种压缩级别的压缩程度最高,但是使用的CPU最多,使用GZIP压缩算法
BASIC: 这种压缩算法使用BZIP2压缩算法(10g使用的压缩算法)

RMAN> CONFIGURE COMPRESSION ALGORITHM 'BASIC'
RMAN> backup as compressed backupset database format='/u01/app/oracle/backup/rmanbk/ba_%d_%s.dbf';

RMAN> CONFIGURE COMPRESSION ALGORITHM 'MEDIUM'
RMAN> backup as compressed backupset database format='/u01/app/oracle/backup/rmanbk/mi_%d_%s.dbf';

RMAN> CONFIGURE COMPRESSION ALGORITHM 'HIGH'
RMAN> backup as compressed backupset database format='/u01/app/oracle/backup/rmanbk/hi_%d_%s.dbf';

RMAN> CONFIGURE COMPRESSION ALGORITHM 'LOW'
RMAN> backup as compressed backupset database format='/u01/app/oracle/backup/rmanbk/lo_%d_%s.dbf';

cd /u01/app/oracle/backup/rmanbk

ls -lsh

加密备份
创建钱包(默认方式)

1、创建一个新目录,并指定为Wallet目录

mkdir -p /u01/app/oracle/ora_wallet
mkdir -p /u01/app/oracle/admin/orcl/wallet

2. 设置wallet目录,在参数文件/u01/app/oracle/product/11.2.0/db/network/admin/sqlnet.ora中,按照下面的格式加入信息:

ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/u01/app/oracle/ora_wallet)))

3. 创建master key文件,指定wallet密码,使用SYS用户登入系统,建立加密文件

SQL> alter system set encryption key identified by wallet;

对备份进行加密

DBA需要保护好数据库的备份,如果入侵者能够获得磁盘或磁带上的备份,那么他们可以将备份数据恢复到其他的数据库上,从而获取其中的数据内容。

Oracle 10g R2以后,我们可以使用以下三种不同的模式对RMAN的备份进行加密。

1、透明的加密模式:这是默认的加密模式,需要借助钱包才能实现。当我们需要将数据文件备份到同样的存储介质的话,可以使用这种加密模式。在备份和恢复时,都必须打开钱包,否则备份和恢复都失败。

2、基于密码的加密模式:备份前需要指定密码,然后进行备份。当恢复时,必须提供备份时的密码。当我们需要使用备份,从而在其他数据库上进行恢复时,可以考虑使用这种这种模式。

3、混合加密模式:同时使用钱包和密码进行备份和恢复。如果钱包打开,则使用钱包进行加密,如果钱包没有打开,则使用密码进行加密。当需要使用备份在当前数据库和其他数据库上进行恢复时,可以考虑使用这种模式

透明加密模式

该模式下,我们在备份之前,要创建一个新的钱包或者打开一个已经存在的钱包,然后进行备份。恢复时,也必须要打开相同的钱包,我们以前面的钱包为例,来说明如何使用透明加密模式如:

打开钱包;

SQL> alter system set encryption wallet open identified by wallet;

配置rman,启用透明加密模式

RMAN> configure encryption for database on;

这样,我们就为备份配置了透明的加密模式。整个备份和恢复的操作没有任何变化,备份和恢复用的命令脚本也不需要做任何改变,我们以备份单个表空间为例来说明这个过程。

RMAN> backup tablespace users;

备份完users表空间后,我们关闭钱包如:

SQL> alter system set encryption wallet close identified by wallet;

接下来,我们使用刚刚生成的备份进行恢复:

RMAN> restore tablespace users; --error

这个错误很明显,告诉我们由于钱包没打开,所以不能进行恢复。那么我们打开钱包后再次进行恢复,即可成功。

SQL> alter system set encryption wallet open identified by wallet;

RMAN> restore tablespace users; --ok

SQL> alter system set encryption wallet close identified by wallet;

事实上,只要我们在rman中配置了启用透明加密模式以后,那么在进行备份时,如果没有打开钱包,整个备份过程失败。如:

RMAN> run { backup database format='/u01/app/oracle/backup/rmanbk/%d_%s.dbf';} --error

基于密码的加密模式

在基于密码的加密模式下,我们进行备份之前,必须先设置密码。如:

RMAN>set encryption on identified by "1000@bya" only;

注意该命令中最后的only关键字,设置了密码后,备份的命令不需要做任何的改变,我们还是以备份一个表空间为例:

RMAN> backup tablespace users;

当我们把备份文件恢复到其他服务器上进行恢复时,就必须指定该备份文件的密码,如:

RMAN> set decryption identified by "1000@bya";
RMAN> restore tablespace users;

当设置了解密的密码后,我们就可以成功进行恢复了。如果在恢复时,不指定备份的密码,则恢复过程失败。

混合加密模式

该模式结合了透明加密和密码加密两种模式。也就是说,在备份前,可以打开钱包,同时设置密码,然后再进行备份。备份完毕以后,在恢复时,要么代开钱包后直接进行恢复,要么没有打开钱包,而是指定密码,然后再进行恢复。

我们来举一个例子说明混合加密模式是如何使用的,先打开钱包:

RMAN> alter system set encryption wallet open identified by wallet;

然后,我们指定密码。注意,在指定密码的时候没有only关键字

RMAN> configure encryption for database on;
RMAN> set encryption identified by "0000@bya";

设置完以后,开始备份。

RMAN> backup tablespace users;

在恢复users表空间前,我们不必关闭钱包,直接进行恢复。可以发现,尽管没有指定备份的密码,恢复也能成功,因为这时我们用了钱包进行解密,然后我们关闭钱包,再进行恢复,则报错,必须先按照如下方式指定解密的密码:

RMAN> set decryption identified by "0000@bya";

然后,我们继续恢复,则能成功执行,因为这时我们指定了解密的密码。

------------------------------------------------------------------------------------------

管理持久化设置
RMAN> CONFIGURE DEVICE TYPE sbt PARALLELISM 3;

RMAN> SHOW CONTROLFILE AUTOBACKUP FORMAT;
RMAN> SHOW EXCLUDE;
RMAN> SHOW ALL;

重置参数为默认值
RMAN> CONFIGURE BACKUP OPTIMIZATION CLEAR;
RMAN> CONFIGURE MAXSETSIZE CLEAR;
RMAN> CONFIGURE DEFAULT DEVICE TYPE CLEAR;

使用媒介(磁带等)管理器
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK;
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO TAPE;

配置和分配通道
RMAN> CONFIGURE DEVICE TYPE sbt;
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO sbt;
RMAN> CONFIGURE CHANNEL DEVICE TYPE sbt ...
RMAN> BACKUP DATABASE;

RMAN> RUN
{
ALLOCATE CHANNEL ch1 DEVICE TYPE DISK;
BACKUP DATABASE PLUS ARCHIVELOG;
}

原文地址:https://www.cnblogs.com/thlzhf/p/3382644.html