我的rmanrman全库备份脚本为什么这么慢

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&查看: 18908|回复: 91
RMAN 备份很慢.有没有什么办法解决.
论坛徽章:0
There are two backup servers for two oracle8i database servers. The oracle version is oracle8i Enterprise Edition Release 8.1.7.4.0
RMAN is using target database controlfile instead of recovery catalog. Both usually spend 4 hours doing 4 GB oracle8i online backup.
One is named baksrv2, the other is named baksrv4. Now there is something wrongs with the baksrv4.
It takes 10 hours to back up 4 GB data. I compare the baksrv2 log of the oracle online backup with the baksrv4's
I find there are following differences:
&&For baksrv4,
& & & & & & It takes about 90 second to complete backup set.
&&& & & & It takes about 90 second between &RMAN-08502& and &[Normal] From: starting backup&.
&&For baksrv2,
& && && && && && && &It takes about 30 second to complete backup set.
&&& & & & It takes about 12 second between &RMAN-08502& and &[Normal] From: starting backup&.
The detailed logs are shown in the following:
For baksrv4
---------------------------------clip------------------------------------
RMAN-08013: channel dev_0: piece 1 created
RMAN-08503: piece handle=bak_oracle_online&ora_&.dbf comment=API Version 2.0,MMS Version 65.4.10.176
RMAN-08525: backup set complete, elapsed time: 00:01:57
RMAN-08071: channel dev_0: deleting archivelog(s)
RMAN-08514: archivelog filename=/d/db01/app/oracle/admin/arc/arch1_54255.dbf recid=54239 stamp=
RMAN-08009: channel dev_0: starting archivelog backupset
RMAN-08502: set_count=136514 set_stamp= creation_time=09/30/:44]
RMAN-08014: channel dev_0: specifying archivelog(s) in backup set
RMAN-08504: input archivelog thread=1 sequence=54256 recid=54240 stamp=
[Normal] From:
&test&&&Time: 09/30/05 12:13:16
& & & & Starting OB2BAR Backup: 05 baksrv4:bak_oracle_online&ora_&.dbf // Oracle8
[Normal] From:
&test&&&Time: 09/30/05 12:13:32
& & & & Completed OB2BAR Backup: 05 baksrv4:bak_oracle_online&ora_&.dbf // Oracle8
---------------------------------clip------------------------------------
For baksrv2
---------------------------------clip------------------------------------
RMAN-08013: channel dev_0: piece 1 created
RMAN-08503: piece handle=oracle_online_bak&ora_&.dbf comment=API Version 2.0,MMS Version 65.4.10.176
RMAN-08525: backup set complete, elapsed time: 00:00:36
RMAN-08071: channel dev_0: deleting archivelog(s)
RMAN-08514: archivelog filename=/d/db01/app/oracle/admin/arc/arch1_44414.dbf recid=44264 stamp=
RMAN-08009: channel dev_0: starting archivelog backupset
RMAN-08502: set_count=108656 set_stamp= creation_time=09/30/:37]
RMAN-08014: channel dev_0: specifying archivelog(s) in backup set
RMAN-08504: input archivelog thread=1 sequence=44415 recid=44265 stamp=
[Normal] From: OB2BAR@baksrv2 &test&&&Time: 09/30/05 11:23:52
& & & & Starting OB2BAR Backup: 05 baksrv2racle_online_bak&ora_&.dbf // Oracle8
[Normal] From: OB2BAR@baksrv2 &test&&&Time: 09/30/05 11:24:09
& & & & Completed OB2BAR Backup: 05 baksrv2racle_online_bak&ora_&.dbf // Oracle8
---------------------------------clip------------------------------------
I'm looking for any suggestion to improve the performance of the baksrv4. Thank you in advance.
论坛徽章:18
两个DB备份设备有没有区别,内容有没有区别?
论坛徽章:14
几乎是同时做的备份
论坛徽章:0
它们是两台同型号的备份服务器,且备份的数据库是在两台同配置服务器上的oracle. oracle上的应用是一样的.这里我列出只是做一个对比.
论坛徽章:18
应用一样的不一定存储的状态是一样的,如果你用cbo简单的办法可以对比一下两个DB中存储数据的块的差异
论坛徽章:0
我认为不在存储状态方面,请看如下:
它们在备份大小相同的archive log 时所花的时间差不多都是16秒的.
-------------------For baksrv4------------------------
[Normal] From:
&test&&&Time: 09/30/05 12:13:16
& & & & Starting OB2BAR Backup: 05 baksrv4:bak_oracle_online&ora_&.dbf // Oracle8
[Normal] From:
&test&&&Time: 09/30/05 12:13:32
& & & & Completed OB2BAR Backup: 05 baksrv4:bak_oracle_online&ora_&.dbf // Oracle8
------------------------------------------------------------------------------------
-------------------For baksrv2------------------------
[Normal] From: OB2BAR@baksrv2 &test&&&Time: 09/30/05 11:23:52
& & & & Starting OB2BAR Backup: 05 baksrv2racle_online_bak&ora_&.dbf // Oracle8
[Normal] From: OB2BAR@baksrv2 &test&&&Time: 09/30/05 11:24:09
& & & & Completed OB2BAR Backup: 05 baksrv2racle_online_bak&ora_&.dbf // Oracle8
---------------------------------------------------------------------------------
有所不同的如下:
For baksrv4,
It takes about 90 second to complete backup set.
It takes about 90 second between &RMAN-08502& and &[Normal] From: starting backup&.
For baksrv2,
It takes about 30 second to complete backup set.
It takes about 12 second between &RMAN-08502& and &[Normal] From: starting backup&.
论坛徽章:18
还有让你看看两个DB的内容,rman是空值压缩,如果你两个DB的存贮状态不一样非常可能导致备份性能的区别
论坛徽章:42
multiple channel + multiple file
论坛徽章:0
1)d.c.b.a 能否解释 multiple file ?
2)对于archive log,它存储的应是系统中有修改过的数据,在我们这两个系统中空值应很少.且它们的备件时间也几乎相同.所以有没有其它建议?
3)我分析了备份日志, baksrv4做备份文件4GB所花的时间与baksrv2差不多,
即baksrv4的各数据文件的"[Normal] From: ...Starting .." 到"[Normal] From: ...Completed .."间的备份时长之和与baksrv2的差不多,但是对于每个数据文件从"RMAN-08502&到"[Normal] From: ...Starting .."的时长,baksrv4 与baksrv2相差很大.具体如下:
For baksrv4,
It takes about 90 second to complete backup set.
It takes about 90 second between &RMAN-08502& and &[Normal] From: starting backup&.
For baksrv2,
It takes about 30 second to complete backup set.
It takes about 12 second between &RMAN-08502& and &[Normal] From: starting backup&.
而在这数据库中有许多数据文件,这样就造成备份时间很长.
各位有何建议?
4)有没有什么指令可用来监测rman的性能的,类似alter system .. event .. 这样的.
论坛徽章:36
个人以前试过multiple channel ,但实际执行是db一个channel,archivelog一个channel。
好像不能让db有多个channel。不知d.c.b.a说的多个file指什么??
& && && && && &&&
如果要时间快,可以尝试增大large_pool_size,并采用差异增量备份。
itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号: 广播电视节目制作经营许可证:编号(京)字第1149号查看: 3940|回复: 25
RMAN备份明显变慢
论坛徽章:6
最近几天RMAN备份明显变慢,比正常时间慢好几倍,一时找不出头绪,比较烦。
除了Oracle的bug外,还可能是存储或网络方面的原因,现在可以初步排除网络原因,但还不能确定是存储还是bug,bug#5247609是针对10.2.0.2的,但我的是10.2.0.4,真有点不知所措了。
论坛徽章:113
需要备份的东西变大了么?
存储IO变差了么?
远程备份的网络状态?
全备or增量备份?
论坛徽章:37
备份时是不是有其他比较耗资源的活动?
论坛徽章:6
原帖由 viadeazhu 于
01:44 发表
需要备份的东西变大了么?
存储IO变差了么?
远程备份的网络状态?
全备or增量备份?
需要备份的东西没有改变;
存储这一块正由sysadmin与供应商在探索,尚没有结论;
网络状态至少在表面上没有变化;
这个变慢是突然的,前一天还是正常时间,第二天的备份突然变慢了。
论坛徽章:6
原帖由 ysping 于
01:49 发表
备份时是不是有其他比较耗资源的活动?
备份的同时没有发现其它耗资源的活动,服务器上的 load始终在1%以下。CPU的应用也不高。
论坛徽章:7
我以前也遇到过类似的问题,也突然很慢,也找了很久,后来发现是网络引起的,换个交换机接口后问题解决了
论坛徽章:6
原帖由 pgy112 于
10:16 发表
我以前也遇到过类似的问题,也突然很慢,也找了很久,后来发现是网络引起的,换个交换机接口后问题解决了
我没有重点怀疑网络,是因为用户还没有明显的抱怨。目前还是比较怀疑存储的问题。
论坛徽章:113
回复 #7 blackeye 的帖子
存储的平均响应时间增加了么?
论坛徽章:6
原帖由 viadeazhu 于
20:21 发表
存储的平均响应时间增加了么?
存储的平均响应时间没有历史对照,不好比较,但在命令行上在不同的filer之间copy文件有些不对头,差别相当地大,还没有理出头绪来,但可以肯定相当地不一致。
论坛徽章:37
检查一下存储的cache是否正常
itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号: 广播电视节目制作经营许可证:编号(京)字第1149号查看: 4843|回复: 46
我的rman备份为什么这么慢??
论坛徽章:64
linux + oracle9.2.0.4
目录库和目标库同机器,不过物理上分离。
我进行了0级增量备份:
目标库的数据文件总共是340G左右(其中30个10G的大数据文件,其他最大4G),备份文件总大小约1.28G,从17:28分到21:38分,共花了4小时10分钟。
我的rman备份为什么这么慢??
论坛徽章:18
rman慢原因太多了?带库备?如果是机器几个driver?对带库多路复用要慎重,因为袋子是流设备,
340g备份文件总大小约1.28G??
论坛徽章:64
最初由 oracledba 发布
[B]rman慢原因太多了?带库备?如果是机器几个driver?对带库多路复用要慎重,因为袋子是流设备,
340g备份文件总大小约1.28G?? [/B]
create script rman_whole_cnreport_inc0 {
&&allocate channel d1
&&allocate channel d2
& &backup incremental level 0&&database
& &tag='WHOLE_CNREPORT_INC0'
& &format '/dat21/oradata/cnreport/db_%d_%s_%p_%t';
& &release channel d1;
& &release channel d2;}
run {execute script rman_whole_cnreport_inc0;}
第一次运行时是分配了一个通道。
“340g备份文件总大小约1.28G”是因为现在还没正式上线,没几十笔记录。将来会很大。所以我一下子就弄得大一点(300多G将来是肯定不够的)。
第二次运行时分配了2个通道,并且将configure device type disk parallelism 2;&&不过,还是一样慢,至少没比第一次快。
论坛徽章:18
呵呵,不是多个通道多个并行就比以前快的,并行搞不好会更慢,因为并行的实施本身就要系统资源,除非你的并行下面的硬件能提供更好的性能,如果不并行而多同道应该比以前多少快一些,为啥加俩通道?为啥并行?
论坛徽章:64
最初由 oracledba 发布
[B]呵呵,不是多个通道多个并行就比以前快的,并行搞不好会更慢,因为并行的实施本身就要系统资源,除非你的并行下面的硬件能提供更好的性能,如果不并行而多同道应该比以前多少快一些,为啥加俩通道?为啥并行? [/B]
因为我想到我是4CPU的,不用并行好象太对不起他了。
加通道是因为我测试备份另一个库时发现在用2个通道是2个同时写的,感觉好象快点似的。
论坛徽章:17
Re: 我的rman备份为什么这么慢??
最初由 cjf107 发布
[B]linux + oracle9.2.0.4
目录库和目标库同机器,不过物理上分离。
我进行了0级增量备份:
目标库的数据文件总共是340G左右(其中30个10G的大数据文件,其他最大4G),备份文件总大小约1.28G,从17:28分到21:38分,共花了4小时10分钟。
我的rman备份为什么这么慢?? [/B]
楼主意思是“备份文件总大小约1.28G,从17:28分到21:38分,共花了4小时10分钟”? 不可能4个小时才备份了1.28G吧
你的题目让人看不懂。
论坛徽章:17
最初由 cjf107 发布
因为我想到我是4CPU的,不用并行好象太对不起他了。
加通道是因为我测试备份另一个库时发现在用2个通道是2个同时写的,感觉好象快点似的。 [/B]
这个跟CPU无关,主要是磁盘速度。
如果备份到网络,那网络速度才是关键。
论坛徽章:18
最初由 cjf107 发布
因为我想到我是4CPU的,不用并行好象太对不起他了。
加通道是因为我测试备份另一个库时发现在用2个通道是2个同时写的,感觉好象快点似的。 [/B]
i/o呢?并行是又需要cpu又需要i/o
论坛徽章:17
另外,可以从性能视图v$backup_async_io、V$SESSION_LONGOPS等取得备份情况,例如:
select filename, round(EFFECTIVE_BYTES_PER_SECOND / 1024 / 1024, 4) &MB/S&,
& && & round(bytes / 1024 / 1024, 4) MB
&&from v$backup_async_io
where status = 'IN PROGRESS'
order by filename
你还是看看实际速度再找慢的原因吧
论坛徽章:64
Re: Re: 我的rman备份为什么这么慢??
最初由 xjg 发布
楼主意思是“备份文件总大小约1.28G,从17:28分到21:38分,共花了4小时10分钟”? 不可能4个小时才备份了1.28G吧
你的题目让人看不懂。 [/B]
是真的。以下是我两次备份的所有备份文件,总共2.5G(看看时间就知道我说的是真的了)
[oracle@report cnreport]$ ll
total 2578004
drwxrwxr-x& & 2 oracle& &oracle& && & 4096 Mar 16 17:37 cold_backup
-rw-rw----& & 1 oracle& &oracle& & 7290880 Mar 17 17:34 ctl_c-
-rw-rw----& & 1 oracle& &oracle& & Mar 16 21:12 db_CNREPORT_10_1_
-rw-rw----& & 1 oracle& &oracle& & 7143424 Mar 16 21:15 db_CNREPORT_11_1_
-rw-rw----& & 1 oracle& &oracle& & Mar 16 17:52 db_CNREPORT_1_1_
-rw-rw----& & 1 oracle& &oracle& & 6561792 Mar 16 21:17 db_CNREPORT_12_1_
-rw-rw----& & 1 oracle& &oracle& & 6414336 Mar 16 21:20 db_CNREPORT_13_1_
-rw-rw----& & 1 oracle& &oracle& & 6381568 Mar 16 21:22 db_CNREPORT_14_1_
-rw-rw----& & 1 oracle& &oracle& & 6381568 Mar 16 21:25 db_CNREPORT_15_1_
-rw-rw----& & 1 oracle& &oracle& & 6381568 Mar 16 21:28 db_CNREPORT_16_1_
-rw-rw----& & 1 oracle& &oracle& & 6381568 Mar 16 21:30 db_CNREPORT_17_1_
-rw-rw----& & 1 oracle& &oracle& & 6381568 Mar 16 21:33 db_CNREPORT_18_1_
-rw-rw----& & 1 oracle& &oracle& & 6381568 Mar 16 21:35 db_CNREPORT_19_1_
-rw-rw----& & 1 oracle& &oracle& & 6381568 Mar 16 21:38 db_CNREPORT_20_1_
-rw-rw----& & 1 oracle& &oracle& & Mar 17 13:48 db_CNREPORT_21_1_
-rw-rw----& & 1 oracle& &oracle& & Mar 16 18:15 db_CNREPORT_2_1_
-rw-rw----& & 1 oracle& &oracle& & Mar 17 14:11 db_CNREPORT_22_1_
-rw-rw----& & 1 oracle& &oracle& & Mar 17 14:35 db_CNREPORT_23_1_
-rw-rw----& & 1 oracle& &oracle& & Mar 17 14:58 db_CNREPORT_24_1_
-rw-rw----& & 1 oracle& &oracle& & Mar 17 15:20 db_CNREPORT_25_1_
-rw-rw----& & 1 oracle& &oracle& & Mar 17 15:42 db_CNREPORT_26_1_
-rw-rw----& & 1 oracle& &oracle& & Mar 17 16:04 db_CNREPORT_27_1_
-rw-rw----& & 1 oracle& &oracle& & Mar 17 16:26 db_CNREPORT_28_1_
-rw-rw----& & 1 oracle& &oracle& & Mar 17 16:47 db_CNREPORT_29_1_
-rw-rw----& & 1 oracle& &oracle& & Mar 17 17:09 db_CNREPORT_30_1_
-rw-rw----& & 1 oracle& &oracle& & 8232960 Mar 17 17:12 db_CNREPORT_31_1_
-rw-rw----& & 1 oracle& &oracle& & Mar 16 18:38 db_CNREPORT_3_1_
-rw-rw----& & 1 oracle& &oracle& & 7675904 Mar 17 17:14 db_CNREPORT_32_1_
-rw-rw----& & 1 oracle& &oracle& & 7462912 Mar 17 17:17 db_CNREPORT_33_1_
-rw-rw----& & 1 oracle& &oracle& & 7430144 Mar 17 17:19 db_CNREPORT_34_1_
-rw-rw----& & 1 oracle& &oracle& & 6381568 Mar 17 17:22 db_CNREPORT_35_1_
-rw-rw----& & 1 oracle& &oracle& & 6381568 Mar 17 17:24 db_CNREPORT_36_1_
-rw-rw----& & 1 oracle& &oracle& & 6381568 Mar 17 17:27 db_CNREPORT_37_1_
-rw-rw----& & 1 oracle& &oracle& & 6381568 Mar 17 17:29 db_CNREPORT_38_1_
-rw-rw----& & 1 oracle& &oracle& & 6381568 Mar 17 17:32 db_CNREPORT_39_1_
-rw-rw----& & 1 oracle& &oracle& & 6381568 Mar 17 17:34 db_CNREPORT_40_1_
-rw-rw----& & 1 oracle& &oracle& & Mar 16 19:01 db_CNREPORT_4_1_
-rw-rw----& & 1 oracle& &oracle& & Mar 16 19:23 db_CNREPORT_5_1_
-rw-rw----& & 1 oracle& &oracle& & Mar 16 19:45 db_CNREPORT_6_1_
-rw-rw----& & 1 oracle& &oracle& & Mar 16 20:07 db_CNREPORT_7_1_
-rw-rw----& & 1 oracle& &oracle& & Mar 16 20:29 db_CNREPORT_8_1_
-rw-rw----& & 1 oracle& &oracle& & Mar 16 20:51 db_CNREPORT_9_1_
[oracle@report cnreport]$
itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号: 广播电视节目制作经营许可证:编号(京)字第1149号博客访问: 209584
博文数量: 91
博客积分: 2107
博客等级: 大尉
技术积分: 746
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: Oracle
只有rman的备份恢复过程Created by foway
: 欢迎转载,但请保留本行说明,谢谢!1.通过rman备份文件恢复spfile2.通过rman备份文件恢复controlfile3.通过rman备份文件恢复datafile4.利用恢复回来的controlfile和datafile生成redolog5.测试交易是否存在,并全备
======================郭苗苗添加================================
使用这段进行完全备份
$ export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'RMAN> run {2> allocate channel dsk type disk format '/opt/oracle/backup/%U.bak' ;3> backup data4> backup5> }
===============================================================
我环境所有的文件如下:[oracle@foway dbs]$ pwd/opt/oracle/10g/dbs[oracle@foway dbs]$ lsinitdw.orainit.ora[oracle@foway dbs]$ls /opt/oracle/oradata已没有任何资料[oracle@foway dbs]$ls /opt/oracle/admin已没有任何资料[oracle@foway dbs] ls /opt/oracle/flash_recovery_area/ORCL[oracle@foway dbs]ls /opt/oracle/flash_recovery_area/ORCL/backupset/[oracle@foway dbs]ls /opt/oracle/flash_recovery_area/ORCL/backupset//o1_mf_ncsnf_TAG240_482fls2h_.bkpo1_mf_nnndf_TAG240_482fkb0k_.bkp在我这台电脑上, ,系统中所有的ORCL相关的文件,参数文件,日志文件,控制文件全部不在了, 没有其他可用的备份文件了,只有rman备份的文件在,这可怎么办呢?没办法只能恢复了,可怎么恢复呢?要恢复数据文件用rman备份? 能吗? 当然不能了,因为restore必须在mount or open状态下.参数文件,控制文件都没有怎么mount? 要mount必须有参数文件,控制文件,为此我们必须解决这2个难题了.在解决难题前先准备ORCL的必须的目录:[oracle@foway dbs]mkdir /opt/oracle/oradata/orcl[oracle@foway dbs]mkdir /opt/oracle/admin/orcl/adump –p[oracle@foway dbs]mkdir /opt/oracle/admin/orcl/cdump[oracle@foway dbs]mkdir /opt/oracle/admin/orcl/bdump[oracle@foway dbs]mkdir /opt/oracle/admin/orcl/udump[oracle@foway dbs]mkdir /opt/oracle/admin/orcl/dpdump[oracle@foway dbs]mkdir /opt/oracle/admin/orcl/pfile难题1:spfile有人说没参数文件我新建立一个pfile,当然这个办法是可行的,不过在10g中rman备份是自动备份了spfile的,所以我们可以利用rman来恢复spfile了.[oracle@foway dbs]rman target / nocatalogRecovery Manager: Release 10.2.0.4.0 - Production on Fri Jul 18 21:21:47 2008Copyright (c) , .All rights reserved.connected to target database (not started)RMAN>RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of list command at 07/18/:37RMAN-06403: could not obtain a fully authorized sessionORA-01034: ORACLE not availableORA-27101: shared memory realm does not existLinux Error: 2: No such file oRMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of list command at 07/18/:51RMAN-06403: could not obtain a fully authorized sessionORA-01034: ORACLE not availableORA-27101: shared memory realm does not existLinux Error: 2: No such file or directory看到上面的是正常的,因为没有启动呢.于是我们先启动数据库到nomout下RMAN>startup nomountstartup failed: ORA-01078: failure in processing system parametersLRM-00109: could not open parameter file '/opt/oracle/10g/dbs/initorcl.ora'starting Oracle instance without parameter file for retrival of spfileOracle instance startedTotal System Global Area bytesFixed Size1218268 bytesVariable Size bytesDatabase Buffers bytesRedo Buffers2973696 bytesRMAN>RMAN>将与上次执行看到的一样,此时也是正常的,不必担心,下面就是利用rman备份文件来解决难题1了.RMAN> restore spfilefrom '/opt/oracle/flash_recovery_area/ORCL/backupset//o1_mf_ncsnf_TAG240_482fls2h_.bkp';Starting restore at 18-JUL-08allocated channel: ORA_DISK_1channel ORA_DISK_1: sid=36 devtype=DISKchannel ORA_DISK_1: autobackup found: /opt/oracle/flash_recovery_area/ORCL/backupset//o1_mf_ncsnf_TAG240_482fls2h_.bkpchannel ORA_DISK_1: SPFILE restore from autobackup completeFinished restore at 18-JUL-08下面是来验证spfileorcl.ora文件是否已存在:[oracle@foway dbs]$ pwd/opt/oracle/10g/dbs[oracle@foway dbs]$ lsinitdw.orainit.oraspfileorcl.ora恭喜你:spfile已恢复了有了参数文件,就需要解决控制文件恢复了
难题2. 控制文件恢复这个又怎么恢复呢? 用rman的自动备份控制文件的rman备份吗? 是的没错,只有从rman备份文件中提取出来的controlfile才能使用rman备份文件恢复datafile的.那么这里有来种办法来实现从rman备份文件中提取出controlfie了.方法1. RMAN>restore controlfile from ‘/…备份文件..’; 恢复的控制文件将放在$ORACLE_HOME/dbs/cncontrl.dbf不过这个方法有时恢复的控制文件中记录的dbname与实际不一致.方法2: 利用dbms_backup_restore提取controlfile步骤:[oracle@foway dbs]$sqlplus /nologSQL*Plus: Release 10.2.0.4.0 - Production on Fri Jul 18 21:38:21 2008Copyright (c) , Oracle.&&All rights reserved.SQL> conn /as sysdbaConnected.由于在刚才使用rman时执行了startup nomount,所以这里是connected,下面我们到nomount状态SQL> startup force nomountORACLE instance started.Total System Global Area&& bytesFixed Size& && && && && && &1218316 bytesVariable Size& && && && &&& bytesDatabase Buffers& && && &
bytesRedo Buffers& && && && && & 2973696 bytesSQL>DECLARE2devtype varchar2(256);34BEGIN5devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');6sys.dbms_backup_restore.restoreSetD7sys.dbms_backup_restore.restoreControlfileTo(cfname=>'/opt/oracle/oradata/orcl/control01.ctl');8sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/opt/oracle/flash_recovery_area/ORCL/backupset//o1_mf_ncsnf_TAG240_482fls2h_.bkp',params=>null);9 sys.dbms_backup_restore.deviceD1011/PL/SQL procedure successfully completed.下面验证control01.ctl是否恢复:[oracle@foway dbs]$ ls /opt/oracle/oradata/orcl/control01.ctl[oracle@foway dbs]$看到了control01.ctl 恭喜你:难题2 解决了.于是我们可以启动数据库到mount状态了.[oracle@foway dbs]$sqlplus /nologSQL*Plus: Release 10.2.0.4&&- Production on Fri Jul 18 21:45:32 2008Copyright (c) , Oracle.&&All rights reserved.SQL> conn /as sysdbaConnected.SQL> startup force mountORACLE instance started.Total System Global Area&& bytesFixed Size& && && && && && &1218316 bytesVariable Size& && && && &&& bytesDatabase Buffers& && && &
bytesRedo Buffers& && && && && & 2973696 bytesORA-00205: error in identifying control file, check alert log for more info我们已经恢复了控制文件了,怎么还是有错误呢,其实不用担心,看看spfile中的记录先SQL> show parameter control_filesNAME& && && && && && && && && && && &TYPE& && &&&VALUE------------------------------------ ----------- ------------------------------control_files& && && && && && && && &string& && &/opt/oracle/oradata/orcl/contr& && && && && && && && && && && && && && && && & ol01.ctl, /opt/oracle/oradata/& && && && && && && && && && && && && && && && & orcl/control02.ctl, /opt/oracl& && && && && && && && && && && && && && && && & e/oradata/orcl/control03.ctlSQL>既然如此,我们就把控制文件同步下好了.SQL> ho cp /opt/oracle/oradata/orcl/control01.ctl /opt/oracle/oradata/orcl/control02.ctlSQL> ho cp /opt/oracle/oradata/orcl/control01.ctl /opt/oracle/oradata/orcl/control03.ctlSQL> Database altered.SQL> ho ls /opt/oracle/oradata/orcl/control01.ctl&&control02.ctl&&control03.ctl好了到这里我们已经成功解决了难题2了.有了恢复后的控制文件,我们就可以使用rman查看与使用以前的rman备份了.恢复datafile 步骤:rman target / nocatalogRecovery Manager: Release 10.2.0.4 - Production on Fri Jul 18 21:49:10 2008Copyright (c) , Oracle.&&All rights reserved.connected to target database: ORCL (DBID=, not open)using target database control file instead of recovery catalogRMAN>看到了 红色部分了吗,太好了终于看到了正常的rman登陆信息了.那就list copy|backup 看看能找到我们的o1_mf_ncsnf_TAG240_482fls2h_.bkpo1_mf_nnndf_TAG240_482fkb0k_.bkp文件吗.RMAN>specification does not match any archive log in the recovery catalogRMAN>List of Backup Sets===================BS Key&&Type LV Size& && & Device Type Elapsed Time Completion Time------- ---- -- ---------- ----------- ------------ ---------------1& && & Full& & 495.41M& & DISK& && &&&00:00:41& &&&18-JUL-08& && && && &&&BP Key: 1& &Status: AVAILABLE&&Compressed: NO&&Tag: TAG240& && &&&Piece Name: /opt/oracle/flash_recovery_area/ORCL/backupset//o1_mf_nnndf_TAG240_482fkb0k_.bkp&&List of Datafiles in backup set 1&&File LV Type Ckp SCN& & Ckp Time&&Name&&---- -- ---- ---------- --------- ----&&1& && & Full 453304& &&&18-JUL-08 /opt/oracle/oradata/orcl/system01.dbf&&2& && & Full 453304& &&&18-JUL-08 /opt/oracle/oradata/orcl/undotbs01.dbf&&3& && & Full 453304& &&&18-JUL-08 /opt/oracle/oradata/orcl/sysaux01.dbf&&4& && & Full 453304& &&&18-JUL-08 /opt/oracle/oradata/orcl/users01.dbfRMAN>太好了,总于可以使用restore,recover来恢复datafile了.RMAN>Starting restore at 18-JUL-08Starting implicit crosscheck backup at 18-JUL-08allocated channel: ORA_DISK_1channel ORA_DISK_1: sid=156 devtype=DISKCrosschecked 1 objectsFinished implicit crosscheck backup at 18-JUL-08Starting implicit crosscheck copy at 18-JUL-08using channel ORA_DISK_1Finished implicit crosscheck copy at 18-JUL-08searching for all files in the recovery areacataloging files...cataloging doneList of Cataloged Files=======================File Name: /opt/oracle/flash_recovery_area/ORCL/backupset//o1_mf_ncsnf_TAG240_482fls2h_.bkpusing channel ORA_DISK_1channel ORA_DISK_1: starting datafile backupset restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setrestoring datafile 00001 to /opt/oracle/oradata/orcl/system01.dbfrestoring datafile 00002 to /opt/oracle/oradata/orcl/undotbs01.dbfrestoring datafile 00003 to /opt/oracle/oradata/orcl/sysaux01.dbfrestoring datafile 00004 to /opt/oracle/oradata/orcl/users01.dbfchannel ORA_DISK_1: reading from backup piece /opt/oracle/flash_recovery_area/ORCL/backupset//o1_mf_nnndf_TAG240_482fkb0k_.bkpchannel ORA_DISK_1: restored backup piece 1piece handle=/opt/oracle/flash_recovery_area/ORCL/backupset//o1_mf_nnndf_TAG240_482fkb0k_.bkp tag=TAG240channel ORA_DISK_1: restore complete, elapsed time: 00:00:56Finished restore at 18-JUL-08RMAN>此时可以在$ORACLE_BASE/oradata/orcl/下看到期望已久的datafile了.[oracle@foway dbs] ls /opt/oracle/oradata/orcl/control01.ctl&&control02.ctl&&control03.ctl&&sysaux01.dbf&&system01.dbf&&undotbs01.dbf&&users01.dbf[oracle@foway dbs]不过此时还没有完哈,需要在接在励.由于没有redo log日志文件所以我们不应用日志恢复:RMAN> recStarting recover at 18-JUL-08using channel ORA_DISK_1Finished recover at 18-JUL-08RMAN>到目前我们已经拥有了参数文件,控制文件,数据文件了:[oracle@foway dbs] ls /opt/oracle/oradata/orcl/ls /opt/oracle/oradata/orcl/control01.ctl&&control02.ctl&&control03.ctl&&sysaux01.dbf&&system01.dbf&&undotbs01.dbf&&users01.dbf[oracle@foway dbs] ls /opt/oracle/10g/dbs/alert_orcl.log&&hc_orcl.dat&&initdw.ora&&init.ora&&lkORCL&&spfileorcl.ora还差一个密码文件,以及相关的日志文件了.先解决密码文件:[oracle@foway dbs] orapwd file=/opt/oracle/10g/dbs/orapworcl password=uplooking entries=5[oracle@foway dbs] ls /opt/oracle/10g/dbs/ls /opt/oracle/10g/dbs/alert_orcl.log&&initdw.ora&&lkORCL& &&&spfileorcl.orahc_orcl.dat& &&&init.ora& & orapworcl下面需要大家坚持不懈的完成最后一个工作了.那就是通过已经恢复的controlfile and datafile 来演算出redo log file了.步骤:[oracle@foway dbs]sqlplus /nologSQL*Plus: Release 10.2.0.4 - Production on Fri Jul 18 21:58:05 2008Copyright (c) , Oracle.&&All rights reserved.SQL> conn /as sysdbaConnected.SQL> startup force mountORACLE instance started.Total System Global Area&& bytesFixed Size& && && && && && &1218316 bytesVariable Size& && && && &&& bytesDatabase Buffers& && && &
bytesRedo Buffers& && && && && & 2973696 bytesDatabase mounted.SQL>alter system set "_allow_resetlogs_corruption"=TRUE;alter system set "_allow_resetlogs_corruption"=TRUE& && && && && &&&*ERROR at line 1:ORA-02095: specified initialization parameter cannot be modifiedSQL> alter system set "_allow_resetlogs_corruption"=TRUE scope=System altered.SQL>ho ls /opt/oracle/oradata/orcl/control01.ctl&&control03.ctl&&sysaux01.dbf&&undotbs01.dbfcontrol02.ctl&&orapworcl& && &system01.dbf&&users01.dbf下面没有redo log file ,下面我将演算出redo logSQL>startup forceORACLE instance started.Total System Global Area&& bytesFixed Size& && && && && && &1218316 bytesVariable Size& && && && &&& bytesDatabase Buffers& && && &
bytesRedo Buffers& && && && && & 2973696 bytesDatabase mounted.ORA-01589: must use RESETLOGS or NORESETLOGS option for database openSQL>alter datDatabase altered.SQL> ho ls /opt/oracle/oradata/orcl/control01.ctl&&orapworcl& &redo03.log& & temp01.dbfcontrol02.ctl&&redo01.log&&sysaux01.dbf&&undotbs01.dbfcontrol03.ctl&&redo02.log&&system01.dbf&&users01.dbfSQL>好了到这里,非常高兴了,你已经成功的从只有rman备份文件中恢复了参数文件,控制文件,所有数据文件,日志文件了. 通常到这里还需要你全备数据库的哈,别忘了!如果备份文件没有包含控制文件的备份,也就是只有数据文件如何恢复?方法也比较简单.1.建立密码文件,参数文件,数据存放目录,日志存放目录.2.指定ORACLE_SID,然后通过dbms_backup_restore从备份中读出数据文件3.建立控制文件4.加日志参数后resetlogs生成日志文件5.测试交易是否存在,并全备具体步骤参看:只有数据文件的备份如何恢复一例
阅读(1708) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。

我要回帖

更多关于 rman删除过期备份 的文章

 

随机推荐