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
  • 移動開發(一):使用.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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...