MySQL备份

MySQL中的逻辑备份是将数据库中的数据备份为一个文本文件,备份的文件可以被查看和编辑。在MySQL中,使用mysaldump工具来完成备份。有以下3种来调用mysqldump:

  • 备份指定的数据库,或者此数据库中某些表。
shell>mysqldump [option] db_name [tables]
  • 备份指定的一个或多个数据库
shell>mysqldump [option] --database DB1 [DB2 DB3...]
  • 备份所有数据库
shell>mysqldump [option] --all-database
    如果没有指定数据库中的任何表,默认导出所有数据库中所有表。以下给出一些使用mysqldump工具进行备份的例子
    (1)备份所有数据库:
[cqh@localhost ~]$ mysqldump -uroot -p --all-database > all.sql
    (2)备份数据库test
[cqh@localhost ~]$ mysqldump -uroot -p test > test.sql
    (3)备份数据库test下的表emp
[cqh@localhost ~]$ mysqldump -uroot -p test emp > emp.sql
    (4)备份数据库test下的表emp和dept
[cqh@localhost ~]$ mysqldump -uroot -p test emp dept > emp_dept.sql
    (5)备份数据库test下的所有表为逗号分割的文本,备份到/tmp:
[cqh@localhost ~]$ mysqldump -uroot -p -T /tmp test emp --fields-terminated-by ','
 

MySQL恢复

MySQL中的恢复可分为三种,分别是:完全恢复基于时间点恢复基于位置恢复

完全恢复

mysqldump的恢复也很简单,将备份作为输入执行即可,具体语法如下:
mysql -uroot -p dbname < bakfile
注意,将备份恢复后数据并不完整,还需要将备份后执行的日志进行重做,语法如下:
mysqlbinlog binlog-file | mysql -uroot -p

基于时间点恢复

    由于误操作,比如误删除了一些表,这时使用完全恢复是没有用的,因为日志里还存在误操作的语句,我们需要的是恢复到误操作之前的状态,然后跳过误操作语句,再恢复后面执行的语句,完成我们的恢复。这种恢复叫不完全恢复,在MySQL中,不完全恢复分别为基于时间点的恢复和基于位置的恢复。
    以下是基于时间点恢复的操作步骤
    (1)如果上午10点发生了误操作,可以用以下语句用备份和BINLOG数据恢复到故障前:
shell>mysqlbinlog --stop-date="20150929 9:59:59" /var/log/mysql/bin.123456 | mysql -uroot -pmypwd
    (2)跳过故障时的时间点,继续执行后面的BINLOG,完成恢复。
shell>mysqlbinlog --start-date="20150929 10:01:00" /var/log/mysql/bin.123456 | mysql -uroot -pmypwd \

基于位置恢复

    和基于时间点的恢复类似,但是更精确,因为同一个时间点可能有很多条SQL语句同时执行。恢复的操作步骤如下:
    (1)在shell下执行如下命令:
shell>mysqlbinlog --start-date="20150929 9:55:00" --stop-date="20150929 10:05:00" /var/log/mysql/bin.123456 > /tmp/mysql_restore.sql
     该命令将在/tmp目录创建小的文本文件,编辑此文件,找到出错语句前后的位置号,例如前后位置号分别是565512和565515.
    (2)恢复了以前的备份文件后,应从命令行输入下面内容:
shell>mysqlbinlog --stop-position="551212" /var/log/mysql/bin.123456 | mysql -uroot -pmypwd
shell>mysqlbinlog --start-position="551215" /var/log/mysql/bin.123456 | mysql -uroot -pmypwd
    上面的第一行将恢复到停止位置为止的所有事务。下一行将恢复从给定的起始位置直到二进制日志结束的所有事务。因为mysqlbinlog的输出包括每个SQL语句记录之前的SET TIMESTAMP语句,因此恢复的数据和相关MySQL日志将反应事务执行的原时间。
 

别忘了给个赞哦!~

MySQL中的备份和恢复的更多相关文章

  1. 一、MySQL中的索引 二、MySQL中的函数 三、MySQL数据库的备份和恢复 四、数据库设计和优化(重点)

    一.MySQL中的索引###<1>索引的概念 索引就是一种数据结构(高效获取数据),在mysql中以文件的方式存在.存储建立了索引列的地址或者指向. 文件 :(以某种数据 结构存放) 存放 ...

  2. 我的MYSQL学习心得 备份和恢复(详细)

    备份 逻辑备份方法 使用MYSQLDUMP命令备份 MYSQLDUMP是MYSQL提供的一个非常有用的数据库备份工具.mysqldump命令执行时将数据库备份成一个文本文件, 该文件中实际上包含了多个 ...

  3. mysql数据库的备份和恢复

    Mysql数据库的备份和恢复 1.备份单个数据库 mysql数据库自带了一个很好用的备份命令,就是mysqldump,它的基本使用如下: 语法:mysqldump –u <用户名> -p ...

  4. MySQL优化之——备份和恢复

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46766919 备份 逻辑备份方法 使用MYSQLDUMP命令备份 MYSQLDUM ...

  5. Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁

    Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁 一丶安装 pip install PyMySQL 二丶pymysql连接数据库 ### 语法: ...

  6. mysql中的备份(backup)和恢复(recovery)

    (一)备份类型(backup type) 物理和逻辑备份(Physical Versus Logical Backup) 物理备份是指直接复制存储数据库内容的目录和文件,这种类型的备份适用于出现问题时 ...

  7. 一文搞懂│mysql 中的备份恢复、分区分表、主从复制、读写分离

    目录 mysql 的备份和恢复 mysql 的分区分表 mysql 的主从复制读写分离 mysql 的备份和恢复 创建备份管理员 创建备份管理员,并授予管理员相应的权限 备份所需权限:select,r ...

  8. Centos中MySQL数据的备份和恢复

    1.MySQL数据备份 MySQL在Centos备份中用到了mysqldump这个文件,首先得把它找出来: [root@instance-3snz20bz ~]# whereis mysqldump ...

  9. MySQL二进制日志备份和恢复详解

    原文链接:http://www.showerlee.com/archives/681 ****经实践,该教程ok,特在此分享**** 基本概念 定义: 二进制日志包含了所有更新了数据或者已经潜在更新了 ...

随机推荐

  1. GTD中落地执行篇

    前面几篇主要是分享GTD对事情进行 ”收集“,“分类”,“组织”.今天主要是想分享“落地执行” 先来看一个案例 (案例 来自于<小强升职记>) 通过这个案例我们看出 1: 当我们通过对事情 ...

  2. 如何查看Linux的系统是64位的还是32位的

    可以用命令“getconf LONG_BIT”查看,如果返回的结果是32则说明是32位,返回的结果是64则说明是64位. 此外还可以使用命令“uname -a”查看,输出的结果中,如果有x86_64就 ...

  3. linux上nginx+apache 搭建 svn服务器

    众所周知,nginx目前是不支持svn的,并且由于机房网络只开了80和22(ssh)端口,所以这时候就没法单独在服务器上搭建apache+svn .所以就产生了 nginx + apache + sv ...

  4. 用CSS box-shadow画画

    原理:找一幅画,每隔5 pixel取一个点的RGB,在CSS中用box-shadow描绘出这个点 Python from PIL import Image if __name__ == '__main ...

  5. MySQL模拟:线上误update的恢复

    作为DBA,细心.沉稳是首要的基本素质.不过总有那么一会心烦意乱或者开发同学出现误操作之类的...这里模拟一个误update操作,然后恢复. 如果开发同学有误操作之后最好先别乱动生产环境,需要记录几个 ...

  6. 搞了个基于zookeeper的Leader/Follower切换Demo

    基于zookeeper写了个Leader选举类库demo,场景如下: 上图中的Program1..4可以部署在1台server上,也可以部署在多台server上,也可以是一个进程中的多个线程. 运行效 ...

  7. jackson 注脚学习参考

    (1)初级我们从几个简单的使用场景开始:重命名属性,忽略属性,以及修改属性所使用的类型.注意:下面的例子仅仅显示了成员属性(field properties),注解同样也可以用在成员方法(getter ...

  8. ios开发中的Swift面向对象

    iOS在现代计算机语言中,面向对象是非常重要的特性,Swift语言也提供了面向对象的支持.而且在Swift语言中,不仅类具有面向对象特性,结构体和枚举也都具有面向对象特性. 1.Swift中的类和结构 ...

  9. 【卡西欧Fx5800-p程序】01 坐标转换程序-带注释

    1.程序说明: DDSG  (大地坐标转施工坐标) SGDD  (施工坐标转大地坐标) ↙      (回车命令"EXE") K       (施工坐标转换原点在线性上的桩号,如果 ...

  10. Gamma校正与线性工作流

    1 Gamma校正是什么?8位亮度值x(0-1)经过x^0.45的一个提亮过程. 2 为什么需要Gamma校正 人的眼睛是以非线性方式感知亮度,在自然界中,人感觉到的一半亮度其实只有全部能量的0.2, ...