mysql备份01

关于备份

1,备份目标

        数据的一致性

        服务的可用性

2.备份技术

       1) 物理备份/冷备份

                直接复制数据库文件,适用于大型数据库环境,不受存储引擎的限制,但不能恢复到不                   同的MySQL版本。

                tar,cp,scp

                拷贝数据,  优点快,缺点服务停止。

      2)  逻辑备份/热备份

                备份的是建表、建库、插入等操作所执行SQL语句(DDL DML DCL),适用于中小型数据库。

                mysqldump,mydumper

                效率相对较低

备份模式

完全备份

增量备份   (连续回复)

        特点:因每次仅备份自上一次备份(注意是上一次,不是第一次)以来有变化的文件,所 以备份体积小,备份速度快,但是恢复的时候,需要按备份时间顺序,逐个备份版本进行恢复,恢复时间长。

差异备份   (跳跃恢复)

        特点:占用空间比增量备份大,比完整备份小,恢复时仅需要恢复第一个完整版本和最后 一次的差异版本(包含所有的差异),恢复速度介于完整备份和增量备份之间。

实战案例1

        官方站点     Open Source Database Software Support & Services | Percona

 1.安装

    1)安装percona需要的mysql包

             安装YUM仓库

yum install -y  https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm

yum工具:   yum install -y yum-utils

查看mysql可用版本:    yum repolist all | grep mysql

禁用80:   yum-config-manager --disable mysql80-community

启用57:   yum-config-manager --enable mysql57-community

yum  install mysql-community-libs-compat -y

2),YUM安装percona-xtrabackup

yum -y install percona-xtrabackup-24.x86_64

本地RPM:percona-xtrabackup24.rpm.zip   

查询安装结果:   rpm -ql percona-xtrabackup-24 

完全备份

 1-1 完全备份流程

innobackupex --user=root --password='密码' /xtrabackup/full

ls /xtrabackup/full/    :查看备份目录。数据库,配置文件,日志文件

ls /xtrabackup/full/2017-08-01_00-00-02/

观看二进制日志位置:    cat /xtrabackup/full/2017-08-01_00-00-18/xtrabackup_binlog_info 

1-2 完全恢复流程

停止数据库:   systemctl stop mysqld

清理环境(模拟损坏):    rm -rf /var/lib/mysql/*

                                        rm -rf /var/log/mysqld.log 

生成回滚日志:    innobackupex --apply-log /xtrabackup/full/2017-08-01_00-00-18/   (指定备份点)

恢复文件:    innobackupex --copy-back /xtrabackup/full/2017-08-01_00-00-18/

登陆验证:   ls /var/lib/mysql

                  chown -R mysql.mysql /var/lib/mysql

                  systemctl start mysqld

                  mysql -uroot -p'密码'

增量备份

2-1 增量备份流程

 准备工作

        使用指定的数据库

        create database testdb;

        use testdb;

        create table test(id int);

         insert into test values (1);

         select * from test; 

完整备份:周一

        rm -rf /xtrabackup/*

        date 09010000   时间建议靠后设置。

        innobackupex --user=root --password='QianFeng@123' /xtrabackup

        ll /xtrabackup/

增量备份:周二

        date 09020000    更新时间

        mysql -uroot -p'QianFeng@123' -e  'insert into testdb.test values (2)'

        [root@localhost ~]# mysql -uroot -p'QianFeng@123' -e 'select * from testdb.test'  

        innobackupex --user=root --password='QianFeng@123'   --incremental /xtrabackup/    --         incremental-basedir=/xtrabackup/2017-09-01_00-00-04    (basedir基于周一的备份。
 会生成一个今天的。)

        ls  /xtrabackup/

增量备份:周三

        date 09030000

        mysql -uroot -p'QianFeng@123' -e  'insert into testdb.test values (3)'

        innobackupex --user=root --password='QianFeng@123'   --incremental /xtrabackup/   --incremental-basedir=/xtrabackup/2017-09-02_00-00-26    (basedir基于周2的备份。
会生成一个今天的。)

        ls  /xtrabackup/

2-2 增量恢复流程

         停止数据库     systemctl stop mysqld

         清理环境       rm -rf /var/lib/mysql/*

        周一     innobackupex --apply-log --redo-only /xtrabackup/2017-09-01_00-00-04

        周二      innobackupex --apply-log --redo-only /xtrabackup/2017-09-01_00-00-04 
--incremental-dir=/xtrabackup/2017-09-02_00-00-26

        恢复     innobackupex --copy-back /xtrabackup/2017-09-01_00-00-06  

                    chown -R mysql.mysql /var/lib/mysql

                     systemctl start mysqld

差异备份

3-1 差异备份流程

        rm -rf /xtrabackup/*

1.完整备份     周一

        date 10010000

        create database testdb;
        use testdb;
        create table test2(id int);
        insert into test2 values(1);
        select * from test2;

        innobackupex --user=root --password='QianFeng@123' /xtrabackup

        ll /xtrabackup/

2.差异备份    周二

        date 10020000

        mysql -uroot -p'QianFeng@123' -e 'insert into testdb.test2 values(2)'

         innobackupex --user=root --password='QianFeng@123'  --incremental /xtrabackup  --incremental-basedir=/xtrabackup/2017-10-01_00-01-12

差异备份    周三

        date 10030000

        mysql -uroot -p'QianFeng@123' -e 'insert into testdb.test2 values(3)'

         innobackupex --user=root --password='QianFeng@123' --incremental /xtrabackup  --incremental-basedir=/xtrabackup/2017-10-01_00-01-12

差异备份    周四

        date 10040000

        mysql -uroot -p'QianFeng@123' -e 'insert into testdb.test2 values(4)'

         innobackupex --user=root --password='QianFeng@123' --incremental /xtrabackup  --incremental-basedir=/xtrabackup/2017-10-01_00-01-12

3-2 差异恢复流程

        停止数据库      systemctl stop mysqld

         清理环境       rm -rf /var/lib/mysql/*

重演回滚redo log(周一,某次差异)--> 恢复数据

        innobackupex --apply-log --redo-only /xtrabackup/2017-10-01_00-01-12

        innobackupex --apply-log --redo-only   /xtrabackup/2017-10-01_00-01-12  --incremental-dir=/xtrabackup/2017-10-04_00-00-29

         innobackupex --copy-back /xtrabackup/2017-10-01_00-01-12

        修改权限      chown -R mysql.mysql /var/lib/mysql/

        启动mysqld     systemctl start mysqld

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值