• 监视RMAN 作业进度
• 针对异步I/O 对RMAN 进行相应配置
• 配置RMAN 多路复用以保持磁带机流高效运行
• 评估备份速度与恢复速度之间的平衡
• 说明下列参数对RMAN 性能的影响:MAXPIECESIZE、FILESPERSET、MAXOPENFILES
• 说明RMAN
BACKUP DURATION选项如何加快或降低备份的执行速度(释放资源以进行其它处理)
- 并行备份集
为提高性能,分配多个通道并将文件分配给特定通道。
并行备份集
可通过将CONFIGURE命令的PARALLELISM选项设置为大于1 的值,或通过手动分配多个通道来配置并行备份。RMAN 并行执行其操作,然后并行写入多个备份集。多个服务器会话承担备份指定文件的工作。
示例
RMAN> RUN {
2> ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
3> ALLOCATE CHANNEL c2 DEVICE TYPE sbt;
4> ALLOCATE CHANNEL c3 DEVICE TYPE sbt;
5> BACKUP
6> INCREMENTAL LEVEL = 0
7> (DATAFILE 1,4,5 CHANNEL c1)
8> (DATAFILE 2,3,9 CHANNEL c2)
9> (DATAFILE 6,7,8 CHANNEL c3);
10> SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
11> }
备份数据文件时,可以通过其路径名或文件编号指定要备份的文件。例如,以下两个命令执行相同的操作:
BACKUP DEVICE TYPE sbt DATAFILE '/home/oracle/system01.dbf';
BACKUP DEVICE TYPE sbt DATAFILE 1;
创建多个备份集并分配多个通道时,RMAN 自动并行执行其操作,然后并行写入多个备份集。分配的服务器会话共同承担备份指定数据文件、控制文件和归档重做日志的工作。不能跨多个通道条带化一个备份集。
可通过以下方法实现备份集的并行:
• 将PARALLELISM的值配置为大于1 或分配多个通道。
• 指定要备份的多个文件。
示例
• 有九个需要备份的文件(数据文件1 到9)。
• 将多个数据文件分配给一个备份集,以使每个集所包含的要备份的数据块数目大致相同(为提高效率)。
- 数据文件1、4 和5 被分配到备份集1。
- 数据文件2、3 和9 被分配到备份集2。
- 数据文件6、7 和8 被分配到备份集3。
注:还可以使用
FILESPERSET参数来限制备份集中包含的数据文件的数目。
- 监视RMAN 会话
• 通过查询V$SESSION和V$PROCESS可确定服务器会话和RMAN 通道之间的关系。
• 如果正在监视多个会话,使用
SET COMMAND ID命令在备份期间将某个进程与某个通道相关联。
监视RMAN 会话
要确定哪些服务器会话与哪些RMAN 通道相对应,可以查询V$SESSION和V$PROCESS。V$PROCESS的SPID列确定了进程或线程的操作系统ID 号。在UNIX 中,
SPID列显示进程ID。在Windows 中,SPID列显示线程ID。有两种基本方式可获取此信息,具体取决于是否有多个RMAN 会话同时处于活动状态。当只有一个RMAN 会话处于活动状态时,请在RMAN 作业
正在运行时对目标数据库执行下列查询:
sys@TEST0924> COLUMN CLIENT_INFO FORMAT a30
sys@TEST0924> COLUMN SID FORMAT 999
sys@TEST0924> COLUMN SPID FORMAT 9999
sys@TEST0924> SELECT s.sid, p.spid, s.client_info FROM v$process p, v$session s WHERE p.addr = s.paddr AND CLIENT_INFO LIKE 'rman%';
SID SPID CLIENT_INFO
---- ------------------------ ------------------------------
68 410 rman channel=ORA_DISK_1
当有多个RMAN 会话正在运行时,最好使用SET COMMAND ID命令在备份期间将某个进程与某个通道相关联,如下所示:
1.在每个会话中,将命令ID 设置为不同的值,然后备份所需的对象。例如,在会话1 中输入下列内容:
RUN
{
SET COMMAND ID TO 'sess1';
BACKUP DATABASE;
}
在会话2 中运行的作业中将命令ID 设置为一个字符串,如sess2:
RUN
{
SET COMMAND ID TO 'sess2';
BACKUP DATABASE;
}
2.启动SQL*Plus 会话,然后在执行RMAN 作业时查询联接的V$SESSION和
V$PROCESS视图。例如,输入:
SELECT SID, SPID, CLIENT_INFO
FROM V$PROCESS p, V$SESSION s
WHERE p.ADDR = s.PADDR
AND CLIENT_INFO LIKE '%id=sess%';
如果在RMAN 作业中运行SET COMMAND ID命令,则CLIENT_INFO列会以下列格式显示:
id=command_id,rman channel=channel_id
例如,下面显示了一个示例输出:
SID SPID CLIENT_INFO
---- ------------ ------------------------------
11 8358 id=sess1
15 8638 id=sess2
14 8374 id=sess1,rman channel=c1
9 8642 id=sess2,rman channel=c1
sys@TEST0924> SELECT s.sid, p.spid, s.client_info FROM v$process p, v$session s WHERE p.addr = s.paddr AND CLIENT_INFO LIKE 'rman%';
SID SPID CLIENT_INFO
---- ------------------------ ------------------------------
68 410 rman channel=ORA_DISK_1
160 722 rman channel=ORA_DISK_1
SID SPID CLIENT_INFO
---- ------------------------ ------------------------------
7 653 id=sess1
- 监视RMAN 作业进度
通过查询