Oracle下绝对文件号和相对文件号区别

简介:
一:oracle官方给出的描述
Oracle Database assigns each datafile two associated file numbers, an absolute file
number and a relative file number, that are used to uniquely identify it
 
AbsoluteUniquely identifies a datafile in the database. This file number can be used in many SQL statements that reference datafiles in place of using the file name. The absolute file number can be found in the FILE# column of the V$DATAFILE or V$TEMPFILE view, or in the FILE_ID column of the DBA_DATA_FILES or DBA_TEMP_FILES  view
 
RelativeUniquely identifies a datafile within a tablespace. For small and medium size databases, relative file numbers usually have the same value as the absolute file number. However, when the
number of datafiles in a database exceeds a threshold (typically 1023), the relative file number differs from the absolute file number. In a bigfile tablespace, the relative file number is always
1024 (4096 on OS/390 platform).
 
二:总结如下
总述:oracle数据库会给每一个新创建的datafile分配一个绝对文件号和相对文件号,两者都用于唯一性标识该数据文件,只不过标识范围不一样。

 

绝对文件号:
绝对文件号数据库范围内唯一标识一个数据文件
2 sql语句中常常用绝对文件号代替该数据文件名字。
绝对文件号可通过查询视图v$datafile|v$tempfile|dba_data_files|dba_temp_files相关字段file#|file_id 获得
例如:v$datafile file#字段
select file#,name,status from v$datafile
 
     FILE# NAME                                     STATUS
---------- ---------------------------------------- -------
         1 /oracle/CRM2/system1.dbf                 SYSTEM
         2 /oracle/CRM2/zxb.dbf                     ONLINE
         3 /oracle/CRM2/CRM/sysaux01.dbf            ONLINE
         4 /oracle/CRM2/CRM/users01.dbf             ONLINE
         5 /oracle/CRM2/zxa.dbf                     ONLINE
         6 /oracle/CRM2/CRM/test1.dbf               ONLINE
         7 /oracle/CRM2/zxc.dbf                     ONLINE
         8 /oracle/CRM2/CRM/undotbs1.dbf            ONLINE
相当文件号:
相对文件号在表空间范围内唯一标识一个数据文件。
数据库内数据文件没有超过1023个,相对文件号和绝对文件号相等,反之则不同。
在大表空间中数据文件相对文件号总是1024
查询v$datafile|v$tempfile字段RFILE# ,dba_data_files|dba_temp_files字段RELATIVE_FNO等,可查出相对文件号。
 
1 v$datafile的字段rfile#
SQL> Select file#,rfile#,name,status from v$datafile;
 
     FILE#     RFILE#  NAME                                     STATUS
---------- ---------- ---------------------------------------- -------
         1          1   /oracle/CRM2/system1.dbf                 SYSTEM
         2          2   /oracle/CRM2/zxb.dbf                     ONLINE
         3          3   /oracle/CRM2/CRM/sysaux01.dbf            ONLINE
         4          4   /oracle/CRM2/CRM/users01.dbf             ONLINE
         5          5   /oracle/CRM2/zxa.dbf                     ONLINE
         6          6   /oracle/CRM2/CRM/test1.dbf               ONLINE
         7          7   /oracle/CRM2/zxc.dbf                     ONLINE
         8          8   /oracle/CRM2/CRM/undotbs1.dbf            ONLINE
 
8 rows selected.
大表空间绝对文件号和相对文件号情况
 
SQL> select file#,rfile#,name,status from v$datafile;
 
     FILE#     RFILE#  NAME                                     STATUS
---------- ---------- ---------------------------------------- -------
         1           /oracle/CRM2/system1.dbf                 SYSTEM
         2           /oracle/CRM2/zxb.dbf                     ONLINE
         3           /oracle/CRM2/CRM/sysaux01.dbf            ONLINE
         4           /oracle/CRM2/CRM/users01.dbf             ONLINE
         5           /oracle/CRM2/zxa.dbf                     ONLINE
         6           /oracle/CRM2/CRM/test1.dbf               ONLINE
         7           /oracle/CRM2/zxc.dbf                      ONLINE
         8           /oracle/CRM2/CRM/undotbs1.dbf            ONLINE
         9       1024  /oracle/CRM2/CRM/zxbig.dbf               ONLINE
 
SQL>select file_id,relative_fno,file_name from dba_data_files order by 1
   FILE_ID RELATIVE_FNO  FILE_NAME
---------- ------------ ----------------------------------------
         1             /oracle/CRM2/system1.dbf
         2             /oracle/CRM2/zxb.dbf
         3             /oracle/CRM2/CRM/sysaux01.dbf
         4             /oracle/CRM2/CRM/users01.dbf
         5             /oracle/CRM2/zxa.dbf
         6             /oracle/CRM2/CRM/test1.dbf
         7             /oracle/CRM2/zxc.dbf
         8             /oracle/CRM2/CRM/undotbs1.dbf
         9         1024  /oracle/CRM2/CRM/zxbig.dbf









本文转自 zhangxuwl 51CTO博客,原文链接:http://blog.51cto.com/jiujian/1068498,如需转载请自行联系原作者

目录
相关文章
|
6月前
|
存储 Oracle NoSQL
Oracle 表空间、数据文件、schema的关系
Oracle 表空间、数据文件、schema的关系
187 2
|
6月前
|
SQL Oracle 关系型数据库
避坑,Oracle中left join 与 (+) 的区别
避坑,Oracle中left join 与 (+) 的区别
|
6月前
|
Oracle 关系型数据库 MySQL
mysql数据库和Oracle的区别
mysql数据库和Oracle的区别
136 1
|
6月前
|
XML Java 数据库连接
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
|
12天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的控制文件与归档日志文件
本文介绍了Oracle数据库中的控制文件和归档日志文件。控制文件记录了数据库的物理结构信息,如数据库名、数据文件和联机日志文件的位置等。为了保护数据库,通常会进行控制文件的多路复用。归档日志文件是联机重做日志文件的副本,用于记录数据库的变更历史。文章还提供了相关SQL语句,帮助查看和设置数据库的日志模式。
【赵渝强老师】Oracle的控制文件与归档日志文件
|
12天前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
|
12天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的数据文件
在Oracle数据库中,数据库由多个表空间组成,每个表空间包含多个数据文件。数据文件存储实际的数据库数据。查询时,如果内存中没有所需数据,Oracle会从数据文件中读取并加载到内存。可通过SQL语句查看和管理数据文件。附有视频讲解及示例。
|
2月前
|
存储 Oracle 关系型数据库
Oracle和MySQL有哪些区别?从基本特性、技术选型、字段类型、事务、语句等角度详细对比Oracle和MySQL
从基本特性、技术选型、字段类型、事务提交方式、SQL语句、分页方法等方面对比Oracle和MySQL的区别。
525 18
Oracle和MySQL有哪些区别?从基本特性、技术选型、字段类型、事务、语句等角度详细对比Oracle和MySQL
|
2月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
1月前
|
Oracle 关系型数据库 数据库
oracle数据恢复—Oracle数据库文件损坏导致数据库打不开的数据恢复案例
打开oracle数据库时报错,报错信息:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。急需恢复zxfg用户下的数据。 出现上述报错的原因有:控制文件损坏、数据文件损坏、数据文件与控制文件的SCN不一致等。数据恢复工程师对数据库文件做进一步检测分析后发现sysaux01.dbf文件有坏块。修复sysaux01.dbf文件,启动数据库依然有许多查询报错。export和data pump工具无法使用,查询告警日志并分析报错,确认发生上述错误的原因就是sysaux01.dbf文件损坏。由于该文件损坏,从数据库层面无法修复数据库。由于system和用户表空间的数据文件是正常的,