$ rman targer /
RMAN> show all; #查看rman中所有的配置
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/data/oracle/product/11.2.0/db_1/dbs/snapcf_orcl.f'; # default
RMAN>
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
表示默认压缩备份,使用BASIC算法。
修改默认压缩算法:
RMAN> CONFIGURE COMPRESSION ALGORITHM 'low';
new RMAN configuration parameters:
CONFIGURE COMPRESSION ALGORITHM 'low' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;
new RMAN configuration parameters are successfully stored
RMAN>
差异增量: 备份自上次备份依赖(全备或增备)变化过的块
累计增量:备份自上一次全备以来,变化过的所有块。
RMAN> backup incremental level 0 database; # level 0 就代表是全备
Starting backup at 15-NOV-17
.....
RMAN> backup incremental level 1 database; # level 1 就代表是差异备份,扫描所有块,根据对比时间戳,备份变化过的块
RMAN> backup incremental level 1 cumulative database; # 加cumulative,表示累计增量备份
rman可以只备份某个表空间,或某个数据文件;
RMAN> backup tablespace users; # 用rman只备份users的表空间
Starting backup at 15-NOV-17
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/data/oracle/oradata/orcl/users01.dbf
channel ORA_DISK_1: starting piece 1 at 15-NOV-17
channel ORA_DISK_1: finished piece 1 at 15-NOV-17
piece handle=/data/oracle/flash_recovery_area/ORCL/backupset/2017_11_15/o1_mf_nnndf_TAG20171115T225433_f0ro9b0n_.bkp tag=TAG20171115T225433 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 15-NOV-17
RMAN>
控制文件自动备份:
RMAN> show all;
其中有一条:CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
改为:
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; # 这样就打开了控制文件的自动备份,当数据文件结构发生变化时,自动在后台把控制文件备份一下。
有一条命令:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
指定了自动备份控制文件时,备份到哪里,备份出来的文件怎么命名。 其中'%F' 就是OMF里的一个格式符。 只要不申明往哪个路径备份,那么默认的都是备份到快速恢复区。
SQL> show parametar recover # 查看快速恢复区。
那么手动指定备份路径呢:
RMAN> backup database format='/u02/rmanbak/%s_%T_%d.dbf'; # 这样就手动指定了备份路径,备份到 /u02/rmanbak/
当然也可以手动修改RMAN的配置文件,指定默认备份的路径。但数据库恢复时,默认的找快速恢复区,所以手动改备份目录,恢复时,又要手动指定目录,原本可以自动实现的变成了手动。所以一般不建议去改。
多段备份:
# mkdir /u03 # 假设/u03下挂载了另一个存储
# chown -R oracle:oinstall /u03
# su - oracle
$ cd /u03
$ mkdir rmanbak
在备份时指定备份3份,并指定位置;
RMAN> backup copies 3 tablespace users format='/u01/app/oracle/%s_%T_%d.dbf','/u02/rmanbak/%s_%T_%d.dbf','/u03/rmanbak/%s_%T_%d.dbf';
这样就同时备份保存了3份。
镜像备份就是指,物理上copy,与用户管理的备份同理。
备份优化(OPTIMIZATION ON):
RMAN> show all;
其中有一条:
CONFIGURE BACKUP OPTIMIZATION OFF; # default
执行:
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
在备份时,能够自动判断并跳过一些不必要的备份数据,如只读的表空间。
举例:
RMAN> CONFIGURE BACKUP OPTIMIZATION ON; #开了备份优化后,
SQL> alter tablespace users read only;
RMAN> backup database format='/u03/rmanbak/%s_%T_%d.dbf'; #指定一个目录,好观察,第一遍执行,都会备份
RMAN> backup database format='/u03/rmanbak/%s_%T_%d.dbf'; # 第二遍执行,发现也备份了 user01.dbf,备份一遍不稳妥,所以自动备份了双份。
RMAN> backup database format='/u03/rmanbak/%s_%T_%d.dbf'; # 第三遍执行,会发现没有备份user01.dbf,
提示中描述: skipping datafile 4: already backed up 2 time(s).
保留策略:
RMAN> show all;
其中有一条:CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default