MySQL数据库的备份,一直是个比较头痛的问题。各种工具虽然不少,但一个真正好用易用的,却又非常难找。Mysqldump做为数据的逻辑备份工具还行,但是无法进行在线热备,而没有物理备份工具,在数据量比较大的时候,恢复的时间也会长得无法接受。InnoDB倒是有个商业的InnoDB Hotbackup,可以对InnoDB引擎的表实现在线热备。最近发现了一个工具,percona出品的Xtrabackup,是InnoDB Hotbackup的一个开源替代品,可以在线对InnoDB/XtraDB引擎的表进行物理备份,试用了一下,非常的不错,值得向MySQL DBA们推荐。
下面是一个实际备份的例子,采用了gzip将备份流进行压缩,约20GB的数据库,压缩后大小为340MB,当然,压缩后的大小跟数据库中实际使用的空间是相关的。备份时间约6分44秒。
innobackupex是参考了InnoDB Hotbackup的innoback脚本修改而来的,主要是为了方便的同时备份InnoDB和MyISAM引擎的表,并且加入了一些使用的选项。如 –slave-info可以记录备份恢复后,作为slave需要的一些信息,根据这些信息,可以很方便的利用备份来重做slave。
注意,从备份后的tar包解包的时候,需要使用-i参数。最新发布的是0.7版,猛击这里下载
MySQL DBA们,你是如何做备份的呢?欢迎到这里探讨。
$innobackupex-1.5.1 --user=root --stream=tar /bak/ --slave-info | gzip > /bak/bak_mysql.tar.gz InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy. All Rights Reserved. This software is published under the GNU GENERAL PUBLIC LICENSE Version 2, June 1991. IMPORTANT: Please check that the backup run completes successfully. At the end of a successful backup run innobackup prints "innobackup completed OK!". innobackupex: Using mysql Ver 14.12 Distrib 5.0.67, for redhat-linux-gnu (x86_64) using EditLine wrapper innobackupex: Using mysql server version 5.0.67-log innobackupex: Created backup directory /bak 090625 15:23:00 innobackupex: Starting mysql with options: --unbuffered --user=root 090625 15:23:00 innobackupex: Connected to database with mysql child process (pid=3431) 090625 15:23:04 innobackupex: Connection to database server closed 090625 15:23:04 innobackupex: Starting ibbackup with command: xtrabackup --backup --suspend-at-end --log-stream --target-dir=./ innobackupex: Waiting for ibbackup (pid=3565) to suspend innobackupex: Suspend file '/opt/mysqldata/xtrabackup_suspended' xtrabackup: suspend-at-end is enabled. xtrabackup: uses posix_fadvise(). xtrabackup: cd to /opt/mysqldata xtrabackup: Target instance is assumed as followings. xtrabackup: innodb_data_home_dir = /opt/mysqldata xtrabackup: innodb_data_file_path = ibdata1:10G;ibdata2:10G xtrabackup: innodb_log_group_home_dir = ./ xtrabackup: innodb_log_files_in_group = 4 xtrabackup: innodb_log_file_size = 104857600 xtrabackup: use O_DIRECT xtrabackup: Stream mode. >> log scanned up to (0 3053406941) 090625 15:23:06 innobackupex: Continuing after ibbackup has suspended innobackupex: Starting to backup InnoDB tables and indexes innobackupex: from original InnoDB data directory '/opt/mysqldata' innobackupex: Backing up as tar stream 'ibdata1' >> log scanned up to (0 3053416714) ...这里省略若干行 >> log scanned up to (0 3054123851) tar: ibdata1: file changed as we read it innobackupex: Backing up as tar stream 'ibdata2' >> log scanned up to (0 3054142116) ...这里省略若干行 >> log scanned up to (0 3054618483) innobackupex: Backing up file '/opt/mysqldata/test/sp.ibd' innobackupex: Backing up file '/opt/mysqldata/test/tmp_dy.ibd' innobackupex: Backing up files '/opt/mysqldata/testdb/*.ibd' (206 files) >> log scanned up to (0 3054638401) >> log scanned up to (0 3054668860) tar: testdb/group_group_thread_0027.ibd: file changed as we read it >> log scanned up to (0 3054695015) >> log scanned up to (0 3054928216) tar: testdb/group_thread_reply_0007.ibd: file changed as we read it >> log scanned up to (0 3054952588) >> log scanned up to (0 3055005439) tar: testdb/group_user_0001.ibd: file changed as we read it >> log scanned up to (0 3055028610) >> log scanned up to (0 3055044650) tar: testdb/group_user_0006.ibd: file changed as we read it >> log scanned up to (0 3055060461) innobackupex: Backing up file '/opt/mysqldata/testdb/comments.ibd' innobackupex: Backing up file '/opt/mysqldata/testdb/testdb.ibd' innobackupex: Backing up file '/opt/mysqldata/testdb/testdb_content.ibd' innobackupex: Backing up file '/opt/mysqldata/testdb/testdb_ids.ibd' 090625 15:29:17 innobackupex: Starting mysql with options: --unbuffered --user=root 090625 15:29:17 innobackupex: Connected to database with mysql child process (pid=5458) >> log scanned up to (0 3055072495) 090625 15:29:21 innobackupex: Starting to lock all tables... >> log scanned up to (0 3055087148) >> log scanned up to (0 3055119993) 090625 15:29:39 innobackupex: All tables locked and flushed to disk 090625 15:29:39 innobackupex: Starting to backup .frm, .MRG, .MYD, .MYI, innobackupex: .TRG, .TRN, and .opt files in innobackupex: subdirectories of '/opt/mysqldata' innobackupex: Backing up file '/opt/mysqldata/test/sp.frm' innobackupex: Backing up file '/opt/mysqldata/test/tmp_dy.frm' innobackupex: Backing up files '/opt/mysqldata/testdb/*.{frm,MYD,MYI,MRG,TRG,TRN,opt}' (207 files) innobackupex: Backing up file '/opt/mysqldata/testdb/comments.frm' innobackupex: Backing up file '/opt/mysqldata/testdb/testdb.frm' innobackupex: Backing up file '/opt/mysqldata/testdb/testdb_content.frm' innobackupex: Backing up file '/opt/mysqldata/testdb/testdb_ids.frm' innobackupex: Backing up file '/opt/mysqldata/testdb/db.opt' innobackupex: Backing up files '/opt/mysqldata/mysql/*.{frm,MYD,MYI,MRG,TRG,TRN,opt}' (52 files) 090625 15:29:40 innobackupex: Finished backing up .frm, .MRG, .MYD, .MYI, .TRG, .TRN, and .opt files innobackupex: Resuming ibbackup xtrabackup: The latest check point (for incremental): '0:3054881736' >> log scanned up to (0 3055120013) xtrabackup: Transaction log of lsn (0 3053102766) to (0 3055120013) was copied. 090625 15:29:44 innobackupex: All tables unlocked 090625 15:29:44 innobackupex: Connection to database server closed innobackupex: Backup created in directory '/bak/' innobackupex: MySQL binlog position: filename '', position innobackupex: MySQL slave binlog position: master host '127.0.0.1', filename 'mysql-bin.000006', position 227207755 090625 15:29:44 innobackupex: innobackup completed OK! innobackupex: You must use -i (--ignore-zeros) option for extraction of the tar stream.
相关推荐
本教程将详细介绍如何使用`xtrabackup`结合Shell脚本来实现MySQL数据库的备份与还原。 首先,我们需要理解`xtrabackup`的工作原理。`xtrabackup`通过读取InnoDB的数据文件和Redo日志,生成一个完整的物理备份。由于...
该脚本资源是使用xtrabackup对mysql做定时备份使用的,方便大家下载学习,如果过有是问题可以私信我,关于xtrabackup我也是没有太深入的了解,还有很多需要学习的地方,作为开发人员,也需要了解一些简单的运维知识
总的来说,Xtrabackup是MySQL数据库备份的理想选择,特别是在大型数据库和高可用性环境中。其高效、无锁的备份机制,灵活的增量备份,以及易于集成到自动化流程中的特性,都使其成为管理MySQL数据库不可或缺的工具。
MySQL数据库的自动定时备份是数据库管理中的重要环节,它确保了数据的安全性和可恢复性,尤其是在发生意外情况如系统故障、硬件损坏或人为错误时。本教程将详细讲解如何设置MySQL数据库的自动定时备份,包括步骤、所...
定时备份MySQL数据库是一项必不可少的任务,确保在出现意外情况如硬件故障、软件错误或人为操作失误时,能够快速恢复到正常状态。本篇文章将详细介绍如何配置定时备份MySQL数据库,包括每日、每周和每月的备份策略。...
下面将详细介绍如何通过CMD(命令提示符)和Java来使用mysqldump进行MySQL数据库的备份。 ### CMD备份 在Windows系统中,我们通常使用CMD(命令提示符)来执行mysqldump命令。首先,确保MySQL服务器已运行,并且...
《使用Xtrabackup备份还原MySQL数据库的详解》 MySQL数据库在企业级应用中扮演着至关重要的角色,为了确保数据的安全性和可恢复性,定期备份是必不可少的。本文将详细探讨如何使用Xtrabackup工具进行MySQL数据库的...
本文将详细介绍 MySQL 实时增量备份和 XtraBackup 备份技术,并结合实际案例,演示如何使用 binlog 日志恢复删除的表记录。 MySQL 实时增量备份 MySQL 实时增量备份是指在 MySQL 服务器上实时记录所有的数据库...
MySQL数据库的备份与恢复是确保数据安全性的重要环节。在本测试报告中,主要涉及了全量备份和增量备份的恢复过程,并对恢复后的数据进行了验证。以下是对这些知识点的详细说明: 1. **全量备份**:全量备份是数据库...
在MySQL数据库管理中,数据安全至关重要,而定期备份和有效的恢复策略是保障数据安全的关键环节。Xtrabackup是一款开源的、针对InnoDB存储引擎的热备份工具,它能够在不锁定数据库的情况下进行完整备份。本文将详细...
7.Xtrabackup备份Mysql数据库一.mp4 8.Xtrabackup备份Mysql数据库二.mp4 9.MySQL数据库主从原理讲解.mp4 10.MySQL高效架构读写分离配置.mp4 11.MySQL主从集群构建及故障切换.mp4 12.使用Binlog日志快速恢复MySQL数据...
基于xtrabackup8.0的数据库备份脚本,支持全库压缩备份、排除指定数据库压缩备份以及指定数据库压缩备份。备份规则:周一至周六增量备份,周日全库备份,自动管理备份和备份日志。如果有格式问题,应该是windows的...
XtraBackup 备份与恢复实例讲解 XtraBackup 是 Percona 公司开发的一款开源的 MySQL ...通过对 XtraBackup 的参数选项的了解,我们可以更好地使用 XtraBackup 来备份和恢复 MySQL 数据库,确保数据的安全和可靠性。
《使用Xtrabackup 2.4.4恢复MySQL数据库》 在MySQL数据库管理中,数据的安全性和可恢复性是至关重要的。Percona Xtrabackup是一款强大的开源工具,专为InnoDB和XtraDB存储引擎提供热备份解决方案。本文将详细阐述...
**Xtrabackup**是Percona公司提供的一款开源、高效的数据备份工具,它主要用于MySQL数据库,特别是InnoDB存储引擎的备份与恢复。Xtrabackup的主要特点是能够在不锁定数据库的情况下进行热备份,这意味着在备份过程中...
NBU备份恢复Mysql+Mysql安装部署
Xtrabackup是Percona公司开发的一款高效、可靠的MySQL数据库备份工具,特别适用于InnoDB和XtraDB存储引擎的物理热备份。它在备份过程中具有以下显著特点: 1. **备份过程快速且可靠**:Xtrabackup能够在不影响...
定时备份MySQL数据库是确保数据安全的重要环节,尤其是在可能发生数据丢失或损坏的情况下,定期备份能够保证业务的连续性和数据的完整性。 MySQL本身并不内置定时备份功能,但可以通过第三方工具或系统级别的任务...