美文网首页Oracle数据库管理之道
平台服务恢复处理记录

平台服务恢复处理记录

作者: howtor | 来源:发表于2019-07-30 11:22 被阅读1次

周六公司云主机迁移,部分云业务迁移到了新的平台,迁移采用的是数据硬盘迁移,不涉及IP地址的更换,我这边负责的平台所有测试服务器全部重启了,服务也全都停了,周一来了就开始恢复,服务架构是Spring Cloud。过程中遇到了一些问题,全部是配置文件依赖服务器中配置文件的相关服务,脚本提供配置或者配置在应用本身或者远程服务的未受影响。相关处理过程记录一下。

1.启动基础服务,相关配置直接写在启动脚本中,一共是五个服务,eurekaServer、config、gateway、gen、auth,启动过程中auth服务失败了,其它四个都成功了没问题,打开启动日志,查看是druid连接池报错,获取数据源失败了,应该是oracle服务也停了,所以失败,然后想到auth依赖redis,所以顺手先把redis启动了,连接到redis服务器,没什么特殊配置,直接redis-server /etc/redis.conf命令启动成功,然后nginx命令直接启动了nginx也启动成功没什么问题。

2.启动备件业务程序,直接启动,部分配置也是写在启动脚本中,没什么问题,直接启动成功,尝试访问了一下测试环境地址,报auth相关的错,auth服务请求失败

3.启动oracle。root用户,lsnrctl status查看oracle监听状态,确认监听没有启动,lsnrctl start启动所有监听器,没什么问题。
然后执行命令:sqlplus / as sysdba,oracle返回错误ORA-01031: insufficient privileges,权限不足,应该是当前登录用户权限的问题


image.png

执行su oracle切换到oracle用户,再次执行sqlplus / as sysdba,直接报command not found,找不到命令,由于对Linux研究不多,这里卡了好久,原因是su切换用户不改变当前环境变量,应该用su - oracle,切换用户后并且切换到用户的变量,再次执行sqlplus / as sysdba,连接成功,然后执行startup启动oracle,又报错了,报错信息为ORA-32004,ORA-16032,ORA-07286。

ORA-16032: parameter LOG_ARCHIVE_DEST_1 destination string cannot be translated ORA-07286: sksagdi: cannot obtain device information. Linux Error: 2: No such file or directory
image.png

查看提示是Linux找不到档案或者目录,联想到可能是服务器通过数据硬盘迁移造成了服务的某些配置路径发生了变化。查看网上相关问题的处理,发现这三个错误都是同时出现,基本可以确定就是同一个问题,查看ORA-16032的报错信息:parameter LOG_ARCHIVE_DEST_1 destination string cannot be translated,继续查资料,是oracle归档路径的问题,命令archive log list查看归档信息,显示not logged on,应该看下oracle的spfile文件,spfile文件存放的也是数据库实例启动时的参数设置值,cd ORACLE_HOME进入ORACLE_HOME目录,cd dbs,执行strings spfile*.ora|grep dest_1,列出以下信息: *.log_archive_dest-1='location=/data/oracle/product/11.2.0/archive/arch' 然后尝试进入这个目录 cd /data/oracle/product/11.2.0/archive/arch,提示:没有那个文件或目录,/data/oracle/product/11.2.0下没有/archive/arch目录,然后尝试在/data/oracle/product/11.2.0下新建了目录/archive/arch,chown/chgrp修改文件夹到用户oracle/1001下,然后再重新执行以下命令:

sqlplus / as sysdba
SQL> startup

oracle启动成功


image.png

4.oracle启动成功后再次执行启动基础服务的脚本,auth服务也正常启动,然后打开浏览器输入测试环境访问地址,还是报auth服务相同的错误,提示错误为http://test-ip/zhuapi/ius/xxxxxxx,仔细一看,多了个zhuapi,以前好像没见过啊,这个是请求到网关的链接,网关识别此来转发到对应的微服务,正常应该是配置我们应用前端代码的config.js中,应该不是nginx反向代理的问题,所以直接去前端代码中全局搜zhuapi,什么都没搜到,看了config.js也是正常的,然后又将目光转到nginx配置,查看了nginx配置也没找到这个zhuapi。然后浏览器F12,点到控制台Sources下,直接查看浏览器加载的前端文件,应用的前端业务代码都做了混淆,config.js只有简单的几个配置,没混淆,可以直接看,果然,前端加载的config.js中有个zhuapi,这个配置完全没印象,还不知道缓存了多久,应该是很早以前的,真的是很奇怪。所以现在问题找到,是nginx的问题,页面加载的一直是nginx中缓存的静态文件,然后绕过nginx直接请求网关地址,应用显示正常,所以基本确定就是nginx的问题了。
nginx启动成功,也能请求到服务的页面,但是访问异常,所以首先想到去看nginx的配置文件,whereis nginx,列出几个目录,找到nginx位置在/usr/local/nginx,还有个/etc/nginx,先不管,cd /usr/local/nginx/conf, vi nginx.conf,打开后看到就一行配置,监听了8099端口,并且在其目录中找到了对应的错误的缓存静态文件,直接删除,再次访问,nginx报错找不到页面,很奇怪,这个配置也没监听80,原先nginx上的配置肯定不可能是这样的,否则无法正常转发请求,回头再去看/etc/nginx,/etc/nginx/这个目录下也有个nginx.conf的配置,打开发现这个才是转发应用服务的nginx配置,但是很奇怪,服务器装了两个nginx,默认启动的不是对应我们服务的,这两个nginx应该分别是yum安装与源码包安装的。然后查看当前nginx的pid,kill掉,停掉nginx,替换nginx配置文件为服务对应的配置,指定配置文件重启,然后浏览器强制刷新访问,服务恢复正常。

相关文章

  • 平台服务恢复处理记录

    周六公司云主机迁移,部分云业务迁移到了新的平台,迁移采用的是数据硬盘迁移,不涉及IP地址的更换,我这边负责的平台所...

  • 监控平台产品

    企业业务服务较多时,通过监控平台能较好的保障业务的可用性,与风控平台类似,从事前发现问题,事中告警、定位、处理恢复...

  • 2019-07-08 NBU恢复虚拟机操作记录

    恢复步骤 登陆备份平台,恢复虚拟机 选择恢复的虚拟机及备份服务器 选择恢复时间点 恢复向导,选择恢复虚拟机的存放位...

  • gitlab 备份数据恢复

    在说gitlab数据备份数据恢复之前,前记录一个gitlab备份的命令 gitlab 服务的备份恢复,只能在和备份...

  • 2018-02-09

    好巧不巧,之前的问题又出现了。先联系业务人员处理,恢复批处理正常。完事又赶快向客户批处理平台组反馈问题,帮忙联系业...

  • 服务器宕机问题处理以及恢复

    前言 实际我们在开发过程中,遇到最多的问题就是代码bug导致数据异常这种情况,这种情况一般都可以静态的查看代码去进...

  • 恢复记录恢复记忆

    上海的疫情在恢复中,社会生活也在恢复中,写感想的习惯也要慢慢恢复起来了。真是间隔了好久好久。 用文字记录感想、记录...

  • 2018-08-27

    二分党建APP- 会议直播系统1、会议详情新增查看历史记录2、公司平台版本已更新,二分那边等服务器重装后处理3、M...

  • 编程词汇积累

    平台的架构,框架 构造,创建 声明,定义,引用,调用,初始化 描述,表达 识别,记录,化简 处理=记录+运算 四种...

  • Hystrix入门

    Hystrix能做什么? 1. 延时和容错:防止级联失败/服务优雅降级/快速失败,快速恢复/断路由/超时处理 2....

网友评论

    本文标题:平台服务恢复处理记录

    本文链接:https://www.haomeiwen.com/subject/eiugrctx.html