数据库文件损坏了,还可以恢复吗

数据库文件损坏了,还可以恢复吗,第1张

关于这个问题,要看损坏的是什么文件,以ORACLE数据库为例1控制文件,每个数据库默认有三个控制文件内容一样(比如CTRL01.DBF,CTRL02.DBF,CTRL03.DBF),损坏其中两个,只需把好的那个拷贝成另外两个的名称即可。如果所有控制文件都坏了,需要启动实例到nomount状态重建控制文件,前提是之前最好做过alterdatabasebackupcontrolfiletotrace会得到一个重建控制文件的脚本2在线日志(redolog),如果每个日志组(group)的member(成员)不止一个,同一组内的在线日志只要有一个完好,同样可以通过拷贝方式(停止数据库后)恢复。3TEMP表空间数据文件,可以理解为数据库用的临时文件,损坏后基本无数据损失,可以通过重建temp表空间恢复4.SYSTEM系统表空间,这个挂了基本上必须靠恢复了,前提是要有备份4.其它数据表空间4.1.有备份,可以恢复,但可能丢失数据4.2.未备份,无法恢复该表空间数据,可以选择使该表空间离线(offline),恢复其它数据

在登录tomcat前台界面时发现不能登录,查看log后发现原来是ORA-28001: the password has expired的错误,这个错误是由于Oracle11G的新特性所致, Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录。

推荐阅读:

ORA-01172、ORA-01151错误处理 http://www.linuxidc.com/Linux/2013-06/86529.htm

ORA-00600 [2662]错误解决 http://www.linuxidc.com/Linux/2013-06/86528.htm

ORA-01078 和 LRM-00109 报错解决方法 http://www.linuxidc.com/Linux/2012-07/66044.htm

ORA-00471 处理方法笔记 http://www.linuxidc.com/Linux/2013-09/90017.htm

ORA-00314,redolog 损坏,或丢失处理方法 http://www.linuxidc.com/Linux/2013-09/90646.htm

ORA-00257 归档日志过大导致无法存储的解决办法 http://www.linuxidc.com/Linux/2013-09/90594.htm

======================分割线======================

可通过如下SQL语句

SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'

查询密码的有效期设置,LIMIT字段是密码有效天数。

在密码将要过期或已经过期时可通过如下语句进行修改密码,密码修改后该用户可正常连接数据库。

ALTER USER 用户名 IDENTIFIED BY 密码

如果想去除180天的密码生存周期的限制可通过如下SQL语句将其关闭

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED ----(一般不推荐)

然后,进sys账号,将该账号解锁:

alter user 用户名 account unlock

结果还没过多久,又提示ORA-28000 the account is locked,一直解锁,但每次都是没几秒就立刻锁住了。查了之后才发现是 FAILED_LOGIN_ATTEMPTS 参数在作怪。

解决办法:

alter profile default limit failed_login_attempts 次数或unlimited

你的监听器找不到对应的服务名

意思就是说 你的 1521:后面的 ORCL 不是有效的 service名

所以连接不上,这就证明你的 客户端程序里面的 服务配置错误

或者是你的IP有问题

再就是你的服务端的监听配置错误了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10037742.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存