mysql 开发进阶篇系列 42 逻辑备份与恢复(mysqldump 的完全恢复)
一.概述
在作何数据库里,备份与恢复都是非常重要的。好的备份方法和备份策略将会使得数据库中的数据更加高效和安全。对于DBA来说,进行备份或恢复操作时要考虑的因素大概有如下:
(1) 确定要备份的表的存储引擎是事务型(innodb)还是非事务型。两种不同的存储引擎备份方式在处理数据一致性方面是不太一样。
(2) 确定使用全备份还是增量备份。增量备份是备份每天的增量日志,恢复时需要全备份加所有增量备份。这里与sql server的完整备份+日志备份或差异备份有点类似。
(3) 可以考虑复制方法来做异地备份。但复制不能代替备份,因为有可能发生误操作。
(4) 要定期备份。
(5) 确保mysql的log -bin开启,才能实现完整恢复,或基于时间的恢复,或基于位置的恢复。
(6) 经常做备份恢复测试,确保备份是有效的,并且可以恢复的。
(7) mysql与sqlserver在备份上很大区别的概念是mysql可以基于表备份,而sql server基于库备份。
二. 逻辑备份和恢复
在mysql中,逻辑备份最大的优点是对于各种存储引擎,都可以用同样的访求来备份。而物理备份则不同,不同存储引擎有着不同的备份方法。 因此对于不同存储引擎混全的数据库,用逻辑备份会简单一些。
2.1 逻辑备份
mysql逻辑备份是将数据库中的数据备份为一个文本文件。可以被查看和编辑。在mysql中,使用mysqldump工具来完成逻辑备份。在前面章节"mysql 开发进阶篇系列 35 工具篇 "中有讲到该导出工具的用法。
2.2下面简演示一个备份与恢复的例子
-- 查看当前最新日志编号
SHOW MASTER STATUS

-- 备份test库,库中testbackup表有6条数据
SELECT * FROM testbackup

-- 将test库备份为test.dmp文件 -F备份后生成新日志
[root@hsr data]# pwd
/usr/local/mysql/data
[root@hsr data]# mysqldump -uroot -p --single-transaction -F test > test.dmp
Enter password:
备份后查看如下图所示:

备份后查看最新日志编号(备份成功后生成了新的日志序号)

-- 误操作
DELETE FROM testbackup WHERE id=6
-- 查看binlog日志,里面有误操作数据,需要在my.cnf中设置binlog_rows_query_log_events=1
SHOW BINLOG EVENTS IN 'mysql-bin.000038';

-- 还原test.dmp文件
[root@hsr data]# mysql -uroot -p test < test.dmp
Enter password:
-- 在查看数据,此时数据已还原。
SELECT * FROM testbackup

总结: 如果是在线还原生产数据库,有会一个问题,还原数据库后,自备份以后,用户操作的数据就会都要丢失。办法是继续恢复备份以来的binlog。但如果是误操作要找回数据有二种方法:(1)是还原一个副本,从副本中获取误操作的数据。(2) 在线还原,但不能用完全恢复,因为里面含有误操作的binlog日志。对于误操作推荐还是还原副本,不影响生产数据库。下篇继续对于误操作的恢复办法。
mysql 开发进阶篇系列 42 逻辑备份与恢复(mysqldump 的完全恢复)的更多相关文章
- mysql 开发进阶篇系列 43 逻辑备份与恢复(mysqldump 的基于时间和位置的不完全恢复)
一. 概述 在上篇讲到了逻辑备份,使用mysqldump工具来备份一个库,并使用完全恢复还原了数据库.在结尾也讲到了误操作是不能用完全恢复的.解决办法是:我们需要恢复到误操作之前的状态,然后跳过误操作 ...
- mysql 开发进阶篇系列 47 物理备份与恢复(xtrabackup 的完全备份恢复,恢复后重启失败总结)
一. 完全备份恢复说明 xtrabackup二进制文件有一个xtrabackup --copy-back选项,它将备份复制到服务器的datadir目录下.下面是通过 --target-dir 指定完全 ...
- mysql 开发进阶篇系列 46 物理备份与恢复( xtrabackup的 选项说明,增加备份用户,完全备份案例)
一. xtrabackup 选项说明 在操作xtrabackup备份与恢复之前,先看下该工具的选项,下面记录了xtrabackup二进制文件的部分命令行选项,后期把常用的选项在补上.点击查看xtrab ...
- mysql 开发进阶篇系列 48 物理备份与恢复(xtrabackup 的增量备份与恢复,以及备份总结)
一.增量备份概述 xtrabackup 和innobackupex 二个工具都支持增量备份,这意味着能复制自上次备份以来更改的数据.可以在每个完整备份之间执行许多增量备份,因此,您可以设置一个备份 ...
- mysql 开发进阶篇系列 45 物理备份与恢复(xtrabackup 安装,用户权限,配置)
一. 安装说明 安装XtraBackup 2.4 版本有三种方式: (1) 存储库安装Percona XtraBackup(推荐) (2 )下载的rpm或apt包安装Percona XtraBacku ...
- mysql 开发进阶篇系列 44 物理备份与恢复( 热备份xtrabackup 工具介绍)
一.概述 物理备份和恢复又分为冷备份和热备份.与逻辑备份相比,它最大优点是备份和恢复的速度更快.因为物理备份的原理都是基于文件的cp. 1.1 冷备份 冷备份就是停掉数据库服务.这种物理备份一般很少使 ...
- mysql 开发进阶篇系列 55 权限与安全(安全事项 )
一. 操作系统层面安全 对于数据库来说,安全很重要,本章将从操作系统和数据库两个层面对mysql的安全问题进行了解. 1. 严格控制操作系统账号和权限 在数据库服务器上要严格控制操作系统的账号和权限, ...
- mysql 开发进阶篇系列 20 MySQL Server(innodb_lock_wait_timeout,innodb_support_xa,innodb _log_*)
1. innodb_lock_wait_timeout mysql 可以自动监测行锁导致的死锁并进行相应的处理,但是对于表锁导致的死锁不能自动监测,所以该参数主要用于,出现类似情况的时候等待指定的时间 ...
- mysql 开发进阶篇系列 10 锁问题 (相同索引键值或同一行或间隙锁的冲突)
1.使用相同索引键值的冲突 由于mysql 的行锁是针对索引加的锁,不是针对记录加的锁,所以虽然是访问不同行的记录,但如果是使用相同的索引键,是会出现锁冲突的.设计时要注意 例如:city表city_ ...
随机推荐
- IDEA 错误: 找不到符号
在IDEA添加了一个新的Mapper.xml文件,然后删除,重新编译该文件所在的模块时,提示我编写的类找不到符合. 解决方法:右键.java文件,选择“complile ....”(ctrl+shif ...
- Python3创建项目时创建了一个叫做“keyword"的包,运行项目时报ImportError: cannot import name 'iskeyword'错误
导致该问题的原因为在Python3中keyword是python的关键字包,所以在给包命名时应避免使用关键字进行命名.解决方法,将keword包名称修改为'keywords'就可以了.
- 能量模型与softmax和RBM以及正态分布的关联
上面一篇文章中探讨了玻尔兹曼分布的起源: 在不清楚目标的真实分布,也不知道样本分布的时候,假设任意输入与输出组合都是同样可能发生的,这样是最公平,最无偏的先验. 因为无法直接统计出给定任意一种输入x, ...
- Linux编程基础——GDB(设置断点)
启动GDB后,首先就是要设置断点,程序中断后才能调试.在gdb中,断点通常有三种形式: 断点(BreakPoint): 在代码的指定位置中断,这个是我们用得最多的一种.设置断点的命令是break,它通 ...
- js生成tree形组织机构下拉框
1.首先我们正常数据是如下所示: [ { id: 1, pid: 0, name: '公司组织' }, { id: 2, pid: 1, name: '总经办' }, { id: 3, pid: 1, ...
- Java程序设计(第二版)复习 第二章
1.Java使用Unicode字符集,一般用16位二进制表示一个字符.且Java中午sizeof关键字,因为所有基本数据类型长度是确定的,不依赖执行环境. 2. Java变量在声明时并没有分配内存,真 ...
- CentOS7配置阿里云源
cd /etc/yum.repos.d/ mkdir backup mv CentOS-* backup/ wget -O /etc/yum.repos.d/CentOS-Base.repo http ...
- Jmeter学习过程中遇到的那些坑
开个新帖,持续记录学习jmeter过程中遇到的坑... (1)出师不利 由于公司的产品都是客户端模式,所以所有的接口测试都从获取access-token开始.妹的...上来就是一个坑... 一开始的配 ...
- Layui++>>ajax传递数组,防止深度序列化
- asp.net执行顺速
理解ASP.NET的运行机制(例:通过HttpModule来计算页面执行时间) 一:简要介绍一下asp.net的执行步骤 1.IIS接收到客户请求 2. IIS把请求交给aspnet_isapi.dl ...