问题描述
你好,问一下汤姆团队。
我在2节点RAC中有一个带有标识列的表。默认情况下生成序列,缓存3000和noorder选项。
我看到一些奇怪的东西。第一个插入是id 1,这意味着它来自实例1,然后是2,3。然后它是3001的,这很好,因为它来自实例2。实际上,该表有3k行,我看到id以9001开头的行。
为什么是这样?我预计序列将是从1到3000,从3001到6000,但永远不会9000。我错过了什么吗?
谢谢。
问候,
我在2节点RAC中有一个带有标识列的表。默认情况下生成序列,缓存3000和noorder选项。
我看到一些奇怪的东西。第一个插入是id 1,这意味着它来自实例1,然后是2,3。然后它是3001的,这很好,因为它来自实例2。实际上,该表有3k行,我看到id以9001开头的行。
为什么是这样?我预计序列将是从1到3000,从3001到6000,但永远不会9000。我错过了什么吗?
谢谢。
问候,
专家解答
初始化序列时,它会将下一个 值加载到内存 (库缓存) 中。
因此,当您首次使用缓存3000访问序列时,它会为该实例生成1-3000的所有值。第二个实例将获得3001-6000的值。
如果您很少访问该序列,那么最终数据库将使这些预先生成的值老化。意味着你失去了他们。下一次访问将获得6001-9000的值。
这是正常和预期的。
如果重新启动数据库实例,也会发生这种情况。
因此,当您首次使用缓存3000访问序列时,它会为该实例生成1-3000的所有值。第二个实例将获得3001-6000的值。
如果您很少访问该序列,那么最终数据库将使这些预先生成的值老化。意味着你失去了他们。下一次访问将获得6001-9000的值。
这是正常和预期的。
如果重新启动数据库实例,也会发生这种情况。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1483次阅读
2025-03-13 11:40:53
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
901次阅读
2025-03-17 11:33:53
RAC 19C 删除+新增节点
gh
549次阅读
2025-03-14 15:44:18
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
505次阅读
2025-03-13 14:38:19
Oracle DataGuard高可用性解决方案详解
孙莹
379次阅读
2025-03-26 23:27:33
墨天轮个人数说知识点合集
JiekeXu
324次阅读
2025-04-01 15:56:03
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
312次阅读
2025-04-08 09:12:48
Oracle SQL 执行计划分析与优化指南
Digital Observer
277次阅读
2025-04-01 11:08:44
切换Oracle归档路径后,不能正常删除原归档路径上的归档文件
dbaking
271次阅读
2025-03-19 14:41:51
风口浪尖!诚通证券扩容采购Oracle 793万...
Roger的数据库专栏
268次阅读
2025-03-24 09:42:53