mysql数据库备份及数据的导入导出
常用的备份方式及特性
- mysqldump (备份方式灵活、恢复时业务不停、备份速度慢)
- xtrabackup(物理、恢复时业务需停、备份速度快)
- mydumper(逻辑)
- mysqlbackup Enterprise (no lock)
mysqldump
- 备份的方式的粒度(库、表)
- 备份需要注意的事项
备份锁表,影响业务
对I/O,CPU,内存要求高
备份会不一致(一定要加single-transaction参数) - 缺点
花费时间比物理备份的二进制文件复制长
需要的存储空间更大
数据量大时恢复时间长
如果经常要备份,并希望在系统出现故障后快速恢复,或者需要通过网络传输备份文件,那么时间成本会非常大
使用mysqldump可以备份所有数据库,特定的数据库,特定的数据集合,甚至还可以备份指定数据库中的某些表
shell> mysqldump [options] db_name [tbl_name ...]
shell> mysqldump [options] --databases db_name ...
shell> mysqldump [options] --all-databases
选项 | 作用 |
---|---|
–add-drop-database | 在每个数据库前包含一个 DROP DATABASE 语句 |
–add-drop-table | 在每个表之前包含一个 DROP TABLE 语句 |
–add-locks | 在被包含的表前面加上 LOCK TABLES ,后面加上UNLOCK TABLES |
–all-databases | 包含所有数据库 |
–create-options | 在create table语句中包含所有特定于mysql的表选项 |