热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

关于v$datafile和v$tempfile中的file#

v$datafile视图中存储的是有关数据文件的信息,v$tempfile视图中存储的是有关临时文件的信息。在两个视图中都有file#字段,先来看一下官方文档的定义:V$DATAFILEThisviewcontainsdatafileinformationfromthecontrolfile.SeeA

v$datafile视图中存储的是有关数据文件的信息,v$tempfile视图中存储的是有关临时文件的信息。在两个视图中都有file#字段,先来看一下官方文档的定义:

V$DATAFILE

This view contains datafile information from the control file.

See Also:

"V$DATAFILE_HEADER", which displays information from datafile headers
Column Datatype Description
FILE# NUMBER File identification number
CREATION_CHANGE# NUMBER Change number at which the datafile was created
CREATION_TIME DATE Timestamp of the datafile creation
TS# NUMBER Tablespace number
RFILE# NUMBER Tablespace relative datafile number
STATUS VARCHAR2(7) Type of file (system or user) and its status. Values: OFFLINEONLINESYSTEMRECOVERSYSOFF (an offline file from the SYSTEM tablespace)
ENABLED VARCHAR2(10) Describes how accessible the file is from SQL:
  • DISABLED - No SQL access allowed

  • READ ONLY - No SQL updates allowed

  • READ WRITE - Full access allowed

  • UNKNOWN - should not occur unless the control file is corrupted

CHECKPOINT_CHANGE# NUMBER SCN at last checkpoint
CHECKPOINT_TIME DATE Timestamp of the checkpoint#
UNRECOVERABLE_CHANGE# NUMBER Last unrecoverable change number made to this datafile. If the database is in ARCHIVELOG mode, then this column is updated when an unrecoverable operation completes. If the database is not in ARCHIVELOG mode, this column does not get updated.
UNRECOVERABLE_TIME DATE Timestamp of the last unrecoverable change. This column is updated only if the database is in ARCHIVELOG mode.
LAST_CHANGE# NUMBER Last change number made to this datafile (null if the datafile is being changed)
LAST_TIME DATE Timestamp of the last change
OFFLINE_CHANGE# NUMBER Offline change number of the last offline range. This column is updated only when the datafile is brought online.
ONLINE_CHANGE# NUMBER Online change number of the last offline range
ONLINE_TIME DATE Online timestamp of the last offline range
BYTES NUMBER Current datafile size (in bytes); 0 if inaccessible
BLOCKS NUMBER Current datafile size (in blocks); 0 if inaccessible
CREATE_BYTES NUMBER Size when created (in bytes)
BLOCK_SIZE NUMBER Block size of the datafile
NAME VARCHAR2(513) Name of the datafile
PLUGGED_IN NUMBER Describes whether the tablespace is plugged in. The value is 1 if the tablespace is plugged in and has not been made read/write, 0 if not.
BLOCK1_OFFSET NUMBER Offset from the beginning of the file to where the Oracle generic information begins. The exact length of the file can be computed as follows:BYTES + BLOCK1_OFFSET.
AUX_NAME VARCHAR2(513) Auxiliary name that has been set for this file via CONFIGURE AUXNAME
FIRST_NONLOGGED_SCN NUMBER First nonlogged SCN
FIRST_NONLOGGED_TIME DATE First nonlogged time


V$TEMPFILE

This view displays tempfile information.

Column Datatype Description
FILE# NUMBER Absolute file number
CREATION_CHANGE# NUMBER Creation System Change Number (SCN)
CREATION_TIME DATE Creation time
TS# NUMBER Tablespace number
RFILE# NUMBER Relative file number in the tablespace
STATUS VARCHAR2(7) Status of the file (OFFLINE|ONLINE)
ENABLED VARCHAR2(10) Enabled for read and/or write
BYTES NUMBER Size of the file in bytes (from the file header)
BLOCKS NUMBER Size of the file in blocks (from the file header)
CREATE_BYTES NUMBER Creation size of the file (in bytes)
BLOCK_SIZE NUMBER Block size for the file
NAME VARCHAR2(513) Name of the file

从上面的文档可以看出,在v$tempfile和v$datafile中file#均代表绝对文件好,而rfile#代表相对文件号,下面来验证一下:

SQL> l
  1* select file#,name from v$tempfile
SQL> /

     FILE# NAME
---------- ------------------------------------------------------------
	 1 /home/app/oraten/oradata/oraten/temp01.dbf

SQL> select file#,name from v$datafile;

     FILE# NAME
---------- ------------------------------------------------------------
	 1 /home/app/oraten/oradata/oraten/system01.dbf
	 2 /home/app/oraten/oradata/oraten/undotbs01.dbf
	 3 /home/app/oraten/oradata/oraten/sysaux01.dbf
	 4 /home/app/oraten/oradata/oraten/users01.dbf
	 5 /home/app/oraten/oradata/oraten/test01.dbf
在v$datafile和v$tempfile中都存在绝对文件号为1的文件,这显然是不对的。

我们知道在文件无法访问时,oracle会报错并在错误信息中显示有关文件的信息,下面我们来模拟临时文件的故障

[oraten@yue oraten]$ chmod 000 temp01.dbf 
[oraten@yue oraten]$ ll
总用量 932180
-rw-r----- 1 oraten dba   7061504 11月  7 13:59 control01.ctl
-rw-r----- 1 oraten dba   7061504 11月  7 13:59 control02.ctl
-rw-r----- 1 oraten dba   7061504 11月  7 13:59 control03.ctl
-rw-r----- 1 oraten dba  52429312 11月  7 13:44 redo01.log
-rw-r----- 1 oraten dba  52429312 11月  7 13:54 redo02.log
-rw-r----- 1 oraten dba  52429312 11月  7 13:44 redo03.log
-rw-r----- 1 oraten dba 272637952 11月  7 13:49 sysaux01.dbf
-rw-r----- 1 oraten dba 461381632 11月  7 13:49 system01.dbf
---------- 1 oraten dba  20979712 11月  7 13:39 temp01.dbf
-rw-r----- 1 oraten dba  10493952 11月  7 13:44 test01.dbf
-rw-r----- 1 oraten dba  26222592 11月  7 13:49 undotbs01.dbf
-rw-r----- 1 oraten dba   5251072 11月  7 13:44 users01.dbf

强制启动数据库

SQL> startup force
ORACLE instance started.

Total System Global Area  134217728 bytes
Fixed Size		    2094544 bytes
Variable Size		   88082992 bytes
Database Buffers	   37748736 bytes
Redo Buffers		    6291456 bytes
Database mounted.
Database opened.
SQL> 
创建临时表,并插入数据

SQL> insert into t1 select * from user_tables;
insert into t1 select * from user_tables
            *
ERROR at line 1:
ORA-01157: cannot identify/lock data file 101 - see DBWR trace file
ORA-01110: data file 101: '/home/app/oraten/oradata/oraten/temp01.dbf'

呵呵,临时文件无法访问,在这里显示的文件号为101,为什么那?

我们将参数 db_files修改为200,继续实验

SQL> show parameter db_files

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
db_files			     integer	 100
SQL> alter system set db_files=200 scope=spfile;

System altered.

SQL> startup force
ORACLE instance started.

Total System Global Area  134217728 bytes
Fixed Size		    2094544 bytes
Variable Size		   88082992 bytes
Database Buffers	   37748736 bytes
Redo Buffers		    6291456 bytes
Database mounted.
Database opened.
SQL> insert into t1 select * from user_tables;
insert into t1 select * from user_tables
            *
ERROR at line 1:
ORA-01157: cannot identify/lock data file 201 - see DBWR trace file
ORA-01110: data file 201: '/home/app/oraten/oradata/oraten/temp01.dbf'
原来,v$tempfile中的file#并不是绝对文件号,临时文件的绝对文件号是file#+db_files参数。

打完手工!!





推荐阅读
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文详细介绍了如何使用libpq库与PostgreSQL后端建立连接。通过探讨PQconnectdb()函数的工作原理及其在实际应用中的使用方法,帮助读者理解并掌握建立高效、稳定的数据库连接的关键步骤。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文详细介绍了如何使用ActionScript 3.0 (AS3) 连接并操作MySQL数据库。通过具体的代码示例和步骤说明,帮助开发者理解并实现这一过程。 ... [详细]
  • 在即将迎来26岁生日之际,作者的人生陷入了低谷。经过近三年的硕士学习后,最终决定退学,并且面临没有工作经验的困境。尽管如此,作者依然坚定地选择为自己的人生负责。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 本文详细介绍了美国最具影响力的十大财团,包括洛克菲勒、摩根、花旗银行等。这些财团在历史发展过程中逐渐形成,并对美国的经济、政治和社会产生深远影响。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本题通过将每个矩形视为一个节点,根据其相对位置构建拓扑图,并利用深度优先搜索(DFS)或状态压缩动态规划(DP)求解最小涂色次数。本文详细解析了该问题的建模思路与算法实现。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 在网页开发中,页面加载速度是一个关键的用户体验因素。为了提升加载效率,避免在PageLoad事件中进行大量数据绑定操作,可以采用异步加载和特定控件来优化页面加载过程。 ... [详细]
author-avatar
傻丫头苏婵_596
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有