loading请求处理中...

数据库运用技巧 MySQL常用的备份方法

2021-12-01 04:41:11 阅读 11977次 标签: 开发 作者: chenliwen666

    数据库设计高手对于备份方法都是了如指掌,方法很多主要包括逻辑备份和物理备份。逻辑备份是备份sql语句,在恢复的时候执行备份的sql语句实现数据库数据的重现,物理备份就是备份数据文件了,比较形象点就是cp下数据文件,但真正备份的时候自然不是的cp这么简单。mysql按照备份恢复方式分为逻辑备份和物理备份。这2种备份各有优劣,一般来说,物理备份恢复速度比较快,占用空间比较大,逻辑备份速度比较慢,占用空间比较小下面介绍以下几种常用的备案方法。
   一、mysqldump工具备份
   mysqldump由于是mysql自带的备份工具,所以也是最常用的mysql数据库的备份工具。支持基于InnoDB的热备份。但由于是逻辑备份,所以速度不是很快,适合备份数据量比较小的场景。
mysqldump完全备份+二进制日志 —>实现时间点恢复
   温备:
   在使用MyISAM引擎中,只能使用温备份,这时候要防止数据的写入,所以先加上读锁

 

MySQL常用的备份方法


   这时候可以进入数据库手动加读锁。这样比较麻烦,在mysqldump工具中直接有一个加锁的选项
   mysqldump --databases mydatabase --lock-all-tables --flush-logs> /tmp/backup-`date +%F-%H-%M`.sql
   如果是针对某张表备份,只要在数据库名称后面加上表名称就行了
   这里注意,要实现时间点的恢复,加上--flush-logs选项,在使用备份文件恢复后,然后再基于二进制日志进行时间点的恢复,时间点的恢复方法:
   mysqlbinlog mysql-bin.000000x > /tmp/PointTime.sql
   然后用mysql命令导入这个sql脚本就行了
   热备:sql数据库设计中如果使用的是InnoDB引擎,就不必进行对数据库加锁的操作,加一个选项既可以进行热备份:
   --single-   transaction
   mysqldump --databases mydb --single-transaction --flush-logs --master-data=2 > /tmp/backup-`date +%F-%H-%M`.sql
   恢复的时刻关闭二进制日志
   mysql>set sql_log_bin=0;
   因为这是基于逻辑备份方式,在恢复日志时会执行sql语句插入数据,而恢复时候插入数据的日志没有意义。
   二、使用percona提供的xtrabackup
   支持InnoDB的物理热备份,支持完全备份,增量备份,而且速度非常快,而且支持InnoDB引擎的数据在不同数据库迁移
   为了让xtrabackup支持更多的功能扩展,配置InnoDB每表一个文件的功能
   在my.cnf的mysqld中加入此项: innodb_file_per_table=1
   此项不启用将不支持备份单独的表
   但如果之前没有启用这个选项,要实现单表一文件的话,可以用mysqldump导出数据,然后启用该选项,恢复回去后就是单表一文件了
   要实现时间点还原,是需要使用二进制日志的,所以备份好二进制日志至关重要。除非在恢复时间点和上一次备份时间点这段时间的数据对你来说无所谓。挑选服务商进行专业的数据库程序设计,数据库配置,数据库恢复,数据库安全建立,数据库等服务就上一品威客网,中国领先的文化创意交易平台。

数据库设计公司推荐

成为一品威客服务商,百万订单等您来有奖注册中

留言( 展开评论

快速发任务

价格是多少?怎样找到合适的人才?

官方顾问免费为您解答

 
数据库设计相关任务
DESIGN TASK 更多
可视化展示工具,开发

¥1000 已有2人投标

H5小游戏开发

¥10000 已有0人投标

归寝签到软件开发

¥5000 已有1人投标

ToG业务销售拓展管理系统开发

¥20000 已有0人投标

监控工具开发

¥15000 已有0人投标

微信营销平台开发

¥20000 已有4人投标

打窝船PCBA方案开发

¥3000 已有0人投标