oracle ORA-01033问题怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle ORA-01033问题怎么解决相关的知识,希望对你有一定的参考价值。

我的电脑前些天被我强行关机了,后来启动后系统自检了很多次,我的oracle安装在D盘,每次启动机器也是检测D盘。差不多自检了5次,就好了。可是我机器上的oracle却不能用了出现ORA-01033: ORACLE initialization or shutdown in progress提示。我感觉有可能是数据文件算坏 但也不敢确定,请高手帮忙解决一下。

客户Oracle服务器进入PL/SQL Developer时报ora-01033:oracle initializationg or shutdown in progress 错误提示,应用系统无法连接Oracle服务。经远程指导解决问题。过程如下:

1、进入CMD,执行set ORACLE_SID=fbms,确保连接到正确的SID;
2、运行sqlplus "/as sysdba"
SQL>shutdown immediate 停止服务
SQL>startup 启动服务,观察启动时有无数据文件加载报错,并记住出错数据文件标号
SQL>shutdown immediate 再次停止服务
SQL>startup mount
SQL> recover datafile 2 恢复出错的数据文件
SQL>shutdown immediate 再次停止服务
SQL>startup 启动服务,此次正常。
3、进入PL/SQL Developer检查,没有再提示错误。

还启动不了,可能就是文件的问题,不过好像也有解决办法,你先看看这个好使不?其他的我再找找哈
参考技术A Oracle DBA神器:PRM-DUL灾难恢复工具可以直接从这种受损的Oracle数据库中将数据拯救出来。
当你的数据库因为ORA-00600/ORA-07445或其他ORA-报错,或丢失关键的system表空间数据文件,或ASM diskgroup损坏时均可以考虑采用PRM-DUL来做恢复。PRM-DUL采用独创的DataBridge恢复技术,直接从数据文件中抽取数据后可以像DBLINK那样直接插入到新建数据库中,而无需数据落地成为DMP文件占用空间。
http://www.parnassusdata.com/zh-hans
参考技术B 看一下后台日志$ORACLE_BASE/admin/$ORACLE_SID/bdump/alert_$ORACLE_SID.log
里面有详细信息告诉你数据库启动时发生了什么问题
参考技术C

你需要查看oracle alert日志,确定大概的问题,然后通过我们的脚本进行数据库当前状态收集,便于判断故障:Oracle数据库异常恢复检查脚本

参考技术D

oracle ORA-01033问题具体解决步骤如下:

1、以sys登录为sysdbasqlplus  /NOLOG或者(sqlplus sys/sys@localhost/orcl as sysdba,window系统下部署的 oracle数据库总是各种bug,我的必须添加ip地址指向才能连接)。

2、登录到sys用户后,关闭数据库,输入命令:shutdown;回车,结果提示数据库未打开。

3、启动数据库,输入命令startup mount;回车后数据库即可然加载。

4、只要能够加载到数据,说明还是能够解决该问题的。

用命令去掉数据库启动时加载我们删掉的数据表文件。误删掉的是oldggk,输入命令: alter database datafile 'D:\\app\\liuzhenbin\\oradata\\orcl\\oldggk' offline drop;如果执行成功会提示:Database altered.注意:文件路径用英文状态下单引号。

5、执行完后,重新连接用户,结果还是报错,报错依旧为:ERROR:ORA-01033: ORACLE initialization or shutdown in progressProcess 是因为我们前面并没有打开数据库。

6、重新登录sys。

7、执行打开数据库命令,语句为:alter database open;执行成功后反馈信息:Database altered.

8、重新登录csyjk,成功登录,没有报错信息。说明修复成功。

扩展资料:

数据库连接失败的原因和解决方法

原因一:登录账号、密码、服务器名称、数据库名称登录错误导致不能连接,这个比较常见,仔细检查好所填信息是否正确,填写正确一般就可以解决。

解决方法:当正在使用的软件出现数据库不能连接时,一般就是服务器名出现问题,更改服务器名称一般可以解决问题。数据库如果是安装在本机,服务器名可以用“.”或“(local)”来代替 ;如果是安装在局域网的其它计算机上,可以用IP地址作为服务器名。

原因二:如果没能正确安装SQL服务器,也会导致数据库连接不上;安装好数据库后,如果SQL服务管理器没有启动,则要去服务那里开启。

解决方法:如果是SQL数据库未能能成功安装,再次重新安装时,可能会无法安装,提示是存在一个未完成的安装挂起。打开注册表编辑器,在HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager中找到并删除PendingFileRenameOperations项目即可。

如果是更改了Windows的用户名或者密码,会导致SQL服务管理器不能启动,解决办法是去控制版面的服务那里修改启动。具体是:点击开始-->设置-->控制面板-->管理工具-->服务-->找到MS SQL SERVER服务-->在上面右键-->属性-->登陆-->修改启动服务的帐户和密码。

原因三:因权限问题导致数据库不能连接,解决方法是检测计算机的安全保护限制、SQL Server安全设置、操作系统的安全限。

解决方法:可以先暂时关闭防火墙或者杀毒软件,看是否是这些软件的安全设置所导致。

SQL Server安全设置:打开企业管理器-->展开SQ L Server组-->右击服务器名-->点击属性-->在SQL Server属性-->安全性中,把“身份验证”选择为“在SQL Server和Windows”; 

如果SQL服务器采用的是Windows XP系统,当工作站电脑出现不能连接数据库的情况时,可以在服务器和工作站各建立一个相同的WINDOWS用户账号和密码

原因四:引起原因:网络连接存在故障;

解决方法:检修网络是否存在故障。

参考资料:百度百科-Oracle数据库

Oracle数据库 ORA-01555快照过旧是怎么回事?怎么解决?

与你分享 ORA-01555 错误的几种解决方案,一般来说可以采用 下
面的方法:
适当地设置参数 UNDO_RETENTION (要大于执行运行时间最长的事务所需的时间)。可以用
V$UNDOSTAT 来确定长时间运行的查询的持续时间。另外,要确保磁盘上已经预留了足够的空间 ,
使 undo 段能根据所请求的 UNDO_RETENTION 增大。
使用手动 undo 管理时加大或增加更多的回滚段。这样在长时间运行的查询执行期间,覆 盖
undo 数据的可能性就能降低。
减少查询的运行时间(调优)。如果可能的话,这绝对是一个好办法,所以应该首先尝试 这
种方法。这样就能降低对 undo 段的需求,不需求太大的 undo 段。这种方法可以解决上述的所
有 3 个问题。
收集相关对象的统计信息。这有助于避免生成大的undo。由于大批量的 UPDATE 或INSERT 会导致块清除( block cleanout ),所以需要在大批量 UPDATE 或大量加载之后以某种方
式收集统计信息。 还有一个就是重新设置大一点的undocreate undo tablespace undo_bigdatafile size 2g(让后用数据文件加到足够大)
autoextend off alter system set undo_tablespace = undo_big(切换)
参考技术A 用户user1对表进行了更新操作,用户user2在user1还没有进行提交前读表中数据,而且是大批量的读取(打个比方:耗时3分钟)而在这3分钟内user1进行了提交操作,那又会产生什么影响呢?这个时候怎么保证读写一致性呢?这个时候DBMS就要保证有足够大的undo表空间来存放修改前的数值,,以保证user2读取的数据是修改前的一致数据.然后下次再读取时候就是更新后的数据了.
ora-01555快照过旧就是因为undo空间不够大,其中一部分undo数据被覆盖了,用户无法获得修改前的数据。
undo数据分为三种:
活动的undo:未提交事务的undo数据,这些undo数据永远不能覆盖,用于回滚rollback事务。
过期的undo:已提交事务的undo数据,这些undo数据可以覆盖。
未过期的undo:事务已提交,但事务提交前,有些查询正在进行,它要读取的是提交前的数据,这部分数据就是未过期数据。如果这部分undo数据被覆盖了,就会发生ora-01555错误。

一个解决方法是,指定undo表空间参数UNDO_TABLESPACE,并将undo空间管理方法设置成自动扩展:UNDO_MANAGEMENT=AUTO。
这种方法可能产生的结果是:
因为undo表空间装了太多未过期(unexpired)的undo数据,新的transaction无法向其中写入undo数据,这时transaction就会发生ORA-30036错误。

以上是关于oracle ORA-01033问题怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

ora-01033:oracle initialization or shutdown in progress 解决方法

Oracle ORA-01033: 错误解决办法

ora-01033:oracle initialization or shutdown in progress 解决方法

oracle数据库报ORA-01033错误

oracle数据库报ORA-01033错误

Oracle登录 ORA-01033: ORACLE正在初始化或关闭的解决方法