原创 記一次mysql內存佔用過大-不釋放問題排查

問題描述: 接線上報警,mysql所在服務器內存剩餘不足,這個實例內存問題是週期性爆發的,通過監控看到內存平均2天就被用盡掉256GB。 排查思路: 1、單個實例佔用內存256GB,首先想到的是bufferpool,確認配置 show g

原创 mysql 性能剖析

1. 首先我們進行OS層面的檢查   一般來說最容易成爲瓶頸的是磁盤I/O子系統,因爲它的讀寫速度通常是最慢的。 1)查看系統整體負載可以使用 w 或者 sar -u 2 10 或者top命令查看 [root@localhost sql-

原创 mysql-刪庫不跑路之lsof

問題描述:今天一個同學過來求救,idb文件被誤刪除了,想要找dba恢復 解決思路:實例在沒有重啓的狀況下可以根據lsof恢復,這也是linux常用文件恢復的方法 恢復步驟(網絡上有較多解決思路,這裏簡單記錄,便於下次使用): 1、ps -

原创 InnoDB關鍵特性

主要包括: 插入緩存(insert buffer)、兩次寫(double write)、自適應哈希(Adaptive Hash index)、異步IO(Async IO)、刷新鄰接頁(Flush Neighbor Page) 1、插入

原创 MySQL · 引擎特性 · InnoDB 文件系統之文件物理結構

綜述 從上層的角度來看,InnoDB層的文件,除了redo日誌外,基本上具有相當統一的結構,都是固定block大小,普遍使用的btree結構來管理數據。只是針對不同的block的應用場景會分配不同的頁類型。通常默認情況下,每個block的

原创 mysql 複製 總結(一) 基本概念以及環境搭建

三、配置 1)配置過程概要 (1)主庫新建複製賬號 (2)主庫開啓binlog,配置server_id,從庫配置server_id,從庫配置中繼日誌,日誌更新是否寫入本地,設置只讀 (3)啓動複製,change master to

原创 Checkpoint

本文所屬圖書 > MySQL技術內幕:InnoDB存儲引擎(第2版) 前面已經講到了,緩衝池的設計目的爲了協調CPU速度與磁盤速度的鴻溝。因此頁的操作首先都是在緩衝池中完成的。如果一條DML語句,如Update或Delete改變

原创 mysql 基準測試 sysbench的安裝及基本使用方法

定義:基準測試是給定學習系統在給點的工作負載下會發生什麼的方法。可以觀察系統在不同壓力下的行爲。  策略:     1、針對系統的整體測試;  2、單獨測試mysql(這裏只總結針對mysql的基準測試)。 測試指標: 1、cpu性能2

原创 mysql 備份和恢復 mysqldump xtrabackup

一、mysqldump備份 1)全量備份mysqldump  -uroot -proot --all-databases --lock-all-tables --routines --triggers --master-data=2 -

原创 innoDB 線程分析之Master Thread

一、Master Thead簡單介紹 innoDB存儲引擎的主要工作都是由Master Thread 完成的。master thread的線程優先級別最高。其內部幾個循環(loop)組成:主循環(loop),後臺循環(background

原创 mysql 整理之mysql的版本

1.1     mysql的版本? 1)MySQL Community Server 社區版本,開源免費,但不提供官方技術支持。 2)MySQL Enterprise Edition 企業版本,需付費,可以試用30天。 3)MySQL C

原创 top命令詳解

查看多核CPU命令mpstat -P ALL  和  sar -P ALL    說明:sar -P ALL > aaa.txt   重定向輸出內容到文件 aaa.txt top命令經常用來監控linux的系統狀況,比如cpu、內

原创 mysql 5.6 升級 mysql 5.7

mysql升級是個老生常談的話題,不多說,主要記錄mysql_update升級方式,以備給新手點借鑑 (一)注意點 1、磁盤空間是否充足,滿足本機主從搭建; 2、mysql5.6中my.cnf的部分參數不在適用於5.7; 3、升級方式的

原创 mysql 整理之mysql 索引 鎖

4.1     行鎖是怎麼實現的,爲什麼? InnoDB存儲引擎的鎖是通過加在索引上面完成的,如果表沒有創建索引,InnoDB會自動創建一個6字節的自增索引。 因爲Innodb是索引組織表,通過索引去找對應的數據行。 4.2mysql 鎖

原创 perl Email::Sender 發郵件

在運維工作中,有很多地方需要發送郵件的方式進行監控。 #!/usr/bin/perl   #perl的安裝目錄 use strict; use warnings; use Email::Simple; use Email::Sender: