【转自Oracle ACS--惜总】正常关闭数据库sequence cache不为0 sequence不跳跃
2015-04-20 16:22
232 查看
原文网址: http://www.xifenfei.com/5831.html
发表于 2015
年 04 月 05 日 由 惜分飞
联系:手机(13429648788) QQ(107644445)
链接:http://www.xifenfei.com/5831.html
标题:正常关闭数据库sequence
cache不为0 sequence不跳跃
作者:惜分飞©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]
在Oracle中sequence使用很频繁,而大部分使用都配合了cache一起使用,那在sequence+cache一起使用的过程中,如果数据库正常关闭sequence.nextval如果变化,如果数据库异常关闭sequence.nextval又如何变化?这里通过试验进行了证明,结论为:在有cache的sequence中,正常关闭数据库sequence不会出现跳跃,异常关闭数据库很可能导致sequence出现跳跃
创建sequence测试
这里创建了一个名为SEQ_XIFENFEI的sequence,并且nextval已经查询到3,而且cache值设置为100,object_id为87549.
正常关闭数据库测试sequence.nextval变化
正常关闭数据库启动后,sequence.nextval依然在上次基础之上增加,并为出现跳跃现象.
异常关闭数据库测试sequence.nextval变化
异常关闭数据库启动后,sequence.nextvla发生跳跃从本该5直接跳跃到了104.
跟踪数据库正常关闭过程
再次证明了正常关闭数据库后,sequence.nextval未发生跳跃.
分析trace文件
这里我们找出来了为什么数据库正常关闭sequence.nextval在有cache的情况下,未发生跳跃:因为在数据库正常关闭的情况下,会触发一个update seq$的操作,把当前的sequence.nextval的值更新到seq$.highwater中,从而使得sequence在有cache的情况下,数据库正常关闭未出现nextval跳跃(currval也同样不跳跃);而在数据库异常关闭之时,数据库不能及时将sequence.nextval更新到eq$.highwater从而引起sequence
cache中的值丢失,从而可能出现了sequence使用cache导致跳跃的情况
关于另外一篇关于sequence cache减小update seq$频率的测试,请见:关于oracle
sequence一些小测试
发表于 2015
年 04 月 05 日 由 惜分飞
联系:手机(13429648788) QQ(107644445)
链接:http://www.xifenfei.com/5831.html
标题:正常关闭数据库sequence
cache不为0 sequence不跳跃
作者:惜分飞©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]
在Oracle中sequence使用很频繁,而大部分使用都配合了cache一起使用,那在sequence+cache一起使用的过程中,如果数据库正常关闭sequence.nextval如果变化,如果数据库异常关闭sequence.nextval又如何变化?这里通过试验进行了证明,结论为:在有cache的sequence中,正常关闭数据库sequence不会出现跳跃,异常关闭数据库很可能导致sequence出现跳跃
创建sequence测试
正常关闭数据库测试sequence.nextval变化
异常关闭数据库测试sequence.nextval变化
跟踪数据库正常关闭过程
分析trace文件
cache中的值丢失,从而可能出现了sequence使用cache导致跳跃的情况
关于另外一篇关于sequence cache减小update seq$频率的测试,请见:关于oracle
sequence一些小测试
相关文章推荐
- oracle 异常关闭操作 导致数据库无法正常关闭 也无法启动
- oracle 不能正常关闭
- oracle 10G rac启动与关闭正常顺序
- 【ORACLE】正常关闭时ORACLE如何根据SCN对数据库进行一致性判断
- oracle 10G rac启动与关闭正常顺序
- oracle正常关闭 下redo丢失恢复。
- oracle 异常关闭造成 -重启服务仍无法正常连接 -windows处理
- Oracle 正常关闭后 startup mount 提示监听程序当前无法识别连接描述附中请求的服务
- java程序员菜鸟进阶(四)oracle基础详解(四)oracle开启和关闭服务程序――解决安装oracle占用大量内存
- oracle序列(sequence)创建失败,无法取值(.nextval),无法删除(drop)解决办法
- SQLServer实现Oracle的Sequence很简单
- 查看Oracle当前用户下的主键、索引、sequence创建语句
- Linux下启动和关闭Oracle服务和监听程序
- Oracle的启动和关闭
- Linux 下 Oracle随系统自动启动和关闭
- Oracle(三)jdbc,系统函数,事物,约束,sequence,index
- oracle 序列 sequence
- 在Hibernate中使用oracle的sequence产生主键
- Oracle 9i 数据库异常关闭后的启动
- navicat远程连oracle:TNS连接超时,关闭防火墙就行了!!