likes
comments
collection
share

是谁让oracle、mysql同时崩溃的!

作者站长头像
站长
· 阅读数 15

前言

  • 在线音乐戳我呀!
  • 音乐博客源码上线啦!
  • 奔向Linux、Docker前几篇讲了Docker的安装部署,操作算说比较简单的。
  • 今天,兴致勃勃想登陆Oracle看看数据,结果,发现连接不上Oracle,紧接着Mysql也是如此,让我们看看到底是谁让两大数据库同时崩溃,是自己?还是他人?于是进行了排查之路。
  • 接下来将分享如何在服务器排查oracle、mysql连接不上的问题,一五一十盘出。
  • Are you ready ?

妈妈,我想上学~

是谁让oracle、mysql同时崩溃的!

oracle、mysql同时崩溃

  • Oracle连接不上?

    • startup
  • MySQL错误日志出现大量的 Got an error reading communication packets 报错?

    • 将log_warnings参数设为1

环境

  • 数据库:Oracle、Mysql

  • 服务器:Oracle、Mysql数据库是在Docker中运行

一、Oracle连接不上?

使用plsql工具发现连接不上oracle,我赶紧登上服务器看看,当我想连接oracle,却发现连不上。

是谁让oracle、mysql同时崩溃的!

实例被关了。

刚刚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

翻译过来是:读取通信包时出错。

是谁让oracle、mysql同时崩溃的!

解决方法:

先重启服务。

接着进入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、mysql同时崩溃的!

后记

当然,像今天oracle发生突然连接不了,是因为实例被停掉了。

我们表面确实是把问题解决掉了,但他为什么会停掉呢?这是一个可以深思的问题,很多时候,我们总是看到问题的表面,直到有一天我怀疑是不是docker的问题。

因为之前部署在win上一切都还正常,没出现过这种情况。但因种种情况,迁移到Docker中来。

这里先预告一下:其实是内存的问题导致服务被中止,这个后续会再出一篇文章,详细讲解。有兴趣的可以留意一下我哦。

👍 如果对您有帮助,你的点赞是我前进的润滑剂,支持一下呗,谢谢啦!

以往推荐

三面:请设计一个虚拟DOM算法吧!

Vue3的响应式到底比Vue2优雅在哪

开局面试官就让我设计一个路由

实战v-model如何绑定多循环表达式(内含原理)

靓仔,说一下keep-alive缓存组件后怎么更新及原理?

面试官问我watch和computed的区别以及选择?

面试官问我new Vue阶段做了什么?

多图详解,一次性啃懂原型链(上万字)

Vue-Cli3搭建组件库

Vue实现动态路由(和面试官吹项目亮点)

VuePress搭建项目组件文档

相关文献

linux下启动oracle报Connected to an idle instance

MySQL错误日志出现大量的 Got an error reading communication packets 报错

原文链接

juejin.cn/post/720263…