rman实验之归档模式有备份,正常关机丢失数据文件的恢复
1 创建备份RMAN> backup database plus archivelog; 2 搭建环境hr@ORCL> create table tt (name varchar2(20)); Table created. hr@ORCL> insert into tt values(\'test1\'); 1 row created. hr@ORCL> insert into tt values(\'test2\'); 1 row created. hr@ORCL> insert into tt values(\'test3\'); 1 row created. hr@ORCL> commit; Commit complete. hr@ORCL> select * from tt; NAME -------------------- test1 test2 test3 3 模拟
rman系列之7问rman
第一问:是否选择增量备份? 所有增量备份都必须先创建0级备份。0级备份相当于全库备份,但二者并不等同,因为,全库备份不包含增量备份策略。 对users 表空间建立增量备份:RMAN> backup incremental level=0 tablespace users; RMAN> backup incremental level=1 tablespace users; 如果选择了增量备份,请务必启用块修改跟踪,否则,会因
rman系列之进入rman
通过rman的方式无论是备份还是恢复,小生建议,大伙还是先预备两个东东: 1)到mount阶段,因为,缺省下rman的元数据被存在目标数据库控制文件中 2)如果数据库处于open read write状态,那么必须置于归档模式,否则会报ora-19602:错误无法按 NOARCHIVELOG 模式备份或复制活动文件。如何开启归档,请见:点击打开链接http://blog.csdn.n
oracle merge从9i到10g的增强
MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。 下面看个具体例子: hr@ORCL> select * from p; ID NAME ---------- ---------- 1 d 3 e 8 f hr@ORCL> select * from t; ID NAME ----------
oracle开发注意事项小结
1)统计信息里面,有两行和性能有关。 15 SQL*Net roundtrips to/from client 198 rows processed 第一行表示,从buffer cache到PGA的结果集的往返次数 第二行表示,访问到的数据块里面的行的个数 计算: SQL*Net roundtrips=[ rows processed/arraysize]+2,当且仅当,rows processed为0,则SQL*Net roundtrips等于1. 比如:15=[198/13]+2&
undo系列学习之undo段和区的探究
1)回滚段是磁盘上的一段空间 2)当一个事务开始的时候: 首先,把变化前的数据和变化后的数据写入redo log file 其次,把变化前的数据和相关的事务信息写入回滚段 最后,才在data_buffer_cache中修改数据 3)commit做两件事: a)写日志 b)在回滚段中标记事务为inactive(小事务还
undo系列学习之oracle DBA常用的脚本
DBA在维护oracle的过程,和undo有关的常用脚本。在前面的一些文章也涉及了挺多的,在此简单总结一点。 1)怎样查询数据库当前某个session的事务所使用的回滚段大小? sys@ORCL> select b.sid,b.username,a.xidusn,a.used_ublk 2 from v$transaction a,v$session b 3 where a.addr=b.taddr; SID USERNAME XIDUSN USED_UBLK ---------- ------------------
oracle证明题:未提交的事务也可能被DBWn写进数据文件
学oracle时,很多人会认为,DBWn的写与commit有关。这是错误的。其实,DBWn的写与事务是否commit,一丁点的关系都没有。现在,证明:一个未提交的事务,也是有可能被写入数据文件的。 会话1: sys@ORCL> select xidusn,xidslot,xidsqn,ubafil,ubablk from v$transaction; no rows selected 此时没有事务。 会话2: hr@ORCL> select * from t;
undo系列学习之读一致性(ORA-01555错误机制分析)
oracle在读的过程中,数据是静止的,没有脏读,也就是,未提交的永远都不会被读到。我们可以理解为,oracle在读的开始时,提前为他今后所要读的内容拍了一张”照片“,把所有内容全部定格在一个时间点上,作为接下来读的依据。oracle利用scn来实现这个理论,开始查询时,会确定一个select scn,这样就保证了事务槽里所有的scn都小于select scn。好比如,
undo系列学习之Oracle IMU及Redo Private Strands技术
在传统的undo管理模式中,oracle对undo和data block是一视同仁。这样大致会有三种弊端: 1)事务开始时,存放事务表的段头不在内存,server process需要将此i/o上来 2)存放旧值的回滚块不在内存 3)rollback或者CR读的时候,所需的回滚块被DBWn写到磁盘,oracle也需将此i/o,可能会产生大量的consistent gets和physical reads  
undo系列学习之深入浅出事务槽
undo表空间有个脾气,就是新事务优先,长查询滞后! 情况有两:查询在前、查询在后 查询在后: if [查scn>提交scn] if [查sid = 提交 sid] 返回新值; else 返回旧值; &n
oracle函数之case和decode的用法区别及性能比较
在oracle世界,你可以使用: 1)case表达式 或者 2)decode函数 来实现逻辑判断。Oracle的DECODE函数功能很强,灵活运用的话可以避免多次扫描,从而提高查询的性能。而CASE是9i以后提供的语法,这个语法更加的灵活,提供了IF THEN ELSE的功能。 case表达式
undo系列学习之深入剖析一个事务的操作流程
开篇我们先用一个实验引出事务: sys@ORCL> select xid,xidusn,xidslot,xidsqn,ubablk,ubafil from v$transaction; no rows selected 没找到相应的事务信息,用hr发起一条事务: hr@ORCL> select * from p; ID TEST ---------- ----- 2 f 3 g 1 a hr@ORCL> update p set test=\'w\' where id=1; 1 row updated. 再次查看事务信息: sys@ORCL> /
undo系列学习之undo入门基础知识介绍
图2: 图3: 图4: 图5: 图6: 图7: 图8: 图9: 图10: 图11: 图12: 图12: 图13: undo的相关统计信息:
如何成为一名出色的ERP工程师
说实在, IT岗位的需求不一样, 导致的发展前途也是不一样的. 可以这样讲, ERP岗位应该是IT所有职业中, 最有前途的, 也是职业生涯生命周期最长的一个, 做ERP工程师一段时间后, 就可以横向挑战顾问, 纵向挑战经理及总监职位(不过, 需要补充IT网络及安全等知识).... ERP说白了, 就是一个既懂业务, 又懂技术的复合型人才, 是十分珍贵的资源. 如何才
炒股七字经
炒股犹如开车子,一看二慢三通过。看图要看K-线图,买卖信号分清楚。 买进重点记什么,且听我来告诉你,早晨之星大阳线,曙光初显倒锤头, 旭日东升红三兵,徐缓上升塔形底,稳步上涨钳子底,下探上升锤头线。 若是低位七连阳,中线走强大有望。周线开出二连阳,试着做多胜算大。 转势要看月K-线,月线出阳迎曙光。卖出重点记什么,让
undo系列学习之如何计算undo表空间的大小
undo空间的大小不足会引起ORA-30036或者ORA-01555。 我们创建一个小的undo表空间,然后执行一个比较大的事务,这时就可以模拟出ORA-30036. sys@ORCL> create undo tablespace thinktbs datafile \'/u01/app/oracle/oradata/ORCL/datafile/think_undo.dbf\' 2 size 2m autoextend off; Tablespace created. sys@ORCL> alter system set undo_tablespace=thinktbs; System altered. sys@ORCL> show parameter undo
undo系列学习之如何计算最优的undo_retention及undo_retention的初体验
undo_retention简单定义,就是最多数据的最少保留时间。AUM模式下,undo_retention参数用于事务commit后undo数据保留的时间。单位为秒。这是个no guarantee的限制。也就是,若空间足够,他只是个‘花瓶’;当可用空间不足而又有事务需要回滚空间,则这些数据依然会被覆盖。这个行为可能会导致ORA-01555错误,这些数据被记忆的时间可用v$undostat里面的字段TUNED_UNDORETENTIO
undo学习系列之澄清一个被误解的概念
在oracle中有三种数据,data、redo和undo。undo是oracle在undo段中记录的信息,用于取消或回滚事务。学习上要把重点放在undo的作用以及基本概念。 你对数据执行修改时,oracle会生成undo信息,以便回到更改前的状态。我们可以通过闪回事务历史读取undo。 undo在数据库内部存储在一组特殊的段中,称之为undo段。 rollback segme
Difference between TRUNCATE, DELETE and DROP commands
The DELETE command is used to remove the Tables data either selective or all and put the data in an rollback segment as well where from a read consistent view or a flashback view can be seen even after commit and one can rollback the tables data after delete as well. After performing a DELETE operation you need to COMMIT or ROLLBACK the transaction to make the change permanent or to undo it.one more thing delete doesn\' resets the HWM and space occupied with insert can\'