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參数。

打完手工!

版权声明:本文博主原创文章。博客,未经同意不得转载。

左右v$datafile和v$tempfile中间file#的更多相关文章

  1. oracle 批量改temp/data/redo file的路径

    批量生成修改路径的脚本.select 'alter database rename file ''' || name ||'''' || ' to '''|| substr(name,0,instr( ...

  2. Step by Step Process of Migrating non-CDBs and PDBs Using ASM for File Storage (Doc ID 1576755.1)

    Step by Step Process of Migrating non-CDBs and PDBs Using ASM for File Storage (Doc ID 1576755.1) AP ...

  3. 临时文件相关的v$tempfile v$sort_usage与V$tempseg_usage

    SQL> select username,user,segtype,segfile#,segblk#,extents,segrfno# from v$sort_usage; SEGFILE#代表 ...

  4. 使用asmcmdcp命令把datafile从文件系统移动(move)到asm磁盘组中 针对11gR2

    使用asmcmd cp命令 把datafile从文件系统移动(move)到asm磁盘组中--针对11gR2 参考原文:How to Move a Datafile from Filesystem to ...

  5. ORA-00245: control file backup failed; target is likely on a local file system (转载)

    环境:DB VERSION: 11.2.0.4.0RAC 2 nodes 问题:邮件显示rman备份失败,查看rman备份日志 Starting Control File and SPFILE Aut ...

  6. Oracle bbed 实用示例-----File Header Reset

    一.查看当前环境 1.1 当前控制文件中的SCN号 [oracle@ora10 ~]$ sqlplus /nolog SQL :: Copyright (c) , , Oracle. All righ ...

  7. dump datafile block

    Oracle dump datafile block有两种方式: 然后根据block id执行dump 命令: SQL> alter system dump datafile 4 block 2 ...

  8. 什么时候会刷新备库控制文件refresh the standby database control file?

    通过合理的设置,对于Primary的绝大数操作,都是可以传递到Physical Standby,datafile的操作是通过STANDBY_FILE_MANAGEMENT参数来控制的,但是即使STAN ...

  9. Rename Oracle Managed File (OMF) datafiles in ASM(ZT)

    Recently I was asked to rename a tablespace. The environment was Oracle version 11.2.0.3 (both datab ...

随机推荐

  1. flex4 amcharts 删除水印

    package com.twobowl.component.manualTopo { import com.amcharts.AmPieChart; import com.amcharts.chart ...

  2. php laravel 帧 该文件上传

    好,我承认我的忠告. 今天laravel框架编写一个文件上传部分.总能找到不正确的路径.但是,终于攻克. 以下我分享一下自己的学习体会吧. client <form method="P ...

  3. 找出二叉树中和为n的路径

    题目描述: 输入一个整数和一棵二元树.从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径.打印出和 与输入整数相等的所有路径. 二叉树中的路径 从二叉树的根节点出发,至二叉树的叶子节点的 ...

  4. [思考] hdu 4811 Ball

    意甲冠军: 有三种颜色的小珠,每种颜色的量R,Y,B 转球进入桌面成序,有多少种不同的颜色分别砍下的球在球门前+有多少身后球不同的颜色 问:最大的总比分值 思考: 球和后面的球先放好.剩下的就放中间了 ...

  5. Json的反序列化 .net Newtonsoft.Json

    项目中有个.json文件. { "instances": [ { "name": "baidu", "url": &qu ...

  6. 【翻译mos文章】Linux x86 and x86-64 系统SHMMAX最大

    Linux x86 and x86-64 系统SHMMAX最大值 参考原始: Maximum SHMMAX values for Linux x86 and x86-64 (文件 ID 567506. ...

  7. 代码的未来读书笔记&lt;二&gt;

    代码的未来读书笔记<二> 3.1语言的设计 对Ruby JavaScript Java Go 从服务端client以及静态动态这2个角度进行了对照. 这四种语言因为不同的设计方针,产生了不 ...

  8. HDU 4778 内存搜索&amp;如压力

    鉴于G宝石,B包.和S.S当代表凑齐每种颜色的宝石S我们可以成为哲学家的石头 每个软件包包含N宝石.分别c1,c2....... 然后他们轮流拿包.每个包可以得到一次.宝石出包放在地上. 假设你可以成 ...

  9. Android-管理Activity生命周期

    用户在浏览,退出,返回app时,app中的Activity实例会在不同状态之间切换.比如,当activity第一次启动,然后来到系统前台,受到用户的注意,这个过程中,android系统调用了一系列ac ...

  10. 小代码编写神器:LINQPad 使用入门

    原文:小代码编写神器:LINQPad 使用入门 一:概述 1:想查看程序运行结果,又不想启动 VS 怎么办? 2:想测试下自己的 C# 能力,不使用 VS 的智能感知,怎么办? 那么,我们有一个选择, ...