1、備份類型
cold,warm,hot
consistentinconsistent一致,非一致
logical,physical邏輯,物理
full,increamenta,differential完全,增量,差異
2、Oracle的熱備方式:
熱備時,允許所有讀寫,但所有修改了的數據都存放在redo-log日誌中(二進制文件,有先後順序)而先不放入數據庫。
undo-log可以讓數據精確回到過去某個時刻,滿足生產需要,可靠性高。
3、MySQL常用備份工具
1)mysqldump ALL WARM 邏輯溫備,可手動加鎖
INNODB HOT
2)ibbackup INNODB HOT 物理備份
ALL WARM
注:XtroDB與INNODB兼容,類似,用於取代INNODB,熱備開源。需要編譯mysql並整合XtroDB,替代INNODB
3)snapshot(LVM,ZFS) ALL ALMOST 物理HOT
4)mysqlhotcopy 僅MYISAM MOSTLY COLD (LVM,snapshot)
5)BACKUP ALL HOT mysql自帶邏輯備份命令,用的少
6)SELECT INTO OUTFILE 邏輯備份
7)tar,cp 冷備
4、案例:要求使用溫備份方式備份數據庫mydb,其使用MyISAM引擎。
1)分析:
是否能離線,能離線則離線冷備;不能離線,則使用warm備份(能寫操作延遲)或hot備份(不能寫操作延遲)
2)
mysqldump -u -h -p --all-databases --databases
--events備份事件
--flush-logs 在數據庫導出之前先執行FLUSH LOGS
--lock-all-tables 保持一致性,常與--lock-all-tables合用
--lock-tables 鎖定某些表
--master-data=n (指定備份點:log fiel name and position)
--opt (PITR 精確恢復,時間點恢復)
--routines (備份存儲過程、存儲函數)
--triggers (備份觸發器)
--single-transaction (爲事務性數據庫提供備份)
--where (指定過濾條件,只備份符合條件數據)
3)
mysqldump -uroot -p mydb > /root/mydb-`date +"%F"`.sql
mysqldump -uroot -p --flush-logs --events --routines --triggers mydb > /root/mydb.sql 備份事件等
mysqldump -uroot -p --databases mydb dnsdata > /root/mydb.sql 同時備份兩個數據庫
mysqldump -uroot -p mydb course > /root/mydb.sql 備份表course
查看備份文件可以看到如:CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000008',MASTER_LOG_POS=106;語句
即:指定備份點:log fiel name and position)
4、MySQL日誌
錯誤日誌:/datadir,--log-error 服務器啓動關閉信息,重要錯誤信息
一般查詢日誌
慢查詢日誌
二進制日誌,PITR
查看所有日誌:SHOW BINARY LOGS;
SHOW GLOBAL VARIABLES LIKE '%bin%';
SHOW BINLOG EVENTS;
SHOW BINLOG EVENTS IN 'mysql-bin.000006'\G;
SHOW BINLOG EVENTS IN 'mysql-bin.000006' FROM 950;
mysqlbinlog mysql-bin.000006 查看binlog,不用進mysql
**備份之後一定要試試備份文件是否可以備份。
**有問題可以查看錯誤日誌......err