SQL語句優化技巧
數據庫的備份可以防止服務器宕機、磁盤損壞、RAID卡損壞等意外情況下產生的數據丟失。
MySQL的備份工具:
mysqldump
ibbackup
replication
LVM快照
或者第三方工具xtrabacup等
數據庫的備份方法
根據備份方法劃分:
1:熱備
2:冷備
根據備份文件劃分:
1:邏輯備份:mysqldump和SELECT * INTO OUTFILE等之類的。
2:物理備份:使用ibbackup、xtrabackup之類的工具復制物理文件。
按照備份內容劃分:
1:完全備份:對全庫的備份。
2:增量備份:對部分更改庫的備份。一般通過二進制日志完成
ps:增量備份是通過檢查每頁最後的檢查點LSN,如果大於之前全備的LSN,則備份該頁,否則,略過。這就是xtrabackup的備份原理,在數據量比較大的情況下大大減少備份和恢復的時間。
對於Innodb存儲引擎,用mysqldump備份時最好加上 –single-transaction選項用來保證數據的一致性
備份全庫:
代碼如下 復制代碼 [root@10-4-14-168 mysql]# mysqldump -uroot -p --all-databases >/root/backupdata/20140918_alldb.sql
備份部分庫
代碼如下 復制代碼 [root@10-4-14-168 backupdata]# mysqldump -uroot -p --databases mysql test >/root/backupdata/20140918_2db.sql
確保數據一致性
–single-transaction 可以保證備份數據的一致性
代碼如下 復制代碼 [root@10-4-14-168 backupdata]# mysqldump -uroot -p --single-transaction test>/root/backupdata/20140918_test.sql
–lock-tables (-l) 一般適用於MyISAM存儲引擎
–master-data 主要用來建立一個replication
當–master-data = 1 :轉存文件記錄CHANGE MASTER
當–master-data = 2:轉存文件注釋CHANGE MASTER