GreatSQL通過錯誤日誌信息判斷資料庫實例是如何關閉的

来源:https://www.cnblogs.com/greatsql/archive/2023/07/19/17564934.html
-Advertisement-
Play Games

## 背景概述 在一次客戶的資料庫實例連接不上了,需要我們排查一下原因,通過查看資料庫實例進程已經不存在了,在錯誤日誌中沒有發現其他報錯信息,發現有`shutdown`的字樣出現,懷疑是某個用戶手動關閉了實例。我們通過以下測試,發現是由於用戶關閉了主機所導致的。 ## 問題復現 本次測試基於`Gre ...


背景概述

在一次客戶的資料庫實例連接不上了,需要我們排查一下原因,通過查看資料庫實例進程已經不存在了,在錯誤日誌中沒有發現其他報錯信息,發現有shutdown的字樣出現,懷疑是某個用戶手動關閉了實例。我們通過以下測試,發現是由於用戶關閉了主機所導致的。

問題復現

本次測試基於GreatSQL 8.0.32-24,通過以下測試瞭解不同情況下關閉資料庫實例後錯誤日誌會記錄哪些信息,之後可以通過錯誤日誌中的信息瞭解到資料庫實例是如何被關閉的。

1.正常關閉shutdown

mysql> shutdown;

查看錯誤日誌

2023-04-24T18:41:16.491010+08:00 504 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.32-24).
2023-04-24T18:41:28.657637+08:00 0 [System] [MY-010910] [Server] /greatsql/svr/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.32-24)  MySQL Community Server - GPL.

可以看到正常關閉實例時,會顯示是由哪個資料庫用戶執行的shutdown命令:SHUTDOWN from user root

2.kill關閉

通過kill命令關閉實例

shell> ps -ef | grep mysqld
shell> kill 22803 17012

查看錯誤日誌

2023-04-24T18:42:30.910121+08:00 0 [System] [MY-013172] [Server] Received SHUTDOWN from user <via user signal>. Shutting down mysqld (Version: 8.0.32-24).
2023-04-24T18:42:32.201306+08:00 0 [System] [MY-010910] [Server] /greatsql/svr/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.32-24)  MySQL Community Server - GPL.

可以看到通過kill命令關閉實例會顯示 SHUTDOWN from user <via user signal>,不會顯示具體執行kill 的操作系統用戶

3.kill -9 關閉

通過kill -9關閉資料庫實例

shell> ps -ef | grep mysqld
shell> kill -9 11803 18712

查看錯誤日誌

# 錯誤日誌中不會顯示任何信息

如果資料庫實例進程不存在,並且錯誤日誌信息中沒有明顯的資料庫實例關閉的信息,可考慮資料庫實例是通過 kill -9 關閉的

4.主機reboot/shutdown

通過正常關閉主機,從而導致資料庫實例關閉

shell> reboot

查看錯誤日誌

2023-04-24T18:46:51.021426+08:00 0 [System] [MY-013172] [Server] Received SHUTDOWN from user <via user signal>. Shutting down mysqld (Version: 8.0.32-24).
2023-04-24T18:46:53.774795+08:00 0 [System] [MY-010910] [Server] /greatsql/svr/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.32-24)  MySQL Community Server - GPL.

可以看到通過正常關閉主機導致資料庫實例關閉會顯示 SHUTDOWN from user <via user signal>,不會顯示具體執行關閉主機的的操作系統用戶

5.主機異常斷電

通過模擬主機異常斷電,從而導致資料庫實例關閉

# 對主機做斷電操作

查看錯誤日誌

# 錯誤日誌中不會顯示任何信息

如果資料庫實例進程不存在,並且錯誤日誌信息中沒有明顯的資料庫實例關閉的信息,可考慮資料庫實例是由於主機異常斷電關閉的。

總結

1.正常關閉資料庫實例時,錯誤日誌中會記錄是由那個資料庫用戶關閉的,如 SHUTDOWN from user root

2.通過 kill 命令關閉資料庫實例以及關閉主機(reboot/shutdown)導致資料庫實例關閉,錯誤日誌中會記錄 SHUTDOWN from user <via user signal>,可通過history命令查看是否執行過 kill 操作或關閉主機的操作

3.通過kill -9 命令關閉資料庫實例以及主機異常斷電導致資料庫實例關閉,錯誤日誌中不會記錄導致資料庫實例關閉的信息,可通過history命令查看是否執行過 kill -9 操作


Enjoy GreatSQL

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • [TOC] # PWM脈衝寬調點燈 ## 前言 對於燈等來說有很多種方法,前面介紹了一些基礎的點燈方法,比如直接點燈,按鍵控制點燈,按鍵中斷點燈,但都是比較簡單的一些方法也很基礎,要問我有沒有什麼高級點的點燈方法,答案是有的,在這我要介紹一種高級點燈的方法就是使用PWM進行點燈。 ## 1.什麼是P ...
  • 大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是**恩智浦i.MXRT1xxx系列MCU的Serial NAND啟動**。 最近越來越多的客戶在咨詢 i.MXRT1xxx 從 Serial NAND 啟動的事情,讓這個本來比較冷門的啟動設備突然火熱起來。據痞子衡的瞭解,其實客戶主要目 ...
  • # 安裝 安裝 ```bash sudo apt install samba ``` 檢查服務狀態 ```bash systemctl status smbd --no-pager -l ``` 檢查是否啟用(開機自啟動) ```bash systemctl is-enabled smbd # en ...
  • ![](https://img2023.cnblogs.com/blog/3076680/202307/3076680-20230719144557396-616589792.png) # 1. 結果集分頁 ## 1.1. 只有做過了排序,才有可能準確地從結果集中返回指定區間的記錄 ## 1.2.  ...
  • 一、約束的基本概念 1、概念:約束是作用於表中欄位上的規則,用於限制儲存在表中的數據 2、目的:保證資料庫中的數據的正確性,有效性和完整性 3、分類 非空約束(not null):限制該欄位的數據不能為null 唯一約束(unique):保證該欄位的所有數據都是唯一,不重覆的 主鍵約束(primar ...
  • ![file](https://img2023.cnblogs.com/other/3195851/202307/3195851-20230719181113912-393860575.jpg) > 版本說明: > > SeaTunnel:apache-seatunnel-2.3.2-SNAPHOT ...
  • 點亮Star⭐️ · 支持我們 https://github.com/apache/dolphinscheduler ![file](https://img2023.cnblogs.com/other/2685289/202307/2685289-20230719174824082-15652781 ...
  • 對於GaussDB來說,在今天引入數據壓縮,究竟能夠給客戶帶來什麼不一樣的價值,是過去一段時間我們一直在思考的問題。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...