首页 > IT职业 > IT图书 > Mysql备份还有这么多套路,还不了解下?
逻辑备份用于备份数据库的结构(CREAET DATABASE、CREATE TABLE)和数据(INSERT),这种备份类型适合数据量小、跨SQL服务器、需要修改数据等场景。如mysqldump命令就是产生一个逻辑备份工具,使用mysqldump输出的文件包含CREATE TABLE和INSERT语句,能够直接重建表内容和表结构。
使用逻辑备份有以下优势和劣势:
物理备份是包括存储数据库内容的目录和文件的副本,这种类型的备份适用于需要在出现问题时快速恢复的大型重要数据库。
在线备份需要mysql服务器处理运行状态,以便备份工具从mysql服务器中获取数据。离线备份表示mysql服务器处理停止状态。两种备份形式也可以称为“热备份”和“冷备份“。
mysqldump属于逻辑备份命令,使用mysqldump备份的优势是它非常方便和灵活,可以直接编辑输出文件或者使用导入到其他的SQL服务器中去,但是它不能用作备份大量数据的快速解决方案,对于大数据量,即使备份花费的时候可以接受,但是恢复数据也可能会非常缓慢,因为执执行SQL语句会涉及磁盘I/O进行插入,创建索引等。mysqldump的使用方式非常简单:
shell> mysqldump [options] db_name [tbl_name ...]
shell> mysqldump [options] --databases db_name ...
shell> mysqldump [options] --all-databases
使用mysqldump备份时要注意:数据库的一致状态,在执行mysqldump命令时要保证数据不会再发生变更,保持数据的一致性有二种方法:
REPEATABLE READ
使用REPEATABLE READ事务隔离级别执行mysqldump命令(使用事务保持数据库的一致状态):
mysqldump --master-data=2
--flush-logs
--single-transaction
--all-databases > /backup/`date +%F-%H`-mysql-all.sql
备份参数说明:
为了保证复制文件的完整性,备份原始文件最好是停止mysql服务器,复制原始文件备份由以下步骤完成:
$ mysqladmin shutdown
$ tar cf /tmp/dbbackup.tar ./data
$ mysqld_safe
使用mysqldump和tar备份或多或少都会对业务产生影响,使用mysqldump备份需要对数据加锁,加锁就意味着其他客户端操作受到限制。使用tar命令需要停止服务器直接导致数据库服务器不可用,有没有办法能解决这两种问题呢?答案是有的,就是使用主从备份模式。
在单机的基础上增加一台Slave机器对Master机器的数据进行同步:

开始备份时对Slave进行备份,这样即使Slave停机或对数据加锁也不会影响业务的正常使用,如果公司有条件或业务非常重要可以选择这种方案来备份数据。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1427/viewspace-2824282/ ,如需转载,请注明出处,否则将追究法律责任。