1. 程式人生 > >技術微博 - 2

技術微博 - 2

數據庫

。myshard分內外網,連內網的myshard ip,需要授權業務機器內網IP白名單,外網同樣的道理


。把SQL語句導入數據庫,一定要加-f參數,否則遇到錯誤就會停止了,正確錯誤是把錯誤重定向到日誌,mysql -h127.0.0.1 -P3306 -u賬號 -p密碼 -f < db.sql >> export_error.log 2>&1 &, 不要進入MySQL裏面用source,而要在linux做數據的導入,速度差異非常的大


。機房之間網絡問題,丟包率高,並不會導致MySQL主從之間丟數據,因為TCP有重傳的機制,我傳一次丟了,我就傳第二次,第三次,傳到可以為止。


。每次導數需要多少時間,速度,性能怎麽樣,每次涉及相關操作都要收集數據,比如rsync數據,大概是100m/s的速度,mysqldump在 5G以下是1分鐘1G,在10G的時候是2分鐘1G,這些收集起來就是工作經驗


。MySQL本來已經有一個3306實例,如果不小心再啟動了一次3306的實例,不要去shutdown了,因為有可能會shutdown了正常運行的那個數據庫,應該一直等待,MySQL看到實例號沖突會自己shutdown的,兩個3306實例的存在只是暫時的


。在告警群,看到很多慢查詢告警,當時我打算輪訓10幾個核心庫,查看每個MySQL的慢查詢,然後停業務加索引,已經停了好幾個核心庫都沒有見起色,其實告警來來去去就是某個核心庫告警,要抓住主要矛盾,改了某個數據庫的慢查詢,整個告警都清凈很多了


。在rds中給分表建索引,比如給一個400張表分表建索引,不要在rds層面加索引,萬一加了索引不管用怎麽辦呢?應該先explain SQL, 看看會落在哪張分表,接著下去rds下mysql具體的分表中加索引,再次explain SQL查看,看看是否有效果,如果有效果,再把分表的索引刪掉,然後在RDS上整體加索引


。一條大查詢語句,會消耗大量IO資源,會導致該時間點的正常SQL語句,變成慢查詢,所以排查慢查詢,需要抓那條超大的慢SQL


。如果程序正在占用某個文件,及即使rm -f 了文件,也無法釋放空間


。數據庫服務器有2個盤,一個是SSD盤,專門放數據,另外一個是SAS盤,用來存放日誌,進行load數據的時候,不管是load出來還是load進去,都需要使用SSD盤。另外註意導出數據時要註意空間,否則把分區撐爆從而丟失數據


本文出自 “DBA運維總結” 博客,轉載請與作者聯系!

技術微博 - 2