如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected]
适用于:
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的数据库创建新的控制文件.
在罕见情况下,你没有控制文件来进行:
- 还原
- 或有”backup controlfile to trace script”中的脚本
你必须从一开始创建脚本。
CREATE CONTROLFILE REUSE DATABASE “DBNAME” NORESETLOGS ARCHIVELOG
按照列出的格式:
– 重做日志的位置。
– 数据文件的位置
– 指定字符集。
一旦你正确列出了所有文件,你就能重建控制文件
SQL> startup nomount;
SQL>@control.sql
Leave a Reply