A.1全库备份.

命令:

mysqlbackup --defaults-file=/home/mysql-server/mysql3/my.cnf  --user=root --password=root  --databases="mysql total2" --with-timestamp   --backup-dir=/home/mysql-server/backup   backup

参数说明:

--defaults-file my.cnf文件的路径,主要用于一台服务器多个mysql服务.默认位置是/etc/my.cnf

--user  用户名,这个用户必须在mysql库里面有创建table和查询,插入的权限.在备份的过程中.mysqlbackup会在mysql库下建立backup_history, backup_progress表.用户保留备份的历史信息和备份的基础信息.

--password密码

--database 需要备份的数据库,要备份多个数据库需要用””包括起来,每个数据库中间用空格分开

--with-timestamp用户创建一个备份目录下面当前时间的文件夹,如果没有这个参数,多次备份时,制定同一个目录,会使上一次备份的文件覆盖掉.

--backup-dir备份的目录

Backup  表明,这是备份操作

A.2全库还原.

第一步:检测事务日志

Mysqlbackup --defaults-file=/home/mysql-server/mysql2/my.cnf  --backup-dir=/home/mysql-server/backup/2012-03-21_14-01-34/  apply-log

参数说明:

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

第二步:copy物理文件

mysqlbackup --defaults-file=/home/mysql-server/mysql2/my.cnf --backup-dir=/home/mysql-server/backup/2012-03-21_14-01-34/  --innodb_log_files_in_group=2  copy-back

# 注意:在还原的时候,my.cnf文件中必要要有datadir的参数

B.1 压缩全库备份

mysqlbackup --defaults-file=/home/mysql-server/mysql3/my.cnf  --user=root --password=root --compress-level=1 --databases="mysql total2" --with-timestamp   --backup-dir=/home/mysql-server/backup  backup

参数说明:

--compress-level=1

1为快速压缩.共有9个等级

B.2压缩还原

第一步:检测事务日志,并解压

mysqlbackup --defaults-file=/home/mysql-server/mysql2/my.cnf --uncompress --backup-dir=/home/mysql-server/backup/2012-03-21_14-08-33/ apply-log

uncompress解压压缩后的文件.

第二步:copy物理文件

mysqlbackup --defaults-file=/home/mysql-server/mysql2/my.cnf --innodb_log_files_in_group=2 --backup-dir=/home/mysql-server/backup/2012-03-21_14-08-33/ copy-back

# 注意:在还原的时候,my.cnf文件中必要要有datadir的参数

增量备份不支持压缩. backup-and-apply-log参数不能跟--compress-level同用

C.1 备份时,同时释放事务日志

备份

mysqlbackup  --defaults-file=/home/mysql-server/mysql3/my.cnf  --user=root --password=root  --databases="mysql total2" --with-timestamp     --backup-dir=/home/mysql-server/backup  backup-and-apply-log

参数说明:

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

还原

mysqlbackup --defaults-file=/home/mysql-server/mysql2/my.cnf --innodb_log_files_in_group=2 --backup-dir=/home/mysql-server/backup/2012-03-21_19-25-09/  copy-back

  

D.1 增量备份

第一次增量备份:

mysqlbackup  --defaults-file=/home/mysql-server/mysql3/my.cnf  --user=root --password=root   --with-timestamp

--databases=”mysql total2” --incremental --incremental-backup-dir=/home/mysql-server/in/  --incremental-base=dir:/home/mysql-server/backup/2012-03-22_11-10-28  backup

参数说明:

--incremental :代表为增量备份.

--incremental-backup-dir : 增量备份存放到哪个路径下

--incremental-base : 增量备份的基础备份或增量备份的文件

第二次增量备份:

mysqlbackup  --defaults-file=/home/mysql-server/mysql3/my.cnf  --user=root --password=root   --with-timestamp

--databases=”mysql total2”  --incremental --incremental-backup-dir=/home/mysql-server/in/  --incremental-base=dir:/home/mysql-server/backup/2012-03-22_11-15-28  backup

参数说明:

--incremental-base : 这里的备份,就是上一次增量备份的路径

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

            

 

D.2 增量还原

1. 全备检测匹配释放事务日志

mysqlbackup --defaults-file=/home/mysql-server/mysql2/my.cnf  --backup-dir=/home/mysql-server/backup/2012-03-21_17-59-54/ apply-log

2. 检测匹配释放第一次的增量备份

mysqlbackup  --backup-dir=/home/mysql-server/backup/2012-03-21_17-59-54/  --incremental-backup-dir=/home/mysql-server/in/2012-03-22_11-47-47/  apply-incremental-backup

3.检测匹配释放第二次的增量备份

mysqlbackup  --backup-dir=/home/mysql-server/backup/2012-03-21_17-59-54/  --incremental-backup-dir=/home/mysql-server/in/2012-03-22_11-50-47/  apply-incremental-backup

4. 最后进行物理文件复制

mysqlbackup --defaults-file=/home/mysql-server/mysql2/my.cnf  --backup-dir=/home/mysql-server/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的表

Mysqlbackup 备份详解(mysql官方备份工具)的更多相关文章

  1. MySQL数据库备份详解

    原文:MySQL数据库备份详解 对于任何数据库来说,备份都是非常重要的 数据库复制不能取代备份的作用 比如我们由于误操作,在主数据库上删除了一些数据,由于主从复制的时间很短,在发现时,从数据库上的数据 ...

  2. (7) MySQL数据库备份详解

    对于任何数据库来说,备份都是非常重要的 数据库复制不能取代备份的作用 比如我们由于误操作,在主数据库上删除了一些数据,由于主从复制的时间很短,在发现时,从数据库上的数据可能也已经被删除了, 我们不能使 ...

  3. (转载)实例详解Android快速开发工具类总结

    实例详解Android快速开发工具类总结 作者:LiJinlun 字体:[增加 减小] 类型:转载 时间:2016-01-24我要评论 这篇文章主要介绍了实例详解Android快速开发工具类总结的相关 ...

  4. [深入学习Web安全](5)详解MySQL注射

    [深入学习Web安全](5)详解MySQL注射 0x00 目录 0x00 目录 0x01 MySQL注射的简单介绍 0x02 对于information_schema库的研究 0x03 注射第一步—— ...

  5. MySQL存储过程详解 mysql 存储过程

    原文地址:MySQL存储过程详解  mysql 存储过程作者:王者佳暮 mysql存储过程详解 1.     存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储 ...

  6. 详解CorelDRAW智能填充工具的运用

    使用智能填充工具可以为任意的闭合区域填充颜色并设置轮廓.与其他填充工具不同,智能填充工具仅填充对象,它检测到区域的边缘并创建一个闭合路径,因此可以填充区域.例如,智能填充工具可以检测多个对象相交产生的 ...

  7. 详解MySQL索引

    原文链接详解MySQL索引 索引介绍 索引是帮助MySQL高效获取数据的数据结构.在数据之外,数据库系统还维护着一个用来查找数据的数据结构,这些数据结构指向着特定的数据,可以实现高级的查找算法. 本文 ...

  8. MySQL数据类型 int(M) 表示什么意思?详解mysql int类型的长度值问题

    MySQL 数据类型中的 integer types 有点奇怪.你可能会见到诸如:int(3).int(4).int(8) 之类的 int 数据类型.刚接触 MySQL 的时候,我还以为 int(3) ...

  9. Mysql常用show命令,show variables like xxx 详解,mysql运行时参数

    MySQL中有很多的基本命令,show命令也是其中之一,在很多使用者中对show命令的使用还容易产生混淆,本文汇集了show命令的众多用法. 详细: http://dev.mysql.com/doc/ ...

随机推荐

  1. UI框架说明

    JQueryEasyUI jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.开发者不需要编 ...

  2. PAT-乙级-1049. 数列的片段和(20)

    1049. 数列的片段和(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CAO, Peng 给定一个正数数列,我们可以从中截 ...

  3. poj 2253 Frogger (最短路变种,连通图的最长边)

    题目 这里的dijsktra的变种代码是我看着自己打的,终于把代码和做法思路联系上了,也就是理解了算法——看来手跟着画一遍真的有助于理解. #define _CRT_SECURE_NO_WARNING ...

  4. SPOJ MULTQ3 7299 Multiples of 3 (区间更新)

    题目连接:http://www.spoj.com/problems/MULTQ3/ #include <iostream> #include <stdio.h> #includ ...

  5. POJ2676Sudoku

    http://poj.org/problem?id=2676 题意 : 这个是我最喜欢玩的数独了,就是一个9乘9的宫格,填上1到9九个数字,每行每列每个宫格之内不能有重复的数字,给出的九宫格中,0是待 ...

  6. dynamic介绍

    Visual C# 2010 引入了一个新类型 dynamic. 该类型是一种静态类型,但类型为 dynamic 的对象会跳过静态类型检查. 大多数情况下,该对象就像具有类型 object 一样. 在 ...

  7. 【memcache缓存专题(3)】PHP-memcache扩展的安装以及使用

    安装PHP-memcache扩展和安装其他PHP扩展的步骤是一样的. 安装 step 1:搜索下载扩展 http://pecl.php.net/package/memcache step 2: gzi ...

  8. 测试Tomcat

  9. 251. Flatten 2D Vector

    题目: Implement an iterator to flatten a 2d vector. For example,Given 2d vector = [ [1,2], [3], [4,5,6 ...

  10. 57. Insert Interval

    题目: Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if nec ...