@lijiahong
2018-09-08T02:29:51.000000Z
字数 2546
阅读 639
oracle ORA-01033
大早晨的就出现了这个问题……emmm
一觉醒来,发现应用和数据库服务器都重启了,应用连接数据库提示
连接失败: ORA-01033: ORACLE 正在初始化或关闭
哇 我的两个月的成果不会就这么没了吧?各种百度谷歌,终于找到了解决方法。按耐着激动的心情讲述一下过程,毕竟剧情跌宕起伏啊!
教程来源
1. 打开sqlplus(废话)
sqlplus /nologconn / as sysdba;
shutdown normal;
3. 装载数据
startup mount;
5. 然后开启数据库……emmmmm,然后……就没有然后了 这个跟网上的教程不一样啊!!!!!!!!
alter database open;
这是我的
这是教程的
这还怎么玩……于是乎,我又寻找关于内部错误代码,参数[kcratr_nab_less_than_odr]的错误。
要不说周六加班的孩子有虫吃呢,还是被我找到了。
--尝试直接recover databaseSQL> RECOVER DATABASE ;完成介质恢复。SQL> alter database open;alter database open*第 1 行出现错误:ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [2266],[13784], [13810], [], [], [], [], [], [], []--再打开数据库,还是kcratr_nab_less_than_odr错误警告--尝试不完全恢复SQL> RECOVER DATABASE UNTIL CANCEL;ORA-10879: error signaled in parallel recovery slaveORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误ORA-01152: 文件 1 没有从过旧的备份中还原ORA-01110: 数据文件 1: 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF'--重建控制文件SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS 'D:/1.TXT';数据库已更改。SQL> SHUTDOWN IMMEDIATE;ORA-01109: 数据库未打开已经卸载数据库。ORACLE 例程已经关闭。SQL> STARTUP NOMOUNT;ORACLE 例程已经启动。Total System Global Area 1.3696E+10 bytesFixed Size 2188768 bytesVariable Size 9764342304 bytesDatabase Buffers 3892314112 bytesRedo Buffers 37044224 bytes--这一段是从D:/1.txt直接复制过来的SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOGMAXLOGFILES 16MAXLOGMEMBERS 3MAXDATAFILES 100MAXINSTANCES 8MAXLOGHISTORY 292LOGFILEGROUP 1 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG' SIZE 50M BLOCKSIZE 512,GROUP 2 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG' SIZE 50M BLOCKSIZE 512,GROUP 3 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG' SIZE 50M BLOCKSIZE 512DATAFILE'D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF','D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF','D:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF','D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF'CHARACTER SET AL32UTF8;控制文件已创建。SQL> ALTER DATABASE OPEN;数据库已更改。--开启成功!!完结,撒花~
看到提示成功了,数据库用连接工具也连接上了,美滋滋的打开应用……

我$^&@^#&^$^$%^&@^#(@^&$*^@*&$^@(^$&@*^&@*%@*%*@!!!!
搞什么嘛。。。
于是乎,连接数据库
教程来源
1. 先查询表空间情况:
select * from dba_tablespaces where contents='TEMPORARY';
查询返回一条记录,说明存在一个临时表空间,如下:
2. 再查看视图dba_temp_files和v$tempfile
select * from dba_temp_files;select * from v$tempfile;
查询并没有返回记录;
3. 查看服务器上oracle数据目录,发现存在临时表空间对应的数据文件:
TEMP01.dbf一个数据文件;
4. 向临时数据表空间添加数据文件
alter tablespace TEMP add tempfile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\TEMP02.DBF' size 200m autoextend on;--返回执行成功[2018-09-08 09:39:11.778][data][550085][ORA]alter tablespace TEMP add tempfile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\TEMP02.DBF' size 200m autoextend onTime: 0.382s
select * from dba_temp_files;
至此,应用终于欢快的启动了!!

如果你的数据库没有自动备份,建议时刻准备跑路!!!