mysql 数据库备份
mysqldump 是 mysql 自带的逻辑备份工具。
它的备份原理是,通过协议连接到mysql 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的 insert 语句,当我们需要还原这些数据时,只要执行这些insert 语句,即可将对应的数据还原。
mysqldump 的优点:
可以直接使用文本处理工具处理对应的备份数据,因为备份数据已经被mysqldump转换成了对应的insert语句,所以,我们可以借助文件系统中的文本处理工具对备份数据进行直接处理。
mysqldump的缺点:
- 当数据为浮点数类型时,会出现精度丢失。
- mysqldump的备份过程属于逻辑备份,备份速度,恢复速度与物理备份工具想比较慢,而且mysqldump备份的过程是串行化的,不会并行的进行备份。
mysqldump 对 innodb 存储引擎支持热备,innodb 支持事务,我们可以基于事务通过mysqldump对数据库进行热备。
1、备份数据库命令
格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 > 文件名.sql
例如: mysqldump -h127.0.0.1 -p 3306 -uroot -ppassword --database cmdb > /data/backup/cmdb.sql
2、备份压缩
导出的数据有可能比较大,不好备份到远程,这时候就需要进行压缩
格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 | gzip > 文件名.sql.gz
例如: mysqldump -h127.0.0.1 -p 3306 -uroot -ppassword --database cmdb | gzip > /data/backup/cmdb.sql.gz
3、同时备份多个库
格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --databases 数据库名1 数据库名2 数据库名3 > 文件名.sql
例如:mysqldump -h127.0.0.1 -uroot -ppassword --databases cmdb bbs blog > /data/backup/mutil_db.sql
参数的含义:
参数名 | 缩写 | 含义 |
--host | -h | 服务器IP地址 |
--port | -P | 服务器端口号 |
--user | -u | MySQL 用户名 |
--pasword | -p | MySQL 密码 |
--databases | 指定要备份的数据库 | |
--all-databases | 备份mysql服务器上的所有数据库 |