ORA-01122;ORA-01110;ORA-01207问题解决经验总结

 

 

1.SQL>shutdown abort 如果数据库是打开状态,强行关闭

2.SQL>sqlplus / as sysdba

3.SQL>startupORACLE 例程已经启动。

Total System Global Area 293601280 bytes

Fixed Size 1248624 bytes

Variable Size 121635472 bytes

Database Buffers 167772160 bytes

Redo Buffers 2945024 bytes数据库装载完毕。

ORA-01122: 数据库文件 1 验证失败

ORA-01110: 数据文件 1:

'F:/ORACLE/PRODUCT/10.2.0/DB_1/ORADATA/ORCLDW/SYSTEM01.DBF'

ORA-01207: 文件比控制文件更新 - 旧的控制文件

4.SQL>alter database backup controlfile to trace as 'E:/dbBAKUP';数据库已更改。

5.SQL>shutdown immediate 如果数据库是打开状态,则关闭

ORA-01109: 数据库未打开已经卸载数据库

6.SQL>startup nomount;ORACLE 例程已经启动。

Total System Global Area 105979576 bytes

Fixed Size 454328 bytesVariable Size 79691776 bytes

Database Buffers 25165824 bytesRedo Buffers 667648 bytes

7.Ue之类的编辑器打开在第四步生成的E:/dbBAKUP文件;

其实在这个文件中的已经告诉你咋样恢复你的数据库了,找到STARTUP NOMOUNT字样,然后下面可以看到类似语句,这个文件有好几个类似的生成控制文件语句,主要针对不懂的环境执行不同的语句,象我的数据库没有做任何备份,也不是在归档模式,就执行这句

CREATE CONTROLFILE REUSE DATABASE "DBF001" NORESETLOGS NOARCHIVELOGMAXLOGFILES 16MAXLOGMEMBERS 3MAXDATAFILES 100MAXINSTANCES 8MAXLOGHISTORY 292LOGFILEGROUP 1 'F:/ORACLE/PRODUCT/10.2.0/DB_1/ORADATA/DBF001/REDO01.LOG' SIZE 50M,GROUP 2 'F:/ORACLE/PRODUCT/10.2.0/DB_1/ORADATA/DBF001/REDO02.LOG' SIZE 50M,GROUP 3 'F:/ORACLE/PRODUCT/10.2.0/DB_1/ORADATA/ORCLDW/REDO03.LOG' SIZE 50MDATAFILE'F:/ORACLE/PRODUCT/10.2.0/DB_1/ORADATA/DBF001/SYSTEM01.DBF',

'F:/ORACLE/PRODUCT/10.2.0/DB_1/ORADATA/DBF001/UNDOTBS01.DBF','F:/ORACLE/PRODUCT/10.2.0/DB_1/ORADATA/DBF001/SYSAUX01.DBF','F:/ORACLE/PRODUCT/10.2.0/DB_1/ORADATA/DBF001/USERS01.DBF','F:/ORACLE/PRODUCT/10.2.0/DB_1/ORADATA/DBF001/EXAMPLE01.DBF'CHARACTER SET ZHS16GBK;

执行上面这段语句,这个语句重建控制文件,然后你可以看着E:/dbBAKUP文件完成下面的恢复工作了,

8.SQL>RECOVER DATABASE (恢复指定表空间、数据文件或整个数据库)

9.SQL>ALTER DATABASE OPEN 打开数据库

10.查看库状态

SQL> SELECT NAME,OPEN_MODE FROM V$DATABASE;

NAME      OPEN_MODE
--------- --------------------
DBF001    READ WRITE

已显示正常

你可能感兴趣的:(oracle)