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