RMAN备份慢故障处理一例

原创 2007年10月12日 16:40:00

     今天接到上海TAC电话,报告说最近一周的RMAN备份速度很慢, 数据量很小,但做一次增量备份大概需要3天。

数据库版本:Oracle9204 RAC

操作系统版本:Solaris 9

RMAN备份语句为:
RMAN> run{
allocate channel c1 type disk;
backup incremental level 1 database plus archivelog delete input;
release channel c1;
}

登陆CATALOG数据库所在的服务器,查看备份日志:

allocated channel: c1
channel c1: sid=48 devtype=DISK

allocated channel: c2
channel c2: sid=46 devtype=DISK

Starting backup at 2007-09-18:04:21:08

发现一直停在这一步,不往下进行.....


登陆目标数据库,查看会话有哪些等待事件:

SQL> select event,sid,p1,p2,p3 from v$session_wait where event not like 'SQL*%' AND event not like 'rdbms%';

EVENT                                                                   SID         P1         P2         P3
---------------------------------------------------------------- ---------- ---------- ---------- ----------
pmon timer                                                               1        300          0          0
ges remote message                                                       4         32          0          0
gcs remote message                                                       5         64          0          0
gcs remote message                                                       7         64          0          0
log switch/archive                                                      22          2          0          0
wakeup time manager                                                     15          0          0          0
smon timer                                                              12        300          0          0

7 rows selected.


发现SID为22的会话等待最严重,等待事件为log switch/archive,这个等待事件出现时通常是因为日志组循环写满以后,第一个日志归档尚未完成,出现该等待可能是IO存在问题。
解决办法:
移动归档文件到快速的磁盘;
调整log_archive_max_processes.


查会话22对应的SQL语句:
SQL> select sql_text from v$sqltext a where a.hash_value=(select sql_hash_value from v$session b
2 where b.sid='22') order by piece asc;

SQL_TEXT
----------------------------------------------------------------
alter system archive log current

分别在两节点上手工执行这个命令,果然很慢,等了几个小时都没结果返回。

去掉RMAN备份语句中的plus archivelog delete input命令,做一次测试。
RMAN> run{
allocate channel c1 type disk;
backup incremental level 1 database;
release channel c1;
}

2分钟执行完毕,说明正是由于归档当前日志慢导致的,应该是归档日志所在的磁盘I/O存在问题。

登陆数据库,查看归档路径:
SQL> show parameter archive_dest

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string
log_archive_dest_1 string LOCATION=/export/home/oracle/dev/MSP/log_archive_dest_1
log_archive_dest_10 string
log_archive_dest_2 string LOCATION=/export/home/oracle/dev/MSP/log_archive_dest_2
log_archive_dest_3 string
log_archive_dest_4 string
log_archive_dest_5 string
log_archive_dest_6 string
log_archive_dest_7 string
log_archive_dest_8 string
log_archive_dest_9 string
log_archive_dest_state_1 string enable
log_archive_dest_state_10 string enable
log_archive_dest_state_2 string enable
log_archive_dest_state_3 string enable
log_archive_dest_state_4 string enable
log_archive_dest_state_5 string enable
log_archive_dest_state_6 string enable
log_archive_dest_state_7 string enable
log_archive_dest_state_8 string enable
log_archive_dest_state_9 string enable
standby_archive_dest string ?/dbs/arch

SQL> show parameter log_archive_max_processes
log_archive_max_processes integer 1

测试两个归档路径卷的速率,结果显示1秒钟大约写1M左右,这个速度够慢,正常应该写10M左右。

修改初始化参数,将归档日志路径修改到本地磁盘/var/backup下,并增加log_archive_max_processes=2,重启数据库后,手工执行alter system archive log current,很快返回结果; 进行RMAN测试,备份很快。

结论:正是由于归档日志对应的磁盘I/O读写存在问题导致RMAN备份异常的慢。 

版权声明:本文为博主原创文章,未经博主允许不得转载。

一次RMAN还原慢的分析

下面是模拟同事在客户现场遇到的RMAN还原慢的情况,同事也只能在旁边干着急。因为备份与还原是由其它的备份工程师在操作,但是由于备份工程师的ORACLE技术能力,导致在还原数据库速度很慢。我们知道,RM...
  • lovedieya
  • lovedieya
  • 2014年09月22日 20:26
  • 1964

ORACLE11G RMAN备份恢复到异机数据库

orapwd file='/u01/app/oracle/product/11.2.0.4/db_1/dbs/orapwprb' password=oracle entries=10 force=y ...
  • xiegh2014
  • xiegh2014
  • 2016年08月17日 17:28
  • 1699

RMAN备份动态性能视图 V$BACKUP_PIECE

V$BACKUP_PIECE displays information about backup pieces from the control file. Each backup set consi...
  • jiaping0424
  • jiaping0424
  • 2016年05月07日 13:04
  • 1256

使用Rman备份片信息远程恢复数据库一例

1、挂载备份服务器的备份目录 1、建立备份片存放目录,这里没有使用catalog,所以需要和生产库备份目录路径相同 mkdir /prod/backup/ 2、挂载备份服务器备份目录 show...
  • renfengjun
  • renfengjun
  • 2012年03月07日 22:21
  • 1760

ORA-28547 故障处理一例

上周去给客户培训,讲到DG部分做实际配置演示的时候,碰到了ORA-28547故障,客户的数据库时11.2.0.1的版本,Window平台。 之前已经按照步骤把DG全部配置完成了,当准备在备库启用re...
  • aaron8219
  • aaron8219
  • 2014年11月18日 00:45
  • 1130

ORA-00054 故障处理一例

--************************-- ORA-00054 故障处理一例--************************     最近index job出现失败,于是尝试手动执行...
  • robinson_0612
  • robinson_0612
  • 2011年06月23日 11:14
  • 7743

STOP 0X0000007B蓝屏故障处理一例

用户在重新安装Windows XP的过程中,可能会出现安装过程中蓝屏,代码是0X0000007B的错误提示,如图:分析:只是因为Dell电脑采用SATA硬盘,我们知道, 目前SATA硬盘工作在两种模式...
  • jeff06143132
  • jeff06143132
  • 2011年06月20日 01:41
  • 1299

10g异机恢复后EM无法启动故障处理一例

之前在自己的测试环境上做了个异机恢复,原来的库上是配置过EM的,但是在恢复的库上去启动EM就报错了,下面看具体解决过程: PS:原主机名为zlm,恢复出来的主机名为bak [r...
  • aaron8219
  • aaron8219
  • 2014年10月20日 13:46
  • 1183

Oracle锁表故障处理一例

一次开发人员直接在数据库服务器上做delete table操作系统,由时在上班高峰运行,造成长时间执行无反应,进而把SQLPLUS客户端关闭掉,再次运行删除语句,造成数据库运行缓慢。    询问操作...
  • dyllove98
  • dyllove98
  • 2014年11月25日 17:44
  • 1353

MySQL启动故障处理一例(errno 13)

之前在系统上装了个MySQL用于测试,今天发现启动mysqld_safe进程的时候报错,如下所示: [root@bak local]# mysqld_safe & [1] 2631 [root...
  • aaron8219
  • aaron8219
  • 2014年10月17日 10:41
  • 2075
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RMAN备份慢故障处理一例
举报原因:
原因补充:

(最多只允许输入30个字)