1. 1440分钟, SCN, 权限(flashback any tables)

SQL> /*
SQL> 小结:
SQL> 1. 1440分钟, SCN, 权限(flashback any tables)
SQL> 2. 闪回表:将表回退到过去的一个时间或者SCN
SQL> *. 不能跨越DDL
SQL> *. 不能闪回系统表
SQL> *. 必须知道离该操作最近的一个时间或者SCN(问题???)
SQL> *. 行移动
SQL> 3. 闪回删除: Oracle回收站
SQL> *. 双引号
SQL> *. 通过表名闪回删除
SQL> *. 重名的表(先操作后删除的表)
SQL> 2. 闪回表: * 触发器
SQL> */
在 Oracle 11gR1(即 11.1.0.x)版本中,SCN(System Change Number)是数据库内部用于标识事务一致性点的重要机制,它在整个数据库恢复和事务一致性控制中起着核心作用。 ### SCN 的基本作用 SCN 是一个单调递增的数字,用于表示数据库在某个时间点的状态。每个事务提交时都会生成一个新的 SCN,该 SCN 被记录在重做日志中,并用于确保数据文件、控制文件和重做日志文件之间的一致性。SCN 也用于实例恢复、介质恢复和 RAC(Real Application Clusters)环境中的事务同步。 ### Oracle 11gR1 中的 SCN 机制 Oracle 11gR1 版本继续使用了从 10gR2 开始引入的 **immediate commit propagation(BOC)** 机制,即在多节点 RAC 环境中,一个节点上的事务提交 SCN 会立即传播到所有其他节点,从而确保所有节点之间的 SCN 同步[^3]。这种机制提高了事务的实时性和一致性,避免了早期版本中使用 Lamport SCN 所带来的延迟问题。 ### SCN 的获取方式 在 Oracle 数据库中,可以通过以下方式获取当前 SCN: ```sql SELECT current_scn FROM v$database; ``` 此外,还可以通过查询 `V$LOG` 和 `V$LOGFILE` 等视图来查看与 SCN 相关的日志信息: ```sql SELECT group#, sequence#, bytes, members, status FROM v$log; SELECT * FROM v$logfile; ``` ### SCN 与恢复操作 在进行数据库恢复时,SCN 是关键的参考指标。例如,在使用 RMAN(Recovery Manager)进行恢复操作时,可以指定恢复到某个特定的 SCN: ```sql RUN { SET UNTIL SCN 1234567; RESTORE DATABASE; RECOVER DATABASE; } ``` ### SCN 与 RAC 环境 在 Oracle RAC 环境中,SCN 的同步机制尤为重要。11gR1 默认使用 BOC(Broadcast on Commit)机制,确保每个节点的 SCN 在事务提交时立即同步到所有其他节点。这种机制减少了节点之间 SCN 不一致的风险,提高了系统的高可用性和一致性[^3]。 ### SCN数据库性能 虽然 BOC 机制提高了事务的实时性,但在高并发写入场景下,频繁的 SCN 同步可能会对性能产生一定影响。因此,在某些特定场景下,可以通过调整 `MAX_COMMIT_PROPAGATION_DELAY` 参数来控制 SCN 同步的行为。虽然该参数在 10gR2 及以后版本中默认为 0(表示启用 BOC),但在 11gR1 中仍然可以手动设置为更大的值以缓解性能压力。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值