Oracle下绝对文件号和相对文件号一:Oracle官方给出的描述 Oracle数据库为每个数据文件分配两个相关的文件号,一个绝对文件号和一个相对文件号,用于唯一标识它 绝对:独特的想法
Oracle下绝对文件号和相对文件号区别
一:Oracle 官方给出的描述
Oracle 数据库为每个数据文件分配两个关联的文件号,一个绝对文件
数字和相对文件编号,用于唯一标识它
Absolute:唯一标识数据库中的一个数据文件。此文件编号可以在许多引用数据文件的 SQL 语句中使用,而不是使用文件名。绝对文件号可以在 V$DATAFILE 或 V$TEMPFILE 的 FILE# 列中找到
视图,或 DBA_DATA_FILES 或 DBA_TEMP_FILES 视图的 FILE_ID 列
相对:唯一标识表空间内的数据文件。对于中小型数据库,相对文件号通常与绝对文件号具有相同的值。然而,当
数据库中的数据文件数量超过阈值(通常为1023),相对文件数量与绝对文件数量不同。在大文件表空间中,相对文件号始终为
1024 (4096 on OS/390 platform).
二:总结如下
总述:oracle数据库会给每一个新创建的datafile分配一个绝对文件号和相对文件号,两者都用于唯一性标识该数据文件,只不过标识范围不一样。
绝对文件号:
1 绝对文件号数据库范围内唯一标识一个数据文件
2 sql语句中常常用绝对文件号代替该数据文件名字。
3 绝对文件号可通过查询视图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
相当文件号:
1 相对文件号在表空间范围内唯一标识一个数据文件。
2 数据库内数据文件没有超过1023个时,相对文件号和绝对文件号是相等的;数据文件若超出1023个,则会不同。
3 在大表空间中数据文件相对文件号总是1024
4 查询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.
例2 大表空间绝对文件号和相对文件号情况
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
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 1 /oracle/CRM2/system1.dbf
2 2 /oracle/CRM2/zxb.dbf
3 3 /oracle/CRM2/CRM/sysaux01.dbf
4 4 /oracle/CRM2/CRM/users01.dbf
5 5 /oracle/CRM2/zxa.dbf
6 6 /oracle/CRM2/CRM/test1.dbf
7 7 /oracle/CRM2/zxc.dbf
8 8 /oracle/CRM2/CRM/undotbs1.dbf
9 1024 /oracle/CRM2/CRM/zxbig.dbf
www.linuxidc.comhttp://www.linuxidc.com/Linux/2012-12/75509.htm