通过DUMP文件头来观察FILE OFFLINE,TABLESPACE OFFLINE,HOT BACKUP的区别(1)

简介: oradebug dump FILE_HDRS n; alter system set set event='immediate trace FILE_HDRS LEVEL n'; N=1: The control file’s entry of the data file.
oradebug dump FILE_HDRS n;
alter system set set event='immediate trace FILE_HDRS LEVEL n';


N=1: The control file’s entry of the data file. This appears before the string FILE 
HEADER, and is not shown on the slide. It will be covered in the control file dump. 
N=2: The control file’s entry and generic header. This has been covered in the 
previous slide, and is not shown on the above slide. 
N=3: The control file’s entry, generic header, and the header information in the data 
file. This causes the file tobe opened and read if the database is only mounted. 


LEVEL 1的DUMP 只会DUMP CONTROFILE FILE中关于数据文件的信息,我们先只分析一样CONTROFILE中关于DATAFILE HEADER的信息
这里我进行3个不同操作
1、USER01.DBF 进行了ALTER DATABASE DATAFILE OFFLINE的操作。
2、testo1.dbf 进行了ALTER TABLESPACE OFFLINE的操作,就是整个表空间的OFFLINE操作,OFFLINE DATAFILE是需要RECOVERY的但是OFFLINE TABLESPACE 不需要。
3、testo2.dbf 进行了BEGIN BACKUP 操作。


用于进行比较


首先查看status状态信息,
USER01.DBF 为1C 此状态为OFFLINE DATAFILE的状态
testo1.dbf 为80 此状态为OFFLINE TABLESPACE的状态
testo2.dbf 为e  此状态和ONLINE没有两样


然后进行CHECKPOINT的比较
USER01.DBF CHECKPOINT SCN为361c02,但是STOP SCN为36403d,这是最后脏数据写盘的SCN可以发现他们并不相同,如果查看视图
SQL> select CHECKPOINT_CHANGE#,LAST_CHANGE#,OFFLINE_CHANGE# from vdatafile where file#=4;   CHECKPOINT_CHANGE# LAST_CHANGE# OFFLINE_CHANGE#   ------------------ ------------ ---------------              3546114      3555389         1923486   SQL> select to_char('3555389','xxxxxxx'),to_char('3546114','xxxxxxx'),to_char('3555389','xxxxxxx') from dual;   TO_CHAR('3555389','XXXXXXX') TO_CHAR('3546114','XXXXXXX') TO_CHAR('3555389','XXXXXXX')   ---------------------------- ---------------------------- ----------------------------     36403d                       361c02                       36403d       我们可以看到同样的信息,这也说明vdatafile where file#=4;
  CHECKPOINT_CHANGE# LAST_CHANGE# OFFLINE_CHANGE#
  ------------------ ------------ ---------------
             3546114      3555389         1923486
  SQL> select to_char('3555389','xxxxxxx'),to_char('3546114','xxxxxxx'),to_char('3555389','xxxxxxx') from dual;
  TO_CHAR('3555389','XXXXXXX') TO_CHAR('3546114','XXXXXXX') TO_CHAR('3555389','XXXXXXX')
  ---------------------------- ---------------------------- ----------------------------
    36403d                       361c02                       36403d
 
 
  我们可以看到同样的信息,这也说明v
datafile的这部分信息来自于控制文件


testo1.dbf CHECKPINT SCN为003642cb,STOP SCN 为003642cb,这表明进行TABLESPACE OFFLINE进行了一次CHECKPOINT来保证各个TABLESPACE
各个数据文件的数据一致,这应该就是为什么OFFLINE TABLESPACE 不需要RECOVERY的原因,但是Offline scn: 0x0000.001d599e并没有改变,
这里的Offline scn和Online Checkpointed at scn应该对应的是VDATAFILE的OFFLINE_CHANGE#和ONLINE_CHANGE#字段,只有在下一次进行ONLINE   的时候这里才会更改,同样查看一下   SQL> select CHECKPOINT_CHANGE#,LAST_CHANGE#,OFFLINE_CHANGE# from vDATAFILE的OFFLINE_CHANGE#和ONLINE_CHANGE#字段,只有在下一次进行ONLINE
  的时候这里才会更改,同样查看一下
  SQL> select CHECKPOINT_CHANGE#,LAST_CHANGE#,OFFLINE_CHANGE# from v
datafile where file#=9;
CHECKPOINT_CHANGE# LAST_CHANGE# OFFLINE_CHANGE#
------------------ ------------ ---------------
           3556043      3556043         1923486


SQL> select to_char('3556043','xxxxxxx'),to_char('3556043','xxxxxxx'),to_char('1923486','xxxxxxx') from dual;
TO_CHAR('3556043','XXXXXXX') TO_CHAR('3556043','XXXXXXX') TO_CHAR('1923486','XXXXXXX')
---------------------------- ---------------------------- ----------------------------
  3642cb                       3642cb                       1d599e


可以完全对应上的


最后来看一下testo2.dbf他是进行了BEGIN BACKUP的操作,可以看到
Checkpoint cnt:196 scn: 0x0000.003642ba 02/24/2015 08:48:08
Stop scn: 0xffff.ffffffff 02/20/2015 15:19:43
这里和ONLINE的文件没有什么两样,只是BEGIN BACKUP 额外做了一次 full checkpoint,来记录开始热备的SCN,这一点在视图VBACKUPDATAFILEHEADERCONTROLFILEDUMPCONTROLFILEDATAFILEHEADERDUMPSTOPSCNF(SCNBASESCN+WRAPSCNWRAPSCN4BASESCN8)SCNSCN使SHOWDOWNABORTCHECKPOINTSTOPABORTVDATAFILE中 LAST SCN 异常的原因,等会可以看一下。
最后关注一点
Hot Backup end marker scn: 0x0000.00000000,这里未找到官方解释,字面意思为热备结束后记录的SCN,可以测试一下。
如下是CONTROLFILE DATAFILE HEADER 关于3种模式的DUMP。


DATA FILE #4: 
  (name #16) /oradata/xuexi/users01.dbf
creation size=0 block size=8192 status=0x1c head=16 tail=16 dup=1
 tablespace 4, index=4 krfil=4 prev_file=0
 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
 Checkpoint cnt:509 scn: 0x0000.00361c02 02/24/2015 04:33:52
 Stop scn: 0x0000.0036403d 02/24/2015 08:30:22
 Creation Checkpointed at scn:  0x0000.000027b9 10/22/2005 21:45:00
 thread:0 rba:(0x0.0.0)
 enabled  threads:  00000000 .. 00000000
 Offline scn: 0x0000.001d599e prev_range: 0
 Online Checkpointed at scn:  0x0000.001d599f 10/04/2013 22:14:48
 thread:1 rba:(0x1.2.0)
 enabled  threads:  01000000 .. 00000000
 Hot Backup end marker scn: 0x0000.00000000
 aux_file is NOT DEFINED 
 
DATA FILE #9: 
  (name #11) /oradata/xuexi/XUEXI/datafile/testo1.dbf
creation size=0 block size=8192 status=0x80 head=11 tail=11 dup=1
 tablespace 11, index=9 krfil=9 prev_file=0
 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
 Checkpoint cnt:202 scn: 0x0000.003642cb 02/24/2015 08:48:22
 Stop scn: 0x0000.003642cb 02/24/2015 08:48:22
 Creation Checkpointed at scn:  0x0000.001b4e8c 08/10/2013 20:37:14
 thread:0 rba:(0x0.0.0)
 enabled  threads:  00000000 .. 00000000
 Offline scn: 0x0000.001d599e prev_range: 0
 Online Checkpointed at scn:  0x0000.001d599f 10/04/2013 22:14:48
 thread:1 rba:(0x1.2.0)
 enabled  threads:  01000000 .. 00000000
 Hot Backup end marker scn: 0x0000.00000000
 aux_file is NOT DEFINED 
 
DATA FILE #10: 
  (name #10) /oradata/xuexi/XUEXI/datafile/testo2.dbf
creation size=0 block size=8192 status=0xe head=10 tail=10 dup=1
 tablespace 12, index=10 krfil=10 prev_file=0
 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
 Checkpoint cnt:196 scn: 0x0000.003642ba 02/24/2015 08:48:08
 Stop scn: 0xffff.ffffffff 02/20/2015 15:19:43
 Creation Checkpointed at scn:  0x0000.001b525b 08/10/2013 21:20:44
 thread:0 rba:(0x0.0.0)
 enabled  threads:  00000000 .. 00000000
 Offline scn: 0x0000.001d599e prev_range: 0
 Online Checkpointed at scn:  0x0000.001d599f 10/04/2013 22:14:48
 thread:1 rba:(0x1.2.0)
 enabled  threads:  01000000 .. 00000000
 Hot Backup end marker scn: 0x0000.00000000
 aux_file is NOT DEFINED 
DUMP OF TEMP FILES: 1 files in database
最后来测试一下几个问题
1、VDATAFILELASTSCNshutdownabortStopscn:0xffff.ffffffffVDATAFILE中的OFFLINE_CHANGE#没有更新,


所以STOP DATABASE(正常情况下),OFFLINE DATAFILE,OFFLINE TABLESAPCE都会更新
此信息




2、OFFLINE_CHANGE#和ONLINE_CHANGE#会在 online的时候更新
SQL> recover datafile 4;
Media recovery complete.
SQL> alter database datafile 4 online;
SQL> alter tablespace testo1 online;
Tablespace altered


这样我们对DATAFILE 4进行了ONLINE他是默认的USER表空间唯一的数据文件,
同时对TESTO1表空间进行了ONLINE
SQL> select CHECKPOINT_CHANGE#,LAST_CHANGE#,OFFLINE_CHANGE#,online_change# from v$datafile where file# in (4,9);
CHECKPOINT_CHANGE# LAST_CHANGE# OFFLINE_CHANGE# ONLINE_CHANGE#
------------------ ------------ --------------- --------------
           3558940                      1923486        1923487
           3558898                      3556043        3558898
DUMP 观察
FILE 4(DATAFILE ONLINE)
Offline scn: 0x0000.001d599e prev_range: 0
Online Checkpointed at scn:  0x0000.001d599f 10/04/2013 22:14:48
无改变


FILE 9(TABLESPACE ONLINE)
Offline scn: 0x0000.003642cb prev_range: 0
Online Checkpointed at scn:  0x0000.00364df2 02/24/2015 10:13:27
已经更改,并且OFFLINE SCN已经更改为上一次我们SCN:3642cb,而ONLINE后同样
进行了一次CHECKPOINT记录了其ONLINE的SCN


所以offline scn和Online Checkpointed at scn仅仅对TABLESPACE 这样的OFFLINE有效。




3、Hot Backup end marker scn会在END BACKUP 后跟新
SQL> alter tablespace testo2 end backup;
Tablespace altered
DUMP 观察
Hot Backup end marker scn: 0x0000.00000000
可以看到END后任然没有任何变化,不知道何用。


最后我们看一下此信息中还包含了
unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
不能恢复的SCN,一般是NOLOGGING造成
目录
打赏
0
0
0
0
91
分享
相关文章
tablespace offline与datafile offline 区别
一.DataFile脱机或联机的两种方法:     ① ALTER DATABASE 语句修改单独的DataFile     ② ALTER TABLESPACE 语句修改所有的DataFile       ...
1168 0
[20130814] 12C Online rename and relocation of an active data file.txt
[20130814] 12C Online rename and relocation of an active data file.txt12c下更改数据文件可以在线修改,不像以前那样需要offline,改名后再online。
924 0
PG异常无法启动的问题:could not read file "pg_logical/replorigin_checkpoint": Success
问题描述 新安装不久的PostgreSQL数据库,断电后重启,查看日志如下 2019-01-08 08:44:19.989 UTC [7493] LOG: database system was interrupted; last known up at 2018-12-24 10:56:28 UTC 2019-01-08 08:44:19.
3465 0
|
10月前
|
How to set the Undo_tablespace in PDB in Physical Standby RAC Database. (Doc ID 2726173.1)
How to set the Undo_tablespace in PDB in Physical Standby RAC Database. (Doc ID 2726173.1)
77 1
消除11.2上的db file parallel read
客户在11.2.0.3环境中进行压力测试,发现出现大量的db file parallel read等待事件。     这个等待是11g以后才出现的,而在11g以前,一般这个等待事件发生在数据文件的恢复过程中。
993 0
[20151028]理解数据文件offline+drop.txt
[20151028]理解数据文件offline+drop.txt --前几天做删除数据文件的恢复测试,自己在理解offline drop的方式存在错误,做一个记录: The ALTER DATABASE DATAFILE OFFLINE DROP command, is not meant to allow you to remove a datafile.
857 0
ORA-1652: unable to extend temp segment by 128 in tablespace xxx Troubleshootin
当收到告警信息ORA-01652: unable to extend temp segment by 128 in tablespace xxxx 时,如何Troubleshooting ORA-1652这样的问题呢? 当然一般xxx是临时表空间,也有可能是用户表空间。
2126 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等