sql优化基础视频
发表人:warehouse | 发表时间: 2012年五月13日, 17:34
给一个客户讲课是顺道录制了视频,与大家分享,希望对想了解优化的兄弟们有所帮助,该视频是以index为主题展开讲解的,内容涉及到rowid,index的原理,execute plan,优化器统计信息,index的使用以及hint,柱状图等。一天的时间介绍的内容比较多,以案例为主,动手实践性比较强,阅读的顺序以视频里面电脑显示的时间先后顺序看就可以了。 查看全文
ocp最新考证须知
发表人:warehouse | 发表时间: 2012年四月26日, 20:25
之前写过考证须知,欢迎大家参考:
http://www.itpub.net/thread-1352857-1-1.html
查看全文
oracle各考试科目题量、时间和通过率要求
发表人:warehouse | 发表时间: 2012年四月19日, 10:27
查看全文
通过NFS方式来保留rac归档日志遭遇ORA-27054错误
发表人:warehouse | 发表时间: 2012年三月30日, 00:54
搜了一下发现老杨已经总结好了,参考一下:
http://yangtingkun.itpub.net/post/468/290852
查看全文
linux as4下NFS配置注意事项
发表人:warehouse | 发表时间: 2012年三月30日, 00:01
RAC中有时候可能需要通过NFS来实现归档日志在每个节点上都能保留一份,下面是NFS配置时的一些注意事项。 查看全文
RAC的两大应用特性FAILOVER和LOAD_BALANCE总结
发表人:warehouse | 发表时间: 2012年三月26日, 13:55
failover容易理解,案例也容易构造
load_balance不太容易弄,还好都清楚了。
查看全文
在10201版本上测试ocr mirror时常会遇到PROT-22: Storage too small
发表人:warehouse | 发表时间: 2012年三月22日, 22:46
oracle说这是一个bug,在10.2.0.2 patchset.修正了。其实完全可以
在关闭crs之后手动对crs做mirror。
这是由于一个bug造成的:
Oracle Cluster Registry (OCR)2009-05-23 13:11$ ocrconfig -replace ocrmirror /ora10g/app/oracle/oradata/V10/OracleClusterRegistry2
PROT-22: Storage too small
The problem is due to an Oracle bug where this operation requires the OCR mirror partition/file to be larger than the original by up to 128MB. The bug has been fixed in the 10.2.0.2 patchset.
查看全文
crs启动之后增加votedisk可能会使所有node重启
发表人:warehouse | 发表时间: 2012年三月22日, 21:57
在测试crs启动之后增加votedisk一次可以添加成功,一次2个node同时重启了,所以在线增加votedisk是比较危险的,最好在关闭crs以后操作,在线删除votedisk没发现问题。 查看全文
我对Load Balancing Advisory的理解
发表人:warehouse | 发表时间: 2012年三月20日, 20:21
相当长的一段时间对Load Balancing Advisory都理解不好,尤其对下面一段话理解不好,其实要了解这部分内容,需要对services的概念深入理解:
Service Time—The Load Balancing Advisory attempts to direct work requests to instances according to their response time. Load Balancing Advisory data is based on the elapsed time for work done in the service as well as available bandwidth to the service.
Throughput—The Load Balancing Advisory measures the percentage of the total response time that the CPU consumes for the service. This goal measures the efficiency of an instance, rather than the response time.
其实在listener路由connection的时侯oracle始终会参考视图gv$servicemetric的内容
上面提到的Service Time对应的就是gv$servicemetric里面的ELAPSEDPERCALL或者DBTIMEPERCALL,他们2个表示的意思一样,只不过从10g开始,使用DBTIMEPERCALL,DBTIMEPERCALL也就是我们在10g awr中提到的db time;Throughput表示的就是gv$servicemetric里面的CPUPERCALL/DBTIMEPERCALL的,listener在路由connection的时侯会比较每个实例上的services的对应的DBTIMEPERCALL或者CPUPERCALL/DBTIMEPERCALL,到底比较什么,取决于我们给这个services指定的GOAL值是什么,可以通过dbms_services来修改services的GOAL值。
不管GOAL的值设置的是什么,最终Service Time和Throughput是通过gv$servicemetric里面的字段GOODNESS体现出来的,doc对GOODNESS的解释:Indicates how attractive a given instance is with respect to processing the workload that is presented to the service. A lower number is better. This number is internally computed based on the GOAL (LONG or SHORT) that is specified for the particular service.
貌似GOODNESS越小越好,GOODNESS小似乎代表的是这个实例下的这个services的负载轻,listener路由connection的时侯会优先使用这个services对应的实例,当然能否连接上还和字段FLAGS的值有关,FLAGS的值如下:
0x01 - service is BLOCKED from accepting new connections
0x02 - service is VIOLATING the set threshold on some metric
0x04 - goodness is UNKNOWN
查看全文
crs之上的resource管理总结
发表人:warehouse | 发表时间: 2012年三月17日, 14:59
重点介绍了crs_profile以及srvctl相关命令的用法。 查看全文
linux下asm里如何找到asm disk和os device的对应关系
发表人:warehouse | 发表时间: 2012年三月16日, 15:30
oracle里似乎没有直接的对应关系。 查看全文
RAC修改IP地址
发表人:warehouse | 发表时间: 2012年三月15日, 21:03
实际环境当中这种需求可能不是很多,但是我在讲课时缺经常需要这么做,因为毕竟安装RAC和讲课时的网络环境是一样的,为了能让大家都能连上我本子上的这套rac,一般安装完RAC通常需要做的第一件就是修改一下IP,下面是过程,我参考了一篇文章,连接如下:http://blog.csdn.net/tianlesoftware/article/details/5362925
查看全文
xmanager 2.0连接redhat as 4的设置方法
在linux上关闭不必要的服务加快启动时间
发表人:warehouse | 发表时间: 2012年三月14日, 18:39
弄rac的时侯同时开启2台机器,常常感觉很慢,既然是测试,可以先关闭这些启动比较慢的服务。
查看全文
我对大家寻求oracle培训的一点看法
发表人:warehouse | 发表时间: 2012年三月02日, 23:09
仅是自己的观点,供参考
查看全文
代理在vue的oca和ocp考试
发表人:warehouse | 发表时间: 2012年二月24日, 09:56
好多人已经考了10g ocp或者更早版本的,现在面临着升级等问题,他们不知道该如何升级;还有一部分人可能暂时只想考oca以后等准备差不多、资金也宽裕的时侯再考ocp,这些都需要直接在vue考试中心考就可以了,但是在vue考的话也涉及到很多问题,比如我接触的一些人他们考完的几门课都不在一个oracle testing id下,自己注册的一个vue账号又看不到自己考完的成绩;3门都考完了也有了原厂培训的enrollment id最后又不会申请证书;申请之后长时间收不到又不会追踪;为了方便大家,我们开辟了对vue考试的代理,注意暂时只针对oca和ocp的考试,全国各地想考的都可以,安排大家在本地的vue考试中心考,考单以及所有的流程我们来负责处理。每一门考试的价格就是大部分vue考试中心收取的1125人民币每门。我们挣点返点和差价。其他再无额外的手续费了。考哪一门我们送题库。 查看全文
身在国外想考ocp的可以联系我们
发表人:warehouse | 发表时间: 2012年二月22日, 13:39
ocp证书的含金量在国外似乎比国内更重,但是价格却比国内要高出很多,为了满足国外想考ocp的各位,我们开辟了新的ocp考证渠道来满足身在国外的兄弟们。有想考的可以联系warehouse。 查看全文
hands on顺利approved之后长时间收不到证书怎么办
发表人:warehouse | 发表时间: 2012年二月16日, 17:40
在approved之后oracle会给我们发一份mail,其中里面有句话:
If you have not received your kit in 8 weeks, please contact us at ocp-fulfillment_ww@oracle.com.但是当你发mail的时侯会收到提示:
Note: The ocp-fulfillment_ww@oracle.com mail box will be decommissioned on 23-May-2011, you will not receive any reply from this mail box. For all your Certification questions or issues, please submit a Service Request - http://education.oracle.com/pls/eval-eddap-dcd/OU_SUPPORT_OCP.home?p_source=OCP and an OCP customer service representative will contact you.
意思是说从2011年5月23号开始这个mail退役(呵呵,暂停使用了)。
查看全文
出售oracle原厂资质、代理原厂培训
发表人:warehouse | 发表时间: 2012年二月12日, 09:55
由于从我们这儿报考ocp和ocm的人数较多,业绩比较突出,我们受到oracle公司的奖励和信赖。使得我们最终能和oracle公司有更深度的合作。
下面列举一些我们能为大家提供的服务:
查看全文
考证之后如何知道oracle是否把oca和ocp在什么时间给我们发到哪儿了
发表人:warehouse | 发表时间: 2012年二月01日, 10:58
先按照下面方式进去:
http://warehouse.itpub.net/post/777/514386
查看全文
耗尽物理内存观查swap
发表人:warehouse | 发表时间: 2012年一月07日, 23:34
在讲性能优化的时侯,我常常模拟一些cpu,io比较高以及如何监控和诊断的一些案例,有一次一位学员问是否可以模拟一下物理内存耗尽出现swap的情况,这个要比模拟cpu和io高的情况稍微复杂一点。下面是详细的过程:
查看全文
儿子的伙伴
发表人:warehouse | 发表时间: 2011年十二月25日, 22:12
看了itpub一个版主说来她家玩的一个小朋友没有规矩让她烦恼之后,我随手写了儿子的几个伙伴。 查看全文
为已经报名或者曾经报名考过的人创建了一个超级群
发表人:warehouse | 发表时间: 2011年十二月23日, 12:12
应报名考证人员的要求,要求为已经报名的人单独创建一个群,这样可能大家在准备考试时方便交流,我弄一个超级群,专门为从我们这儿报了名或者已经从我们这儿报名考过的人准备的,大家加入吧,加入时备注写上你的姓名就可以了,这样我好验证一下,群号:121790997 ,其他人禁止入内,多谢理解和配合。
查看全文
Troubleshooting Database Control Startup Issues
发表人:warehouse | 发表时间: 2011年十二月19日, 21:55
使用em时经常遇到问题,最近就遇到了port被占用的问题,发现了一篇有关em的好文章,记录一下 。 查看全文
在数据分布严重不均的列上使用绑定变量容易错过更好的执行计划
发表人:warehouse | 发表时间: 2011年十二月09日, 20:08
在数据分布严重不均的列上使用绑定变量容易错过更好的执行计划,原因在于9i引入bind peeking机制导致的。 查看全文
乐观锁和悲观锁
发表人:warehouse | 发表时间: 2011年十二月07日, 16:08
这个帖子里提到的概念,也常听别人提到这种说法,其实oracle的doc里几乎没看到这样的叫法...记录一下
http://www.itpub.net/thread-341385-1-1.html
看了下面doc,感觉toms_zhang的解释还是非常到位的:
乐观锁:完全依靠数据库来管理锁的工作。
悲观锁:应用程序自己管理数据或对象上的锁处理
查看全文
如何查看ocp证书(hands on)的状态以及尽快督促oracle完成审核并且快速发证
发表人:warehouse | 发表时间: 2011年十一月30日, 18:08
oracle的效率实在是不敢恭维,3门课考完之后提交hands on一等就是好几个星期,甚至有的能等2、3个月,要知道hands on的状态如果不是approved,那么oracle是不会给我们发出ocp证书的,oca和这个没有关系,如何查看以及催促oracle尽快完成审核以及尽快给我们邮寄证书呢,下面是我提供的办法,效果还是不错的。
查看全文
我自己讲课时总结的oracle中3个“3”
发表人:warehouse | 发表时间: 2011年十一月28日, 12:38
3个重要的概念
3部分不太好理解的内容
3部分非常重要的内容
查看全文
表与表之间连接式on,using以及自然连接的区别
发表人:warehouse | 发表时间: 2011年十一月22日, 19:54
群内经常有人问,简单总结一下,刚接触时可能有些不太好理解: 查看全文
模拟永久表空间中产生的临时段
发表人:warehouse | 发表时间: 2011年十一月22日, 11:01
群里的一个朋友问users表空间里多了一个temporary segment,问是什么东西,后来他说在执行create table tab_name as select * from tab_name1@dblink;时杀掉了进程,之前我讲课时其实也发现过永久表空间里会出现临时段的情况,简单模拟了一下。
查看全文
我所认识的年龄最大的oracle前辈-赵元杰(2本书的作者)
发表人:warehouse | 发表时间: 2011年十一月12日, 22:05
赵老先生是54年生的,搞oracle差不多30多年了,oracle没来中国就开始oracle搞了,据他说当还是时磁带以及5存盘等。百忙之中著有《Oracle数据库实用指南》以及《Oracle 10g系统管理员简明教程》,精力旺盛、激情四射让人佩服。来大连讲课来了、闲暇之余一起聊了一下。
查看全文
语句审计相关的表是stmt_audit_option_map
发表人:warehouse | 发表时间: 2011年十一月05日, 16:37
和权限审计相关的表是system_privilege_map,和对象审计相关的表是table_privilege_map,和语句审计相关的表是stmt_audit_option_map,有关语句审计oracle的描述
SQL statement auditing: The statement shown in the slide can audit any data definition
language (DDL) statement that affects a table, including CREATE TABLE, DROP TABLE,
TRUNCATE TABLE, and so on. SQL statement auditing can be focused by username or by
success or failure:
SQL> AUDIT TABLE BY hr WHENEVER NOT SUCCESSFUL;
和对象权限相关的表table_privilege_map
发表人:warehouse | 发表时间: 2011年十月30日, 12:23
和系统权限相关的表是system_privilege_map,一直不太注意和对对象权限相关的表table_privilege_map,oracle的命名貌似不够严谨,为什么不命名成object_privilege_map呢,包括和对象权限相关的视图dba_tab_privs,为什么中间不是obj,从命名也能看得出对象权限其实主要是指表的权限。 查看全文
insert all和insert first测试
发表人:warehouse | 发表时间: 2011年十月20日, 09:23
oracle从9i支持insert all和insert first,对涉及到多个表的批量数据插入有很大帮助。下面看看基本语法以及他们之间的区别。 查看全文
如何理解树状sql中ORDER SIBLINGS BY排序的含义
发表人:warehouse | 发表时间: 2011年十月19日, 21:53
SIBLINGS 是兄弟姐妹的意思,那么ORDER SIBLINGS BY的意思就是在兄弟姐妹之间的排序,和order by所表示的含义绝对不同,针对树状sql,我觉得ORDER SIBLINGS BY更有意义,树状sql查询出来的结果本身就是按照层次(hierarchy)结构排好序的,而加上关键字SIBLINGS 其实是在hierarchy内部进行排序。
查看全文
group by中cube含义解析
发表人:warehouse | 发表时间: 2011年十月19日, 09:27
理解了rollup,那么cube相对就好理解了,cube是对rollup的深度使用。cube是group by中几个字段的组合分组,其实要表示的典型的意思是dw中转取的概念,每一个group by中要分组的字段本身就是dw中的一个维度,而cube的出现把dw的含义体现的淋漓尽致.
rollup和grouping总结如下:
http://warehouse.itpub.net/post/777/524442
查看全文
group by中rollup的以及grouping含义解析
发表人:warehouse | 发表时间: 2011年十月19日, 08:34
rollup是对group by分组子句的扩充和延伸,最终的结果就是求小计和总计,其实是从多角度来分析和统计数据,是对dw业务的支持。 查看全文
约束的DEFERRABLE and DEFERRED特性
发表人:warehouse | 发表时间: 2011年十月15日, 23:21
看到经常有人问这个东西,doc看到了,随手记录一下。
查看全文
warehouse的职业生涯经历
发表人:warehouse | 发表时间: 2011年十月13日, 00:23
在pub10周年之计,浪迹pub10年,简单的与大家分享一下自己的成长经历!. 查看全文
streams capture状态PAUSED FOR FLOW CONTROL原因分析和诊断
发表人:warehouse | 发表时间: 2011年九月26日, 08:47
客户环境:ibm p595 双机
oracle:10.2.0.4 rac与另外一台查询db通过stremas交换数据
问题:事务多、事务大的时侯capture process出现PAUSED FOR FLOW CONTROL导致同步暂停
查看全文
难得的waiting for snapshot control file enqueue提示...
发表人:warehouse | 发表时间: 2011年九月18日, 21:29
rman备份db时出现了:waiting for snapshot control file enqueue提示,很少看到这个提示,记录一下。
查看全文
推荐一篇难得的深入分析逻辑读的好文章
发表人:warehouse | 发表时间: 2011年九月10日, 10:15
这是他的主页:http://www.hellodba.com/
搜了一下没有找到,大家在google里自己搜索:逻辑读写深入分析
文章是在acoug上分享的,没有连接,郁闷。
看完之后也解除了心理的好多疑问,作者的功底深厚啊,写出了好多精彩文章,多关注他的个人主页吧。
查看全文
错误ORA-02067的艰难模拟
发表人:warehouse | 发表时间: 2011年九月03日, 21:38
客户系统经常报错误ORA-02067,搜了一下,有关这个错误的解释几乎都是:
Cause: A failure (typically a trigger or stored procedure with multiple remote updates) occurred such that the all-or-nothing execution of a previous Oracle call cannot be guaranteed.
Action: rollback to a previous savepoint or rollback the transaction and resubmit.
查看全文
ocp题库047中重复的题目(引用)
发表人:warehouse | 发表时间: 2011年八月07日, 18:00
047中重复了很多,好多朋友都在看的时侯发现了这个问题,有些人也整理过,但是可能没有标注出来到底重复了哪些,谁和谁重复了,一个热心的朋友不仅对题库做了精讲,同时为大家标注了出来了,这里我引用一下供大家参考 . 查看全文
题库精讲(转载)
发表人:warehouse | 发表时间: 2011年八月07日, 17:55
一直都有这个想法,解析一下题库,希望能帮助考证的兄弟们,总觉得的工作量太大,勇气不足...在itpub上看到了一个在我这儿报名考证的一个兄弟对题库做了精讲,非常敬佩他的学习态度和无私的分享精神,在这里我记录一下,希望能让更多学习oracle以及考ocp的朋友从中受益. 查看全文
OCA|OCP证书邮寄地址变了怎么办!
发表人:warehouse | 发表时间: 2011年八月05日, 11:14
很多人由于工作变化,没等证书到手可能就换工作了,当时写的又是单位地址...按照下面流程处理一下: 查看全文
10g OCA|OCP考试科目、时间、以及通过率要求!
发表人:warehouse | 发表时间: 2011年八月04日, 20:44
好多人常问,而且ou上竟然把043的考试题目数量和时间都写错了,nnd,真不够专业...我放在这里供大家参考!
查看全文
execute dbms_logmnr_d.set_tablespace与ORA-01950
发表人:warehouse | 发表时间: 2011年八月01日, 19:02
在客户现场配置streams环境
以sys用户执行execute dbms_logmnr_d.set_tablespace时一直提示下面错误:
ERROR at line 1:
ORA-01950: no privileges on tablespace 'TBS_STREAMS'
ORA-06512: at "SYS.DBMS_LOGMNR_D", line 233
ORA-06512: at line 1
仔细分析之后觉得不是sys用户缺少权限而是system缺少...
查看全文
warehouse提供的免费oracle学习视频
发表人:warehouse | 发表时间: 2011年八月01日, 12:07
好多朋友告诉我自学oracle时间太长,精力有限,不能长时间坚持,所以很容易放弃...没错,学习oracle确实需要制定一个长期的计划,为了缩短大家的学习时间,能够尽可能在短的时间内掌握oracle的一些基本技能,早日找到和oracle相关的工作,我尽一点绵薄之力,给大家共享5天我给企业做培训时录制的视频以及我讲oca和ocp时录制的共10天60学时的视频,oca和ocp的视频是09年录制的,当时的很多内容也许介绍的还不是很到位,最新的oca和ocp视频录制完毕,最新的视频暂时只提供给报名考证的学员,合适的时侯也会分享给大家的,敬请关注。
备注:视频外放声音效果一般,建议大家带耳机,带着耳机效果不错,其中第九天的视频不知道115网址啥原因,说是文件可疑不让下载,我放在了我的各个qq群共享里,大家在群里的话下载一下吧。
另外对ocp感兴趣的可以参考我写的和ocp考证相关的系列文章,感谢大家长期以来对warehouse的支持和信任。
http://warehouse.itpub.net/post/777/511123
查看全文
corrupt block引起的错误ORA-01498原因分析
发表人:warehouse | 发表时间: 2011年七月24日, 23:02
执行analyze table tt1 validate structure;分析表上的block corrupt时出现了错误ORA-01498困扰了一段时间了,今天仔细分析了一下作了一点总结.
查看全文
当asm file的REDUNDANCY值高于diskgroup的REDUNDANCY时
发表人:warehouse | 发表时间: 2011年七月21日, 12:58
当asm file的REDUNDANCY值高于diskgroup的REDUNDANCY时,oracle如何实现asm au的真真REDUNDANCY...
查看全文
讲课时经常用到的2个隐含参数
发表人:warehouse | 发表时间: 2011年七月21日, 07:47
记不住,放在这里备查
*._asm_allow_only_raw_disks=FALSE (asm)
__dg_broker_service_names=''(前面是两个_) (listener)
查看全文
数据库第一次resetlogs是发生在db创建时
发表人:warehouse | 发表时间: 2011年七月20日, 19:48
下面是验证过程。 查看全文
server端os时区引起的10g em使用问题
发表人:warehouse | 发表时间: 2011年七月19日, 18:21
讲课时,一位学员遇到的问题,很棘手,后来通过修改server端os的时区问题得以解决,但是原来os的时区是什么,他想不起来了,我反复修改了几次不同的时区,问题重现过一次就消失了,真奇怪,又改了几个不同的值,会出现
| |
 |
| java.lang.Exception: IOException in sending Request :: Connection refused: connect |
等不同提示的类似错误,但是em还是可以使用的,总之这个问题就是由于os时区设置的问题引起的。
查看全文
伪行列转换!
发表人:warehouse | 发表时间: 2011年七月17日, 15:55
不知道该起个怎样的标题,讲课时一位学员提出了这样一个需求,搜了一下可以通过wmsys.wm_concat来实现,但是客户使用的是9i,于是在群里的一个哥们的帮助下,通过树状sql结合分析函数实现了客户的要求,不过客户反应看不懂,后来我还是用cursor笨办法来实现一下:
查看全文
sqlplus中灵活使用sqlprompt提示符
发表人:warehouse | 发表时间: 2011年七月03日, 22:30
我一直觉得oracle在v$session中应该包含v$process的spid字段,这样使用起来更方便,同时在sqlplus中应该把sid,spid以及user和sid等信息显示出来,这样方便使用... 查看全文
expdp_impdp使用network_link远程用户需要EXP_FULL_DATABASE角色
发表人:warehouse | 发表时间: 2011年六月27日, 17:23
没有EXP_FULL_DATABASE角色,会出现下面错误:
ORA-31631: privileges are required
ORA-39149: cannot link privileged user to non-privileged user
查看全文
exp中的选项compress测试!
发表人:warehouse | 发表时间: 2011年六月26日, 20:12
COMPRESS
Default: y
Specifies how Export and Import manage the initial extent for table data.
The default, COMPRESS=y, causes Export to flag table data for consolidation into one initial extent upon import. If extent sizes are large (for example, because of the PCTINCREASE parameter), the allocated space will be larger than the space required to hold the data.
If you specify COMPRESS=n, Export uses the current storage parameters, including the values of initial extent size and next extent size. The values of the parameters may be the values specified in the CREATE TABLE or ALTER TABLE statements or the values modified by the database system. For example, the NEXT extent size value may be modified if the table grows and if the PCTINCREASE parameter is nonzero.
Note:
Although the actual consolidation is performed upon import, you can specify the
COMPRESS parameter only when you export, not when you import. The Export utility, not the Import utility, generates the data definitions, including the storage parameter definitions. Therefore, if you specify
COMPRESS=y when you export, you can import the data in consolidated form only.
Note:
Neither LOB data nor subpartition data is compressed. Rather, values of initial extent size and next extent size at the time of export are used.
--===============================
COMPRESS=n很好理解,表导出去时extent是什么样的导入时还是原来的样子;COMPRESS=y貌似oracle主要是应对PCTINCREASE导致的extent越来越大的问题;下面测试了一下LMT下autoallocate的情况倒是觉得可以理解。
根据测试COMPRESS=y时说明oracle导入表时会根据segment的大小重新分配extent,COMPRESS=n时extent不做调整。不管COMPRESS=n|y,导入时oracle分配extent只和segment大小有关和表里是否有数据没有任何关系,即使表里没有任何数据,加上COMPRESS=y也不会使hwm回落。所以oracle默认使用COMPRESS=y根据segment大小再导入时重新分配extent更有实际意义。
查看全文
fga使用时参数handler注意事项
发表人:warehouse | 发表时间: 2011年六月23日, 12:27
Handler
An optional event handler is a PL/SQL procedure that defines any additional actions that must be
taken during auditing. For example, the event handler can send an alert page to the administrator.
If it is not defined, then an audit event entry is inserted into the audit trail. If an audit event
handler is defined, then the audit entry is inserted into the audit trail and the audit event handler
is executed.
The audit event entry includes the FGA policy that caused the event, the user executing the SQL
statement, and the SQL statement and its bind variables.
The event handler is passed as two arguments:
• The schema that contains the PL/SQL program unit
• The name of the PL/SQL program unit
The example in the slide executes the SECURE.LOG_EMPS_SALARY procedure by using the
following arguments:
handler_schema => 'secure'
handler_module => 'log_emps_salary'
By default, audit trail always writes the SQL text and SQL bind information to LOBs. The
default can be changed (for example, if the system would suffer performance degradation).
Status
The status indicates whether the FGA policy is enabled. In the slide example, the following
argument enables the policy:
enable => TRUE 查看全文
audit_trail与extended!
发表人:warehouse | 发表时间: 2011年六月23日, 11:53
在修改参数audit_trail=xml,extended时千万不要加单引号... 查看全文
恢复rac db(raw)到单实例下
发表人:warehouse | 发表时间: 2011年六月16日, 22:42
os:redhat as 4
oracle:oracle10gR2
客户提出了这样一个要求,演示一下rac db到单实例的恢复,他们的目的是检验生产环境的备份有效性
查看全文
清空1份votedisk之后2个节点同时重启
发表人:warehouse | 发表时间: 2011年六月15日, 21:14
votedisk一共3份:
/dev/raw/raw2
/dev/raw/raw5
/dev/raw/raw6
清空一份(dd if=/dev/zero of=/dev/raw/raw2)之后2个node同时重启了,之后重新手动启动crs顺利起来了,之后再清空一份,2个节点又同时重启了,之后手动启动crs无法启动了,因为完好的votedisk不够一半以上。
查看全文
实例恢复的顺序
发表人:warehouse | 发表时间: 2011年六月13日, 19:13
通过alert仔细观查,发现实例恢复的顺序是:
1、前滚
2、open db
3、rollback(注意:SMON: Parallel transaction recovery tried
在Completed: ALTER DATABASE OPEN)之后
SMON: enabling cache recovery
Mon Jun 13 16:50:50 2011
Successfully onlined Undo Tablespace 1.
Mon Jun 13 16:50:50 2011
SMON: enabling tx recovery
Mon Jun 13 16:50:50 2011
Database Characterset is ZHS16GBK
replication_dependency_tracking turned off (no async multimaster replication found)
Starting background process QMNC
QMNC started with pid=30, OS id=4588
Mon Jun 13 16:50:59 2011
Completed: ALTER DATABASE OPEN
Mon Jun 13 16:51:00 2011
SMON: Parallel transaction recovery tried
Mon Jun 13 16:51:01 2011
查看全文
在oracle里把backugroupd process叫做oracle的deamon process咋样
发表人:warehouse | 发表时间: 2011年六月13日, 17:56
os内核的某个deamon process宕了,os是重启还是关机?
讲课的时候忽然觉得oracle里的几个重要的后台进程其实就是oracle 实例的deamon process
查看全文
安装crs使用runcluvfy验证的一个问题
发表人:warehouse | 发表时间: 2011年六月09日, 00:07
其实rac已经安装好了,我使用cluvfy命令时发现一个有意思的问题(安装前需要使用runcluvfy来验证,因为cluvfy命令还没有被安装进来),安装crs之后cluvfy就可以正常使用了。 查看全文
从我们这儿报名考OCP的优势
发表人:warehouse | 发表时间: 2011年六月01日, 21:18
我认为我替大家弄ocp证书的优势在于我很专业,价格也比较低,而且你们也比较省心,同时考试也比较灵活吧。不像其他一些机构忽悠的成份大一些,毕竟我自己也做技术、也是dba。
查看全文
系统权限 GRANT ANY OBJECT PRIVILEGE的作用!
发表人:warehouse | 发表时间: 2011年六月01日, 17:11
To grant a system privilege, you must either have been granted the system privilege with the ADMIN OPTION or have been granted the GRANT ANY PRIVILEGE system privilege.
To grant a role, you must either have been granted the role with the ADMIN OPTION or have been granted the GRANT ANY ROLE system privilege, or you must have created the role.
To grant an object privilege, you must own the object, or the owner of the object must have granted you the object privileges with the GRANT OPTION, or you must have been granted the GRANT ANY OBJECT PRIVILEGE system privilege. If you have the GRANT ANY OBJECT PRIVILEGE, then you can grant the object privilege only if the object owner could have granted the same object privilege. In this case, the GRANTOR column of the DBA_TAB_PRIVS view displays the object owner rather than the user who issued the GRANT statement.
查看全文
今天买了现代途胜
发表人:warehouse | 发表时间: 2011年五月28日, 18:34
好多人说韩系和日系车如何如何,我觉得没开过的话就不要说三道四;喜欢这款车好久了,大约从它出来就喜欢上了,喜欢它的外形,大气,厚实;花轿车的价格买了SUV我觉得性价比不错,在不降价之前我觉得不太划算,现在还好,尽管出差依然不少,但是不出差的时候也经常跑客户那儿,公司的一些杂七杂八的事情也需要处理,总之没有个代步的工具总觉得不是很方便,尽管停车比较困难...留个纪念,2011年5月28日(星期六)...新起点、新征程! 查看全文
rac管理和维护的一篇不错的文章
rac中voting disk的作用以及如何保护!
发表人:warehouse | 发表时间: 2011年五月12日, 16:32
网上看的一篇不错的文章,记录一下
查看全文
阻塞(block)过程模拟与分析!
发表人:warehouse | 发表时间: 2011年五月08日, 23:21
锁的一点分析、总结和理解。 查看全文
archivelog模式和flashback db以及guarantee restore point之间的相互制约关系!
发表人:warehouse | 发表时间: 2011年四月22日, 21:44
随手记录。。。 查看全文
local管理的表空间下autoallocate方式extent的分配原则
发表人:warehouse | 发表时间: 2011年四月22日, 20:49
segment size<=1m extent 按照64k分配;
segment size<=64m extent 按照1m分配;
segment size<=1g extent 按照8m分配;
segment size>1g extent 按照64m分配;
以前看doc这么介绍的,今天正好创建一了一个14g的大表,顺道观查了一下,做个记录
查看全文
controlfile的extend也会记录在alert日志中
发表人:warehouse | 发表时间: 2011年四月19日, 16:17
版本11gR1,在客户的db alert日志中看到了这一现象,记录一下。
查看全文
OCA|OCP最新催证书的入口!
发表人:warehouse | 发表时间: 2011年四月12日, 10:50
以前是发mail,从2011年5月23日开始直接通过下面网址提交自己的信息来催oca或者ocp ,并且之前的mail将被废弃:
Note: The ocp-fulfillment_ww@oracle.com mail box will be decommissioned on 23-May-2011, you will not receive any reply from this mail box. For all your Certification questions or issues, please submit a Service Request - http://education.oracle.com/pls/eval-eddap-dcd/OU_SUPPORT_OCP.home?p_source=OCP and an OCP customer service representative will contact you.
查看全文
expdp/impdp的原理及使用(转)
有关temporary segment的分配、使用以及回收!
发表人:warehouse | 发表时间: 2011年四月06日, 10:01
以前对临时段的认识到底是出现了错误还是oracle 10g有变化,发现临时段在sort之后查询结束释放了。 查看全文
共享池内存分配和错误ORA-00371
发表人:warehouse | 发表时间: 2011年四月01日, 08:03
不论是sga自动管理还是手动管理,共享池都是由2部分内存组成的,一部分是供我们用户使用,这部分就是我们熟悉的library cache和dictionary cache,另一部分就是oracle内部使用的,比如参数process的大小直接决定了使用这部分内部使用的内存大小。
查看全文
rman中RETENTION POLICY和BACKUP OPTIMIZATION的制约关系!
发表人:warehouse | 发表时间: 2011年三月30日, 09:41
更详细的内容可以参考doc:
http://download.oracle.com/docs/cd/B19306_01/backup.102/b14191/rcmconc1.htm#sthref247
本文只针对RETENTION POLICY和BACKUP OPTIMIZATION以及结合043中的一道题做一个简单的说明,这道题在群内问起的人很多,确实不是很好理解。
查看全文
alert中详细记录了实例恢复的过程
发表人:warehouse | 发表时间: 2011年三月27日, 18:29
实例恢复的过程中事务恢复(也就是rollback掉那些没有提交的事务)到底是在open之前还是open之后做呢貌似oracle没有给出一个明确的说法,我以前一直认为是首先前滚然后open db之后再做rollback(事务恢复),但是通过alert里面实例恢复的过程来观查发现应该是在open之前就做了rollback(SMON: enabling tx recovery)。 从alert中记录的日志来看open的过程中先后做了前滚和回滚之后才能open db。 查看全文
Overview of Instance and Crash Recovery
发表人:warehouse | 发表时间: 2011年三月27日, 18:25
doc的原话,记录一下
查看全文
实例恢复是需要经过buffer cache的!
发表人:warehouse | 发表时间: 2011年三月27日, 13:13
实例恢复是否需要经过buffer cache一直是我心中的疑问,oracle doc上提到了cache recovery,我一直认为应该是经过cache的,但是不好验证,今天无意中发现alert记录了这一信息:
Buffer cache too small: 126 buffers remain in apply pass 2
查看全文
监控flash_recovery_area空间的使用
发表人:warehouse | 发表时间: 2011年三月26日, 20:25
可以通过2个视图来监控flash_recovery_area空间的使用 查看全文
awr收集snapshot时的级别
发表人:warehouse | 发表时间: 2011年三月26日, 19:56
和statspack相比awr收集快照的级别只有2种 查看全文
excel中如何调整横坐标的刻度位置
发表人:warehouse | 发表时间: 2011年三月26日, 17:10
select sga_size,100*(1-estd_db_time_factor) from v$sga_target_advice
order by sga_size
sga_target advisor通过excel画图处理之后由于纵坐标存在负值,而横坐标又是从纵坐标的0值开始的,这样看起来不是很舒服,如何调整呢。
在纵坐标上点击右键选折“坐标轴格式”,然后选折“刻度”tab页,之后在“交叉于”标签处输入想要的值就可以了。
查看全文
实例当前使用的undo表空间中也可能存在offline undo segment!
发表人:warehouse | 发表时间: 2011年三月20日, 12:00
无意中发现了这一现象,记录一下...没看到到doc里是否有说明...观查了一下发现,oracle默认只会online10个undo segment
查看全文
Incrementally Updated Backups(增量合并备份,10gR2的特点)
发表人:warehouse | 发表时间: 2011年三月17日, 22:08
doc解释了一堆,还真不是很好理解...如果能图释一下我想要清楚的多。
利用下面命令实现增量合并(Updated,oracle用updated这个词我觉得其实更准确):BACKUP INCREMENTAL 1 FOR RECOVER OF COPY ...
其实首先要有一个所有datafile的一个copy(如果0级copy不存在,即使上面命令指定的是1级,那么oracle还是首先要做一个0级拷贝),之后oracle基于这个0级拷贝做1级增量备份,每次的增量备份都要合并以前的增量备份以便保证这个最新的增量备份是“相当于”从0级开始备的,至于合并那个增量备份要看命令BACKUP INCREMENTAL 1 FOR RECOVER OF COPY TAG...中指定的tag,这个命令完成的其实是差异增量备份、但是最终的效果就是0级拷贝+1级累计增量备份。真是一个不错的思想!利用差异增量备份的思想达到累计增量备份的效果。
查看全文
如何启用和屏蔽OS认证
发表人:warehouse | 发表时间: 2011年三月14日, 21:42
我们通过通过在ora_dba(windows)和dba(unix/linux)以及在sqlnent.ora中修改SQLNET.AUTHENTICATION_SERVICES的值来控制os认证的启用以及屏蔽。
查看全文
如何根据exp导出文件确定client端导出时的字符集
发表人:warehouse | 发表时间: 2011年三月10日, 10:24
其实确定就是nls_lang中提到的字符集,和db server的字符集无关 查看全文
组团报考OCP一省再省
发表人:warehouse | 发表时间: 2011年三月05日, 20:45
具体优惠措施:2个人一起报名,每人省200,3人一起报名,每人省300,4人一起报每人省400,5人一起报每人省500。500封顶。
注意:一起报名不要求一起考试,考试根据各自情况单独随时预约;更不会要求在一个地方考试,各自在各自所在地考就可以了。
查看全文
在redhat as 4下快速安装oracle 10gR2的步骤
发表人:warehouse | 发表时间: 2011年三月04日, 09:59
讲课的时候经常安装,下面列出一个步骤供学员参考,安装rpm包这一步最好都能满足oracle的检查要求,内核参数如果只是学习用的话其实可以不设置,出现有关和内核参数相关的错误提示直接忽略就可以了。安装过程中最麻烦的其实就是安装rpm包和编辑内核参数了,其他的都非常容易... 查看全文
如何在oracle网站上查询、验证自己获得的证书
发表人:warehouse | 发表时间: 2011年三月02日, 13:06
登录http://certview.oracle.com查看
登录的时侯要特别注意在页面的最下面点击sign in,不要点击页面上面的sign in,上面的sign in直接进到oracle主页了貌似,和下面的sign in进去的有点差别。
查看全文
考完OCP之后长时间收不到证书该怎么办?
发表人:warehouse | 发表时间: 2011年二月25日, 06:56
不管你从哪儿报名考试的,(注意:自己直接从vue考试中心的除外,除非你有原厂培训证明,否则没法拿到证书),如果长时间证书收不到,那么可以登录www.pearsonvue.com/oracle查看hands on的状态,如果状态是approved,那么oracle才会给我们邮寄OCP证书,如果状态不是approved,oracle是不会给我们邮寄证书的,更详细的介绍请看(注意:不是任何一家你所报名的机构都能给你顺利的让oracle把状态变成approved,也就是说不是任何一家机构报名都能获得ocp证书):
http://warehouse.itpub.net/post/777/508520 中提到的第9条和第10条。
查看全文
vmware和360!
发表人:warehouse | 发表时间: 2011年二月20日, 18:19
360进程破毁我的vmware 服务,卸载360之后重装vmware之后再装360,一切都没有问题。但是在服务里隔一段时间就找不到vm的最后一个服务了,具体这个vmware在服务里的名字我现在不知道了,因为现在服务里没有这个服务了(可能叫VMware Registration Service),没有这个服务在打开vmware server console的时候会出现错误提示:There was a problem connecting: 511 vmware-serverd service is not running,如何在没有这个服务的情况下消除这个错误而使用虚拟机呢,其实只要在vmware的安装目录下执行C:|Program Files|VMware|VMware Server|vmserverdWin32.exe(到这个目录下双机这个文件,这里我用|代替了一下,因为和itpub的blog环境可能有关这里没法显示出来),之后在任务管理器的"进程"tab页里会出现vmserverdWin32.exe进程),有了这个进程就可以正常使用vmware了...
查看全文
究竟该考哪个版本的OCP证书
发表人:warehouse | 发表时间: 2011年二月18日, 23:12
很多想考证的人经常问我这个问题,下面说了一些自己的看法
查看全文
受困于v$asm_dksigroup里的字段REQUIRED_MIRROR_FREE_MB!
发表人:warehouse | 发表时间: 2011年二月12日, 11:56
这个字段困扰了我很久,现在理解的也是稀里糊涂的,记录一个测试过程和大致的结论。 查看全文
和NLS内容相关的一篇不错的文章!
发表人:warehouse | 发表时间: 2011年二月09日, 14:31
有关这3个view:
nls_database_parameters
nls_instance_parameters
nls_session_parameters
相信会对很多人产生困扰,特别是nls_database_parameters
对我也有很多困扰,下面是一篇不错的文章
http://www.dbapool.com/forumthread/topic_6463.html
查看全文
diskgroup里和空间相关的几个字段的一些介绍
发表人:warehouse | 发表时间: 2011年二月07日, 23:07
主要是涉及到v$asm_diskgroup里的4个字段,其中2个字段的含义不是很好理解,可以参考网上一个哥们写的一篇文章:
http://www.dbapub.net/bbs/viewthread.php?tid=278&extra=page%3D2
查看全文
FAILGROUP和REDUNDANCY之间的关系关系!
发表人:warehouse | 发表时间: 2011年二月07日, 13:07
我们知道asm里提供了3种redundancy方式:normal,high和external,同事它又提供了template的概念,template里也有redundancy的概念,而且template的redundancy特性优先发挥作用与diskgroup的redundancy特性,这样其实就存在一个问题,当diskgroup处于normal方式并且只存在2个failgroup而位于该diskgroup
的asm file的redundancy方式是high的时候,oracle又是如何解决这一矛盾的呢
查看全文
如何理解ASM里FAILGROUP的概念
发表人:warehouse | 发表时间: 2011年二月06日, 23:40
FAILGROUP在asm里是一个非常重要的概念,oracle在doc上又交待的似乎不够清楚。
下面这篇文章是小V的总结,大家也可以参考:
http://www.itpub.net/viewthread.php?tid=1348104&extra=&highlight=failgroup&page=1
查看全文
EM和动态ip
发表人:warehouse | 发表时间: 2011年二月06日, 20:36
在使用em的时候如果ip是动态的,那么通常都会受到困扰,我提供一种解决办法供大家参考... 查看全文
audit时的by session和by access选项的区别!
发表人:warehouse | 发表时间: 2011年一月26日, 22:26
不知道该起一个怎样的标题,总之写这个文章的目的是源于一个从我这儿报名考ocp的哥们的问题,他做了一个针对042题库上第12题的测试然后向我求证答案是否正确,很显然答案A是不正确的,原因就像下面doc说的在语句审计和权限审计审计DDL语句时只能使用by access,可语法上oracle并没有限制,也就是说使用by session时也不会报错,这样很容易引起误导,感觉oracle在很多地方都不够严谨。
Number of Audit Records from Multiple Executions of a Statement
If an audited statement is issued multiple times in a single user session, then your audit trail can have one or more related records. The controlling clause BY ACCESS causes each execution of an auditable operation within a cursor to generate a separate audit record. If you use the BY SESSION clause instead, then your audit trail will contain a single audit record for each session, for each user and schema object. Only one audit record results, no matter how often the statement occurs in that session.
However, several audit options can be set only BY ACCESS:
For all other audit options, BY SESSION is used by default.
查看全文
通过asmcmd进入asm实例时可能会遇到的一些问题
发表人:warehouse | 发表时间: 2011年一月26日, 18:37
使用asmcmd时可能会遇到的一些问题,总结一下
查看全文
ASM file和file alias之间的映射关系!
发表人:warehouse | 发表时间: 2011年一月26日, 17:59
asm没有提供视图直接查询asm file和file alias之间的映射关系,我是说没有提供可以直接查询出来的视图,通过下面的sql可以查询出来
查看全文
如何获得db server端和client端的ip和host_name
发表人:warehouse | 发表时间: 2011年一月24日, 22:20
如何获得db server端和client端的ip和host_name 查看全文
A Deprecated RMAN Commands
发表人:warehouse | 发表时间: 2011年一月24日, 13:48
http://download.oracle.com/docs/cd/B19306_01/backup.102/b14194/obs_comm.htm#RCMRF910
讲课的时候无意中发现recover database until logseq|sequence,隐约的感觉他们应该是一一样的,查了一下doc发现确实一个意思,只不过从9.0.1开始logseq被废弃,取而代之的是sequence,为了兼容老版本,保留了logseq它
查看全文
部分脱机备份恢复时有关恢复起点的一点疑问
发表人:warehouse | 发表时间: 2011年一月23日, 11:49
没想明白,暂时记录一下
查看全文
v$process中pid=1的是什么process
发表人:warehouse | 发表时间: 2011年一月09日, 10:16
doc描述的比较清楚,看doc吧
SQL> select addr,program from v$process where pid=1;
ADDR PROGRAM
---------------- ---------------
043120010AE PSEUDO
SQL>
查看全文
10g性能优化向导的第14章需要反复阅读
发表人:warehouse | 发表时间: 2010年十二月30日, 10:35
Oracle® Database Performance Tuning Guide
10g Release 2 (10.2)Part Number B14211-03
14 Managing Optimizer Statistics
查看全文
oracle 10g分析函数最终版(转)
ocp|ocm考证一站式服务!
发表人:warehouse | 发表时间: 2010年十二月26日, 20:09
为了让大家全方位了解ocp考证的过程以便大家能够腾出更多的时间全身心的学习oracle...我一连写了和ocp考证或者是和oracle dba这个职业相关的几篇文章供大家参考。
查看全文
Ocp考证的风险
发表人:warehouse | 发表时间: 2010年十二月26日, 20:05
考证的过程本身很艰辛,但是如果选择的机构不当,那么风险丛丛、陷阱丛丛... 查看全文
Ocp证书的价值以及拥有它的意义!
发表人:warehouse | 发表时间: 2010年十二月26日, 19:57
Ocp证书的价值以及拥有它的意义! 查看全文
system用户是否可以删除!
发表人:warehouse | 发表时间: 2010年十二月23日, 22:12
突然冒出的一个想法,尝试了一下貌似不行...
查看全文
插入相同的数据量普通表和临时表产生的redo对比
发表人:warehouse | 发表时间: 2010年十二月23日, 18:07
往临时表里插入相同量的数据比普通heap表少产生很多redo。 查看全文
树状sql中connect by里prior的含义!
发表人:warehouse | 发表时间: 2010年十二月23日, 10:41
搜集了几篇和树状sql相关的几篇文章...
http://www.bithink.cn/bbs/viewthread.php?tid=87&extra=page%3D2&sid=lyPZPp
http://www.cnblogs.com/ZHF/archive/2008/09/10/1288101.html
在树状sql里其实最难理解的我觉得就是connect by之后的prior关键字了,就像外联接字段边上的+,其实prior和+的意思非常相似,如果我们希望从start with 后面字段提供的值作为节点检索它的孩子,那么就把prior写在connect by 中关联条件start with 后面字段等式的另外一侧;如果我们希望从start with 后面字段提供的值作为节点检索它的父亲,那么就把prior写在connect by 中关联条件start with 后面字段的一侧。比较难表述,看一下下面的例子吧。
查看全文
sysaux和system不支持重命名!
发表人:warehouse | 发表时间: 2010年十二月22日, 23:08
2个系统表空间不支持重命名... 查看全文
oracle 多表连合修改----BYPASS_UJVC(转)
发表人:warehouse | 发表时间: 2010年十二月21日, 15:07
原文连接:
http://blog.chinaunix.net/u/28618/showart_347103.html
这就是oracle中支持的多表关联更新中的语法,这种语法比使用子查询更新效率更高。
查看全文
连接主机和存储的核心交换机重启引起的一场血案
发表人:warehouse | 发表时间: 2010年十二月20日, 11:29
总结了一下,希望大家能够从中汲取教训...
查看全文
block中AVG_SPACE的意义
发表人:warehouse | 发表时间: 2010年十二月17日, 10:14
在hwm很高的情况下,AVG_SPACE越大意味着block中free space越大,这时候如果表很大的话,这里表大一方面是指num_rows很大,另一方AVG_ROW_LEN也很大。AVG_SPACE如果大到一定程度(当然这个度自己根据和block_size相比较把握)想办法shrink一下这个表,降低hwm的同时降低AVG_SPACE...从而提高性能和空间利用率。 查看全文
db支持共享模式连接的话shutdown通常会很慢(dispatcher shutdown)
发表人:warehouse | 发表时间: 2010年十二月05日, 16:35
dispatcher shutdown
During shutdown immediate or normal, the shutdown process must wait for all the dispatchers to shutdown. As each dispatcher is signaled, the session that causes the shutdown is waits on this event until the requested dispatcher is no longer alive.
查看全文
如何找到第一份dba工作-dba如何入行
发表人:warehouse | 发表时间: 2010年十一月11日, 11:39
发到了itpub上,连接如下:
http://www.itpub.net/thread-1367088-1-1.html
查看全文
ocp考证简要须知及报名流程
发表人:warehouse | 发表时间: 2010年十一月10日, 11:50
对ocp感兴趣的话可以联系谢永生,网名warehouse,曾任国内知名oracle技术论坛www.itpub.net 新技术区斑竹,现任oracle认证区斑竹
blog地址:http://warehouse.itpub.net
个人简介: http://warehouse.itpub.net/post/777/403336
整理过的文章:
http://www.itpub.net/thread-911241-1-1.html
其他联系方式:
电话:13840879243
msn:xys_666888@hotmail.com
qq:9020630
qq群7:122642876 (在用)
qq群6:81569269 (已满)
qq群5:96105682 (已满)
qq群4:136168322(已满)
qq群3:33492613 (已满)
qq群2:70820874(已满)
qq群1:93361859 (已满)
qq群8:126678558 (备用)
查看全文
oracle高级性能调整培训ppt
发表人:warehouse | 发表时间: 2010年十一月08日, 12:49
前段时间在北京给几个重要的客户培训oracle性能优化,写的ppt,放在这里与大家分享一下,由于有附件,所以我放在了itpub上,里面是连接 查看全文
和分区表相关的一点总结
发表人:warehouse | 发表时间: 2010年十一月02日, 15:08
通过对比分区表和普通表,简单的测试了性能和对分区表存在index时的维护,最后我们不得不说
使用分区表很多时候不一定能提高性能,主要是维护起来方便,如果我们能把访问的数据集中
在一个或者有限的几个分区里,那么性能肯定比访问普通的全表要好,还是那句话
让执行的sql尽可能的少读、少写,这样才是提高sql性能的关键,就像anlinew提到的公式:
T=S/V,其实少读、少写的目的就是减小S... 查看全文
Linux操作系统中内存buffer和cache的区别(转载)
发表人:warehouse | 发表时间: 2010年十月13日, 17:47
看的很晕,记录一下,不过几个有关free命令显示出来的公式解释的很清楚
原文连接:
http://www.linuxdiyf.com/blog/?90293/action_viewspace_itemid_3004.html 查看全文
和外键相关的阻塞和死锁问题总结
发表人:warehouse | 发表时间: 2010年十月13日, 12:38
外键上没有index操作主表数据时常会引起阻塞和deadlock问题
查看全文
难缠的ora-04031
发表人:warehouse | 发表时间: 2010年十月12日, 12:31
客户系统原来运行在windows上,sga总共给了800m左右,系统尽管运行的不稳定,但是ora-04031错误报的并不多,之后系统迁入到aix 双机rac(oarcle 11.1)环境下,sga给了4g,共享池基本上维持在2g多,但是系统频繁出现ora-04031,出现ora-04031之后客户端应用无法连接,起初客户使用alter system flush shared_pool的办法刷新shared pool,刷新之后问题得以解决,不过没隔几天问题再次出现,此时有时候刷新shared pool不能解决问题了,由于是双机,因此不得以的情况下只能重启出现ora-04031错误的节点上的实例,重启之后问题得以暂时解决,但是过几天以后还是会出现ora-04031,出现ora-04031之后对应的sql需要的共享内存显示是4000多byte,总之小于_shared_pool_reserved_min_alloc的值4400,调整_shared_pool_reserved_min_alloc为4000,目的当然是希望更多的sql能够使用共享池保留池对应的内存,但是问题几乎没有啥缓解,ora-04031错误依旧,此时ora-04031对应的sql需要的共享内存显示是3896byte,看来通过调整_shared_pool_reserved_min_alloc不能完全解决问题,因为_shared_pool_reserved_min_alloc的最小值是4000,此时又一次增大了sga_target的值为6g,shared pool的值在3g左右波动问题依旧,客户不能忍受这个错误的困扰,最后把sga_target调整为8g,同时修改cursor_sharing为force,ora-04031再没有出现过...
查看全文
和外键相关的一点性能问题总结!
发表人:warehouse | 发表时间: 2010年十月12日, 12:30
当存在主外键关系的时候,如果外键上没有索引,而且从表(有外键的表)又比较大时,一些操作主表的动作,如delete可能会消耗很大的资源,因为在操作主表的同时oracle内部需要访问从表。 查看全文
Oracle性能调整指导纲要
发表人:warehouse | 发表时间: 2010年九月21日, 08:55
讲优化时大致写的一个提纲,内容分db的物理设计和逻辑设计,主要以物理设计为主,逻辑设计介绍的内容不多,提纲里把物理结构设计和实例优化有机的结合在一起,把逻辑结构设计和应用调整结合在一起...... 查看全文
ocp考证须知
发表人:warehouse | 发表时间: 2010年九月19日, 09:38
很多人即使考了ocp可能也不知道这些东西,想考的兄弟们可能就更加困惑了,一天问我有关ocp考试相关问题的人很多,不回答吧觉得不够礼貌,回答的话烦的要命,几乎都是相同或者相似的问题,今天一口气写了这么多,以后会逐渐的完善和补充,打算考ocp的兄弟如果对ocp的考试流程不是很清楚的话不妨读一下.
欢迎对号入座,如果触犯了谁的利益,多有得罪.
查看全文
一次通过stream复制解决数据单向复制的案例
发表人:warehouse | 发表时间: 2010年九月14日, 15:46
primary db:asmnl29 aix6.1双机oracle11.1 rac
Standby db:asmnl19 windows2008 oracle11.1单机
其中29和19是2台db server的ip尾数:
环境简要介绍,我们需要把asmnl29上用户asmnlirc下的40多张表适时同步复制到asmnl19下的asmnlirc用户下,权衡各种因素最终选择了oracle的stream复制技术,其实实现了上面的同步技术之后另外一个客户还需要把这40张表通过mv的方式刷新到他们的系统中最终使用,这次不再涉及mv的过程,因为这个过程我不负责实施,下面是stream详细配置步骤:
查看全文
oracle ocp考试程序的登录问题
发表人:warehouse | 发表时间: 2010年九月13日, 11:51
oracle ocp 考试程序Start Your Test.exe每次考试的时候都不能正常打开,似乎和机器有关,有的机器可以打开,有的不行,最后诊断为是浏览器设置问题:
解决办法:打开浏览器---->工具---->internet选项---->高级--->在安全和非安全模式之间切换时发出警告(取消这一选项)同时要求windows系统是xp,否则(如果是2003)即使可以登录,登录进去之后也会有问题,特此纪录
查看全文
rman中nocatalog下被删除的datafile在以前的备份中无法显示出来
Oracle CPU Costing
oracle里的连接(connection)究竟是指什么
发表人:warehouse | 发表时间: 2010年八月18日, 15:56
因为有图,所以没发把内容直接贴过来,直接看连接吧
查看全文
非常荣幸的为最近出版的一本oracle优化力作写书评
发表人:warehouse | 发表时间: 2010年八月15日, 17:18
非常荣幸的受到作者谭怀远(网名:alantany)先生的邀请为他的著作写一个书评,我的书评与其他几位重量级人物的书评相比显的有些片面和单薄,我为该书的书评如下:
据我所知作者是中国独立撰写Oracle性能优化书籍的第一人,该书几乎涵概了Oracle性能优化的所有主题,在国内数据库性能优化领域的书籍中实属罕见。
——谢永生(warehouse) 资深Oracle培训讲师
我对该书的评价其实不够准确,该书还没有完全涵盖oracle性能优化所涉及的所有主题,作者主要介绍的其实是sql优化的主题较多,实例和系统一级的优化似乎提及的不多,不管咋说,这确实是一本国内作者撰写的难得的好书,在此我向所有喜欢oracle的朋友们推荐这本书,目前该书的销量在chinapub销量榜进占首位,恭喜作者!
查看全文
搜集一篇介绍logical rowid的好文章
发表人:warehouse | 发表时间: 2010年八月10日, 13:18
Like indexes, IOTs are subject to inserts, deletes, block splits and coalsces, all of which affect the rowid. This means a standard rowid cannot always be used to retrieve an IOT record from a secondary index. For this reason secondary indexes on IOTs use a logical rowid which is made up of the original rowid and the primary key of the row. When a secondary index is referenced the rowid is used to find the block. If the block is not present at that disk address the primary key is used to find the block. This initial rowid access is know as a guess, since the block may not be at its origninal disk address anymore. Physical movements of the row do not affect the logical rowid, so long as the primary key is not updated.
With time the percentage of hits using the guess rowid will drop. When the hitrate gets sufficiently low the index should be dropped and recreated to refesh the guess rowids. The guess hitrate can be monitored using the PCT_DIRECT_ACCESS column of DBA_INDEXES, ALL_INDEXES and USER_INDEXES: 查看全文
rman里exclude tablespace之后obsolete的archivelog不被删除
发表人:warehouse | 发表时间: 2010年八月09日, 13:01
测试的缘由是基于下面一个问题:
http://www.itpub.net/thread-1333706-1-1.html
查看全文
block corruption type
发表人:warehouse | 发表时间: 2010年八月07日, 15:19
Type of block corruption in the datafile:
ALL ZERO - Block header on disk contained only zeros. The block may be valid if it was never filled and if it is in an Oracle7 file. The buffer will be reformatted to the Oracle8 standard for an empty block.
FRACTURED - Block header looks reasonable, but the front and back of the block are different versions.
CHECKSUM - optional check value shows that the block is not self-consistent. It is impossible to determine exactly why the check value fails, but it probably fails because sectors in the middle of the block are from different versions.
CORRUPT - Block is wrongly identified or is not a data block (for example, the data block address is missing)
LOGICAL - Specifies the range is for logically corrupt blocks. CORRUPTION_CHANGE# will have a nonzero value.
查看全文
Flashback Database logs里的内容是什么?
发表人:warehouse | 发表时间: 2010年八月07日, 11:52
按照oracle的说法是before images of data blocks 查看全文
给redo增加mirror之后别忘了switch几次
发表人:warehouse | 发表时间: 2010年八月07日, 11:17
讲课时随手的一些总结 查看全文
flashback database的一点总结
发表人:warehouse | 发表时间: 2010年八月07日, 10:49
讲课时随手的一些总结
查看全文
large_pool_size不能超过shared_pool_size
发表人:warehouse | 发表时间: 2010年八月01日, 11:04
The large pool must be explicitly configured. The memory of the large pool does
not come out of
the shared pool, but directly out of the SGA, thus adding to the amount of shared
memory the
Oracle server needs for an instance at startup
查看全文
使用using backup controlfile恢复db之后为啥需要resetlogs?
发表人:warehouse | 发表时间: 2010年七月31日, 22:46
这个问题我想可能不仅仅困挠我一个人,不过很多时候我们却又解释不清,觉得oracle似乎使用using backup controlfile恢复db之后没必要resetlogs,但是我觉得resetlogs似乎又有些道理... 查看全文
验证commit之后是否把其他session没有提交的事务所产生的reodo也写入了logfile
发表人:warehouse | 发表时间: 2010年七月26日, 22:22
这个试验的目的是想验证一下一个session提交之后lgwr是否把其他session里的事务还没有提交所产生的redo也一起写入logfile了.
在验证之前结论已经很清楚,commit的时候不管log buffer里的内容是否已经提交,lgwr会一起写入logfile,这样做的目的当然是保证写的速度,同时恢复的时候也会使用logfile“连续"恢复.
通过dump logfile的内容发现session 76 commit之后把session 164没有提交的reod也一起写入logfile了,不过依据是什么似乎没有观察清楚,莫非是dump内容里的version 185599488?commit一次写入logfile之后oracle是用什么来标识他们是一次写入logfile的?
查看全文
Automatic Undo Retention测试!
发表人:warehouse | 发表时间: 2010年七月26日, 17:20
Automatic Undo Retention
Oracle Database 10g automatically tunes a parameter called the undo retention period. The undo retention period indicates the amount of time that must pass before old undo information—that is, undo information for committed transactions—can be overwritten. The database collects usage statistics and tunes the undo retention period based on these statistics and on undo tablespace size. Provided that automatic undo management is enabled, the database automatically tunes the undo retention period as follows:
For an AUTOEXTEND undo tablespace, the database tunes the undo retention period to be slightly longer than the longest-running query, if space allows. In addition, when there is adequate free space, the tuned retention period does not go below the value of the UNDO_RETENTION initialization parameter.
For a fixed size undo tablespace, the database tunes for the maximum possible undo retention. This means always providing the longest possible retention period while avoiding out-of-space conditions and near out-of-space conditions in the undo tablespace. The UNDO_RETENTION initialization parameter is ignored unless retention guarantee is enabled.
Automatic tuning of undo retention is not supported for LOBs. The tuned retention value for LOB columns is set to the value of the UNDO_RETENTION parameter.
For fixed size and AUTOEXTEND undo tablespaces of equal size, depending on the queries that you run, the tuning method used in fixed size tablespaces tends to provide a longer retention period. This enables flashback operations to flash back farther in time, and maximizes the amount of undo data available for long-running queries
查看全文
profile中password limit的一点总结
发表人:warehouse | 发表时间: 2010年七月25日, 08:40
在Implement standard password security features时我们需要执行脚本:E:oracleproduct10.2.0db_1RDBMSADMINutlpwdmg.sql ,执行之后不仅创建了口令验证函数verify_function,同时修改了profile default的一些password limit特性,本文对这些limit做一点说明:
查看全文
20107月13号大连ocp考试顺利结束
发表人:warehouse | 发表时间: 2010年七月14日, 10:39
来自四面八方的兄弟和大连接受过我培训的一些兄弟们昨天如愿参加了ocp考试,非常顺利,事先大家考试都很担心,因为这是大连第一次考047,之前考的都是007,047较007确实难了很多,而且给大家提供047题库的时间又比较晚,所以很多兄弟都表现的非常担心,不过最后都很顺利,甚至是很完美,参加考试的一共是10个人,全部顺利通过,很多学员甚至考出了3个百分制九十几的合格率,真是可喜可贺。今天也给大家顺利的进行了hands on,耐心的等待证书吧,希望oracle能给大家带来好运。有一天如果大家是通过oracle改变了命运、改变了境遇,到时候别忘了通知我一声,因为我从内心为大家感到欣慰。
查看全文
系统权限ADMINISTER DATABASE TRIGGER的作用
发表人:warehouse | 发表时间: 2010年七月11日, 14:29
基于database创建一个系统trigger,遇到了权限问题,查了一下原来是需要ADMINISTER DATABASE TRIGGER权限 查看全文
profile中SESSIONS_PER_USER 资源限制特性测试
发表人:warehouse | 发表时间: 2010年七月10日, 15:20
讲课时随手总结 查看全文
状态为active的日志组也是不允许删除的
发表人:warehouse | 发表时间: 2010年七月02日, 08:36
状态为active和current的日志组都不允许删除,状态是current的logfile member也不允许删除,但是状态是active的logfile member却可以删除 查看全文
aix下rac环境rman备份策略部署
发表人:warehouse | 发表时间: 2010年六月10日, 08:22
为客户部署的备份策略,替换了和客户相关的重要信息 查看全文
一次利用mv在线迁移数据、切换系统的过程
发表人:warehouse | 发表时间: 2010年六月02日, 08:01
环境简要介绍:
客户需要把运行在windows平台下11gR1下的db尽可能的在线迁移到aix6.1 rac11gR1下,数据库量不大,不到5g,在权衡各种因素之后选择了mv刷新的办法,通过测试,效果还算理想,客户可以接受,停机时间大约5分钟,通过优化可能还能继续缩短停机时间,由于在停机迁移db的同时,还有和应用相关的很多东西都需要修改,这个时间大约也需要5分钟左右,因此暂时没有做进一步的优化
查看全文
oracle判断block corruption的依据是啥?
发表人:warehouse | 发表时间: 2010年五月17日, 14:42
oracle判断block corruption的依据是啥也一直是困扰我的问题,今天看到一puber再次提到类似这样的问题:
http://www.itpub.net/viewthread.php?tid=1303542&pid=15794986&page=1&extra=#pid15794986
搜了下老熊的文章
http://www.laoxiong.net/how_to_mark_corruption_block_and_recovery.html
再次模拟了block corruption,不过由于对block结构了解的有些,所以要
准确的彻底搞清楚oracle判断block corruption的依据目前还比较困难,下面记录
一个大致的过程
查看全文
纪念一下这个特殊的日子20100423
发表人:warehouse | 发表时间: 2010年四月28日, 09:12
23号开始注册自己的名头了,提供了几个名字,最后如愿以偿的核名通过:大连福瑞科技发展有限公司
很久以前就想好的一个名字,虽然听起来不够响亮,但是毕竟是自己想过很久的一个名字,再说公司是否能够做大和名字似乎也没有多大关系。瑞取了儿子名字中间的一个字,福瑞是希望儿子能够幸福,当然仅是希望,儿子幸福不幸福还的看他爹的教育、呵护以及关爱的程度...另外瑞也取了oracle中间的一个谐音吧,毕竟自己是从事和oracle相关工作的,也希望oracle能给自己带来好运。另外free还有自由之意,毕竟我以自由之身工作已经是第五个年头了,在这5年里,付出很多,收获很多,感受当然也很多;还有free也有免费的意思,我希望通过免费的服务敲开企业的关系之门,当然免费的不一定不是质量最好的,如果听到免费就没人敢用的话,拿偶估计不敢提这层意思,呵呵,长期的免费当然是不可能的。
查看全文
一篇介绍asm逻辑metadata的好文章
发表人:warehouse | 发表时间: 2010年四月10日, 21:56
一直比较迷惑asm file的extents和asm disk 的AU(allocate unit)之间的mapping关系,下面这片文章详细的介绍了这个关系
https://twiki.cern.ch/twiki/bin/viewfile/PSSGroup/HAandPerf?rev=1.4&filename=ASM_metadata_30012006.html
同时这个连接中的图也不失为一张好图,顺便收集一下
查看全文
flashback table为什么需要enable row movemnt?
发表人:warehouse | 发表时间: 2010年四月10日, 21:54
因为被flashback回来的数据的rowid可能会发生变化 查看全文
给ocr增加ocrmirror时遇到的问题总结
发表人:warehouse | 发表时间: 2010年三月19日, 10:56
原本以为会很顺利,没想到遇到了几个问题,简单总结一下...
查看全文
10gR2 rac vip服务频繁重启及在节点间漂移的一种解决办法
发表人:warehouse | 发表时间: 2010年三月11日, 21:13
造成这种现象的原因可能有很多,但是有一种情况比较突出... 查看全文
金山词霸取词pdf文件问题
发表人:warehouse | 发表时间: 2010年三月08日, 22:21
http://www.yesky.com/109/1649609.shtml 转 查看全文
sqlplus里如何修改default的系统编辑器
发表人:warehouse | 发表时间: 2010年三月08日, 09:14
简单的整理了一下win和linux下的办法,和doc的描述稍有出入
查看全文
db_name和SID的长度限制
发表人:warehouse | 发表时间: 2010年三月03日, 08:19
数据库的db_name和sid是有长度限制的... 查看全文
64位机器上使用PL/SQL Developer 连接不上Oracle的解决办法
发表人:warehouse | 发表时间: 2010年三月01日, 08:53
oracle安装在了64位的机器上,使用plsql developer不能连接db,尽管tnsping可以成功,但是通过plsql developer连接时提示错误ORA-12154,可以通过2种办法解决
查看全文
rac中的“双机热备”
发表人:warehouse | 发表时间: 2010年二月06日, 22:01
真不知道该起个怎样的标题
使用rac的时候,为了尽可能的减少内部网络通信,我们通常把相同的应用连接到同一节点上,当该节点出现意外down掉之后,client端应用能够透明的切换到其他节点上,通过这种办法尽可能的减少节点间cr block的构造或者说尽可能的减少cache fusion从而减少内部网络通信...如何实现这种类似于古老的双机热备功能?下面介绍了一种做法
查看全文
dataguard中有关lgwr async的测试
发表人:warehouse | 发表时间: 2010年二月05日, 12:45
oracle选择了折中的办法... 查看全文
32位升级到64位之后迁移oracle db遇到的问题
发表人:warehouse | 发表时间: 2010年一月27日, 08:20
处理器由32位变成了64位,重装oracle软件之后,权衡各种因素,db我选择了把冷备直接挂接的办法迁移,迁移之后遇到了问题...
查看全文
system trigger中的servererror事件验证
发表人:warehouse | 发表时间: 2010年一月22日, 12:46
我们可以使用系统触发器中提供的servererror事件来捕获系统产生的错误... 查看全文
Record-based inserts and updates
发表人:warehouse | 发表时间: 2010年一月21日, 21:28
随手记录一下... 查看全文
remote_listener和listener password
发表人:warehouse | 发表时间: 2010年一月16日, 22:35
listener注册在远程的目的是rac为了实现服务器负载均衡,如何把db的service_names注册在远程的listener上呢,注意远程注册service_name一定是动态注册的,把service_name注册到远程的listener上有什么缺点? 查看全文
通过dbms_scheduler执行一个外部job时出现错误
发表人:warehouse | 发表时间: 2010年一月16日, 20:40
郁闷的job执行问题... 查看全文
windows做ntp server,linux做ntp client端的配置方法
发表人:warehouse | 发表时间: 2010年一月13日, 08:38
在安装rac的过程中,同步时间是个问题,rac对时间的依赖行比较高,有关linux 做ntp server的配置网上有很多...下面也是来自网上的一篇文章
查看全文
rac安装失败或者是想重新安装,在现有的机器上应该清除哪些东西!
发表人:warehouse | 发表时间: 2010年一月11日, 09:37
rac的安装不可能一次成功,有时候可能需要折腾多次,这样的话就需要清除之前装进来的一些东西,清除的内容如下,步骤先后没有关系,我的os是:redhat as 4 update 7,oracle version:10.2.0.1 查看全文
linux下install vmware tools
发表人:warehouse | 发表时间: 2010年一月10日, 21:57
启动虚拟机以root用户登录,在vm里的install vmware tools上点击,之后在桌面上产生一个vmware tools的光盘图标,双击安装...安装之后运行service vmware-tools start需要运行vmware-install.pl 脚本,全部选择default值,运行之后检查vmware-tools服务是否启动,可以使用setup来查看或者再次运行service vmware-tools start来验证vmware服务是否启动,启动之后执行vmware-toolbox来打开vmware-tools窗口正常使用.... 查看全文
flashback_transaction_query数据保留的时间
发表人:warehouse | 发表时间: 2010年一月07日, 10:35
flashback_transaction_query里面的数据很庞大,数据的来源和数据保留的时间曾经困扰过我,简单的测试了一下... 查看全文
VMware的改变预分配硬盘空间的方法
发表人:warehouse | 发表时间: 2010年一月06日, 11:18
最近通过vmware装rac遇到n多问题,一个比较突出的问题是我在安装linux时虚拟的磁盘都没有预分配磁盘空间,导致在oracle安装的过程中虚拟机直接宕机,很不稳定,于是想尝试预分配磁盘空间... 查看全文
桌面程序删除了,如何找回来
发表人:warehouse | 发表时间: 2009年十二月12日, 12:56
桌面程序不小心从 快速启动栏 里删除了,使用起来很不爽... 查看全文
俺稀罕这几句话
发表人:warehouse | 发表时间: 2009年十一月27日, 10:21
在海区的一个哥们的签名档上看到的
查看全文
cursor: pin S wait on X等待事件模拟
发表人:warehouse | 发表时间: 2009年十一月22日, 16:53
这是10.2版本提出的mutex(互斥)机制用来解决library cache bin latch争夺问题引入的新事件,是否使用这种机制受到隐含参数_kks_use_mutex_pin的限制,从10.2.0.2开始该参数default为true,使用这种机制oracle是为了解决library cache bin latch的串行使用问题,但是mutex貌似还不是很稳定,在很多系统中会出现cursor: pin S wait on X等待事件,这个事件和mutex的使用有关,最近一客户受到cursor: pin S wait on X等待事件的困扰,出现cursor: pin S wait on X等待事件时通常等待比较严重,系统会出现hang,这个事件的出现受到很多因素的影响:
在高并发的情况下:
1.sga自动管理,sga的频繁扩展和收缩
2.过渡硬解析,造成library cache中的cursor object被频繁的reload
3.bug
查看全文
read by other session等待事件模拟
发表人:warehouse | 发表时间: 2009年十一月21日, 20:02
This event occurs when a session requests a buffer that is currently being read into the buffer cache
by another session. Prior to release 10.1, waits for this event were grouped with the other reasons for
waiting for buffers under the 'buffer busy wait' event
客户系统最近这个事件表现的比较突出,简单的模拟了一下,这是一个和io相关的读等待事件,因此它也伴随着db file sequential read和db file sequential read一起出现
查看全文
fast_start_parallel_rollback参数的一点测试
发表人:warehouse | 发表时间: 2009年十一月21日, 00:14
oracle从8i就引入的参数fast_start_parallel_rollback旨在解决由于session或者进程中断从而缩短回滚大事务所需要的时间问题,不过通过测试发现当fast_start_parallel_rollback=low时观察不到oracle启动多个paralle process,当fast_start_parallel_rollback=high时oracle确实启动了4×cpu_count个parallel process,但是几乎观察不到有多个process paralle来恢复事务,也许被恢复的事务还不够大、所需的时间还不够长,似乎不是;也许oracle认为使用smon一个进程恢复时间更快?
查看全文
proxy uesr的一点测试
发表人:warehouse | 发表时间: 2009年十一月17日, 11:48
有些时候我们可能需要以其他用户的身份登录db做一些事情(切换用户的身份),这个时候就需要知道其他用户的口令,如果不知道的话就无法实现,当然oracle中也有不太理想的办法来实现,从10。2开始,oracle提出了proxy user的概念可以很好的实现。 查看全文
有关参数cursor_sharing=similar的测试
发表人:warehouse | 发表时间: 2009年十一月13日, 15:25
这是一个很重要的参数,也是一个不太容易理解的参数:
--下面是来自biti对该参数的测试和解释:
http://www.wangchao.net.cn/bbsdetail_60551.html
当列上存在histograms ,则每次是不同的值的时候都产生硬解析 ,若不存在 histograms,则不产生硬解析。换句话说,当表的字段被分析过存在histograms的时候,similar 的表现和exact一样,当表的字段没被分析,不存在histograms的时候,similar的表现和force一样。这样避免了一味的如force一样转换成变量形式,因为有histograms的情况下转换成变量之后就容易产生错误的执行计划,没有利用上统计信息。而exact呢,在没有histograms的情况下也要分别产生硬解析,这样的话,由于执行计划不会受到数据分布的影响(因为没有统计信息)重新解析是没有实质意义的。而similar则综合了两者的优点。
不过在10g当存在动态取样统计信息时有时候我们可能会看到貌似意想不到的结果...
查看全文
受困于一个参数:session_cached_cursors
发表人:warehouse | 发表时间: 2009年十一月11日, 12:52
这个参数本身不难理解,但是和这个参赛相关的很多话题值得我们深思:
1.cursor open之后oracle做了什么
2.cursor close之后oracle做了什么,资源真的释放了?其实没有,ursor被关闭之后,无非是它占用的资源可以被重复使用了而已
3.cursor被cache之后在uga中保存了什么
4.session和library cache以及uga是如何关联的...
要了解这些东西,需要对oracle的内存结构有清晰的了解...目前一团乱麻...
查看全文
使用sequence的cache特性时要注意的
发表人:warehouse | 发表时间: 2009年十一月09日, 14:55
我们在使用sequence时为了提升性能通常都会使用sequence的cache功能,但是潜在的危险就是实例crash或者由于shared pool碎片较多容易出现ora-04031错误时,此时我们都会想到alter system flush shared pool...flush之后cache的sequence值全部丢失从而造成序列不连续...
查看全文
session的状态什么时候是sniped
发表人:warehouse | 发表时间: 2009年十一月08日, 10:49
http://www.itpub.net/thread-1233950-1-1.html
测试的缘由来自上面的帖子
查看全文
ash的一点总结
发表人:warehouse | 发表时间: 2009年十月31日, 09:02
10g 引入ash(active session history)真是个不错的东西 查看全文
利用dbms_redefinition实现普通heap表和分区表的转化
发表人:warehouse | 发表时间: 2009年十月26日, 22:02
客户想把一个重要的普通表转化为分区表,简单的测试了一下9i就引入的dbms_redefinition 查看全文
10g对等待事件进行了分类
发表人:warehouse | 发表时间: 2009年十月12日, 23:16
为我们根据等待事件判断系统的问题尽可能的指明方向... 查看全文
v$metric和v$metric_history的区别
发表人:warehouse | 发表时间: 2009年十月12日, 23:09
10g的doc居然没有查到这2个视图的解释...
这2个视图的结构完全相同,数据到底有什么区别?
查看全文
迁移文件系统管理下的db到asm下
发表人:warehouse | 发表时间: 2009年十月11日, 20:04
记录一个大致过程。 查看全文
assm下oracle为什么为segment提供了shrink功能
发表人:warehouse | 发表时间: 2009年十月10日, 12:20
通过试验简单的测试了一下assm下segment的space的分配和使用 查看全文
exp中参数consistent测试
发表人:warehouse | 发表时间: 2009年十月07日, 14:48
consistent=N表的一致性读取
consistent=Y被导出的所有表的一致性读取
查看全文
11g视图dba_objects中增加了1个有用的字段namespace
发表人:warehouse | 发表时间: 2009年十月02日, 18:31
oracle通过namespace来管理schema object的名字,什么是namespace可用通过下面的doc大致来了解 查看全文
一个有用的函数-实现dump函数的convert!
发表人:warehouse | 发表时间: 2009年九月29日, 21:29
利用此函数可以实现dump函数的反转 查看全文
11g配置em时要注意
发表人:warehouse | 发表时间: 2009年九月25日, 12:16
如果指定了ip并且没有dns那么在配置11gR1(我的测试机是xp)时千万别忘了把ip和hostname的对应关系写到C:WINDOWSsystem32driversetchosts文件里,否则可以成功安装,但是在启动时会遇到错误... 查看全文
今年blog流量大增
发表人:warehouse | 发表时间: 2009年九月25日, 09:27
今年不到1年流量增加了好像近15w,到底是哪部分人在访问偶的blog,是文章数多了流量上来了还是偶或多或少在网络上有了那么一点点人气或者说名气访问的人多了?我想可能都有原因,不管咋说,我都会继续努力学习oracle的,只要有问题、有心得、有体会,哪怕是一点点,我想我都会写出来和大家共享的,最后谢谢大家的关注和支持.....
查看全文
ORACLE_SID环境变量设置的问题
发表人:warehouse | 发表时间: 2009年九月21日, 10:39
明明在注册表里存在环境变量ORACLE_SID的设置,可执行emctl时却提示:
C:>emctl
Environment variable ORACLE_SID not defined. Please define it.
C:>
在系统环境变量增加ORACLE_SID的设置之后可以解决这个问题。
查看全文
自己未来公司的名字
发表人:warehouse | 发表时间: 2009年九月10日, 11:04
闲的无聊,给自己未来公司起了个名字,未来有多远,不知道,也许哪一天业务需要我想注册尽是一个非常简单的过程,准备银子是首当其冲的事情 查看全文
imp导入时default 按table提交,使用commit按buffer提交
发表人:warehouse | 发表时间: 2009年九月03日, 19:30
imp导入时default每导入一个表提交一次,如果使用commit=y则每buffer提交一次,如果担心undo空间不够,则可以考虑使用commit=y同时为了防止commit过于频繁影响性能,最后别忘了适当的增大buffer 查看全文
expdp和impdp自动使用resumable特性
发表人:warehouse | 发表时间: 2009年九月03日, 18:36
对比expdp、impdp和exp、imp发现前者没有了resumable功能,测试发现expdp和impdp自动使用了resumable特性 查看全文
如何给asm管理的db镜像controlfile
发表人:warehouse | 发表时间: 2009年九月02日, 21:55
由于asm管理的db包含的controlfile无法直接拷贝,因此给asm管理的db镜像controlfile就不能shutdown db之后拷贝控制文件,下面通过重新重建controlfile的办法来给asm管理的db增加controlfile的镜像 查看全文
在rman中如果有增量备份的话恢复时系统不会找归档日志进行恢复
发表人:warehouse | 发表时间: 2009年九月02日, 13:03
如果增量备份和归档日志都存在,在rman中进行恢复时系统始终会找增量备份而不会使用归档日志来恢复。 查看全文
RMAN中备份表空间名为'TEST'时需要注意!
发表人:warehouse | 发表时间: 2009年九月01日, 19:34
'TEST'算是oracle的一个保留字,因此在有些地方使用时要注意,目前我发现在rman中备份时oracle把它作为保留字对待.
从这里清楚的看到http://download.oracle.com/docs/cd/B19306_01/backup.102/b14194/rcmcomma001.htm#RCMRF909
TEST在rman里确实是保留字...
查看全文
修改参数db_recovery_file_dest时需要注意!
发表人:warehouse | 发表时间: 2009年九月01日, 19:13
前两天在pub上看到有人遇到了这个问题,今天讲课时遇到了,可晚上再模拟时却死活都再现不了了. 查看全文
hp dp(data protector)使用大致配置步骤
发表人:warehouse | 发表时间: 2009年八月26日, 21:16
整理一下,备查.
查看全文
监视index的使用看看是否需要重建!
发表人:warehouse | 发表时间: 2009年八月03日, 06:19
我们知道index的key值被删除之后其使用的空间并不会理解释放,只有当这个index block空间完全不被使用之后才可以被再次使用,这也就是index的pctused为0的缘故。有些时候由于表中的数据被大量删除,此时index的leaf block中保留了很多没有用的key 值,不仅浪费了空间,而且再次使用该index时效率可能也极其低下,可以通过对index的监视以及对index结构的有效性验证来判断index是否需要重建,重建时在高可用性系统中当然还需要考虑lock的问题。 查看全文
data buffer cache的一点总结。
发表人:warehouse | 发表时间: 2009年八月02日, 22:37
这部分东西涉及的参数较多,感觉稍微有些乱,简单的总结一下。 查看全文
nls参数、环境变量以及函数等起作用的顺序!
发表人:warehouse | 发表时间: 2009年七月29日, 21:11
nls参数、环境变量以及函数起作用的顺序是:
instance级参数--->nls_lang--->session级参数--->函数。
查看全文
ASM Buffer Cache是用来做什么的!
发表人:warehouse | 发表时间: 2009年七月29日, 19:55
10g在视图v$sga_dynamic_components中我们注意到多了一个component:ASM Buffer Cache,并且在instance_type=asm的实例中该参数有值,也就是说该参数是为asm实例所使用,它是用来做什么,在doc中搜了一下没找到,我猜测应该和db_cache_size的作用差不多,估计是用来cache disk header信息的。
查看全文
使用call在sqlplus中调用procedure和funtion!
发表人:warehouse | 发表时间: 2009年七月23日, 16:51
call 不可以使用在plsql中,只能在sqlplus中使用。 查看全文
修改+asm的名字!
发表人:warehouse | 发表时间: 2009年七月15日, 22:03
使用asm创建db时oracle缺省的asm实例的sid是+asm,这个sid有时候使用起来很不方便,比如我想通过plsql developer来查询和asm实例相关的视图:V$ASM_DISKGROUP、V$ASM_DISK等,因为这些视图有很多列,通过sqlplus直接查询很不方便;或者说我想远程连接asm实例,此时都需要通过配置tns来连接,既然通过tns来连,那么必然要配置listener,但是+是特殊符合,没法在listener中书写,因此为了使用方便,我们可以尝试修改+asm为asm或者其他名字,总之只要不含特殊字符能配置listener和tns就可以
查看全文
11g视图dba_segments中增加了一个有用的segment_subtype字段!
发表人:warehouse | 发表时间: 2009年七月15日, 14:05
以前我们要查一个segment所在的表空间是assm还是mssm,需要查看这个segment所在的表空间的segment_space_management 字段属性,在11g中不需要了,只需要查看dba_segments的segment_subtype就可以了,看似一个小小的改进,却给dba们带来了方便。
查看全文
HWM下被使用了的block占hwm下所有block的百分比计算!
发表人:warehouse | 发表时间: 2009年七月15日, 13:41
可以大致看一下hwm下有多少block是free的。 查看全文
About the Oracle Universal Installer Inventory!
发表人:warehouse | 发表时间: 2009年七月12日, 08:53
The Oracle Universal Installer inventory stores information about all Oracle software products installed in all Oracle homes on a host, provided the product was installed using Oracle Universal Installer.
Inventory information is stored in Extensible Markup Language (XML) format. The XML format allows for easier diagnosis of problems and faster loading of data. Any secure information is not stored directly in the inventory. As a result, during removal of some products, you may be prompted to enter the required credentials for validation.
查看全文
2篇对session产生sql跟踪信息的不错的文章!
字段avg_row_len of dba_tables是如何被计算的!
发表人:warehouse | 发表时间: 2009年六月24日, 23:51
困扰了很久的一个问题! 查看全文
利用trcsess合并以共享模式连接的session所产生的tracefile!
发表人:warehouse | 发表时间: 2009年六月24日, 22:56
我们知道mts下存在多个process为一个session服务的情况,这样如果想开启该session的trace功能,那么产生的trace文件势必就有多个文件,如何把这个多个文件中的session信息提取出来就显的尤为重要,oracle提供的trcsess工具可以帮助我们,通过trcsess处理之后的tracefile就可以通过tkprof继续处理了。
查看全文
10g采用共享模式连接db产生的tracel文件放在了bdump中!
发表人:warehouse | 发表时间: 2009年六月24日, 20:57
之前的版本貌似都放在了udump中...
查看全文
行连接的一点内部存储测试!
发表人:warehouse | 发表时间: 2009年六月24日, 20:54
主要是验证一下block内部的一个"fb"标志
The ‘fb’ value gives us flags about the row. ‘H’ means that we have the head of the row. ‘F’ means that we have the first piece of the row. ‘L’ means we also have the last piece of the row. Since this is the first and last piece of the row, the row is not chained. Since this is also the head of the row, the row has not been migrated.
查看全文
获得tracefile name的脚步!
发表人:warehouse | 发表时间: 2009年六月24日, 18:01
可以利用下面的脚本获得tracefile name,在11g可以非常方便的获得,其他版本相对比较麻烦。在oradebug中也很容易获得。
查看全文
10g依然可以启动手动归档!
standby中RFS process的作用!
发表人:warehouse | 发表时间: 2009年六月23日, 13:44
doc的原话,记录一下,加深印象。 查看全文
oracle 讲师
发表人:warehouse | 发表时间: 2009年六月23日, 11:44
需要oracle讲师联系我!
查看全文
控制listener安全性的2篇不错的文章!
如何看懂执行计划!
发表人:warehouse | 发表时间: 2009年六月19日, 11:47
The execution order in EXPLAIN PLAN output begins with the line that is the furthest indented to the right. The next step is the parent of that line. If two lines are indented equally, then the top line is normally executed first.
在doc上看到了,记录一下
查看全文
通过bbed模拟和修复corrupted block!
发表人:warehouse | 发表时间: 2009年六月09日, 14:16
使用bbed需要注意:
1、win下oracle不提供
2、随oracle软件一起发布
3、在unix/linux下使用时需要事先relink
4、oracle最初使用bbed用来修复坏block,从9i开始可以通过rman的blockrecover来恢复,不过前提是事先做过备份
查看全文
asm中template特性测试!
发表人:warehouse | 发表时间: 2009年六月08日, 15:04
都是doc的内容:
Templates are used to set redundancy (mirroring) and striping attributes of files created in an ASM disk group. When a file is created, redundancy and striping attributes are set for that file based on an explicitly named template or the system template that is the default template for the file type.
When a disk group is created, ASM creates a set of default templates for that disk group. The set consists of one template for each file type (data file, control file, redo log file, and so on) supported by ASM. For example, a template named ONLINELOG provides the default file redundancy and striping attributes for all redo log files written to ASM disks. Default template settings depend on the disk group type. For example, the default template for datafiles for a normal redundancy disk group sets 2-way mirroring, while the corresponding default template in a high redundancy disk group sets 3-way mirroring.You can modify these default templates. Table 12-5 lists the default templates and the attributes that they apply to matching files. As the table shows, the initial redundancy value of each default template depends on the type of disk group that the template belongs to.
Note:
The striping attribute of templates applies to all disk group types (normal redundancy, high redundancy, and external redundancy). However, the mirroring attribute of templates applies only to normal redundancy disk groups, and is ignored for high-redundancy disk groups (where every file is always 3-way mirrored) and external redundancy disk groups (where no files are mirrored by ASM). Nevertheless, each type of disk group gets a full set of templates, and the redundancy value in each template is always set to the proper default for the disk group type.
Using clauses of the ALTER DISKGROUP statement, you can add new templates to a disk group, modify existing ones, or drop templates. The reason to add templates is to create the right combination of attributes to meet unique requirements. You can then reference a template name when creating a file, thereby assigning desired attributes on an individual file basis rather than on the basis of file type.The V$ASM_TEMPLATE view lists all of the templates known to the ASM instance.
查看全文
如何为asm db中system表空间的数据文件使用别名!
发表人:warehouse | 发表时间: 2009年六月08日, 14:31
问题虽小,却困扰了一段时间! 查看全文
expdp时不能导出sys用户下的对象!
发表人:warehouse | 发表时间: 2009年六月01日, 09:50
sys用户下的对象不支持导出
查看全文
网络配置相关内容总结
发表人:warehouse | 发表时间: 2009年五月31日, 22:18
网络问题是困扰初学者的大问题,简单的总结了一下,希望对一些人有所帮助。 查看全文
影响flashback table的操作!
发表人:warehouse | 发表时间: 2009年五月31日, 15:15
rt 查看全文
sys用户不支持flashback table特性!
发表人:warehouse | 发表时间: 2009年五月31日, 14:46
讲课时随手记录的flashback table大致过程 查看全文
备份恢复的一个有趣现象!
发表人:warehouse | 发表时间: 2009年五月27日, 09:42
讲课时发现的所以随手记录一下。 查看全文
remote_os_authent参数测试!
发表人:warehouse | 发表时间: 2009年五月21日, 12:44
client端普通用户os验证过程 查看全文
和参数相关的一些视图!
发表人:warehouse | 发表时间: 2009年五月04日, 15:47
oracle有好几个和参数相关的视图,它们之间到底有啥区别,下面通过试验以及结合doc来理解一下。 查看全文
CORE_DUMP_DEST中的文件是由谁产生的?
发表人:warehouse | 发表时间: 2009年五月04日, 13:29
doc对该参数的描述根本就不清楚:
CORE_DUMP_DEST
CORE_DUMP_DEST is primarily a UNIX parameter and may not be supported on your platform. It specifies the directory where Oracle dumps core files.
查看全文
会引起排序的sql语句类型!
发表人:warehouse | 发表时间: 2009年五月04日, 13:26
闲的无聊,看看9i 的性能优化ocp考试题,题中提到了的一点内容,记得在doc上也看到过,不过从10g开始,group by不一定会排序。 查看全文
audit对象权限时的not exists选项!
发表人:warehouse | 发表时间: 2009年四月28日, 11:24
在审计对象权限时可以通过not existes选项可以对不存在的对象以及语句进行审计。 查看全文
对象audit时的一个有用option:ON DEFAULT
发表人:warehouse | 发表时间: 2009年四月28日, 10:14
在使用对象权限审计时如果使用on default选项,有一下几个方面需要注意:
1、设置on default之后,它仅对之后创建的对象生效
2、on default对之后创建的对象永远生效,即使以后设置了noaudit all(或者其他)on default;除非单独对某个对象设置noaudit all(或者其他)on object_name才能彻底取消on default选项引起的审计
3、使用view时,对表和view同时记录审计结果(union)
查看全文
win下外部(externally)验证测试过程
发表人:warehouse | 发表时间: 2009年四月26日, 00:24
n年前测试成功过,最近至少1年一直都无法成功,尤其是讲课时成功不了很痛苦,今天把各种情况组合了一下,最后得出成功的配置步骤。 查看全文
working with ASH and AWR
发表人:warehouse | 发表时间: 2009年四月24日, 19:16
ash and awr 查看全文
Temporary Tablespace Group
发表人:warehouse | 发表时间: 2009年四月24日, 18:56
Temporary Tablespace Group 查看全文
Base Statistics and Metrics
发表人:warehouse | 发表时间: 2009年四月24日, 18:42
Base Statistics and Metrics 查看全文
AWR(Automatic Workload Repository)
发表人:warehouse | 发表时间: 2009年四月24日, 18:39
AWR(Automatic Workload Repository) 查看全文
构造一致性读的过程!
发表人:warehouse | 发表时间: 2009年四月19日, 08:59
有关一致性读的过程确实非常复杂...希望有一天能以试验的方式清晰的解读这个过程... 查看全文
undo segment的创建、在线以及extent的分配原则。
发表人:warehouse | 发表时间: 2009年四月19日, 08:32
doc解释的很清楚,看doc吧
The number of undo segments created and brought online is a function of the SESSIONS parameter. The algorithm is roughly 1 undo segment for each 5 sessions. All undo segments are placed online when the sessions parameter is set to 46 or greater. The lower limit was not tested, as the minimum value for the sessions parameter in the test database was 16, which was derived from the minimum number of processes (10) for the database. These are sized according to the autoallocate algorithm for locally managed tablespaces. The basic algorithm is that the first 16 extents are 64k in size. The subsequent allocation method is the next 63 extents of 1m, the next 120 extents of 8m and all additional extents at 64m.
查看全文
undo segment何时被再创建!
发表人:warehouse | 发表时间: 2009年四月19日, 08:10
当并发事务的数量超过在线undo segment的数量时undo segment被smon自动创建, 我记得不知道在哪儿看到过说:undo segment的创建会记录在alert中,但是没有发现...还是记错了...
One of the benefits of AUM is the dynamic creation of undo segments as needed. When the number of concurrent transactions exceeds the number of online undo segments, more segments are brought online. If there are offline segments in the current undo tablespace, they are the first ones to be used. If no offline segments exist, new ones are added as long as sufficient space exists within the tablespace’s datafiles.
查看全文
UNDO SEGMENT SPACE 中extent被使用的规则!
发表人:warehouse | 发表时间: 2009年四月19日, 07:59
When a transaction needs more space in an undo segment, there is a fixed algorithm the determines when extents are reused.. The transaction will first attempt to reclaim expired extents from the current segment, then expired extents from another segment. The third method will be to autoextend the datafile(s), if this is set. Next, the unexpired extents from the current segment and other segments will be allocated, as long as the extents do not contain uncommitted transactions. Finally, an error will be raised if none of the methods are successful 查看全文
BLOCK CLEANOUT!
发表人:warehouse | 发表时间: 2009年四月19日, 07:30
什么是BLOCK CLEANOUT! 查看全文
dump事务所使用的所有undo block!
发表人:warehouse | 发表时间: 2009年四月13日, 13:04
Dump undo blocks associated with specific transaction
Alter system dump undo block ‘segment_name’ xid usn slot seq;
查看全文
slot被覆盖为什么没有出现ora-01555?
发表人:warehouse | 发表时间: 2009年四月07日, 11:08
留下了很多疑问,暂时记录一下
slot被覆盖之前会被保存下来吗?这个我想肯定不会.........如果是这样,为什么在覆盖之后没有出现ora-01555?
查看全文
delay block cleanout测试二slot被覆盖!
发表人:warehouse | 发表时间: 2009年四月05日, 22:36
slot被覆盖之后,delay block cleanout是的commit scn从undo header中的control scn获得。
查看全文
delay block cleanout的一点基本测试!
发表人:warehouse | 发表时间: 2009年四月05日, 18:11
这是一个delay block cleanout的最基本的测试,slot被覆盖的情况再讨论。
查看全文
一篇介绍undo/rollback internal的不错的文章!
发表人:warehouse | 发表时间: 2009年四月05日, 11:12
值得仔细研究 查看全文
delay block cleanout临界值测试!
发表人:warehouse | 发表时间: 2009年四月04日, 23:44
貌似测的还不够精准,同时没有找到具体介绍10%的相应doc,暂时记录一下。 查看全文
如何取消本子上ibm rescue and recovery的密码!
发表人:warehouse | 发表时间: 2009年三月30日, 08:25
晕死了,当修改os登陆用户密码时,ibm rescue and recovery总是会自动出来让我们修改密码,前端时间不小心设置了密码,结果昨天机器貌似中毒了,想恢复下系统,nnd,结果密码忘了,google一下找到了一篇文章,很受用。
1.通过在run里执行msconfig---->startup----->ibmprc(取消)来屏蔽修改os user密码时弹出修改ibm rescue and recovery窗口
2.如果真给ibm rescue and recovery设置了密码而又忘记了密码,那么把C:IBMSHARE下的文件ibmpwhp.pyc请空,不要删除,删除了我尝试了一下好像不好用,还是会提示旧密码的;执行步骤1时会自动删除ibmpwhp.pyc文件。
http://www.digi591.com/nb/technic/200511/78938.html
查看全文
nologging和恢复的一点测试!
发表人:warehouse | 发表时间: 2009年三月26日, 08:42
没有实质性的结论,暂时记个过程吧。 查看全文
事务提交时itl上flag标记U测试!
发表人:warehouse | 发表时间: 2009年三月22日, 07:58
The U stands for "upper bound commit", meaning that the SCN is an upper bound for the time at which it committed. Note that the U flag in the ITL is also set for a fast commit, but the two cases can be distinguished by the presence or absence of row-level locks.
本例中测试的仅仅是fast commit
查看全文
itl在被覆盖之前被保存了下来1!
发表人:warehouse | 发表时间: 2009年三月20日, 12:28
itl在被覆盖之前放在了事务的undo chain(单向链表的尾)的start_ubablk中以备
之后构造consistent read而使用。 查看全文
itl在被覆盖之前被保存了下来!
发表人:warehouse | 发表时间: 2009年三月19日, 21:57
究竟是被保存在覆盖它的这个事务所使用的undo的chain的end block还是start block中这个例子中没有得到论证,改天再验证。这里先临时记录一下。 查看全文
undo segment header中记录的dba是该事务使用的单向链表中的头(end block)!
发表人:warehouse | 发表时间: 2009年三月19日, 21:12
以前写过一篇文章介绍事务使用的undo block其实一条单向
链表,那么undo header上记录的dba到底是这条单向链表的
头还是尾,经验证是头,我猜测也应该是头,因为当rollback
事务时才能以最快的速度找到rollback的起点,当然这样做的
目的可能不仅仅是为了rollback操作。 查看全文
使用profile的Idle time时要注意。
发表人:warehouse | 发表时间: 2009年三月19日, 15:20
有未提交的事务依然断开,比较恐怖,断开时自动做了提交,其实就相当于做了disconnect 查看全文
一个跟踪dml动作的的触发器!
发表人:warehouse | 发表时间: 2009年三月19日, 11:00
讲课时给学员举的一个例子,顺手记录一下! 查看全文
事务和表空间只读和离线的一点测试!
发表人:warehouse | 发表时间: 2009年三月17日, 21:24
当表空间中的segment上有事务存在时该表空间在其他session中无法read only。 查看全文
flashback_transaction_query的数据来源!
发表人:warehouse | 发表时间: 2009年三月11日, 17:06
flashback_transaction_query的数据完全来自undo datafile! 查看全文
impdp中remap_datafile的测试。
发表人:warehouse | 发表时间: 2009年三月10日, 19:26
remap_datafile目前我的理解是一定是用在全库导出和全库导入这个操作上,因为只有全库导出才导出create tablespace的语法,而导入时需要重新创建表空间,这样的就需要通过remap_datafile来重新map表空间的datafile的位置。我测试的是把orcl这个库全库导出然后full导入到test这个库中。
之所以要记录一下,是因为好长时间自己理解不了doc上对remap_datafile的解释
查看全文
scn_to_timestamp以及timestamp_to_scn的相互转化!
发表人:warehouse | 发表时间: 2009年三月10日, 09:14
这两个函数相互转化时有时候经常控制不好时间的格式,写个简单的例子被查。
查看全文
Oracle10g EM使用中的主机身份证明问题!
发表人:warehouse | 发表时间: 2009年三月09日, 20:43
困扰过很久的一个问题,看到网上别人的回答解决了,记录一下。
查看全文
undo的一点内部机理!
发表人:warehouse | 发表时间: 2009年二月25日, 20:30
--其实主要介绍了undo中的2条单向链表,明白了这2条链,有助于我们更深入的研究undo... 查看全文
IBM串口线序以及串口线的做法(转)
发表人:warehouse | 发表时间: 2009年二月21日, 22:43
http://os.cnfan.net/ibm_aix/1959.html
临时记录一下!
查看全文
有关介绍redo的几篇不错的文章!
external procedure调用的大致测试过程!
发表人:warehouse | 发表时间: 2009年二月04日, 15:24
很多功能如果直接通过plsql实现可能会很困难,如通信方面的一些功能等,如果要通过C/C++实现的话可能会非常容易,oracle在plsql中支持调用C/C++写的函数。实现过程大致如下:(声明:本人也没有在实际应用中使用过external procedure,下面仅是一个大致的测试过程),有关external procedure的原理以及更详细的了解可以参考oracle doc。 查看全文
index desc之后数据在leaf node中是如何存储的!
发表人:warehouse | 发表时间: 2009年二月04日, 10:12
困扰了很久的问题得以解决,比较兴奋,尽管对我们使用而言可能用处不大!
查看全文
基于函数index的一点简单测试!
发表人:warehouse | 发表时间: 2009年二月04日, 09:06
基于函数index的一点简单测试! 查看全文
avg_space of dba_tables是如何被计算出来的!
发表人:warehouse | 发表时间: 2009年二月03日, 09:34
困扰自己很久的问题终于解决了,以前有个误区,以为这个值是指hwm以下blocks的avg space!
查看全文
对象前面是用户名还是schema名!
发表人:warehouse | 发表时间: 2009年一月17日, 16:21
我们通常访问其他用户下的对象时如果不创建同义词通常需要在被访问的对象前面加上这个对象的所有者(owner),那么这个所有者是对象的用户名还是schema?通过下面测试自己觉得应该是schema名!
查看全文
部分联机备份产生redo多的原因!
发表人:warehouse | 发表时间: 2009年一月17日, 16:20
doc上解释的格外清楚,还是看doc吧
查看全文
CX0的全称!
发表人:warehouse | 发表时间: 2009年一月14日, 12:17
呵呵,X=E,0,T,I 查看全文
自治事务!
发表人:warehouse | 发表时间: 2008年十二月27日, 18:50
自治事务允许我们在"事务中创建事务" 查看全文
事务的原子性!
发表人:warehouse | 发表时间: 2008年十二月26日, 23:17
事务的原子性是指事务中的动作要么发生,要么不发生.
不想做太多的解释,想了解可以看tom的力作,这里只是随手记录个测试过程.
查看全文
我渴望的insert操作!
发表人:warehouse | 发表时间: 2008年十二月26日, 22:44
呵呵,都不知道起个啥名字好,这个操作我渴望已久了,但遗憾的是自己才发现,其实oracle可能一直就支持,汗,以前没有细读过tom的书,doc也看的不细... 查看全文
在assm下有关shrink的几个有用子句!
发表人:warehouse | 发表时间: 2008年十二月19日, 17:00
在assm下,shrink时可以结合dbms_space.space_usage来观察空间的shrink情况
查看全文
dbms_space.space_usage的输出变量太多,使用极不方便!
发表人:warehouse | 发表时间: 2008年十二月19日, 16:32
简单的包装一下,使用时调用,放在这里备查!
查看全文
oracle对字符类型的列上在线重建index的限制!
发表人:warehouse | 发表时间: 2008年十二月17日, 13:51
在线重建一个index时无意中发现了这样的问题,varchar2类型的列不能超过3201,这可能是一个内部限制。
SQL> alter index idx_t rebuild online;
alter index idx_t rebuild online
*
第 1 行出现错误:
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-01450: 超出最大的关键字长度 (3215)
查看全文
11g v$process中增加了一个有用的字段tracefile!
发表人:warehouse | 发表时间: 2008年十二月14日, 22:34
11g v$process中增加了一个有用的字段tracefile! 查看全文
9i rac 连接时提示ORA-12545!
发表人:warehouse | 发表时间: 2008年十二月10日, 14:43
http://space.itpub.net/17997/viewspace-255421
利用此连接中楼主提到的办法能够顺利解决,同样用老杨提到的修改client端host文件没有解决,版本10.2,我同意byfree的观点,终归就是dns解析的问题,如果都改成ip的话相信不会出现该问题,遗憾的是,测试了一下没能成功。
查看全文
memory advisor!
发表人:warehouse | 发表时间: 2008年十二月10日, 11:37
10g em中给出了memory advisor,其中如果设置了sga_target的值的话,那么该顾问通过图表的形式给出的是sga的建议值,该建议值是如何被计算的呢,其实是通过下面公式:
select sga_size,100* round(((estd_db_time1 - estd_db_time)/estd_db_time1),2)
from (
select sga_size,estd_db_time ,(select estd_db_time from v$sga_target_advice where sga_size_factor=1) estd_db_time1 from v$sga_target_advice where sga_size_factor<>1
order by sga_size
)
通过上面查询可以获得sga_size以及db_time的改善百分比,在excel中以sga_size为横坐标,以"db_time的改善百分比"为纵坐标画一副折线图就是em中给出的图形。
查看全文
10g可以通过命令使index unusable!
发表人:warehouse | 发表时间: 2008年十二月09日, 11:46
利用这个功能结合参数skip_unusable_indexes 在做大数据量的dml操作时可能会非常的有用!
查看全文
oracle中要谨慎使用update交叉更新!
发表人:warehouse | 发表时间: 2008年十二月09日, 09:45
在oracle中使用update进行交叉更新时一直都觉得很不方便,当然这是和sql server or sybase相比较而言的。 查看全文
SQL Access Advisor!
发表人:warehouse | 发表时间: 2008年十一月12日, 13:32
doc的原话,随手记录!
The SQL Access Advisor's recommendations are significantly improved if you gather structural statistics about table and index cardinalities, and the distinct cardinalities of every dimension level column, JOIN KEY column, and fact table key column. You do this by gathering either exact or estimated statistics with the DBMS_STATS package. Because gathering statistics is time-consuming and extreme statistical accuracy is not required, it is generally preferable to estimate statistics. Without these statistics, any queries referencing that table will be marked as invalid in the workload, resulting in no recommendations being made for those queries. It is also recommended that all existing indexes and materialized views have been analyzed. See Oracle Database PL/SQL Packages and Types Reference for more information regarding the DBMS_STATS package.
查看全文
Using the Undo Advisor!
Tuning FAST_START_MTTR_TARGET and Using MTTR Advisor!
发表人:warehouse | 发表时间: 2008年十一月10日, 11:20
doc的原话,随手记录一下!
查看全文
Sql Tuning Advisor的大致过程测试!
发表人:warehouse | 发表时间: 2008年十一月05日, 13:54
可以通过em使用Sql Tuning Advisor来寻找sql的优化建议,这里使用了package:DBMS_SQLTUNE获得sql优化的建议,只是想大致了解下Sql Tuning Advisor的过程。 查看全文
Segment Advisor的一点简单测试!
发表人:warehouse | 发表时间: 2008年十一月05日, 13:49
尽管可以通过em使用Segment Advisor,不过我还是想通过调用dbms_advisor来简单的了解一下Segment Advisor的大致流程! 查看全文
local_listener参数的作用!
发表人:warehouse | 发表时间: 2008年十月25日, 20:45
pmon只会动态注册port等于1521的监听,否则pmon不能动态注册listener,要想让pmon动态注册listener,需要设置local_listener参数。
查看全文
为listener设置口令!
发表人:warehouse | 发表时间: 2008年十月24日, 20:47
在windows的服务中stop listener口令不起作用,但是如果为listener设置了口令,那么在lsnrctl中执行stop,save_config,change_password命令操作不论时local还是remote listener时都需要通过set password来输入口令,只有口令正确才能执行上述命令。 查看全文
Redo Byte Address (RBA)!
发表人:warehouse | 发表时间: 2008年十月19日, 23:21
什么是rba? 查看全文
x$表的解释!
发表人:warehouse | 发表时间: 2008年十月19日, 19:01
oracle的x$表非常重要,记录一下,备查!
查看全文
不同的连接方式性能对比!
发表人:warehouse | 发表时间: 2008年十月13日, 22:48
表与表之间错误的连接方式会对性能产生巨大影响。
查看全文
揭密备份恢复的原理!
发表人:warehouse | 发表时间: 2008年十月02日, 08:55
详细解释了备份恢复的原理!
查看全文
一篇貌似不错的文章!
dbms_logmnr的大致用法!
发表人:warehouse | 发表时间: 2008年九月26日, 15:37
讲课讲到不完全恢复(找回drop table)时,经常需要确定drop table的确切时间,所以经常需要用到dbms_logmner,记录一下大致过程,备查! 查看全文
How Oracle Works!
发表人:warehouse | 发表时间: 2008年九月25日, 08:27
How Oracle Works 查看全文
物理读和参数db_file_multiblock_read_count的一点测试!
发表人:warehouse | 发表时间: 2008年九月24日, 11:48
物理读的情况是比较复杂的:
1、会受到参数db_file_multiblock_read_count的影响已经不用多少了,为了
减少物理读,需要设置db_file_multiblock_read_count为最大临界值。doc上提到
绝大多数系统是1m,那么db_file_multiblock_read_count=系统的(max I/O size)/db_block_size
系统的(max I/O size)如何准确的获得,也是我的疑问
2、db_cache_size如果很小的话,那么物理读通常都会显著的高,原因是一次读进来
的block无法或者是很少能找到连续的memory来容纳,这样只能通过多次来读取,读进来的block只能离散的分布在
memory中,这也正是scattered的含义。 查看全文
需要oracle工程师、oracle讲师的可以联系我!
发表人:warehouse | 发表时间: 2008年九月21日, 21:38
本人目前从事自由职业,oracle培训经验丰富,实践经验服务。
oracle 10g ocp
提供专业、全面的oracle培训、服务。
联系方式:
tel:13840879243
mail:yongsheng.xie@gmial.com
msn:xys_666888@hotmail.com
qq:9020630
blog:http://warehouse.itpub.net
个人简介:http://warehouse.itpub.net/post/777/403336
查看全文
block change tracking文件可以放在flash_recovery_area里!
发表人:warehouse | 发表时间: 2008年九月21日, 14:03
If the change tracking file was stored in the database area, then it is deleted when you disable change tracking. 查看全文
How to Dump Redo Log File Information!
发表人:warehouse | 发表时间: 2008年九月20日, 22:36
How to Dump Redo Log File Information --metalink 查看全文
redhat下如何编译bbed!
发表人:warehouse | 发表时间: 2008年九月16日, 10:13
网上很多地方写的编译bbed的命令是:
make -f ins_rdbms.mk BBED=/opt/app/oracle/product/10.2.0/db_1/rdbms/lib/bbed /opt/app/oracle/product/10.2.0/db_1/bin/bbed
可是总是编译不成功,在yxyup的帮助下总算编译成功了:
make -f ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed
多谢yxyup!
顺手记录下大致过程,进入bbed时需要输入default的password:blockedit
查看全文
shutdown abort之后为什么需要实例恢复!
发表人:warehouse | 发表时间: 2008年九月11日, 20:35
讲课时随手记录的大致过程! 查看全文
部分脱机备份、恢复大致过程!
发表人:warehouse | 发表时间: 2008年九月11日, 20:32
讲课时随手记录的过程! 查看全文
oracle备份恢复的大致原理!
发表人:warehouse | 发表时间: 2008年九月11日, 20:22
讲课时随手记录的一个大致过程!
查看全文
insert操作放在undo中的rowid怎么来的!
发表人:warehouse | 发表时间: 2008年九月10日, 21:43
insert操作放在undo中的rowid怎么来的! 查看全文
ora-01555模拟以及undo tbs的guarantee特性测试!
发表人:warehouse | 发表时间: 2008年九月10日, 18:58
ora-01555模拟以及undo tbs的guarantee特性测试! 查看全文
rman通过设置口令加密备份!
发表人:warehouse | 发表时间: 2008年九月03日, 16:21
Password Encryption of Backups
参考doc:
http://users.telenet.be/oraguy.be/encryption1.htm
查看全文
rman configure exclude测试!
发表人:warehouse | 发表时间: 2008年九月02日, 21:26
configure exclude不常用,经常忘记语法,简单整理一下,备忘! 查看全文
拷贝linux下冷备份db到win下测试过程
发表人:warehouse | 发表时间: 2008年九月01日, 21:29
拷贝linux下冷备份db到win下测试过程 查看全文
计算sysaux中各主件对sysaux空间的使用!
发表人:warehouse | 发表时间: 2008年八月31日, 14:39
通过$ORACLE_HOME/rdbm/admin/utlsyxsz.sql脚本可以估算当前sysaux中各主件对空间的使用情况.
查看全文
10g 手动配置em!
发表人:warehouse | 发表时间: 2008年八月31日, 13:33
使用emca可以手动配置em!
配置em的过程中有一个环节要特别主要:
不论使用dbca还是使用emca -deconfig dbcontrol db -repos drop在删除资料库时都有可能删除不干净,这样在再次创建资料库时都会出现错误(显示的log中有详细的记录),因此在创建资料库时最好使用下面命令手动删除一次:
DROP public synonym SETEMVIEWUSERCONTEXT;
DROP PUBLIC SYNONYM MGMT_TARGET_BLACKOUTS;
drop role MGMT_USER;
DROP USER MGMT_VIEW CASCADE;
DROP USER SYSMAN CASCADE;
查看全文
flashback query!
发表人:warehouse | 发表时间: 2008年八月24日, 13:11
Oracle Flashback Query lets you view and repair historical data. You can perform queries on the database as of a certain wall clock time or user-specified system change number (SCN).
Flashback Query uses Oracle's multiversion read-consistency capabilities to restore data by applying undo as needed.
查看全文
rman backup ENCRYPTION(备份加密特性)测试!
两个重要的等待事件!
发表人:warehouse | 发表时间: 2008年八月17日, 10:24
cache buffers chains和buffer busy waits模拟!
引用kamus说的一段话:
Cache Buffers Chains Latches用于保护内存中block的buffer header hash chain,任何对于处于某个hash chain中的block的操作,都要先获得Cache Buffers Chains Latches,所以多session频繁操作位于一个block中的数据,一定会造成Cache Buffers Chains Latches的等待,表现在v$sesssion_wait中就是一个latch free事件。
当一个进程获得了cache buffers chains latch 之后,并且找到了自己需要操作的block的buffer header,这时候就需要获得这个buffer header 的锁以便于后续操作,获得锁之后,就会释放掉cache buffers chains latch,而如果无法获得(因为别的进程已经加了排斥操作的锁),就会出现buffer busy waits等待事件。而v$session_wait视图中的P3值可以用来确认具体是什么原因导致了buffer busy waits等待(不过在10g中p3字段已经变成了其它的含义了)。
查看全文
linux下开机使用dbstart和dbshut自动启动和关闭db!
发表人:warehouse | 发表时间: 2008年八月07日, 22:46
1、利用dbstart和dbshut在开关机时自动启动和关闭db
2、使用chkconfig增加服务,靠,叫服务准确嘛
查看全文
在linux下使用dbstart和dbshut启动和关闭db!
发表人:warehouse | 发表时间: 2008年八月07日, 12:05
版本10.2
在9i下dbstart存在一bug:dbstart启动时在$ORACLE_HOME/dbs下寻找initSID.ora,事实上在该目录下不存在这个pfile,在9i 已经使用了spfile,所以要想正常通过dbstart启动db,需要在目录$ORACLE_HOME/dbs下创建一个initSID.ORA文件,10g中我发现修正了这一问题。不过10g中dbstart在自动启动listener时存在一问题:dbstart脚本中存在下面一行:#ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
致使启动是出现错误:
[oracle@xys bin]$ dbstart
Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr
Processing Database instance "TEST": log file /opt/app/oracle/product/10.2.0/db_1/startup.log
该错误显示listener不能正常启动,但是instance可以正常启动,原因就是ORACLE_HOME_LISTNER设置的不对,我们修正一下,注释下面一行,增加:
#ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
ORACLE_HOME_LISTNER=$ORACLE_HOME即可
查看全文
linux下如何自动启动db!
发表人:warehouse | 发表时间: 2008年八月04日, 11:06
1、编写启动db的脚本文件dbstart.sh
lsnrctl start
sqlplus /nolog <<!
connect sys/system@test as sysdba
startup
!
2、把该脚本文件加入/etc/rc.local中,加入以后rc.local内容如下:
[oracle@xys oracle]$ more /etc/rc.local
touch /var/lock/subsys/local
su - oracle -c /home/oracle/dbstart.sh
查看全文
利用dd命令实现raw db到file系统db的转换!
发表人:warehouse | 发表时间: 2008年八月02日, 22:37
特别需要主要的就是要清楚的知道各类文件(ctl,dbf,redo)文件头占用了几个block,当然还要知道各类文件他们的block的大小和单位! 查看全文
redhat下部分联机自动备份db!
发表人:warehouse | 发表时间: 2008年八月02日, 22:27
1 cp /home/oracle/.bash_profile dbbak1.sh
之所以要拷贝这个文件,是因为它是oracle用户的环境变量文件,里面包含了oracle用户所需要的所有环境变量
2. 在dbbak1.sh文件中加入如下语句:
sqlplus sys/password@tns @/home/oracle/dbbak1.sql
3. 编写dbbak1.sql如下:
alter tablespace users begin backup;
copy path...../users.dbf /home/oracle
alter tablespace users end backup;
--这里只是用来测试!
4. chmod +x dbbak1.sh
5. 利用crontab来调用dbbak1.sh
查看全文
redhat下通过rman自动备份db!
发表人:warehouse | 发表时间: 2008年八月02日, 21:39
仅仅是思路和过程,根据自己的需求调整:
1 cp /home/oracle/.bash_profile dbbak.sh
之所以要拷贝这个文件,是因为它是oracle用户的环境变量文件,里面包含了oracle用户所需要的所有环境变量
2. 在dbbak.sh文件中加入如下语句:
rman target sys/password@tns cmdfile=/home/oracle/dbbak.sql
3. 编写dbbak.sql如下:
backup tablespace 'TEST';这里只是用来测试!
4. chmod +x dbbak.sh
5. 利用crontab来调用dbbak.sh脚本实现自动备份db,假如想每天晚上21:38分自动备份db,那么可以通过crontab -e来编辑root用户的自动定时任务:
[root@xys oracle]# crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.3386 installed on Sat Aug 2 21:36:35 2008)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
38 21 * * * /home/oracle/dbbak.sh
6. 有关crontab的使用可以参考
http://blog.chinaunix.net/u/31547/showart_438018.html
查看全文
windows部分联机自动备份脚本!
发表人:warehouse | 发表时间: 2008年八月02日, 12:31
c:dbbak.bat
dbbak.bat内容如下:
sqlplus / as sysdba @ dbbak.sql
把批处理文件dbbak.bat放到任务计划里或者通过at命令调用就可以实现自动备份db
查看全文
Dynamic Sampling!
发表人:warehouse | 发表时间: 2008年七月31日, 09:59
The purpose of dynamic sampling is to improve server performance by determining more accurate selectivity and cardinality estimates. More accurate selectivity and cardinality estimates allow the optimizer to produce better performing plans. 查看全文
transaction使用的undo block组成了一个单向列表!
发表人:warehouse | 发表时间: 2008年七月28日, 07:06
通过试验验证了一下。 查看全文
what's xidsqn and ubasqn in v$transaction?
发表人:warehouse | 发表时间: 2008年七月27日, 22:46
不容易理解的2个字段,Jonathan Lewis的解释
http://www.dbforums.com/archive/index.php/t-1314288.html
查看全文
解惑v$rollstat中的curext、curblk字段!
发表人:warehouse | 发表时间: 2008年七月21日, 14:28
坦率的说这2个字段困扰了自己很久,每次看到的是doc的解释:
都不理解什么意思,每次想到的总是去dump这个block,而没有去dump undo segment header,所以一直也没搞清楚它的确切意思。
查看全文
oracle block type!
oracle的block其实是和os的扇区相对应!
发表人:warehouse | 发表时间: 2008年七月20日, 09:44
oracle的block其实是和os的扇区相对应!
查看全文
有关参数o7_DICTIONARY_ACCESSIBILITY!
发表人:warehouse | 发表时间: 2008年七月18日, 15:05
O7_DICTIONARY_ACCESSIBILITY是针对select any table权限控制是否可以访问data dictionary的! 查看全文
列权限的一点总结!
发表人:warehouse | 发表时间: 2008年七月18日, 14:54
oracle 部分对象权限(insert,update,references)可以控制到列! 查看全文
oracle数据字典的一点总结!
发表人:warehouse | 发表时间: 2008年七月17日, 12:59
oracle的数据字典比较多,其实也比较复杂。通过分类简单的做了一点总结。 查看全文
状态为inactive的日志一定归档了吗?
发表人:warehouse | 发表时间: 2008年七月15日, 21:00
inactive表示该日志在实例恢复时不再需要被用到,仅此而已,和是否归档没有任何关系,前端时间看到pub上有人问起这个问题,我们通常看到状态为inactive的日志archived=YES也就是通常都归档了,不太容易观察到archived=no,在9i下可以通过设置log_archive_start=false来控制不归档,但是10g是否不太容易控制,这里通过缩小flash_recovery_area使其没有空间从而不能实现归档来观察一下状态为inactive且archived=no的日志!
SQL> select group#,sequence#,status,archived from v$log;
GROUP# SEQUENCE# STATUS ARC
---------- ---------- ---------------- ---
1 122 INACTIVE NO
2 121 INACTIVE YES
3 123 CURRENT NO
查看全文
sqlldr和external table的关系!
发表人:warehouse | 发表时间: 2008年七月12日, 20:42
其实external table是对sqlldr工具的一个补充和完善! 查看全文
flashback table也会用到temp表空间?
发表人:warehouse | 发表时间: 2008年七月06日, 14:14
无意中执行的一个简单的flashback table操作提示:
SQL> flashback table t to scn 340592;
flashback table t to scn 340592
*
第 1 行出现错误:
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-25153: 临时表空间为空
那么到底是flashback table操作需要用到temp tbs呢还是在执行flashback table操作的其他系统操作用到temp tbs?有点疑问
查看全文
oracle的两种global temporary table!
发表人:warehouse | 发表时间: 2008年七月05日, 15:05
1. on commit delete rows
2.on commit preserve rows
查看全文
当存在read only或者offline表空间时,重建控制文件时要注意!
发表人:warehouse | 发表时间: 2008年七月03日, 22:20
当存在read only或者offline表空间时,重建控制文件分两种情况:
1、重建controlfile的script中包含read only或者offline所对应的datafile;这种情况比较简单,datafile不需要rename,如果是offline的表空间,那么重建controlfile之后只需要online tbs即可;如果是read only tbs那么重建controlfile之后需要对其对应的daafile进行恢复。
2、重建controlfile的script中不包含read only或者offline所对应的datafile;重建controlfile之后需要rename datafile到正确的位置,之后如果是offline的表空间,那么重建controlfile之后只需要online tbs即可;如果是read only tbs那么重建controlfile之后需要对其对应的daafile进行恢复。
查看全文
一个有意思的权限问题!
发表人:warehouse | 发表时间: 2008年七月03日, 16:47
题意是这样的:
有3个用户test,test1,test2
test下有一表t
test1下有一个view:create view v1as select * from test.t
现在test1要把v1的select权限授予test2,需要具备什么条件?
查看全文
connect-time failover的配置!
发表人:warehouse | 发表时间: 2008年七月01日, 14:02
我的理解connect-time failover通常用在rac中,不过单实例环境下依然可以enable connect-time failover特性,实际意义有多大暂且不说! 查看全文
dbms_scheduler中参数repeat_interval的一些例子!
发表人:warehouse | 发表时间: 2008年六月30日, 13:28
来至于管理向导上的一些例子!
查看全文
oracle标准版和企业版的区别!
发表人:warehouse | 发表时间: 2008年六月30日, 10:09
经常有人我,正好找到一个比较全面而又简洁的doc介绍,随手记录一下!
查看全文
OMF和flash_recovery_area的关系!
发表人:warehouse | 发表时间: 2008年六月29日, 22:46
在OMF出现之前(9i R1),oracle db的文件,主要指dbf,redo,ctl是通过os管理的,为了简化对数据库文件的管理,oracle引入了OMF,通过omf创建的dbf和redo,其default的大小都是100m,autoextend umlimited。9i R1的dbf文件格式default:ora_%t_%u.dbf,
redo格式:ora_%g_%u.log;9iR2的格式发生了一些变化,把ora变成了o1_mf_%t(%g)_%u.dbf(log),其中%t表示dbf所属的tbs,%g表示redo所属的group#,%u表示唯一。
查看全文
有关role的一点总结!
发表人:warehouse | 发表时间: 2008年六月27日, 14:36
没有role完全可以控制权限的使用,只是不够灵活和方便而已,那么角色的作用到底是什么呢?简单的归结为2条:
1)实现批量授权
2)动态控制权限
查看全文
系统权限UNLIMITED TABLESPACE为什么如此特殊?
发表人:warehouse | 发表时间: 2008年六月27日, 13:12
1、系统权限UNLIMITED TABLESPACE 不能被授予role,可以被授予用户!
2、UNLIMITED TABLESPACE 没有被包括在resource role中,但是UNLIMITED TABLESPACE 随着resource的授出而被授予用户的。
3、UNLIMITED TABLESPACE 不能伴随着resource被授予role而授予用户。
查看全文
使用hostname方式连接数据库!
发表人:warehouse | 发表时间: 2008年六月26日, 10:17
hostname方式是通过client端hostname连接数据库,无需配置tns!
查看全文
SYS_CONTEXT小记!
发表人:warehouse | 发表时间: 2008年六月26日, 09:33
SYS_CONTEXT函数非常有用,和系统触发器结合起来可以很好的实现审计功能! 查看全文
对read only表空间进行热备份和使用备份的controlfile进行恢复时的一点总结!
发表人:warehouse | 发表时间: 2008年六月24日, 13:13
1. 对read only tbs进行热备份时不需要执行begin backup;
2.从9i开始通过备份的controlfile对只读表空间进行恢复时不再需要把read only tbs对应的数据文件设置为offline
查看全文
那些操作会发生局部检查点(Partial checkpoint)!
发表人:warehouse | 发表时间: 2008年六月23日, 21:35
Partial checkpoint
– Dirty buffers belonging to the tablespace
– ALTER TABLESPACE BEGIN BACKUP
– ALTER TABLESPACE tablespace OFFLINE NORMAL
上面2种操作会发生局部检查点!使相应的dirty buffer被写入和tablespace对应的datafile中
查看全文
How to Dump Redo Log File Information!
what is Goals for Tuning?
发表人:warehouse | 发表时间: 2008年六月20日, 20:57
The objective of tuning a system is either to reduce the response time for end users of the system, or to reduce the resources used to process the same work.
查看全文
query rewrite和基于函数的索引有关系?
发表人:warehouse | 发表时间: 2008年六月18日, 19:03
The NOREWRITE hint disables the use of function-based indexes.
看到这句话之后不太理解为什么提示NOREWRITE 的使用会丧失基于函数index的使用能力!
查看全文
大连oracle培训!
发表人:warehouse | 发表时间: 2008年六月17日, 22:17
本人在大连,面向全国各地长期提供专业的oracle培训!有oracle培训需求的客户可以联系我!
培训的形式大致分两种:
1、类似官方培训,以官方的培训讲义为基础结合讲师多年来的实践经验和培训经验为有oracle培训需求的企业或者个人提供最优质的服务;
2、企业定制培训,完全根据客户自身的需求为企业或者个人量身定制培训。
培训的内容:
1、和开发相关的内容,主要介绍sql、plsql的使用;
2、oracle数据库的基本概念,基本管理,体系架构;
3、详细介绍oracle数据库的备份恢复原理、手段以及备份恢复策略的制定等;
4、详细介绍数据库的性能优化,定位产生性能问题的瓶颈所在并且调整它,主要介绍实例优化和sql语句优化。
5、详细介绍dataguard的种类、安装、配置、管理、使用、优化。
6、详细介绍rac的安装、配置、管理、使用、优化。
7、详细介绍大数据量的存储,管理,使用和优化。
8、详细介绍高可用性,高并发行数据库的设计、管理、使用和优化。
查看全文
按照oracle性能改进方法论的步骤来优化系统!
发表人:warehouse | 发表时间: 2008年五月22日, 10:19
doc上的原话,记录一下,感觉写的很精彩!
查看全文
oracle性能改进方法论告诉我们!
发表人:warehouse | 发表时间: 2008年五月22日, 09:06
定位系统性能瓶颈的时候要多利用数据以及统计信息等资源而不要过多的依赖自己以前积累的经验想当然。因为今天的系统已经变的非常复杂,性能分析的一些浮浅的规则不容易产生。oracle性能改进方法论定义的是一种工作的方法而不是一组权威性的规则。在定位性能瓶颈的时候,最好的规则就是没有规则(With bottleneck detection, the only rule is that there are no rules!The best performance engineers use the data provided and think laterally to determine performance problems.)
查看全文
oracle占用os的cpu资源的多少算是健康的!
发表人:warehouse | 发表时间: 2008年五月21日, 22:30
从下面的doc理解,如果单一的应用程序跑在oracle数据库服务器上,那么(
On an Oracle data server system, where there is generally only one application running, the server runs database activity in user space. Activities required to service database requests (such as scheduling, synchronization, I/O, memory management, and process/thread creation and tear down) run in kernel mode. In a system where all CPU is fully utilized, a healthy Oracle system runs between 65% and 95% in user space.
)oracle对系统cpu的利用如果在user cpu(应用程序使用cpu的百分比)的65% ~95%之间,则oralcle system被认为是健康的。
e文不好,不知理解的是否准确!
查看全文
oracle time_zone!
Thomas Kyte 关于"unix system kernel parameters"的回答
What is Scalability?
发表人:warehouse | 发表时间: 2008年五月14日, 22:29
什么是Scalability,看看他的形容词的意思:scalable adj.可攀登的
可升级的,这里Scalability我通常理解为系统的可攀升能力。doc的原意是:
Scalability is a system's ability to process more workload, with a proportional increase in system resource usage. In other words, in a scalable system, if you double the workload, then the system would use twice as many system resources. This sounds obvious, but due to conflicts within the system, the resource usage might exceed twice the original workload.
查看全文
为什么会产生性能问题!
发表人:warehouse | 发表时间: 2008年五月14日, 22:23
不知道该起个什么样的标题来记录这句话,看到这句话时感觉写的非常好,想记录一下:
Performance problems are usually the result of contention for, or exhaustion of, some system resource
性能问题通常是一些系统资源被争夺或者是被耗尽的结果!
查看全文
cpu等待io的原因!
发表人:warehouse | 发表时间: 2008年五月07日, 22:49
What Is Disk Contention?
Disk contention occurs when multiple processes try to access the same disk simultaneously. Most disks have limits on both the number of accesses (I/O operations each second) and the amount of data they can transfer each second (I/O data rate, or throughput). When these limits are reached, processes must wait to access the disk.
查看全文
fast parse,soft parse,hard parse的区别!
发表人:warehouse | 发表时间: 2008年五月07日, 22:13
http://www.itpub.net/thread-877110-1-5.html
收藏记录一下!
查看全文
理解好这些"缺陷"有助于我们根据statistics发现系统的性能瓶颈!
发表人:warehouse | 发表时间: 2008年五月06日, 13:00
Some pitfalls are discussed in the following sections:
- Hit ratios
- Wait events with timed statistics
- Comparing Oracle statistics with other factors
- Wait events without timed statistics
- Idle wait events
- Computed statistics
查看全文
如何确定SORT_AREA_SIZE的大小!
发表人:warehouse | 发表时间: 2008年五月06日, 10:51
尽管oracle已经不建议使用SORT_AREA_SIZE参数了,oracle建议通过设置PGA_AGGREGATE_TARGET来激活自动工作区管理。不过在doc上看到了,随手记录一下! 查看全文
创建同样大小的永久表空间和临时表空间速度比较!
发表人:warehouse | 发表时间: 2008年五月06日, 09:44
创建同样大小的表空间,永久表空间要比临时标空间慢很多,原因就像doc所言创建数据文件时block需要被初始化为"empty",其实我觉得就是初始化成oracle可以识别的以db_block_size为大小的block格式吧;而临时文件不需要被初始化!
查看全文
rbo下针对表与表之间的连接执行计划的确定原则!
发表人:warehouse | 发表时间: 2008年五月04日, 10:10
需要注意的一句话是:
Usually, the optimizer does not consider the order in which tables appear in the FROM clause when choosing an execution plan.
查看全文
Full Table Scan!
发表人:warehouse | 发表时间: 2008年五月03日, 22:06
下面列出来的这些条件都会执行Full Table Scan,因此我们在使用时要特别注意! 查看全文
and_equal最多可以指定5个index!
发表人:warehouse | 发表时间: 2008年五月02日, 23:58
If the WHERE clauses uses columns of many single-column indexes, then Oracle executes the statement by performing a range scan on each index to retrieve the rowids of the rows that satisfy each condition. Oracle then merges the sets of rowids to obtain a set of rowids of rows that satisfy all conditions. Oracle then accesses the table using these rowids.
Oracle can merge up to five indexes. If the WHERE clause uses columns of more than five single-column indexes, then Oracle merges five of them, accesses the table by rowid, and then tests the resulting rows to determine whether they satisfy the remaining conditions before returning them.
查看全文
如何理解AND-EQUAL!
发表人:warehouse | 发表时间: 2008年五月02日, 23:29
当我第一次看到hint相关内容中讲到AND_EQUAL时(
The AND_EQUAL hint explicitly chooses an execution plan that uses an access path that merges the scans on several single-column indexes.
)感觉没有读懂,不知道这里提到的merge到底指的什么意思,但是当看到RBO Path 9: Single-Column Indexes章节中的解释时对AND_EQUAL已经非常清楚了,原来是对单列index scan找到满足条件的rowid的merge(If the WHERE clauses uses columns of many single-column indexes, then Oracle executes the statement by performing a range scan on each index to retrieve the rowids of the rows that satisfy each condition. Oracle then merges the sets of rowids to obtain a set of rowids of rows that satisfy all conditions. Oracle then accesses the table using these rowids.)
查看全文
rbo下通过rowid单行访问表的2种情况!
发表人:warehouse | 发表时间: 2008年五月01日, 22:53
RBO Path 1: Single Row by Rowid
This access path is available only if the statement's WHERE clause identifies the selected rows by rowid or with the CURRENT OF CURSOR embedded SQL syntax supported by the Oracle precompilers. To execute the statement, Oracle accesses the table by rowid.
查看全文
Access Paths for the RBO!
发表人:warehouse | 发表时间: 2008年五月01日, 22:36
doc上的原话,随手记录下!
Note that the full table scan is the lowest ranked access path on the list. This means that the RBO always chooses an access path that uses an index if one is available, even if a full table scan might execute faster.
从上面这段话我们知道full table scan 是最低等级的访问路径,那意味着下面列出来的15种访问路径的数字越小等级越高,也就是说使用访问路径的等级越高rbo认为效率越高,当然实际情况可能并非如此。
查看全文
使用提示FIRST_ROWS(n)时需要注意的!
发表人:warehouse | 发表时间: 2008年四月28日, 15:02
都是doc上的原话,记录一下!
FIRST_ROWS(n)提示告诉优化器要执行的sql语句的优化目标是获得最快的响应时间,但是下面这些情况该提示不起作用:
The optimizer ignores this hint in DELETE and UPDATE statement blocks and in SELECT statement blocks that contain any of the following syntax:
- Set operators (
UNION, INTERSECT, MINUS, UNION ALL) GROUP BY clause FOR UPDATE clause - Aggregate functions
DISTINCT operator ORDER BY clauses, when there is no index on the ordering columns
These statements cannot be optimized for best response time, because Oracle must retrieve all rows accessed by the statement before returning the first row. If you specify this hint in any of these statements, then the optimizer uses the cost-based approach and optimizes for best throughput.
这是9i性能优化向导上的内容,在11g下测试count操作(Aggregate functions)发现提示也起作用!
查看全文
hint不能传播到view内部!
发表人:warehouse | 发表时间: 2008年四月28日, 13:11
doc上介绍hint不能被传播到view内部,除非在创建view时把hint写在view的内部或者使用global hint!
查看全文
Optimizer Hints!
发表人:warehouse | 发表时间: 2008年四月28日, 12:19
doc上的这段话对Optimizer Hints介绍的非常清楚,记录一下!
当然更重要的是能够熟练的使用各种hint来改变sql的执行计划从而优化sql
这里对下面一段做一点解释:
You can use hints to specify the following:
- The optimization approach for a SQL statement
- --The optimization approach 指的是cbo和rbo
- The goal of the cost-based optimizer for a SQL statement
- --The goal of the cost-based optimizer 指的是语句追求的是最大吞吐量( all_rows)还是最快响应时间(first_rows(n))
- The access path for a table accessed by the statement
- --The access path for a table accessed是指full table scan or index scan
- The join order for a join statement
- --是指表的连接顺序
- A join operation in a join statement
- --A join operation 指的应该是表与表之间的连接方法:nl,merge or hash
查看全文
Cardinality指什么?
发表人:warehouse | 发表时间: 2008年四月25日, 22:56
在性能优化向导中经常会出现Cardinality,Cardinality到底是指什么,看看doc的准确解释:
Cardinality is the number of unique values in a column in relation to the number of rows in the table
查看全文
Enabled Novalidated的作用!
发表人:warehouse | 发表时间: 2008年四月24日, 12:16
By placing a constraint in the enabled novalidated state, you enable the constraint without locking the table.如doc所言,把constriant由状态disable变成enable时在表上会产生lock,期间所有的DML, queries, or DDL都被阻塞(If you change a constraint from disabled to enabled, then the table must be locked. No new DML, queries, or DDL can occur, because there is no mechanism to ensure that operations on the table conform to the constraint during the enable operation.)。阻塞的原因是:because there is no mechanism to ensure that operations on the table conform to the constraint during the enable operation。而enabled novalidated对新数据生效对表里现有数据不产生作用,正是利用这个特性,oracle巧妙的实现了约束从enabled novalidated到enable不产生lock,从而也就不会引起在enabled novalidated变成enable期间阻塞表上的读写操作。oracle利用在表上的一致性查询来校验老数据是否满足约束,如果满足就把其状态变成enable,如果不一直就报错,在修改期间如果有新数据插入则enabled novalidated会发挥作用来校验。(The enabled novalidated state prevents operations violating the constraint from being performed on the table).
其实Enabled Novalidated的作用:
表面看是仅仅对新数据产生作用,对老数据不产生作用;实质上是解决了把约束的状态从disable变成enable而引起的lock从而阻塞对该表的读写操作!
查看全文
constraint和index的一点关系!
发表人:warehouse | 发表时间: 2008年四月23日, 23:42
primary key和unique约束是要依赖index的,下面通过试验来看看他们之间的依赖关系!
查看全文
一篇介绍内部事件不错的文章!
发表人:warehouse | 发表时间: 2008年四月23日, 18:41
tanfufa 上传了一些不错的东西,记录一下! 查看全文
index有时候可能会比表大!
发表人:warehouse | 发表时间: 2008年四月23日, 16:50
之前没有想过这个问题,第一次看到这样的说法是在piner的面试题中。当时觉得有点意思,这几天细读doc,上面也提到了这样的说法:
Consider an index on a table on which a lot of DML has been performed. Because of the DML, the size of the index can increase to the point where each block is only 50% full, or even less. If the index refers to most of the columns in the table, then the index could actually be larger than the table.
查看全文
什么是index的leading column(索引的前导列)?
发表人:warehouse | 发表时间: 2008年四月22日, 18:30
看到经常有人问此问题!doc的原话,看到了随手记录下!
查看全文
使用自定义函数创Function-Based Indexes时需要使用DETERMINISTIC Functions!
发表人:warehouse | 发表时间: 2008年四月20日, 22:46
那么究竟什么是DETERMINISTIC Functions,看看doc的解释!
DETERMINISTIC Functions
Any user-written function used in a function-based index must have been declared with the DETERMINISTIC keyword to indicate that the function will always return the same output return value for any given set of input argument values, now and in the future.
查看全文
从10g开始CBO下group by之后不能保证数据是按照分组字段排序的!
发表人:warehouse | 发表时间: 2008年四月20日, 21:56
从10g开始CBO下group by之后不能保证数据是按照分组字段排序的! 查看全文
使用不含通配符的like运算符遇到char类型的字段时要注意!
发表人:warehouse | 发表时间: 2008年四月19日, 19:17
在CBO下,oracle会把不含通配符的like表达式转为为等式,前提是like前面的字段类型必须是可变宽度字符类型的。当遇到char类型的字段时它不会这样做! 查看全文
修改statistics!
发表人:warehouse | 发表时间: 2008年四月17日, 12:13
可以通过dbms_stats提供的set_table_stats来修改表的统计信息从而使cbo产生我们希望的执行计划!
查看全文
监视stale statistics(失真的统计信息)的对象!
发表人:warehouse | 发表时间: 2008年四月17日, 11:35
通过dbms_stats提供的几个procedure可以监视stale statistics的对象以便之后对这些对象搜集statistics。 查看全文
使用dbms_stats列出没有统计信息的对象!
发表人:warehouse | 发表时间: 2008年四月17日, 10:55
利用dbms_stats的procedure gather_schema_stats 和gather_database_stats通过使用参数options 和objlist可以列出那些没有统计信息或者统计信息stale的对象。
查看全文
为基于函数index所产生的虚拟列搜集统计信息!
发表人:warehouse | 发表时间: 2008年四月16日, 22:29
在创建函数index之后系统会自动产生虚拟列,而这一列也是隐藏的,在创建index时系统自动使用了compute statistics选项为创建的index搜集了statistics,然而并不会为生成的虚拟列搜集statistics,这时如果需要为虚拟列搜集statistics就需要重新分析表或者单独为虚拟列搜集statistics。
查看全文
statistics的export与import!
发表人:warehouse | 发表时间: 2008年四月16日, 15:22
dbms_stats package中提供了过程export_X_stats和import_X_stats(其中X代表column,table,index,schema,database)可以实现统计信息的export和import。通过这种方法我们可以把生产环境的统计信息导入到测试库中模拟生产库。 查看全文
DBMS_STATS和ANALYZE在搜集statistics时的一些差别!
发表人:warehouse | 发表时间: 2008年四月16日, 10:29
doc上的原话,随手记录一下。
查看全文
请慎重分析对象!
发表人:warehouse | 发表时间: 2008年四月16日, 10:06
对象被分析之后,所有和该对象相关的被parse过的sql都会失效,下次需要执行相同的sql时需要再次parse,因此当系统执行过搜集statistics的操作后面临的可能是在短时间内产生很多hard parse。 其实非常容易理解,因为有了新的statistics,oracle在下次执行相同的sql时会使用新的statistics产生新的执行计划。 查看全文
statistics!
发表人:warehouse | 发表时间: 2008年四月15日, 23:36
Use the DBMS_STATS package to generate statistics.
Statistics generated include the following:
查看全文
user_tab_columns和user_tab_cols的区别!
发表人:warehouse | 发表时间: 2008年四月15日, 23:10
user_tab_cols differs from "USER_TAB_COLUMNS" in that hidden columns are not filtered out。10.2版本中user_tab_cols比user_tab_columns多出下面几列:
HIDDEN_COLUMN VARCHAR2(3)
VIRTUAL_COLUMN VARCHAR2(3)
SEGMENT_COLUMN_ID NUMBER
INTERNAL_COLUMN_ID NOT NULL NUMBER
QUALIFIED_COL_NAME VARCHAR2(4000)
查看全文
Index Joins的一点测试!
发表人:warehouse | 发表时间: 2008年四月14日, 11:55
index和index之间是如何进行hash join的,因为index中包括了rowid,所以通过rowid可以连接。
Index Joins
An index join is a hash join of several indexes that together contain all the table columns that are referenced in the query. If an index join is used, then no table access is needed, because all the relevant column values can be retrieved from the indexes. An index join cannot be used to eliminate a sort operation. The index join is available only with the CBO.
Index Join Hints
You can specify an index join with the initialization parameter OPTIMIZER_FEATURES_ENABLE or the INDEX_JOIN hint. For more information on the INDEX_JOIN hint, see "INDEX_JOIN".
查看全文
Fast Full Index Scans的特点!
发表人:warehouse | 发表时间: 2008年四月13日, 16:00
其实Fast Full Index Scans是针对full table scan而言的,Fast Full Index Scans的一些特点也和full table scan相似(如:多块读):
Fast Full Index Scans的一些特点:
1.Fast full scan is available only with the CBO
2.at least one column in the index key has the NOT NULL constraint
3. A fast full scan accesses the data in the index itself, without accessing the table
4.It cannot be used to eliminate a sort operation, because the data is not ordered by the index key.(粗略的试验了一下发现也是排好序了,按照index_key)
5.It reads the entire index using multiblock reads, unlike a full index scan
6.Fast full index scans cannot be performed against bitmap indexes(这里有点问题,在10g,11g下测似没有问题啊)
7.A fast full scan is faster than a normal full index scan in that it can use multiblock I/O and can be parallelized just like a table scan
8.There must be a parallel clause on the index if you want to perform a fast full index scan in parallel. The parallel degree of the index is set independently. The index does not inherit the degree of parallelism of the table.
9.You must have analyzed the index; otherwise, the optimizer might decide not to use it
查看全文
index和rowid的一点关系!
发表人:warehouse | 发表时间: 2008年四月13日, 13:52
唯一index和非唯一index的index entry中尽管都存在rowid,但是其实有一点细微的差别,在唯一index中index_column就是index_column, 数据通过index_column排序;而在非唯一index中index_column其实是index_key+rowid,如果index_key相同,那么会使用rowid排序。
查看全文
有关lock的一点测试总结!
发表人:warehouse | 发表时间: 2008年四月09日, 11:28
理解oracle lock的概念,有助于理解多用户的并发执行。
查看全文
权限传递的一点测试!
发表人:warehouse | 发表时间: 2008年四月07日, 23:33
记得在北京讲课时曾经有学员问到过这个问题,当时没有详细测试,前几天看到pub上又有人提及这类问题,简单的测试了一下,还发现了一些问题。传递出去的对象权限可以cascade回收,而传递出去的系统权限却没有cascade回收!
查看全文
active session的准确定义!
发表人:warehouse | 发表时间: 2008年四月07日, 17:13
什么是 active session ! 查看全文
ORA-04031错误模拟!
发表人:warehouse | 发表时间: 2008年四月04日, 18:39
不使用绑定变量,而open_cursors又开的很大,很容易导致ORA-04031错误!
查看全文
使用绑定变量的一点总结!
发表人:warehouse | 发表时间: 2008年四月04日, 00:13
在oltp系统中提倡使用绑定变量,使用绑定变量可以减少hard parse,避免因解析sql而过渡消耗cpu时间以及引起latch争用等一系列问题。那么到底如何使用绑定变量?可能是困扰很多人的一个问题,下面列举了一些使用绑定变量的例子或者是场合 查看全文
如何获得server端和client端ip address和host name!
发表人:warehouse | 发表时间: 2008年四月03日, 22:28
如何获得server端和client端ip address和host name! 查看全文
远程调用procedure可能会有一些缺陷!
发表人:warehouse | 发表时间: 2008年四月02日, 14:32
看到pub上有人问如何远程调用过程,其实大部分人都会想到通过db link事实上也确实如此,不过我相信实际在使用的时候可能没有多少人这样用而是通常会使用另外的办法 查看全文
DATA BLOCK内部结构图
发表人:warehouse | 发表时间: 2008年四月01日, 15:22
DATA BLOCK内部结构图
一张不错的图,不过看起来有些累
查看全文
sqlplus中define定义的常量和variable定义的变量的区别!
发表人:warehouse | 发表时间: 2008年四月01日, 14:06
前两天看到有人在pub上问在sqlplus中通过define和variable定义的变量的区别。其实define定义的我理解不是变量而是字符常量,通过define定义之后,在通过&或者&&引用的时候不需要输入了,仅此而已。oracle在执行的时候自动用值进行了替换;而variable定义的是绑定变量。 查看全文
口令中含@的问题!
发表人:warehouse | 发表时间: 2008年四月01日, 09:44
当口令中包含@时不能通过sqlplus username/"password"连上数据库,但是可以通过sqlplus username(@tns)之后再输入password(切记password用双引号扩起来)正常连接数据库;也可以先进入sqlplus环境:sqlplus /nolog之后再connect username/"password"@tns连接数据库!
查看全文
constraint=constraints?
发表人:warehouse | 发表时间: 2008年三月26日, 21:15
偶然发现在为字段增加约束时使用constraint或者constraints都可以创建成功,查看oracle语法发现是constraint,不知道是否是bug?
查看全文
oracle把''当null来对待!
发表人:warehouse | 发表时间: 2008年三月25日, 21:14
使用sql server和sybase时记得''表示空字符串,但是在oracle中却发现没有空字符串一说,oracle把''当null来对待! 查看全文
rman中的catalog命令!
发表人:warehouse | 发表时间: 2008年三月23日, 11:42
之前并不清楚catalog命令的意思,直到去年考ocp时有到题目提到catalog命令,题意已经记不清楚了,当然答案也是懵的。
网上无意中看到了ninoo的总结,转过来记录一下!
查看全文
merge用法测试随手记!
发表人:warehouse | 发表时间: 2008年三月22日, 14:16
matched之后的delete语法是10g之后才有的,使用起来更加灵活方便了;而且10g中还增加了where子句可以控制条件
查看全文
resumable特性以及系统触发器中的SUSPEND event测试!
发表人:warehouse | 发表时间: 2008年三月20日, 23:33
之前一直没有搞清楚系统触发器中的suspend事件什么时候触发,正好看到一位puber问此问题,搜索一下doc,做了一个简单的测试。 查看全文
Oracle如何精确计算row的大小
user和schema的区别
发表人:warehouse | 发表时间: 2008年二月28日, 22:17
这两个概念确实不太好理解
说穿了其实user是控制权限的,而schema是个容器,非所有者要访问这个容器下的对象就需要在
对象前面写上schema(owner)的名字,如果不想写而又没有创建synonym,此时可以通过
alter session set current_schema=schema_name
来改变当前session的schema从而在访问对象时省去schema(owner);
最终能否访问对象还是要看是否有访问这个对象的权限而和schema无关。
查看全文
Oracle 的管道化表函数(Pipelined Table) 转
cursor express的一点测试!
sys_refcursor以及cursor express的一点测试!
发表人:warehouse | 发表时间: 2008年一月04日, 09:20
通过sys_refcursor可以实现procedure直接返回结果集不必通过package 查看全文
部分联机备份和常规操作生成的redo比较!
发表人:warehouse | 发表时间: 2007年十二月27日, 19:35
部分联机备份在备份期间会比正常情况操作db由于os命令参与拷贝数据文件引起block split而多产生出redo!
查看全文
有关temp表空间的一点总结!
发表人:warehouse | 发表时间: 2007年十二月24日, 13:56
我一直都把oracle中的temp tbs理解成win下的虚拟内存和unix下的swap分区。temp使用不当会影响oracle数据库的性能。 查看全文
transactions_per_rollback_segment一个让人容易误解的参数!
发表人:warehouse | 发表时间: 2007年十二月22日, 23:29
其实TRANSACTIONS_PER_ROLLBACK_SEGMENT 的作用仅仅是用于判断public rollback segment是否在startup时需要online而起作用,不能决定一个rollback segment上到底最多有多少个事务。rollback segment上最多能有多少个事务是由rollback segment header block上的事务表( TRN TBL)所决定的,当然最多能有多少个 TRN TBL肯定和db_block_size有关。TRANSACTIONS_PER_ROLLBACK_SEGMENT 在undo_management=auto时已经不起作用了。
查看全文
今天提前还了贷款!
发表人:warehouse | 发表时间: 2007年十二月18日, 12:53
今天(18/12/2007)在岳父母的协助下去还了15w贷款,去年换了房子,总共贷了20w,多次利率调整,大家都觉得不合适,我到没觉得什么,利息就相当于租房子,只不过这房子的主人是银行,使用权归我。没有什么大不了的。后来孩子姥姥和老爷执意要借给提前还款,说是要把省下来的利息给他外甥狗上学用,心里感激不尽,毕竟是老人家的养老钱。后来想想借就借吧,哪有人家主动要借你还不借的。再说提前还了确实可以剩下很多利息的,就当是最后再把这些利息也还给父母就是。
自己没有孩子之前我一直都觉得自己是个孩子,尽管感觉自己还是比较成熟的。有了儿子以后才真真体会到了父母的含辛茹苦和对孩子的牵挂,因此我们要格外加倍的孝敬双方的父母,这样才能对得起他们,同时也能给自己的孩子树立好的榜样。
rowid的一点总结!
发表人:warehouse | 发表时间: 2007年十二月17日, 10:29
一直都觉得rowid的设计非常独到,简单做了个总结!
未完。。。
查看全文
怀念亲爱的奶奶!
发表人:warehouse | 发表时间: 2007年十二月15日, 14:30
仅以此文怀念自己亲爱的奶奶。
查看全文
介绍freelists,freelist groups的几篇精彩文章!
dmt、lmt几篇不错的文章!
dmt、lmt、mssm,assm的一点总结!
发表人:warehouse | 发表时间: 2007年十二月11日, 11:51
这几个名词涉及的内容实在是太多了,尽最大能力总结一下,希望能和大家一起分享!
一下写不完,会不停的补充、完善!
查看全文
oracle中*_name你知道多少?
发表人:warehouse | 发表时间: 2007年十二月02日, 18:01
db_name,instance_name,service_names,db_domain,global_name,global_names,
等各有各的用处!不容易理解!
也可以参与讨论!
http://www.itpub.net/thread-903624-1-5.html
查看全文
os认证和口令文件!
发表人:warehouse | 发表时间: 2007年十二月02日, 17:42
os认证和口令文件的一点总结!
也可以通过下面连接参与讨论
http://www.itpub.net/thread-906008-1-1.html
查看全文
使用bulk collect实现cursor 批量fetch!
发表人:warehouse | 发表时间: 2007年十一月13日, 09:44
尽管我在开发当中使用批量fetch并不是很多,但是oracle提供了这个功能我们最好能熟悉一下,说不定什么时候会用上它。批量fetch肯定需要和集合结合起来使用,所以这就要求我们熟悉集合的内容!这里不对集合的内容做过多介绍! 查看全文
%rowtype是什么?
发表人:warehouse | 发表时间: 2007年十一月13日, 09:28
每次讲课,%rowtype是什么,很多非计算机专业或者说即使是计算机专业但是基础不是很好的一些学员总是理解不了,原因是他们不熟悉c中的结构体或者是parcle(是这么写的吗?忘了)中的record类型。 查看全文
考10g ocp的一点体会!
发表人:warehouse | 发表时间: 2007年十一月11日, 22:56
今天去考了一下10g ocp!
很幸运:042-- 82% 043 ---73%
总体感觉10g的ocp含金量太低,当然以前的版本也没有考过,不了解!
042的内容主要是物理结构和实例的一些启动状态以及network等相关内容,逻辑结构内存进程等内容感觉都不是很多,性能方面的东西涉及的很少!
043的内容主要是rman(其中绝大对数都是不完全恢复的) , flashback,dbms_scheduler,resource manager 等,原本感觉这部分内容应该更容易一些,可是答的过程中发现还是有很多拿不准,而且主要是这部分的内容题意过长,很费时间,时间刚好,042答完了还有15分钟时间还检查了一下,不过在答042的时候发现自己很愚蠢,题中多次提到exhibit,偶居然没有找到exhibit在哪儿,直到答完了检查的时才发现exhibit的位置,晕,幸好exhibit出现的次数不多!
还有oem中的很多东西如设置表空间的使用The warning and critical threshold values以及
Memory Advisor
Segment Advisor,
SQL Tuning Advisor,
SQL Access Advisor,
Automatic Database Diagnostic Monitor (ADDM),awr内容在042,043中都有所体现!
一点体会:ocp可以考,但是说实在证书意义不大,主要是在考的过程中自己可以系统的学习提高,当然通过考试也可以检验一下自己,其实自己是什么层次自己最清楚还用检验吗?
偶虽然考了但是依然不能持证上岗,仅仅考一下而已
查看全文
sql case语法和plsql case语法!
发表人:warehouse | 发表时间: 2007年十一月11日, 22:41
sql和plsql都有case,但是自己感觉sql中的case似乎用处更大一些!
查看全文
使用多从条件判断时要特别注意!
发表人:warehouse | 发表时间: 2007年十一月11日, 22:29
当v_j=1时答案是多少?10还是110?
不用做试验,凭直观感觉:)
当然出现这样的判断程序逻辑可能存在问题!
查看全文
今天儿子一天哭了好多次!
发表人:warehouse | 发表时间: 2007年十一月08日, 09:09
最近发现儿子很叛逆,一天不顺心,或者说不满足他的意愿就不行,赖赖唧唧的,晚上我终于忍不住了,动手打了他! 查看全文
限定client段ip访问oracle!
发表人:warehouse | 发表时间: 2007年十一月08日, 08:57
在南京培训时一位学员问及了如何限定client段ip访问oracle! 查看全文
sql优化讲课中引出的各种问题!
发表人:warehouse | 发表时间: 2007年十月22日, 00:19
有图片,所以这里没有放内容,查看的话,大家可以直接看看下面的连接!
查看全文
ITL中xid 和 uba的验证!
发表人:warehouse | 发表时间: 2007年十月21日, 22:12
ITL中xid 和 uba代表了什么意思?
需要了解block的internal格式!下面通过一个试验做了一些验证!
查看全文
statspack中Library Hit是如何计算的?
发表人:warehouse | 发表时间: 2007年十月19日, 14:05
通过测试发现Library Hit 是pin的命中率!
查看全文
参数SKIP_UNUSABLE_INDEXES的一点测试!
发表人:warehouse | 发表时间: 2007年十月13日, 21:36
之前并不知道SKIP_UNUSABLE_INDEXES是一个参数,在imp/impdp中经常看到!通过以下试验发现即使SKIP_UNUSABLE_INDEXES=y,status=UNUSABLE的index还是伴随着tt表的导出导入一起导出导入,只是SKIP_UNUSABLE_INDEXES=y时,当imp导入表时insert的数据不会同时再去update index key了,但是unique index例外 ,因为它扮演着constraint的作用!
查看全文
使用dbms_tts.transport_set_check来检查要传输的tbs是否是自包含的时需要注意!
发表人:warehouse | 发表时间: 2007年十月13日, 20:40
在transport_tablespace前可以使用dbms_tts.transport_set_check来检查要传输的tbs是否是自包含的,执行dbms_tts.transport_set_check之后如果tbs不是自包含的,只有在当前session查询TRANSPORT_SET_VIOLATIONS试图才可以查到信息,以前一直从其他session差不到信息还以为是dbms_tts.transport_set_check的毛病,晕! 查看全文
win下使用expdp的enclude参数时一个对象和多个对象的几种写法!
发表人:warehouse | 发表时间: 2007年十月13日, 20:32
win下和linux下写法不同,doc上的写法是linux下的,win下有所不同,而且值得注意的是一个对象和多个对象写法稍稍有些差别! 查看全文
block change tracking的一点测试!
发表人:warehouse | 发表时间: 2007年十月12日, 11:23
block change tracking的一点测试! 查看全文
dba_tables中的avg_row_len是如何被计算的?
发表人:warehouse | 发表时间: 2007年十月08日, 23:44
收集信息时avg_row_len被计算,使用analyze 和dbms_stats搜集时计算avg_row_len的差别在于后者不考虑row header占用的3个byte 查看全文
个人简介
发表人:warehouse | 发表时间: 2007年十月08日, 14:50
个人简介:oracle dba ;10g ocp
实践经验丰富,培训经验丰富!
网名:warehouse 曾担任www.itpub.net oracle新技术区版主,目前任认证区版主。
查看全文
表最多能有1000列还是255列?
发表人:warehouse | 发表时间: 2007年十月08日, 12:56
通过测试发现最多可以有1000列,每一row pieve最多255。
查看全文
dba_tablespaces and v$datafile中字段plugged_in的验证!
发表人:warehouse | 发表时间: 2007年十月01日, 14:34
该字段困扰了我很久,每次看到doc上的解释都不知道具体是什么意思,没有查到更详细的介绍,直到看到puber“棉花糖ONE”提供的下面这句话:基本上清楚是什么意思,接着做了一个验证,一点问题没有!
PLUGGED_IN column shows if the tablespace was "plugged in" to this database from another database using the transportable tablespace feature.
查看全文
flashback与dmt tbs以及trigger,materialized view log之间的关系!
发表人:warehouse | 发表时间: 2007年九月30日, 22:59
参加ocp考试的时候其中有一个题就问到了有关flashback和trigger以及materialized view log相关的问题,这里做了一个简单的测试!
查看全文
index clusterring cluster的一点测试!
发表人:warehouse | 发表时间: 2007年九月29日, 11:42
cluster factor是影响cost of index scan的一个重要因素!到底cluster factor是怎么计算出来的?是指什么,下面的链接讨论的很清楚了!
http://www.itpub.net/858950.html
查看全文
两种增量备份的区别!
发表人:warehouse | 发表时间: 2007年九月24日, 11:44
从恢复时大家可以清楚的看到,差异备份和增量备份的区别在于前者不可以覆盖同级备份!当然恢复时被覆盖的级别的备份不再被用到!遗憾的时不能通过list或者那个view查看出来到底做的时哪种增量备份,这是需要我们在备份时最好写log或者写好tag以便区分! 查看全文
SYS用户不支持flashback!
发表人:warehouse | 发表时间: 2007年九月24日, 11:38
SYS用户不支持flashback,dmt 的tbs也不支持flashback! 查看全文
purge table table_name的一点测试!
发表人:warehouse | 发表时间: 2007年九月22日, 13:18
查看全文
flashback table的一些测试!
发表人:warehouse | 发表时间: 2007年九月20日, 19:51
结论:1、flashback table t to scn #### 此处的scn和不完全恢复时的scn一样是<
2、要求enable row movement,是因为flashback之后row的rowid会发生变化
查看全文
使用备份的控制文件(db物理结构已经变化)来恢复数据库!
发表人:warehouse | 发表时间: 2007年九月16日, 17:02
使用备份的控制文件(db物理结构已经变化)来恢复数据库! 查看全文
buffer cache logical structure!
发表人:warehouse | 发表时间: 2007年七月27日, 18:13
http://www.itpub.net/822875.html
图不错!
个人简介
发表人:warehouse | 发表时间: 2007年七月01日, 00:01
曾在大连海辉集团(http://www.hisoft.com/cn/)欧美事业部,国内事业部担任dba。长期从事和数据库相关的工作,熟悉多种数据库,尤其擅长数据库管理、设计,优化,备份恢复,长期致力于对oracle数据库的研究。目前从事自由职业,在东软集团(http://www.neusoft.com)培训中心和易迪思(http://www.chinaets.net)培训中心担任讲师,主讲oracle,并且为客户经常提供技术支持服务,实践经验非常丰富。目前培训的客户有:
北京联通
杭州联通
深圳联通
武汉烟草
四川省电力总公司
青海电信
山西电力
大连海辉集团
大连开发区劳动社会保障局
日本财产保险公司(大连)
大连康博软件有限公司
大连东软集团
大连运邦科技有限公司
武汉大学
杭州社保
大连地税
大连YNC
HP(大连)
国家计算机网络故障技术处理协调中心
10.2 flashback database 测试!
发表人:warehouse | 发表时间: 2007年三月22日, 15:22
不知道怎么搞得,格式乱得要命!
查看全文
dbms_backup_restore恢复测试!nocatalog,丢失controlfile的恢复办法!
发表人:warehouse | 发表时间: 2007年一月17日, 23:45
C:>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期三 1月 17 18:48:04 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: UTF (DBID=1000919928)
RMAN> backup as compressed backupset full database format 'E:trans_tbsbakutf_
full_%U';
启动 backup 于 17-1月 -07
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=274 devtype=DISK
通道 ORA_DISK_1: 启动压缩的全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=E:ORACLEPRODUCT10.2.0ORADATAUTFSYSTEM01.DBF
输入数据文件 fno=00003 name=E:ORACLEPRODUCT10.2.0ORADATAUTFSYSAUX01.DBF
输入数据文件 fno=00002 name=E:ORACLEPRODUCT10.2.0ORADATAUTFUNDOTBS01.DBF
输入数据文件 fno=00004 name=E:ORACLEPRODUCT10.2.0ORADATAUTFUSERS01.DBF
输入数据文件 fno=00005 name=E:ORACLEPRODUCT10.2.0ORADATAUTFTEST.DBF
输入数据文件 fno=00006 name=E:ORACLEPRODUCT10.2.0ORADATAUTFTEST1.DBF
通道 ORA_DISK_1: 正在启动段 1 于 17-1月 -07
通道 ORA_DISK_1: 已完成段 1 于 17-1月 -07
段句柄=E:TRANS_TBSBAKUTF_FULL_1JI7OIMI_1_1 标记=TAG20070117T184953 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:55
通道 ORA_DISK_1: 启动压缩的全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 17-1月 -07
通道 ORA_DISK_1: 已完成段 1 于 17-1月 -07
段句柄=E:TRANS_TBSBAKUTF_FULL_1KI7OIOA_1_1 标记=TAG20070117T184953 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:05
完成 backup 于 17-1月 -07
--========================================================
删除controlfile , datafile , redo
--========================================================
C:>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 1月 17 23:10:46 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> connect sys as sysdba
输入口令:
已连接。
SQL> DECLARE
2 devtype varchar2(256);
3 done boolean;
4 BEGIN
5 devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');
6 sys.dbms_backup_restore.restoreSetDatafile;
7 sys.dbms_backup_restore.restoreControlfileTo(cfname=>'E:oracleproduct10.
2.0oradataUTFControl02.ctl');
8 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:trans_tbs
bakUTF_FULL_1KI7OIOA_1_1', params=>null);
9 sys.dbms_backup_restore.deviceDeallocate;
10 END;
11 /
PL/SQL 过程已成功完成。
SQL> edit
已写入 file afiedt.buf
1 DECLARE
2 devtype varchar2(256);
3 done boolean;
4 BEGIN
5 devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');
6 sys.dbms_backup_restore.restoreSetDatafile;
7 sys.dbms_backup_restore.restoreControlfileTo(cfname=>'E:oracleproduct10.
2.0oradataUTFControl03.ctl');
8 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:trans_tbs
bakUTF_FULL_1KI7OIOA_1_1', params=>null);
9 sys.dbms_backup_restore.deviceDeallocate;
10* END;
SQL> /
PL/SQL 过程已成功完成。
SQL>
SQL> edit
已写入 file afiedt.buf
1 DECLARE
2 devtype varchar2(256);
3 done boolean;
4 BEGIN
5 devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');
6 sys.dbms_backup_restore.restoreSetDatafile;
7 sys.dbms_backup_restore.restoreControlfileTo(cfname=>'E:oracleproduct10.
2.0oradataUTFControl01.ctl');
8 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:trans_tbs
bakUTF_FULL_1KI7OIOA_1_1', params=>null);
9 sys.dbms_backup_restore.deviceDeallocate;
10* END;
SQL> /
PL/SQL 过程已成功完成。
controlfile一旦恢复成功既可以通过dbms_backup_restore来恢复数据文件也可以通过rman来恢复!
SQL> alter database mount;
数据库已更改。
SQL> EDIT
已写入 file afiedt.buf
1* alter database mount
SQL> DECLARE
2 devtype varchar2(256);
3 done boolean;
4 BEGIN
5 devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'t1');
6 sys.dbms_backup_restore.restoreSetDatafile;
7 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>01,toname=>'E:ORACLEP
RODUCT10.2.0ORADATAUTFSYSTEM01.DBF');
8 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'E:ORACLEP
RODUCT10.2.0ORADATAUTFSYSAUX01.DBF');
9 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'E:ORACLEP
RODUCT10.2.0ORADATAUTFUNDOTBS01.DBF');
10 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>04,toname=>'E:ORACLEP
RODUCT10.2.0ORADATAUTFUSERS01.DBF');
11 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>05,toname=>'E:ORACLEP
RODUCT10.2.0ORADATAUTFTEST.DBF');
12 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>06,toname=>'E:ORACLEP
RODUCT10.2.0ORADATAUTFTEST1.DBF');
13 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:trans_tbs
bakUTF_FULL_1JI7OIMI_1_1', params=>null);
14 sys.dbms_backup_restore.deviceDeallocate;
15 END;
16 /
PL/SQL 过程已成功完成。
SQL> recover database;
ORA-00283: 恢复会话因错误而取消
ORA-01610: 使用 BACKUP CONTROLFILE 选项的恢复必须已完成
SQL> recover database using backup controlfile;
ORA-00279: 更改 1007563 (在 01/17/2007 18:49:54 生成) 对于线程 1 是必需的
ORA-00289: 建议:
E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFARCHIVELOG2007_01_17O1_MF_1_9
7_%U_.ARC
ORA-00280: 更改 1007563 (用于线程 1) 在序列 #97 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 1007563 (在 01/17/2007 18:49:54 生成) 对于线程 1 是必需的
ORA-00289: 建议:
E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFARCHIVELOG2007_01_17O1_MF_1_9
7_%U_.ARC
ORA-00280: 更改 1007563 (用于线程 1) 在序列 #97 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
ORA-00308: 无法打开归档日志
'E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFARCHIVELOG2007_01_17O1_MF_1_
97_%U_.ARC'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
SQL> alter database open resetlogs;
数据库已更改。
SQL>
--=======================================
恢复spfile and pfile的语法如下
SQL> DECLARE
2 devtype varchar2(256);
3 done boolean;
4 BEGIN
5 devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');
6 sys.dbms_backup_restore.restoreSetDatafile;
7 sys.dbms_backup_restore.restoreSPFILETO(sfname=>'E:oracleproduct10.2.0d
b_2databaseSPFILEUTF.ORA');
8 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:trans_tbs
bakUTF_FULL_1KI7OIOA_1_1', params=>null);
9 sys.dbms_backup_restore.deviceDeallocate;
10 END;
11 /
PL/SQL 过程已成功完成。
SQL> DECLARE
2 devtype varchar2(256);
3 done boolean;
4 BEGIN
5 devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');
6 sys.dbms_backup_restore.restoreSetDatafile;
7 sys.dbms_backup_restore.restoreSPFILETO(Pfname=>'E:oracleproduct10.2.0a
dminUTFpfileINIT2.ORA');
8 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:trans_tbs
bakUTF_FULL_1KI7OIOA_1_1', params=>null);
9 sys.dbms_backup_restore.deviceDeallocate;
10 END;
11 /
PL/SQL 过程已成功完成。
SQL>
transport tablespace基本用法!
发表人:warehouse | 发表时间: 2007年一月16日, 20:18
C:>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 9月 17 20:07:36 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect sys as sysdba
请输入口令:
已连接。
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
test
SQL> create tablespace test datafile 'D:oracleoradatatesttest.dbf' size 1m;
表空间已创建。
SQL> connect xys/manager
已连接。
SQL> create table t(id int);
表已创建。
SQL> insert into t values(1);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select default_tablespace from dba_users where username='XYS';
DEFAULT_TABLESPACE
------------------------------
USERS
SQL> create index t_idx on t(id) tablespace test;
索引已创建。
SQL> exec dbms_tts.transport_set_check('test' , true);
BEGIN dbms_tts.transport_set_check('test' , true); END;
*
ERROR 位于第 1 行:
ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须说明标识符 'DBMS_TTS.TRANSPORT_SET_CHECK'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
SQL> exec sys.dbms_tts.transport_set_check('test' , true);
PL/SQL 过程已成功完成。
SQL> select * from transport_set_violations;
select * from transport_set_violations
*
ERROR 位于第 1 行:
ORA-00942: 表或视图不存在
SQL> connect sys as sysdba
请输入口令:
已连接。
SQL> select * from transport_set_violations;
未选定行
SQL> alter tablespace test read only;
表空间已更改。
SQL> host exp transport_tablespace=y tablespace=test file=d:test.dmp;
LRM-00101: 未知的参数名 'tablespace'
EXP-00019: 处理参数失败,有关帮助请键入 'EXP HELP=Y'
EXP-00000: 导出终止失败
SQL> host exp transport_tablespace=y tablespaces=test file=d:test.dmp;
Export: Release 9.2.0.1.0 - Production on 星期六 9月 17 20:14:30 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
用户名: / as sysdba
连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 将不会导出表数据(行)
关于导出可传输的表空间元数据...
EXP-00008: 遇到 ORACLE 错误 29341
ORA-29341: 可传送集不是自包含的
ORA-06512: 在"SYS.DBMS_PLUGTS", line 1093
ORA-06512: 在line 1
EXP-00000: 导出终止失败
SQL> drop index xys.t_idx;
索引已丢弃。
SQL> create table xys.tt(id int) tablespace test;
create table xys.tt(id int) tablespace test
*
ERROR 位于第 1 行:
ORA-00955: 名称已由现有对象使用
SQL> create table xys.t_t(id int) tablespace test;
create table xys.t_t(id int) tablespace test
*
ERROR 位于第 1 行:
ORA-01647: 表空间'TEST'是只读,无法在其中分配空间
SQL> alter tablespace test read write;
表空间已更改。
SQL> create table xys.t_t(id int) tablespace test;
表已创建。
SQL> insert into xys.t_t values(1);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from transport_set_violations;
未选定行
SQL> show user
USER 为"SYS"
SQL> alter tablespace test read only;
表空间已更改。
SQL> host exp transport_tablespace=y tablespace=test file=d:test.dmp;
LRM-00101: 未知的参数名 'tablespace'
EXP-00019: 处理参数失败,有关帮助请键入 'EXP HELP=Y'
EXP-00000: 导出终止失败
SQL> host exp transport_tablespace=y tablespaces=test file=d:test.dmp;
Export: Release 9.2.0.1.0 - Production on 星期六 9月 17 20:17:09 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
用户名: / as sysdba
连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 将不会导出表数据(行)
关于导出可传输的表空间元数据...
用于表空间 TEST...
. 正在导出群集定义
. 正在导出表定义
. . 正在导出表 T_T
. 正在导出引用完整性约束条件
. 正在导出触发器
. 结束导出可传输的表空间元数据
在没有警告的情况下成功终止导出。
SQL> exit
从Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中断开
C:>set oracle_sid=testdb
C:>imp transport_tablespace=y datafiles='D:oracleoradatatestdbtest.dbf' ta
blespaces=test file=d:test.dmp
Import: Release 9.2.0.1.0 - Production on 星期六 9月 17 20:21:12 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
用户名: / as sysdba
连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
经由常规路径导出由EXPORT:V09.02.00创建的文件
关于导入可传输表空间元数据...
已经完成ZHS16GBK字符集和AL16UTF16 NCHAR 字符集中的导入
. 正在将SYS的对象导入到 SYS
IMP-00017: 由于 ORACLE 的 29342 错误,以下的语句失败
"BEGIN sys.dbms_plugts.checkUser('XYS'); END;"
IMP-00003: 遇到 ORACLE 错误 29342
ORA-29342: 数据库中不存在用户 XYS
ORA-06512: 在"SYS.DBMS_PLUGTS", line 1535
ORA-06512: 在line 1
IMP-00000: 未成功终止导入
C:>set oracle_sid=testdb
C:>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 9月 17 20:21:49 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect sys as sysdba
请输入口令:
已连接。
SQL> create user xys identified by manager default tablespace users;
用户已创建
SQL> grant connect , resource , dba to xys;
授权成功。
SQL> exit
从Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中断开
C:>imp transport_tablespace=y datafiles='D:oracleoradatatestdbtest.dbf' ta
blespaces=test file=d:test.dmp
Import: Release 9.2.0.1.0 - Production on 星期六 9月 17 20:23:10 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
用户名: / as sysdba
连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
经由常规路径导出由EXPORT:V09.02.00创建的文件
关于导入可传输表空间元数据...
已经完成ZHS16GBK字符集和AL16UTF16 NCHAR 字符集中的导入
. 正在将SYS的对象导入到 SYS
. 正在将XYS的对象导入到 XYS
. . 正在导入表 "T_T"
成功终止导入,但出现警告。
C:>set oracle_sid=testdb
C:>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 9月 17 20:23:45 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect xys/manager
已连接。
SQL> select * from t_t;
ID
----------
1
SQL> select name from v$tablespace;
NAME
------------------------------
SYSTEM
UNDOTBS1
TEMP
DRSYS
INDX
TOOLS
USERS
XDB
TEST
已选择9行。
SQL> create table t_tt(id int) tablespace test;
create table t_tt(id int) tablespace test
*
ERROR 位于第 1 行:
ORA-01647: 表空间'TEST'是只读,无法在其中分配空间
SQL> alter tablespace test read write;
表空间已更改。
SQL>
最后别忘了改写表空间的状态!
利用TRANSPORT_TABLESPACE特性把9i的表空间迁移到10g测试!
发表人:warehouse | 发表时间: 2007年一月13日, 23:07
一种非常好数据库升级的思路,测试的起源来自于下面的帖子:
http://www.itpub.net/705187.html
在结合下面的例子相信在异构os上也没有问题,遗憾的是手头没有环境,懒的搭建测试了!
http://www.eygle.com/archives/2004/06/10g_transport_tbs.html
把9i 下的表空间迁移到10g上,创建表空间trans_tbs时datafile拉了扩展名了,看起来不是很舒服,对付着看吧!:)
C:>sqlplus system/manager
SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 1月 13 21:29:19 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
连接到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
SQL> show parameter db_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string DB9i
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
C:ORACLEORA92DB9ISYSTEM01.DBF
C:ORACLEORA92DB9IUNDOTBS01.DBF
C:ORACLEORA92DB9IUSERS01.DBF
--创建一个自包含的表空间
SQL> create tablespace trans_tbs datafile 'C:ORACLEORA92DB9Itrans_tbs' size
5m ;
表空间已创建。
SQL> create user xys identified by manager default tablespace trans_tbs;
用户已创建
SQL> grant connect , resource , dba to xys;
授权成功。
SQL> connect xys/manager
已连接。
--创建测试数据
SQL> create table t as select *from dba_objects;
表已创建。
--将要transport tablespace改为read only是必须的!
SQL> alter tablespace trans_tbs read only;
表空间已更改。
SQL> host exp 'sys/manager as sysdba' file='E:trans_tbstrans_tbs.dmp' transpor
t_tablespace=y tablespaces=TRANS_TBS
Export: Release 9.2.0.1.0 - Production on 星期六 1月 13 21:35:43 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 将不会导出表数据(行)
关于导出可传输的表空间元数据...
用于表空间 TRANS_TBS...
. 正在导出群集定义
. 正在导出表定义
. . 正在导出表 T
. 正在导出引用完整性约束条件
. 正在导出触发器
. 结束导出可传输的表空间元数据
在没有警告的情况下成功终止导出。
SQL> EXIT
从Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中断开
C:>SET ORACLE_SID=ORCL
C:>sqlplus system/system
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 1月 13 22:45:42 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
E:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF
SQL> host copy C:oracleora92DB9itrans_tbs E:ORACLEPRODUCT10.2.0ORADATAO
RCLtrans_tbs
已复制 1 个文件。
SQL> host imp 'sys/system as sysdba' transport_tablespace=y tablespaces=TRANS_TB
s file='E:trans_tbstrans_tbs.dmp' datafiles='E:ORACLEPRODUCT10.2.0ORADATA
ORCLtrans_tbs' tts_owners=xys fromuser=xys touser=xys
Import: Release 10.2.0.1.0 - Production on 星期六 1月 13 22:46:48 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
经由常规路径由 EXPORT:V09.02.00 创建的导出文件
即将导入可传输的表空间元数据...
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
IMP-00017: 由于 ORACLE 错误 29343, 以下语句失败:
"BEGIN sys.dbms_plugts.checkUser('XYS'); END;"
IMP-00003: 遇到 ORACLE 错误 29343
ORA-29343: 数据库中不存在用户 XYS (从用户 XYS 映射)
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 1895
ORA-06512: 在 line 1
IMP-00000: 未成功终止导入
--创建用户是必须的,否则会出现上面的错误!
SQL> create user xys identified by manager default tablespace users;
用户已创建。
SQL> grant dba , connect, resource to xys;
授权成功。
SQL> host imp 'sys/system as sysdba' transport_tablespace=y tablespaces=TRANS_TB
s file='E:trans_tbstrans_tbs.dmp' datafiles='E:ORACLEPRODUCT10.2.0ORADATA
ORCLtrans_tbs' tts_owners=xys fromuser=xys touser=xys
Import: Release 10.2.0.1.0 - Production on 星期六 1月 13 22:46:07 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
经由常规路径由 EXPORT:V09.02.00 创建的导出文件
即将导入可传输的表空间元数据...
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 XYS 的对象导入到 XYS
. . 正在导入表 "T"
成功终止导入, 没有出现警告。
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
E:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLTRANS_TBS
SQL> CONNECT XYS/MANAGER
已连接。
SQL> SELECT count (*) FROM T;
COUNT(*)
----------
6166
10.2R2 rman transport tablespace特性测试!
发表人:warehouse | 发表时间: 2007年一月12日, 21:45
10.2 rman transport tablespace最大的特点在于表空间不需要设置为read only了
这篇文章也值得参考:
http://luhartma.blogspot.com/2006/04/transportable-tablespaces-from-backup.html
RMAN> run {
2> TRANSPORT TABLESPACE 'TEST'
3> AUXILIARY DESTINATION 'E:oracletrans_tbs'
4> DUMP FILE 'test.dmp'
5> EXPORT LOG 'test.log'
6> IMPORT SCRIPT 'test_im.sql'
7> TABLESPACE DESTINATION 'E:oracletrans_tbs'
8> ;
9> }
RMAN-05026: 警告: 假定以下表空间集适用于指定的时间点
表空间列表要求具有 UNDO 段
表空间 SYSTEM
表空间 UNDOTBS1
使用 SID='zabp' 创建自动实例
供自动实例使用的初始化参数:
db_name=UTF
compatible=10.2.0.1.0
db_block_size=8192
db_files=200
db_unique_name=tspitr_UTF_zabp
large_pool_size=1M
shared_pool_size=110M
#No auxiliary parameter file used
db_create_file_dest=E:oracletrans_tbs
control_files=E:oracletrans_tbs/cntrl_tspitr_UTF_zabp.f
启动自动实例 UTF
Oracle 实例已启动
系统全局区域总计 201326592 字节
Fixed Size 1248092 字节
Variable Size 146801828 字节
Database Buffers 50331648 字节
Redo Buffers 2945024 字节
自动实例已创建
内存脚本的内容:
{
# set the until clause
set until scn 768976;
# restore the controlfile
restore clone controlfile;
# mount the controlfile
sql clone 'alter database mount clone database';
# archive current online log for tspitr to a resent until time
sql 'alter system archive log current';
# avoid unnecessary autobackups for structural changes during TSPITR
sql 'begin dbms_backup_restore.AutoBackupFlag(FALSE); end;';
}
正在执行内存脚本
正在执行命令: SET until clause
启动 restore 于 12-1月 -07
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=37 devtype=DISK
通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_AUX_DISK_1: 正在复原控制文件
通道 ORA_AUX_DISK_1: 正在读取备份段 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREA
UTFAUTOBACKUP2007_01_12O1_MF_S_611692252_2TGRTY7B_.BKP
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段句柄 = E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFAUTOBACKUP2007_01_12
O1_MF_S_611692252_2TGRTY7B_.BKP 标记 = TAG20070112T183052
通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:00:01
输出文件名=E:ORACLETRANS_TBSCNTRL_TSPITR_UTF_ZABP.F
完成 restore 于 12-1月 -07
sql 语句: alter database mount clone database
sql 语句: alter system archive log current
sql 语句: begin dbms_backup_restore.AutoBackupFlag(FALSE); end;
释放的通道: ORA_AUX_DISK_1
内存脚本的内容:
{
# generated tablespace point-in-time recovery script
# set the until clause
set until scn 768976;
# set an omf destination filename for restore
set newname for clone datafile 1 to new;
# set an omf destination filename for restore
set newname for clone datafile 2 to new;
# set an omf destination filename for restore
set newname for clone datafile 3 to new;
# set an omf destination tempfile
set newname for clone tempfile 1 to new;
# set an omf destination tempfile
set newname for clone tempfile 2 to new;
# set a destination filename for restore
set newname for datafile 5 to
"E:oracletrans_tbsTEST.DBF";
# rename all tempfiles
switch clone tempfile all;
# restore the tablespaces in the recovery set plus the auxilliary tablespaces
restore clone datafile 1, 2, 3, 5;
switch clone datafile all;
#online the datafiles restored or flipped
sql clone "alter database datafile 1 online";
#online the datafiles restored or flipped
sql clone "alter database datafile 2 online";
#online the datafiles restored or flipped
sql clone "alter database datafile 3 online";
#online the datafiles restored or flipped
sql clone "alter database datafile 5 online";
# make the controlfile point at the restored datafiles, then recover them
recover clone database tablespace "TEST", "SYSTEM", "UNDOTBS1", "SYSAUX" delete
archivelog;
alter clone database open resetlogs;
# PLUG HERE the creation of a temporary tablespace if export fails due to lack
# of temporary space.
# For example in Unix these two lines would do that:
#sql clone "create tablespace aux_tspitr_tmp
# datafile ''/tmp/aux_tspitr_tmp.dbf'' size 500K";
}
正在执行内存脚本
正在执行命令: SET until clause
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
临时文件 1 在控制文件中已重命名为 E:ORACLETRANS_TBSTSPITR_UDATAFILEO1_MF_TE
MP_%U_.TMP
临时文件 2 在控制文件中已重命名为 E:ORACLETRANS_TBSTSPITR_UDATAFILEO1_MF_TM
P_%U_.TMP
启动 restore 于 12-1月 -07
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=39 devtype=DISK
通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_AUX_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到E:ORACLETRANS_TBSTSPITR_UDATAFILEO1_MF_SYSTEM_%U_.DB
F
正将数据文件00002恢复到E:ORACLETRANS_TBSTSPITR_UDATAFILEO1_MF_UNDOTBS1_%U_.
DBF
正将数据文件00003恢复到E:ORACLETRANS_TBSTSPITR_UDATAFILEO1_MF_SYSAUX_%U_.DB
F
正将数据文件00005恢复到E:ORACLETRANS_TBSTEST.DBF
通道 ORA_AUX_DISK_1: 正在读取备份段 E:TRANS_TBSBAKDB_FULL_19I7BBL4_1_1
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段句柄 = E:TRANS_TBSBAKDB_FULL_19I7BBL4_1_1 标记 = TAG20070112T182955
通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:01:05
完成 restore 于 12-1月 -07
数据文件 1 已转换成数据文件副本
输入数据文件副本 recid=31 stamp=611702374 文件名=E:ORACLETRANS_TBSTSPITR_UDA
TAFILEO1_MF_SYSTEM_2TH2O4RF_.DBF
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=32 stamp=611702374 文件名=E:ORACLETRANS_TBSTSPITR_UDA
TAFILEO1_MF_UNDOTBS1_2TH2O4SD_.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 recid=33 stamp=611702374 文件名=E:ORACLETRANS_TBSTSPITR_UDA
TAFILEO1_MF_SYSAUX_2TH2O4RW_.DBF
数据文件 5 已转换成数据文件副本
输入数据文件副本 recid=34 stamp=611702374 文件名=E:ORACLETRANS_TBSTEST.DBF
sql 语句: alter database datafile 1 online
sql 语句: alter database datafile 2 online
sql 语句: alter database datafile 3 online
sql 语句: alter database datafile 5 online
启动 recover 于 12-1月 -07
使用通道 ORA_AUX_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 78 已作为文件 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAU
TFARCHIVELOG2007_01_12O1_MF_1_78_2TGV177T_.ARC 存在于磁盘上
存档日志线程 1 序列 79 已作为文件 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAU
TFARCHIVELOG2007_01_12O1_MF_1_79_2TGWLSG5_.ARC 存在于磁盘上
存档日志文件名 =E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFARCHIVELOG2007
_01_12O1_MF_1_78_2TGV177T_.ARC 线程 =1 序列 =78
存档日志文件名 =E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFARCHIVELOG2007
_01_12O1_MF_1_79_2TGWLSG5_.ARC 线程 =1 序列 =79
介质恢复完成, 用时: 00:00:06
完成 recover 于 12-1月 -07
数据库已打开
内存脚本的内容:
{
#mark read only the tablespace that will be exported
sql clone "alter tablespace TEST read only";
# create directory for datapump export
sql clone "create or replace directory STREAMS_DIROBJ_DPDIR as ''
E:oracletrans_tbs''";
# export the tablespaces in the recovery set
host 'expdp userid="/@(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=oracle)(ARGV
0=oraclezabp)(ARGS=^'(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))^')(ENVS=^
'ORACLE_SID=zabp^'))(CONNECT_DATA=(SID=zabp))) as sysdba" transport_tablespaces
=
TEST dumpfile=
test.dmp directory=
STREAMS_DIROBJ_DPDIR logfile=
test.log';
}
正在执行内存脚本
sql 语句: alter tablespace TEST read only
sql 语句: create or replace directory STREAMS_DIROBJ_DPDIR as ''E:oracletrans_
tbs''
Export: Release 10.2.0.1.0 - Production on 星期五, 12 1月, 2007 21:20:03
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "SYS"."SYS_EXPORT_TRANSPORTABLE_01": userid="/********@(DESCRIPTION=(ADDRE
SS=(PROTOCOL=beq)(PROGRAM=oracle)(ARGV0=oraclezabp)(ARGS='(DESCRIPTION=(LOCAL=YE
S)(ADDRESS=(PROTOCOL=beq)))')(ENVS='ORACLE_SID=zabp'))(CONNECT_DATA=(SID=zabp)))
AS SYSDBA" transport_tablespaces= TEST dumpfile=test.dmp directory=STREAMS_DIRO
BJ_DPDIR logfile=test.log
处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK
处理对象类型 TRANSPORTABLE_EXPORT/TABLE
处理对象类型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
已成功加载/卸载了主表 "SYS"."SYS_EXPORT_TRANSPORTABLE_01"
******************************************************************************
SYS.SYS_EXPORT_TRANSPORTABLE_01 的转储文件集为:
E:ORACLETRANS_TBSTEST.DMP
作业 "SYS"."SYS_EXPORT_TRANSPORTABLE_01" 已于 21:20:36 成功完成
主机命令完成
/*
The following command may be used to import the tablespaces.
Substitute values for <logon> and <directory>.
impdp <logon> directory=<directory> dumpfile= 'test.dmp' transport_datafiles=
E:oracletrans_tbsTEST.DBF
*/
--------------------------------------------------------------
-- Start of sample PL/SQL script for importing the tablespaces
--------------------------------------------------------------
-- creating directory objects
CREATE DIRECTORY STREAMS$DIROBJ$1 AS 'E:oracletrans_tbs';
CREATE DIRECTORY STREAMS$DIROBJ$DPDIR AS 'E:oracletrans_tbs';
/* PL/SQL Script to import the exported tablespaces */
DECLARE
-- the datafiles
tbs_files dbms_streams_tablespace_adm.file_set;
cvt_files dbms_streams_tablespace_adm.file_set;
-- the dumpfile to import
dump_file dbms_streams_tablespace_adm.file;
dp_job_name VARCHAR2(30) := NULL;
-- names of tablespaces that were imported
ts_names dbms_streams_tablespace_adm.tablespace_set;
BEGIN
-- dump file name and location
dump_file.file_name := 'test.dmp';
dump_file.directory_object := 'STREAMS$DIROBJ$DPDIR';
-- forming list of datafiles for import
tbs_files( 1).file_name := 'TEST.DBF';
tbs_files( 1).directory_object := 'STREAMS$DIROBJ$1';
-- import tablespaces
dbms_streams_tablespace_adm.attach_tablespaces(
datapump_job_name => dp_job_name,
dump_file => dump_file,
tablespace_files => tbs_files,
converted_files => cvt_files,
tablespace_names => ts_names);
-- output names of imported tablespaces
IF ts_names IS NOT NULL AND ts_names.first IS NOT NULL THEN
FOR i IN ts_names.first .. ts_names.last LOOP
dbms_output.put_line('imported tablespace '|| ts_names(i));
END LOOP;
END IF;
END;
/
-- dropping directory objects
DROP DIRECTORY STREAMS$DIROBJ$1;
DROP DIRECTORY STREAMS$DIROBJ$DPDIR;
--------------------------------------------------------------
-- End of sample PL/SQL script
--------------------------------------------------------------
删除自动实例
关闭自动实例
Oracle 实例已关闭
自动实例已删除
删除自动实例
自动实例已删除
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: tranport tablespace 命令 (在 01/12/2007 21:20:44 上) 失败
ORA-27056: 无法删除文件
OSD-04024: ???????????
O/S-Error: (OS 32) ???????????????????????????
遗憾的是这里出现了错误,原因不祥,感觉不够完美!
RMAN>
RMAN> exit
恢复管理器完成。
C:>e:
E:>cd oracle
E:oracle>cd trans_tbs
E:oracletrans_tbs>dir
驱动器 E 中的卷没有标签。
卷的序列号是 F6E5-4B31
E:oracletrans_tbs 的目录
2007-01-12 21:23 <DIR> .
2007-01-12 21:23 <DIR> ..
2007-01-12 21:20 7,127,040 CNTRL_TSPITR_UTF_ZABP.F
2007-01-12 21:23 355 test.alg
2007-01-12 21:20 5,251,072 TEST.DBF
2007-01-12 21:20 73,728 TEST.DMP
2007-01-12 21:20 1,111 test.log
2007-01-12 21:20 2,101 test_im.sql
2007-01-12 21:18 <DIR> TSPITR_U
6 个文件 12,455,407 字节
3 个目录 22,051,143,680 可用字节
E:oracletrans_tbs>
--============================================
在另一个实例上执行生成的脚本E:oracletrans_tbstest_im.sql验证表空间test是否可以成功,
验证结果是成功,我们看到表空间test对应的数据文件E:ORACLETRANS_TBSTEST.DBF已经是数据库test
的一部分了,而且表空间test中的表t,tt也已经过来了!
C:>set oracle_sid=test
C:>sqlplus xys/manager
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 1月 12 21:10:58 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> SELECT FILE_NAME FROM DBA_DATA_FILES;
FILE_NAME
--------------------------------------------------------------------------------
E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF
E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DBF
E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF
E:ORACLEPRODUCT10.2.0ORADATATESTUSERS01.DBF
SQL> @E:oracletrans_tbstest_im.sql
目录已创建。
目录已创建。
PL/SQL 过程已成功完成。
目录已删除。
目录已删除。
SQL> SELECT FILE_NAME FROM DBA_DATA_FILES;
FILE_NAME
--------------------------------------------------------------------------------
E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF
E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DBF
E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF
E:ORACLEPRODUCT10.2.0ORADATATESTUSERS01.DBF
E:ORACLETRANS_TBSTEST.DBF
SQL> SELECT TABLE_NAME FROM USER_TABLES;
TABLE_NAME
------------------------------------------------------------
SYS_IMPORT_TRANSPORTABLE_01
SYS_IMPORT_TRANSPORTABLE_02
T
TT
SQL> select * from t;
ID
----------
1
SQL> select * from tt;
未选定行
SQL>
--==========================================
值得注意的是在target instance执行导出脚本时要以transport tablespace中的用户相连接,如果该用户不存在或者不以该用户连接都会出现错误:
SQL> drop user xys;
用户已删除。
SQL> @ E:oracletrans_tbstest_im
目录已创建。
目录已创建。
DECLARE
*
第 1 行出现错误:
ORA-06512: 在 "SYS.DBMS_STREAMS_TABLESPACE_ADM", line 2006
ORA-06512: 在 line 18
目录已删除。
目录已删除。
SQL> create user xys identified by manager
2 ;
用户已创建。
SQL> grant dba , connect, resource to xys;
授权成功。
SQL> show user
USER 为 "SYSTEM"
SQL> connect xys/manager
已连接。
SQL> @ E:oracletrans_tbstest_im
目录已创建。
目录已创建。
PL/SQL 过程已成功完成。
目录已删除。
目录已删除。
SQL>
10gR2rman backup as copy移动数据文件,非常方便!
发表人:warehouse | 发表时间: 2007年一月12日, 00:20
RMAN> CONNECT TARGET /
连接到目标数据库: UTF (DBID=1000919928)
RMAN> backup as copy tablespace 'TEST' format 'E:trans_tbsbaktt_copy_%U';
启动 backup 于 11-1月 -07
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=272 devtype=DISK
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00005 name=E:ORACLEPRODUCT10.2.0ORADATAUTFTEST.DBF
输出文件名 = E:TRANS_TBSBAKTT_COPY_DATA_D-UTF_I-1000919928_TS-TEST_FNO-5_0T
9ACF 标记 = TAG20070111T235558 recid = 21 时间戳 = 611625360
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01
完成 backup 于 11-1月 -07
启动 Control File and SPFILE Autobackup 于 11-1月 -07
段 handle=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFAUTOBACKUP2007_01_
O1_MF_S_611625360_2TDQJLH4_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 11-1月 -07
RMAN> switch tablespace 'TEST' TO COPY;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: switch to copy 命令 (在 01/11/2007 23:57:21 上) 失败
RMAN-06572: 数据库已打开且数据文件 5 没有处于脱机状态
RMAN> SQL 'ALTER DATABASE DATAFILE 5 OFFLINE';
sql 语句: ALTER DATABASE DATAFILE 5 OFFLINE
RMAN> switch tablespace 'TEST' TO COPY;
数据文件 5 已切换成数据文件副本 "E:TRANS_TBSBAKTT_COPY_DATA_D-UTF_I-100091992
8_TS-TEST_FNO-5_0TI79ACF"
RMAN> SQL 'ALTER DATABASE DATAFILE 5 onLINE';
sql 语句: ALTER DATABASE DATAFILE 5 onLINE
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: sql 命令 (default 通道上, 在 01/11/2007 23:59:27 上) 失败
RMAN-11003: 在分析/执行 SQL 语句期间失败: ALTER DATABASE DATAFILE 5 onLINE
ORA-01113: 文件 5 需要介质恢复
ORA-01110: 数据文件 5: 'E:TRANS_TBSBAKTT_COPY_DATA_D-UTF_I-1000919928_TS-TEST
_FNO-5_0TI79ACF'
RMAN> recover datafile 5;
启动 recover 于 11-1月 -07
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:04
完成 recover 于 11-1月 -07
RMAN> SQL 'ALTER DATABASE DATAFILE 5 onLINE';
sql 语句: ALTER DATABASE DATAFILE 5 onLINE
RMAN> backup as copy datafile 5 format 'E:trans_tbsbakTEST.DBF';
启动 backup 于 12-1月 -07
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00005 name=E:TRANS_TBSBAKTT_COPY_DATA_D-UTF_I-1000919928_TS-
TEST_FNO-5_0TI79ACF
输出文件名 = E:TRANS_TBSBAKTEST.DBF 标记 = TAG20070112T000117 recid = 23 时间
戳 = 611625678
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01
完成 backup 于 12-1月 -07
RMAN> SWITCH DATAFILE 5 TO COPY;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: switch to copy 命令 (在 01/12/2007 00:02:08 上) 失败
RMAN-06572: 数据库已打开且数据文件 5 没有处于脱机状态
RMAN> SQL 'ALTER DATABASE DATAFILE 5 OFFLINE';
sql 语句: ALTER DATABASE DATAFILE 5 OFFLINE
RMAN> SWITCH DATAFILE 5 TO COPY;
数据文件 5 已切换成数据文件副本 "E:TRANS_TBSBAKTEST.DBF"
RMAN> SQL 'ALTER DATABASE DATAFILE 5 ONLINE';
sql 语句: ALTER DATABASE DATAFILE 5 ONLINE
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: sql 命令 (default 通道上, 在 01/12/2007 00:03:07 上) 失败
RMAN-11003: 在分析/执行 SQL 语句期间失败: ALTER DATABASE DATAFILE 5 ONLINE
ORA-01113: 文件 5 需要介质恢复
ORA-01110: 数据文件 5: 'E:TRANS_TBSBAKTEST.DBF'
RMAN> RECOVER DATAFILE 5;
启动 recover 于 12-1月 -07
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:02
完成 recover 于 12-1月 -07
RMAN> SQL 'ALTER DATABASE DATAFILE 5 ONLINE';
sql 语句: ALTER DATABASE DATAFILE 5 ONLINE
RMAN> backup as copy tablespace 'TEST' FORMAT 'E:trans_tbsbaktest_tbs_copy_%U
';
启动 backup 于 12-1月 -07
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00005 name=E:TRANS_TBSBAKTEST.DBF
输出文件名 = E:TRANS_TBSBAKTEST_TBS_COPY_DATA_D-UTF_I-1000919928_TS-TEST_FNO-
5_10I79BAT 标记 = TAG20070112T001212 recid = 25 时间戳 = 611626333
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01
完成 backup 于 12-1月 -07
RMAN> SQL 'ALTER TABLESPACE TEST OFFLINE';
sql 语句: ALTER TABLESPACE TEST OFFLINE
RMAN> switch tablespace 'TEST' TO COPY;
数据文件 5 已切换成数据文件副本 "E:TRANS_TBSBAKTEST_TBS_COPY_DATA_D-UTF_I-100
0919928_TS-TEST_FNO-5_10I79BAT"
RMAN> SQL 'ALTER TABLESPACE TEST ONLINE';
sql 语句: ALTER TABLESPACE TEST ONLINE
结论:通过rman备份的方式移动数据文件应该说可以缩短传统拷贝datafile的时间,其他的我觉得没有什么,原理都一样!
利用TRANSPORT_TABLESPACE特性在同一db下不同用户之间迁移数据!
发表人:warehouse | 发表时间: 2007年一月09日, 21:34
参考文档:
http://www.itpub.net/showthread.php?s=&threadid=700445&perpage=10&pagenumber=2
SQL> select username , default_tablespace from dba_users where username='XYS';
USERNAME DEFAULT_TABLESPACE
------------------------------ --------------------
XYS USERS
SQL> select file_name , tablespace_name from dba_data_files;
FILE_NAME TABLESPACE_NAME
-------------------------------------------------- --------------------
E:ORACLEPRODUCT10.2.0ORADATAUTFSYSTEM01.DBF SYSTEM
E:ORACLEPRODUCT10.2.0ORADATAUTFUNDOTBS01.DBF UNDOTBS1
E:ORACLEPRODUCT10.2.0ORADATAUTFSYSAUX01.DBF SYSAUX
E:ORACLEPRODUCT10.2.0ORADATAUTFTEST.DBF TEST
E:ORACLEPRODUCT10.2.0ORADATAUTFUSERS01.DBF USERS
SQL> CREATE USER TEST IDENTIFIED BY TEST DEFAULT TABLESPACE TEST;
用户已创建。
SQL> GRANT DBA , CONNECT , RESOURCE TO TEST;
授权成功。
SQL> CONNECT XYS/MANAGER
已连接。
SQL> SELECT TABLE_NAME FROM USER_TABLES;
未选定行
SQL> CREATE TABLE T(ID INT) TABLESPACE USERS;
表已创建。
SQL> CREATE TABLE TT TABLESPACE USERS AS SELECT * FROM DBA_OBJECTS;
表已创建。
SQL> ALTER DATABASE DATAFILE 5 AUTOEXTEND ON;
数据库已更改。
SQL> ALTER TABLESPACE USERS READ ONLY;
表空间已更改。
SQL> HOST EXP 'SYS/SYSTEM AS SYSDBA' TRANSPORT_TABLESPACE=Y TABLESPACES=USERS FI
LE=C:TEST.DMP
Export: Release 10.2.0.1.0 - Production on 星期二 1月 9 21:12:34 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已导出 ZHS16GBK 字符集和 UTF8 NCHAR 字符集
服务器使用 UTF8 字符集 (可能的字符集转换)
注: 将不导出表数据 (行)
即将导出可传输的表空间元数据...
对于表空间 USERS...
. 正在导出簇定义
. 正在导出表定义
. . 正在导出表 T
. . 正在导出表 TT
. 正在导出引用完整性约束条件
. 正在导出触发器
. 结束导出可传输的表空间元数据
成功终止导出, 没有出现警告。
SQL> DRPO TABLESPACE INCLUDING CONTENTS;
SP2-0734: 未知的命令开头 "DRPO TABLE..." - 忽略了剩余的行。
SQL> DRPO TABLESPACE USERS INCLUDING CONTENTS;
SP2-0734: 未知的命令开头 "DRPO TABLE..." - 忽略了剩余的行。
SQL> drop TABLESPACE USERS INCLUDING CONTENTS;
drop TABLESPACE USERS INCLUDING CONTENTS
*
第 1 行出现错误:
ORA-12919: 不能删除默认永久表空间
SQL> alter database default tablespace test;
数据库已更改。
SQL> drop TABLESPACE USERS INCLUDING CONTENTS;
表空间已删除。
SQL> host imp 'sys/system as sysdba' transport_tablespace=y file=c:test.dmp fr
omuser=xys touser=test datafiles='E:oracleproduct10.2.0oradataUTFusers01.d
bf'
Import: Release 10.2.0.1.0 - Production on 星期二 1月 9 21:21:59 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
即将导入可传输的表空间元数据...
已经完成 ZHS16GBK 字符集和 UTF8 NCHAR 字符集中的导入
导入服务器使用 UTF8 字符集 (可能的字符集转换)
. 正在将 XYS 的对象导入到 TEST
. . 正在导入表 "T"
. . 正在导入表 "TT"
成功终止导入, 没有出现警告。
SQL> show user
USER 为 "SYS"
SQL> connect test/test
已连接。
SQL> select table_name from user_tables;
TABLE_NAME
------------------------------------------------------------
TT
T
SQL> col tablespace_name format a20
SQL> select file_name , tablespace_name from dba_data_files;
FILE_NAME TABLESPACE_NAME
-------------------------------------------------- --------------------
E:ORACLEPRODUCT10.2.0ORADATAUTFSYSTEM01.DBF SYSTEM
E:ORACLEPRODUCT10.2.0ORADATAUTFUNDOTBS01.DBF UNDOTBS1
E:ORACLEPRODUCT10.2.0ORADATAUTFSYSAUX01.DBF SYSAUX
E:ORACLEPRODUCT10.2.0ORADATAUTFTEST.DBF TEST
E:ORACLEPRODUCT10.2.0ORADATAUTFUSERS01.DBF USERS
SQL>
结论:我们看到用户xys下的表t,tt通过传输表空间的方式已经导入到了test下!感觉很不错!
理解Oracle9i中的监听动态注册
发表人:warehouse | 发表时间: 2007年一月07日, 10:05
出处:http://playwawa.itpub.net/post/2638/48257
理解Oracle9i中的监听动态注册
-->12月12日(星期一)
轉yaanzy 的東西
在Oracle9i中,使用命令lsnrctl status可以看到如下例子: Service "lrdb" has 2 instance(s). Instance "lrdb", status UNKNOWN, has 1 handler(s) for this service... Instance "lrdb", status READY, has 1 handler(s) for this service... 这是Oracle9i监听器行为的不同之处的第一个线索,因为Instance "lrdb"出现了两次。出现额外条目是因为,数据库在启动时通过一个被称为动态注册的进程在监听器中注册信息。相应地,如果数据库通过listener.ora 文件中的信息在监听器中注册数据库着称为静态注册。在上面的输出中,状态UNKNOWN值的时静态注册的设置。这是监听器用来表明它不知道关于该实例的任何信息的方式,只有当客户发出连接请求时,它才检查该实例是否存在。 动态注册的数据库通过状态信息中的状态READY或状态BLOCKED(对于一个备用数据库)来指明。不管何时数据库数据库关闭,动态注册的数据库都会动态地从监听器注销,而与之相关的信息将从状态列表中消失。这样,不管数据库是在运行还是已经关闭,监听器总是知道它的状态。该信息将被用于连接请求的回退(fallback)和负载平衡。自我注册功能是不能被关闭的(至少在任何可见的文档中是这样),由于该功能带来的好处,因此不能关闭它也并不是件坏事。当您可以免费获得数据库的自我注册功能时,为什么还需要listener.ora文件中的静态注册条目呢?您对此感到疑惑,是吗?答案是:除了几种例外情况外,您根本不需要执行静态注册。这样的结果是,只要使用默认的监听器端口1521,您就不再需要listener.ora文件。然而,当(且仅当)要把日志文件和跟踪信息保存到标准目录中时,您或许仍然会使用listener.ora文件。 下面是数据库的自我注册过程(假设在数据库启动之前,监听器已经启动并在正常运行)。无论何时启动一个数据库,默认地都有两条信息注册到监听器中:实例和服务。 注册到监听器中的实例值从init.ora文件中的instance_name参数取得。如果该参数没有设定值,那么它将取init.ora 文件中的db_name的值。在只有单个实例运行的情况下,您可以不必设置该参数,但最好将其设置为db_name的值,以充分利用动态注册功能。然后,如果在RAC中配置,您必须将集群中每个实例的instance_name参数设置为一个唯一的值。 注册到监听器中的服务值从init.ora文件中的参数service_names取得。如果该参数没有设定值,数据库将拼接 init.ora文件中的db_name和db_domain的值来注册自己。如果选择提供service_names值,您可以使用完全限定的名称(比如lrdb.oracle.com)或缩写的名称(比如lrdb)。如果选择缩写的名称并设置了db_domain参数,注册到监听器中的服务将是service_name值和db_domain值的拼接。例如下面的设置将导致服务lrdb.oracle.com 被注册到监听器中: db_domain=oracle.com service_name=lrdb 可选择的,您可以在service_names参数中指定多个服务值,值之间用逗号格开;这对于共享服务器配置是很有用的。如果需要执行连接时故障转移或负载均衡,或者想要在RAC中配置在实例之间透明地分布连接,那么使用service_names 参数将是必要的。为启用这些功能,您只需要将每个实例的数据库参数文件中的service_names设置为同一个值,并在客户端连接请求的service_name设置中引用该值。 为初始化参数service_names和instance_name设置显式的值是个很好的实践,尽管如果您没有设置它们,Oracle也会为动态注册而生成默认值(基于db_name和db_main)。这样做的原因是,如果监听器在数据库启动之后重新启动,其动态注册行为将会有一些微妙的区别.如果监听器在数据库运行之后重新启动,你们仅当您在init.ora文件中显式地设置了service_names和instance_name的值时,每个数据库的PMON进程才会在很短的时间之后自动注册数据库。如果没有显式设置service_names和instance_name的值,那么仅当数据库在监听器运行之后启动时,动态注册才会发生;在这种情况下,如果监听器后来发生了重启,动态注册信息将会丢失。 显然,最后在启动任何数据库之前启动服务器上的监听器,并完全避免监听器的重启。另外,您还可以在SQL*PLUS中使用ALTER SYSTEM REGISTER命令,在数据库打开时的任何时候,手工地在监听器中注册服务值。这个命令对于替换因监听器重启而丢失地服务值很有用,并且它所注册地值与在数据库启动时由动态注册所设置的值完全一样。 总而言之,Oracle9i通过listener.ora中的GLOBAL_DBNAME向外提供静态服务,通过PMON读初始化参数service_names、 instance_name向外提供动态(真实在运行的)服务。举例如下: listener.ora文件内容 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /oracle/product/9.2.0.4) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = lrdb) (ORACLE_HOME = /oracle/product/9.2.0.4) (SID_NAME = lrdb) ) (SID_DESC = (GLOBAL_DBNAME = gsid) (ORACLE_HOME = /oracle/product/9.2.0.4) (SID_NAME = lrdb) ) ) 该文件使得这个单实例的数据库lrdb,向外提供了两个服务:lrdb和gsid 初始化参数设置:instance_name=lrdb service_name=lrdb,gsid 所以动态注册时也会对外提供两个服务:lrdb和gsid 最后通过lsnrctl status看到的情况就是: Service "gsid" has 2 instance(s). Instance "lrdb", status UNKNOWN, has 1 handler(s) for this service... Instance "lrdb", status READY, has 1 handler(s) for this service... Service "lrdb" has 2 instance(s). Instance "lrdb", status UNKNOWN, has 1 handler(s) for this service... Instance "lrdb", status READY, has 1 handler(s) for this service... 对外提供的服务gsid和lrdb都有两个实例(一个静态注册一个动态注册),状态都分别是UNKNOWN和READY。 对于客户端来说,它不用关心数据库的名字、实例名到底是什么,它只需要知道数据库对外提供的服务名就行了,这个名字可能和实例名一样,也可能不一样。
block change tracking和rman通常增量备份方式的比较
发表人:warehouse | 发表时间: 2007年一月05日, 23:53
此贴来之网友wa0362,感觉很不错!
下面都是用level 0和level 1做得比较
在10g之前的版本,使用rman做增量备份,rman在做1级备份的时候怎么来确定0级备份之后都有哪些数据块做了修改呢?看下面一段
Each data block in a datafile contains a system change number (SCN), which is the
SCN at which the most recent change was made to the block. During an incremental
backup, RMAN reads the SCN of each data block in the input file and compares it to
the checkpoint SCN of the parent incremental backup. If the SCN in the input data
block is greater than or equal to the checkpoint SCN of the parent, then RMAN copies
the block.
也就是说在做level 1级备份的时候,需要扫描所有的数据块并且用块中记录修改的SCN跟level 0备份时的SCN做比较,来确定什么是需要备份的。
所以扫描整个数据文件是不可避免的 !
Block change tracking是Oracle10g的一个新特性,Block change tracking进程记录自从上一次备份以来数据块的变化,并把这些信息记录在跟踪文件中。RMAN使用这个文件判断增量备份中需要备份的变更数据。这极大的促进了备份性能,RMAN可以不再扫描整个文件以查找变更数据。
RMAN's change tracking feature for incremental backups improves incremental
backup performance by recording changed blocks in each datafile in a change tracking
file. If change tracking is enabled, RMAN uses the change tracking file to identify
changed blocks for incremental backup, thus avoiding the need to scan every block in
the datafile.
估计又是使用的位图!没找到依据呢,看书不太仔细。
让我们来对它们的速度做一下测试,
不使用block change tracking,看看备份需要的时间
首先关闭block change tracking
SQL> select status from v$block_change_tracking;
STATUS
----------
DISABLED
然后让我们来做个0级增量备份,和一个1级备份,注意它们使用的时间
RMAN> backup incremental level 0 format='d:orabackup%d_%s.dbf'
2> database;
启动 backup 于 17-7月 -05
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动增量级别 0 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSTEM01.DBF
输入数据文件 fno=00003 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSAUX01.DBF
输入数据文件 fno=00005 name=D:ORACLEPRODUCT10.1.0ORADATAORCLEXAMPLE01.DBF
输入数据文件 fno=00002 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUNDOTBS01.DBF
输入数据文件 fno=00004 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUSERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:ORABACKUPORCL_15.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:26
通道 ORA_DISK_1: 启动增量级别 0 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:ORABACKUPORCL_16.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:05
完成 backup 于 17-7月 –05
RMAN> backup incremental level 1 format='d:orabackup%d_%s_1level.dbf'
2> database;
启动 backup 于 17-7月 -05
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动增量级别 1 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSTEM01.DBF
输入数据文件 fno=00003 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSAUX01.DBF
输入数据文件 fno=00005 name=D:ORACLEPRODUCT10.1.0ORADATAORCLEXAMPLE01.DBF
输入数据文件 fno=00002 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUNDOTBS01.DBF
输入数据文件 fno=00004 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUSERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:ORABACKUPORCL_17_1LEVEL.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:35
通道 ORA_DISK_1: 启动增量级别 1 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:ORABACKUPORCL_18_1LEVEL.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:06
完成 backup 于 17-7月 –05
level 0备份后其实我根本就没有对数据库做什么更改,level 1备份居然也使用了35秒
--==================================
然后让我们把block change tracking启用后测试一下level 1需要的时间。
SQL>alter database enable block change tracking using
2 file 'D:oracleproduct10.1.0flash_recovery_areaORCLFLASHBACK BLOCK_CHANGE_TRACE.LOG';
我使用的是安装的时候默认的数据库,这个记录文件大概为十几M.除了用位图,别的方式应该没办法这么多快好省的记录数据块的变化了
SQL> alter database enable block change tracking;
数据库已更改
先删除原来的备份
RMAN> delete backupset 14;
RMAN> delete backupset 12;
让我们做备份测试一下,注意看它们完成所用的时间
RMAN> backup incremental level 0 format='d:orabackup%d_%s_test_level0.dbf'
2> database;
启动 backup 于 17-7月 -05
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动增量级别 0 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSTEM01.DBF
输入数据文件 fno=00003 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSAUX01.DBF
输入数据文件 fno=00005 name=D:ORACLEPRODUCT10.1.0ORADATAORCLEXAMPLE01.DBF
输入数据文件 fno=00002 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUNDOTBS01.DBF
输入数据文件 fno=00004 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUSERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:ORABACKUPORCL_19_TEST_LEVEL0.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:26
通道 ORA_DISK_1: 启动增量级别 0 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:ORABACKUPORCL_20_TEST_LEVEL0.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:05
完成 backup 于 17-7月 –05
再做level 1
RMAN> backup incremental level 1 format='d:orabackup%d_%s_test_level1.dbf'
2> database;
启动 backup 于 17-7月 -05
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动增量级别 1 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSTEM01.DBF
输入数据文件 fno=00003 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSAUX01.DBF
输入数据文件 fno=00005 name=D:ORACLEPRODUCT10.1.0ORADATAORCLEXAMPLE01.DBF
输入数据文件 fno=00002 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUNDOTBS01.DBF
输入数据文件 fno=00004 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUSERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:ORABACKUPORCL_21_TEST_LEVEL1.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:07
通道 ORA_DISK_1: 启动增量级别 1 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:ORABACKUPORCL_22_TEST_LEVEL1.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:05
完成 backup 于 17-7月 –05
显然level 1备份用了7秒就完成了,比起没有启用block change tracking快了几倍
block change tracking和rman通常增量备份方式的比较
发表人:warehouse | 发表时间: 2007年一月05日, 23:53
此贴来之网友wa0362,感觉很不错!
下面都是用level 0和level 1做得比较
在10g之前的版本,使用rman做增量备份,rman在做1级备份的时候怎么来确定0级备份之后都有哪些数据块做了修改呢?看下面一段
Each data block in a datafile contains a system change number (SCN), which is the
SCN at which the most recent change was made to the block. During an incremental
backup, RMAN reads the SCN of each data block in the input file and compares it to
the checkpoint SCN of the parent incremental backup. If the SCN in the input data
block is greater than or equal to the checkpoint SCN of the parent, then RMAN copies
the block.
也就是说在做level 1级备份的时候,需要扫描所有的数据块并且用块中记录修改的SCN跟level 0备份时的SCN做比较,来确定什么是需要备份的。
所以扫描整个数据文件是不可避免的 !
Block change tracking是Oracle10g的一个新特性,Block change tracking进程记录自从上一次备份以来数据块的变化,并把这些信息记录在跟踪文件中。RMAN使用这个文件判断增量备份中需要备份的变更数据。这极大的促进了备份性能,RMAN可以不再扫描整个文件以查找变更数据。
RMAN's change tracking feature for incremental backups improves incremental
backup performance by recording changed blocks in each datafile in a change tracking
file. If change tracking is enabled, RMAN uses the change tracking file to identify
changed blocks for incremental backup, thus avoiding the need to scan every block in
the datafile.
估计又是使用的位图!没找到依据呢,看书不太仔细。
让我们来对它们的速度做一下测试,
不使用block change tracking,看看备份需要的时间
首先关闭block change tracking
SQL> select status from v$block_change_tracking;
STATUS
----------
DISABLED
然后让我们来做个0级增量备份,和一个1级备份,注意它们使用的时间
RMAN> backup incremental level 0 format='d:orabackup%d_%s.dbf'
2> database;
启动 backup 于 17-7月 -05
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动增量级别 0 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSTEM01.DBF
输入数据文件 fno=00003 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSAUX01.DBF
输入数据文件 fno=00005 name=D:ORACLEPRODUCT10.1.0ORADATAORCLEXAMPLE01.DBF
输入数据文件 fno=00002 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUNDOTBS01.DBF
输入数据文件 fno=00004 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUSERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:ORABACKUPORCL_15.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:26
通道 ORA_DISK_1: 启动增量级别 0 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:ORABACKUPORCL_16.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:05
完成 backup 于 17-7月 –05
RMAN> backup incremental level 1 format='d:orabackup%d_%s_1level.dbf'
2> database;
启动 backup 于 17-7月 -05
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动增量级别 1 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSTEM01.DBF
输入数据文件 fno=00003 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSAUX01.DBF
输入数据文件 fno=00005 name=D:ORACLEPRODUCT10.1.0ORADATAORCLEXAMPLE01.DBF
输入数据文件 fno=00002 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUNDOTBS01.DBF
输入数据文件 fno=00004 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUSERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:ORABACKUPORCL_17_1LEVEL.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:35
通道 ORA_DISK_1: 启动增量级别 1 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:ORABACKUPORCL_18_1LEVEL.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:06
完成 backup 于 17-7月 –05
level 0备份后其实我根本就没有对数据库做什么更改,level 1备份居然也使用了35秒
--==================================
然后让我们把block change tracking启用后测试一下level 1需要的时间。
SQL>alter database enable block change tracking using
2 file 'D:oracleproduct10.1.0flash_recovery_areaORCLFLASHBACK BLOCK_CHANGE_TRACE.LOG';
我使用的是安装的时候默认的数据库,这个记录文件大概为十几M.除了用位图,别的方式应该没办法这么多快好省的记录数据块的变化了
SQL> alter database enable block change tracking;
数据库已更改
先删除原来的备份
RMAN> delete backupset 14;
RMAN> delete backupset 12;
让我们做备份测试一下,注意看它们完成所用的时间
RMAN> backup incremental level 0 format='d:orabackup%d_%s_test_level0.dbf'
2> database;
启动 backup 于 17-7月 -05
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动增量级别 0 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSTEM01.DBF
输入数据文件 fno=00003 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSAUX01.DBF
输入数据文件 fno=00005 name=D:ORACLEPRODUCT10.1.0ORADATAORCLEXAMPLE01.DBF
输入数据文件 fno=00002 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUNDOTBS01.DBF
输入数据文件 fno=00004 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUSERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:ORABACKUPORCL_19_TEST_LEVEL0.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:26
通道 ORA_DISK_1: 启动增量级别 0 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:ORABACKUPORCL_20_TEST_LEVEL0.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:05
完成 backup 于 17-7月 –05
再做level 1
RMAN> backup incremental level 1 format='d:orabackup%d_%s_test_level1.dbf'
2> database;
启动 backup 于 17-7月 -05
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动增量级别 1 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSTEM01.DBF
输入数据文件 fno=00003 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSAUX01.DBF
输入数据文件 fno=00005 name=D:ORACLEPRODUCT10.1.0ORADATAORCLEXAMPLE01.DBF
输入数据文件 fno=00002 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUNDOTBS01.DBF
输入数据文件 fno=00004 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUSERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:ORABACKUPORCL_21_TEST_LEVEL1.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:07
通道 ORA_DISK_1: 启动增量级别 1 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:ORABACKUPORCL_22_TEST_LEVEL1.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:05
完成 backup 于 17-7月 –05
显然level 1备份用了7秒就完成了,比起没有启用block change tracking快了几倍
通过rman恢复到同一服务器上不同目录的大致过程!
发表人:warehouse | 发表时间: 2007年一月05日, 23:46
RMAN> list backup;
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
239 Full 191M DISK 00:00:32 03-6月 -04
BP 关键字: 240 状态: AVAILABLE 标记:TAG20040603T002518
段名:C:ORACLEORA92DATABASE2FNBOBE_1_1
包含的 SPFILE: 修改时间: 02-6月 -04
备份集 239 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 Full 50848 03-6月 -04 C:ORACLEORADATALMTSYSTEM01.DBF
2 Full 50848 03-6月 -04 C:ORACLEORADATALMTUNDOTBS01.DBF
RMAN> list backup of spfile summary;
备份列表
===============
关键字 TY LV S 设备类型 完成时间 段数 副本数 标记
------- -- -- - ----------- ---------- ------- ------- ---
239 B F A DISK 03-6月 -04 1 1 TAG20040603T002518
启动到nomount
RMAN> restore controlfile to 'c:oracleoradatatestCONTROL01.CTL';
启动 restore 于 03-6月 -04
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在恢复控制文件
输出文件名=C:ORACLEORADATATESTCONTROL01.CTL
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=C:ORACLEORA92DATABASE2FNBOBE_1_1 tag=TAG20040603T002518 params=NU
LL
通道 ORA_DISK_1: 恢复完成
完成 restore 于 03-6月 -04
RMAN> restore controlfile to 'c:oracleoradatatestCONTROL02.CTL';
启动 restore 于 03-6月 -04
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在恢复控制文件
输出文件名=C:ORACLEORADATATESTCONTROL02.CTL
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=C:ORACLEORA92DATABASE2FNBOBE_1_1 tag=TAG20040603T002518 params=NU
LL
通道 ORA_DISK_1: 恢复完成
完成 restore 于 03-6月 -04
RMAN> restore controlfile to 'c:oracleoradatatestCONTROL03.CTL';
启动 restore 于 03-6月 -04
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在恢复控制文件
输出文件名=C:ORACLEORADATATESTCONTROL03.CTL
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=C:ORACLEORA92DATABASE2FNBOBE_1_1 tag=TAG20040603T002518 params=NU
LL
通道 ORA_DISK_1: 恢复完成
完成 restore 于 03-6月 -04
修改spfile中的控制文件的新位置
启动到mount
RMAN> exit
恢复管理器完成。
C:>rman catalog rman/rman@dmt target sys/system@lmt
恢复管理器: 版本9.2.0.1.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
连接到目标数据库: LMT (DBID=2004730922)
连接到恢复目录数据库
RMAN> run {
2> set newname for datafile 'c:oracleoradatalmtsystem01.dbf' to 'c:oracleo
radatatestsystem01.dbf';
3> set newname for datafile 'c:oracleoradatalmtundotbs01.dbf' to 'c:oracle
oradatatestundotbs01.dbf';
4> restore database;
5> switch datafile all;
6> recover database;
7> }
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
启动 restore 于 03-6月 -04
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=10 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到C:ORACLEORADATATESTSYSTEM01.DBF
正将数据文件00002恢复到C:ORACLEORADATATESTUNDOTBS01.DBF
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=C:ORACLEORA92DATABASE2FNBOBE_1_1 tag=TAG20040603T002518 params=NU
LL
通道 ORA_DISK_1: 恢复完成
完成 restore 于 03-6月 -04
数据文件 1 已转换成数据文件副本
输入数据文件副本 recid=3 stamp=527847190 文件名=C:ORACLEORADATATESTSYSTEM01.
DBF
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=4 stamp=527847190 文件名=C:ORACLEORADATATESTUNDOTBS01
.DBF
启动 recover 于 03-6月 -04
使用通道 ORA_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 234 已作为文件 C:ORACLEORADATALMTREDO03.LOG 存在于磁盘上
存档日志文件名 =C:ORACLEORADATALMTREDO03.LOG 线程 =1 序列 =234
完成介质的恢复
完成 recover 于 03-6月 -04
RMAN> alter database open;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of alter db command at 06/03/2004 08:13:37
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
RMAN> alter database open resetlogs;
数据库已打开
在恢复目录中注册的数据库的新实体化
正在启动全部恢复目录的 resync
完成全部 resync
RMAN>
通过rman在同一台机器上搭建standby大致过程!
发表人:warehouse | 发表时间: 2007年一月05日, 23:44
c:set oracle_sid=stby
C:>rman target sys/system@orcl nocatalog
恢复管理器: 版本9.2.0.1.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
连接到目标数据库: ORCL (DBID=1126185633)
正在使用目标数据库控制文件替代恢复目录
RMAN> connect auxiliary /
已连接到备用数据库: orcl (未安装)
RMAN> duplicate target database for standby dorecover nofilenamecheck;
启动 Duplicate Db 于 07-9月 -06
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=9 devtype=DISK
正在打印存储的脚本: Memory Script
{
restore clone standby controlfile to clone_cf;
replicate clone controlfile from clone_cf;
sql clone 'alter database mount standby database';
}
正在执行脚本: Memory Script
启动 restore 于 07-9月 -06
使用通道 ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_AUX_DISK_1: 正在恢复控制文件
输出文件名=C:ORACLEORADATASTBYCONTROL01.CTL
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段 handle=C:ORACLEORA92DATABASE1HSNE4R_1_1 tag=TAG20060907T202706 params=NU
LL
通道 ORA_AUX_DISK_1: 恢复完成
完成 restore 于 07-9月 -06
正在复制控制文件
输出文件名=C:ORACLEORADATASTBYCONTROL01.CTL
输出文件名=C:ORACLEORADATASTBYCONTROL02.CTL
sql 语句: alter database mount standby database
正在打印存储的脚本: Memory Script
{
set until scn 500906;
set newname for datafile 1 to
"C:ORACLEORADATASTBYSYSTEM01.DBF";
set newname for datafile 2 to
"C:ORACLEORADATASTBYUNDOTBS01.DBF";
set newname for datafile 3 to
"C:ORACLEORADATASTBYUSERS01.DBF";
restore
check readonly
clone database
;
}
正在执行脚本: Memory Script
正在执行命令: SET until clause
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
启动 restore 于 07-9月 -06
使用通道 ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_AUX_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到C:ORACLEORADATASTBYSYSTEM01.DBF
正将数据文件00002恢复到C:ORACLEORADATASTBYUNDOTBS01.DBF
正将数据文件00003恢复到C:ORACLEORADATASTBYUSERS01.DBF
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段 handle=C:ORACLEORA92DATABASE1HSNE4R_1_1 tag=TAG20060907T202706 params=NU
LL
通道 ORA_AUX_DISK_1: 恢复完成
完成 restore 于 07-9月 -06
正在打印存储的脚本: Memory Script
{
switch clone datafile all;
}
正在执行脚本: Memory Script
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=4 stamp=600555010 文件名=C:ORACLEORADATASTBYUNDOTBS01
.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 recid=5 stamp=600555010 文件名=C:ORACLEORADATASTBYUSERS01.D
BF
正在打印存储的脚本: Memory Script
{
set until scn 500906;
recover
standby
clone database
delete archivelog
;
}
正在执行脚本: Memory Script
正在执行命令: SET until clause
启动 recover 于 07-9月 -06
使用通道 ORA_AUX_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 459 已作为文件 C:ORACLEORADATAORCLARCHLOGARC00459.001
存在于磁盘上
存档日志线程 1 序列 460 已作为文件 C:ORACLEORADATAORCLARCHLOGARC00460.001
存在于磁盘上
存档日志文件名 =C:ORACLEORADATAORCLARCHLOGARC00459.001 线程 =1 序列 =459
存档日志文件名 =C:ORACLEORADATAORCLARCHLOGARC00460.001 线程 =1 序列 =460
完成介质的恢复
完成 recover 于 07-9月 -06
完成 Duplicate Db 于 07-9月 -06
RMAN>
查看全文
通过rman duplicate database!
发表人:warehouse | 发表时间: 2007年一月05日, 23:40
注意:没有catalog也可以duplicate
要确保一个database full backup!
9i 下大致过程!
C:>rman catalog rman/rman@dmt target sys/system@lmt
恢复管理器: 版本9.2.0.1.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
连接到目标数据库: LMT (DBID=2004730922)
连接到恢复目录数据库
RMAN> run {
2> set newname for datafile 1 to 'c:oracleoradatadupsystem01.dbf';
3> set newname for datafile 2 to 'c:oracleoradatadupundotbs01.dbf';
4> duplicate target database to dup
5> pfile='c:oracleadminduppfileinit.ora'
6> logfile
7> 'c:oracleoradatadupredo01.log' size 1m,
8> 'c:oracleoradatadupredo02.log' size 1m,
9> 'c:oracleoradatadupredo03.log' size 1m;
10> }
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
启动 Duplicate Db 于 03-6月 -06
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 06/03/2006 20:39:38
RMAN-06174: not connected to auxiliary database
RMAN> connect auxiliary sys/system@dup
已连接到备用数据库: DUP (未安装)
RMAN> run {
2> set newname for datafile 1 to 'c:oracleoradatadupsystem01.dbf';
3> set newname for datafile 2 to 'c:oracleoradatadupundotbs01.dbf';
4> duplicate target database to dup
5> pfile='c:oracleadminduppfileinit.ora'
6> logfile
7> 'c:oracleoradatadupredo01.log' size 1m,
8> 'c:oracleoradatadupredo02.log' size 1m,
9> 'c:oracleoradatadupredo03.log' size 1m;
10> }
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
启动 Duplicate Db 于 03-6月 -06
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=10 devtype=DISK
正在打印存储的脚本: Memory Script
{
set until scn 51885;
set newname for datafile 1 to
"C:ORACLEORADATADUPSYSTEM01.DBF";
set newname for datafile 2 to
"C:ORACLEORADATADUPUNDOTBS01.DBF";
restore
check readonly
clone database
;
}
正在执行脚本: Memory Script
正在执行命令: SET until clause
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
启动 restore 于 03-6月 -06
使用通道 ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_AUX_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到C:ORACLEORADATADUPSYSTEM01.DBF
正将数据文件00002恢复到C:ORACLEORADATADUPUNDOTBS01.DBF
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段 handle=C:ORACLEORA92DATABASE8HKNE2A_1_1 tag=TAG20060603T181538 params=NU
LL
通道 ORA_AUX_DISK_1: 恢复完成
完成 restore 于 03-6月 -06
sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "dup" RESETLOGS ARCHIVELOG
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 453
LOGFILE
GROUP 1 'c:oracleoradatadupredo01.log' SIZE 1048576 ,
GROUP 2 'c:oracleoradatadupredo02.log' SIZE 1048576 ,
GROUP 3 'c:oracleoradatadupredo03.log' SIZE 1048576
DATAFILE
'C:ORACLEORADATADUPSYSTEM01.DBF'
CHARACTER SET ZHS16GBK
正在打印存储的脚本: Memory Script
{
switch clone datafile all;
}
正在执行脚本: Memory Script
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=1 stamp=592173637 文件名=C:ORACLEORADATADUPUNDOTBS01.
DBF
正在打印存储的脚本: Memory Script
{
set until scn 51885;
recover
clone database
delete archivelog
;
}
正在执行脚本: Memory Script
正在执行命令: SET until clause
启动 recover 于 03-6月 -06
使用通道 ORA_AUX_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 2 已作为文件 C:ORACLEORA92RDBMSARC00002.001 存在于磁盘上
存档日志文件名 =C:ORACLEORA92RDBMSARC00002.001 线程 =1 序列 =2
完成介质的恢复
完成 recover 于 03-6月 -06
正在打印存储的脚本: Memory Script
{
shutdown clone;
startup clone nomount pfile= 'c:oracleadminduppfileinit.ora';
}
正在执行脚本: Memory Script
数据库已卸载
Oracle 例程已关闭
已连接到备用数据库 (未启动)
Oracle 例程已启动
系统全局区域总计 101784276 字节
Fixed Size 453332 字节
Variable Size 75497472 字节
Database Buffers 25165824 字节
Redo Buffers 667648 字节
sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "dup" RESETLOGS ARCHIVELOG
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 453
LOGFILE
GROUP 1 'c:oracleoradatadupredo01.log' SIZE 1048576 ,
GROUP 2 'c:oracleoradatadupredo02.log' SIZE 1048576 ,
GROUP 3 'c:oracleoradatadupredo03.log' SIZE 1048576
DATAFILE
'C:ORACLEORADATADUPSYSTEM01.DBF'
CHARACTER SET ZHS16GBK
正在打印存储的脚本: Memory Script
{
catalog clone datafilecopy "C:ORACLEORADATADUPUNDOTBS01.DBF";
switch clone datafile all;
}
正在执行脚本: Memory Script
已将数据文件副本列入目录
数据文件副本 filename=C:ORACLEORADATADUPUNDOTBS01.DBF recid=1 stamp=59217380
1
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=1 stamp=592173801 文件名=C:ORACLEORADATADUPUNDOTBS01.
DBF
正在打印存储的脚本: Memory Script
{
Alter clone database open resetlogs;
}
正在执行脚本: Memory Script
数据库已打开
完成 Duplicate Db 于 03-6月 -06
RMAN>
--==============================================
10g下大致过程:
duplicate database时没有catalog也行!
C:>rman target sys/system@orcl catalog rman/rman@test auxiliary sys/system@dup
恢复管理器: Release 10.2.0.1.0 - Production on 星期一 12月 25 14:09:14 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: ORCL (DBID=1136768294)
连接到恢复目录数据库
已连接到辅助数据库: DUP (未装载)
RMAN> run{
2> set newname for datafile 1 to 'E:ORACLEPRODUCT10.2.0ORADATAdupSYSTEM01.
DBF';
3> set newname for datafile 2 to 'E:ORACLEPRODUCT10.2.0ORADATAdupUNDOTBS01
.DBF';
4> set newname for datafile 3 to 'E:ORACLEPRODUCT10.2.0ORADATAdupSYSAUX01.
DBF';
5> set newname for datafile 4 to 'E:ORACLEPRODUCT10.2.0ORADATAdupUSERS01.D
BF';
6> set newname for datafile 5 to 'E:ORACLEPRODUCT10.2.0ORADATAdupTEST.DBF'
;
7> set newname for datafile 8 to 'E:ORACLEPRODUCT10.2.0ORADATAdupTEST3.DBF
';
8> duplicate target database to dup skip tablespace test1
9> logfile
10> 'E:ORACLEPRODUCT10.2.0ORADATAdupredo01.log' size 10m,
11> 'E:ORACLEPRODUCT10.2.0ORADATAdupredo02.log' size 10m,
12> 'E:ORACLEPRODUCT10.2.0ORADATAdupredo03.log' size 10m;
13> }
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
启动 Duplicate Db 于 25-12月-06
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=24 devtype=DISK
根据请求跳过数据文件 6
根据请求跳过数据文件 7
内存脚本的内容:
{
set until scn 742507;
set newname for datafile 1 to
"E:ORACLEPRODUCT10.2.0ORADATADUPSYSTEM01.DBF";
set newname for datafile 2 to
"E:ORACLEPRODUCT10.2.0ORADATADUPUNDOTBS01.DBF";
set newname for datafile 3 to
"E:ORACLEPRODUCT10.2.0ORADATADUPSYSAUX01.DBF";
set newname for datafile 4 to
"E:ORACLEPRODUCT10.2.0ORADATADUPUSERS01.DBF";
set newname for datafile 5 to
"E:ORACLEPRODUCT10.2.0ORADATADUPTEST.DBF";
set newname for datafile 8 to
"E:ORACLEPRODUCT10.2.0ORADATADUPTEST3.DBF";
restore
check readonly
clone database
skip tablespace TEST1 ;
}
正在执行内存脚本
正在执行命令: SET until clause
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
启动 restore 于 25-12月-06
使用通道 ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_AUX_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到E:ORACLEPRODUCT10.2.0ORADATADUPSYSTEM01.DBF
正将数据文件00002恢复到E:ORACLEPRODUCT10.2.0ORADATADUPUNDOTBS01.DBF
正将数据文件00003恢复到E:ORACLEPRODUCT10.2.0ORADATADUPSYSAUX01.DBF
正将数据文件00004恢复到E:ORACLEPRODUCT10.2.0ORADATADUPUSERS01.DBF
正将数据文件00005恢复到E:ORACLEPRODUCT10.2.0ORADATADUPTEST.DBF
正将数据文件00008恢复到E:ORACLEPRODUCT10.2.0ORADATADUPTEST3.DBF
通道 ORA_AUX_DISK_1: 正在读取备份段 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREA
ORCLBACKUPSET2006_12_23O1_MF_NNNDF_TAG20061223T164719_2RSV8VM1_.BKP
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段句柄 = E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAORCLBACKUPSET2006_12_23
O1_MF_NNNDF_TAG20061223T164719_2RSV8VM1_.BKP 标记 = TAG20061223T164719
通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:00:55
完成 restore 于 25-12月-06
sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "DUP" RESETLOGS ARCHIVELOG
MAXLOGFILES 4220
MAXLOGMEMBERS 5
MAXDATAFILES 65534
MAXINSTANCES 1055
MAXLOGHISTORY 10225
LOGFILE
GROUP 1 'E:ORACLEPRODUCT10.2.0ORADATAdupredo01.log' SIZE 10 M ,
GROUP 2 'E:ORACLEPRODUCT10.2.0ORADATAdupredo02.log' SIZE 10 M ,
GROUP 3 'E:ORACLEPRODUCT10.2.0ORADATAdupredo03.log' SIZE 10 M
DATAFILE
'E:ORACLEPRODUCT10.2.0ORADATADUPSYSTEM01.DBF'
CHARACTER SET ZHS16GBK
内存脚本的内容:
{
switch clone datafile all;
}
正在执行内存脚本
释放的通道: ORA_AUX_DISK_1
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=1 stamp=610121450 文件名=E:ORACLEPRODUCT10.2.0ORADATA
DUPUNDOTBS01.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 recid=2 stamp=610121450 文件名=E:ORACLEPRODUCT10.2.0ORADATA
DUPSYSAUX01.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 recid=3 stamp=610121450 文件名=E:ORACLEPRODUCT10.2.0ORADATA
DUPUSERS01.DBF
数据文件 5 已转换成数据文件副本
输入数据文件副本 recid=4 stamp=610121450 文件名=E:ORACLEPRODUCT10.2.0ORADATA
DUPTEST.DBF
数据文件 8 已转换成数据文件副本
输入数据文件副本 recid=5 stamp=610121450 文件名=E:ORACLEPRODUCT10.2.0ORADATA
DUPTEST3.DBF
内存脚本的内容:
{
set until scn 742507;
recover
clone database
delete archivelog
;
}
正在执行内存脚本
正在执行命令: SET until clause
启动 recover 于 25-12月-06
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=23 devtype=DISK
数据文件6未被处理, 因为文件已脱机
数据文件7未被处理, 因为文件已脱机
正在开始介质的恢复
存档日志线程 1 序列 5 已作为文件 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAOR
CLARCHIVELOG2006_12_24O1_MF_1_5_2RVZ8K8S_.ARC 存在于磁盘上
存档日志线程 1 序列 6 已作为文件 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAOR
CLARCHIVELOG2006_12_25O1_MF_1_6_2RYQRF0Z_.ARC 存在于磁盘上
存档日志文件名 =E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAORCLARCHIVELOG200
6_12_24O1_MF_1_5_2RVZ8K8S_.ARC 线程 =1 序列 =5
存档日志文件名 =E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAORCLARCHIVELOG200
6_12_25O1_MF_1_6_2RYQRF0Z_.ARC 线程 =1 序列 =6
介质恢复完成, 用时: 00:00:10
完成 recover 于 25-12月-06
内存脚本的内容:
{
shutdown clone;
startup clone nomount ;
}
正在执行内存脚本
数据库已卸载
Oracle 实例已关闭
已连接到辅助数据库 (未启动)
Oracle 实例已启动
系统全局区域总计 167772160 字节
Fixed Size 1247900 字节
Variable Size 58721636 字节
Database Buffers 104857600 字节
Redo Buffers 2945024 字节
sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "DUP" RESETLOGS ARCHIVELOG
MAXLOGFILES 4220
MAXLOGMEMBERS 5
MAXDATAFILES 65534
MAXINSTANCES 1055
MAXLOGHISTORY 10225
LOGFILE
GROUP 1 'E:ORACLEPRODUCT10.2.0ORADATAdupredo01.log' SIZE 10 M ,
GROUP 2 'E:ORACLEPRODUCT10.2.0ORADATAdupredo02.log' SIZE 10 M ,
GROUP 3 'E:ORACLEPRODUCT10.2.0ORADATAdupredo03.log' SIZE 10 M
DATAFILE
'E:ORACLEPRODUCT10.2.0ORADATADUPSYSTEM01.DBF'
CHARACTER SET ZHS16GBK
内存脚本的内容:
{
catalog clone datafilecopy "E:ORACLEPRODUCT10.2.0ORADATADUPUNDOTBS01.D
BF";
catalog clone datafilecopy "E:ORACLEPRODUCT10.2.0ORADATADUPSYSAUX01.DB
F";
catalog clone datafilecopy "E:ORACLEPRODUCT10.2.0ORADATADUPUSERS01.DBF
";
catalog clone datafilecopy "E:ORACLEPRODUCT10.2.0ORADATADUPTEST.DBF";
catalog clone datafilecopy "E:ORACLEPRODUCT10.2.0ORADATADUPTEST3.DBF";
switch clone datafile all;
}
正在执行内存脚本
已将数据文件副本列入目录
数据文件副本 filename=E:ORACLEPRODUCT10.2.0ORADATADUPUNDOTBS01.DBF recid=1
stamp=610122070
已将数据文件副本列入目录
数据文件副本 filename=E:ORACLEPRODUCT10.2.0ORADATADUPSYSAUX01.DBF recid=2
stamp=610122072
已将数据文件副本列入目录
数据文件副本 filename=E:ORACLEPRODUCT10.2.0ORADATADUPUSERS01.DBF recid=3 s
tamp=610122073
已将数据文件副本列入目录
数据文件副本 filename=E:ORACLEPRODUCT10.2.0ORADATADUPTEST.DBF recid=4 stam
p=610122074
已将数据文件副本列入目录
数据文件副本 filename=E:ORACLEPRODUCT10.2.0ORADATADUPTEST3.DBF recid=5 sta
mp=610122076
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=1 stamp=610122070 文件名=E:ORACLEPRODUCT10.2.0ORADATA
DUPUNDOTBS01.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 recid=2 stamp=610122072 文件名=E:ORACLEPRODUCT10.2.0ORADATA
DUPSYSAUX01.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 recid=3 stamp=610122073 文件名=E:ORACLEPRODUCT10.2.0ORADATA
DUPUSERS01.DBF
数据文件 5 已转换成数据文件副本
输入数据文件副本 recid=4 stamp=610122074 文件名=E:ORACLEPRODUCT10.2.0ORADATA
DUPTEST.DBF
数据文件 8 已转换成数据文件副本
输入数据文件副本 recid=5 stamp=610122076 文件名=E:ORACLEPRODUCT10.2.0ORADATA
DUPTEST3.DBF
内存脚本的内容:
{
Alter clone database open resetlogs;
}
正在执行内存脚本
数据库已打开
内存脚本的内容:
{
# drop offline and skipped tablespaces
sql clone "drop tablespace TEST1 including contents cascade constraints";
}
正在执行内存脚本
sql 语句: drop tablespace TEST1 including contents cascade constraints
完成 Duplicate Db 于 25-12月-06
RMAN>
rman不做0级备份,可以直接做其他级别的incremental 备份,其本质还是先做0级备份!
发表人:warehouse | 发表时间: 2007年一月05日, 23:38
从试验的结果看,不做0级备份,也可以做其他级别的备份,其本质还是首先要做0级备份,之后再做指定级别的增量备份,这一点从恢复能看的出来,从备份集大小也能看出来,但是list backup显示的级别是看不出来的!
RMAN> list backup;
RMAN> backup as compressed backupset incremental level 2 database;
启动 backup 于 05-1月 -07
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动压缩的增量级别 2 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=E:ORACLEPRODUCT10.2.0ORADATAUTFSYSTEM01.DBF
输入数据文件 fno=00003 name=E:ORACLEPRODUCT10.2.0ORADATAUTFSYSAUX01.DBF
输入数据文件 fno=00002 name=E:ORACLEPRODUCT10.2.0ORADATAUTFUNDOTBS01.DBF
输入数据文件 fno=00004 name=E:ORACLEPRODUCT10.2.0ORADATAUTFUSERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 05-1月 -07
通道 ORA_DISK_1: 已完成段 1 于 05-1月 -07
段句柄=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01_05O1_
MF_NNND2_TAG20070105T193321_2SWFW2SD_.BKP 标记=TAG20070105T193321 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:55
通道 ORA_DISK_1: 启动压缩的增量级别 2 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 05-1月 -07
通道 ORA_DISK_1: 已完成段 1 于 05-1月 -07
段句柄=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01_05O1_
MF_NCSN2_TAG20070105T193321_2SWFXWC7_.BKP 标记=TAG20070105T193321 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:05
完成 backup 于 05-1月 -07
RMAN> exit
恢复管理器完成。
C:>sqlplus system/system
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 1月 5 19:35:37 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> create table t_t as select *from dba_objects;
表已创建。
SQL> alter system archive log current;
系统已更改。
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
C:>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期五 1月 5 19:36:05 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: UTF (DBID=1000919928)
RMAN> shutdown immediate
使用目标数据库控制文件替代恢复目录
数据库已关闭
数据库已卸载
Oracle 实例已关闭
RMAN> startup mount
已连接到目标数据库 (未启动)
Oracle 实例已启动
数据库已装载
系统全局区域总计 167772160 字节
Fixed Size 1247900 字节
Variable Size 58721636 字节
Database Buffers 104857600 字节
Redo Buffers 2945024 字节
RMAN> restore database;
启动 restore 于 05-1月 -07
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=24 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到E:ORACLEPRODUCT10.2.0ORADATAUTFSYSTEM01.DBF
正将数据文件00002恢复到E:ORACLEPRODUCT10.2.0ORADATAUTFUNDOTBS01.DBF
正将数据文件00003恢复到E:ORACLEPRODUCT10.2.0ORADATAUTFSYSAUX01.DBF
正将数据文件00004恢复到E:ORACLEPRODUCT10.2.0ORADATAUTFUSERS01.DBF
通道 ORA_DISK_1: 正在读取备份段 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTF
BACKUPSET2007_01_05O1_MF_NNND2_TAG20070105T193321_2SWFW2SD_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01_05O
1_MF_NNND2_TAG20070105T193321_2SWFW2SD_.BKP 标记 = TAG20070105T193321
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:55
完成 restore 于 05-1月 -07
RMAN> recover database;
启动 recover 于 05-1月 -07
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:02
完成 recover 于 05-1月 -07
RMAN> alter database open;
数据库已打开
RMAN> exit
恢复管理器完成。
C:>sqlplus system/system
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 1月 5 19:38:11 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select count(*) from t_t;
COUNT(*)
----------
9882
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
C:>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期五 1月 5 19:39:07 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: UTF (DBID=1000919928)
RMAN> list backupset of database summary;
使用目标数据库控制文件替代恢复目录
备份列表
===============
关键字 TY LV S 设备类型 完成时间 段数 副本数 压缩标记
------- -- -- - ----------- ---------- ------- ------- ---------- ---
6 B 2 A DISK 05-1月 -07 1 1 YES TAG20070105T19
3321
RMAN>
--=====================================================
............................
是否确定要删除以上对象 (输入 YES 或 NO)? yes
已删除备份段
备份段 handle=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01
_05O1_MF_NNND2_TAG20070105T193321_2SWFW2SD_.BKP recid=6 stamp=611091202
已删除备份段
备份段 handle=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01
_05O1_MF_NCSN2_TAG20070105T193321_2SWFXWC7_.BKP recid=7 stamp=611091260
已删除备份段
备份段 handle=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01
_05O1_MF_NNND2_TAG20070105T194910_2SWGSQX9_.BKP recid=8 stamp=611092151
已删除备份段
备份段 handle=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01
_05O1_MF_NCSN2_TAG20070105T194910_2SWGTM2X_.BKP recid=9 stamp=611092179
已删除备份段
备份段 handle=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01
_05O1_MF_NNND3_TAG20070105T194948_2SWGTXQG_.BKP recid=10 stamp=611092189
已删除备份段
备份段 handle=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01
_05O1_MF_NCSN3_TAG20070105T194948_2SWGV2TC_.BKP recid=11 stamp=611092194
已删除备份段
备份段 handle=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01
_05O1_MF_NNND0_TAG20070105T225647_2SWSSJM1_.BKP recid=12 stamp=611103408
已删除备份段
备份段 handle=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01
_05O1_MF_NCSN0_TAG20070105T225647_2SWSV9PG_.BKP recid=13 stamp=611103465
8 对象已删除
RMAN> backup as compressed backupset incremental level 2 database;
启动 backup 于 05-1月 -07
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动压缩的增量级别 2 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=E:ORACLEPRODUCT10.2.0ORADATAUTFSYSTEM01.DBF
输入数据文件 fno=00003 name=E:ORACLEPRODUCT10.2.0ORADATAUTFSYSAUX01.DBF
输入数据文件 fno=00002 name=E:ORACLEPRODUCT10.2.0ORADATAUTFUNDOTBS01.DBF
输入数据文件 fno=00004 name=E:ORACLEPRODUCT10.2.0ORADATAUTFUSERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 05-1月 -07
通道 ORA_DISK_1: 已完成段 1 于 05-1月 -07
段句柄=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01_05O1_
MF_NNND2_TAG20070105T230644_2SWTD5M1_.BKP 标记=TAG20070105T230644 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:55
通道 ORA_DISK_1: 启动压缩的增量级别 2 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 05-1月 -07
通道 ORA_DISK_1: 已完成段 1 于 05-1月 -07
段句柄=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01_05O1_
MF_NCSN2_TAG20070105T230644_2SWTFYNZ_.BKP 标记=TAG20070105T230644 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:05
完成 backup 于 05-1月 -07
RMAN> backup as compressed backupset incremental level 3 database;
启动 backup 于 05-1月 -07
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动压缩的增量级别 3 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=E:ORACLEPRODUCT10.2.0ORADATAUTFSYSTEM01.DBF
输入数据文件 fno=00003 name=E:ORACLEPRODUCT10.2.0ORADATAUTFSYSAUX01.DBF
输入数据文件 fno=00002 name=E:ORACLEPRODUCT10.2.0ORADATAUTFUNDOTBS01.DBF
输入数据文件 fno=00004 name=E:ORACLEPRODUCT10.2.0ORADATAUTFUSERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 05-1月 -07
通道 ORA_DISK_1: 已完成段 1 于 05-1月 -07
段句柄=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01_05O1_
MF_NNND3_TAG20070105T230759_2SWTGJL2_.BKP 标记=TAG20070105T230759 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:04
通道 ORA_DISK_1: 启动压缩的增量级别 3 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 05-1月 -07
通道 ORA_DISK_1: 已完成段 1 于 05-1月 -07
段句柄=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01_05O1_
MF_NCSN3_TAG20070105T230759_2SWTGOPY_.BKP 标记=TAG20070105T230759 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:05
完成 backup 于 05-1月 -07
RMAN> list backup;
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
14 Incr 2 56.30M DISK 00:00:55 05-1月 -07
BP 关键字: 14 状态: AVAILABLE 已压缩: YES 标记: TAG20070105T230644
段名:E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01_05O1_MF
_NNND2_TAG20070105T230644_2SWTD5M1_.BKP
备份集 14 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 2 Incr 383832 05-1月 -07 E:ORACLEPRODUCT10.2.0ORADATAUTFSYSTEM
01.DBF
2 2 Incr 383832 05-1月 -07 E:ORACLEPRODUCT10.2.0ORADATAUTFUNDOTB
S01.DBF
3 2 Incr 383832 05-1月 -07 E:ORACLEPRODUCT10.2.0ORADATAUTFSYSAUX
01.DBF
4 2 Incr 383832 05-1月 -07 E:ORACLEPRODUCT10.2.0ORADATAUTFUSERS0
1.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
15 Incr 2 1.03M DISK 00:00:03 05-1月 -07
BP 关键字: 15 状态: AVAILABLE 已压缩: YES 标记: TAG20070105T230644
段名:E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01_05O1_MF
_NCSN2_TAG20070105T230644_2SWTFYNZ_.BKP
包括的控制文件: Ckp SCN: 383854 Ckp 时间: 05-1月 -07
包含的 SPFILE: 修改时间: 05-1月 -07
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
16 Incr 3 88.00K DISK 00:00:02 05-1月 -07
BP 关键字: 16 状态: AVAILABLE 已压缩: YES 标记: TAG20070105T230759
段名:E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01_05O1_MF
_NNND3_TAG20070105T230759_2SWTGJL2_.BKP
备份集 16 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 3 Incr 383872 05-1月 -07 E:ORACLEPRODUCT10.2.0ORADATAUTFSYSTEM
01.DBF
2 3 Incr 383872 05-1月 -07 E:ORACLEPRODUCT10.2.0ORADATAUTFUNDOTB
S01.DBF
3 3 Incr 383872 05-1月 -07 E:ORACLEPRODUCT10.2.0ORADATAUTFSYSAUX
01.DBF
4 3 Incr 383872 05-1月 -07 E:ORACLEPRODUCT10.2.0ORADATAUTFUSERS0
1.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
17 Incr 3 1.03M DISK 00:00:03 05-1月 -07
BP 关键字: 17 状态: AVAILABLE 已压缩: YES 标记: TAG20070105T230759
段名:E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01_05O1_MF
_NCSN3_TAG20070105T230759_2SWTGOPY_.BKP
包括的控制文件: Ckp SCN: 383874 Ckp 时间: 05-1月 -07
包含的 SPFILE: 修改时间: 05-1月 -07
RMAN> list backup of database summary;
备份列表
===============
关键字 TY LV S 设备类型 完成时间 段数 副本数 压缩标记
------- -- -- - ----------- ---------- ------- ------- ---------- ---
14 B 2 A DISK 05-1月 -07 1 1 YES TAG20070105T23
0644
16 B 3 A DISK 05-1月 -07 1 1 YES TAG20070105T23
0759
RMAN> shutdown immediate
数据库已关闭
数据库已卸载
Oracle 实例已关闭
RMAN> startup mount
已连接到目标数据库 (未启动)
Oracle 实例已启动
数据库已装载
系统全局区域总计 167772160 字节
Fixed Size 1247900 字节
Variable Size 58721636 字节
Database Buffers 104857600 字节
Redo Buffers 2945024 字节
RMAN> restore database;
启动 restore 于 05-1月 -07
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=24 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到E:ORACLEPRODUCT10.2.0ORADATAUTFSYSTEM01.DBF
正将数据文件00002恢复到E:ORACLEPRODUCT10.2.0ORADATAUTFUNDOTBS01.DBF
正将数据文件00003恢复到E:ORACLEPRODUCT10.2.0ORADATAUTFSYSAUX01.DBF
正将数据文件00004恢复到E:ORACLEPRODUCT10.2.0ORADATAUTFUSERS01.DBF
通道 ORA_DISK_1: 正在读取备份段 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTF
BACKUPSET2007_01_05O1_MF_NNND2_TAG20070105T230644_2SWTD5M1_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01_05O
1_MF_NNND2_TAG20070105T230644_2SWTD5M1_.BKP 标记 = TAG20070105T230644
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:55
完成 restore 于 05-1月 -07
RMAN> recover database;
启动 recover 于 05-1月 -07
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复增量数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
数据文件 00001 的恢复目标: E:ORACLEPRODUCT10.2.0ORADATAUTFSYSTEM01.DBF
数据文件 00002 的恢复目标: E:ORACLEPRODUCT10.2.0ORADATAUTFUNDOTBS01.DBF
数据文件 00003 的恢复目标: E:ORACLEPRODUCT10.2.0ORADATAUTFSYSAUX01.DBF
数据文件 00004 的恢复目标: E:ORACLEPRODUCT10.2.0ORADATAUTFUSERS01.DBF
通道 ORA_DISK_1: 正在读取备份段 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTF
BACKUPSET2007_01_05O1_MF_NNND3_TAG20070105T230759_2SWTGJL2_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01_05O
1_MF_NNND3_TAG20070105T230759_2SWTGJL2_.BKP 标记 = TAG20070105T230759
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:04
正在开始介质的恢复
介质恢复完成, 用时: 00:00:03
完成 recover 于 05-1月 -07
RMAN> alter database open;
数据库已打开
RMAN> backup as compressed backupset incremental level 0 database;
启动 backup 于 05-1月 -07
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动压缩的增量级别 0 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=E:ORACLEPRODUCT10.2.0ORADATAUTFSYSTEM01.DBF
输入数据文件 fno=00003 name=E:ORACLEPRODUCT10.2.0ORADATAUTFSYSAUX01.DBF
输入数据文件 fno=00002 name=E:ORACLEPRODUCT10.2.0ORADATAUTFUNDOTBS01.DBF
输入数据文件 fno=00004 name=E:ORACLEPRODUCT10.2.0ORADATAUTFUSERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 05-1月 -07
通道 ORA_DISK_1: 已完成段 1 于 05-1月 -07
段句柄=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01_05O1_
MF_NNND0_TAG20070105T231334_2SWTRZQX_.BKP 标记=TAG20070105T231334 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:06
通道 ORA_DISK_1: 启动压缩的增量级别 0 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 05-1月 -07
通道 ORA_DISK_1: 已完成段 1 于 05-1月 -07
段句柄=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01_05O1_
MF_NCSN0_TAG20070105T231334_2SWTV2TC_.BKP 标记=TAG20070105T231334 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:05
完成 backup 于 05-1月 -07
RMAN> list backupset tag TAG20070105T231334;
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
18 Incr 0 56.30M DISK 00:00:58 05-1月 -07
BP 关键字: 18 状态: AVAILABLE 已压缩: YES 标记: TAG20070105T231334
段名:E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01_05O1_MF
_NNND0_TAG20070105T231334_2SWTRZQX_.BKP
备份集 18 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 0 Incr 384440 05-1月 -07 E:ORACLEPRODUCT10.2.0ORADATAUTFSYSTEM
01.DBF
2 0 Incr 384440 05-1月 -07 E:ORACLEPRODUCT10.2.0ORADATAUTFUNDOTB
S01.DBF
3 0 Incr 384440 05-1月 -07 E:ORACLEPRODUCT10.2.0ORADATAUTFSYSAUX
01.DBF
4 0 Incr 384440 05-1月 -07 E:ORACLEPRODUCT10.2.0ORADATAUTFUSERS0
1.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
19 Incr 0 1.03M DISK 00:00:03 05-1月 -07
BP 关键字: 19 状态: AVAILABLE 已压缩: YES 标记: TAG20070105T231334
段名:E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFBACKUPSET2007_01_05O1_MF
_NCSN0_TAG20070105T231334_2SWTV2TC_.BKP
包括的控制文件: Ckp SCN: 384464 Ckp 时间: 05-1月 -07
包含的 SPFILE: 修改时间: 05-1月 -07
RMAN>
10可以穿越resetlogs恢复数据库!
发表人:warehouse | 发表时间: 2006年十二月27日, 18:18
RMAN> backup as compressed backupset full database;
启动 backup 于 27-12月-06
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动压缩的全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=E:ORACLEPRODUCT10.2.0ORADATADUPSYSTEM01.DBF
输入数据文件 fno=00003 name=E:ORACLEPRODUCT10.2.0ORADATADUPSYSAUX01.DBF
输入数据文件 fno=00002 name=E:ORACLEPRODUCT10.2.0ORADATADUPUNDOTBS01.DBF
输入数据文件 fno=00004 name=E:ORACLEPRODUCT10.2.0ORADATADUPUSERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 27-12月-06
通道 ORA_DISK_1: 已完成段 1 于 27-12月-06
段句柄=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUPBACKUPSET2006_12_27O1_
MF_NNNDF_TAG20061227T175334_2S4JO089_.BKP 标记=TAG20061227T175334 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:36
完成 backup 于 27-12月-06
启动 Control File and SPFILE Autobackup 于 27-12月-06
段 handle=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUPAUTOBACKUP2006_12_27
O1_MF_S_610307715_2S4JR76T_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 27-12月-06
RMAN> shutdown immediate
数据库已关闭
数据库已卸载
Oracle 实例已关闭
RMAN> startup nomount
已连接到目标数据库 (未启动)
Oracle 实例已启动
系统全局区域总计 167772160 字节
Fixed Size 1247900 字节
Variable Size 67110244 字节
Database Buffers 96468992 字节
Redo Buffers 2945024 字节
RMAN> restore controlfile;
启动 restore 于 27-12月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=25 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在复原控制文件
通道 ORA_DISK_1: 正在读取备份段 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUP
AUTOBACKUP2006_12_27O1_MF_S_610307715_2S4JR76T_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUPAUTOBACKUP2006_12_27
O1_MF_S_610307715_2S4JR76T_.BKP 标记 = TAG20061227T175515
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:05
输出文件名=E:ORACLEPRODUCT10.2.0ORADATADUPCONTROL01.CTL
输出文件名=E:ORACLEPRODUCT10.2.0ORADATADUPCONTROL02.CTL
输出文件名=E:ORACLEPRODUCT10.2.0ORADATADUPCONTROL03.CTL
完成 restore 于 27-12月-06
RMAN> alter database mount;
数据库已装载
释放的通道: ORA_DISK_1
RMAN> restore database;
启动 restore 于 27-12月-06
启动 implicit crosscheck backup 于 27-12月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=24 devtype=DISK
已交叉检验的 1 对象
完成 implicit crosscheck backup 于 27-12月-06
启动 implicit crosscheck copy 于 27-12月-06
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 27-12月-06
搜索恢复区域中的所有文件
正在编制文件目录...
目录编制完毕
已列入目录的文件的列表
=======================
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUPARCHIVELOG2006_12_25O
1_MF_1_1_2RZ6J5QG_.ARC
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUPARCHIVELOG2006_12_25O
1_MF_1_1_2RZ6YRQG_.ARC
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUPARCHIVELOG2006_12_26O
1_MF_1_1_2S185JPG_.ARC
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUPARCHIVELOG2006_12_26O
1_MF_1_2_2S23QWHN_.ARC
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUPARCHIVELOG2006_12_27O
1_MF_1_3_2S3Z155C_.ARC
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUPARCHIVELOG2006_12_27O
1_MF_1_8_2S4JT1MK_.ARC
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUPAUTOBACKUP2006_12_27O
1_MF_S_610307715_2S4JR76T_.BKP
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到E:ORACLEPRODUCT10.2.0ORADATADUPSYSTEM01.DBF
正将数据文件00002恢复到E:ORACLEPRODUCT10.2.0ORADATADUPUNDOTBS01.DBF
正将数据文件00003恢复到E:ORACLEPRODUCT10.2.0ORADATADUPSYSAUX01.DBF
正将数据文件00004恢复到E:ORACLEPRODUCT10.2.0ORADATADUPUSERS01.DBF
通道 ORA_DISK_1: 正在读取备份段 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUP
BACKUPSET2006_12_27O1_MF_NNNDF_TAG20061227T175334_2S4JO089_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUPBACKUPSET2006_12_27O
1_MF_NNNDF_TAG20061227T175334_2S4JO089_.BKP 标记 = TAG20061227T175334
通道 ORA_DISK_1: 恢复完成, 用时: 00:01:35
完成 restore 于 27-12月-06
RMAN> recover database;
启动 recover 于 27-12月-06
使用通道 ORA_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 8 已作为文件 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADU
PARCHIVELOG2006_12_27O1_MF_1_8_2S4JT1MK_.ARC 存在于磁盘上
存档日志线程 1 序列 9 已作为文件 E:ORACLEPRODUCT10.2.0ORADATADUPREDO02.LOG
存在于磁盘上
存档日志文件名 =E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUPARCHIVELOG2006
_12_27O1_MF_1_8_2S4JT1MK_.ARC 线程 =1 序列 =8
存档日志文件名 =E:ORACLEPRODUCT10.2.0ORADATADUPREDO02.LOG 线程 =1 序列 =9
介质恢复完成, 用时: 00:00:04
完成 recover 于 27-12月-06
RMAN> alter database open resetlogs;
数据库已打开
在恢复目录中注册的数据库的新原型
正在启动全部恢复目录的 resync
完成全部 resync
RMAN> list incarnation;
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
2373 2382 DUP 4275895224 PARENT 593858 22-12月-06
2373 2374 DUP 4275895224 PARENT 742508 25-12月-06
2373 2485 DUP 4275895224 PARENT 745363 25-12月-06
2373 2612 DUP 4275895224 PARENT 745754 25-12月-06
2373 2873 DUP 4275895224 CURRENT 897403 27-12月-06
RMAN> shutdown immediate
数据库已关闭
数据库已卸载
Oracle 实例已关闭
RMAN> startup nomount
已连接到目标数据库 (未启动)
Oracle 实例已启动
系统全局区域总计 167772160 字节
Fixed Size 1247900 字节
Variable Size 67110244 字节
Database Buffers 96468992 字节
Redo Buffers 2945024 字节
RMAN> restore controlfile;
启动 restore 于 27-12月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=25 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在复原控制文件
通道 ORA_DISK_1: 正在读取备份段 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUP
AUTOBACKUP2006_12_27O1_MF_S_610308155_2S4K5WPY_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUPAUTOBACKUP2006_12_27
O1_MF_S_610308155_2S4K5WPY_.BKP 标记 = TAG20061227T180235
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:03
输出文件名=E:ORACLEPRODUCT10.2.0ORADATADUPCONTROL01.CTL
输出文件名=E:ORACLEPRODUCT10.2.0ORADATADUPCONTROL02.CTL
输出文件名=E:ORACLEPRODUCT10.2.0ORADATADUPCONTROL03.CTL
完成 restore 于 27-12月-06
RMAN> alter database mount;
数据库已装载
释放的通道: ORA_DISK_1
RMAN> restore database;
启动 restore 于 27-12月-06
启动 implicit crosscheck backup 于 27-12月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=24 devtype=DISK
已交叉检验的 2 对象
完成 implicit crosscheck backup 于 27-12月-06
启动 implicit crosscheck copy 于 27-12月-06
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 27-12月-06
搜索恢复区域中的所有文件
正在编制文件目录...
目录编制完毕
已列入目录的文件的列表
=======================
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUPARCHIVELOG2006_12_27O
1_MF_1_1_2S4K73B8_.ARC
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUPAUTOBACKUP2006_12_27O
1_MF_S_610308155_2S4K5WPY_.BKP
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到E:ORACLEPRODUCT10.2.0ORADATADUPSYSTEM01.DBF
正将数据文件00002恢复到E:ORACLEPRODUCT10.2.0ORADATADUPUNDOTBS01.DBF
正将数据文件00003恢复到E:ORACLEPRODUCT10.2.0ORADATADUPSYSAUX01.DBF
正将数据文件00004恢复到E:ORACLEPRODUCT10.2.0ORADATADUPUSERS01.DBF
通道 ORA_DISK_1: 正在读取备份段 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUP
BACKUPSET2006_12_27O1_MF_NNNDF_TAG20061227T175334_2S4JO089_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUPBACKUPSET2006_12_27O
1_MF_NNNDF_TAG20061227T175334_2S4JO089_.BKP 标记 = TAG20061227T175334
通道 ORA_DISK_1: 恢复完成, 用时: 00:01:35
完成 restore 于 27-12月-06
RMAN> recover database;
启动 recover 于 27-12月-06
使用通道 ORA_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 8 已作为文件 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADU
PARCHIVELOG2006_12_27O1_MF_1_8_2S4K51FO_.ARC 存在于磁盘上
存档日志线程 1 序列 9 已作为文件 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADU
PARCHIVELOG2006_12_27O1_MF_1_9_2S4K531Y_.ARC 存在于磁盘上
存档日志线程 1 序列 1 已作为文件 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADU
PARCHIVELOG2006_12_27O1_MF_1_1_2S4K73B8_.ARC 存在于磁盘上
存档日志线程 1 序列 2 已作为文件 E:ORACLEPRODUCT10.2.0ORADATADUPREDO01.LOG
存在于磁盘上
存档日志文件名 =E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUPARCHIVELOG2006
_12_27O1_MF_1_8_2S4K51FO_.ARC 线程 =1 序列 =8
存档日志文件名 =E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUPARCHIVELOG2006
_12_27O1_MF_1_9_2S4K531Y_.ARC 线程 =1 序列 =9
存档日志文件名 =E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADUPARCHIVELOG2006
_12_27O1_MF_1_1_2S4K73B8_.ARC 线程 =1 序列 =1
存档日志文件名 =E:ORACLEPRODUCT10.2.0ORADATADUPREDO01.LOG 线程 =1 序列 =2
介质恢复完成, 用时: 00:00:04
完成 recover 于 27-12月-06
RMAN> alter database open resetlogs;
数据库已打开
在恢复目录中注册的数据库的新原型
正在启动全部恢复目录的 resync
完成全部 resync
RMAN>
rman通过之前的incarnation恢复数据库!
发表人:warehouse | 发表时间: 2006年十二月16日, 16:58
RMAN> backup as compressed backupset database include current controlfile format
='e:rmanatest_%U.BAK';
启动 backup 于 16-12月-06
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动压缩的全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF
输入数据文件 fno=00003 name=E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF
输入数据文件 fno=00002 name=E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DBF
输入数据文件 fno=00004 name=E:ORACLEPRODUCT10.2.0ORADATATESTTEST.DBF
输入数据文件 fno=00005 name=E:ORACLEPRODUCT10.2.0ORADATATESTTEST1.DBF
通道 ORA_DISK_1: 正在启动段 1 于 16-12月-06
通道 ORA_DISK_1: 已完成段 1 于 16-12月-06
段句柄=E:RMANATEST_0GI53T00_1_1.BAK 标记=TAG20061216T160415 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:55
通道 ORA_DISK_1: 启动压缩的全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 16-12月-06
通道 ORA_DISK_1: 已完成段 1 于 16-12月-06
段句柄=E:RMANATEST_0HI53T1N_1_1.BAK 标记=TAG20061216T160415 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:07
完成 backup 于 16-12月-06
RMAN> list incarnation;
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 2 TEST 1906627575 CURRENT 1 06-12月-06
RMAN> shutdown immediate
数据库已关闭
数据库已卸载
Oracle 实例已关闭
RMAN> startup nomount
已连接到目标数据库 (未启动)
Oracle 实例已启动
系统全局区域总计 268435456 字节
Fixed Size 1248476 字节
Variable Size 62915364 字节
Database Buffers 201326592 字节
Redo Buffers 2945024 字节
RMAN> restore controlfile;
启动 restore 于 16-12月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=157 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在复原控制文件
通道 ORA_DISK_1: 正在读取备份段 E:RMANATEST_0HI53T1N_1_1.BAK
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:RMANATEST_0HI53T1N_1_1.BAK 标记 = TAG20061216T160415
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:05
输出文件名=E:ORACLEPRODUCT10.2.0ORADATATESTCONTROL01.CTL
输出文件名=E:ORACLEPRODUCT10.2.0ORADATATESTCONTROL02.CTL
完成 restore 于 16-12月-06
RMAN> alter database mount;
数据库已装载
释放的通道: ORA_DISK_1
RMAN> restore database;
启动 restore 于 16-12月-06
启动 implicit crosscheck backup 于 16-12月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
已交叉检验的 9 对象
完成 implicit crosscheck backup 于 16-12月-06
启动 implicit crosscheck copy 于 16-12月-06
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 16-12月-06
搜索恢复区域中的所有文件
正在编制文件目录...
目录编制完毕
已列入目录的文件的列表
=======================
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
ARC00079_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
ARC00080_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
ARC00081_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
ARC00082_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
USE_DB_RECVERY_FILE_DESTARC00083_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
USE_DB_RECVERY_FILE_DESTARC00084_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
USE_DB_RECVERY_FILE_DESTARC00085_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
USE_DB_RECVERY_FILE_DESTARC00086_0608481143.001
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF
正将数据文件00002恢复到E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DBF
正将数据文件00003恢复到E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF
正将数据文件00004恢复到E:ORACLEPRODUCT10.2.0ORADATATESTTEST.DBF
正将数据文件00005恢复到E:ORACLEPRODUCT10.2.0ORADATATESTTEST1.DBF
通道 ORA_DISK_1: 正在读取备份段 E:RMANATEST_0GI53T00_1_1.BAK
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:RMANATEST_0GI53T00_1_1.BAK 标记 = TAG20061216T160415
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:55
完成 restore 于 16-12月-06
RMAN> recover database;
启动 recover 于 16-12月-06
使用通道 ORA_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 123 已作为文件 E:ORACLEPRODUCT10.2.0ORADATATESTREDO03.
LOG 存在于磁盘上
存档日志文件名 =E:ORACLEPRODUCT10.2.0ORADATATESTREDO03.LOG 线程 =1 序列 =1
23
介质恢复完成, 用时: 00:00:03
完成 recover 于 16-12月-06
RMAN> alter database open resetlogs;
数据库已打开
在恢复目录中注册的数据库的新原型
正在启动全部恢复目录的 resync
完成全部 resync
RMAN> list incarnation;
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 2 TEST 1906627575 PARENT 1 06-12月-06
1 874 TEST 1906627575 CURRENT 646758 16-12月-06
RMAN> list backup of database summary;
备份列表
===============
关键字 TY LV S 设备类型 完成时间 段数 副本数 压缩标记
------- -- -- - ----------- ---------- ------- ------- ---------- ---
577 B F A DISK 15-12月-06 1 1 YES TAG20061215T21
4415
709 B F A DISK 16-12月-06 1 1 YES TAG20061216T16
0415
RMAN>
RMAN> startup force nomount
Oracle 实例已启动
系统全局区域总计 268435456 字节
Fixed Size 1248476 字节
Variable Size 62915364 字节
Database Buffers 201326592 字节
Redo Buffers 2945024 字节
RMAN> reset database to incarnation 2;
将数据库重置为原型 2
RMAN> restore controlfile;
启动 restore 于 16-12月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=157 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在复原控制文件
通道 ORA_DISK_1: 正在读取备份段 E:RMANATEST_0HI53T1N_1_1.BAK
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:RMANATEST_0HI53T1N_1_1.BAK 标记 = TAG20061216T160415
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:03
输出文件名=E:ORACLEPRODUCT10.2.0ORADATATESTCONTROL01.CTL
输出文件名=E:ORACLEPRODUCT10.2.0ORADATATESTCONTROL02.CTL
完成 restore 于 16-12月-06
RMAN> restore database;
启动 restore 于 16-12月-06
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF
正将数据文件00002恢复到E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DBF
正将数据文件00003恢复到E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF
正将数据文件00004恢复到E:ORACLEPRODUCT10.2.0ORADATATESTTEST.DBF
正将数据文件00005恢复到E:ORACLEPRODUCT10.2.0ORADATATESTTEST1.DBF
通道 ORA_DISK_1: 正在读取备份段 E:RMANATEST_0GI53T00_1_1.BAK
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:RMANATEST_0GI53T00_1_1.BAK 标记 = TAG20061216T160415
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:55
完成 restore 于 16-12月-06
RMAN> alter database mount;
数据库已装载
释放的通道: ORA_DISK_1
RMAN> recover database ;
启动 recover 于 16-12月-06
启动 implicit crosscheck backup 于 16-12月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
已交叉检验的 9 对象
完成 implicit crosscheck backup 于 16-12月-06
启动 implicit crosscheck copy 于 16-12月-06
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 16-12月-06
搜索恢复区域中的所有文件
正在编制文件目录...
目录编制完毕
已列入目录的文件的列表
=======================
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
ARC00079_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
ARC00080_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
ARC00081_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
ARC00082_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
USE_DB_RECVERY_FILE_DESTARC00083_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
USE_DB_RECVERY_FILE_DESTARC00084_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
USE_DB_RECVERY_FILE_DESTARC00085_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
USE_DB_RECVERY_FILE_DESTARC00086_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_16
O1_MF_1_121_2R7BKS2X_.ARC
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_16
O1_MF_1_122_2R7BKSKL_.ARC
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_16
O1_MF_1_123_2R7BKTQG_.ARC
使用通道 ORA_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 123 已作为文件 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREA
TESTARCHIVELOG2006_12_16O1_MF_1_123_2R7BKTQG_.ARC 存在于磁盘上
存档日志文件名 =E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG200
6_12_16O1_MF_1_123_2R7BKTQG_.ARC 线程 =1 序列 =123
介质恢复完成, 用时: 00:00:02
完成 recover 于 16-12月-06
RMAN> alter database open resetlogs;
数据库已打开
在恢复目录中注册的数据库的新原型
正在启动全部恢复目录的 resync
完成全部 resync
RMAN> list incarnation;
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 2 TEST 1906627575 PARENT 1 06-12月-06
1 1512 TEST 1906627575 CURRENT 646758 16-12月-06
1 874 TEST 1906627575 ORPHAN 646758 16-12月-06
RMAN>
RMAN> startup force nomount
Oracle 实例已启动
系统全局区域总计 268435456 字节
Fixed Size 1248476 字节
Variable Size 62915364 字节
Database Buffers 201326592 字节
Redo Buffers 2945024 字节
RMAN> reset database to incarnation 2;
将数据库重置为原型 2
RMAN> restore controlfile;
启动 restore 于 16-12月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=157 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在复原控制文件
通道 ORA_DISK_1: 正在读取备份段 E:RMANATEST_0HI53T1N_1_1.BAK
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:RMANATEST_0HI53T1N_1_1.BAK 标记 = TAG20061216T160415
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:03
输出文件名=E:ORACLEPRODUCT10.2.0ORADATATESTCONTROL01.CTL
输出文件名=E:ORACLEPRODUCT10.2.0ORADATATESTCONTROL02.CTL
完成 restore 于 16-12月-06
RMAN> restore database until scn 646757;
启动 restore 于 16-12月-06
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF
正将数据文件00002恢复到E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DBF
正将数据文件00003恢复到E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF
正将数据文件00004恢复到E:ORACLEPRODUCT10.2.0ORADATATESTTEST.DBF
正将数据文件00005恢复到E:ORACLEPRODUCT10.2.0ORADATATESTTEST1.DBF
通道 ORA_DISK_1: 正在读取备份段 E:RMANATEST_0GI53T00_1_1.BAK
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:RMANATEST_0GI53T00_1_1.BAK 标记 = TAG20061216T160415
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:55
完成 restore 于 16-12月-06
RMAN> alter database mount;
数据库已装载
释放的通道: ORA_DISK_1
RMAN> recover database until scn 646757;
启动 recover 于 16-12月-06
启动 implicit crosscheck backup 于 16-12月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
已交叉检验的 9 对象
完成 implicit crosscheck backup 于 16-12月-06
启动 implicit crosscheck copy 于 16-12月-06
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 16-12月-06
搜索恢复区域中的所有文件
正在编制文件目录...
目录编制完毕
已列入目录的文件的列表
=======================
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
ARC00079_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
ARC00080_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
ARC00081_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
ARC00082_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
USE_DB_RECVERY_FILE_DESTARC00083_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
USE_DB_RECVERY_FILE_DESTARC00084_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
USE_DB_RECVERY_FILE_DESTARC00085_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_12
USE_DB_RECVERY_FILE_DESTARC00086_0608481143.001
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_16
O1_MF_1_121_2R7BKS2X_.ARC
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_16
O1_MF_1_122_2R7BKSKL_.ARC
文件名: E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG2006_12_16
O1_MF_1_123_2R7BKTQG_.ARC
使用通道 ORA_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 123 已作为文件 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREA
TESTARCHIVELOG2006_12_16O1_MF_1_123_2R7BKTQG_.ARC 存在于磁盘上
存档日志文件名 =E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG200
6_12_16O1_MF_1_123_2R7BKTQG_.ARC 线程 =1 序列 =123
介质恢复完成, 用时: 00:00:05
完成 recover 于 16-12月-06
RMAN> alter database open resetlogs;
数据库已打开
在恢复目录中注册的数据库的新原型
正在启动全部恢复目录的 resync
完成全部 resync
RMAN> list incarnation;
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 2 TEST 1906627575 PARENT 1 06-12月-06
1 1512 TEST 1906627575 ORPHAN 646758 16-12月-06
1 2146 TEST 1906627575 CURRENT 646758 16-12月-06
1 874 TEST 1906627575 ORPHAN 646758 16-12月-06
RMAN>
利用rman的TSPITR技术找回删除的表!
发表人:warehouse | 发表时间: 2006年十二月15日, 15:25
1.首先创建一个辅助实例
2。备份目标数据库,
backup as compressed backupset database include current controlfile plus all archivedlog format=......;
SQL> select * from t;
ID NAME BRITH
---------- -------------------- --------------
1 a 14-12月-06
SQL> set time on
12:29:30 SQL> SELECT TABLE_NAME FROM USER_TABLES;
TABLE_NAME
------------------------------
T
TT
12:41:48 SQL> create table ttt(id int) tablespace test;
表已创建。
12:42:07 SQL> insert into ttt values(1);
已创建 1 行。
12:42:12 SQL> commit;
提交完成。
12:42:14 SQL> drop table t;
表已删除。
C:>RMAN TARGET SYS/SYSTEM@TEST AUXILIARY SYS/SYSTEM@AUXI CATALOG RMAN/RMAN@ORCL
恢复管理器: Release 10.2.0.1.0 - Production on 星期五 12月 15 15:02:21 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: TEST (DBID=1906627575)
连接到恢复目录数据库
已连接到辅助数据库: TEST (未装载)
RMAN> RUN{
2> allocate auxiliary channel c1 type disk;
3> recover tablespace 'TEST' until time "to_date('12/15/2006 12:42:14' , 'mm/dd/
yyyy hh24:mi:ss')" AUXILIARY DESTINATION 'E:oracleproduct10.2.0oradataauxi'
;
4> release channel c1;
5> }
分配的通道: c1
通道 c1: sid=156 devtype=DISK
启动 recover 于 15-12月-06
内存脚本的内容:
{
# set the until clause
set until time "to_date('12/15/2006 12:42:14' , 'mm/dd/yyyy hh24:mi:ss')";
# restore the controlfile
restore clone controlfile;
# mount the controlfile
sql clone 'alter database mount clone database';
# archive current online log for tspitr to a resent until time
sql 'alter system archive log current';
# avoid unnecessary autobackups for structural changes during TSPITR
sql 'begin dbms_backup_restore.AutoBackupFlag(FALSE); end;';
# resync catalog after controlfile restore
resync catalog;
}
正在执行内存脚本
正在执行命令: SET until clause
启动 restore 于 15-12月-06
通道 c1: 正在开始恢复数据文件备份集
通道 c1: 正在复原控制文件
通道 c1: 正在读取备份段 E:RMANATEST_09I50SMU_1_1.BAK
通道 c1: 已恢复备份段 1
段句柄 = E:RMANATEST_09I50SMU_1_1.BAK 标记 = TAG20061215T124006
通道 c1: 恢复完成, 用时: 00:00:03
输出文件名=E:ORACLEPRODUCT10.2.0ORADATAAUXICONTROL01.CTL
输出文件名=E:ORACLEPRODUCT10.2.0ORADATAAUXICONTROL02.CTL
完成 restore 于 15-12月-06
sql 语句: alter database mount clone database
sql 语句: alter system archive log current
sql 语句: begin dbms_backup_restore.AutoBackupFlag(FALSE); end;
正在启动全部恢复目录的 resync
完成全部 resync
内存脚本的内容:
{
# generated tablespace point-in-time recovery script
# set the until clause
set until time "to_date('12/15/2006 12:42:14' , 'mm/dd/yyyy hh24:mi:ss')";
plsql <<<-- tspitr_2
declare
sqlstatement varchar2(512);
offline_not_needed exception;
pragma exception_init(offline_not_needed, -01539);
begin
sqlstatement := 'alter tablespace '|| 'TEST' ||' offline for recover';
krmicd.writeMsg(6162, sqlstatement);
krmicd.execSql(sqlstatement);
exception
when offline_not_needed then
null;
end; >>>;
# set a destination filename for restore
set newname for datafile 1 to
"E:ORACLEPRODUCT10.2.0ORADATAAUXISYSTEM01.DBF";
# set a destination filename for restore
set newname for datafile 2 to
"E:ORACLEPRODUCT10.2.0ORADATAAUXIUNDOTBS01.DBF";
# set a destination tempfile
set newname for tempfile 1 to
"E:ORACLEPRODUCT10.2.0ORADATAAUXITEMP01.DBF";
# set a destination tempfile
set newname for tempfile 2 to
"E:ORACLEPRODUCT10.2.0ORADATAAUXITMP.DBF";
# set a destination filename for restore
set newname for datafile 4 to
"E:ORACLEPRODUCT10.2.0ORADATATESTTEST.DBF";
# rename all tempfiles
switch clone tempfile all;
# restore the tablespaces in the recovery set plus the auxilliary tablespaces
restore clone datafile 1, 2, 4;
switch clone datafile all;
#online the datafiles restored or flipped
sql clone "alter database datafile 1 online";
#online the datafiles restored or flipped
sql clone "alter database datafile 2 online";
#online the datafiles restored or flipped
sql clone "alter database datafile 4 online";
# make the controlfile point at the restored datafiles, then recover them
recover clone database tablespace "TEST", "SYSTEM", "UNDOTBS1" delete archivelo
g;
alter clone database open resetlogs;
# PLUG HERE the creation of a temporary tablespace if export fails due to lack
# of temporary space.
# For example in Unix these two lines would do that:
#sql clone "create tablespace aux_tspitr_tmp
# datafile ''/tmp/aux_tspitr_tmp.dbf'' size 500K";
}
正在执行内存脚本
正在执行命令: SET until clause
sql 语句: alter tablespace TEST offline for recover
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
启动 restore 于 15-12月-06
通道 c1: 正在开始恢复数据文件备份集
通道 c1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到E:ORACLEPRODUCT10.2.0ORADATAAUXISYSTEM01.DBF
正将数据文件00002恢复到E:ORACLEPRODUCT10.2.0ORADATAAUXIUNDOTBS01.DBF
正将数据文件00004恢复到E:ORACLEPRODUCT10.2.0ORADATATESTTEST.DBF
通道 c1: 正在读取备份段 E:RMANATEST_08I50SL7_1_1.BAK
通道 c1: 已恢复备份段 1
段句柄 = E:RMANATEST_08I50SL7_1_1.BAK 标记 = TAG20061215T124006
通道 c1: 恢复完成, 用时: 00:01:09
完成 restore 于 15-12月-06
数据文件 4 已转换成数据文件副本
输入数据文件副本 recid=9 stamp=609260651 文件名=E:ORACLEPRODUCT10.2.0ORADATA
TESTTEST.DBF
sql 语句: alter database datafile 1 online
sql 语句: alter database datafile 2 online
sql 语句: alter database datafile 4 online
启动 recover 于 15-12月-06
正在开始介质的恢复
存档日志线程 1 序列 116 已作为文件 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREA
TESTARCHIVELOG2006_12_15O1_MF_1_116_2R49V29R_.ARC 存在于磁盘上
存档日志线程 1 序列 117 已作为文件 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREA
TESTARCHIVELOG2006_12_15O1_MF_1_117_2R4L4S2X_.ARC 存在于磁盘上
存档日志文件名 =E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG200
6_12_15O1_MF_1_116_2R49V29R_.ARC 线程 =1 序列 =116
存档日志文件名 =E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREATESTARCHIVELOG200
6_12_15O1_MF_1_117_2R4L4S2X_.ARC 线程 =1 序列 =117
介质恢复完成, 用时: 00:00:02
完成 recover 于 15-12月-06
数据库已打开
内存脚本的内容:
{
# export the tablespaces in the recovery set
host 'exp userid ="SYS/SYSTEM@AUXI as sysdba" point_in_time_recover=y tablespa
ces=
TEST file=
tspitr_a.dmp';
# shutdown clone before import
shutdown clone immediate
# import the tablespaces in the recovery set
host 'imp userid ="SYS/SYSTEM@TEST as sysdba" point_in_time_recover=y file=
tspitr_a.dmp';
# online/offline the tablespace imported
sql "alter tablespace TEST online";
sql "alter tablespace TEST offline";
# enable autobackups in case user does open resetlogs from RMAN after TSPITR
sql 'begin dbms_backup_restore.AutoBackupFlag(TRUE); end;';
# resync catalog after tspitr finished
resync catalog;
}
正在执行内存脚本
Export: Release 10.2.0.1.0 - Production on 星期五 12月 15 15:04:34 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
服务器使用 ZHS16CGB231280 字符集 (可能的字符集转换)
注: 将不导出表数据 (行)
即将导出表空间时间点恢复对象...
对于表空间 TEST...
. 正在导出簇定义
. 正在导出表定义
. . 正在导出表 TT
EXP-00091: 正在导出有问题的统计信息。
EXP-00008: 遇到 ORACLE 错误 6552
ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-553: 无法识别字符集名称
. . 正在导出表 T
EXP-00091: 正在导出有问题的统计信息。
EXP-00008: 遇到 ORACLE 错误 6552
ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-553: 无法识别字符集名称
. . 正在导出表 TTT
. 正在导出引用完整性约束条件
. 正在导出触发器
. 终止时间点恢复
导出成功终止, 但出现警告。
主机命令完成
数据库已关闭
数据库已卸载
Oracle 实例已关闭
Import: Release 10.2.0.1.0 - Production on 星期五 12月 15 15:05:01 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
即将导入表空间时间点恢复对象...
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
导入服务器使用 ZHS16CGB231280 字符集 (可能的字符集转换)
. 正在将 SYS 的对象导入到 SYS
. 正在将 XYS 的对象导入到 XYS
. . 正在导入表 "TT"
. . 正在导入表 "T"
. . 正在导入表 "TTT"
. 正在将 SYS 的对象导入到 SYS
成功终止导入, 没有出现警告。
主机命令完成
sql 语句: alter tablespace TEST online
sql 语句: alter tablespace TEST offline
sql 语句: begin dbms_backup_restore.AutoBackupFlag(TRUE); end;
正在启动全部恢复目录的 resync
完成全部 resync
已删除辅助实例文件 E:ORACLEPRODUCT10.2.0ORADATAAUXICONTROL01.CTL
已删除辅助实例文件 E:ORACLEPRODUCT10.2.0ORADATAAUXICONTROL02.CTL
已删除辅助实例文件 E:ORACLEPRODUCT10.2.0ORADATAAUXISYSTEM01.DBF
已删除辅助实例文件 E:ORACLEPRODUCT10.2.0ORADATAAUXIUNDOTBS01.DBF
已删除辅助实例文件 E:ORACLEPRODUCT10.2.0ORADATAAUXITEMP01.DBF
已删除辅助实例文件 E:ORACLEPRODUCT10.2.0ORADATAAUXITMP.DBF
完成 recover 于 15-12月-06
--====================================
14:48:22 SQL> select tablespace_name , status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ------------------
SYSTEM ONLINE
UNDOTBS1 ONLINE
SYSAUX ONLINE
TEMP ONLINE
TEST OFFLINE
TMP ONLINE
TEST1 ONLINE
已选择7行。
15:06:14 SQL> alter tablespace test online;
表空间已更改。
15:06:28 SQL> show user
USER 为 "XYS"
15:06:32 SQL> select * from t;
ID NAME BRITH
---------- -------------------- -------------------
1 a 2006/12/14 08:44:24
我们看到被删除的表T又找回来了!
10gR2rman as compressed backupset功能测试!
发表人:warehouse | 发表时间: 2006年十二月14日, 20:01
RMAN> backup database format='E:rmanatest_%U.bak';
启动 backup 于 14-12月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=141 devtype=DISK
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF
输入数据文件 fno=00003 name=E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF
输入数据文件 fno=00002 name=E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DBF
输入数据文件 fno=00004 name=E:ORACLEPRODUCT10.2.0ORADATATESTTEST.DBF
输入数据文件 fno=00005 name=E:ORACLEPRODUCT10.2.0ORADATATESTTEST1.DBF
通道 ORA_DISK_1: 正在启动段 1 于 14-12月-06
通道 ORA_DISK_1: 已完成段 1 于 14-12月-06
段句柄=E:RMANATEST_03I4UUQ5_1_1.BAK 标记=TAG20061214T190436 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:45
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 14-12月-06
通道 ORA_DISK_1: 已完成段 1 于 14-12月-06
段句柄=E:RMANATEST_04I4UURJ_1_1.BAK 标记=TAG20061214T190436 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03
完成 backup 于 14-12月-06
RMAN> backup as compressed backupset database format='e:rmanbtest_%U.BAK';
启动 backup 于 14-12月-06
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动压缩的全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF
输入数据文件 fno=00003 name=E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF
输入数据文件 fno=00002 name=E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DBF
输入数据文件 fno=00004 name=E:ORACLEPRODUCT10.2.0ORADATATESTTEST.DBF
输入数据文件 fno=00005 name=E:ORACLEPRODUCT10.2.0ORADATATESTTEST1.DBF
通道 ORA_DISK_1: 正在启动段 1 于 14-12月-06
通道 ORA_DISK_1: 已完成段 1 于 14-12月-06
段句柄=E:RMANBTEST_05I4V1KH_1_1.BAK 标记=TAG20061214T195249 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:46
通道 ORA_DISK_1: 启动压缩的全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 14-12月-06
通道 ORA_DISK_1: 已完成段 1 于 14-12月-06
段句柄=E:RMANBTEST_06I4V1LV_1_1.BAK 标记=TAG20061214T195249 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03
完成 backup 于 14-12月-06
RMAN> HOST
2> ;
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:>E:
E:>CD RMANB
E:rmanb>DIR
驱动器 E 中的卷没有标签。
卷的序列号是 F6E5-4B31
E:rmanb 的目录
2006-12-14 19:53 <DIR> .
2006-12-14 19:53 <DIR> ..
2006-12-14 19:05 284,131,328 TEST_03I4UUQ5_1_1.BAK
2006-12-14 19:05 7,241,728 TEST_04I4UURJ_1_1.BAK
2006-12-14 19:53 56,926,208 TEST_05I4V1KH_1_1.BAK
2006-12-14 19:53 1,114,112 TEST_06I4V1LV_1_1.BAK
4 个文件 349,413,376 字节
2 个目录 21,450,625,024 可用字节
E:rmanb>
通过两个备份集的比较,压缩效果良好!
RMAN中有catalog的情况下备份集目录发生改变的情况下如何恢复!
发表人:warehouse | 发表时间: 2006年十二月14日, 19:27
C:>rman target sys/system@test catalog rman/rman@orcl
恢复管理器: Release 10.2.0.1.0 - Production on 星期四 12月 14 19:02:25 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: TEST (DBID=1906627575)
连接到恢复目录数据库
RMAN> create catalog;
恢复目录已创建
RMAN> register database;
注册在恢复目录中的数据库
正在启动全部恢复目录的 resync
完成全部 resync
RMAN> backup database format='E:rmanatest_%U.bak';
启动 backup 于 14-12月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=141 devtype=DISK
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF
输入数据文件 fno=00003 name=E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF
输入数据文件 fno=00002 name=E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DBF
输入数据文件 fno=00004 name=E:ORACLEPRODUCT10.2.0ORADATATESTTEST.DBF
输入数据文件 fno=00005 name=E:ORACLEPRODUCT10.2.0ORADATATESTTEST1.DBF
通道 ORA_DISK_1: 正在启动段 1 于 14-12月-06
通道 ORA_DISK_1: 已完成段 1 于 14-12月-06
段句柄=E:RMANATEST_03I4UUQ5_1_1.BAK 标记=TAG20061214T190436 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:45
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 14-12月-06
通道 ORA_DISK_1: 已完成段 1 于 14-12月-06
段句柄=E:RMANATEST_04I4UURJ_1_1.BAK 标记=TAG20061214T190436 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03
完成 backup 于 14-12月-06
RMAN> shutdown immediate
数据库已关闭
数据库已卸载
Oracle 实例已关闭
RMAN> startup mount
已连接到目标数据库 (未启动)
Oracle 实例已启动
数据库已装载
系统全局区域总计 268435456 字节
Fixed Size 1248476 字节
Variable Size 88081188 字节
Database Buffers 176160768 字节
Redo Buffers 2945024 字节
把备份目录a改成b
RMAN> restore database;
启动 restore 于 14-12月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF
正将数据文件00002恢复到E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DBF
正将数据文件00003恢复到E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF
正将数据文件00004恢复到E:ORACLEPRODUCT10.2.0ORADATATESTTEST.DBF
正将数据文件00005恢复到E:ORACLEPRODUCT10.2.0ORADATATESTTEST1.DBF
通道 ORA_DISK_1: 正在读取备份段 E:RMANATEST_03I4UUQ5_1_1.BAK
故障转移到上一个备份
创建数据文件 fno = 1 名称 = E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 12/14/2006 19:07:05 上) 失败
ORA-01180: 无法创建数据文件 1
ORA-01110: 数据文件 1: 'E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF'
update bp set handle='E:RMANBTEST_04I4UURJ_1_1.BAK'
WHERE handle='E:RMANATEST_04I4UURJ_1_1.BAK';
update bp set handle='E:RMANBTEST_03I4UUQ5_1_1.BAK'
WHERE handle='E:RMANATEST_03I4UUQ5_1_1.BAK';
RMAN> restore database;
启动 restore 于 14-12月-06
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF
正将数据文件00002恢复到E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DBF
正将数据文件00003恢复到E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF
正将数据文件00004恢复到E:ORACLEPRODUCT10.2.0ORADATATESTTEST.DBF
正将数据文件00005恢复到E:ORACLEPRODUCT10.2.0ORADATATESTTEST1.DBF
通道 ORA_DISK_1: 正在读取备份段 E:RMANBTEST_03I4UUQ5_1_1.BAK
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:RMANBTEST_03I4UUQ5_1_1.BAK 标记 = TAG20061214T190436
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:45
完成 restore 于 14-12月-06
RMAN> RECOVER DATABASE;
启动 recover 于 14-12月-06
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:03
完成 recover 于 14-12月-06
RMAN> ALTER DATABASE OPEN;
数据库已打开
RMAN>
10g的shrink space功能还是不错的!
发表人:warehouse | 发表时间: 2006年十二月05日, 14:27
10g的shrink space功能还是不错的! 查看全文
rman 累计备份测试结果!
发表人:warehouse | 发表时间: 2005年七月11日, 16:08
--累计备份测试结果!
RMAN> list backup;
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
563 Incr 0 542M DISK 00:01:12 27-1月 -05
BP 关键字: 564 状态: AVAILABLE 标记:TAG20040127T163757
段名:/dbbak/db_full_1kgb8s9c_1_1
包含的 SPFILE: 修改时间: 10-1月 -05
备份集 563 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 0 Incr 2225938 27-1月 -05 /oradata/test/system01.dbf
2 0 Incr 2225938 27-1月 -05 /oradata/test/undotbs01.dbf
3 0 Incr 2225938 27-1月 -05 /oradata/test/drsys01.dbf
4 0 Incr 2225938 27-1月 -05 /oradata/test/indx01.dbf
5 0 Incr 2225938 27-1月 -05 /oradata/test/tools01.dbf
6 0 Incr 2225938 27-1月 -05 /oradata/test/users01.dbf
7 0 Incr 2225938 27-1月 -05 /oradata/test/xdb01.dbf
8 0 Incr 2225938 27-1月 -05 /oradata/test/rmantest.dbf
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
576 Incr 1 1M DISK 00:00:46 27-1月 -05
BP 关键字: 577 状态: AVAILABLE 标记:TAG20040127T164104
段名:/dbbak/db_level_11lgb8sf7_1_1
包含的 SPFILE: 修改时间: 10-1月 -05
备份集 576 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 1 Incr 2226004 27-1月 -05 /oradata/test/system01.dbf
2 1 Incr 2226004 27-1月 -05 /oradata/test/undotbs01.dbf
3 1 Incr 2226004 27-1月 -05 /oradata/test/drsys01.dbf
4 1 Incr 2226004 27-1月 -05 /oradata/test/indx01.dbf
5 1 Incr 2226004 27-1月 -05 /oradata/test/tools01.dbf
6 1 Incr 2226004 27-1月 -05 /oradata/test/users01.dbf
7 1 Incr 2226004 27-1月 -05 /oradata/test/xdb01.dbf
8 1 Incr 2226004 27-1月 -05 /oradata/test/rmantest.dbf
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
589 Incr 1 1M DISK 00:00:44 27-1月 -05
BP 关键字: 590 状态: AVAILABLE 标记:TAG20040127T164318
段名:/dbbak/db_level_1_011mgb8sje_1_1
包含的 SPFILE: 修改时间: 10-1月 -05
备份集 589 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 1 Incr 2226051 27-1月 -05 /oradata/test/system01.dbf
2 1 Incr 2226051 27-1月 -05 /oradata/test/undotbs01.dbf
3 1 Incr 2226051 27-1月 -05 /oradata/test/drsys01.dbf
4 1 Incr 2226051 27-1月 -05 /oradata/test/indx01.dbf
5 1 Incr 2226051 27-1月 -05 /oradata/test/tools01.dbf
6 1 Incr 2226051 27-1月 -05 /oradata/test/users01.dbf
7 1 Incr 2226051 27-1月 -05 /oradata/test/xdb01.dbf
8 1 Incr 2226051 27-1月 -05 /oradata/test/rmantest.dbf
RMAN> delete backup;
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=12 devtype=DISK
备份段列表
BP 关键字 BS 关键字 Pc# Cp# 状态 设备类型段名称
------- ------- --- --- ----------- ----------- ----------
564 563 1 1 AVAILABLE DISK /dbbak/db_full_1kgb8s9c_1_1
577 576 1 1 AVAILABLE DISK /dbbak/db_level_11lgb8sf7_1_1
590 589 1 1 AVAILABLE DISK /dbbak/db_level_1_011mgb8sje_1_1
是否确定要删除以上对象 (输入 YES 或 NO)? yes
已删除备份段
备份段 handle=/dbbak/db_full_1kgb8s9c_1_1 recid=55 stamp=548696365
已删除备份段
备份段 handle=/dbbak/db_level_11lgb8sf7_1_1 recid=56 stamp=548696553
已删除备份段
备份段 handle=/dbbak/db_level_1_011mgb8sje_1_1 recid=57 stamp=548696687
3 对象已删除
RMAN> list backup;
RMAN> backup incremental level=0 cumulative database format='/dbbak/db_full_0_%U
';
启动 backup 于 28-1月 -04
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动 incremental level 0 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00001 name=/oradata/test/system01.dbf
输入数据文件 fno=00002 name=/oradata/test/undotbs01.dbf
输入数据文件 fno=00007 name=/oradata/test/xdb01.dbf
输入数据文件 fno=00006 name=/oradata/test/users01.dbf
输入数据文件 fno=00004 name=/oradata/test/indx01.dbf
输入数据文件 fno=00003 name=/oradata/test/drsys01.dbf
输入数据文件 fno=00005 name=/oradata/test/tools01.dbf
输入数据文件 fno=00008 name=/oradata/test/rmantest.dbf
通道 ORA_DISK_1: 正在启动段 1 于 28-1月 -05
通道 ORA_DISK_1: 已完成段 1 于 28-1月 -05
段 handle=/dbbak/db_full_0_1ngbakj0_1_1 comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:22
完成 backup 于 28-1月 -04
--在sqlplus数据测试数据
SQL> select * from test.test;
AA
--------------------
test
test2
test1
SQL> delete from test.test;
已删除3行。
SQL> commit;
提交完成。
SQL> insert into test.test values('test');
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system checkpoint;
系统已更改。
RMAN> backup incremental level=1 cumulative database format='/dbbak/db_level_1_0
1_%U';
启动 backup 于 28-1月 -04
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动 incremental level 1 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00001 name=/oradata/test/system01.dbf
输入数据文件 fno=00002 name=/oradata/test/undotbs01.dbf
输入数据文件 fno=00007 name=/oradata/test/xdb01.dbf
输入数据文件 fno=00006 name=/oradata/test/users01.dbf
输入数据文件 fno=00004 name=/oradata/test/indx01.dbf
输入数据文件 fno=00003 name=/oradata/test/drsys01.dbf
输入数据文件 fno=00005 name=/oradata/test/tools01.dbf
输入数据文件 fno=00008 name=/oradata/test/rmantest.dbf
通道 ORA_DISK_1: 正在启动段 1 于 28-1月 -05
通道 ORA_DISK_1: 已完成段 1 于 28-1月 -05
段 handle=/dbbak/db_level_1_01_1ogbakoa_1_1 comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:50
完成 backup 于 28-1月 -04
--在sqlplus中输入测试数据
SQL> insert into test.test values('test1');
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system checkpoint;
系统已更改。
RMAN> backup incremental level=1 cumulative database format='/dbbak/db_level_1_0
2_%U';
启动 backup 于 28-1月 -04
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动 incremental level 1 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00001 name=/oradata/test/system01.dbf
输入数据文件 fno=00002 name=/oradata/test/undotbs01.dbf
输入数据文件 fno=00007 name=/oradata/test/xdb01.dbf
输入数据文件 fno=00006 name=/oradata/test/users01.dbf
输入数据文件 fno=00004 name=/oradata/test/indx01.dbf
输入数据文件 fno=00003 name=/oradata/test/drsys01.dbf
输入数据文件 fno=00005 name=/oradata/test/tools01.dbf
输入数据文件 fno=00008 name=/oradata/test/rmantest.dbf
通道 ORA_DISK_1: 正在启动段 1 于 28-1月 -05
通道 ORA_DISK_1: 已完成段 1 于 28-1月 -05
段 handle=/dbbak/db_level_1_02_1pgbakqv_1_1 comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:40
完成 backup 于 28-1月 -04
SQL> insert into test.test values('test2');
已创建 1 行。
SQL> commit;
提交完成。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
C:>rman catalog rman/rman@rmandb target sys/system@test
恢复管理器: 版本9.2.0.1.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
连接到目标数据库: TEST (DBID=1837576790)
连接到恢复目录数据库
RMAN> restore database ;
启动 restore 于 28-1月 -04
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=10 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到/oradata/test/system01.dbf
正将数据文件00002恢复到/oradata/test/undotbs01.dbf
正将数据文件00003恢复到/oradata/test/drsys01.dbf
正将数据文件00004恢复到/oradata/test/indx01.dbf
正将数据文件00005恢复到/oradata/test/tools01.dbf
正将数据文件00006恢复到/oradata/test/users01.dbf
正将数据文件00007恢复到/oradata/test/xdb01.dbf
正将数据文件00008恢复到/oradata/test/rmantest.dbf
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=/dbbak/db_full_0_1ngbakj0_1_1 tag=TAG20040128T083756 params=NULL
通道 ORA_DISK_1: 恢复完成
完成 restore 于 28-1月 -04
RMAN> recover database ;
启动 recover 于 28-1月 -04
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复增量数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
数据文件 00001 的恢复目标: /oradata/test/system01.dbf
数据文件 00002 的恢复目标: /oradata/test/undotbs01.dbf
数据文件 00003 的恢复目标: /oradata/test/drsys01.dbf
数据文件 00004 的恢复目标: /oradata/test/indx01.dbf
数据文件 00005 的恢复目标: /oradata/test/tools01.dbf
数据文件 00006 的恢复目标: /oradata/test/users01.dbf
数据文件 00007 的恢复目标: /oradata/test/xdb01.dbf
数据文件 00008 的恢复目标: /oradata/test/rmantest.dbf
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=/dbbak/db_level_1_02_1pgbakqv_1_1 tag=TAG20040128T084212 params=NULL
通道 ORA_DISK_1: 恢复完成
正在开始介质的恢复
完成介质的恢复
完成 recover 于 28-1月 -04
RMAN>
SQL> alter database open;
数据库已更改。
SQL> select * from test.test;
AA
--------------------
test2
test
test1
SQL>
rman做基于时间的不完全
发表人:warehouse | 发表时间: 2005年七月11日, 15:52
rman做基于时间的不完全
os:red hat as 3
ora:9204
catalog:windowns 2000(所有的操作都在客户端catalog所在的机器上操作)
1、首先在数据库服务器上设置时间格式:
NLS_DATE_FORMAT="YYYY.MM.DD HH24:MI:SS"
export NLS_DATE_FORMAT
C:>rman target sys/system@test catalog rman/rman@rmandb
恢复管理器: 版本9.2.0.1.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
连接到目标数据库: TEST (DBID=1837576790)
连接到恢复目录数据库
RMAN> register database;
注册在恢复目录中的数据库
正在启动全部恢复目录的 resync
完成全部 resync
RMAN> list backupset;
RMAN> run{
2> allocate channel c1 type disk ;
3> allocate channel c2 type disk ;
4> backup database format='/dbbak/db_full_%U';
5> release channel c1;
6> release channel c2;
7> }
分配的通道: c1
通道 c1: sid=10 devtype=DISK
分配的通道: c2
通道 c2: sid=11 devtype=DISK
启动 backup 于 05-2月 -04
通道 c1: 正在启动 full 数据文件备份集
通道 c1: 正在指定备份集中的数据文件
输入数据文件 fno=00002 name=/oradata/test/undotbs01.dbf
输入数据文件 fno=00007 name=/oradata/test/xdb01.dbf
输入数据文件 fno=00006 name=/oradata/test/users01.dbf
输入数据文件 fno=00004 name=/oradata/test/indx01.dbf
输入数据文件 fno=00008 name=/oradata/test/rmantest.dbf
通道 c1: 正在启动段 1 于 05-2月 -05
通道 c2: 正在启动 full 数据文件备份集
通道 c2: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00001 name=/oradata/test/system01.dbf
输入数据文件 fno=00003 name=/oradata/test/drsys01.dbf
输入数据文件 fno=00005 name=/oradata/test/tools01.dbf
通道 c2: 正在启动段 1 于 05-2月 -05
通道 c1: 已完成段 1 于 05-2月 -05
段 handle=/dbbak/db_full_24gbvpl5_1_1 comment=NONE
通道 c1: 备份集已完成, 经过时间:00:01:43
通道 c2: 已完成段 1 于 05-2月 -05
段 handle=/dbbak/db_full_25gbvpl5_1_1 comment=NONE
通道 c2: 备份集已完成, 经过时间:00:01:43
完成 backup 于 05-2月 -04
释放的通道: c1
释放的通道: c2
--在客户端CATALOG所在的机器上(另一个SQLPLUS窗口中)输入测试数据
SQL> connect sys/system@test as sysdba;
已连接。
SQL> select * from test.test;
AA
--------------------
test2
test3
success
test
test1
SQL> set timing on
SQL> set time on
09:15:37 SQL> delete from test.test;
已删除5行。
已用时间: 00: 00: 00.02
09:15:45 SQL> desc test.test;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
AA VARCHAR2(10)
09:16:12 SQL> insert into test.test values('test');
已创建 1 行。
已用时间: 00: 00: 00.00
09:16:23 SQL> commit;
提交完成。
已用时间: 00: 00: 00.00
09:16:25 SQL>
09:16:43 SQL>
09:16:43 SQL>
09:16:44 SQL>
09:16:44 SQL>
09:16:44 SQL>
09:16:44 SQL> drop table test.test;
表已丢弃。
已用时间: 00: 00: 02.01
09:16:59 SQL>
09:17:00 SQL>
09:17:00 SQL>
09:17:00 SQL>
09:17:00 SQL>
09:17:01 SQL>
09:17:01 SQL>
09:17:01 SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
09:22:30 SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
RMAN> run{
2> set until time '2005.02.05 09:16:44';
3> restore database;
4> recover database;
5> };
正在执行命令: SET until clause
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of set command at 02/05/2004 09:22:12
ORA-01861: literal does not match format string
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01005: syntax error: found ";": expecting one of: "allocate, alter, backup,
beginline, blockrecover, catalog, change, connect, copy, create, crosscheck, co
nfigure, duplicate, debug, delete, drop, exit, endinline, host, {, library, list
, mount, open, print, quit, recover, register, release, replace, report, renorma
lize, reset, restore, resync, rman, run, rpctest, set, setlimit, sql, spool, sta
rtup, shutdown, send, show, test, upgrade, validate"
RMAN-01007: at line 0 column 2 file: standard input
--修改日期格式
RMAN> sql "alter session set nls_date_format=''yyyy.mm.dd hh24:mi:ss'' ";
sql 语句: alter session set nls_date_format=''yyyy.mm.dd hh24:mi:ss''
RMAN> run{
2> set until time '2005.02.05 09:16:44';
3> restore database;
4> recover database;
5> };
正在执行命令: SET until clause
启动 restore 于 05-2月 -04
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=10 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到/oradata/test/system01.dbf
正将数据文件00003恢复到/oradata/test/drsys01.dbf
正将数据文件00005恢复到/oradata/test/tools01.dbf
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=/dbbak/db_full_25gbvpl5_1_1 tag=TAG20040205T091300 params=NULL
通道 ORA_DISK_1: 恢复完成
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00002恢复到/oradata/test/undotbs01.dbf
正将数据文件00004恢复到/oradata/test/indx01.dbf
正将数据文件00006恢复到/oradata/test/users01.dbf
正将数据文件00007恢复到/oradata/test/xdb01.dbf
正将数据文件00008恢复到/oradata/test/rmantest.dbf
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=/dbbak/db_full_24gbvpl5_1_1 tag=TAG20040205T091300 params=NULL
通道 ORA_DISK_1: 恢复完成
完成 restore 于 05-2月 -04
启动 recover 于 05-2月 -04
使用通道 ORA_DISK_1
正在开始介质的恢复
完成介质的恢复
完成 recover 于 05-2月 -04
RMAN>
09:22:41 SQL> alter database open resetlogs;
数据库已更改。
已用时间: 00: 00: 05.07
09:27:14 SQL> select *from test.test;
select *from test.test
*
ERROR 位于第 1 行:
ORA-00942: table or view does not exist
已用时间: 00: 00: 00.00
09:27:38 SQL>
这里问题出现了,为什么数据没有恢复过来?
我想是服务器端的时间和客户端的时间不一致造成的
09:53:34 SQL> alter session set nls_date_format='yyyy.mm.dd hh24:mi:ss';
会话已更改。
已用时间: 00: 00: 00.00
09:54:08 SQL> select sysdate from dual;
SYSDATE
-------------------
2005.02.05 08:56:43
已用时间: 00: 00: 00.00
09:54:11 SQL>
恭喜!您的Blog已经建立。
发表人:warehouse | 发表时间: 2004年十一月12日, 08:45
您已经成功注册ITPUB Blog帐号。请进入http://blog.itpub.net/admin.php管理您的Blog站点。建议先修改Blog的名称并建立文档分类,系统已经默认建立了【初始分类】。登陆密码与itpub论坛帐号相同。如有问题请在斑竹区发贴。谢谢。