一先建立备份账号
create user 'backup'@'localhost' identified by 'pass4word';
二赋予权限
grant select,reload,lock tables,replication client,show view,event,process on *.* to 'backup'@'localhost';
附加,查看创建表的语句
show create table table_name;
三备份单个数据库
mysqldump -ubackup -ppass4word --master-data=2 --single-transaction --routines --triggers --events tk_test >tk.sql
详解
备份分类
按照是否能继续提供服务
- 热备 :在线备份,能读能写.
- 冷备 :离线备份
按照备份数据库对象分类
- 物理备份:直接复制数据库文件,速度较快
- 逻辑备份:数据库sql文件.相比物理备份而言速度较慢
按照备份数据量
- 全量备份
- 增量备份
备份内容和备份工具
需要备份的内容:文件,二进制日志,事务日志,配置文件,操作系统上和MySQL相关的配置
备份工具:
mysqldump:逻辑备份工具.要求MySQL服务在线. MyIsam(温备,可读不可写), InnoDB(热备,可读可写)
cp :冷备份
lvm快照:几乎热备.注意点是 ,先flush table,lock table,创建快照,释放锁,复制数据.因为要先flush table 和lock table,这对于MyISAM来说很简单很容易实现.但对于InnoDB来说,因为事务的原因,锁表后可能还有缓存中的数据在写入文件中,所以应该监控缓存中的数据是否真的已经完全写入数据文件中,之后才能进行复制数据
xtrabackup:开源 .MyISAM(温备),InnoDB(热备),速度较快
语法选项
- mysqldump [OPTIONS] database_name [tables]
mysqldump -ubackup -ppass4word tk_test2 tk_test >back.sql
-
mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3 ..]
-
mysqldump -ubackup -ppass4word --database tk_test2 tk_test >back.sql
- mysqldump [OPTIONS] --all-databases [OPTIONS]
mysqldump -ubackup -ppass4word --all-databases > m2.sql;