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
完成恢复