• mysqlbackup备份和还原


    mysqlbackup备份和还原

    A.1全库备份.
    命令:
    mysqlbackup --host=127.0.0.1  --user=root --password=root@123 --port=3330  --with-timestamp --backup-dir=/verislog/mysqlbackup backup

    参数说明:    
    --defaults-file my.cnf文件的路径,主要用于一台服务器多个mysql服务.默认位置是/etc/my.cnf
    --host=127.0.0.1 
     --user  用户名,这个用户必须在mysql库里面有创建table和查询,插入的权限.在备份的过程中.mysqlbackup会在mysql库下建立backup_history, backup_progress表.用户保留备份的历史信息和备份的基础信息.   
    --password密码
    --database 需要备份的数据库,要备份多个数据库需要用""包括起来,每个数据库中间用空格分开
    --with-timestamp用户创建一个备份目录下面当前时间的文件夹,如果没有这个参数,多次备份时,制定同一个目录,会使上一次备份的文件覆盖掉.
    --backup-dir备份的目录
    Backup  表明,这是备份操作

    A.2全库还原.
    第一步:检测事务日志
    mkdir -p /veris/billing/mysql/3320/data
    mkdir -p /veris/billing/mysql/3320/etc
    mkdir -p /veris/billing/mysql/3320/innodb
    mkdir -p /veris/billing/mysql/3320/innodb/log
    mkdir -p /veris/billing/mysql/3320/proc
    mkdir -p /veris/billing/mysql/3320/log
    mkdir -p /veris/billing/mysql/3320/log/audit
    mkdir -p /veris/billing/mysql/3320/log/binlog
    mkdir -p /veris/billing/mysql/3320/log/error
    mkdir -p /veris/billing/mysql/3320/log/general
    mkdir -p /veris/billing/mysql/3320/log/relay
    mkdir -p /veris/billing/mysql/3320/log/slow
    mkdir -p /veris/billing/mysql/3320/tmp
    chmod -R 755 /veris/billing
    chown -R mysql:mysql /veris/billing/mysql/3320/*
    chown -R mysql:mysql /veris/billing/mysql/3320/innodb/log
    chown -R mysql:mysql /veris/billing/mysql/3320/log/*

    mysqlbackup --defaults-file=/veris/crm/mysql/3310/etc/my_3310.cnf  --backup-dir=/verislog/mysqlbackup/2014-08-14_11-30-49/  apply-log

    参数说明:
    apply-log:因为在备份的时候是在线的,如果有新插入的SQL语句,会记录新增加的LSN点,然后新修改的页面会放到这个文件里面(ibbackup_logfile),同时也会放到表空间里面.当还原使用这个参数的时候,mysqlbackup会检测ibbackup_logfile和表空间的LSN点,然后比较ibbackup_logfile文件表空间LSN的差值,把这个值放到事务日志LOG里面.(事务日志如果填满了,会进入表空间的)

    第二步:copy物理文件
    mysqlbackup --defaults-file=/veris/crm/mysql/3310/etc/my_3310.cnf --backup-dir=/verislog/mysqlbackup/2014-08-14_11-30-49/  copy-back
    chown -R mysql:mysql /veris/billing/mysql/3320/*
    chown -R mysql:mysql /veris/billing/mysql/3320/innodb/log
    chown -R mysql:mysql /veris/billing/mysql/3320/log/*

    -------------------------------------------------------
    B.1 压缩全库备份
    mysqlbackup --host=127.0.0.1 --user=root --password=root@123 --port=3320 --compress-level=1 --with-timestamp   --backup-dir=/verislog/mysqlbackup backup 

    参数说明:
    --compress-level=1
    1为快速压缩.共有9个等级
    B.2压缩还原

    第一步:检测事务日志,并解压
    mysqlbackup --defaults-file=/veris/billing/mysql/3320/etc/my_3320.cnf --uncompress --backup-dir=/verislog/2014-08-19_06-22-19/ apply-log
    uncompress解压压缩后的文件.

    第二步:copy物理文件
    mysqlbackup --defaults-file=/veris/billing/mysql/3320/etc/my_3320.cnf --backup-dir=/verislog/2014-08-19_06-22-19/ copy-back
    -------------------------------------------------------
    C.1 备份时,同时释放事务日志
    备份
    mysqlbackup  --host=127.0.0.1  --user=root --password=root@123 --port=3308 --with-timestamp  --backup-dir=/home/mysql/backup  backup-and-apply-log

    参数说明:
    backup-and-apply-log 这个参数,在备份的时候,就把事务日志检测的功能就完成了,并把ibbackup_logfile与表空间差值的LSN内容放入到了事务日志里面,所以在还原的时候,就只需要copy物理备份文件就行

    还原
    mysqlbackup --defaults-file=/veris/billing/mysql/3320/etc/my_3320.cnf --backup-dir=/home/mysql/backup/2012-03-21_19-25-09/  copy-back     
    -------------------------------------------------------
    D.1 增量备份

    第一次增量备份:
    mysqlbackup --host=127.0.0.1  --user=root --password=root@123  --port=3308 --with-timestamp --incremental --incremental-backup-dir=/home/mysql/in/ --incremental-base=dir:/home/mysql/backup/2012-03-22_11-10-28 backup

    参数说明:  
    --incremental :代表为增量备份.
    --incremental-backup-dir : 增量备份存放到哪个路径下
    --incremental-base : 增量备份的基础备份或增量备份的文件

    第二次增量备份:
    mysqlbackup  --host=127.0.0.1  --user=root --password=root@123 --port=3308  --with-timestamp  --incremental --incremental-backup-dir=/home/mysql/in/  --incremental-base=dir:/home/mysql/in/2012-03-22_11-15-28  backup

    参数说明:  
    --incremental-base : 这里的备份,就是上一次增量备份的路径
    增量备份原理:增量备份是基于第一次的完整备份之后,通过完整最后的LSN点这个基础在往后进行备份.当第二次增量备份的时,就基于前一次增量备份的LSN点的基础在进行备份.所以--incremental-base这个参数在增量备份的时候,是指向上一次全备份或增量备份的LSN点

    D.2 增量还原

    1. 全备检测匹配释放事务日志
       mysqlbackup --defaults-file=/veris/billing/mysql/3320/etc/my_3320.cnf  --backup-dir=/home/mysql/backup/2012-03-21_17-59-54/ apply-log 

    2. 检测匹配释放第一次的增量备份
       mysqlbackup  --backup-dir=/home/mysql/backup/2012-03-21_17-59-54/  --incremental-backup-dir=/home/mysql/in/2012-03-22_11-47-47/  apply-incremental-backup 

    3.检测匹配释放第二次的增量备份
      mysqlbackup  --backup-dir=/home/mysql/backup/2012-03-21_17-59-54/  --incremental-backup-dir=/home/mysql/in/2012-03-22_11-50-47/  apply-incremental-backup 

    4. 最后进行物理文件复制
       mysqlbackup --defaults-file=/veris/billing/mysql/3320/etc/my_3320.cnf --backup-dir=/home/mysql/backup/2012-03-21_17-59-54/ copy-back

    增量还原原理:
    1.  首先检测匹配释放全备事务日志文件(当然如果备份中使用了backup-and-apply-log,在备份的时候,已经检测匹配了,就不需要这一步了)

    2.  第一次增量备份的文件释放到全备文件里面.(首先会进入事务日志,然后是表空间),所以--backup-dir指向全备目录(基于LSN点向后增加)

    3.  第二次增量备份的文件也是释放到全备文件里面. (首先会进入事务日志,然后是表空间),因为第一次的增量备份后,全库里面已经有了第一次的LSN点,所以二次还原的时候同样指向全备文件里面使LSN点在外后增加

    4.  因为增量的页面,已经全部进入了事务日志或表空间,这个时候,就可以直接备份物理文件了. 

    但最后依然记住…
    # ===========

    把先备份的系统库MV到原来的地方
    修改data目录的权限(如果你设置的是已MySQL用户访问的话)
         chown -R mysql.mysql data
    # ===========
    在启动mysql server..
    Mysqlbackup工作原理

    1.       mysqlbackup对innodb的表空间进行物理复制,但是,它是记录LSN点的,在备份过程中,新增加的输入直接写入备份文件的ibbackup_logfile中.同时记录最后的LSN点

    2.       mysqlbackup对 myisam进行的是锁表全备.就算是增量备份,它依然是全备.

    3.       还原的时候,检测对比ibbackup_logfile文件里面与表空间里面的差值,使ibbackup_logfile里面的数据进入事务日志或表空间

    4.       在备份文件中的meta/backup_variables.txt文件中记录了备份的一些信息

      [backup_variables]
    start_lsn=1602048                                               # 开始备份的LSN点
    end_lsn=687810168                                           #  结束LSN点
    apply_log_done=1                                             # 是否释放检测ibbackup_logfile文件(0表示没有,1表示已经释放)
    is_incremental=0                                                # 是否是增量为增量备份文件(0:否,1:是)
    is_incremental_with_redo_log_only=0              # 只配置重做日志,当输入数据大小重做日志大小时,会有一场抛出
    is_partial=1                                                        # 是服务器备份还是部分备份(0表示全服务器备份,1表示部分备份)

    is_compressed=0                                              # 是否压缩(0表示没有压缩,1表示压缩)

    binlog_position=mysql-bin.000001:107          # 二进制文件大小

    is_onlyinnodb=0                                               # 是否只备份了innodb的表

    版权声明:QQ:597507041

  • 相关阅读:
    CSS特效(9)——图片倒影效果
    CSS特效(8)——单行居中,多行居左,超过两行用省略号(绝对定位)
    CSS特效(7)——单行居中,多行居左,超过两行用省略号
    CSS特效(6)——使用 mix-blend-mode 制作文字背景图
    CSS特效(5)——使用 background-clip 制作文字背景图
    CSS特效(4)——使用 background-blend-mode 制作 hover 效果
    CSS特效(3)——target伪类实现tab切换
    CSS特效(2)——input radio、label实现tab切换
    三国志·魏书·牵招传
    vue初体验
  • 原文地址:https://www.cnblogs.com/spzhangfei/p/4801782.html
Copyright © 2020-2023  润新知