第8章 rman备份
8.1.2 备份信息保存在恢复目录数据库(recovery catalog) 4
8.1.1 备份信息保存在控制文件中
控制文件中备份信息保存的记录条数受初始化参数control_file_record_keep_time的控制,以天为单位,默认值为7.
SQL> show parameter control_file_record_keep_time;
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
control_file_record_keep_time integer 7
SQL>
8.1.2 备份信息保存在恢复目录数据库(recovery catalog)
Recovery catalog的优点:存储rman脚本,保留更多的历史备份信息,同时管理与备份多个目标数据库等。
可以将恢复目录数据库视作rman备份恢复相关信息的数据库(在物理形式上可以对应oracle中的一个schema)。当待备份的数据库注册到恢复目录之后,rman相关的信息除了保存在控制文件中外(控制文件实际上只保存一部分),更加详细的信息就都别保存在恢复目录中。
在创建恢复目录之前,首先需要为该恢复目录创建一个独立表空间和对应的schema。(最好不要将恢复目录创建在要备份的目标数据库)
(1)创建一个独立的表空间
SQL> create tablespace rmantbs datafile '/u01/data/oracle/rmantbs01.dbf' size 50m;
(2)创建一个独立的schema,用来记录备份信息,并授予相关权限
SQL> grant connect,resource,recovery_catalog_owner to rmanuser identified by rmanuser;
(3)通过rman连接到新创建的恢复目录中
[oracle@oracle1 ~]$ rman catalog rmanuser/rmanuser
Recovery Manager: Release 11.2.0.4.0 - Production on Sun Mar 19 07:46:10 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to recovery catalog database
(4)在rman中创建catalog;
RMAN> create catalog tablespace rmantbs;
recovery catalog created
(5)首先以catalog模式连接到目标数据库和恢复目录(只需在连接时指定catalog参数即可)
[oracle@oracle1 ~]$ rman target / catalog rmanuser/rmanuser@oracle
Recovery Manager: Release 11.2.0.4.0 - Production on Sun Mar 19 07:49:26 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORACLE (DBID=1804284502)
connected to recovery catalog database
(6)注册数据库后就可以进行备份
RMAN> register database;
database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
(7)不需要时可以取消注册
RMAN> unregister database;
database name is "ORACLE" and DBID is 1804284502
Do you really want to unregister the database (enter YES or NO)? yes
database unregistered from the recovery catalog
RMAN>
8.1.3 选择依据
若备份的目标数据库比较多,使用catalog可以节省一些操作。但如果只是当个数据库,则建议不用catalog,catalog自身也需要管理和维护。
8.2 配置rman备份
8.2.1.1 是否使用rman的备份保留策略
(1)基于时间的备份保留策略
注意初始化参数control_file_record_keep_time 。当前控制文件中分配的空间中,可存储记录和已存储记录数,可以通过查询视图v$controlfile_record_section获取。
RMAN> configure retention policy to recovery window of n days;
(2)基于冗余数量的备份保留策略
RMAN> configure retention policy to redundancy n;
也可设置为不采用任何保留策略。
RMAN> configure retention policy to none;
8.2.1.2 是否启动备份优化
必须满足以下条件的情况下,才能够启用备份优化的功能:
(1)configure backup optimization 参数设置为on;
(2)执行backup database或backup archivelog命令中带有all或like或LIKE参数
(3)分配的通道仅使用了一种设备类型,不能同时有sbt与disk的多个通道出现.
理论上备份优化仅对于只读表空间或offline表空间起作用,但同时对于已经备份过的archivelog文件也会跳过不再备份。
8.2.1.3配置I/O设备类型
RMAN> configure default device type to sbt;
RMAN> configure default device type to disk;
Rman > configure default device type to disk parallelism 2;
(1)RMAN> configure controlfile autobackup on; (当autobackup被置为on时,rman做任何备份操作,都会自动对控制文件做备份。)
(2)Rman > CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/autobackup/control%F'; (指定备份的格式和路径)
(3)Rman> CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_oracle.f'; # default(产生一个控制文件的快照,用于控制文件的读一致性)
8.2.1.5 设置并行备份
Rman > configure device type disk parallelism 2;
指定在以后的备份与操作中并行度为2,即同时开启2个通道进行备份与恢复。在backup命令中有一个filesperset参数,该参数是指rman建立的每个备份集中所能包含的文件的最大数,(默认值为64),若在执行backup时没有指定该参数值,则rman会仅适用第一个通道来备份,其他通道处于空闲状态。Filesperset的值不要小于你设定的通道数。
Eg: backup archivelog filesperset 20
每个归档备份集中最多只能包括20个归档文件,如果有超过20个归档文件需要备份的话,那么在执行备份时会创建多个归档文件的备份集。
8.2.1.6 设置备份文件冗余度
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 2
8.2.1.7 配置备份集的最大尺寸
单位支持Bytes,KB,MB,GB
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
8.2.1.8 配置备份加密
Configure或set encryption on
三种加密的方式:透明模式、密码模式和双重模式
(1)透明模式:时候同一台服务器进行的备份和恢复,换台服务器就无法识别了
Configure命令
Configure encryption for database on 然后再执行的备份则为加密备份集
Configure encryption for tablespace users on; 也可以到具体表空间
(2)密码加密模式:在创建备份前设置密码,任何需要恢复的机器上执行恢复操作前指定密码即可。(set encryption on identified by password only)
Set encryption on命令
Set encryption on identified by encbak only;
比较灵活,上诉命令设置了一个名为encbak的秘钥,紧接其后创建的备份集在进行恢复时,就必须使用该密钥才能够进行正常的恢复操作。
(3)双重加密模式:同时支持上述两种方式,通过configure配置的同时,还使用了set encryption on identified by password命令(没有only)设置密码。若在本机进行备份和恢复操作,就可以按照透明模式进行,若要在其他机器上进行恢复,只要知道密码也可进行操作。
8.2.1.9 配置默认的加密算法
configure encryption algorithm
视图v$rman_encryption_algorithms可以获取默认的加密算法。
SQL> select ALGORITHM_NAME,IS_DEFAULT from v$rman_encryption_algorithms;
ALGORITHM_NAME IS_DEF
-------------------------------------------------- ------
AES128 YES
AES192 NO
AES256 NO
Configure archivelog deletion policy to:可以
(1)applied on standby:当通过附件的delete input字句删除standby数据库仍需要的日志时,会提示RMAN-08137错误。但仍然可以手动地通过delete archivelog方式删除。
(2)None:设置为该值时,则不启用归档文件的删除策略。默认情况下是none.
8.2.2 是否使用多个通道
rman支持两种备份设备:SBT(磁带)和DISK(磁盘,赢盘,光盘,软盘,U盘,凡是带盘的就是DISK)。分配通道就是基于设备做分配。SBT和DISK就像一条是海路,一条是公路,而通道则相当于选择了走公路之后,还得走北三环,还是北五环,或是两条路都走。Rman通道实质是一个到存储设备的数据流。
8.2.2.1 手工分配通道
Allocate channel,该命令只能在run块中出现。Rman中执行的每一天backup、recover等命令等至少要求使用一个通道,通道数决定了这些操作执行的并行度,每条allocate channel命令对应一个通道,如要多个通道,执行多条allocate channel即可。
Eg:
RMAN> run{
2> allocate channel c1 device type disk format '/u01/data/backup/cn_%U';
3> backup tablespace users;
4> }
8.2.2.2 自动分配通道
如没有通过allocate channel命令手动分配通道,则rman在执行backup等操作I/O的命令时将会使用于定义配置中的设置来自动分配通道。
下列预定义命令均可以分配通道:
Configure device type sbt/disk parallelism n;
Configure default device type to sbt/disk;
Configure channel device type sbt/disk format ...;
Configure channel n device type sbt/disk format...;
8.2.3 配置复合备份
Duplexed方式备份,实质是在生产备份集的同时,向指定位置生产指定份数(最大不超过4份)的备份集复制文件,以避免在发生灾难性事故时数据库损坏和备份丢失的情况下导致完全崩溃,提高备份可用性。
三种方式实现duplexed方式备份:
(1)执行backup命令时指定复合备份。
RMAN> backup copies 3 datafile 1 format '/u01/data/backup/%U';
(2)set backup copies命令指定复合备份。可以放在同一位置,也可以在不同位置
RMAN> run{
2> set backup copies 3;
3> backup device type disk format '/u01/data/backup/bak1/%U','/u01/data/backup/bak2/%U','/u01/data/backup/bak3/%U'
4> tablespace users,rmantbs;
5> }
(3)利用configure命令指定复合备份。
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 2;
backup datafile 1 format '/u01/data/backup/%U';
8.2.4 是否设置备份集属性
对于备份集(或备份片段),rman直接提供了方式支持定义备份片段的文件名、备份片段大小及备份集标签
(1)设置备份片段文件名
rman默认通道分配时指定了一个参数值为%F的format参数。可以在分配通道时指定该参数,也可以在执行备份命令时指定。如:
RMAN> run{
2> allocate channel c1 device type disk format '/u01/backup/cn_%U';
3> backup tablespace users;
4> }
或
RMAN> backup tablespace users format '/u01/backup/cn_%U';
(%F:基于“DBID+时间” 确定的唯一名称,格式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIII为该数据库的DBID,YYYYMMDD为日期,QQ是一个1~256的序列)
(%U:默认为%u_%p_%c的简写形式,利用它可以为每一个备份片段(磁盘文件)生成唯一名称。%u是一个由备份集编号和建立时间压缩后组成的8字符名称。利用%u可以为每个备份集生成一个唯一的名称。%p:备份集中备份片段的编号,从1开始。%c:备份片段的复制数(从1开始编号,最大不超过256) )
(2)设置备份集标签 TAG
TAG标签可视为备份集的别名,执行restore/change命令时可以通过指定TAG标签来限定具体的备份集。
若没有明确指定,则默认标签TAG为TAGyyyymmddThhmmss,(TAG和T是固定字符,yyyymmddhhmmss对应执行备份操作的时间。)
piece handle=/u01/data/backup/cn_0hrvr1qb_1_1 tag=TAG20170323T055523 comment=NONE
RMAN> backup tablespace users tag tbs_usersbak;
piece handle=/u01/data/backup/cn_0frvr1o5_1_1 tag=TBS_USERSBAK comment=NONE
(3)设置备份片段/备份集大小
设置备份片段的大小(分配通道时有一个参数maxpiecesize)(若文件超出大小则生成多个备份片段)
Eg:备份system表空间,指定单个备份片段最大不能超过10MB;
RMAN> run{
2> allocate channel c1 device type disk maxpiecesize=10m format '/u01/data/backup/bak_%U tag systemtbs;
3> backup tablespace system;
4> }
设置备份集的大小:
可以在执行备份命令时(或分配通道时)通过maxsetsize参数指定:
RMAN> backup database maxsetsize=100m
(若文件超出大小,则备份失败)
8.2.5 是否对备份集进行压缩
RMAN> backup as compressed backupset tablespace system;
压缩备份集虽然可以节省一些存储空间,但会降低备份和恢复时的速度。
8.3 rman简单操作
8.3.1 远程连接数据库
#rman target username/password@test
8.3.2备份类型
(1)镜像复制(image copies)或映像副本:创建数据文件、控制文件或归档文件的备份文件,与用户通过操作系统命令创建的备份一样。只能放在disk上,不能放在SBT上。
(2)备份集(backup sets)或压缩备份集:具有特定格式的逻辑备份对象,在逻辑上由一个或多个备份片段(backup piece)组成,每个备份片段在物理上对应一个操作系统文件,一个备份片段中可能包含多个数据文件、控制文件或归档文件或之一
8.3.3、命令执行方式
(1)单个执行
(2)批处理
RMAN>run{
.......
}
run中所有命令中任何一条命令执行失败,则整个命令停止。有些操作不能在run中执行。
(3)运行脚本:
用命令行方式调用操作系统中保存的脚本
#rman target / @backup_db.rman
或#rman target / cmdfile=backup_db.rman
在rman中执行
RMAN > @backup_db.rman
运行存储在catalog中的脚本(需要首先为rman创建恢复目录)
RMAN>run {execute script backup_whole_db};
8.4 制定备份策略
备份策略的制定依据如下:
1. 备份的数据库有可能进行恢复吗
2. 最早希望恢复到什么时间点
(1)对于某些业务类型,用户只关注数据库当前状态是否正常,至于数据库做过什么操作,什么时间做的并不重要
应对措施:可视数据规模的大小,适当保存几分最近的备份即可。
Eg: rman > configure retention policy to redundancy 3;
(2)对于某些业务类型,用户希望看到曾经做过的操作,甚至要将数据库恢复到之前的某个时间点。
应对措施: 若用户希望看到曾经做过的操作,则归档文件的保存时间需要适当的延长,若要数据库恢复到之前的某个时间点,则必须要保证存在目标时间点(或之前)创建的备份,以及相关的归档文件。
3. 系统什么时间比较空闲
4. 数据库的规模有多
三选一:超大(>1TB)、一般(<1TB and >200GB)、小(<200GB)
后两个选项可以每次都进行全备份。对于第一个也许增量更适合。
5. 数据是否被频繁修改
三选一:
(1)是:每天数据量中都有超过10%以上的数据修改。
(2)否:每天数据基本没变化,只偶尔有极少量的修改
(3)一般:每天都在编号,但量不大
对于选项(1),基本不建议使用增量备份,除非管理的数据库规模非常非常大。
对于选项(2),强烈建议使用增量备份,除非管理的数据库规模非常非常小。
对于选项(3),都可以,建议根据数据库的规模确定
Tips: 若数据库中每天变化的数据量虽然很大,但基本上都只是系统中某个或某几个表空间的数据在变化,那么可以在制定备份策略时,只定期备份该表空间中的数据,其他的表空间不那么频繁的周期创建备份。
6.能否预估可能给予的恢复操作时间
(1)对于某些核心的业务系统,任何无公告通知的短暂停止服务都是灾难,一旦出现重大问题,仅依靠rman想做到快速恢复是不能的,dba需通过其他途径确保系统的高可用性,而不能仅是依靠备份。
(2)非核心的业务系统,可能每周甚至每个月只有某个时段需要用到,由于其执行恢复的时间富裕,相对来说制定备份粗略时就可以更加宽松。比如并不需要每天都创建备份,而仅在数据修改发生时执行备份任务。
7.是什么原因导致的错误
(1)用户误操作导致的失误
使用flashback进行快速恢复
通过之前创建的备份,恢复到错误产生之前的时间点
逻辑导入正确的数据
(2)介质操作导致的错误
磁盘损坏(代表硬件):厂商维修硬件
误删文件(代表人为):首先检查是否有操作系统级的文件冗余(如联机重做日志文件、控制文件这类文件),若有,则首推使用冗余的文件修复,若没有,则在考虑使用备份的方式进行恢复。
(3)数据块损坏导致的错误。
Rman的备份进行块级的恢复
8.5 rman简单备份
8.5.1 整库备份
RMAN> backup database format '/u01/data/backup/_%U';
Starting backup at 2017:03:26 09:34:46
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=00003 name=/u01/data/oracle/undotbs01.dbf
input datafile file number=00001 name=/u01/data/oracle/system01.dbf
input datafile file number=00002 name=/u01/data/oracle/sysaux01.dbf
input datafile file number=00006 name=/u01/data/oracle/rmantbs01.dbf
input datafile file number=00004 name=/u01/data/oracle/users01.dbf
input datafile file number=00005 name=/u01/data/oracle/users02.dbf
channel ORA_DISK_1: starting piece 1 at 2017:03:26 09:34:46
channel ORA_DISK_1: finished piece 1 at 2017:03:26 09:35:22
piece handle=/u01/data/backup/_0ns03bpm_1_1 tag=TAG20170326T093446 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:36
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 2017:03:26 09:35:23
channel ORA_DISK_1: finished piece 1 at 2017:03:26 09:35:24
piece handle=/u01/data/backup/_0os03bqq_1_1 tag=TAG20170326T093446 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2017:03:26 09:35:24
RMAN>
8.5.2 表空间的备份
只要实例启动并处于加载状态,无论数据库是否打开,都可以在rman中对表空间进行备份。
Rman > backup tablespace users;
8.5.3 数据文件的备份
有两种方式指定数据文件的名称(即数据文件详细路径)和file_id。(可以从dba_data_files中查询)
SQL> select file_id,file_name from dba_data_files;
FILE_ID FILE_NAME
---------- ------------------------------
1 /u01/data/oracle/system01.dbf
2 /u01/data/oracle/sysaux01.dbf
3 /u01/data/oracle/undotbs01.dbf
4 /u01/data/oracle/users01.dbf
5 /u01/data/oracle/users02.dbf
6 /u01/data/oracle/rmantbs01.dbf
6 rows selected.
SQL>
Rman > backup datafile ‘/u01/data/oracle/system01.dbf’
或rman > backup datafile 1
8.5.4 控制文件备份
(1)手动执行
rman > backup current controlfile;
(2)执行backup命令时指定include current controlfile字句。
rman > backup database include current controlfile;
(3)备份数据库的第一个文数据文件时
Rman>backup datafile 1;
(4)configure controlfile autobackup 为on时,rman做任何备份操作,都会自动对控制文件做备份。
8.5.5 归档文件的备份
8.5.5.1 利用backup archivelog 命令备份
Rman > backup archivelog all;
all指备份当前所有可访问到的归档文件,还可以通过until、scn、time、sequence等参数灵活指定要备份的归档区间。
8.5.5.2 执行backup命令时指定plus archivelog字句
Rman>backup current controlfile plus archivelog;
Plus archivelog命令在备份过程中依次执行的步骤:
1)运行alter system archivelog log current语句对当前redolog进行归档
2)执行backup archivelog all命令备份所有已归档日志。
3)执行backup命令对指定项进行备份。
4)再次运行alter system archive log current对当前redolog归档
5)对新生成的尚未备份的归档文件进行备份。
Rman提供了delete all input参数,加在backup命令后,则会在完成备份后自动删除归档目录中已备份的归档日志。
8.5.6 初始化参数文件的备份
通常在备份控制文件时,rman也会自动备份服务器端的初始化参数文件,并置于控制文件相同的备份片段中,故极少需要单独对spfile进行备份,但也可以对spfile进行单独备份。
Rman>backup spfile;
初始化参数中的各项参数在数据库启动是也会在alter文件中留下痕迹,即使丢失也可以比较容易重建。
8.5.7 对备份集进行备份
Backup backupset all 备份所有备份集
Backup backupset n 备份指定备份集 list backup 可以查看备份集id
该命令也支持delete input参数
Backup backupset 并不是通过重新读取数据文件的方式新建一个备份集,而是直接复制当前的备份集,生成一个与原备份一样的新备份集。只能将备份集从磁盘备份到磁盘,或从磁盘备份到磁带,不能从磁带备份到磁带或磁带备份到磁盘。
8.5.8 编写rman批处理文件
Eg: 目标:
每天夜间1点执行,数据库全备,同事备份控制文件及归档日志文件,备份保存至/u01/backup下,并在完成归档日志备份后,自动删除已备份的归档日志。备份保留14天,过期自动删除。保留操作日志备查。
Run{
Configure retention policy to recovery window of 14 days;
Configure controlfile autobackup on;
Configure controlfile autobackup format for device type disk to ‘/u01/backup/%F’;
Allocate channel c1 device type disk format ‘/u01/backup/%U’;
Backup database skip inaccessible
Plus archivelog filesperset 20
Delete all input;
Release channel c1;
}
Allocate channel for maintenance device type disk;
Crosscheck backupset;
Delete noprompt obsolete;
说明:
(1)backup skip : skip inaccessible /skip offline / skip readonly
(2)Allocate channel for maintenance命令
分配通道,分配的通道专用于change/delete/crosscheck命令,不能包含在run块中。
(3)改脚本没有必要再加sql‘alter system set log current’
因为plus archivelog包含了此功能。
8.6 rman 常用命令
8.6.1 显示rman默认配置 show
8.6.2 列出备份信息 list
List命令可以用来查看rman生成的备份集、备份镜像、归档文件等。List+关键字
1、列出所有备份信息
Rman > list backup
2、列出所有备份的控制文件信息
Rman>list backup of controlfile;
3、列出指定数据文件的备份信息
Rman>list backupof datafile ‘path’ 或list backup of datafile 5
4、列出所有备份的归档文件信息。
List backup of archivelog all;
5、列出指定表空间的备份信息
List copy of tablespace ‘system’
6、列出某个设备上的所有信息
List device type disk backup
7、列出数据库当前所有归档
List archivelog all;
8、列出所有无效备份
List expired backup;
8.6.3 报表显示---report
Report命令主要用于当前备份信息的分析,根据配备保留策略确定哪些备份已经过期,哪些文件该备份,哪些备份不可用,哪些备份可以删除等。
1、查看3天前数据库模式 (前提是必须有足够的备份)
Report命令特别提供了一个schema关键字,可以用来查看数据库的模式信息(此模式非用户的模式),比如某个时间段的数据库结构,使用这些功能的前提是必须首先拥有足够的备份。查看模式信息必须连接到catalog数据库。
RMAN> report schema at time 'sysdate -3';
Report of database schema for database with db_unique_name ORACLE
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 750 SYSTEM YES /u01/data/oracle/system01.dbf
2 600 SYSAUX NO /u01/data/oracle/sysaux01.dbf
3 755 UNDOTBS1 YES /u01/data/oracle/undotbs01.dbf
4 5 USERS NO /u01/data/oracle/users01.dbf
5 5 USERS1 NO /u01/data/oracle/users02.dbf
6 50 RMANTBS NO /u01/data/oracle/rmantbs01.dbf
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 59 TEMP 32767 /u01/data/oracle/temp01.dbf
RMAN>
2、查看所有需要备份的文件
RMAN> report need backup;
RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 2
Report of files with less than 2 redundant backups
File #bkps Name
---- ----- -----------------------------------------------------
2 0 /u01/data/oracle/sysaux01.dbf
3 0 /u01/data/oracle/undotbs01.dbf
4 0 /u01/data/oracle/users01.dbf
5 0 /u01/data/oracle/users02.dbf
6 0 /u01/data/oracle/rmantbs01.dbf
RMAN>
3、查看指定表空间是否需要备份
RMAN> report need backup tablespace system;
RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 2
Report of files with less than 2 redundant backups
File #bkps Name
---- ----- -----------------------------------------------------
RMAN>
4、查看过期备份;
RMAN> report obsolete;
RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 2
no obsolete backups found
RMAN>
8.6.4 查看备份或归档物理文件的状态--crosscheck
crosscheck用来检查备份或归档物理文件的状态,若物理文件存在,并且控制文件(或恢复目录)中有匹配记录,则标记该对象的状态为available(有效),若文件不存在,则标记对象状态为expired(无效)。
1、检查所有归档文件
Rman > crosschek archivelog all;
2、检查所有备份集
Rman > crosscheck backup;
8.6.5 修改备份文件或归档文件的状态----change命令
Change命令可以用来修改备份文件或归档文件的状态,不是物理文件,而是这些文件在控制文件(或恢复目录)中对应记录的状态,状态有两种:available(可用)和unavailable(不可用)。
1、修改指定备份集状态为unavailable
RMAN> change backupset n unavailable;
2、修改指定表空间的备份为unavailable;
RMAN> change backup of tablespace users unavailable;
3、修改指定归档文件状态为unavailable;
Rman>change archivelog logseq=n unavailable;
4、change命令可以附带delete子句,配合使用能够在修改记录状态的同时直接删除物理文件。
Eg: rman > change archivelog logseq=n delete;
若将指定对象状态修改为可用,执行上述命令将关键字unavailable改为available即可。
8.6.6 删除备份--delete
删除rman备份记录(rman repository在控制文件中或在recovery catalog中)及相应的物理文件
1、删除过期备份 (根据备份保留策略确定是否过期)
RMAN> delete obsolete;
2、删除无效备份。首先执行crosscheck命令核对备份集,若发现备份无效(如备份对应的数据文件损坏或丢失)rman会将该备份集标记为expired状态。
RMAN> delete expired backup;
3、删除expired副本
RMAN> delete expired copy;
4、删除特定备份集
Rman>delete backupset 19;
5、删除特定备份片
Rman>delete backuppiece ‘path’;
6、删除所有备份集
Rman>delete backup
7、删除特定映像副本
Rman>delete datafile copy ‘path’
8、删除所有影像副本
Rman>delete copy;
9、在备份后删除输入对象
Rman>backup archivelog all delete input;
Rman>delete backupset 22 format=’/u01/backup/%u.bak delete input;
10、如何定期删除archivelog
Rman>crosscheck archivelog all;
Rman>delete expired archivelog all;
或delete archivelog all completed before ‘sysdate -7’;
8.7 增量备份
增量备份的基础是增量0级备份。使用增量备份,备份时间虽然可能缩短,并且备份集大小可能减小,但是进行恢复操作时,所需花费的时间有可能增加,因为数据库恢复时不得不读取多个备份集才能完成恢复操作。备份与恢复本事就是相对的(此消彼长)
创建增量备份时,既可以对整个库进行备份,也可以仅对表空间甚至数据文件级创建增量备份
Eg :(1)建立增量级别0的全库备份
Backup incremental level=0 database;
(2)数据文件的级别1的备份
Backup incremental level=1 datafile ‘path’
(3)为表空间建立增量级别1的备份
Backup incremental level=1 tablespace users;
8.7.1 增量备份的分类
分为差异增量备份和累积增量备份
差异增量备份differential: 备份更低级别或相同级别最近一次备份以来变化的数据块。
Backup incremental level=1 differential database;
累积增量备份differential: 备份更低级别或n-1级别最近一次备份以来变化的数据块。
Rman> backup incremental level=1 cumulative database;
默认情况下是差异增量备份,从恢复的效率的角度考虑,cumulative方式的增量备份表现好一些,因为不需要读取那么多备份集。
8.7.2 增量备份的步骤
1、启用块修改跟踪(block change tracking)
启用块修改跟踪后,rman不用再去扫描数据文件中的每一个块了,直接通过块修改跟踪文件就可以获取哪些块发生了修改的信息。
Select status from v$block_change_tracking
Alter database enable block change tracking using file ‘path’;
Alter database disable block change tracking
2、进行0级备份
3、进行需要的增量备份
8.8 rman 备份相关动态性能视图
v$archived_log:归档日志重做信息
V$backup_set
V$backup_set_summary
V$backup_piece
V$backup_corruption:记录备份集中发现的损坏的数据块。
V$session
V$process
V$session_longops :记录执行时间超过6秒的操作,由于rman备份操作涉及大量I/O,多数情况下肯定会超过6秒,故可通过该视图查看rman操作。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31411496/viewspace-2136812/ ,如需转载,请注明出处,否则将追究法律责任。