如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com

    适用于: Oracle Database - Enterprise Edition – 版本9.0.1.0 及以上 本文信息适用于任何平台。 目标 本文描述了如何重建你的控制文件。 解决方案 警告 你仅能在以下情况重建你的控制文件:
  • 控制文件的所有当前副本丢失或损坏。
  • 你在控制文件损坏或丢失的位置还原备份。
  • 你需要在控制文件中更改一个hard limit数据库参数。
  • 如果你在将数据库移动到另一个服务器且文件位于另一个位置。
  • Oracle Customer Support 建议你这么做。
从一个被mount或打开的现有数据库创建一个新的控制文件。 首先你必须生成控制文件的一个ascii dump。 虽然数据库被mount或打开,发出: SQL> alter database backup controlfile to trace; user_dump_destination 目录中会生成一个跟踪文件。 SQL> show parameter user_dump_dest NAME            TYPE         VALUE --------------  ------       ------------------------------------------------ user_dump_dest  string       /oracle/product/11.1.0/db_1/diag/rdbms/V11/trace 在导航到目录后,通过发出以下命令,以日期/时间定位最近的跟踪文件:   ls -ltr. % cd /oracle/product/11.1.0/db_1/diag/rdbms/V11/trace % ls -ltr 一旦你定位了文件,它会显示为一个普通的跟踪文件: Trace file /oracle/product/11.1.0/db_1/diag/rdbms/V11/trace/V11_ora_31225.trc Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options ORACLE_HOME = /oracle/product/11.1.0/db_1 (或)   定位跟踪文件一个更简单的方法如下:   SQL> alter database backup controlfile to trace; Database altered. SQL> oradebug setmypid; Statement processed. SQL> oradebug tracefile_name; /opt/app/oracle/diag/rdbms/ora11g/ORA11G/trace/ORA11G_ora_17822.trc   你对包含create controlfile脚本的部分有兴趣。 更改跟踪文件并将起用作创建control的脚本。   CREATE CONTROLFILE REUSE DATABASE "V11" NORESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 '/oradata/V11/redo01.log' SIZE 50M, GROUP 2 '/oradata/V11/redo02.log' SIZE 50M, GROUP 3 '/oradata/V11/redo03.log' SIZE 50M DATAFILE '/oradata/V11/system01.dbf', '/oradata/V11/sysaux01.dbf', '/oradata/V11/undotbs01.dbf', '/oradata/V11/user01.dbf' CHARACTER SET WE8MSWIN1252 ; ALTER TABLESPACE TEMP_TEST ADD TEMPFILE '˜/oradata/V11/temp01.dbf'™ reuse;   删除"CREATE CONTROLFILE"以上和CHARACTER SET以后的一切是重要的。确保你留下分号。 “;”。 在上述例子中我们选择了NORESETLOGS选项并在ARCHIVELOG模式下运行数据库。在成功保存脚本后,你现在能重新控制文件。当关闭数据库时,确保你使用immediate选项关闭。   SQL> shutdown immediate; SQL> startup nomount; SQL>@control.sql   注:在重建控制文件后,确保你添加了现有的TEMP 文件: 例如: alter tablespace temp_ts add tempfile '˜/oradata/V11/temp01.dbf'™ reuse; 一旦控制文件被成功创建,数据库被自动mounted。如果你使用了一个resetlogs打开数据库,尽快创建备份很重要。 从无法mount的数据库创建新的控制文件. 在罕见情况下,你没有控制文件来进行:
  1. 还原
  2. 或有"backup controlfile to trace script"中的脚本
你必须从一开始创建脚本。 CREATE CONTROLFILE REUSE DATABASE "DBNAME" NORESETLOGS ARCHIVELOG 按照列出的格式: - 重做日志的位置。 - 数据文件的位置 - 指定字符集。 一旦你正确列出了所有文件,你就能重建控制文件 SQL> startup nomount; SQL>@control.sql