1. 程式人生 > 實用技巧 >mysql 備份mysqldump mysqlbinlog

mysql 備份mysqldump mysqlbinlog

mysqldump
-A 全備份
-F flush log 重新整理日誌,可以儲存位置
-B 儲存create database 和use database_name
–trriggers 儲存
-R 記錄儲存過程與函式
–master-data=2 記錄binlog 代替-F不需要重新整理新的,記錄備份的position
mysqldump -uroot -pcentos -A -R --master-data=2  >/data/full.sql
show master status;檢視
vim /data/full.sql
在這裡插入圖片描述
鎖表 溫備份(myisam )
-x 鎖定所有表
-l 鎖定單表 -x -l沒啥必要 --master-data自帶縮表

–single-transaction 對innodb 引擎進行熱備 與 --master-data=2 聯合使用
通過快照方式實現熱備,通過undo來提供該功能,修改之前的資料做副本,實現快照功能。

亞索備份
mysqldump -uroot -pcentos -A -R --master-data=2 --single-transaction |gzip >/data/all_$(date+%F).sql.gz
mysql -uroot -pcentos </data/all_2020-10-20.sql

set sql_log_bin=0;
source /opt/xxx.sql
如果誤刪表了

每天23點全備,早上10點誤刪一個表咋整。
思路:
在這裡插入圖片描述
在這裡插入圖片描述

1.斷開業務,防止二次傷害,掛出系統維護
2.搭建備用庫,也許可以從庫代替主庫
3.擷取昨天二進位制起點544,找終點
show binlog events in ‘binlog.000001’;

mysqlbinlog --start-position=544 --stop-position=863 /application/mysql-5.6.36/mysql-test/suite/binlog.000001 >/data/binlog.sql
source /data/all_2020-10-10.sql
source /data/binlog.sql
完成恢復