控制文件序列号满的分析.txt

来源:这里教程网 时间:2026-03-03 16:29:56 作者:

[20210224]控制文件序列号满的分析.txt --//上午看了链接:https://blog.csdn.net/enmotech/article/details/113855641,出现控制文件序列号满的情况,我从来没有遇到. --//下午没事,看看是否能在测试环境演示出来重复故障. --//注意不能在生产系统做这样的测试!!!很久没有做这类恢复工作,写的有点乱. 1.环境: SCOTT@book> @ ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production 2.测试: --//首先我仔细看了原始链接,我发现作者通过设置小的闪回区,不断切换归档,看查看控制文件顺序号. --//我自己也尝试了一下,导致归档满了,挂起,我认为跟这个没关系,实际上只要切换归档或者发出检查点, --//控制文件顺序号就会增加.我先验证这种情况. sqlplus -s -l scott/book << EOF | grep "[0-9]" set head off set feedback off $(seq 5 | xargs -I{} echo -e 'alter system checkpoint;\nselect  CONTROLFILE_SEQUENCE# from v$database;\nhost sleep 1') quit EOF                 36500                 36501                 36502                 36503                 36504 --//你可以发现发出检查点,CONTROLFILE_SEQUENCE#增加1. sqlplus -s -l scott/book << EOF | grep "[0-9]" set head off set feedback off $(seq 5 | xargs -I{} echo -e 'alter system switch logfile;\nselect  CONTROLFILE_SEQUENCE# from v$database;\nhost sleep 1') quit EOF                 36506                 36509                 36513                 36517                 36520 --//执行alter system switch logfile也是一样. --//我有一种预感可能对方日志可能切换过于频繁,可能导致控制文件序列号增加太快,消耗枯竭. 3.首先定位它在控制文件的什么位置. SYS@book> @ spid          SID      SERIAL# PROCESS                  SERVER    SPID       PID    P_SERIAL# C50 ------------ ------------ ------------------------ --------- ------ ------- ------------ --------------------------------------------------           30          261 57742                    DEDICATED 57743       26          101 alter system kill session '30,261' immediate; SCOTT@book> select  CONTROLFILE_SEQUENCE# from v$database; CONTROLFILE_SEQUENCE# ---------------------                 36571 $ strace  -f -p 57743 -e pread Process 57743 attached - interrupt to quit pread(256, "\25\302\0\0\1\0\0\0\0\0\0\0\0\0\1\4\327?\0\0\0\0\0\0\0\4 \vn!\267O"..., 16384, 16384) = 16384 pread(256, "\25\302\0\0\17\0\0\0j\275\0\0\377\377\1\4 C\0\0\0\6\0\0\0\0\0\0\0\0\0\4"..., 16384, 245760) = 16384 pread(256, "\25\302\0\0\21\0\0\0j\275\0\0\377\377\1\4\225Z\0\0\0\0\0\0\0\0\0\0\256\36q5"..., 16384, 278528) = 16384 pread(256, "\25\302\0\0\1\0\0\0\0\0\0\0\0\0\1\4\327?\0\0\0\0\0\0\0\4 \vn!\267O"..., 16384, 16384) = 16384 pread(256, "\25\302\0\0\17\0\0\0j\275\0\0\377\377\1\4 C\0\0\0\6\0\0\0\0\0\0\0\0\0\4"..., 16384, 245760) = 16384 pread(256, "\25\302\0\0\21\0\0\0j\275\0\0\377\377\1\4\225Z\0\0\0\0\0\0\0\0\0\0\256\36q5"..., 16384, 278528) = 16384

相关推荐