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