那天下午本来打算直接跑脚本,才开始琢磨如何启动oracle,连着敲了好几行命令,窗口里只跳一堆看不懂的报错,当时脑子一下子就乱了,前一晚看的笔记全都混在了一起。

最先想到的是先把数据库实例拉起来,敲完startup之后,返回提示说没法建立连接,下意识就觉得是实例没起来,反复执行同一条命令,重复刷新页面,折腾了快四十分钟,状态还是没变。那个时候根本没往监听那边去想,总觉得实例和监听是一回事,以为只要实例起来,别的都会跟着正常,哪晓得这两个东西是分开的。

旁边工位的人路过瞟了一眼,随口说了一句,监听没开吧。

没当回事,还是继续在实例这边来回操作,一会关闭一会重启,服务器的窗口开了好几个,一会切这个一会切那个,命令输错字符是常有的事,用户名那一块还把大小写搞混了,又多出一堆无关的报错,屏幕上滚出来一大段文字,越看越烦躁。

慢慢才停下来,试着单独去启动监听,敲完命令之后,它倒是提示启动成功了,回头再去启动实例,依旧不行。这下就更懵了,明明监听显示正常,可两边就是搭不上,来回核对服务名,核对主机地址,也看不出哪里写的不对。就是觉得奇怪,状态返回都是success,可就是连不上。

翻本地存的旧记录的时候,看到之前有一次是主机名解析出问题,当时随手改了hosts文件,事后就忘了这件事,这次也下意识打开这个文件,对照里面的条目一个个看,找有没有写错的ip,改了一行保存,重新去启动监听,再去启库。还是不行。

中间还重启过服务器上相关的几个后台进程,等待的那几分钟里,盯着黑屏上跳动的光标,心里一直在猜,会不会是权限的问题,登录的账号没有对应的权限,所以哪怕命令没错,也没法拉起库。切到对应的用户下面重新登录,环境变量又没加载上,执行命令直接提示找不到程序,又回头去配置环境变量,export那几行反复粘贴,确认路径没有打错。

等环境变量调好,再去操作,监听起来了,实例启动命令跑起来之后,终于不再抛出最开始那个连接失败的提示,但是又卡在挂载阶段,进度停在那里不动。没有别的办法,只能等着,不敢随便中断,怕异常关闭之后,文件出问题,后面更难收拾。这个等待的时间特别难熬,时不时敲一条查看状态的语句,看它有没有继续往下走。

后来才反应过来,上次正常关闭的时候没有等它完整结束,直接关掉了终端窗口,库没有干净下线,这次启动的时候要做恢复校验,所以才会卡很久,不是哪里配置写错了。

校验跑完之后,数据库算是起来了,再去客户端那边尝试连接,这次顺利连上。全程耗了差不多三个小时,中间走了好多弯路,很多操作其实是多余的,来回重复做一样的动作,白白耗掉时间。仅代表我个人当时遇到的情况,别的环境、别的版本里面,碰到的现象会不一样,不能照着我这个过程去套。

那天忙完,天色已经暗下来,关掉终端的时候,只觉得肩膀发酸,没有什么学到新东西的成就感,只觉得这种事情再来一次,还是会慌。