温馨提示:这篇文章已超过765天没有更新,请注意相关的内容是否还可用!
前言:
本质:导出的是sql语句文件
优点:无论什么储存引擎,都可以用mysqldump备成sql语句
缺点:速度较慢,导入可能会出现格式不兼容的突发状况,无法直接做增量备份
提供三种级别的备份,表级、库级和全库级
常用参数:
--f1ush-1ogs,-F 开始备份前刷新日志 --f1ush-privileges 备份包含mysa1数据库时刷新授权表 --1ock-a11-tables,-x MyISAM一致性,服务可用性(针对所有库所有表) --1ock-tables,-1 备份前锁表(针对要备份的库) --single-transaction 适用InnoDB引擎,保证一致性,服务可用性 --master-data=2 表示将二进制日志位置和文件名写入到备份文件并在dump文件中注释掉这一行; --master-data=1 表示将二进制日志位置和文件名写入到备份文件,在dump文件中不注释这一行;
--master-data参数其他说明:
1)恢复时会执行,默认是1
2)需要RELOAD privilege并必须打开二进制文件
3)这个选项会自动打开--1ock-a11-tables,关闭--1ock-tables
表级别备份:
mysqldump 参数选项 database 表名
mysqldump database 库名 表名 -uroot -pxxx > 备份文件路径
[root@WEB ~]# mysqldump php message -uroot -p > /tmp/message.sql
删除表:
mysql> show tables; +---------------+ | Tables_in_php | +---------------+ | message | | test | +---------------+ 2 rows in set (0.00 sec) mysql> drop table message; Query OK, 0 rows affected (0.03 sec) mysql> show tables; +---------------+ | Tables_in_php | +---------------+ | test | +---------------+ 1 row in set (0.00 sec)
恢复表:
mysql> source /tmp/message.sql;
备份多表:
[root@WEB ~]# mysqldump php message test -uroot -p --set-gtid-purged=OFF > /tmp/all.sql
删除表:
mysql> drop table message; Query OK, 0 rows affected (0.02 sec) mysql> show tables; +---------------+ | Tables_in_php | +---------------+ | test | +---------------+ 1 row in set (0.00 sec)
恢复表:
[root@WEB ~]# mysql php < /tmp/all.sql -p Enter password:
mysql> show tables; +---------------+ | Tables_in_php | +---------------+ | test | +---------------+ 1 row in set (0.00 sec) mysql> show tables; +---------------+ | Tables_in_php | +---------------+ | message | | test | +---------------+ 2 rows in set (0.00 sec)
库级别备份
mysqldump 参数选项 --databases 参数选项 库名
mysqldump --databases db01 db02 -uroot -pxxx > 备份文件路径 [root@WEB ~]# mysqldump --databases php zabbix --set-gtid-purged=OFF > /tmp/data.sql -uroot -p Enter password:
删除数据库:
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | php | | sys | | testldx | | z_blog | | zabbix | +--------------------+ 8 rows in set (0.00 sec) mysql> drop database zabbix; Query OK, 166 rows affected (2.93 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | php | | sys | | testldx | | z_blog | +--------------------+ 7 rows in set (0.00 sec)
恢复数据库:
1、mysql内恢复
mysql> source /tmp/data.sql
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | php | | sys | | testldx | | z_blog | | zabbix | +--------------------+ 8 rows in set (0.01 sec)
2、命令行恢复
[root@WEB ~]# mysql < /tmp/data.sql -p Enter password:
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | php | | sys | | testldx | | z_blog | | zabbix | +--------------------+ 8 rows in set (0.01 sec)
全库级别
mysqldump 参数选项 --all-databases 参数选项
mysqldump --all-databases --master-data --single-transaction > 文件路径
[root@WEB ~]# mysqldump --all-databases --single-transaction --set-gtid-purged=OFF > /root/all.sql -uroot -p Enter password:
总结:
1.mysqldump工具备份的是SQL语句, 故备份不需要停服务
2.使用备份文件恢复时,要保证数据库处于运行状态
3.只能实现全库,指定库,表级别的某一时刻的备份 本身不能增量备份
4.适用于中小型数据库
文章版权声明:除非注明,否则均为柳三千运维录原创文章,转载或复制请以超链接形式并注明出处。