是谁让oracle、mysql同时崩溃的!
前言
- 在线音乐戳我呀!
- 音乐博客源码上线啦!
- 奔向Linux、Docker前几篇讲了Docker的安装部署,操作算说比较简单的。
- 今天,兴致勃勃想登陆Oracle看看数据,结果,发现连接不上Oracle,紧接着Mysql也是如此,让我们看看到底是谁让两大数据库同时崩溃,是自己?还是他人?于是进行了排查之路。
- 接下来将分享如何在服务器排查oracle、mysql连接不上的问题,一五一十盘出。
- Are you ready ?
妈妈,我想上学~
oracle、mysql同时崩溃
-
Oracle连接不上?
- startup
-
MySQL错误日志出现大量的 Got an error reading communication packets 报错?
- 将log_warnings参数设为1
环境
-
数据库:Oracle、Mysql
-
服务器:Oracle、Mysql数据库是在Docker中运行
一、Oracle连接不上?
使用plsql工具发现连接不上oracle,我赶紧登上服务器看看,当我想连接oracle,却发现连不上。
实例被关了。
刚刚PL/SQL Developer 也是连接不上数据库实例,提示无监听的SID.用sysdba登录提示 Connected to an idle instance信息。
先解决问题,后续在排查根本原因。
需要连接进入重新startup开启。
#登录
SQL> sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Sat Aug 27 14:06:13 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
# 启动
SQL> startup
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 100664912 bytes
Database Buffers 180355072 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
一定要先启动监听服务,再启动数据库,否则还是连不上的。
🙋 解释一下:为什么sqlplus / as sysdba
执行完会出现
Connected to an idle instance.
🙋🏻♂️ sqlplus / as sysdba:这是要直接连接一个数据库实例,因为你数据库还没有启动所以就报Connected to an idle instance 这个错误。
而我连接使用的连接命令是 :sqlplus /nolog 我的命令含义是用sqlplus连接,但不是直接到某个实例中。这样你连接后,就不会报错的,在SQL> startup启动数据库后,ps -ef 后台可见。
二、MySQL错误日志出现大量的 Got an error reading communication packets 报错?
不仅如此啊,就连Node服务连接的Mysql数据库也连接不上。
Oracle、Mysql一时间突然都连接失败,可以判定的是,不是服务本身的问题,而是外在因素导致(不再此做分析)
先解决问题,后续在排查根本原因。
连接不上,第一件事情是先查看日志。
发现一直输出:Got an error reading communication packets
翻译过来是:读取通信包时出错。
解决方法:
先重启服务。
接着进入mysql服务中,这里是Docker环境。
进入:docker exec -it 我们的服务id /bin/bash
查看log_warnings参数:
mysql> select @@log_warnings;
+----------------+
| @@log_warnings |
+----------------+
| 2 |
+----------------+
1 row in set
将log_warnings参数设为1
mysql> set global log_warnings=1;
Query OK, 0 rows affected
mysql> select @@log_warnings;
+----------------+
| @@log_warnings |
+----------------+
| 1 |
+----------------+
1 row in set
mysql>
后记
当然,像今天oracle发生突然连接不了,是因为实例被停掉了。
我们表面确实是把问题解决掉了,但他为什么会停掉呢?这是一个可以深思的问题,很多时候,我们总是看到问题的表面,直到有一天我怀疑是不是docker的问题。
因为之前部署在win上一切都还正常,没出现过这种情况。但因种种情况,迁移到Docker中来。
这里先预告一下:其实是内存的问题导致服务被中止,这个后续会再出一篇文章,详细讲解。有兴趣的可以留意一下我哦。
👍 如果对您有帮助,你的点赞是我前进的润滑剂,支持一下呗,谢谢啦!
以往推荐
相关文献
linux下启动oracle报Connected to an idle instance
MySQL错误日志出现大量的 Got an error reading communication packets 报错
原文链接
转载自:https://juejin.cn/post/7202633255044530231