mysqldump工具基本使用
1. mysqldump [OPTIONS] database [tables…]
还原时库必须存在,不存在需要手动创建
--all-databases: 备份所有库
--databases db1 db2 ...: 备份指定的多个库,如果使用此命令,恢复时将不用手动创建库
--lock-all-tables:请求锁定所有表之后再备份,对MyISAM、InnoDB、Aria做温备
--lock-table: 对正在备份的表加锁,但是不建议使用,如果其它表被修改,则备份后表与表之间将不同步
--single-transaction: 能够对InnoDB存储引擎实现热备;
启动一个很大的大事物,基于MOCC可以保证在事物内的表版本一致
自动加锁不需要,再加--lock-table, 可以实现热备
备份代码:
--events: 备份事件调度器代码
--routines: 备份存储过程和存储函数
--triggers:备份触发器
备份时滚动日志:
--flush-logs: 备份前、请求到锁之后滚动日志;
方恢复备份时间点以后的内容
复制时的同步位置标记:主从架构中的,主服务器数据。效果相当于标记一个时间点。
--master-data=[0|1|2]
0: 不记录
1:记录为CHANGE MASTER语句
2:记录为注释的CHANGE MASTER语句
创建专门用于备份的用户
MariaDB > GRANT RELOAD,LOCK TABLES,SUPER,REPLICATION CLIENT ON *.* TO 'backup'@'%' IDENTIFIED BY '123456';
MariaDB > FLUSH PRIVILEGES;
mysqldump -ubackup -p123456 --single-transaction --flush-logs --master-data=2 --databases ttt > /data/backup.sql