逻辑备份用于备份数据库的结构(CREAET DATABASE、CREATE TABLE)和数据(INSERT),这种备份类型适合数据量小、跨SQL服务器、须要修改数据等场景。如mysqldump
命令就是产生一个逻辑备份工具,使用mysqldump
输出的文件包含CREATE TABLE
和INSERT
语句,可以直接重建表内容和表结构。mysql
使用逻辑备份有如下优点和劣势:sql
物理备份是包括存储数据库内容的目录和文件的副本,这种类型的备份适用于须要在出现问题时快速恢复的大型重要数据库。shell
在线备份须要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停机或对数据加锁也不会影响业务的正常使用,若是公司有条件或业务很是重要能够选择这种方案来备份数据。
欢迎关注微信公众号《架构文摘》,高质量技术文章第一时间推送。