MySQL運維1-日誌

来源:https://www.cnblogs.com/Se7eN-HOU/archive/2023/09/25/17722352.html
-Advertisement-
Play Games

一、錯誤日誌 錯誤日誌是MySQL中最重要的日誌之一,它記錄了當MySQL啟動和停止時,以及伺服器在運行過程中發生的任何嚴重錯誤時的相關信息,當資料庫出現任何故障導致無法正常使用時,建議首先查看此日誌 錯誤日誌預設是開啟的,預設存在目錄/var/log/,預設的日誌文件名為mysqld.log, 但 ...


一、錯誤日誌

  錯誤日誌是MySQL中最重要的日誌之一,它記錄了當MySQL啟動和停止時,以及伺服器在運行過程中發生的任何嚴重錯誤時的相關信息,當資料庫出現任何故障導致無法正常使用時,建議首先查看此日誌

  錯誤日誌預設是開啟的,預設存在目錄/var/log/,預設的日誌文件名為mysqld.log, 但是這些都是可以配置的,可以通過指令查看日誌位置:show variables like ''%log_error%

  

  說明1:我的這裡錯誤日誌就不是預設路徑也不是預設名稱,但是沒關係,根據這個變數查詢的結果查詢就可以了。

  

  

二、二進位日誌 

  2.1 二進位日誌(binlog)

    記錄了所有的DDL(數據定義語言)語句和DML(數據操作語言)語句,但不包括數據查詢(select,show)等語句

  2.2 作用

    • 災難時的數據恢復
    • MySQL的主從賦值,在MySQL8版本中,預設的二進位日誌是開啟的
    • 通過 show variables like "%log_bin%" 可以查看具體的日誌位置

         

    

  2.3 日誌格式

    MySQL伺服器中提供了多種格式來記錄二進位日誌,具體格式及特點如下:

    STATEMENT:基於SQL語句的日誌記錄,記錄的是SQL語句,對數據進行修改的SQL都會記錄在日誌文件中

    ROW:基於行的日誌記錄,記錄的是每一行的數據變更。  (預設)

    MIXED:混合了STATEMENT 和 ROW 兩種格式,預設採用STATEMENT, 在某些特殊情況下會自動切換為ROW進行記錄

    通過 show variables like "%binlog_format%"; 可以查看

    

  2.4 修改日誌格式

    要修改日誌格式,需要在MySQL的配置文件設置 binlog_format = "XXXX",然後重啟MySQL即可

    

    重啟MySQL

    

     修改成功

  2.5 日誌查看

    由於日誌是以二進位方式存儲的,不能直接讀取,需要通過二進位日誌查詢工具 mysqlbinlog 來查看,

    具體語法:mysqlbinlog [options] logfilename

    options選項

      -d:指定數據名稱,只列出指定的數據相關操作

      -0:忽略掉日誌中的前n行命令

      -v:將行事件(數據變更)重構為SQL語句

      -vv:將行事件(數據變更)重構為SQL語句,並輸出註釋信息

  2.6 基於ROW的binlog示例 

    

    說明1:預設 binlog_fromat為 ROW 模式的情況下 我們查看binlog日誌的時候要加上 -v參數即:mysqlbinlog -v binlog.000033

    

    說明2:基於ROW類型的binlog日誌是,記錄的每一行的變化。

  2.7 基於STATEMENT的binlog示例

    

    說明1:同樣再次修改age數據

    

    說明2:基於STATEMENT類型的binlog日誌,記錄的SQL語句的變化而不是,每一行的變化   

  2.8 日誌刪除

    對於比較繁忙的業務系統,每天生成的binlog數據巨大,如果長時間不清楚,將會占用大量磁碟空間,可以通過一下幾種方式清理日誌

    • reset master :刪除全部binlog日誌,刪除之後,日誌編號,將重新從binlog.000001開始
    • purge master logs to 'binlog.xxxxxx':刪除xxxxxx編號之前的所有日誌
    • purge master logs before 'yyyy-mm-dd HH:MM:SS':刪除日誌 'yyyy-mm-dd HH:MM:SS'之前產生的所有日誌
    • 也可以在MySQL的配置文件中配置二進位日誌的過期時間,設置了之後,二進位日期過期會自動刪除:show variables like "%binlog_expire_logs_seconds%"; 可以查看

    示例:

    

    說明1:刪除binlog.000030編號以前的日誌

      

    

    說明2:按照時間點刪除

    

    

    說明3:binlog的過期時間單位是秒,預設是30天

三、查詢日誌

  查詢日誌中記錄了客戶端的所有操作語句,而二進位日誌不包含查詢數據的SQL語句,預設情況下,查詢日誌是未開啟的,如果需要開啟查詢日誌,可以設置一下配置

  

  說明1:general_log 預設是關閉的,可以通過修改MySQL配置文件配置。

  

  說明2:修改好了配置文件要重啟MySQL才會生效

  

  

  說明3:對資料庫進行資料庫查詢,表查詢,數據更改等操作

  

  說明4:剛纔的操作都在查詢日誌中可以找到。

  說明5:因為該日誌記錄的內容比較多,在比較繁忙的系統中可以不用啟動該日誌。

四、慢查詢日誌

  慢查詢日誌記錄了所有執行時間查過參數long_query_time設置值並且掃描記錄數不小於min_examined_row_limit的所有的SQL語句的日誌。long_query_time預設為10秒,最小為0,精度可以到微秒

  通過MySQL配置文件可以配置是否開啟,配置後重啟MySQL即可生效

  

  說明1:預設是關閉的

  

  說明2:修改配置文件 ,然後重啟MySQL

  

  說明3:慢查詢啟動成功 

  

  說明4:這次查詢耗時4.02秒

  

  說明5:然後打開慢查詢日誌就可以查看到這裡查詢的情況,通過慢查詢日誌,我們主要是可以定位到那條語句執行比較慢,方便我們做精準的SQL優化 


侯哥語錄:我曾經是一個職業教育者,現在是一個自由開發者。我希望我的分享可以和更多人一起進步。分享一段我喜歡的話給大家:"我所理解的自由不是想乾什麼就乾什麼,而是想不幹什麼就不幹什麼。當你還沒有能力說不得時候,就努力讓自己變得強大,擁有說不得權利。"
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 問題: 上一篇async/await 致WPF卡死問題(https://www.cnblogs.com/stephen2023/p/17725159.html),介紹主線程阻塞,async/await導致卡死問題,同樣的代碼在console下卻並不會出現卡死。 static Stopwatch sw ...
  • C#讀寫INI文件 .NET程式中,可以作為配置文件使用的格式又很多,INI文件在某些場景應用較為廣泛,如串口參數、一些工作站本地參數等等,INI文件主要用途為讀取指定節點的配置內容,以及修改指定節點。一下文章主要描述在程式對INI文件的操作。 INI文件介紹 INI文件 ini文件本質上就是一個擴 ...
  • Biwen.QuickApi 項目介紹 [QuickApi("hello/world")] public class MyApi : BaseQuickApi<Req,Rsp>{} 提供一種簡單集成的Minimal Web Api交互模塊 遵循了 REPR 設計 (Request-Endpoint- ...
  • 重點:find 、ps 、grep 、管道 1、du 指令 作用:du表示directory used,顯示出目錄所占的磁碟空間大小的情況。 語法:#du -sh 目錄路徑 選項說明: -s:表示sumary,彙總統計 -h:表示以較高可讀性的形式顯示 案例:使用du指令統計出“/home”的大小情 ...
  • 作者 | 李晨 編輯 | Debra Chen Gartner最近對全球2,500名高管進行的一項調查發現,近一半(45%)的人表示,ChatGPT的宣傳促使他們增加人工智慧(AI)投資。調查報告稱,70%的高管表示他們正在調查人工智慧的使用,而19%的高管正在試點或已經在生產中部署人工智慧。 Ga ...
  • MySQL 索引、事務與存儲引擎 MySQL 索引 1.索引的概念 ●索引是一個排序的列表,在這個列表中存儲著索引的值和包含這個值的數據所在行的物理地址(類似於C語言的鏈表通過指針指向數據記錄的記憶體地址)。 ●使用索引後可以不用掃描全表來定位某行的數據,而是先通過索引表找到該行數據對應的物理地址然後 ...
  • 冷熱分離功能支持將冷熱數據存儲在不同的介質上,可以大大降低存儲成本,HBase支持對同一張表的數據進行冷熱分離存儲。 ...
  • NineData SQL開發工具現已支持深色模式,為用戶提供更舒適的使用體驗。長時間暴露在明亮屏幕下容易引發眼睛疲勞和不適,而深色模式通過降低屏幕亮度減輕了眼睛的負擔。此外,深色模式還能節省能源、改善低光環境,並適用於開發人員、夜間工作者和移動設備用戶等不同群體。您可以在NineData SQL視窗... ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...