<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>惜分飞 &#187; WRONG FILE CREATE</title>
	<atom:link href="https://www.xifenfei.com/tag/wrong-file-create/feed" rel="self" type="application/rss+xml" />
	<link>https://www.xifenfei.com</link>
	<description>提供7*24专业数据库(Oracle,SQL Server,MySQL,PostgreSQL等)恢复和技术支持@Tel:17813235971</description>
	<lastBuildDate>Thu, 22 Oct 2026 15:45:06 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>数据文件的三个创建SCN一点点探讨</title>
		<link>https://www.xifenfei.com/2014/07/%e6%95%b0%e6%8d%ae%e6%96%87%e4%bb%b6%e7%9a%84%e4%b8%89%e4%b8%aa%e5%88%9b%e5%bb%ba%e4%b8%80%e7%82%b9%e7%82%b9%e6%8e%a2%e8%ae%a8.html</link>
		<comments>https://www.xifenfei.com/2014/07/%e6%95%b0%e6%8d%ae%e6%96%87%e4%bb%b6%e7%9a%84%e4%b8%89%e4%b8%aa%e5%88%9b%e5%bb%ba%e4%b8%80%e7%82%b9%e7%82%b9%e6%8e%a2%e8%ae%a8.html#comments</comments>
		<pubDate>Sun, 20 Jul 2014 15:47:07 +0000</pubDate>
		<dc:creator><![CDATA[惜分飞]]></dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[ORA-01177]]></category>
		<category><![CDATA[ORA-01203]]></category>
		<category><![CDATA[WRONG FILE CREATE]]></category>

		<guid isPermaLink="false">https://www.xifenfei.com/?p=5422</guid>
		<description><![CDATA[联系：手机/微信(+86 17813235971) QQ(107644445)  &#8230; <a href="https://www.xifenfei.com/2014/07/%e6%95%b0%e6%8d%ae%e6%96%87%e4%bb%b6%e7%9a%84%e4%b8%89%e4%b8%aa%e5%88%9b%e5%bb%ba%e4%b8%80%e7%82%b9%e7%82%b9%e6%8e%a2%e8%ae%a8.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div id="xifenfeicopyright">
<p>联系：<a href="https://www.xifenfei.com/about_xifenfei" target="_blank">手机/微信(+86 17813235971)   QQ(107644445)</a><a target="_blank" href="http://wpa.qq.com/msgrd?v=3&#038;uin=107644445&#038;site=qq&#038;menu=yes"><img src="https://www.xifenfei.com/wp-content/themes/img/site_qq.jpg" alt="QQ咨询惜分飞" title="QQ咨询惜分飞"/></a></p>
<p>标题：<a href="https://www.xifenfei.com/2014/07/%e6%95%b0%e6%8d%ae%e6%96%87%e4%bb%b6%e7%9a%84%e4%b8%89%e4%b8%aa%e5%88%9b%e5%bb%ba%e4%b8%80%e7%82%b9%e7%82%b9%e6%8e%a2%e8%ae%a8.html" target="_blank">数据文件的三个创建SCN一点点探讨</a></p>
<p>作者：<a href="https://www.xifenfei.com" target="_blank">惜分飞</a>©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]</p>
</div>
<p>在给一个朋友数据库恢复的过程中语句该库大量删除表空间,然后创建表空,由于在创建控制文件的时候,列出来不正确文件,导致出现v$datafile_header.error出现WRONG FILE CREATE错误.通过试验重现了该错误,并且进一步测试如果真的需要历史数据文件,该如何狸猫换太子(本实验为了进一步理解数据文件创建scn相关信息)<br />
<strong>创建xifenfei表空间,然后删除表空间,但不删除数据文件,然后创建重名表空间</strong></p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt; select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') today,'www.xifenfei.com' xifenfei from dual;

TODAY               XIFENFEI
------------------- ----------------
2014-07-16 15:54:26 www.xifenfei.com


SQL&gt; create tablespace xifenfei datafile '/u01/app/oracle/oradata/ORCL/xifenfei_old.dbf' size 10m;

Tablespace created.

SQL&gt; select file#,name from v$datafile;

     FILE# NAME
---------- --------------------------------------------------
         1 /u01/app/oracle/oradata/ORCL/system01.dbf
         2 /u01/app/oracle/oradata/ORCL/sysaux01.dbf
         3 /u01/app/oracle/oradata/ORCL/undotbs01.dbf
         4 /u01/app/oracle/oradata/ORCL/users01.dbf
         5 /u01/app/oracle/oradata/ORCL/xifenfei_old.dbf

SQL&gt; select file#,CREATION_CHANGE#,to_char(CREATION_TIME,'yyyy-mm-dd hh24:mi:ss') CREATION_TIME from v$datafile;

     FILE# CREATION_CHANGE# CREATION_TIME
---------- ---------------- -------------------
         1               18 2014-07-14 21:53:05
         2             2338 2014-07-14 21:53:42
         3             3130 2014-07-14 21:53:51
         4            15268 2014-07-14 21:54:25
         5           593520 2014-07-16 16:00:54

SQL&gt; select file#,CREATION_CHANGE#,to_char(CREATION_TIME,'yyyy-mm-dd hh24:mi:ss') CREATION_TIME from v$datafile_header;

     FILE# CREATION_CHANGE# CREATION_TIME
---------- ---------------- -------------------
         1               18 2014-07-14 21:53:05
         2             2338 2014-07-14 21:53:42
         3             3130 2014-07-14 21:53:51
         4            15268 2014-07-14 21:54:25
         5           593520 2014-07-16 16:00:54

SQL&gt; drop tablespace xifenfei;

Tablespace dropped.

SQL&gt;  create tablespace xifenfei datafile '/u01/app/oracle/oradata/ORCL/xifenfei_new.dbf' size 10m;

Tablespace created.

SQL&gt; select file#,CREATION_CHANGE#,to_char(CREATION_TIME,'yyyy-mm-dd hh24:mi:ss') CREATION_TIME from v$datafile;

     FILE# CREATION_CHANGE# CREATION_TIME
---------- ---------------- -------------------
         1               18 2014-07-14 21:53:05
         2             2338 2014-07-14 21:53:42
         3             3130 2014-07-14 21:53:51
         4            15268 2014-07-14 21:54:25
         5           593613 2014-07-16 16:02:45

SQL&gt; select file#,CREATION_CHANGE#,to_char(CREATION_TIME,'yyyy-mm-dd hh24:mi:ss') CREATION_TIME from v$datafile_header;

     FILE# CREATION_CHANGE# CREATION_TIME
---------- ---------------- -------------------
         1               18 2014-07-14 21:53:05
         2             2338 2014-07-14 21:53:42
         3             3130 2014-07-14 21:53:51
         4            15268 2014-07-14 21:54:25
         5           593613 2014-07-16 16:02:45
</pre>
<p><strong>rename xifenfei表空间数据文件到老数据文件</strong></p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt; alter database datafile 5 offline drop;

Database altered.

SQL&gt; alter database rename file '/u01/app/oracle/oradata/ORCL/xifenfei_new.dbf'
 2   to '/u01/app/oracle/oradata/ORCL/xifenfei_old.dbf';     

Database altered.

SQL&gt; alter database datafile 5 online;
alter database datafile 5 online
*
ERROR at line 1:
ORA-01122: database file 5 failed verification check
ORA-01110: data file 5: '/u01/app/oracle/oradata/ORCL/xifenfei_old.dbf'
ORA-01203: wrong incarnation of this file - wrong creation SCN


SQL&gt; select file#,CREATION_CHANGE#,to_char(CREATION_TIME,'yyyy-mm-dd hh24:mi:ss') CREATION_TIME from v$datafile;

     FILE# CREATION_CHANGE# CREATION_TIME
---------- ---------------- -------------------
         1               18 2014-07-14 21:53:05
         2             2338 2014-07-14 21:53:42
         3             3130 2014-07-14 21:53:51
         4            15268 2014-07-14 21:54:25
         5           593613 2014-07-16 16:02:45

SQL&gt; select file#,CREATION_CHANGE#,to_char(CREATION_TIME,'yyyy-mm-dd hh24:mi:ss') CREATION_TIME from v$datafile_header;

     FILE# CREATION_CHANGE# CREATION_TIME
---------- ---------------- -------------------
         1               18 2014-07-14 21:53:05
         2             2338 2014-07-14 21:53:42
         3             3130 2014-07-14 21:53:51
         4            15268 2014-07-14 21:54:25
         5           593520 2014-07-16 16:00:54

SQL&gt; select file#,error from v$datafile_header;

     FILE# ERROR
---------- -----------------------------------------------------------------
         1
         2
         3
         4
         5 WRONG FILE CREATE
</pre>
<p>至此今天数据库恢复的故障已经模拟出来,就是因为数据文件头的scn和控制文件中scn不一致,从而出现了v$datafile_header.error报WRONG FILE CREATE的现象.<br />
<br />
<strong>因为控制文件中数据文件scn和数据文件头scn不一致,因此通过重建控制文件来实现两者scn一致</strong></p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt; alter database backup controlfile to trace as '/tmp/ctl';

Database altered.

SQL&gt; shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL&gt; STARTUP NOMOUNT
ORACLE instance started.

Total System Global Area  718225408 bytes
Fixed Size                  2292432 bytes
Variable Size             373294384 bytes
Database Buffers          339738624 bytes
Redo Buffers                2899968 bytes
SQL&gt; CREATE CONTROLFILE REUSE DATABASE &quot;ORCL&quot; NORESETLOGS  NOARCHIVELOG
  2      MAXLOGFILES 16
  3      MAXLOGMEMBERS 3
  4      MAXDATAFILES 100
  5      MAXINSTANCES 8
  6      MAXLOGHISTORY 292
  7  LOGFILE
  8    GROUP 1 '/u01/app/oracle/oradata/ORCL/redo01.log'  SIZE 50M BLOCKSIZE 512,
  9    GROUP 2 '/u01/app/oracle/oradata/ORCL/redo02.log'  SIZE 50M BLOCKSIZE 512,
 10    GROUP 3 '/u01/app/oracle/oradata/ORCL/redo03.log'  SIZE 50M BLOCKSIZE 512
 11  DATAFILE
 12    '/u01/app/oracle/oradata/ORCL/system01.dbf',
 13    '/u01/app/oracle/oradata/ORCL/sysaux01.dbf',
 14    '/u01/app/oracle/oradata/ORCL/undotbs01.dbf',
 15    '/u01/app/oracle/oradata/ORCL/users01.dbf',
 16    '/u01/app/oracle/oradata/ORCL/xifenfei_old.dbf'
 17  CHARACTER SET ZHS16GBK
 18  ;

Control file created.

SQL&gt; select file#,CREATION_CHANGE#,to_char(CREATION_TIME,'yyyy-mm-dd hh24:mi:ss') CREATION_TIME from v$datafile_header;

     FILE# CREATION_CHANGE# CREATION_TIME
---------- ---------------- -------------------
         1               18 2014-07-14 21:53:05
         2             2338 2014-07-14 21:53:42
         3             3130 2014-07-14 21:53:51
         4            15268 2014-07-14 21:54:25
         5           593520 2014-07-16 16:00:54

SQL&gt; select file#,CREATION_CHANGE#,to_char(CREATION_TIME,'yyyy-mm-dd hh24:mi:ss') CREATION_TIME from v$datafile;

     FILE# CREATION_CHANGE# CREATION_TIME
---------- ---------------- -------------------
         1               18 2014-07-14 21:53:05
         2             2338 2014-07-14 21:53:42
         3             3130 2014-07-14 21:53:51
         4            15268 2014-07-14 21:54:25
         5           593520 2014-07-16 16:00:54

SQL&gt; select file#,error from v$datafile_header;

     FILE# ERROR
---------- -----------------------------------------------------------------
         1
         2
         3
         4
         5
</pre>
<p><strong>通过重建控制文件消除了v$datafile_header.error报WRONG FILE CREATE错误,继续尝试online文件</strong></p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt; recover datafile 5;
Media recovery complete.
SQL&gt; alter database datafile 5 online;

Database altered.

SQL&gt; select file#,name from v$datafile;

     FILE# NAME
---------- --------------------------------------------------
         1 /u01/app/oracle/oradata/ORCL/system01.dbf
         2 /u01/app/oracle/oradata/ORCL/sysaux01.dbf
         3 /u01/app/oracle/oradata/ORCL/undotbs01.dbf
         4 /u01/app/oracle/oradata/ORCL/users01.dbf
         5 /u01/app/oracle/oradata/ORCL/xifenfei_old.dbf

SQL&gt; alter database open;
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-01177: data file does not match dictionary - probably old incarnation
ORA-01110: data file 5: '/u01/app/oracle/oradata/ORCL/xifenfei_old.dbf'
Process ID: 7437
Session ID: 7 Serial number: 5
</pre>
<p>出现这个错误,是由于数据库中,还有file$中也记录了数据文件创建scn,而这个scn现在和数据文件头和控制文件中的scn不相等,因此无法启动数据库成功.现在需要做的就是在数据库未启动状态下修改file$中的数据文件创建scn相关值,让其和数据文件头(控制文件中记录)一致<br />
<br />
<strong>使用第三方工具定位file$记录</strong></p>
<pre class="brush: bash; title: ; notranslate">
1|2|89600|0|1|4194302|1280|0|18||4194306|0x004000e9|0
2|2|70400|1|2|4194302|1280|0|2338||8388610|0x004000e9|1
3|2|25600|2|3|4194302|640|0|3130||12582914|0x004000e9|2
4|2|640|4|4|4194302|160|0|15268||16777218|0x004000e9|3
5|2|1280|7|5|0|0|0|593613||20971522|0x004000e9|4   
6|1|3840|||0|0|0|586295||25165826|0x004000e9|5
7|1|3840|||3932160|1280|0|587030||29360130|0x004000e9|6
对应file$结构确定每列含义,以及确定需要修改的列
每行倒数第二列为rdba地址,可以通过转换为file and block,这里对应的就是file 1 block 233
每行最后一列为该条记录在该rdba中的记录顺序
</pre>
<p>使用工具修改593613为593520,使得file$中的scn与现在控制文件和数据文件头一致,具体参考<a href="//www.xifenfei.com/1516.html" title="bbed修改数据内容" target="_blank">bbed修改数据内容</a><br />
<br />
<strong>修改好file$中数据文件创建scn后,尝试继续操作</strong></p>
<pre class="brush: sql; title: ; notranslate">
SQL&gt; alter database open;
alter database open
*
ERROR at line 1:
ORA-01113: file 5 needs media recovery
ORA-01110: data file 5: '/u01/app/oracle/oradata/ORCL/xifenfei_old.dbf'

SQL&gt; recover datafile 5;
Media recovery complete.
SQL&gt; alter database open;

Database altered.

SQL&gt; select file#,name from v$datafile;

     FILE# NAME
---------- --------------------------------------------------
         1 /u01/app/oracle/oradata/ORCL/system01.dbf
         2 /u01/app/oracle/oradata/ORCL/sysaux01.dbf
         3 /u01/app/oracle/oradata/ORCL/undotbs01.dbf
         4 /u01/app/oracle/oradata/ORCL/users01.dbf
         5 /u01/app/oracle/oradata/ORCL/xifenfei_old.dbf
</pre>
<p>通过这里的简单测试,发现几个问题<br />
1.v$datafile_header.error报WRONG FILE CREATE错误 不一定就是数据文件异常,而其本质是数据文件头scn和控制文件中scn不一致<br />
2.数据文件online需要file$,v$datafile_header,v$datafile中关于数据文件创建scn都一致<br />
3.通过该分析,证明在一些极端情况下,考虑考虑该替换思路实现删除数据文件重新加入数据库</p>
<div id="crp_related"><ul><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2014/07/%e8%af%afdrop-tablespace%e5%90%8e%e4%bd%bf%e7%94%a8flashback-database%e9%97%aa%e5%9b%9e%e5%bc%82%e5%b8%b8%e5%a4%84%e7%90%86.html" rel="bookmark" class="crp_title">误drop tablespace后使用flashback database闪回异常处理</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2014/07/%e8%ae%b0%e5%bd%95%e4%b8%80%e6%ac%a1ora-600-3004-%e6%81%a2%e5%a4%8d%e8%bf%87%e7%a8%8b%e5%92%8c%e5%a4%84%e7%90%86%e6%80%9d%e8%b7%af.html" rel="bookmark" class="crp_title">记录一次ORA-600 3004 恢复过程和处理思路</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2012/11/%e6%95%b0%e6%8d%ae%e6%96%87%e4%bb%b6%e7%9a%84creation_time%e6%9d%a5%e6%ba%90%e5%92%8c%e7%ae%97%e6%b3%95.html" rel="bookmark" class="crp_title">数据文件的CREATION_TIME来源和算法</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2014/03/oracle-12c-%e6%8e%a7%e5%88%b6%e6%96%87%e4%bb%b6%e5%bc%82%e5%b8%b8%e6%81%a2%e5%a4%8d.html" rel="bookmark" class="crp_title">ORACLE 12C 控制文件异常恢复</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2014/07/%e5%88%86%e4%ba%abora-01113-ora-01110%e6%95%85%e9%9a%9c%e5%a4%84%e7%90%86%e8%bf%87%e7%a8%8b.html" rel="bookmark" class="crp_title">分享一次ORA-01113 ORA-01110故障处理过程</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2014/09/%e5%88%9b%e5%bb%ba%e6%8e%a7%e5%88%b6%e6%96%87%e4%bb%b6%e5%87%ba%e7%8e%b0ora-01565-ora-27041-osd-04002.html" rel="bookmark" class="crp_title">创建控制文件出现ORA-01565 ORA-27041 OSD-04002</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2014/03/ora-00600kcrf_resilver_log_1%e5%bc%82%e5%b8%b8%e6%81%a2%e5%a4%8d.html" rel="bookmark" class="crp_title">ORA-00600[kcrf_resilver_log_1]异常恢复</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2014/02/%e8%ae%b0%e5%bd%95%e4%b8%80%e6%ac%a1ora-00316-ora-00312-redo%e5%bc%82%e5%b8%b8%e6%81%a2%e5%a4%8d.html" rel="bookmark" class="crp_title">记录一次ORA-00316 ORA-00312 redo异常恢复</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2014/10/ora-27069-skgfdisp-%e5%b0%9d%e8%af%95%e5%9c%a8%e6%96%87%e4%bb%b6%e8%8c%83%e5%9b%b4%e5%a4%96%e6%89%a7%e8%a1%8c-io.html" rel="bookmark" class="crp_title">ORA-27069: skgfdisp: 尝试在文件范围外执行 I/O</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2014/09/%e9%87%8d%e5%bb%ba%e6%8e%a7%e5%88%b6%e6%96%87%e4%bb%b6%e4%b8%a2%e5%a4%b1%e6%95%b0%e6%8d%ae%e6%96%87%e4%bb%b6%e5%af%bc%e8%87%b4%e6%82%b2%e5%89%a7.html" rel="bookmark" class="crp_title">重建控制文件丢失数据文件导致悲剧</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2012/08/vdatafile-enabled%e7%9b%b8%e5%85%b3%e5%80%bc%e8%af%b4%e6%98%8e.html" rel="bookmark" class="crp_title">v$datafile.enabled相关值说明</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2010/08/oracle%e4%b9%8bdatafile%ef%bc%8ctablespace.html" rel="bookmark" class="crp_title">oracle之datafile，tablespace</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>https://www.xifenfei.com/2014/07/%e6%95%b0%e6%8d%ae%e6%96%87%e4%bb%b6%e7%9a%84%e4%b8%89%e4%b8%aa%e5%88%9b%e5%bb%ba%e4%b8%80%e7%82%b9%e7%82%b9%e6%8e%a2%e8%ae%a8.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
