技術微博 - 3
。使用innobackupex,extrabackup進行MySQL備份,本質上是拷貝文件到另外一個目錄,拷貝時會消耗IO資源,同時要註意空間是否足夠,最好一邊備份一邊壓縮,出來的文件小了,相當於節省了IO
。把表結構拷貝到另外一個表,可使用 insert into target_table select * from source_table;
。根據業務可以把數據庫分3種,第一種是核心庫,保存用戶的信息,第二種是賬單庫,負責保存明細,賬單的信息,還有一種是統計庫,負責出報表
。修改lepus的php代碼,不需要把整個代碼打包上傳下載,只需要把需要改動的php文件做備份,然後上傳新的頁面即可
。使用rz -bye上傳不壓縮的gblic包容易導致目錄亂碼,在rm -f的時候,容易遇到通配符把文件都刪除,正確做法是先把glibc包都放在一個壓縮的tar文件裏面,再上傳
。MySQL導數出來,導入myshard裏面,需要加入__version字段,如果不額外加入版本號字段,默認會是0,導入到空白的表還好,如果表已經有數據,就會有大於0的版本號,那麽再次導入0的版本號,就無法插入進去
。Innobackupex解壓了壓縮文件,如果直接使用mysqld_safe啟動,回按照MySQL的奔潰恢復方式來啟動,會導致啟動失敗,因為不是按照apply log的方式進行崩潰恢復
。使用pt-table-checksum 2億的表,修復上千條數據,超過8小時都還沒能修復完,因為它的原理是逐條checksum,發現有不對的的地方,再進行具體比較和修復,當然很慢了
。pt-table-sync修復時,把--print --execute的結果重定向到某個文件,為了保存數據,告訴別人結果,我修復了多少條數據。同理要把checksums的結果重定向到某個日誌裏面,否則屏幕一刷出來就過了,做過的事情要記錄下來,業務會有問你的時候
。innobackup很可能解壓時會失敗,如果空間足夠,可以先CP一個備份
。一般數據庫服務器用的是惠普的R720,R730
。為什麽MySQL rename一個2億的大表都是瞬間呢?因為背後的命令是mv,只需要修改一下連接指向而已
。即是不能降低別人預期,也不要提高別人期待,給意外和事故留時間,否則最後苦了自己
。windows的MySQL圖形客戶端軟件,在服務端的MySQL不知道授權哪個的時候,windows可以直接去連接,失敗會返回你的XX IP不允許連接數據庫
。登陸linux系統,獲取root權限,需要經過跳板機,但登陸數據庫是不需要經過跳板機的,應用程序直接連接即可,所以windows上的navicat是可以使用的
。myshard的按月分表,在查詢的時候,要告訴別人你要查詢的哪個月,於是要加入__date_partition=201611
本文出自 “DBA運維總結” 博客,轉載請與作者聯系!
技術微博 - 3