Mysql数据库日志,备份及回滚操作
在Windows系统下,对mysql的my.ini的log-bin等进行配置目录位置时,假设要将log-bin的日志配置到D盘的mysqllog的文件为binlog。则可以如下配置 :
[mysqld]
log-bin="D:\mysqllog/binlog" 注意:在这里的最后一个路径采用的是"/"而不是Windows文件系统的“\"
二、二进制日志处理:
1、查看
采用Mysqlbinlog.exe。可以在安装目录的Server里的Bin目录下找到。
查看: cmd> mysqlbinlog.exe filename (添加 --database [databasename] 可以查看某个特定的数据库的sql日志)
2、暂停日志记录
mysql> SET SQL_LOG_BIN=0/1 设置为0:表示暂停记录;否则为1;
3、删除二进制日志
mysql> RESETMASTER; (注意,将删除全部,要小心!!!!)
mysql> PURGE MASTER LOGS TO filename.number: 删除编号小于number的日志;
mysql> PURGE MASTER LOGS BEFORE 'yyyy-mm-dd hh:MM:ss' : 删除日志前的日志;
4、刷新日志,使得当前的日志编号增加一
采用MysqlAdmin.exe. 可以在安装目录的Server里的Bin目录下找到。
如当前的服务器的日志文件为: binlog.000002
则执行: cmd> mysqladmin -u root -p flush-logs :输入密码
执行之后,在二进制日志目录下会增加一个新的日志文件: binlog.000003。此后,服务器的新日志将会写到binlog.000003。
此做法很适合于增量备份时使用。
三、数据库备份与还原
采用mysqldump.exe. 可以在安装目录的Server里的Bin目录下找到。
1、完全备份:
cmd> mysqldump -u root -p test > test.sql :输入密码 将会备份数据库名为test的数据库到mysqldump.exe所在的目录的test.sql文件。
2、完全备份整个服务器的数据库,并刷新日志文件:
刷新日志文件的目的:告诉服务器将日志写到新的日志文件,为此,将来进行的备份就不用再进行完全备份了,只需要备份新的日志文件。实现”增量备份“
cmd> mysqldump -u root -p --flush-logs 执行之后将会生成更多的新的日志文件。如备份3个数据库时,会再生成3个日志文件。因为3个数据库的备份是被看成3个不同的事务执行的。因此,加上:--single-transaction 标记之后,将作为一个事务。因此,只会增加一个日志文件。
3、还原操作:
注意:由于一般情况下,系统的二进制日志是打开的,因此,执行还原时,会将还原的sql代码同样写入到日志。当显然,这些代码并不一定是需要存在的。因此,可以用暂停二进制日志的方式进行避免,但是,我在测试时,发现采用:SET SQL_LOG_BIN=0并不能做到。因此,可以采用以下的做法:
1)、刷新一个日志文件: cmd> mysqladmin -u root -p flush-logs. (这个文件用于存放还原时产生的日志,而不会影响原来的日志)
2)、执行还原一个数据库:test:cmd> mysql -u -root -p < test.sql;
3)、再将”增量“的日志执行到数据库test(要小心,不要执行其他数据库的二进制日志):
cmd> mysqlbinlog log.number | mysql -u root -p test 。
可以加入--database [name]的参数,指定只选择增量还原某个数据库的sql。如针对 test数据库:
cmd> mysqlbinlog log.number --database test | mysql -u root -p test
4)、在此过程生成的日志文件可以考虑删除。因为是原来的数据。
Mysql数据库日志,备份及回滚操作的更多相关文章
- 记录一次Spring boot 搭建框架连接Mysql数据库注解事务不回滚的故障
搭建了一个新框架,使用了spring boot 替换以简化原来繁杂的spring配置,使用Spring注解管理事务,持久层使用mybatis. 连接mysql数据库完成项目的过程中发现不支持事务,因为 ...
- 使用 xtrabackup 进行MySQL数据库物理备份
0. xtrabackup的功能 能实现的功能: 非阻塞备份innodb等事务引擎数据库. 备份myisam表会阻塞(需要锁). 支持全备.增量备份.压缩备份. 快速增量备份(xtradb,原理类似于 ...
- 使用percona-xtrabackup工具对mysql数据库的备份方案
使用percona-xtrabackup工具对mysql数据库的备份方案 需要备份mysql的主机 172.16.155.23存放备份mysql的主机 172.16.155.22 目的:将155.23 ...
- Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁
Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁 一丶安装 pip install PyMySQL 二丶pymysql连接数据库 ### 语法: ...
- mysqldump常用于MySQL数据库逻辑备份
mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump ...
- MySQL数据库日志文件(redo与undo)
+++++++++++++++++++++++++++++++++++++++++++标题:MySQL数据库日志文件时间:2019年2月25日内容:MySQL数据库日志文件(redo日志和undo日志 ...
- MySQL Transaction--事务无法正常回滚导致的异常
问题表现:系统增删改操作明显变慢(由原来的几十毫秒变为几十秒) 查看未提交事务 ## 查看未提交的事务 ## SELECT p.ID, P.USER, P.HOST, p.DB, P.TIME, T. ...
- 关于MySQL数据库的备份方案
这里简单总结MySQL的备份分为3种:分为冷备份,逻辑备份,热备份. 1.冷备份: 一般主要用于非核心业务,这类业务一般都是允许业务中断的,冷备份的特点就是数度快,恢复时也最为简单.通常直接复物理文件 ...
- Jenkins实现生产环境部署文件的回滚操作(Windows)
由于dotnet项目的生产环境环境部署工具比较少,所以我使用jenkins作为生产环境的自动化部署工具. 既然有回滚操作,那么就会有部署操作:要实现回滚,先要实现部署的操作,我在jenkins搭建了一 ...
随机推荐
- Mac夜神模拟器99%无法正常使用
PS:部分因更新OS X导致的卡99%可以尝试更新VBOX来解决此问题. 下载VBOX地址:https://www.virtualbox.org/wiki/Downloads 选择对应 ...
- 【原】简单shell练习(五)
1.查询一个文件中某个单词出现的次数 # grep -o 'ts' ./test/txt |wc -l 2.统计当前文件夹下文件的个数 ls -l |grep "^-"|wc -l ...
- Java面向对象编程 -2
成员属性封装 在类之中的组成就是属性和方法,一般而言方法都是对外提供服务的,所以是不会进行封装处理的,而对于属性需要较高的安全性,所以往往需要对其进行保护 这个时候就需要采用封装性对属性进行保护. 在 ...
- 验证码 倒计时 vue 操作对象
//html <input type="number" v-model="phoneNumber" placeholder="请输入手机号&qu ...
- kafka 分区
1. 默认存储 /tmp/kafka-logs test-0 0:分区数
- 谈一谈并查集QAQ(上)
最近几日理了理学过的很多oi知识...发现不知不觉就有很多的知识忘记了... 在聊聊并查集的时候顺便当作巩固吧.... 什么是并查集呢? ( Union Find Set ) 是一种用于处理分离集合的 ...
- 【PAT甲级】1002 A+B for Polynomials (25 分)
题意:给出两个多项式,计算两个多项式的和,并以指数从大到小输出多项式的指数个数,指数和系数. AAAAAccepted code: #include<bits/stdc++.h> usin ...
- nyoj 57
6174问题 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替 ...
- EASYUI combobox firefox 下不支持中文检索
firefox 中文录入因为输入法的问题,无法出发检索的事件.网上的方法试过还是没有解决. 于是使用录入时新增一个模拟键shift,触发keydown事件,最终实现需要的效果. $("inp ...
- Django继承drf的user模型的demo
1.安装虚拟环境 #mkvirtualenv drfdemo -p python3 #pip install django #pip install djangorestframework #pip ...