oracle数据库命令无法找到,Oracle日常问题-数据库无法启动(案例二)

数据库因服务器断电后无法启动,通过检查发现/oracle目录文件丢失。通过手动挂载磁盘、复制测试服务器Oracle软件、修改参数文件、监听文件及数据库升级等方式逐步恢复。最终成功启动数据库并验证数据正常,但需注意数据库版本不匹配问题。建议用户定期备份并检查硬件健康状况。
摘要由CSDN通过智能技术生成

Oracle日常问题-数据库无法启动(案例二)

问题现象:

同事反馈客户机房断电,来电后,启动数据库服务器,发现数据无法启动。

登录应用系统,输入用户名和密码登录后报错。

853b6e8e07aa312310372d7c0f1e2c8c.png

解决过程:

:

服务器启动后,

数据库或监听没有

自动

启动

远程

登录数据库服务器,切换到oracle

用户,发现没有

sqlplus

命令

???

80150268bf4f76b70317e88684b0b251.png

猜测:

没配置环境变量,还是

数据库用户不是oracle?

查看用户只有oracle

用户

[root@zjltdb home]# ls

oracle

无法找到数据库警告日志

[root@zjltdb home]# find / -name alert_*

查看数据库环境变量

4ba1390af5b134b2d85568b5e67f2d50.png

da0ef68b43d1773c6982fb25dbb75a78.png

发现Oracle

家目录没有文件

3efb4f4e6ba70796afc26ad00ffc403e.png

和客户沟通,数据库服务器数据存储在磁盘柜,停电时,数据库服务器和磁盘柜均异常断电;

猜测:来电启动时,磁盘柜启动速度慢于数据库服务器启动速度,导致数据库服务器启动时无法成功挂载磁盘,导致目录丢失?

查看自动挂载情况

cff87d8ca78b8c81c33f6116ba45488b.png

8c8589e75beec35e45ba3d863a9933c5.png

[oracle@zjltdb oracle]$ mount

/dev/sda

2

on /

oracle type

ext4 (rw)

卸载/oracle

,重新手动挂载

[oracle@zjltdb oracle]$

u

mount

/dev/sda2

[oracle@zjltdb oracle]$ mount

/dev/sda2 /oracle

/oracle

仍然没有文件

af2fb8ab08f2170a0f13ba9b828b9a02.png

让客户重启数据库服务器,启动之后发现/oracle

目录仍然没有文件

结论:/oracle

目录下文件并不是没有挂载,而是真

没了

查看三大核心文件(

控制文件,日志文件,数据文件

)

还在,是否有丢失个别文件还不确定。

[root@zjltdb home]# find / -name *.ctl

/oradata/ncdb/control01.ctl

/oradata/ncdb/control02.ctl

/oradata/ncdb/control03.ctl

[root@zjltdb home]# find / -name redo*

/oradata/ncdb/redo01.log

/oradata/ncdb/redo02.log

/oradata/ncdb/redo03.log

[root@zjltdb home]# find / -name *.dbf

/oradata/ncdb/nnc_data01.dbf

/oradata/ncdb/nnc_index01.dbf

/oradata/ncdb/system01.dbf

/oradata/ncdb/undotbs01.dbf

......

查看参数文件,监听文件等已经丢失

[root@zjltdb home]# find / -name

init*

root@zjltdb home]# find / -name

listener*

丢失的文件有:参数文件,监听文件,TNS

文件,

Oracle

安装目录

(

包括

Oracle

命令等

)

客户

反馈

数据库没有启动归档,没有RMAN

备份,

没有

expdp

逻辑备份

总之一句话,没有任何有效的备份。

解决方案:

在服务器本地

重新生成Oracle

软件

或直接将数据文件迁移到其他服务器上,客户希望能直接在服务器本地进行恢复。

客户没有安装介质,

不知道oracle

10g

具体哪个

版本,但客户反馈正式数据库和

测试

数据库是

一起搭建的,推测两个数据库版本相同,可以复制

测试

服务器

Oracle_home

目录到正式数据库服务器上。

一:

将测试库上的oracle

软件拷贝到正式服务器上

[root@zjltdb ~]# scp -r 192.

100

.

100

.

xxx

:/oracle/* /oracle

[root@zjltdb ~]# cd /oracle

[root@zjltdb oracle]# ls

orainventory

admin

product

由于两个数据库的SID

和目录名不同,需要更改相应的目录名和实例名

二:禁用spfile

参数文件

[

oracle@zjltdb

dbs]

$

mv

spfileerpdb.ora

spfileerpdb.ora.bak

三:重命名pfile

参数文件

[

oracle@zjltdb

dbs]

$

mv

initerpdb.ora

initncdb.ora

四:修改参数文件

[

oracle@zjltdb

dbs]

$

vim

initncdb.ora

e77956218bcad5df468597b5f9fb2a55.png

五:修改监听文件

[

oracle@zjltdb

admin]

$

vim

listener.ora

d44795bf6eecb8e104653800d5a63d8d.png

六:启动数据库

9de20e1c2f82c102fb678480c66510e7.png

分析启动报错原因:

参数文件记录的数据库版本和控制文件记录的数据库版本不一致,原库版本是10.2.0.3.0

,但是拷贝过来的数据库软件属于

10.2.0.4.0

没有时间再去找

10.2.0.3.0

的安装包了,只能继续恢复了。

解决方案:

修改参数compatible

版本为

10.2.4.0

[

oracle@zjltdb

dbs]

$

vim

initncdb.ora

72d99689c3de6d2ab3b45c7737a10100.png

七:再次启动数据库

c436d080ab46a210375e323e74b9fa00.png

可以成功挂载数据库,但是无法open

数据库,原因还是因为数据库版本不匹配

查看警告日志

[oracle@zjltdb

trace

]$ vim alert_ncdb.log

a8fd6ce3486a7951e9854806a7c64b2e.png

数据库必须以UPGRADE

方式启动

八:以UPGRADE

方式启动数据库

bf120afa93a592df63f58b6d3d1ccdf1.png

此时数据库状态为OPEN MIGRATE

b996c11ce96215bf4c26ef2feb4070cf.png

数据库OPEN MIGRATE

状态下无法连接

生产

用户,只允许sysdba

用户连接

62439319500b5ccd64c8f2ded39fe596.png

猜测:

必须

将数据库升级到10.2.0.4.0

后应该可以启动数据库

九:执行数据库升级脚本(

重新创建数据字典和视图

)

升级之前备份所有的数据文件,控制文件,日志文件到本地

SQL >

@/oracle/product/10.2/rdbms/admin/catu

p

grd.sql

......

过程比较漫长,大概1

小时

再次启动数据库,可以正常open

6326dadf4d29878b9e3811c51463041e.png

8949343f84a37fc607259119507c3ddb.png

十一

:启动监听后,进入NC

系统,发现

NC

数据一切正常

十二:让客户尽快做备份

1 expdp

对所有用户做逻辑备份

2

备份

/oracle

目录到本地

第二天早上,用户发来消息,NC

再次出现无法登录,登录到

/oracle

目录又变空了,并且用户昨天晚上并没有来得及做任何备份,他说太晚了,想早上在做备份。用户希望可以再做一次恢复。

猜测问题可能原因:

1

人员恶意删除

2

/oracle

所在磁盘出现问题

解决方案:

1

重复昨天的恢复操作

2

修改

oracle

环境变量,将

oracle_home

指向其他磁盘

3

全库备份,备份文件拷贝到其他服务器上

4

启动数据库,启动监停,

客户

登录

系统

,查看

系统

数据,一切正常

建议用户

联系

服务器硬件厂商尽快检查磁盘健康情况;

欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!

267e9451e907278a46666798dfedc7fd.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值