mysql数据库怎样用日志恢复数据sql语句

mysql数据库怎样用日志恢复数据sql语句,第1张

要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名。一般可以从选项文件(即mycnf or myini,取决于你的系统)中找到路径。如果未包含在选项文件中,当服务器启动时,可以在命令行中以选项的形式给出。启用二进制日志的选项为-- log-bin。要想确定当前的二进制日志文件的文件名,输入下面的MySQL语句:

SHOW BINLOG EVENTS /G

你还可以从命令行输入下面的内容:

mysql --user=root -pmy_pwd -e 'SHOW BINLOG EVENTS /G'

将密码my_pwd替换为服务器的root密码。

1 指定恢复时间

对于MySQL 414,可以在mysqlbinlog语句中通过--start-date和--stop-date选项指定DATETIME格式的起止时间。举例说 明,假设在今天上午10:00(今天是2006年4月20日),执行SQL语句来删除一个大表。要想恢复表和数据,你可以恢复前晚上的备份,并输入:

mysqlbinlog --stop-date="2005-04-20 9:59:59" /var/log/mysql/bin123456 /

mysql -u root -pmypwd

该命令将恢复截止到在--stop-date选项中以DATETIME格式给出的日期和时间的所有数据。如果你没有检测到几个小时后输入的错误的SQL语句,可能你想要恢复后面发生的活动。根据这些,你可以用起使日期和时间再次运行mysqlbinlog:

mysqlbinlog --start-date="2005-04-20 10:01:00" /var/log/mysql/bin123456 /

mysql -u root -pmypwd /

在该行中,从上午10:01登录的SQL语句将运行。组合执行前夜的转储文件和mysqlbinlog的两行可以将所有数据恢复到上午10:00前一秒钟。你应检查日志以确保时间确切。

数据库服务器正在运行时,数据服务器主机突然蓝屏,接着任由发货员如何 *** 作不能再发货,只好关闭了服务器,然后重新启动 ,仍然不能发货(发货员员不懂数据库,不知道数据库因为故障不能启动)。然后打电话给我们请求解决。

2 了解数据库状况:

由于数据库不是我创建的,我得先了解相关的情况:数据库处于非归档模式,没有归档日志可以利用;一直运行良好,从没有备份;数据库每个日志组仅一个重做日志成员;数据库发生灾难后,其当前重做日志组2发生硬盘介质错误。

3 进行恢复

抱着一线希望,我希望归档日志能够切换或者删除,所以分别进行了下列几种方法的 *** 作:

1) alter database drop logfile 'pathredo02log' ;

2) alter database switch logfile ;

遗憾的是以上的命令执行后都返回错误,无法修改。因为数据是处于非归档模式,不能进行日志切换 *** 作,(除非数据库能启动,在启动后可以)。

没有办法,只好修改数据库参数_allow_resetlogs_corruption为真:

_allow_resetlogs_corruption=true

于是,将上面一行加到初始化参数文件中,进入svrmgrl控制台,进行如下 *** 作:

connect internal

startup mount

alter database clear logfile group 2 ;

recover database until cancel ;

alter database open resetlogs ;

alter database open ;

(以下 *** 作中有几步会返回错误,请不要理会提示的错误,继续执行)。

OK! 数据库成功启动加载 。

4 赶快将数据导出或利用PB导出,进行备份。

5 重建数据库,将上一步的数据导入重建的数据库。

这样,数据成功恢复。

1、首先确定myini(Win系统)或mycnf(Linux系统)是否有如下配置

[mysqld]

log-bin=mysql-bin

等号后面是文件名或者路径加文件名。

或者

用命令看是否开启binlog配置:

mysql>

show

master

logs;

mysql>

show

binlog

events

g;

2、提供故障时点描述信息

3、如果开启了binglog那就可以按故障还原点或者时间点进行还原 *** 作了

mysqlbinlog

--start-position=

mysqlbinlog

--start-datetime=

这里语法是进一步查询的线索,不知道你是什么OS、开发还是生产库?不能乱指挥。

备份:做故障还原及数据恢复前切忌做好备份(数据文件以及日志文件)

以上就是关于mysql数据库怎样用日志恢复数据sql语句全部的内容,包括:mysql数据库怎样用日志恢复数据sql语句、candance中,log文件用文本文档打开了,怎么恢复、如何通过mysql的日志恢复数据库 加急求救等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9684391.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存