MySQL從庫卡主了--讀寫分離也不能亂讀
不少使用資料庫的公司,資料庫都建立主從。無論Oracle、MySQL還是PostgreSQL都會有這類應用。而TiDB這種分散式資料本身是一套高可用。當然我剛才提到的Oracle、MySQL還是PostgreSQL也早就有了自己的分散式。我們今天還是說主從的這種架構。一般主從可以起到硬體故障的災備,但是現在的硬體情況,很少硬體損壞。大家用從庫做讀寫分離或者說分析的也很多。(如果說現在誰家的硬體天天壞,天天進行災備切換實操的)
今天說一個故事,我的一個學員問我她們遇到的問題:上來給我一張圖。我看到這個描述第一次見。只能說明踩坑還不夠。然後看到她圖中主從差了28000多秒。我說這種情況基本上指望同步恢復不現實了。(以我以前經驗這話還能追回來的機率不大,不過最後結果還是反轉的)
然後她不經意間截圖了這個。我看到了“ invalidating query cache entries ”那麼說明從庫在刷快取的時候卡主了。我開始以為是insert沒提交。不過實際情況是她一主三從的資料庫上,一主和兩個從上都是好的,已經插入了。那麼就排除了各種我能想到的問題。只有一種可能了,有人在這個庫上執行大查詢,導致記憶體競爭,卡主了。事務提交不下去。
隨機讓她檢查這個從庫上有沒有大查詢。一查果然有。 那麼結果就是殺掉這幾個大查詢,或者把從庫重啟一下。最終採用了kill會話的操作,解決了。那幾個殺掉的我這裡就不貼了。大致是select distinct x,y,z.......... from t 重點是沒有where條件。而且是不止一個會話這樣執行,然後就沒有然後了。對於這樣全表遍歷且排序的併發執行,我見過幾次這種都造成故障了(當時是主庫)。這個由於是人為查詢的從庫,估計現場沒有造成影響,但是確實是問題。
主從產生延遲的幾種可能性
1、主大事務從在等
2、從序列執行忙不過來
3、從執行的事務阻塞了主的同步事務
有時候不能因為是從庫,就可以無節操的查詢,比如全量運算元據,也是有可能把從庫搞癱瘓的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2938739/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MYSQL 主從 + ATLAS 讀寫分離 搭建MySql
- 配置\清除 MySQL 主從 讀寫分離MySql
- MySQL主從複製讀寫分離MySql
- discuz 配置讀寫分離(主寫從讀)
- [Mysql]主從複製和讀寫分離MySql
- Mysql-主從複製與讀寫分離MySql
- 搭建MySQL主從實現Django讀寫分離MySqlDjango
- MySQL運維15-一主一從讀寫分離MySql運維
- MySQL運維16-雙主雙從讀寫分離MySql運維
- Mycat中介軟體實現Mysql主從讀寫分離MySql
- 資料庫讀寫分離,主從同步實現方法資料庫主從同步
- MySQL 官宣:支援讀寫分離了!!MySql
- MySQL 高可用架構:主從備份及讀寫分離MySql架構
- springboot+mybatis+druid實現mysql主從讀寫分離(五)Spring BootMyBatisUIMySql
- Mycat讀寫分離、主從切換、分庫分表的操作記錄
- Mycat2+Mysql一主一從實現讀寫分離配置MySql
- MySQL怎麼實現主從同步和Django實現MySQL讀寫分離MySql主從同步Django
- 從節點崩了,還怎麼「主從讀寫分離」?
- 資料庫讀寫分離資料庫
- MyCat分庫分表、讀寫分離
- ShardingSphere(七) 讀寫分離配置,實現分庫讀寫操作
- Linux下MySQL主從複製(GTID)+讀寫分離(ProxySQL)-實施筆記LinuxMySql筆記
- mysql優化之讀寫分離MySql優化
- 探究MySQL MGR的讀寫分離MySql
- MySQL 讀寫分離的好處MySql
- ProxySQL實現MySQL讀寫分離MySql
- (7)資料庫讀寫分離,主從同步實現方法(資料庫設定)資料庫主從同步
- ShardingSphere + Mysql,實現分庫分表、讀寫分離,並整合 SpringBootMySqlSpring Boot
- springboot多資料來源配合docker部署mysql主從實現讀寫分離Spring BootDockerMySql
- 讀寫分離 & 分庫分表 & 深度分頁
- MySQL cetus 中介軟體 讀寫分離MySql
- mysql讀寫分離的最佳實踐MySql
- Mysql之讀寫分離架構-AtlasMySql架構
- Mysql 高可用(MHA)-讀寫分離(Atlas)MySql
- 使用ShardingSphere-JDBC完成Mysql的分庫分表和讀寫分離JDBCMySql
- 使用proxysql 1.4.14中介軟體實現mysql 5.7.26主從的讀寫分離MySql
- 搭建Redis“主-從-從”模式叢集並使用 RedisTemplate 實現讀寫分離Redis模式
- MySQL 中讀寫分離資料延遲MySql