设为首页 收藏本站
查看: 1235|回复: 1

[经验分享] 使用xtrabackup备份mysql-notepad

[复制链接]

尚未签到

发表于 2018-9-30 12:24:11 | 显示全部楼层 |阅读模式
  一、下载
  下载地址:http://www.percona.com/downloads/XtraBackup/
  注:官方分4种包,二进制、源码、deb、rpm,这里直接下载二进制,解压后直接添加PATH变量使用即可
  二、安装(二进制包)
  tar zxf percona-xtrabackup-2.0.2-461.tar.gz
  mv percona-xtrabackup-2.0.2 /usr/local/xtrabackup
  echo "export PATH=$PATH:/usr/local/xtrabackup/bin" >> /etc/profile
  source /etc/profile
  三、备份(只介绍完整备份)
  1、开始备份前的检查:
  确认my.cnf中指定了datadir。
  2、开始备份
  #创建备份目录
  mkdir /data/backup/
  #备份到本地目录(备份discuz库)
  innobackupex --user=root --password=123 --defaults-file=/etc/my.cnf --databases="discuz" --slave-info /data/backup/
  注:--slave-info用来产生配置主从需要的:change语句(添加从节点时有用),如下:
  CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000025', MASTER_LOG_POS=98
  #备份到本地目录(不指定--databases选项备份所有库)
  innobackupex --user=root --password=123 --defaults-file=/etc/my.cnf --slave-info /data/backup/
  #备份到本地目录(备份scm库,打包)
  innobackupex --user=root --password=123 --defaults-file=/etc/my.cnf --databases="scm" --slave-info --stream=tar /data/backup/ >/data/backup/xtrabackup_scm.$(date +%Y%m%d-%H%M%S).tar
  #备份到本地目录(备份discuz、scm库,打包,压缩)
  innobackupex --user=root --password=123 --defaults-file=/etc/my.cnf --databases="discuz scm" --slave-info --stream=tar /data/backup/ | gzip >/data/backup/xtrabackup_scm_discuz.$(date +%Y%m%d-%H%M%S).tgz
  #备份到远程服务器(备份discuz、scm库,打包,压缩 ,远程服务器)
  innobackupex --user=root --password=123 --defaults-file=/etc/my.cnf --databases="discuz scm" --slave-info --stream=tar /data/backup/ | gzip | ssh -p51022 yangjuying@172.31.0.15 cat ">" /data/backup/xtrabackup_scm_discuz.tgz
  注:不推荐把备份到远程服务器的命令用作计划任务,查找相关资料为BUG,会经常挂起,如下:
  [01] Streaming ./ibdata1
  >> log scanned up to (0 3648378)
  >> log scanned up to (0 3648378)
  >> log scanned up to (0 3648378)
  >> log scanned up to (0 3648378)
  四、恢复(把拷贝的日志应用到拷贝的表数据文件的过程)
  innobackupex --user=root --password=123 --defaults-file=/etc/my.cnf --apply-log /data/backup/2014-02-26_20-36-49
  五、还原(注:直接拷贝;不使用--copy-back)
  #如果为压缩包先解压缩:
  tar -izxf xtrabackup_scm_discuz.tgz
  #进入解压后的目录
  cd ...
  #修改数据库目录和表文件权限;修改属主、组(mysql不需要还原,不用修改)
  目录权限: chmod 700 discuz scm
  文件权限: chmod 660 discuz/* scm/*
  属主、组: chown -R mysql.mysql *
  #停止服务
  /etc/init.d/mysqld stop
  #datadir下有同名数据库目录删除;拷贝库到datadir;覆盖datadir中的ibdata1 ib_logfile0 ib_logfile1
  mv discuz scm ibdata1 ib_logfile0 ib_logfile1 /data/mysql
  #启动服务
  /etc/init.d/mysqld start
  注:不使用官方的--copy-back选项还原是因为执行后会有一个BUG报错:Original data directory is not empty!
  (完成)
  ################################################################################
  补充:
  1、xtrabackup_slave_info:为该从库的主库添加新从库使用。
  xtrabackup_binlog_info:为该从库添加从库使用。
  ################################################################################
  总结:
  1、优点:
  如果要备份的库ENGINE为MYISAM,数据库比较大,使用该工具备份、还原速度比mysqldump快很多;实现不停止数据库即可配置mysql复制。
  2、缺点:
  不能单独还原单个innodb的库(在一个生产服务数据库器添加新业务数据库时),解决办法一般是在一个空服务器中,还原备份再mysqldump导出单个库。
  3、增量备份这里没有介绍,增量备份只是相对于innodb的表,MyISAM表的数据库还是完全备份。
  4、即使要备份的服务器使用独立表空间,innodb_file_per_table=1,也无法单独还原innodb库。
  5、表空间只会增长,不会缩小,可以使用dump导出,然后删除ibdata表空间文件,再使用mysqldump工具导入 。
  ######################################################################################################
  附:独立表空间配置步骤
  mysqldump备份所有库
  关闭服务
  修改配置文件,添加
  innodb_file_per_table=1
  启动服务
  使用以下命令查看是否成功开启
  show variables like '%per_table%';
  导入mysqldump的备份,
  完成
  ######################################################################################################
  



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-606728-1-1.html 上篇帖子: MySQL SUM() COUNT() 下篇帖子: pureftp+mysql+pureadmin
累计签到:1 天
连续签到:1 天
发表于 2018-9-30 12:36:40 | 显示全部楼层
谢谢楼主的分享

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表