我是靠谱客的博主 谨慎糖豆,最近开发中收集的这篇文章主要介绍Oracle数据文件scn不一致,数据文件SCN的一致性问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、数据库正常运行中,所有数据文件的SCN都是一致的吗?

2、将一数据文件offline后,再将其online时,这个数据文件的SCN会前提吗?假如是,前提到的SCN是怎么确定的?

1.数据库正常运行时,所有数据文件的SCN不一定一致。

问题在这个所有上,比如Offline表空间,数据文件的SCN会被冻结,而且表空间的数据文件offline/online时又会发生文件检查点,使单个数据文件SCN和数据库其他问题不一致。

2.表空间online时,Oracle会取得当前SCN,解冻offline文件SCN,和当前SCN同步。

简单的实验就可以清晰地看到这些变化:

SQL> set echo on

SQL> @a

SQL> alter system checkpoint;

System altered.

SQL> select file#,checkpoint_change# from v$datafile;

FILE#   CHECKPOINT_CHANGE#

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

1     546198149

2     546198149

3     546198149

SQL> select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER

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

546198149

SQL> alter tablespace users offline;

Tablespace altered.

SQL> select file#,checkpoint_change# from v$datafile;

FILE#   CHECKPOINT_CHANGE#

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

1     546198149

2     546198149

3     546198153

SQL> select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER

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

546198159

SQL> alter tablespace users online;

Tablespace altered.

SQL> select file#,checkpoint_change# from v$datafile;

FILE#   CHECKPOINT_CHANGE#

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

1     546198149

2     546198149

3     546198162

SQL>

SQL> select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER

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

546198178

如果是单纯的offline datafile,那么将不会触发文件检查点,只有针对offline tablespace的时候才会触发文件检查点,这也是为什么online datafile需要media recovery而online tablespace不需要。

实验结果是最好的明证。

最后

以上就是谨慎糖豆为你收集整理的Oracle数据文件scn不一致,数据文件SCN的一致性问题的全部内容,希望文章能够帮你解决Oracle数据文件scn不一致,数据文件SCN的一致性问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部