RMAN> run {
allocate channel ch1 type disk;
allocate channel ch2 type disk;
backup as compressed backupset tablespace users;
}
2. 当rman作业运行的时候,使用v$PROCESS和V$SESSION查看client_info信息:
SQL> select sid, spid, client_info from v$process p join v$session s on (p.addr = s.paddr) where client_info like '%rman%';
1. Create two RMAN jobs (in two different RMAN sessions) that back up the USERS and CHGTRK tablespaces and use the SET COMMAND option:
/* session 1 */
RMAN> run {
set command id to 'bkup users';
backup as compressed backupset tablespace users;
}
/* session 2 */
RMAN> run {
set command id to 'bkup chgtrk';
backup as compressed backupset tablespace users;
}
2.
SQL> select sid, spid, client_info from v$process p join v$session s on (p.addr = s.paddr) where client_info like '%id=%';
SQL> select sid, serial#, opname, sofar, totalwork from v$session_longops where opname like 'RMAN%' and sofar totalwork;
调整RMAN
可以通过多种方式来调整RMAN操作。
可以使用多个RMAN通道,然后将数据文件分配到不同的通道,以此来调整备份的总吞吐量。为每个通道分配-个进程,这样可以通过并行处理方式加快备份过程。与此相反,可以将多个备份文件多路复用在同一个备份片中。
对于特定通道而言,可以使用MAXPIECESIZE和MAXOPENFILES参数尽量提高通往特定输出设备的吞吐量,BACKUP命令使用这些参数以及FILESPERSET和BACKUP DURATION参数来优化备份操作。
如果数据库必须保持可用,而且要满足严格的SLA要求,还可以使用BACKUP DURATION来尽最减少备份操作对响应时间的影响。最后,还可以使用数据库初始化参数來优化备份和恢复性能(特别是同步I/O操作)
如果了解每种调整方法的工作原理,就可以保持快捷的用户响应速度、优化硬件和软件环境以及在预算紧张的情况下(这种情况几乎始终存在)推迟升级时间,环境中的某些位置几乎始终存在着吞吐量瓶颈。瓶颈是RMAN备份期间速度最慢的步骤或任务
1.确定备份和还原步骤
RMAN备份在通道中执行任务时.将经历以下三个主要阶段:
(1)读阶段:通道将数据块读入输入缓冲区
(2)复制阶段:通道将块从输入缓冲区复制到输出缓冲,并根据需要执行其他处理:
·验证检查块是否受到损坏,此操作不会大量使用CPU
·压缩使用BZIP2或ZLIB来压缩块,此操作会大量使用CPU
·加密使用加密算法(透明、口令保护或两者)来保护数据的安全性,此操作会大量使用CPU
(3)写阶段:通道将输出缓冲区中的块写入输出设备(磁盘或磁带)
使用动态性能视图,可以确定哪个通道操作的哪个阶段出现了瓶领,并采用相应措施予以消除。在某典情况下,可能需要增加备份时间,以便确保缩短恢复时间。每天或每小时创建一次映像副本会增加备份时间,却可以极大地减少恢复时间
并行备份:为了提高备份的速度,通过增加多个通道
1. 通过指定并行参数来实现并行备份:
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 3 BACKUP TYPE TO BACKUPSET;
2. 手动分配通道实现并行备份:
RMAN> run {
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
backup database format='/u01/backup/rmanbk/%d_%s.dbf'
(datafile 1,2 channel c1)
(datafile 3,4 channel c2)
(datafile 5,6 channel c3) plus archivelog format='/u01/backup/rmanbk/%d_%s.arc';
}
3. 指定通道的文件格式,将备份集放在不同的目录下:
RMAN> run {
allocate channel c1 device type disk format='/u01/backup/rmanbk/%d_%s.dbf';
allocate channel c2 device type disk format='/u02/backup/rmanbk/%d_%s.dbf';
backup as backupset
(datafile 1,2,3 channel c1)
(datafile 4,5,6 channel c2) plus archivelog;
}
配置RMAN多路技术
可以通过多路复用备份和恢复操作来提高RMAN性能和吞吐最。使用多路复用功能时,RMAN可以同时读取多个文件,然后将数据块写入到同一个备份片中。
在备份和恢复操作中,使用多路复用来调整RMAN是减少瓶颈的方法之一,主要通过FILESPERSET和MAXOPENFILES两个参数来控制多路复用级别
,RMAN BACKUP命令的FILESPERSET参数确定放在每个备份集中的数据文件数量。如果单个通道最多备份10个数据文件,但FILESPERSET值是4,则RMAN的每个备份集仅备份4个文件(取min(10,4))。FILESPERSET参数的默认值是64。
多路复用级别(写入到同一备份片的输入文件数量,或从同一备份片读取的输入文件数量)是MAXOPENFILES和每个备份集中的文件数量中的最小者。MAXOPENHLES的默认值是8。可以通过以下等式更方便地理解计算方式:
multiplexing_level = min(MAXOPENFILES, min(FILESPERSET, files__per_channel))
本例在一个通道中备份10个数据文件,MAXOPENFILES值是12, FILESPERSET使用默认值64。因此,使用以下等式计算多路复用级别:
multiplexing_level=min(12, min(64, 10))=10
RMAN根据RMAN作业中的多路复用级别来分配不同数量和大小的磁盘I/O缓冲区。在RMAN根据前面提到的等式,使用FILESPERSET和MAXOPENFILES参数确定了多路复用级别后,可以使用下表提供的信息确定RMAN执行备份需要的缓冲区的数量和大小