在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

Oracle中相对文件号(RFN)和绝对文件号(AFN)的示例分析

162次阅读
没有评论

共计 7643 个字符,预计需要花费 20 分钟才能阅读完成。

Oracle 中相对文件号(RFN)和绝对文件号(AFN)的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

大家都知道从 Oracle8 开始,Oracle 开始使用“相对文件号”,使原来一个数据库最多只能有 1023 个文件,扩展为一个表空间最多可以有 1023 个文件,每个库最多可以有 65534 个文件。

绝对文件号相对于整个数据库是唯一的,每个库最多可以有 65534 个文件。

相对文件号则相对于表空间是唯一的,就是说每个表空间都有自己的相对文件号,每个表空间的最大文件数为 1023,相对文件号对于整个数据库来说是不唯一的;

查询:
SQL select TS#,FILE#,name from v$datafile order by 1,2;

  TS#  FILE# NAME
———- ———- ————————————————————
  0  1 /u01/app/oracle/oradata/DBdb/system01.dbf
  1  2 /u01/app/oracle/oradata/DBdb/sysaux01.dbf
  2  3 /u01/app/oracle/oradata/DBdb/undotbs01.dbf
  4  4 /u01/app/oracle/oradata/DBdb/users01.dbf
  4  7 /u01/app/oracle/oradata/DBdb/users02.dbf
  4  9 /u01/app/oracle/oradata/DBdb/users03.dbf
  6  5 /u01/app/oracle/oradata/DBdb/example01.dbf
  7  6 /u01/app/oracle/oradata/DBdb/test.dbf
  7  8 /u01/app/oracle/oradata/DBdb/test02.DBF

9 rows selected.
查询 v$datafile 此视图缺少 tmp 临时表空间信息,同时包含出 tmp 临时表空间之外的所有表空间下的所有数据文件

SQL select TS#,FILE#,NAME,BYTES/1024/1024 size_m from v$tempfile;

  TS#  FILE# NAME  SIZE_M
———- ———- ———————————————————— ———-
  3  1 /u01/app/oracle/oradata/DBdb/temp01.dbf  179

file# 绝对文件号

SQL select TS#,NAME,BIGFILE from v$tablespace order by 1;

  TS# NAME  BIG
———- ———————————————————— —
  0 SYSTEM  NO
  1 SYSAUX  NO
  2 UNDOTBS1  NO
  3 TEMP  NO
  4 USERS  NO
  6 EXAMPLE  NO
  7 TEST  NO

7 rows selected.

SQL select TABLESPACE_NAME,FILE_ID,FILE_NAME,BYTES/1024/1024 size_m,STATUS from dba_data_files order by 2;

TABLESPACE_NAME  FILE_ID FILE_NAME  SIZE_M STATUS
—————————— ———- ———————————————————— ———- ———
SYSTEM  1 /u01/app/oracle/oradata/DBdb/system01.dbf  2800 AVAILABLE
SYSAUX  2 /u01/app/oracle/oradata/DBdb/sysaux01.dbf  720 AVAILABLE
UNDOTBS1  3 /u01/app/oracle/oradata/DBdb/undotbs01.dbf  2585 AVAILABLE
USERS  4 /u01/app/oracle/oradata/DBdb/users01.dbf  3058.75 AVAILABLE
EXAMPLE  5 /u01/app/oracle/oradata/DBdb/example01.dbf  338.75 AVAILABLE
TEST  6 /u01/app/oracle/oradata/DBdb/test.dbf  10 AVAILABLE
USERS  7 /u01/app/oracle/oradata/DBdb/users02.dbf  10 AVAILABLE
TEST  8 /u01/app/oracle/oradata/DBdb/test02.DBF  10 AVAILABLE
USERS  9 /u01/app/oracle/oradata/DBdb/users03.dbf  10 AVAILABLE

9 rows selected.

查询得包含表空间下的所有数据文件

SQL select TABLESPACE_NAME,STATUS,CONTENTS,FORCE_LOGGING,EXTENT_MANAGEMENT,SEGMENT_SPACE_MANAGEMENT,ALLOCATION_TYPE,RETENTION,BIGFILE from dba_tablespaces;

TABLESPACE_NAME  STATUS  CONTENTS  FOR EXTENT_MAN SEGMEN ALLOCATIO RETENTION  BIG
—————————— ——— ——— — ———- —— ——— ———– —
SYSTEM  ONLINE  PERMANENT NO  LOCAL  MANUAL SYSTEM  NOT APPLY  NO
SYSAUX  ONLINE  PERMANENT NO  LOCAL  AUTO  SYSTEM  NOT APPLY  NO
UNDOTBS1  ONLINE  UNDO  NO  LOCAL  MANUAL SYSTEM  NOGUARANTEE NO
TEMP  ONLINE  TEMPORARY NO  LOCAL  MANUAL UNIFORM  NOT APPLY  NO
USERS  ONLINE  PERMANENT NO  LOCAL  AUTO  SYSTEM  NOT APPLY  NO
EXAMPLE  ONLINE  PERMANENT NO  LOCAL  AUTO  SYSTEM  NOT APPLY  NO
TEST  ONLINE  PERMANENT NO  LOCAL  AUTO  SYSTEM  NOT APPLY  NO

7 rows selected.

实验开始:

SQL create tablespace test_mf datafile /u01/app/oracle/oradata/DBdb/m1.dbf size 100k reuse;

Tablespace created.

SQL alter tablespace test_mf add datafile /u01/app/oracle/oradata/DBdb/m2.dbf size 88k;

Tablespace altered.

SQL show parameter db_files

NAME  TYPE  VALUE
———————————— ———– ——————————
db_files  integer  2000
SQL  
SQL begin
  for i in 3..1025 loop
  execute immediate alter tablespace test_mf add datafile /u01/app/oracle/oradata/DBdb/m_ || i || size 88k
  end loop;
  end;
  /
 
 begin
*
ERROR at line 1:
ORA-01686: max # files (1023) reached for the tablespace TEST_MF
ORA-06512: at line 3

SQL select count(*) from dba_data_files where tablespace_name= TEST_MF

  COUNT(*)
———-
  1023

可以看到表空间 TEST_MF 的文件数为 1023 个,最多也只能为 1023 个。

SQL   select count(*) from dba_data_files where tablespace_name= TEST_MF

  COUNT(*)
———-
  1023

SQL   select ts# from v$tablespace where name= TEST_MF

  TS#
———-
  9

– 查询表空间 test_mf 的相对文件号、绝对文件号:
select file_id,relative_fno,TABLESPACE_NAME,FILE_NAME from dba_data_files where tablespace_name= TEST_MF

或者

select file#,rfile#,name from v$datafile where ts#=9;

SQL select file#,rfile#,name from v$datafile where ts#=9;

  FILE#  RFILE# NAME
———- ———- ————————————————————
  10  10 /u01/app/oracle/oradata/DBdb/m1.dbf
  11  11 /u01/app/oracle/oradata/DBdb/m2.dbf
  12  12 /u01/app/oracle/oradata/DBdb/m_3
  13  13 /u01/app/oracle/oradata/DBdb/m_4
  14  14 /u01/app/oracle/oradata/DBdb/m_5
  15  15 /u01/app/oracle/oradata/DBdb/m_6
  16  16 /u01/app/oracle/oradata/DBdb/m_7
  17  17 /u01/app/oracle/oradata/DBdb/m_8
  18  18 /u01/app/oracle/oradata/DBdb/m_9
省略 …………………………………………………………..
  FILE#  RFILE# NAME
———- ———- ————————————————————
  1011  1011 /u01/app/oracle/oradata/DBdb/m_1002
  1012  1012 /u01/app/oracle/oradata/DBdb/m_1003
  1013  1013 /u01/app/oracle/oradata/DBdb/m_1004
  1014  1014 /u01/app/oracle/oradata/DBdb/m_1005
  1015  1015 /u01/app/oracle/oradata/DBdb/m_1006
  1016  1016 /u01/app/oracle/oradata/DBdb/m_1007
  1017  1017 /u01/app/oracle/oradata/DBdb/m_1008
  1018  1018 /u01/app/oracle/oradata/DBdb/m_1009
  1019  1019 /u01/app/oracle/oradata/DBdb/m_1010
  1020  1020 /u01/app/oracle/oradata/DBdb/m_1011
  1021  1021 /u01/app/oracle/oradata/DBdb/m_1012

  FILE#  RFILE# NAME
———- ———- ————————————————————
  1022  1022 /u01/app/oracle/oradata/DBdb/m_1013
  1023  1023 /u01/app/oracle/oradata/DBdb/m_1014
  1024  1 /u01/app/oracle/oradata/DBdb/m_1015
  1025  2 /u01/app/oracle/oradata/DBdb/m_1016
  1026  3 /u01/app/oracle/oradata/DBdb/m_1017
  1027  4 /u01/app/oracle/oradata/DBdb/m_1018
  1028  5 /u01/app/oracle/oradata/DBdb/m_1019
  1029  6 /u01/app/oracle/oradata/DBdb/m_1020
  1030  7 /u01/app/oracle/oradata/DBdb/m_1021
  1031  8 /u01/app/oracle/oradata/DBdb/m_1022
  1032  9 /u01/app/oracle/oradata/DBdb/m_1023

1023 rows selected.

SQL    

从上面的数据可以看出,当绝对文件号小于等于 1023,相对文件号与绝对文件号一样。相对文件号大于 1023 之后,又从 1 开始循环。

SQL create tablespace test_lf datafile /u01/app/oracle/oradata/DBdb/TEST_LF.dbf size 1m;

Tablespace created.

SQL select ts# from v$tablespace where name= TEST_LF

  TS#
———-
  10

SQL select file#,rfile#,name from v$datafile where ts#=10;

  FILE#  RFILE# NAME
———- ———- ————————————————————
  1033  10 /u01/app/oracle/oradata/DBdb/TEST_LF.dbf

从上面的数据可以看出,一个表空间的数据文件,其相对文件号并不是从 1 开始的,而依然是从上一个用过的最后一个相对文件号继续,及 file#号从上面的 1032 增加到 1033,而 RFILE# 从 9 增加到 10。

– 接着增加新表空间 ORA
SQL create tablespace ORA datafile /u01/app/oracle/oradata/DBdb/ora.dbf size 1m;

Tablespace created.

SQL
SQL alter tablespace ORA  add datafile /u01/app/oracle/oradata/DBdb/ora02.dbf size 1m;

Tablespace altered.

SQL select file_id,relative_fno,TABLESPACE_NAME,FILE_NAME from dba_data_files where tablespace_name= ORA    

  FILE_ID RELATIVE_FNO TABLESPACE_NAME  FILE_NAME
———- ———— —————————— ————————————————————
  1034  11 ORA  /u01/app/oracle/oradata/DBdb/ora.dbf
  1035  12 ORA  /u01/app/oracle/oradata/DBdb/ora02.dbf

从上查询得,FILE_ID 绝对文件号以创建表空间或给表空间添加数据文件的形式递进增加,而 RELATIVE_FNO(rfile#) 相对文件号相对于表空间而言,一个表空间的数据文件熟练小于等于 1023 个。

– 接着查询
SQL select OBJ#,OWNER# from obj$ where name= EMP

  OBJ#  OWNER#
———- ———-
  87108  83

SQL select object_id from dba_objects where OWNER= SCOTT and object_name= EMP and object_type= TABLE

 OBJECT_ID
———-
  87108

SQL select obj#,dataobj#,ts#,file# from tab$ where obj#=87108;

  OBJ#  DATAOBJ#  TS#  FILE#
———- ———- ———- ———-
  87108  87108  4  4

SQL select SEGMENT_NAME,HEADER_FILE,HEADER_BLOCK,RELATIVE_FNO,TABLESPACE_NAME from dba_segments where SEGMENT_NAME= EMP and SEGMENT_TYPE= TABLE

SEGMENT_NAME  HEADER_FILE HEADER_BLOCK RELATIVE_FNO TABLESPACE_NAME
————— ———– ———— ———— ——————————
EMP  4  146  4 USERS

在 DBA_SEGMENTS 视图里面,可以查到段头的相对文件号和绝对文件号。(这个视图最终是从 file$、seg$ 等字典表里面取得数据)

看完上述内容,你们掌握 Oracle 中相对文件号(RFN)和绝对文件号(AFN)的示例分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-18发表,共计7643字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 99久久综合给久久精品 | 欧美另类专区 | 拔插拔插华人永久免费 | 奇米影视亚洲四色8888 | 国产精品无码素人福利不卡 | 国产精品密蕾丝视频 | 午夜精品久久久久久久爽 | 日本欧美一区二区三区在线观看 | 亚洲成人福利网站 | 久久99精品久久久久久青青91 | 亚洲欧洲国产成人综合在线 | 亚洲免费成人在线 | 一级黄色片免费看 | 嫩草影院地址一地址二 | 爱爱日韩 | 国产精品尤物 | 久久99精品久久久久久 | 在线观看国产一区二区三区 | 91精品久久久久久久99蜜桃 | 四虎最新站名点击进入 | 黄色成年网站 | 午夜不卡久久精品无码免费 | 久久人人妻人人爽人人爽 | 一线毛片 | 无码人妻啪啪一区二区 | 奇米影视7777久久精品 | 久久久久国色av免费观看性色 | 久久婷婷五月综合国产尤物app | 国产精品系列在线一区 | 亚洲自拍偷拍区 | 四虎国产精品免费视 | 521国产精品视频 | 国产精品国产三级在线专区 | 亚洲国产精品一区二区久 | 亚洲欧美日韩中文字幕久久 | 国产边打电话边被躁视频 | 无码a级毛片免费视频内谢 无码a级毛片免费视频内谢5j | 美女一级毛片 | 爱爱免费视屏 | 亚洲精品一区二区三区四区五区 | 久热视线观看免费视频 |