mysql伺服器監控注意事項,mysql伺服器監控注意事項

本文目錄一覽:

如何動態監控mysql binlog

有兩種方法,一種方法使用mysql的check table和repair table 的sql語句,另一種方法是使用MySQL提供的多個myisamchk, isamchk數據檢測恢復工具。前者使用起來比較簡便。推薦使用。

1. check table 和 repair table

登陸mysql 終端:

mysql -uxxxxx -p dbname

check table tabTest;

如果出現的結果說Status是OK,則不用修復,如果有Error,可以用:

repair table tabTest;

進行修復,修復之後可以在用check table命令來進行檢查。在新版本的phpMyAdmin裡面也可以使用check/repair的功能。

2. myisamchk, isamchk

其中myisamchk適用於MYISAM類型的數據表,而isamchk適用於ISAM類型的數據表。這兩條命令的主要參數相同,一般新的系統都使用MYISAM作為預設的數據表類型,這裡以myisamchk為例子進行說明。當發現某個數據表出現問題時可以使用:

myisamchk tablename.MYI

進行檢測,如果需要修復的話,可以使用:

myisamchk -of tablename.MYI

關於myisamchk的詳細參數說明,可以參見它的使用幫助。需要注意的時在進行修改時必須確保MySQL伺服器沒有訪問這個數據表,保險的情況下是最好在進行檢測時把MySQL伺服器Shutdown掉。

另外可以把下面的命令放在你的rc.local裡面啟動MySQL伺服器前:

[ -x /tmp/mysql.sock ] /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI

其中的/tmp/mysql.sock是MySQL監聽的Sock文件位置,對於使用RPM安裝的用戶應該是/var/lib/mysql/mysql.sock,對於使用源碼安裝則是/tmp/mysql.sock可以根據自己的實際情況進行變更,而pathtochk則是myisamchk所在的位置,DATA_DIR是你的MySQL資料庫存放的位置。

需要注意的時,如果你打算把這條命令放在你的rc.local裡面,必須確認在執行這條指令時MySQL伺服器必須沒有啟動!檢測修復所有資料庫(表)

如何有效的監控單點,集群的mysql

Mysql作為使用非常廣泛的資料庫,確實給我們帶來了很多幫助,就像任何軟體系統一樣,一旦正式投入生產環境,那監控手段就不可或缺。如何有效的監控Mysql的運行情況,尤其是在複雜IT環境下就更顯得迫切了,如Mysql集群部署; 1、單點Mysql的監控 到底一個Mysql服務我們應該監控哪些指標呢?每個人可能都有不同的見解,但下面這些指標是基本的: 當前已打開連接數:表示當前打開的資料庫連接; 啟動以來同時處理的最大連接數:表示自從資料庫啟動來同時處理的最大連接請求,這個值對於提供資料庫的處理能力比較重要,下面是兩個優化的量化經驗: 假設數值tmpPercent =啟動以來同時處理的最大連接數/ 設置的最大連接數 l 如果tmpPercent = 0.1,則mySQL伺服器最大連接數設置的過高了 l 如果tmpPercent 90,則mySQL伺服器最大連接數設置的過低了 鎖等待率:如果該值 0.02,則mySQL伺服器需要等待的表鎖數有點多了, 如果當前資料庫表類型是MyISAM請最好換成InnoDB類型; 表掃描率:如果該值 4000,則mySQL進行了太多表掃描, 很有可能是索引沒建好, 增加read_buffer_size值會有一些好處, 但最好不要超過8MB; 北京運維技術出品的EOMP作為一個IT監控平台,提供了很多實用功能來幫助用戶有效的運維各種IT資源,下面我們就如何通過EOMP對mysqlt進行有效監控做一個詳細介紹: EOMP里mysql的詳細監控界面如下: 上圖中做標記的4個地方,都是EOMP反映給用戶的重要監控信息。同時EOMP還可以監控Mysql中的資料庫表信息,如下圖: 通過對這些關鍵指標進行閥值、故障通知等設置,就可以在嚴重問題出現前有效的進行處理。EOMP閥值的設置很簡單,在圖中任何一個做標記*的監控指標處或是文本框沒有灰掉的地方,點擊滑鼠右鍵彈出菜單,進行相關設置,如我們想對『正在使用的連接數』這個指標進行如下設置:在上午8:00-下午7:00間,任意5分鐘內,該指標至少有3次超過100,就發出問題級別的告警,並通過Email、手機簡訊等方式通知相關人員;下面是具體閥值和故障通知設置截圖: 並且如果『正在使用的連接數』確實發生了故障,我們可以通過剛才彈出菜單中的『歷史數據查詢』功能,對這個監控指標的所有歷史數據進行故障分析,下圖是一次查詢結果: 2、集群Mysql的監控 對於複雜的集群Mysql,就應該把它們通過某種方式放到一起來共同運維和監控,EOMP提供的『視圖』功能,就能很好完成這個任務,下圖是EOMP一個簡單Mysql集群的『監控視圖』: 上圖中,我們把集群的兩個Mysql服務放到一張視圖裡,同時把它們的一些關鍵監控指標也放到這張視圖裡,如響應時間、正在工作線程數等,通過這樣一張視圖,用戶可以把所有反映這個Mysql集群健康情況的監控信息都放到一起,這在很大程度上方便用戶的監控。 EOMP是以『視圖』為其設計核心,所以它的視圖配置非常靈活,既可以是整個一個Mysql服務,也可以是某個Mysql服務的一個監控指標。越是複雜的監控要求,越是能體現出這種內在設計的靈活性。 『視圖』不僅僅是個展現的窗口,它是個監控實體,如下圖EOMP的首頁所示,任何故障信息都是以『視圖』為載體的,這樣用戶在任何時候都可以看到自己能理解的監控信息,而不是什麼什麼設備或服務等。

用Mycat需要注意什麼

實習的時候,在一個項目當中,項目經理要求把原先的MySQL數據連接基於mycat來進行改造 。當時就在想MyCat是什麼東西?為什麼要用它呢?

*一、什麼是MyCat: MyCat是一個開源的分散式資料庫系統,是一個實現了MySQL協議的伺服器,前端用戶可以把它看作是一個資料庫代理,用MySQL客戶端工具和命令行訪問,而其後端可以用MySQL原生協議與多個MySQL伺服器通信,也可以用JDBC協議與大多數主流資料庫伺服器通信,其核心功能是分表分庫,即將一個大表水平分割為N個小表,存儲在後端MySQL伺服器里或者其他資料庫里。

MyCat發展到目前的版本,已經不是一個單純的MySQL代理了,它的後端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流資料庫,也支持MongoDB這種新型NoSQL方式的存儲,未來還會支持更多類型的存儲。而在最終用戶看來,無論是那種存儲方式,在MyCat里,都是一個傳統的資料庫表,支持標準的SQL語句進行數據的操作,這樣一來,對前端業務系統來說,可以大幅降低開發難度,提升開發速度

二、那麼為什麼要用到MyCat呢?

*例如操作系統是對各類計算機硬體的抽象。那麼我們什麼時候需要抽象?假如只有一種硬體的時候,我們需要開發一個操作系統嗎? 再比如一個項目只需要一個人完成的時候不需要leader,但是當需要幾十人完成時,就應該有一個管理者,發揮溝通協調等作用,而這個管理者對於他的上層來說就是對項目組的抽象。 同樣的,當我們的應用只需要一台資料庫伺服器的時候我們並不需要Mycat,而如果你需要分庫甚至分表,這時候應用要面對很多個資料庫的時候,這個時候就需要對資料庫層做一個抽象,來管理這些資料庫,而最上面的應用只需要面對一個資料庫層的抽象或者說資料庫中間件就好了,這就是Mycat的核心作用。 所以可以這樣理解:資料庫是對底層存儲文件的抽象,而Mycat是對資料庫的抽象。*

注意事項:

(1)、原始表的自增主鍵{AUTO_INCREMENT=1446}值,就是之前用掉的值,要去掉。新庫按照新的來

(2)、{CREATE TABLE IF NOT EXISTS `edu_impoverish` } 改成 {CREATE TABLE `edu_impoverish` (}。mycat沒有判斷是否存在的功能

(3)、DROP TABLE IF EXISTS `onlinenum`; 這種格式是支持的。

(4)、全局表,字典表:可能會在其他表中存有其id欄位的值。所以這些表id也要導過來。

(5)、業務表的id最好也導入過來,避免重新生成導致關聯對不上的情況。

(6)、全局表、跨庫分表都要用全局序列。單庫單業務,不和其他關聯的表;可以用資料庫自帶的自增主鍵。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/196399.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-03 09:56
下一篇 2024-12-03 09:56

相關推薦

  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • int類型變數的細節與注意事項

    本文將從 int 類型變數的定義、聲明、初始化、範圍、運算和類型轉換等方面,對 int 類型變數進行詳細闡述和講解,幫助讀者更好地掌握和應用 int 變數。 一、定義與聲明 int…

    編程 2025-04-29
  • 伺服器安裝Python的完整指南

    本文將為您提供伺服器安裝Python的完整指南。無論您是一位新手還是經驗豐富的開發者,您都可以通過本文輕鬆地完成Python的安裝過程。以下是本文的具體內容: 一、下載Python…

    編程 2025-04-29
  • STUN 伺服器

    STUN 伺服器是一個網路伺服器,可以協助網路設備(例如 VoIP 設備)解決 NAT 穿透、防火牆等問題,使得設備可以正常地進行數據傳輸。本文將從多個方面對 STUN 伺服器做詳…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • 解決docker-compose 容器時間和伺服器時間不同步問題

    docker-compose是一種工具,能夠讓您使用YAML文件來定義和運行多個容器。然而,有時候容器的時間與伺服器時間不同步,導致一些不必要的錯誤和麻煩。以下是解決方法的詳細介紹…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • Python函數重載的使用方法和注意事項

    Python是一種動態語言,它的函數重載特性有些不同於靜態語言,本文將會從使用方法、注意事項等多個方面詳細闡述Python函數重載,幫助讀者更好地應用Python函數重載。 一、基…

    編程 2025-04-28
  • Akka 設置郵箱大小的方法和注意事項

    為了保障系統的穩定性和可靠性,Akka 允許用戶設置郵箱大小。本文將介紹如何在 Akka 中設置郵箱大小,並且提供一些注意事項,以幫助讀者解決可能遇到的問題。 一、設置郵箱大小 A…

    編程 2025-04-28
  • pythonpass函數的使用及相關注意事項

    python中,pass語句是一個空語句,什麼也不做,只是一個佔位符,通常被用於等待代碼的實現或者暫時跳過執行。在函數中,pass語句的作用是佔位符,用於創建函數的框架,等待具體的…

    編程 2025-04-28

發表回復

登錄後才能評論