Oracle DB 监控和优化RMAN

本文详细介绍了如何监控RMAN会话和作业进度,解析RMAN输出消息及错误堆栈,以进行有效的Oracle数据库备份。同时,讨论了RMAN的并行备份集、多路复用、I/O优化策略,包括同步I/O和异步I/O的选择,以及通道和BACKUP命令的优化。还特别提到了LARGE_POOL_SIZE的调整和解决磁带流性能瓶颈的方法,为数据库管理员提供全面的RMAN性能优化建议。
摘要由CSDN通过智能技术生成
• 监视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
 
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 '%id=sess%';
 
 SID SPID                     CLIENT_INFO
---- ------------------------ ------------------------------
   7 653                      id=sess1
  • 监视RMAN 作业进度
通过查询
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值