你是不是也遇到过这种情况?想把 Oracle 数据库关掉,点了关闭按钮之后,屏幕上突然跳出一行行错误提示,红的绿的字混在一起,看得人头皮发麻。关又关不掉,退又退不出,手忙脚乱的,生怕一动就把里面的数据搞没了。其实啊,oracle 关闭数据库提示错误这事,真不算少见,新手碰到几乎都会慌,今天小编就来好好说说,碰到这种情况该咋办。
一、先别慌!错误提示里藏着答案
看到错误提示第一反应,很多人都是 “完了,出大事了”,其实真没必要。虽然错误提示看起来吓人,但里面多半写了为啥关不掉。
比如有的提示会说 “还有人连着数据库呢,关不了”,这就很明显了,是有别人还在用这个数据库,你得先让他们退出去。还有的会写 “某个文件正在被用,关不掉”,这可能是你之前打开了什么数据文件没关,或者电脑里有程序还在占着它。
小编建议,碰到错误先停 3 秒,把提示里的字一个一个读清楚,哪怕有不认识的词,记下来也行,这比瞎点鼠标有用多了。
二、最常见的三种错误,这么解决就行
平时大家碰到的关库错误,翻来覆去就那么几种,记下来这几个办法,基本能应付八成情况。
第一种,提示 “有活动连接,无法关闭”。这时候你得先看看谁还连着。打开那个叫 SQL*Plus 的工具,输入一行命令(别担心,很简单),就能看到哪些人在连接数据库。找到之后,要么喊他们先退出,要么你自己动手把这些连接断了,断的时候慢一点,一步一步来,别着急点确定。
第二种,提示 “文件被锁定,关闭失败”。这种情况,可能是你之前导数据、备份的时候,打开的文件没正常关掉。这时候可以看看任务管理器(Windows 系统)或者进程列表(Linux 系统),找到那些带 “oracle” 字样的运行程序,不是正在用的都关掉,关之前最好再检查一遍,别把有用的程序给结束了。
第三种,提示 “权限不够,无法执行关闭操作”。这就更简单了,你登录数据库的时候,可能用的不是管理员账号。退出重新登录,记得选那个带 “管理员” 或者 “sysdba” 的身份,一般这样就能解决。
三、要是试了办法还不行,该咋整?
有时候吧,明明按步骤来了,错误还是跳出来,这时候别死磕。虽然大部分错误都能按上面的办法解决,但总有一些奇奇怪怪的情况。
可以试试重启电脑,听起来简单,但有时候就是管用。重启之后,先别打开别的程序,直接去关数据库,说不定就成了。不过话说回来,重启前最好想想,有没有没保存的数据,别因为重启把别的工作搞丢了。
还有一种办法,就是查日志。数据库里面有个叫 “alert” 的日志文件,里面记了所有出过错的地方。找到这个文件(一般在安装目录的 “diag” 文件夹里,具体位置可能因版本不同不一样),打开看看最近的记录,里面可能会写得比错误提示更详细,顺着找原因,或许能有新发现。
四、一些掏心窝子的小建议
小编自己刚开始碰 Oracle 的时候,也老在关库这步栽跟头。后来总结出个经验,关数据库之前,最好先做点准备。
比如,关库前先看看自己有没有管理员权限,再确认一下没人在用数据库了,备份也做好了,这样能少一半麻烦。还有,别在电脑卡的时候关库,电脑本身就慢,数据库可能反应不过来,容易出错误。
对了,有个事儿小编到现在也没完全弄明白 —— 某些特别老的 Oracle 版本,比如 9i,有时候关库错误的提示特别奇怪,按常规办法根本解决不了,具体为啥会这样,可能得问更专业的人,具体机制还待进一步研究。
其实啊,关数据库出错误真不算啥大问题,就怕一出错就慌神,乱点乱试。记住,错误提示是帮你解决问题的,不是来吓你的。慢慢试,多碰几次,你就会发现,原来也就那么回事。希望这些能帮到你,下次关库顺顺利利的。