灾备可视化:从数据中解读灾备 5月16日 星期四 15:00 云祺视频号准时直播
vinchin linked
delta 扫码预约直播,观看精彩内容!
closed
logo logo
关于我们

技术分享

技术分享 MySQL数据库备份 误操作 数据恢复

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

2021-06-02

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目录。

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;将表删除,要想恢复数据,必须建立一个表名、字段和数据类型相一致的空表,否则数据无法恢复,报表不存的错误。
云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 网络安全

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载