RMAN缓存机制及查看备份进度

Oracle RMAN(Recovery Manager)的缓存机制主要是为了在备份和恢复数据库文件、归档日志和控制文件时提高效率和性能。

1. RMAN缓存机制

关于RMAN缓存机制的一些关键点和详细信息:

1.1. 缓冲区分配

*   当执行备份操作时,RMAN会根据备份集内的文件数量来分配不同大小的缓冲区。
*   如果备份集内的文件数小于或等于4个,RMAN会为每个文件分配4个大小为1MB的缓冲区,缓冲区总和小于或等于16MB。
*   如果备份集内文件数多于4个但少于或等于8个,RMAN会为每个文件分配4个大小为512KB的缓冲区,确保缓冲区总和小于或等于16MB。
*   如果多路复用的文件数多于8个,RMAN会为每个文件分配4个大小为128KB的缓冲区,确保每个要备份的文件占用512KB的缓冲区内存。

1.2. 备份过程中的缓存使用

*   在备份过程中,RMAN会请求Oracle的共享内存段来创建自己的备份缓冲区。
*   与通道相对应的服务进程会去扫描数据文件中的数据块,并将需要备份的数据块读入到输入缓冲区中。
*   当输入缓冲区被填满时,数据会被转移到输出缓冲区中。
*   在数据从输入缓冲区转移到输出缓冲区的过程中,RMAN会检测数据块是否有损坏。
*   当输出缓冲区被填满时,就会形成备份片,服务进程最终会将其写入到指定的备份位置。

1.3. 压缩与缓存

*   RMAN支持多种压缩方式,包括空值压缩(null compression)和二进制压缩(BINARY COMPRESSION)。
*   空值压缩主要用于过滤掉块头为空的块,减少备份集的大小。
*   二进制压缩则能够大大减少备份集所需的磁盘空间,通常压缩比会达到2-4倍。
*   启用压缩会增加CPU资源的消耗和备份的耗时。

1.4. 缓存管理的注意事项

*   缓存的大小和分配策略会影响备份和恢复的性能。
*   在进行大量数据备份时,确保有足够的内存和磁盘空间来支持RMAN的缓存操作。
*   监控和管理RMAN的缓存使用情况,避免因为缓存不足而导致的性能问题。

总结来说,Oracle RMAN的缓存机制通过合理分配和使用缓冲区、支持数据压缩等方式,有效地提高了备份和恢复的性能和效率。

2.查看Oracle备份进度

要查看Oracle备份进度,可以使用多种方法,具体取决于你的备份工具和配置。以下是几种常用的方法,以及它们的详细步骤和说明:

1. 使用RMAN的V$SESSION_LONGOPS视图

  • 描述V$SESSION_LONGOPS视图提供了长时间运行操作的进度信息,包括RMAN备份。
  • 步骤
    1. 连接到Oracle数据库。

    2. 执行SQL查询,从V$SESSION_LONGOPS视图中检索RMAN备份的进度信息。

    SELECT SID, SERIAL#, OPNAME, 
           TO_CHAR(START_TIME, 'YYYY-MM-DD HH24:MI:SS') START_TIME, 
           SOFAR, TOTALWORK,
           CEIL(ELAPSED_SECONDS/60) ELAPSED_MI, 
           ROUND(SOFAR/TOTALWORK*100,2) "%COMPLETE"
    FROM V$SESSION_LONGOPS
    WHERE OPNAME LIKE 'RMAN%'
    AND SOFAR <> TOTALWORK
    AND TOTALWORK <> 0
    ORDER BY START_TIME ASC;
    
    • SIDSERIAL#:会话和序列号,用于标识特定会话。
    • OPNAME:操作名称,这里应该是RMAN相关的操作。
    • START_TIME:操作开始时间。
    • SOFAR:已完成的工作量。
    • TOTALWORK:预计的总工作量。
    • ELAPSED_MI:已过去的时间(分钟)。
    • %COMPLETE:完成的百分比。

2. 使用RMAN的LIST命令

  • 描述:RMAN的LIST命令可用于显示备份集、镜像副本文件的状态信息。
  • 步骤
    1. 启动RMAN并连接到目标数据库。

    2. 使用LIST命令查看备份集信息。

    RMAN> LIST BACKUP SUMMARY;
    
    注意:这个命令会列出所有备份的摘要信息,而不是实时的备份进度。

3. 查看备份文件

  • 描述:如果RMAN备份配置为将日志或进度信息写入到文件中,可以直接查看这些文件来获取备份进度。
  • 步骤
    1. 导航到RMAN备份日志或进度文件的存储位置。
    2. 使用文本编辑器或cat命令查看文件内容。
      注意:这种方法依赖于RMAN备份的配置,不是所有配置都会生成这样的文件。

4. 使用V$RMAN_STATUSV$RMAN_OUTPUT视图

  • 描述V$RMAN_STATUS视图提供了RMAN执行的操作的状态信息,而V$RMAN_OUTPUT视图记录了RMAN生成的信息。
  • 步骤
    1. 连接到Oracle数据库。
    2. 执行SQL查询,从V$RMAN_STATUSV$RMAN_OUTPUT视图中检索信息。
      注意:这些视图提供了更详细的RMAN操作信息,但可能不如V$SESSION_LONGOPS视图那样直接显示备份进度。

总结

查看Oracle备份进度的方法取决于你的备份工具和配置。最常用的方法是查询V$SESSION_LONGOPS视图或使用RMAN的LIST命令。确保你有适当的权限来执行这些操作,并根据你的具体需求和环境选择最适合的方法。

select * from v$rman_status;

select * from v$rman_output;

select * from V$SESSION_LONGOPS;
  • 23
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值