Oracle database datafile header中记录的datafile的大小

本文的环境:Oracle Databae 12.1.0.2, rhel5.9 x86-64bit

[[email protected] orcl]$ pwd
/u01/app/oracle/oradata/orcl
[[email protected] orcl]$ ls -lrt
total 2386544
drwxr-x--- 2 oracle oinstall      4096 Dec 26  2014 pdbseed
drwxr-x--- 2 oracle oinstall      4096 Dec 26  2014 PN1
drwxr-x--- 2 oracle oinstall      4096 Dec 26  2014 PN2
-rw-r----- 1 oracle oinstall   5251072 Jul 31 13:26 users01.dbf
-rw-r----- 1 oracle oinstall  52429312 Jul 31 13:26 redo03.log
-rw-r----- 1 oracle oinstall  52429312 Jul 31 13:26 redo01.log
-rw-r----- 1 oracle oinstall  74457088 Jul 31 20:01 temp01.dbf
-rw-r----- 1 oracle oinstall 602939392 Jul 31 20:25 undotbs01.dbf
-rw-r----- 1 oracle oinstall 870326272 Jul 31 20:25 system01.dbf
-rw-r----- 1 oracle oinstall 765468672 Jul 31 20:25 sysaux01.dbf
-rw-r----- 1 oracle oinstall  52429312 Jul 31 20:26 redo02.log
-rw-r----- 1 oracle oinstall  17973248 Jul 31 20:26 control01.ctl
[[email protected] orcl]$ dd if=/u01/app/oracle/oradata/orcl/system01.dbf bs=512 count=1 | od -x
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.027559 seconds, 18.6 kB/s
0000000 a200 0000 0000 ffc0 0000 0000 0000 0000
0000020 6567 0000 2000 0000 9f00 0001 7c7d 7a7b
0000040 81a0 0000 0000 0000 0000 0000 0000 0000
0000060 0000 0000 0000 0000 0000 0000 0000 0000
*
0001000
[[email protected] orcl]$ dd if=/u01/app/oracle/oradata/orcl/system01.dbf bs=512 count=1 | od -i
1+0 records in
1+0 records out
512 bytes (512 B) copied, 2.9e-05 seconds, 17.7 MB/s
0000000       41472    -4194304           0           0
0000020       25959        8192      106240  2054913149
0000040       33184           0           0           0
0000060           0           0           0           0
*
0001000
[[email protected] orcl]$
[[email protected] orcl]$
[[email protected] orcl]$ ls -lrt

8192*106240=870318080
而 ls -lrt的结果中显示system01.dbf的大小为:870326272
870326272-870318080=8192,这多出的一个就是datafile中的os header,
参见文章:
How to Detect and Fix a Corruption in the Datafile OS Header/Block Zero - ORA-27047 DBV-107 ORA-1157/ORA-27048 (文档 ID 360032.1)

8192手工计算过程;

2000 0000  翻转后:00002000,换算成十进制,就是8192

106240手工计算过程:

9f00 0001  翻转后:00019f00, 换算成十进制,就是106240

参考文章:

HOW TO GET DATAFILE SIZE THROUGH DD (文档 ID 274445.1)

注:该文章仅仅能提供计算的思路,其实里边的db block 的数量的换算过程是错误的。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-27 18:53:24

Oracle database datafile header中记录的datafile的大小的相关文章

在Oracle Database 12.1 中异机迁移恢复数据库【实战】

平台环境:源OS:Oracle Linux 7.3源DB:Oracle Database 12.1.0.2 目标OS:Oracle Linux 7.3目标DB:Oracle Database 12.1.0.2 一.准备工作1.查询当前SCN col current_scn form 99999999999999 SQL> select current_scn from v$database;     CURRENT_SCN ---------------   5965538762695 2.显示

Oracle database 11g一些重要的初始化参数(一)

初始化参数文件位置 D:\app\Administrator\admin\orcl1\pfile\init.ora init.ora 1.diagnostic_dest 在11g中,有一种新的存储诊断信息的结构,称为自动诊断信息库(Automaticd Diagnostic Repository ADR). 用些参数指定目录位置,如$ORACLE_BASE/diag/rdbms/orcl/orcl.其中第一个orcl为数据库名,第二个orcl为实例名. 2. fixed_date 是11g中的一

对oracle datafile header进行转储

环境: rhel5.5,x64,oracle 10.2.0.5.12 转储命令: alter session set events 'immediate trace name file_hdrs level 10'; 该命令摘自: How to Find DATE and TIME of Creation of Datafile? (Doc ID 1039747.6) [[email protected] udump]$ sqlplus / as sysdba SQL*Plus: Release

【翻译自mos文章】解释 datafile name中的MISSING关键字

来源于: Explanation of MISSING keyword in datafile name (文档 ID 1050268.1) 适用于: Oracle Server - Enterprise Edition - Version 7.3.4.0 to 11.2.0.1.0 [Release 7.3.4 to 11.2] Information in this document applies to any platform. 症状: datafile name中包括MISSING关键

从control file 和 datafile header上获得不同的scn信息

Database checkpoint scn --以下自于control file的 dump: Database checkpoint: Thread=1 scn: 0x0000.0006b6fe datafile checkpoint scn--以下来自于control file的 dump: DATA FILE #4: (name #4) /u01/app/oracle/oradata/orcl/users01.dbf creation size=0 block size=8192 st

oracle中记录被另一个用户锁住的原因与解决办法

oracle数据中删除数据时提示“记录被另一个用户锁住” 解决方法: 1.查看数据库锁,诊断锁的来源及类型: select object_id,session_id,locked_mode from v$locked_object; 或者用以下命令: select b.owner,b.object_name,l.session_id,l.locked_mode from v$locked_object l, dba_objects b where b.object_id=l.object_id

oracle随机抽取表中的n条记录

采样表扫描(sample table scan):扫描返回表中随机采样数据,这种访问方式需要在FROM语句中包含SAMPLE选项或者SAMPLE BLOCK选项. 注:从Oracle8i开始Oracle提供采样表扫描特性 2.使用sample获得随机结果集 2.1.语法: SAMPLE [ BLOCK ](sample_percent)[ SEED (seed_value) ] SAMPLE选项:表示按行采样来执行一个全表扫描,Oracle从表中读取特定百分比的记录,并判断是否满足WHERE子句

问题: Oracle Database 10g 未在当前操作系统中经过认证

在Windows 7中安装Oracle 10g. 使用的Orcale版本是10g. 步骤1: 在Orcale官网上下载,下载地址为:http://download.oracle.com/otn/nt/oracle10g/10203/10203_vista_w2k8_x86_production_db.zip 可以直接复制到迅雷中下载.大小为778M. 步骤2: 点击setup.exe安装,经过前置判断,如果出现如下错误信息: <提示有1个错误,1个警告,2个要求待验证 错误问题详细信息如下:正在

在Oracle Database 11gR2中已经废弃了 Listener Password

参考自:Deprecation of Listener Password in Oracle Database 11g Release 2 (文档 ID 1328725.1) 适用于: Oracle Net Services - Version 11.2.0.1 to 11.2.0.3 [Release 11.2] Information in this document applies to any platform. checked for currency 8-jul-2013 细节: 在