`

MySQL数据库备份 误操作 数据恢复

阅读更多
(一)MySQL数据备份和恢复
1 MySQL数据库的备份机制,写了一个.bat文件,每天定时自动备份:
echo on
FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE/T') DO SET CDATE=%%B
FOR /F "TOKENS=1,2 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET mm=%%B
FOR /F "TOKENS=1,2 DELIMS=/ eol=/" %%A IN ('echo %CDATE%') DO SET dd=%%B
FOR /F "TOKENS=2,3 DELIMS=/ " %%A IN ('echo %CDATE%') DO SET yyyy=%%B
SET date=%yyyy%%mm%%dd%
SET filename=dbname%date%.sql
mysqldump -uroot -proot --default-character-set=utf8 --hex-blob test > E:\db\%filename%
将该命令添加到任务计划即可。查看bat是否有效只要双击即可,前提是e盘下有db目录。

假如上面的命令无法备份,下面是最新的备份命令,我在本地测试是ok的:
@echo off
echo.
echo      MySQL数据库备份

echo *****************************
echo.
echo 今天是 %date%
echo 时间是 %time%
echo.
echo *****************************


set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"

md "g:\dbbackup\%Ymd%"

"D:\Program Files (x86)\MySQL\MySQL Server 5.0\bin\mysqldump" --opt -Q -uroot -proot --default-character-set=utf8 test > "g:\dbbackup\%Ymd%\test_bak.sql"

echo.

echo MySQL数据库备份完成,请进行检查。。。

echo.
echo.

pause


假如需要将上述备份的数据进行恢复,可以先创建一个新数据库,然后执行命令
mysql -u root -p test2 < g:/dbbackup/20140216/test_bak.sql

即可恢复上述表数据


2 关于误操作和数据恢复,一定要有安全意识,MySQL数据的找回,一定要在配置bin-log,否则数据丢失将无法恢复:
在MySQL的my.ini(或my.cnf,视操作系统不同而不同)添加:
[mysqld]
log-bin=binlogname(名字随便取)
然后需要重启MySQL服务才能生效
可以通过命令“show binlog events;”查看配置是否成功
通过mysqlbinlog恢复MySQL数据的两种方法:
(1)时间date
通过cmd运行到binlog所在的目录,再录入:
mysqlbinlog --stop-date="2011-02-27 12:12:59" jbms_binlog.000001 | mysql -uroot -proot (回车)
恢复到2011-02-27 12:12:59之前的数据,如果是start-date,即从该时间点后的开始算起
(2)位置position:
先将binlog日志转换成txt:
mysqlbinlog --start-date="2011-02-27 13:10:12" --stop-date="2011-02-27 13:47:21" jbms_binlog.000002 > temp/002.txt
功能是将时间段内的日志文件转换成txt,注意binlog和temp文件夹是同一目录下。
查看生成的txt文件,获取编辑位置和时间等数据,然后通过命令:
mysqlbinlog --stop-position="98" jbms_binlog.000002 | mysql -uroot -proot
即可恢复位置为“98”处操作的数据,其中stop也可以换成start。
注意:如果通过drop table name;将表删除,要想恢复数据,必须建立一个表名、字段和数据类型相一致的空表,否则数据无法恢复,报表不存的错误。

(二)MySQL常用的命令和导入导出:
1、从cmd进入mysql。先进入到mysql的bin目录下(否则不能识别mysql命令),然后录入mysql -h locahost -u root -p(回车,不用“;”结束,因为没有进入mysql环境,直接回车即可),即可进入mysql环境,这是如果要执行比如 use test;和select version();时需要用“;”结束。
2、mysqldump备份。命令为“mysqldump -u root -p databasename>d:\\temp\\001.sql”,特别需要注意的是,该命令为mysqldump,在bin目录执行即可,不需要进入mysql环境,进入mysql环境后就是sql预语句了,会报错,更也不需要用“;”结束了。
3、mysql导入。如果数据已经存在,进入mysql环境,执行“drop database db;”删除数据库,然后执行“create database db;”创建db,再在bin下执行"mysql -u root -p db < d:\\temp\\db.sql"即可将数据导入。
分享到:
评论

相关推荐

    MySQL执行delete误删除数据恢复

    使用备份:如果你有数据库备份,可以通过备份文件进行数据恢复。将备份文件还原到一个临时数据库中,然后从临时数据库中将误删的数据导出,并导入到原数据库中。 使用事务日志:MySQL 的二进制日志(binlog)记录了...

    MySQL误操作后快速恢复数据的方法

    摘要: 利用binlog闪回误操作数据。 基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了。假如这还是线上环境核心...

    MySQL_Cluster集群数据库误操作恢复方法研究

    对 MySQL Cluster 集群数据库误操作的一些预防措施和误操作后进行数据恢复的三种方案:通过解析二进制日志生成逆向操作脚本进行恢复、通过全库备份及二进制日志进行恢复、通过延迟备库及二进制日志进行恢复,并给出...

    MySQL 两种恢复数据的方法

    前一段时间接二连三的出现开发人员在测试环境和生产误操作导致数据库误删除/更新,对DBA而言,回滚数据着实是一件头疼的事情,凡涉及到恢复线上数据必然对应用带来一定的影响。大多数情况是开发误操作delete数据,...

    数据库备份策略说明.doc

    数据库备份策略说明 1、备份目的 保障项目数据安全,防止服务器故障导致数据无法恢复的情况。 2、备份策略 综述:所有mysql实例已经实现了master、slave结构,我们备份一般在slave服务器进行 。部分备份完成之后,...

    MySQL中truncate误操作后的数据恢复案例

    主要介绍了MySQL中truncate误操作后的数据恢复案例,主要是要从日志中定位到truncate操作的地方然后备份之前丢失的数据,需要的朋友可以参考下

    数据库灾难性恢复(数据库技术;灾难性;恢复;数据备份)

    工程师通过技术手段读取将数据都恢复为可以读的数据,数据恢复不是靠一两种软件就可以完成,往往需要数个工程师靠经验不同的方式才能恢复数据,当然数据库恢复还包括各种操作系统:除普通的WINDOWS外,还有Unix、...

    MySQL误操作后如何快速恢复数据

     用全量备份重搭实例,再利用增量binlog备份,恢复到误操作之前的状态。然后跳过误操作的SQL,再继续应用binlog。此法费时费力,不值得再推荐。  利用binlog2sql快速闪回  首先,确认你的MySQL server开启了...

    mysql8中文参考手册

    备份你的数据库,你可以恢复你的数据,并在问题发生时再运行至关重要,如系统崩溃,硬件故障,或用户误删除数据。备份也基本为维护升级MySQL安装之前,他们可以用来传递一个MySQL安装另一个系统或设置复制从服务器。...

    Mysql误操作后利用binlog2sql快速回滚的方法详解

    在日常工作或者学习中,操作数据库时候难免会因为“大意”而误操作,需要快速恢复的话通过备份来恢复是不太可能的,下面这篇文章主要给大家介绍关于Mysql误操作后利用binlog2sql快速回滚的方法,话不多说,来一起看...

    记一次mysql根据.frm.ibd文件恢复数据

    当我发现我误操作drop了一张表之后,我从控制台上下载了备份的压缩包,解压之后拿到我drop的那张表(sys_users)的.frm.ibd文件 1:本地建一个相同的数据库(AA)和相同表结构的表(sys_users) (一定要一摸一样的表...

    MySQL管理之道 性能调优、高可用与监控.part2.rar

    1.1.6 innodb的数据恢复时间加快 11 1.1.7 innodb同时支持多个bufferpool实例 15 1.1.8 可关闭自适应哈希索引 17 1.1.9 在innodb中可选择使用内存分配程序 18 1.1.10 提高默认innodb线程并发数 21 1.1.11 预读...

    实现MySQL回滚的Python脚本的编写教程

    操作数据库时候难免会因为“大意”而误操作,需要快速恢复的话通过备份来恢复是不太可能的,因为需要还原和binlog差来恢复,等不了,很费时。这里先说明下因为Delete 操作的恢复方法:主要还是通过binlog来进行恢复...

    高性能Linux服务器构建实战:运维监控、性能调优与集群应用

    其次讲解了开源数据镜像备份工具rsync和umson的使用,并通过两个企业级案例演示了这两个工具在生产环境中的使用过程:最后讲解了如何利用ext3grep工具来恢复误删除的数据文件和MySQL数据库的方法。网络存储应用篇...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    4.2.3 初始化MySQL数据库 4.3 配置一个bacula备份系统 4.3.1 配置bacula的Console端 4.3.2 配置bacula的Director端 4.3.3 配置bacula的SD 4.3.4 配置bacula的FD端 4.4 启动与关闭bacula 4.4.1 启动...

    梦想cms(lmxcms)网站管理系统 v1.4.rar

    lmxcms基于php语言和mysql数据库开发,系统采用业界流行的MVC设计模式开发,使得系统结构更加清晰明了,便于进行二次开发和管理,并且lmxcms内嵌了smarty模板引擎,使程序与模板分离,如果您足够了解lmxcms完全可以...

    梦想cms(lmxcms)v1.4 网站系统.zip

    lmxcms基于php语言和mysql数据库开发,系统采用业界流行的MVC设计模式开发,使得系统结构更加清晰明了,便于进行二次开发和管理,并且lmxcms内嵌了smarty模板引擎,使程序与模板分离,如果您足够了解lmxcms完全可以...

Global site tag (gtag.js) - Google Analytics