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. 【VerySky原创】RPR_ABAP_SOURCE_SCAN

    [VerySky原创]RPR_ABAP_SOURCE_SCAN 扫描 ABAP 报表源

  2. 小白学数据分析----->留存率与运营活动分析_I

    有关留存率的事情最近扯得比较多,因为在分析数据的时候,越发觉得,分析一定是要来解决问题的,留存率不知何时突然变得流行了,在此讨论留存率倒不是因为流行,而是觉得以留存率为核心,的确是可以帮助我们解决不少 ...

  3. RecyclerView的使用

    什么是RecyclerView         RecyclerView是Android 5.0 materials design中的组件之一,相应的还有CardView.Palette等.看名字我们 ...

  4. HBase + Kerberos 配置示例(二)

    接上篇<HBase + Kerberos配置示例(一)>,我们继续剩下的配置工作. 环境准备 Hadoop配置 Zookeeper配置 HBase配置 Java测试程序 环境准备 安装ha ...

  5. 实施vertex compression所遇到的各种问题和解决办法

    关于顶点压缩,好处是可以减少带宽,一定程度提高加载速度,可以提高约5-10%的fps,特别是mobile上,简单描述就是: 压缩之前(32字节) position float3 12normal fl ...

  6. 转载:android.屏幕锁,解锁,在取证上的应用

    中国司法-鉴定,2013年第06期杂志  

  7. C#代码像QQ的右下角消息框一样,无论现在用户的焦点在哪个窗口,消息框弹出后都不影响焦点的变化,那么有两种方法

    你QQ的右下角消息框一样,无论现在用户的焦点在哪个窗口,消息框弹出后都不影响焦点的变化,那么有两种方法: 要么重写需要弹出的窗体的事件: protected override CreateParams ...

  8. jQuery之Deferred对象详解

    deferred对象是jQuery对Promises接口的实现.它是非同步操作的通用接口,可以被看作是一个等待完成的任务,开发者通过一些通过的接口对其进行设置.事实上,它扮演代理人(proxy)的角色 ...

  9. android studio clone 失败

    Clone failedunable to access 'https://git.oschina.net/xx/xx.git/': Failed to connect to x.tu26.net p ...

  10. 关于Server Sql 2008触发器的使用

    1.创建同一个服务器下同一个数据库实例两个不同数据库表同步方法 --==================================== -- Create database trigger -- ...