左右v$datafile和v$tempfile中间file#
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: OFFLINE, ONLINE, SYSTEM, RECOVER, SYSOFF (anoffline file from the SYSTEM tablespace) |
ENABLED |
VARCHAR2(10) |
Describes how accessible the file is from SQL:
|
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 operationcompletes. 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 ifnot. |
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#的更多相关文章
- oracle 批量改temp/data/redo file的路径
批量生成修改路径的脚本.select 'alter database rename file ''' || name ||'''' || ' to '''|| substr(name,0,instr( ...
- 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 ...
- 临时文件相关的v$tempfile v$sort_usage与V$tempseg_usage
SQL> select username,user,segtype,segfile#,segblk#,extents,segrfno# from v$sort_usage; SEGFILE#代表 ...
- 使用asmcmdcp命令把datafile从文件系统移动(move)到asm磁盘组中 针对11gR2
使用asmcmd cp命令 把datafile从文件系统移动(move)到asm磁盘组中--针对11gR2 参考原文:How to Move a Datafile from Filesystem to ...
- 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 ...
- Oracle bbed 实用示例-----File Header Reset
一.查看当前环境 1.1 当前控制文件中的SCN号 [oracle@ora10 ~]$ sqlplus /nolog SQL :: Copyright (c) , , Oracle. All righ ...
- dump datafile block
Oracle dump datafile block有两种方式: 然后根据block id执行dump 命令: SQL> alter system dump datafile 4 block 2 ...
- 什么时候会刷新备库控制文件refresh the standby database control file?
通过合理的设置,对于Primary的绝大数操作,都是可以传递到Physical Standby,datafile的操作是通过STANDBY_FILE_MANAGEMENT参数来控制的,但是即使STAN ...
- 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 ...
随机推荐
- Windows Phone开发(45):推送通知大结局——Raw通知
原文:Windows Phone开发(45):推送通知大结局--Raw通知 为什么叫大结局呢?因为推送通知服务就只有三种,前面扯了两种,就剩下一种--Raw通知. 前面我们通过两节的动手实验,相信大家 ...
- web:转盘抽奖
移动web:转盘抽奖(幸运大转盘) 为了获取客户.回馈客户,平台一般会推出抽奖活动类的营销页.因此web页面中,有各式各样的抽奖效果. 格子式(九宫格),背景滚动式(数字/文字/图案),旋转式(转 ...
- 【原创】leetCodeOj --- Intersection of Two Linked Lists 解题报告(经典的相交链表找交点)
题目地址: https://oj.leetcode.com/problems/intersection-of-two-linked-lists/ 题目内容: Write a program to fi ...
- POJ 2485 Highways (prim最小生成树)
对于终于生成的最小生成树中最长边所连接的两点来说 不存在更短的边使得该两点以不论什么方式联通 对于本题来说 最小生成树中的最长边的边长就是使整个图联通的最长边的边长 由此可知仅仅要对给出城市所抽象出的 ...
- 【设计模式】Template Method模式
OO基金会 封装 多态 继承 OO原则 封装变化 多用组合,少用继承 针对接口编程.不针对实现编程 为交互对象的松耦合设计而努力 类应该对扩展开放,对改动关闭 依赖抽象,不要依赖详细类 仅仅和朋友交谈 ...
- Spring的文件上传
Spring在发现包括multipart的请求后,会使用MultipartResolver的实现bean处理文件上传操作,现有採用Servlet3的 org.springframework.web.m ...
- sql系列(基础)-第二章 限制和排序数据
更好的看↑代码点击VIEW PLAN 第二章 约束和排序数据 1. 在 emp 表中选择工资介于 1500 到 2500 的员工的信息: 注意:使用 between 下边界 and 上边界时.条件包括 ...
- 《编程简介(Java) ·10.3递归思想》
<编程简介(Java) ·10.3递归思想> 10.3.1 递归的概念 以两种方式的人:男人和女人:算法是两种:递归迭代/通知: 递归方法用自己的较简单的情形定义自己. 在数学和计算机科学 ...
- Cocos2d-x3.1回调函数具体解释
Cocos2d-x3.1回调函数的定义CCRef.h声明.源代码,例如,下面的: typedef void (Ref::*SEL_CallFunc)(); typedef void (Ref::*SE ...
- JAVA环境配置---------jdk安装路径中存在空格的问题
我把jdk 安装在C:\Program Files下 而ide启动脚本 startup.bat 例如以下: if "%OS%"=="Windows_NT" se ...