主庫出現問題的幾率比從庫小的多!
我這里是只監測從庫是否為2個Yes。如果不是就發郵件提醒(郵件部分是php開發人員給的url,直接訪問就可以發送郵件)。
#!/bin/bash
mysql -uroot -pYOURPASSWORD -e "show slave status\G;" | grep -i Running | egrep "IO|SQL" | grep -i yes | wc -l > /tmp/cms
if [ "$(cat /tmp/cms)" = "2" ];
then
echo ok > /tmp/ok
else
links URL > /tmp/links
fi
exit
用任務計劃,一分鍾一執行!你要是發現更好辦法分享下~~~
❷ 如何做一個mysql的sql腳本來測試數據還原
還原數據,一定要還原成自己之前的某個版本的數據,你隨機生成的不可能是你想要的。
隨便寫的一個sql腳本都可以導入到資料庫,最主要還是你自己備份出來的數據,導入資料庫才正確呀。
如果是導入慢的話,你可以先清理掉資料庫中的內容,然後再導入,就會省掉很多判斷,會快很多。
❸ 如何通過shell腳本來檢查或監控MYSQL資料庫
db2 connect to [dbname] db2 "select min(a) from b;" > t.txtdb2 terminatedate=`cat t.txt | tail -2 | head -1` echo $date
❹ 怎麼查看mysql資料庫中的表是否損壞
可以使用語句檢查表。如果結果的msg_text部分是好的,那麼你的表是健康的。反之,則表明mysql資料庫中的表有損壞。另外有些厲害的高手一額可以通過運行腳本來檢測。
MyISAM表可以採用以下方法進行修復:使用reapair table或myisamchk來修復。如果修復無效,採用備份恢復表。
階段1:檢查你的表
如果你有很多時間,運行myisamchk *.MYI或myisamchk -e *.MYI。使用-s(沉默)選項禁止不必要的信息。如果mysqld伺服器處於宕機狀態,應使用--update-state選項來告訴myisamchk將表標記為'檢查過的'。
你必須只修復那些myisamchk報告有錯誤的表。對這樣的表,繼續到階段2。如果在檢查時,你得到奇怪的錯誤(例如out of memory錯誤),或如果myisamchk崩潰,到階段3。
階段2:簡單安全的修復
注釋:如果想更快地進行修復,當運行myisamchk時,你應將sort_buffer_size和Key_buffer_size變數的值設置為可用內存的大約25%。
首先,試試myisamchk -r -q tbl_name(-r -q意味著「快速恢復模式」)。這將試圖不接觸數據文件來修復索引文件。如果數據文件包含它應有的一切內容和指向數據文件內正確地點的刪除連接,這應該管用並且表可被修復。開始修復下一張表。否則,執行下列過程:
在繼續前對數據文件進行備份。使用myisamchk -r tbl_name(-r意味著「恢復模式」)。這將從數據文件中刪除不正確的記錄和已被刪除的記錄並重建索引文件。
如果前面的步驟失敗,使用myisamchk --safe-recover tbl_name。安全恢復模式使用一個老的恢復方法,處理常規恢復模式不行的少數情況(但是更慢)。如果在修復時,你得到奇怪的錯誤(例如out of memory錯誤),或如果myisamchk崩潰,到階段3。
階段3:困難的修復
只有在索引文件的第一個16K塊被破壞,或包含不正確的信息,或如果索引文件丟失,你才應該到這個階段。在這種情況下,需要創建一個新的索引文件。按如下步驟操做:
把數據文件移到安全的地方。使用表描述文件創建新的(空)數據文件和索引文件:
shell> mysql db_name
mysql> SET AUTOCOMMIT=1;
mysql> TRUNCATE TABLE tbl_name;
mysql> quit
如果你的MySQL版本沒有TRUNCATE TABLE,則使用DELETE FROM tbl_name。將老的數據文件拷貝到新創建的數據文件之中。回到階段2。現在myisamchk -r -q應該工作了。你還可以使用REPAIR TABLE tbl_name USE_FRM,將自動執行整個程序。
階段4:非常困難的修復
只有.frm描述文件也破壞了,你才應該到達這個階段。這應該從未發生過,因為在表被創建以後,描述文件就不再改變了。
從一個備份恢復描述文件然後回到階段3。你也可以恢復索引文件然後回到階段2。對後者,你應該用myisamchk -r啟動。
如果你沒有進行備份但是確切地知道表是怎樣創建的,在另一個資料庫中創建表的一個拷貝。刪除新的數據文件,然後從其他資料庫將描述文件和索引文件移到破壞的資料庫中。這樣提供了新的描述和索引文件,但是讓.MYD數據文件獨自留下來了。回到階段2並且嘗試重建索引文件。
❺ 如何檢查mysql從資料庫是否正常運行,腳本
一般在從庫執行show slave status,看behind值是否為0來判斷。
更准確的一些的方法是在主庫做一個表,每秒insert一個時間戳,在從庫讀取,來看時間差是否超過1秒。