求ORACLE恢复的相关资料,本人想了解一下这方面的知识 如题,哪位好心的大虾能提供一点这方面的线索?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 到ORACLE中文论坛有很多好的资料!http://211.99.196.144:8090/forum1/frontshow/index3.jsp?boardid=2&discription=Oracle%20技术有什么问题也可以去到那里问。 这里给你帖出一点资料。1。问题出现1:(数据库8I) 数据库使用过程中掉电,导致数据库进程挂起或是文件检查点不统一 而且数据库没有归档:解决方法1: 因为数据库的连机日志是循环写的,日志文件记载了数据库的操作 :如果索引我们所以我们首先要做的工作就是冷备份数据库所有的数据库文件(日志文件,数据文件,控制文件等)因为用RECOVER恢复启动数据库是要从新写日志的,如果不成功还可以用备份来用其他的方法: 你在服务器端,用SVRMGRL命令SVRMGRL> connect internal;SVRMGRL> SHUTDOWN IMMEDIATE; SVRMGRL> STARTUP MOUNT;SVRMGRL> recover database until time 'YYYY-MM-DD:hh:mm:ss';--'数据库能正常启动的近一次的时间'如2003-12-12:12:12:12SVRMGRL> ALTER DATABASE OPEN resetlogs;如果日志里有足够的信息,一般情况下都能正常恢复:(因为我们只要这几个日志文件,所以为什么不要在做太多操作,先备份,每做一次检查点都会写日志)。希望大家继续,我们将整理成精华文章恭大家参考: 有些时侯可能你的库处于非归档的模式下,而你的联机重做日志又currupted,你的数据文件不能完成完全的恢复。而这时当你试图打开数据库时,oracle提示你用resetlogs选项,当你使用该选项时oracle又不允许你使用该选项,总之你想打开数据库,可就是打不开。步骤:1、最好做一个物理的库的全备2、使用sqlplus 启动库至mountsqlplus /nologsql>connect internalsql>startup mount3、确保所有的数据文件都处于"END BACKUP"状态sql>set pages 0 feedback off lines 132sql>spool alter_df.sqlsql>SELECT 'alter database datafile '||file_name||' END BACKUP;' from v$datafile;sql>spool offsql>@alter_df.sql4、试着打开数据库sql>alter database open;如数据库成功打开,余下的都不需要做了,到此为止5、如果你在打开时被要求进行恢复,使用"UNTIL CANCEL"这种进行恢复,然后再发出ALTER DATABASE OPEN RESETLOGS这个命令 sql>recover database until cancel; sql>alter database open resetlogs;6、如果数据库仍不能打开,把库down掉 sql>shutdown immediate7、在init<sid>.ora中加入如下参数 _allow_resetlogs_corruption=TRUE8、执行如下语句sql>connect internalsql>startup mountsql>@alter_df.sqlsql>alter database open9、如在alter database open时仍旧报错,使用until cancel恢复sql>recover database until cancel;sql>alter database open resetlogs;10、经过"9",数据库一定被打开了,数据库被打开后,马上执行一个full export11、down掉库,去掉_all_resetlogs_corrupt参数12、重建库13、import并完成恢复14、建议执行一下ANALYZE TABLE ...VALIDATE STRUCTURE CASCADE;//===这种办法仅仅是在没有办法的办法后使用,满足以下条件1、没有备份2、损坏或丢失的当前的联机日志3、当前日志中包含未提交或回滚的事务。注意,此方法不仅是在不归档数据库中,如果归档了,但是没有任何可用备份也是一样。注意,当前联机日志的损坏或丢失对数据库的打击的巨大的,数据库的一致性的保证就是联机日志,而联机日志丢了,数据库的一致性可能就没有保证这也就是以上步骤中从10开始的原因。如果损坏的不是当前日志,或当前日志没有同步的需要(没有未完成的事务)可以通过alter database clear [unarchived] logfile group n来重建日志组_ALLOW_RESETLOGS_CORRUPTION我也用过,不是像贴子中说的10一定能成功,如果数据库失败的时候报的是ora-368错误,这样做肯定不行,请大家注意! 这是ORACLE技术网文章,本人也用同样的方法,恢复过多次。错误现象: 因误操作,数据库中某一数据文件被误删,控制面板的Oracle相关服务显示已启动,但用SQL*Plus无法连接,显示以下错误ORA-01033: ORACLE initialization or shutdown in progress模拟现象: create tablespace test datafile'c:\test.ora' size 5MAUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITEDdefault storage (initial 128K next 1M pctincrease 0)/关闭所有服务stop.batnet stop "OracleWebAssistant0"net stop "OracleOraHome81TNSListener"net stop "OracleServiceORADB"shutdown在操作系统中删除test.ora文件重新启动服务start.batnet start "OracleWebAssistant0"net start "OracleOraHome81TNSListener"net start "OracleServiceORADB"服务里OracleServiceORADB显示已启动,但用SQL*Plus无法连接,显示ORA-01033: ORACLE initialization or shutdown in progress解决方法:先让该数据文件脱机,就可以打开数据库C:\>svrmgrlsvrmgrl>connect internalsvrmgrl>shutdownsvrmgrl>startup mount--ARCHIVELOG模式命令,文件名要大写svrmgrl>alter database datafile 'C:\TEST.ORA' offline;--NOARCHIVELOG模式命令svrmgrl>alter database datafile 'C:\TEST.ORA' offline drop;svrmgrl>alter database open;--查询数据文件联、脱机状态SQL> select file#,name,status from v$datafile;SQL> drop tablespace test;表空间已丢弃。 求救! 关于Oracle远程存储的问题,各位大虾麻烦多多指点一下吧 oracle 可以这样异常处理吗 请教截取字符串排序sql语句怎么写? 求提取天数的语句! 不知不觉已经有2颗星星,散分。 使用函数索引的问题,高手请进,高分!!! 请问怎样显示raw里的字符内容? 如何取得oracle的所有表的表结构,表名称,索引信息?(在不知道有那些表的情况下) 请教一下分组、排序、赋值问题 数据链路:access与oracle之间能否建立数据链路 向大家请教一个SQL(3)
http://211.99.196.144:8090/forum1/frontshow/index3.jsp?boardid=2&discription=Oracle%20技术有什么问题也可以去到那里问。
1。问题出现1:(数据库8I)
数据库使用过程中掉电,导致数据库进程挂起或是文件检查点不统一
而且数据库没有归档:
解决方法1:
因为数据库的连机日志是循环写的,日志文件记载了数据库的操作
:如果索引我们所以我们首先要做的工作
就是冷备份数据库所有的数据库文件(日志文件,数据文件,控制文件等)
因为用RECOVER恢复启动数据库是要从新写日志的,如果不成功还可以用备份
来用其他的方法:
你在服务器端,用SVRMGRL命令
SVRMGRL> connect internal;
SVRMGRL> SHUTDOWN IMMEDIATE;
SVRMGRL> STARTUP MOUNT;
SVRMGRL> recover database until time 'YYYY-MM-DD:hh:mm:ss';--'数据库能正常启动的近一次的时间'
如2003-12-12:12:12:12
SVRMGRL> ALTER DATABASE OPEN resetlogs;
如果日志里有足够的信息,一般情况下都能正常恢复:(因为我们只要这几个日志文件
,所以为什么不要在做太多操作,先备份,每做一次检查点都会写日志)。希望大家继续,我们将整理成精华文章恭大家参考:
步骤:
1、最好做一个物理的库的全备
2、使用sqlplus 启动库至mount
sqlplus /nolog
sql>connect internal
sql>startup mount
3、确保所有的数据文件都处于"END BACKUP"状态
sql>set pages 0 feedback off lines 132
sql>spool alter_df.sql
sql>SELECT 'alter database datafile '||file_name||' END BACKUP;' from v$datafile;
sql>spool off
sql>@alter_df.sql
4、试着打开数据库
sql>alter database open;
如数据库成功打开,余下的都不需要做了,到此为止
5、如果你在打开时被要求进行恢复,使用"UNTIL CANCEL"这种进行恢复,然后再发出ALTER DATABASE OPEN RESETLOGS这个命令
sql>recover database until cancel;
sql>alter database open resetlogs;
6、如果数据库仍不能打开,把库down掉
sql>shutdown immediate
7、在init<sid>.ora中加入如下参数
_allow_resetlogs_corruption=TRUE
8、执行如下语句
sql>connect internal
sql>startup mount
sql>@alter_df.sql
sql>alter database open
9、如在alter database open时仍旧报错,使用until cancel恢复
sql>recover database until cancel;
sql>alter database open resetlogs;
10、经过"9",数据库一定被打开了,数据库被打开后,马上执行一个full export
11、down掉库,去掉_all_resetlogs_corrupt参数
12、重建库
13、import并完成恢复
14、建议执行一下ANALYZE TABLE ...VALIDATE STRUCTURE CASCADE;
//===
这种办法仅仅是在没有办法的办法后使用,满足以下条件
1、没有备份
2、损坏或丢失的当前的联机日志
3、当前日志中包含未提交或回滚的事务。
注意,此方法不仅是在不归档数据库中,如果归档了,但是没有任何可用备份也是一样。注意,当前联机日志的损坏或丢失对数据库的打击的巨大的,
数据库的一致性的保证就是联机日志,而联机日志丢了,数据库的一致性可能就没有保证
这也就是以上步骤中从10开始的原因。如果损坏的不是当前日志,或当前日志没有同步的需要(没有未完成的事务)
可以通过
alter database clear [unarchived] logfile group n
来重建日志组_ALLOW_RESETLOGS_CORRUPTION我也用过,不是像贴子中说的10一定能成功,如果数据库失败的时候报的是ora-368错误,这样做肯定不行,请大家注意!
错误现象:
因误操作,数据库中某一数据文件被误删,
控制面板的Oracle相关服务显示已启动,但用SQL*Plus无法连接,
显示以下错误
ORA-01033: ORACLE initialization or shutdown in progress模拟现象: create tablespace test datafile
'c:\test.ora' size 5M
AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED
default storage (initial 128K next 1M pctincrease 0)
/关闭所有服务stop.batnet stop "OracleWebAssistant0"
net stop "OracleOraHome81TNSListener"
net stop "OracleServiceORADB"shutdown在操作系统中删除test.ora文件重新启动服务start.batnet start "OracleWebAssistant0"
net start "OracleOraHome81TNSListener"
net start "OracleServiceORADB"服务里OracleServiceORADB显示已启动,但用SQL*Plus无法连接,
显示ORA-01033: ORACLE initialization or shutdown in progress
解决方法:先让该数据文件脱机,就可以打开数据库
C:\>svrmgrl
svrmgrl>connect internal
svrmgrl>shutdown
svrmgrl>startup mount--ARCHIVELOG模式命令,文件名要大写
svrmgrl>alter database datafile 'C:\TEST.ORA' offline;--NOARCHIVELOG模式命令
svrmgrl>alter database datafile 'C:\TEST.ORA' offline drop;svrmgrl>alter database open;
--查询数据文件联、脱机状态
SQL> select file#,name,status from v$datafile;SQL> drop tablespace test;表空间已丢弃。