以實際情況切入,檢視MySQL複製問題的解決方案
MySQL最常見的操作之一就是在主伺服器和從伺服器之間複製資料庫。雖然大多數此類連線都很容易建立和維護,但有時也會出現問題,例如某些主資料可能無法在從屬裝置上覆制或者讀取請求可能會路由到主裝置而不是伺服器。
問題出現很容易,但是想要找到解決複製失敗的方法卻需要我們花些心思。
複製是所有資料庫的最基本操作,它主要是將資料從一個資料庫伺服器(主伺服器)複製到一個或多個其他資料庫(從伺服器)。該過程透過允許在多個從屬伺服器之間分配負載來進行讀取、透過將主伺服器限制為寫入來提高效能。
複製的好處包括透過從備份來提高安全性;分析可以在從資料庫執行且不影響主資料庫的效能表現;廣泛的資料分發,無需訪問主資料即可完成……
和很多資料庫管理操作一樣,複製有時也會不按預期進行,MySQL參考手冊中的“複製故障排除”提示了我們當複製出現問題時,應該檢查錯誤日誌中的哪些資訊。如果錯誤日誌未指向解決方案,可透過發出SHOW MASTER STATUS語句在主伺服器中啟用二進位制日誌記錄,如果已啟用,那麼“status”不為零, 如果沒有,請確保主伺服器正在執行--log-bin選項。
除此之外,該手冊還提供了其他幾個複製故障排除步驟:
-
主伺服器和從伺服器都必須以--server-id選項啟動,並且每個伺服器必須具有唯一的ID值;
-
執行SHOW SLAVE STATUS以確保Slave_IO_Running和Slave_SQL_Running值均為“yes”;
-
執行SHOW_PROCESSLIST並檢視State列以驗證從站是否正在連線到主站;
-
如果一個語句在主伺服器上成功但在從伺服器上失敗,那麼核心選項是執行完整的資料庫重同步,這需要刪除從伺服器的資料庫並從主伺服器複製一個新的快照。
解決實際的MySQL複製問題
當MySQL主從連線有序時,為什麼主裝置上的資料沒有被複制到從裝置上呢?我們以Stack Overflow帖子中提到的問題為例,來看看實際的MySQL複製問題應該如何解決。
第一步是在master資料庫上執行“show master status”或“show master status \ G”以獲取從站的正確值,根據上圖反映的從站狀態,從站已連線到主站並等待日誌事件。同步正確的日誌檔案位置應該恢復到從伺服器的複製。
為了確保良好的同步,停止主日誌檔案,轉儲資料庫,記錄主日誌檔案的位置,重新啟動主日誌檔案,將資料庫匯入從模式,並以正確的主日誌檔案位置啟動從模式。
2014年3月釋出的另一個Stack Overflow帖子提供了使用JDBC驅動程式的主/從設定,其中標記為只讀的事務仍在ping主裝置。由於MySQL JDBC驅動程式正在管理與物理伺服器(主伺服器和從伺服器)的連線,因此連線池和Spring事務管理器不知道資料庫連線是否連結到多個伺服器。
解決方案是將控制權返回給Spring,之後提交連線上的事務。事務除錯訊息將指示,只要連線處於只讀模式,查詢將被路由到從伺服器。透過在連線返回到池之前重置連線,清除只讀模式,最後一條日誌訊息將顯示查詢現在正被路由到主伺服器。
來自 “ https://dzone.com/articles/troubleshooting-problem ”,原文連結:http://blog.itpub.net/31137683/viewspace-2215576/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL主從複製不一致的情況的問題總結MySql
- mysql主從複製配置與問題解決MySql
- MySQL主從複製問題解決一例MySql
- 關於不同的MySQL複製解決方案概述MySql
- 無法在“EntityFramework”已存在的情況下建立影像複製該檔案的解決方案Framework
- MySQL主從複製延遲解決方案MySql
- SQL Server On Linux:基於實際專案案例,總結功能支援情況及相關問題解決方案SQLServerLinux
- 解決 / 最佳化問題的切入點
- MySQL 複製 - 效能與擴充套件性的基石 3:常見問題及解決方案MySql套件
- mysql同步(複製)延遲的原因及解決方案MySql
- 解決csdn登陸複製的問題
- MySQL複製的奇怪問題MySql
- 解決移動端複製問題
- 解決mysql使用GTID主從複製錯誤問題MySql
- 如何解決MySQL主從複製太慢的問題MySql
- Mysql 非同步複製延遲的原因及解決方案MySql非同步
- jstat命令檢視jvm的GC情況 (以Linux為例)JSJVMGCLinux
- MySQL組複製的幾個常見問題以及解決辦法MySql
- 多種情況解析深複製
- uni-app的checkbox元件有些情況下檢視層不更新解決方案APP元件
- Linux 檢視程式情況Linux
- 檢視mount掛載情況
- RC-50221 問題解決 - netstat 檢視埠占用情況
- 資料檢視的重複問題
- 檢視ASM的Extent分佈情況ASM
- MySQL 8.0能徹底解決困擾運維的複製延遲問題!MySql運維
- 例項解讀:MySQL並行複製如何解決特定的主從問題?MySql並行
- ubuntu檢視硬碟掛載情況Ubuntu硬碟
- 解決關於Mac不能複製複製檔案到隨身碟的問題Mac
- gem install mysql遇到問題。解決方案MySql
- SVG繪製矩形缺角問題解決方案SVG
- MySQL級聯複製的同步問題(一)MySql
- 檢視SQLServer的LCK資源等待情況SQLServer
- mysql8.0插入慢的問題解決方案(一)MySql
- mysql語句中有引號的問題解決方案MySql
- 檢視MySQL鎖定情況MySql
- NumPy 陣列複製與檢視詳解陣列
- iOS專案開發實戰——製作檢視的平移動畫以及解決移動異常問題iOS動畫