MYSQL資料庫學習系列五

2021-09-20 19:44:08 字數 3388 閱讀 1453

mysql資料庫學習系列五
五.mysql運維實踐

5.1-mysql日誌系統

什麼是日誌

日誌(log)是一種順序記錄事件流水的檔案

記錄計算機程式執行過程中發生了什麼

多種多樣的用途

o幫助分析程式問題

o分析服務請求的特徵、流量等

o判斷工作是否成功執行

o等等……

mysql日誌的分類

伺服器日誌

o記錄程序啟動執行過程中的特殊事件,幫助分析mysql服務遇到的問題

o根據需求抓取特定的sql語句,追蹤效能可能存在的問題的業務sql

事務日誌

o記錄應用程式對資料的所有更改

o可用於資料恢復

o可用於例項間資料同步

分類 日誌名稱

伺服器日誌 服務錯誤日誌

伺服器日誌 慢查詢日誌

伺服器日誌 綜合查詢日誌

事務日誌 儲存引擎事務日誌

事務日誌 二進位制日誌

服務錯誤日誌

記錄例項啟動執行過程中重要訊息

配置引數

olog_error = /data/mysql_data/node-1/mysql.log

內容並非全是錯誤訊息

如果mysqld程序無法正常啟動首先檢視錯誤日誌

慢查詢日誌

記錄執行時間超過一定閾值的sql語句

配置引數

slow_query_log = 1

slow_query_log_file = /data/mysql_data/node-1/mysql-slow.log

long_query_time = 5

用於分析系統中可能存在效能問題的sql

綜合查詢日誌

如果開啟將會記錄系統中所有sql語句

配置引數

general_log = 1

general_log_file = /data/mysql_data/node-1/mysql-slow.log

偶爾用於幫助分析系統問題,對效能有影響

查詢日誌的輸出與檔案切換

日誌輸出引數

log_output=

如果日誌檔案過大,可以定期截斷並切換新檔案

flush log;

儲存引擎事務日誌

部分儲存引擎擁有重做日誌(redo log)

如innodb, tokudb等wal(write ahead log)機制儲存引擎

日誌隨著事務commit優先持久化,確保異常恢復不丟資料

日誌順序寫效能較好

innodb事務日誌重用機制

innodb事務日誌採用兩組檔案交替重用

二進位制日誌binlog

binlog (binary log)

記錄資料引起資料變化的sql語句或資料邏輯變化的內容

mysql服務層記錄,無關儲存引擎

binlog的主要作用:

o基於備份恢復資料

o資料庫主從同步

o挖掘分析sql語句

開啟binlog

主要引數

log_bin = c:/tmp/mylog/mysql-bin

sql_log_bin = 1

sync_binlog = 1

檢視binlog

show binary logs;

binlog管理

主要引數

max_binlog_size = 100mb

expire_logs_days = 7

binlog始終生成新檔案,不會重用

手工清理binlog

purge binary logs to 'mysql-bin.000009';

purge binary logs before '2016-4-2 21:00:40'

檢視binlog內容

日誌show binlog events in 'mysql-bin.000011';

show binlog events in 'mysql-bin.000011' from 60 limit 3;

mysqlbinlog工具

mysqlbinlog c:/tmp/mylog/mysql-bin.000001

--start-datetime | --stop-datetime

--start-position | --stop-position

binlog格式

主要引數

binlog_format =

檢視row模式的binlog內容

mysqlbinlog --base64-output=decode-rows -v c:/tmp/mylpg/mysql-bin.000001

5.2-mysql資料備份

基本指數 - 備份用途

資料備災

o應對硬體故障資料丟失

o應對人為或程式bug導致資料刪除

製作映象庫以供服務

o需要將資料遷移、統計分析等用處

o需要為線上資料建立乙個映象

基本知識 - 備份內容

資料o資料檔案或文字格式資料

操作日誌(binlog)

o資料庫變更日誌

基本知識 - 冷備份與熱備份

冷備份

o關閉資料庫服務,完整拷貝資料檔案

熱備份

o在不影響資料庫讀寫服務的情況下備份資料庫

基本知識 - 物理備份與邏輯備份

物理備份

o以資料頁的形式拷貝資料

邏輯備份

o匯出為裸資料或者sql(insert)語句

基本知識 - 本地備份與遠端備份

本地備份

o在資料庫伺服器本地進行備份

遠端備份

o遠端連線資料庫進行備份

基本知識 - 全量備份與增量備份

全量備份

o備份完整的資料庫

增量備份

o只備份上一次備份以來發生修改的資料

基本知識 - 備份週期

考慮因素:

資料庫大小(決定備份時間)

恢復速度要求(快速or慢速)

備份方式(全量or增量)

常用工具及用法

mysqldump - 邏輯備份,熱備

xtrabackup - 物理備份, 熱備

lvm/zfs snapshot - 物理備份

mydumper - 邏輯備份,熱備

cp - 物理備份,冷備

常用工具及用法 - mysqldump

mysql官方自帶的命令列工具

主要示例:

演示使用mysqldump備份表、庫、例項

mysql semi-sync(半同步複製)

MySql建立資料庫 學習系列003

環境變數設定 1 開啟 windows 環境變數設定,新建變數名 mysql home 變數值為 mysql 安裝目錄路徑。2 在path 下增加 mysql home bin mysql 中的資料型別。數字型別 整數 tinyint smallint mediumint int bigint 浮點...

mysql資料庫(入門)五

一對一 練習 請設計表儲存以下資料 create table userinfo userid int,nick varchar 10 tel varchar 15 address varchar 20 insert into user values null,wukong 123456 null,b...

五 MySQL 建立資料庫

我們可以在登陸 mysql 服務後,使用 create 命令建立資料庫,語法如下 create database 資料庫名 以下命令簡單的演示了建立資料庫的過程,資料名為 runoob root host mysql u root p enterpassword 登入後進入終端mysql creat...