ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » Oracle入门与认证 » 《深入浅出ORACLE》读后总结

标题: [笔记] 《深入浅出ORACLE》读后总结
离线 fenggdkp



精华贴数 0
个人空间 0
技术积分 8 (120478)
社区积分 0 (1665504)
注册日期 2007-12-23
论坛徽章:0
      
      

发表于 2007-12-23 16:19 
《深入浅出ORACLE》读后总结

粗略地读了深入浅出ORACLE DBA入门、进阶、与诊断案例,下面是对一些基础概念的理解。欢迎纠正。

数据库启动经过三个阶段:跟据参数文件的参数建立例程(nomount状态);根据控制文件、密码文件启动到mount状态;根据控制文件记录的日志文件、数据文件信息打开数据库,如果数据库启动失败,可以先确定在哪一阶段出错,然后配合警告文件分析原因。

回滚段的两个作用是:撤销未提交的事务;通过回滚段的多版本机制实现语句读一致性、事务读一致性,实现非阻塞读。

Oracleo为每一个事务只分配一个回滚段,并且回滚段空间是循环利用的,当回滚段没有空闲空间时,新事务会覆盖已提交事务的信息。如果一个查询的时间过长,在查询过程中有数据被其它会话修改并提交,这时需要从回滚段读出查询开始那一刻版本的数据,如果刚好回滚段这个数据已被覆盖,则会发生snap too old的错误。另外延迟块清除也会导致snap too old的错误。

数据段、回滚段保存在数据文件中;REDO数据则保存在在线重做日志和归档重做日志文件中;两者在内存里分别对应数据缓冲区、重做日志缓冲区。

当DML语句修改数据记录时,事务对数据段的修改会在回滚段产生辙销信息,而无论是数据段的修改还是回滚段的修改,都会产生重做日志记录。提交事务时,会立即将重做日志缓冲区的重做记录写入重做日志文件,而数据缓冲区的脏数据块未必立即写入数据文件。

检查点发生时会将检查点前的数据缓冲区中的脏数据块写回数据文件,并同步数据文件、控制文件的检查点scn。由于实例恢复是由检查点开始前滚(利用重做日志重做未写入数据文件的事务修改)回滚(利用回滚段撤销未提交事务)的,因此可以通过控制检查点发生的频率,缩短实例恢复的时间。

数据库启动时会检查控制文件的检查点SCN与数据文件的检查点SCN、stop scn。如果三者相等,说明上次正常关闭数据库并发生了检查点,数据库可以正常启动。如果控制文件的检查点SCN等于数据文件的检查点SCN,但数据文件的stop scn为无穷大,则说明上次启动是非正常关闭没有发生检查点,要进行实例恢复才能打开数据库。如果控制文件的检查点SCN不等于数据文件的检查点SCN,则说明两者版本不一致,需要进行介质恢复。

切换日志时会发生检查点,切换日志并完成检查点后,旧日志的重做记录对于崩溃/实例不再有用,这是因为Redo是重做的意思,是在实例恢复时跟据这些重做记录将未写入数据文件而丢失的修改重做。但是发生检查点后会将检查点SCN之前的脏数据块写入数据文件,既已写入,实例恢复时也不用重做了。

重做日志组有Current、Active、Inactive、Unused几种状态。Current是当前正在使用的日志组,Active表明检查点未完成,以上两种在实例恢复时都需要,因为数据的修改不能确保都已写入数据文件。Inactive的日志组表明检查点已完成,数据的修改已写入数据文件,实例恢复时不需要;Unused是指还没有使用地的日志组。因此如果丢失/损坏Current、Active的日志组,则可能会丢失数据(如果是正常半闭数据库后才丢失/损坏,因为正常半闭时会发生检查点,则也不会丢失数据);如果只是丢失/损坏Inactive日志组,则不会丢失数据。以上的观点是在归档模式中的情况。

Oracle实现两种事务隔离级别,Readcommit级别保证查询返回查询开始时刻之前已提交的数据,Serializable级别保证查询返回事务开始时刻之前已提交的数据。

[ 本帖最后由 fenggdkp 于 2007-12-24 10:06 编辑 ]


只看该作者    顶部
离线 wlp2005



精华贴数 0
个人空间 0
技术积分 2 (222926)
社区积分 0 (1665841)
注册日期 2007-12-24
论坛徽章:0
      
      

发表于 2007-12-24 01:51 
sdfhshh


只看该作者    顶部
离线 tolywang
高级会员


精华贴数 4
个人空间 1429
技术积分 14996 (73)
社区积分 4240 (339)
注册日期 2003-1-23
论坛徽章:17
现任管理团队成员会员2007贡献徽章2008北京奥运纪念徽章:羽毛球2008北京奥运纪念徽章:排球2008北京奥运纪念徽章:篮球生肖徽章2007版:虎
生肖徽章2007版:虎     

发表于 2007-12-24 11:20 
checkpoint , scn是一个比较难的点


__________________
成功的人找方法 , 失败的人找理由 .

MSN :   qiwang1979@hotmail.com
Mail   :   qiwang1979@126.com


Oracle QQ群組:  42235266     (欢迎加入讨论Oracle问题)


春暖花开



My Space



======================
概念上清晰/理论上了解/操作上熟悉
======================


常去的几个站:

  Documentation Library   |  Metalink   |   Ixora  |  Experts-exchange   |  
Itpub   |  Oracle Document   |   Orakle  |   Ask Tom
只看该作者    顶部
离线 brotherxiao
brotherxiao


精华贴数 0
个人空间 0
技术积分 999 (1841)
社区积分 27 (6581)
注册日期 2004-9-22
论坛徽章:3
参与2007年甲骨文全球大会(中国上海)纪念授权会员生肖徽章2007版:鼠   
      

发表于 2007-12-24 19:24 
不错


__________________
只看该作者    顶部
离线 stronghearted
资深会员


精华贴数 0
个人空间 0
技术积分 3087 (486)
社区积分 132 (2974)
注册日期 2007-4-19
论坛徽章:7
会员2007贡献徽章授权会员生肖徽章2007版:羊2008年新春纪念徽章生肖徽章2007版:鸡生肖徽章2007版:鼠
ITPUB新首页上线纪念徽章     

发表于 2007-12-25 00:28 
这本书可不能粗略读噢

至少要把dump出来的内容基本能看懂。

这本还是有点深度的。


__________________
我的茅庐

我的伊妹儿

佛曰:
让我们成熟的,是经历,是磨难;
让我们幸福的,是宽容,是爱;
让我们心安的,是理解,是信任。
只看该作者    顶部
离线 fenggdkp



精华贴数 0
个人空间 0
技术积分 8 (120478)
社区积分 0 (1665504)
注册日期 2007-12-23
论坛徽章:0
      
      

发表于 2007-12-25 01:49 
正是,细节部份确实需要有耐心坚持下去。


只看该作者    顶部
离线 rouqu0129
一般会员


精华贴数 0
个人空间 0
技术积分 201 (9411)
社区积分 10 (10864)
注册日期 2005-9-12
论坛徽章:0
      
      

发表于 2007-12-25 10:41 
顶完再看


只看该作者    顶部
离线 学习数据库
初级会员



精华贴数 0
个人空间 0
技术积分 98 (16939)
社区积分 10 (10928)
注册日期 2006-7-13
论坛徽章:1
数据库板块每日发贴之星     
      

发表于 2008-1-14 15:35 
学习了 谢谢


只看该作者    顶部
离线 hdydmichael
中级会员



精华贴数 0
个人空间 0
技术积分 2688 (577)
社区积分 0 (1333187)
注册日期 2007-4-4
论坛徽章:4
数据库板块每日发贴之星2008北京奥运纪念徽章:曲棍球    
      

发表于 2008-6-29 18:53 
回复 #1 fenggdkp 的帖子

重做日志组有Current、Active、Inactive、Unused几种状态。Current是当前正在使用的日志组,Active表明检查点未完成,以上两种在实例恢复时都需要,因为数据的修改不能确保都已写入数据文件。Inactive的日志组表明检查点已完成,数据的修改已写入数据文件,实例恢复时不需要;Unused是指还没有使用地的日志组。因此如果丢失/损坏Current、Active的日志组,则可能会丢失数据(如果是正常半闭数据库后才丢失/损坏,因为正常半闭时会发生检查点,则也不会丢失数据);如果只是丢失/损坏Inactive日志组,则不会丢失数据。以上的观点是在归档模式中的情况。



-----------------

如果只是丢失/损坏Inactive日志组,则不会丢失数据,这个我同意。

但是假设丢失的虽然是active的,碰巧这个active的已经归档OK了。那也应该不会丢数据吧?


__________________
不管问题有多初级,都要搞清楚。
还是要提问,光看书就是不行。
至少平均每日发帖达到 3.00 帖子
只看该作者    顶部
离线 Alienovo
DBA ON THE ROAD


精华贴数 0
个人空间 10
技术积分 2611 (595)
社区积分 5516 (271)
注册日期 2006-7-12
论坛徽章:31
红孩儿授权会员生肖徽章2007版:狗生肖徽章2007版:猪2008北京奥运纪念徽章:花样游泳2008北京奥运纪念徽章:足球
行业板块每日发贴之星行业板块每日发贴之星2008北京奥运纪念徽章:田径2008北京奥运纪念徽章:举重2008北京奥运纪念徽章:垒球2008北京奥运纪念徽章:羽毛球

发表于 2008-6-30 09:29 
不错~


只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问