目录
LLL的数据库培训-73-第四部分—Oracle RMAN备份恢复—高级篇—第6讲—多通道备份及备份片限制
一、RMAN的多通道备份
1、Rman channel概念
RMAN客户端指导数据库服务器会话执行所有备份和恢复任务。会话的组成取决于操作系统。例如,在Linux上,服务器会话对应于服务器进程,而在Windows上,它对应于数据库服务中的线程。
RMAN客户端本身不执行备份、还原或恢复操作。将RMAN客户端连接到目标数据库时,RMAN会在目标实例上分配服务器会话,并指导它们执行操作。
RMAN通道表示设备的一个数据流,并对应于一个数据库服务器会话。通道将数据读取到PGA中,对其进行处理,并将其写入输出设备。
一个通道代表一个到设备(磁盘或磁带)的数据流并且在目标数据库或辅助数据库实例上产生一个相应的服务器会话(server session)
多个通道则产生多个服务器会话,这些服务器会话(或进程)将完成备份、还原与恢复操作等
2、通道和设备
rman支持两种设备类型磁盘(disk)和SBT设备(SBT,system backup to tape)。SBT设备由第三方媒体管理器控制。SBT设备通常是磁带库和磁带驱动器。
(1)disk通道备份
如果使用磁盘通道进行备份,则该通道会在创建备份的目标数据库实例的文件名空间中的磁盘上创建备份。您可以在任何可以存储数据文件的设备上进行备份。RMAN在进行磁盘备份时不调用媒体管理器。
(2)SBT通道备份
要在非磁盘介质上创建备份,必须使用介质管理软件(如Oracle Secure Backup)并分配此软件支持的通道。只要分配的通道类型不是磁盘,RMAN就会联系媒体管理器。SBT通道如何以及何时导致媒体管理器分配资源是供应商特定的。某些媒体管理器会在您发出命令时分配资源;其他人在您打开文件进行读取或写入之前不会分配资源。
3、rman channel(通道)的分类
channel可以分为两种模式,自动模式和手动模式。
(1)自动模式(优先级低)
理解:用RMAN进行备份时,系统会自动为我们分配一个Channel。Channel的相关属性由两个默认的配置决定。设置好两个参数,就可以自动分配channel(下述是默认的)
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
第一个参数用来控制Channel的类型,默认写到磁盘。(可以指定disk或sbt)
第二个参数用来控制默认分配几个Channel,也就是控制备份的并行度。(可以配置并行度)
(2)手动模式(优先级高)
理解:在执行rman备份命令事,手动指定指定设备类型和channel数量。
RUN { ALLOCATE CHANNEL c1 DEVICE TYPE sbt PARMS 'ENV=(OB_MEDIA_FAMILY=wholedb_mf)'; BACKUP DATABASE; BACKUP ARCHIVELOG ALL NOT BACKED UP; }
RUN { ALLOCATE CHANNEL disk1 DEVICE TYPE DISK FORMAT '/disk1/%U'; ALLOCATE CHANNEL disk2 DEVICE TYPE DISK FORMAT '/disk2/%U'; BACKUP DATABASE PLUS ARCHIVELOG; }
二、备份集与备份片的大小限制
1、备份集限制大小
(1)概念
该CONFIGURE MAXSETSIZE命令限制在通道上创建的备份集的大小。
此CONFIGURE设置适用于任何通道,无论是手动配置还是自动配置,当该BACKUP命令用于创建备份集时。
默认值以字节为单位给出,并向下舍入到最低的千字节值。
该命令设置的值CONFIGURE MAXSETSIZE是给定通道的默认值。您可以通过为单个命令MAXSETSIZE指定选项来覆盖配置的值。MAXSETSIZEBACKUP
(2)配置
CONFIGURE MAXSETSIZE to 5G;
(3)理解:
数据库中有多个表空间文件,system01.dbf,sysaux01.dbf,user01.dbf,mesprd01.dbf,mesprd02.dbf,mesprd03.dbf文件等。
如果设置了备份集的大小为5G,且这些文件单个文件未超过5G,那么可以正常备份。 如果system01和sysaux01.dbf,user01.dbf总的是4G,则会把这三个文件打包到一个备份集中*.bkp中。 如果system01和sysaux01.dbf,user01.dbf总的大小超过了5G,且单个文件未超过5G,rman会自动识别未超过的进行备份 如果数据文件中,任意一个dbf超过了设置的5G,则会报错(RMAN-06183: datafile or datafile copy /oracle/archivelog/MESORCL/datafile/o1_mf_system_lbl4j3wv_.dbf (file number 1) larger than MAXSETSIZE)
所以这个功能有些鸡肋,最合适的情况是,我们将maxsetsize设置为32G,但凡达到这个数值的就自己做一个备份集。
(4)用法:
可以自动配置和手动配置
--自动配置:
CONFIGURE MAXSETSIZE to 5G;
--手动配置(会覆盖自动配置)
BACKUP database MAXSETSIZE 10G;
2、备份片限制大
(1)概念
首先,这个就比较有用了,当考虑到备份集可能过大时,或者文件系统有限制时,我们可以设置备份片大小,这样一个备份集包含多个备份片,一个dbf文件放在多个备份片中。
(2)截图
(3)理解
如果设置备份片是1g;
如果system01.dbf是10g,则在备份时,会创建10个bkp文件,这10个bkp文件在一个备份集中。减小了每个备份文件的大小。
(4)配置方式
--自动配置:
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 2G;
--手动配置(会覆盖自动配置)
run { allocate channel d1 type disk maxpiecesize=10G; allocate channel d2 type disk maxpiecesize=10G; allocate channel d3 type disk maxpiecesize=10G; allocate channel d4 type disk maxpiecesize=10G; ... }
3、备份集与备份片的理解:
在操作系统中,一个备份片就是一个备份文件;备份集包含一个或多个备份片
在不设置备份片的maxpiecesize时,一个备份集就是一个备份片。
如果设置了maxpiecesize时,如果单个数据文件dbf的大小超过了maxpiecesize,那么一个数据文件会分成多个备份片存储备份。