首先一个序列的定义如下
-- Create sequence
create sequence SEQ1
minvalue 1
maxvalue 999999999999999999999999999
start with 1000
increment by 1
cache 20;
你认为依次执行select SEQ1.nextval from dual获得的值一定是有序的吗?
你认为最晚执行select SEQ1.nextval from dual获得的值一定是最大的吗?
如果这个oracle是单机的,答案是肯定的。
但是在RAC多节点环境下,就不对了。
下面的内容摘自网上,是被人测试的数据:--------------------------------------------------------------------
create sequence TX_SEND_SEQ_ACC
minvalue 1
maxvalue 999999999999999999999999999
start with 673560
increment by 1
cache 20;
RAC1取序列
SQL> select tx_send_seq_acc.nextval from dual;
NEXTVAL
----------
673560
SQL> select tx_send_seq_acc.nextval from dual;
NEXTVAL
----------
673561
RAC2取序列
SQL> select tx_send_seq_acc.nextval from dual;
NEXTVAL
----------
673580
SQL> select tx_send_seq_acc.nextval from dual;
NEXTVAL
----------
673581
由此可见两个节点的序列的最后一个值确实会不同,每个节点会预先占用20个序号,分配完后再开始下一段编号,这样会存在跳号问题,经大量数据测试,序列并不会重复生成,不存在重号问题。
----------------------------------------------------------------------------------------------------
所以你order by某一列的时候,如果这个列是通过序列插入的,得到的顺序并不一定是插入的顺序哦。
分享到:
相关推荐
- 导入数据时需要注意序列、触发器等对象的兼容性和一致性。 - **事后处理** - 检查并修复无效的存储过程、函数、包等对象。 - 启用索引、约束和触发器等,确保数据的一致性和完整性。 - 对导入的数据进行校验...
接下来,需要在HP-UX环境下安装ArcSDE,并将其配置为与Oracle RAC集群兼容。安装过程中,需特别注意权限设置和资源分配。由于ArcSDE在HP-UX上运行,而Oracle RAC则位于另一组服务器上,因此需确保所有必要的库文件和...
需要注意的是,它不包含关于undoblock和undo header transfers的信息。 2. **`V$INSTANCE_CACHE_TRANSFER`**: 这个视图可以帮助我们识别哪些实例在全局缓存中有最多的块级活动。 **示例查询**: ```sql SELECT * ...
### OGG 12c Oracle RAC到单实例同步 归档在本地搭建案例 #### 环境说明 在本案例中,我们将探讨如何利用Oracle GoldenGate (OGG) 12c 实现从Oracle Real Application Clusters (RAC) 环境到单实例环境的数据同步...
总结来说,处理Oracle RAC环境下的DG主备不同步问题,需要对数据库的架构、日志管理以及恢复机制有深入理解。在解决这类问题时,关键步骤包括识别问题的根源,执行适当的恢复操作,并确保在恢复后对系统进行全面检查...
Oracle RAC,全称为Real Application Clusters,是Oracle数据库的一种高可用性和性能增强技术,它允许多个数据库实例同时访问同一个物理数据库,从而实现数据库的负载均衡和故障切换。RAC技术的核心在于进程间的协作...
### Oracle 11GR2 RAC节点Crash故障分析 #### 概述 在Oracle 11GR2 RAC环境中,遇到节点Crash的情况是非常严重的问题,它可能会导致整个集群的不可用,进而影响业务系统的正常运行。本文将详细介绍一个实际案例中...
注意,安装RAC是一项复杂的工作,需要对Linux系统、网络和Oracle数据库有深入理解。在整个过程中,建议遵循Oracle官方文档,同时,确保所有的安全性和合规性要求都得到满足。此外,由于文档中提到了某些步骤未成功,...
Oracle数据库中的序列(Sequence)是一种用于生成唯一数值的数据库对象,通常用于自动...不过,需要注意的是,如果在并发环境中操作序列,可能会导致序列值的不一致,因此最好在无事务或锁定序列的情况下执行这些操作。
Oracle 11g Real Application Clusters (RAC) 是一种高可用性和可伸缩性的数据库解决方案,它允许多个节点共享同一数据库实例,提供故障切换和负载均衡能力。本篇文章将详细阐述如何开启和关闭Oracle 11g RAC,以及...
使用`ALTER TABLE`语句可以轻松地将`id`字段转换为`AUTO_INCREMENT`,但需要注意的是,这样做会丢失原有的自增序列设置,新的记录会从1开始递增。 为了解决这个问题,我们需要在转换之前确定现有数据的最大值,然后...
- 最后,打开数据库,可能需要使用 `ALTER DATABASE OPEN RESETLOGS` 命令,特别是如果恢复过程中产生了新的redo日志序列。 5. **平台兼容性**:注意,这些信息适用于Oracle Server - Enterprise Edition 的多个...
其他数据特征可能包括索引、分区、簇、同义词、序列、约束等,这些都是数据库的组成部分,需要在迁移时一并考虑。迁移这些特性需要细致的操作,以确保数据的完整性和一致性。 数据导出是迁移流程的一个重要环节,...
Oracle一般使用序列(Sequence)来处理主键字段,而MySQL则提供了自增长(increment)来实现类似的目的; 但在实际使用过程中发现,MySQL的自增长有诸多的弊端:不能控制步长、开始索引、是否循环等;若需要迁移数据库,...
9. **数据库集群**:学习Oracle RAC(Real Application Clusters)技术,了解如何构建和管理多节点的数据库集群,实现负载均衡和故障切换。 10. **Oracle云服务**:了解Oracle在云计算领域的解决方案,如Oracle ...
oracle中创建序列及序列补零实例详解 我们经常会在在DB中创建序列: -- Create sequence create sequence COMMON_SEQ minvalue 1 maxvalue 999999999 start with 1 increment by 1 cache 20 cycle; 我们的序列的...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级应用中占据着核心地位。这份"Oracle经典教程.pdf"提供...无论你是想成为数据库管理员,还是需要在开发中使用Oracle,这都是一个不可多得的学习资源。
解决这个问题可能需要分析DFS锁的使用模式,调整锁粒度,或者优化并发控制策略。 4. **enq SV - contention**: 这个等待事件可能与数据库的内部同步机制有关,尤其是涉及到存储过程、包或PL/SQL代码的执行时。...