mysql怎么进行备份-创新互联

这篇文章主要介绍“mysql怎么进行备份”,在日常操作中,相信很多人在mysql怎么进行备份问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql怎么进行备份”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的嘉禾网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

MySQL 5.5.47
备份路径 /backup/

安装

 apt-get install percona-xtrabackup11

一、 全量备份

root@iZu1dc59z8tZ:/var/lib# innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=123123 /backup/           InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy and Percona LLC and/or its affiliates 2009-2013.  All Rights Reserved. This software is published under the GNU GENERAL PUBLIC LICENSE Version 2, June 1991. Get the latest version of Percona XtraBackup, documentation, and help resources: http://www.percona.com/xb/ubuntu 160217 11:17:53  innobackupex: Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_file=/etc/mysql/my.cnf;mysql_read_default_group=xtrabackup' as 'root'  (using password: YES). 160217 11:17:53  innobackupex: Connected to MySQL server 160217 11:17:53  innobackupex: Executing a version check against the server... 160217 11:17:53  innobackupex: Done. IMPORTANT: Please check that the backup run completes successfully.            At the end of a successful backup run innobackupex            prints "completed OK!". innobackupex: Using mysql server version 5.5.47-0ubuntu0.14.04.1innobackupex: Created backup directory /backup/2016-02-17_11-17-53160217 11:17:53  innobackupex: Starting ibbackup with command: xtrabackup_55  --defaults-file="/etc/mysql/my.cnf"  --defaults-group="mysqld" --backup --suspend-at-end --target-dir=/backup/2016-02-17_11-17-53 --tmpdir=/tmp innobackupex: Waiting for ibbackup (pid=30486) to suspend innobackupex: Suspend file '/backup/2016-02-17_11-17-53/xtrabackup_suspended_2'xtrabackup_55 version 2.1.8 for Percona Server 5.5.35 Linux (x86_64) (revision id: undefined) xtrabackup: uses posix_fadvise(). xtrabackup: cd to /var/lib/mysql xtrabackup: using the following InnoDB configuration: xtrabackup:   innodb_data_home_dir = ./ xtrabackup:   innodb_data_file_path = ibdata1:10M:autoextend xtrabackup:   innodb_log_group_home_dir = ./ xtrabackup:   innodb_log_files_in_group = 2xtrabackup:   innodb_log_file_size = 5242880>> log scanned up to (3233814) [01] Copying ./ibdata1 to /backup/2016-02-17_11-17-53/ibdata1 [01]        ...done >> log scanned up to (3233814) xtrabackup: Creating suspend file '/backup/2016-02-17_11-17-53/xtrabackup_suspended_2' with pid '30487'160217 11:17:55  innobackupex: Continuing after ibbackup has suspended160217 11:17:55  innobackupex: Starting to lock all tables...160217 11:17:55  innobackupex: All tables locked and flushed to disk160217 11:17:55  innobackupex: Starting to backup non-InnoDB tables and files innobackupex: in subdirectories of '/var/lib/mysql'innobackupex: Backing up files '/var/lib/mysql/phpmyadmin/*.{frm,isl,MYD,MYI,MAD,MAI,MRG,TRG,TRN,ARM,ARZ,CSM,CSV,opt,par}' (37 files) >> log scanned up to (3233814) innobackupex: Backing up files '/var/lib/mysql/mysql/*.{frm,isl,MYD,MYI,MAD,MAI,MRG,TRG,TRN,ARM,ARZ,CSM,CSV,opt,par}' (72 files) innobackupex: Backing up files '/var/lib/mysql/performance_schema/*.{frm,isl,MYD,MYI,MAD,MAI,MRG,TRG,TRN,ARM,ARZ,CSM,CSV,opt,par}' (18 files) innobackupex: Backing up files '/var/lib/mysql/blog/*.{frm,isl,MYD,MYI,MAD,MAI,MRG,TRG,TRN,ARM,ARZ,CSM,CSV,opt,par}' (29 files)160217 11:17:56  innobackupex: Finished backing up non-InnoDB tables and files160217 11:17:56  innobackupex: Waiting for log copying to finish xtrabackup: The latest check point (for incremental): '3233814'xtrabackup: Stopping log copying thread. .>> log scanned up to (3233814) xtrabackup: Creating suspend file '/backup/2016-02-17_11-17-53/xtrabackup_log_copied' with pid '30487'xtrabackup: Transaction log of lsn (3233814) to (3233814) was copied.160217 11:17:57  innobackupex: All tables unlocked innobackupex: Backup created in directory '/backup/2016-02-17_11-17-53'160217 11:17:57  innobackupex: Connection to database server closed160217 11:17:57  innobackupex: completed OK!12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667681234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

completed OK! 表示备份成功。

还有很多其他常用的参数。
–stream=tar     压缩类型, 默认是输出到终端,如果保存为文件

innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=*** /backup/ --stream=tar > /backup/`date +"%Y%m%d_%H%M%S"`.tar#or gzip 压缩innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=*** /backup/ --stream=tar  | gzip > /backup/`date +"%Y%m%d_%H%M%S"`.tar.gz123123

–parallel=4 –throttle=400            并行个数,根据主机配置选择合适的,默认是1个,多个可以加快备份速度。

二、 全量恢复

恢复备份文件要保证mysql datadir文件为空,否则会报错

测试恢复

service mysql stop #停止MySQLmv /var/lib/mysql/ /var/lib/mysql_bak #备份原mysql 的datadirmkdir /var/lib/mysql123123
恢复第一步:应用日志

如果加了压缩,需要解压

mkdir /backup/20160217_114521 tar -ixvf /backup/20160217_114521.tar.gz -C /backup/20160217_1145211212innobackupex  --defaults-file=/etc/mysql/my.cnf --apply-log /backup/20160217_11452111
恢复第二步:拷贝文件到MySQL datadir
innobackupex  --defaults-file=/etc/mysql/my.cnf  --copy-back /backup/20160217_11452111
恢复第三步:修改文件权限,启动mysql服务。
chown mysql: /var/lib/mysql -Rservice mysql start1212

三、 增量备份

增量备份需要基于全备,先假设我们已经有了一个全备(/backup/20160217_114521),在该全表的基础上做增量备份。
第一次在数据库插入一条数据,在全备上做增量备份

innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=123123   --incremental-basedir=/backup/20160217_114521 --incremental /backup/11

incremental-basedir=全备的目录
–incremental=增量备份的目录

第二次在数据库插入一条数据,在第一次增量备份上做增量备份

innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=123123   --incremental-basedir=/backup/2016-02-17_12-15-30 --incremental /backup/11incremental-basedir=在第一次增量备份的目录--incremental=增量备份的目录1212

备份目录下,有一个文件xtrabackup_checkpoints记录着备份信息,全备的信息如下:

root@iZu1dc59z8tZ:/backup# cat 20160217_114521/xtrabackup_checkpoints backup_type = full-preparedfrom_lsn = 0to_lsn = 3233814last_lsn = 3233814compact = 0 root@iZu1dc59z8tZ:/backup# cat 2016-02-17_12-15-30/xtrabackup_checkpoints                backup_type = incrementalfrom_lsn = 3233814to_lsn = 3234430last_lsn = 3234430compact = 0 root@iZu1dc59z8tZ:/backup# cat 2016-02-17_12-1/xtrabackup_checkpoints     2016-02-17_12-15-30/ 2016-02-17_12-17-31/  root@iZu1dc59z8tZ:/backup# cat 2016-02-17_12-17-31/xtrabackup_checkpoints backup_type = incrementalfrom_lsn = 3234430to_lsn = 3234537last_lsn = 3234537compact = 012345678910111213141516171819201234567891011121314151617181920

从上面可以看出,增量备份的from_lsn正好等于全备的to_lsn。

四、 增量恢复

//测试恢复service mysql stop #停止MySQLmv /var/lib/mysql/ /var/lib/mysql_bak #备份原mysql 的datadirmkdir /var/lib/mysql12341234
恢复第一步:应用所有增量日志
1,应用全量的日志
innobackupex  --defaults-file=/etc/mysql/my.cnf --apply-log --redo-only /backup/20160217_11452111
2,应用增量的日志
//第一次增量innobackupex  --defaults-file=/etc/mysql/my.cnf --apply-log --redo-only /backup/20160217_114521 --incremental-dir=/backup/2016-02-17_12-15-30/ 1212

……

//最后一次增量innobackupex  --defaults-file=/etc/mysql/my.cnf --apply-log  /backup/20160217_114521 --incremental-dir=/backup/2016-02-17_12-17-31/1212
恢复第二步:拷贝文件到MySQL datadir
innobackupex  --defaults-file=/etc/mysql/my.cnf  --copy-back /backup/20160217_11452111
恢复第三步:修改文件权限,启动mysql服务。
chown mysql: /var/lib/mysql -Rservice mysql start

到此,关于“mysql怎么进行备份”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享名称:mysql怎么进行备份-创新互联
路径分享:http://csdahua.cn/article/ddjpoi.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流