MySQL二进制日志删除与恢复_congyan2377的博客-CSDN博客


本站和网页 https://blog.csdn.net/congyan2377/article/details/100375226 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

MySQL二进制日志删除与恢复_congyan2377的博客-CSDN博客
MySQL二进制日志删除与恢复
congyan2377
于 2016-03-13 12:27:58 发布
77
收藏
# vim /etc/my.cnf[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock# Default to using old password format for compatibility with mysql 3.x# clients (those using the mysqlclient10 compatibility package).# old_passwords=1table_cache = 300default-character-set = utf8log = /var/lib/mysqllog/mysql.loglog-bin = /var/lib/mysqllog/log-binlog-slow-queries = /var/lib/mysqllog/slowquery.loglong_query_time=2
[mysql.server]user=mysqlbasedir=/var/lib
[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid其中黑体的内容为增加的,斜体的log-error=/var/log/mysqld.log原有的mysql有以下几种日志:  错误日志:  -log-err   查询日志:  -log  慢查询日志: -log-slow-queries  更新日志:   -log-update    这个版本已经不用了,update的操作也记入查询日志中。设置上后错误日志中会有一条错误信息,不过不影响使用二进制日志: -log-bin 
附录:
//显示所有本机上的二进制日志mysql> SHOW MASTER LOGS;//删除所有本机上的二进制日志mysql> RESET MASTER;//删除所有创建时间在binary-log.xxx之前的二进制日志mysql> PURGE MASTER LOGS TO 'binary-log.xxx';//只保留最近6天的日志,之前的都删掉find /var/intra -type f -mtime +6 -name "*.log" -exec rm -f {} \;//用键盘左上角(也就是Esc下面)那个键包围起来,说明是命令。-1d是昨天,以此类推-1m是上个月等等day=`/bin/date -v -1d +%Y%m%d`;//给文件改名mv xxx.log xxx-${day}.log;//这里还要加上数据库的用户名密码,作用是更新日志(包括二进制日志和查询日志等等)mysqladmin flush-logs
打开MySQL的慢查询日志记录
   MySQL慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql的慢查询日志记录呢?其实打开mysql的慢查询日志很简单,只需要在mysql的配置文件里(windows系统是my.ini,linux系统是my.cnf)的[mysqld]下面加上如下代码:
log-slow-queries=/var/lib/mysql/slowquery.loglong_query_time=2注:log-slow-queries设置把日志写在那里,为空的时候,系统会给慢查询日志赋予主机名,并被附加slow.log。/var/lib/mysql/slowquery.log为日志存放的文件的位置,一般这个目录要有mysql的运行帐号的可写权限,一般都将这个目录设置为 mysql的数据存放目录
long_query_time=2中的2表示查询超过两秒才记录.
如果设置了参数log-long-format,那么所有没有使用索引的查询也将被记录。在文件my.cnf或my.ini中加入下面这一行可以记录这些查询
这是一个有用的日志。它对于性能的影响不大(假设所有查询都很快),并且强调了那些最需要注意的查询(丢失了索引或索引没有得到最佳应用)
# Time: 070927  8:08:52
# User@Host: root[root] @  [192.168.0.20]
# Query_time: 372  Lock_time: 136  Rows_sent: 152  Rows_examined: 263630select id, name from manager where id in (66,10135);这是慢查询日志中的一条,用了372秒,锁了136秒,返回152行,一共查了263630行
   如果日志内容很多,用眼睛一条一条去看会累死,mysql自带了分析的工具,使用方法如下:命令行下,进入mysql/bin目录,输入mysqldumpslow –help或--help可以看到这个工具的参数
MySQL的log-bin的日志功能   安装mysql,运行一段时间后,在mysql目录下出现一堆类似mysql-bin.000***,从mysql-bin.000001开始一直排列下来,而且占用了大量硬盘空间,高达几十个G。对于这些超大空间占用量的文件应该怎么办呢?
那么mysql数据库文件夹中的mysql-bin.00001是什么文件? mysql-bin.000001、mysql- bin.000002等文件是数据库的操作日志,例如UPDATE一个表,或者DELETE一些数据,即使该语句没有匹配的数据,这个命令也会存储到日志文件中,还包括每个语句执行的时间,也会记录进去。
这些形如mysql-bin.00001的文件主要是用来做什么的呢? 1:数据恢复如果你的数据库出问题了,而你之前有过备份,那么可以看日志文件,找出是哪个命令导致你的数据库出问题了,想办法挽回损失。
2:主从服务器之间同步数据主服务器上所有的操作都在记录日志中,从服务器可以根据该日志来进行,以确保两个同步。
如果不想要这些文件应该怎么做呢? 1:只有一个mysql服务器,那么可以简单的注释掉这个选项就行了。vim /etc/my.cnf把里面的log-bin这一行注释掉,重启mysql服务即可。
2:如果你的环境是主从服务器,那么就需要做以下操作了。A:在每个从属服务器上,使用SHOW SLAVE STATUS来检查它正在读取哪个日志。B:使用SHOW MASTER LOGS获得主服务器上的一系列日志。C:在所有的从属服务器中判定最早的日志,这个是目标日志,如果所有的从属服务器是更新的,就是清单上的最后一个日志。D:清理所有的日志,但是不包括目标日志,因为从服务器还要与它同步。
简单地说,这些MySQL目录下的形如mysql-bin.000***的文件时MySQL的事务日志。
删除复制服务器已经拿走的binlog是安全的,一般来说网络状况好的时候,保留最新的那一个足以。
mysql二进制日志维护
先登陆上去, 看看这台机器有没有做replication, 如果有在做的话, 清除bin-log的时候要小心了, 要确保要删除的bin-log都已经送到slave了.
mysql> show processlist;+----------+------+-----------+------+---------+------+-------+------------------+| Id       | User | Host      | db   | Command | Time | State | Info             |+----------+------+-----------+------+---------+------+-------+------------------+| 55467761 | root | localhost | NULL | Query   | 0    | NULL  | show processlist |+----------+------+-----------+------+---------+------+-------+------------------+没有binlog dump的线程, 说明这台机器没有在做replication, 直接用以下命令清除所有的bin-log, 可以删除列于索引文件中的所有二进制日志,把二进制日志索引文件重新设置为空,并创建一个新的二进制日志文件。
mysql> reset master;mysql> show master status;+----------+----------+--------------+------------------+| File     | Position | Binlog_Do_DB | Binlog_Ignore_DB |+----------+----------+--------------+------------------+|xxx.000001| 180      |              |                  |+----------+----------+--------------+------------------+假设我只想删除xxx.000018以前的bin-log, 可以用以下的命令.
mysql> purge master logs to 'xxx.000018'有条件的机器最好保留一份bin-log在另外一 个磁盘, 就算数据库挂了, 我们也可以根据二进制日志来恢复, 怎么保留二进制日志呢? 编辑你的my.cnf, 指定如下配置log-bin=/diskb/bin-logs/xxx_db-bin, 重新启动数据库的时候, 你就会发现/diskb/bin-logs哪里多了两个文件xxx_db-bin.000001, xxx_db-bin.index, 一个是二进制日志文件, 它将更改数据的所有查询记入该文件, 另外一个是二进制日志文件名的索引文件.
下面讲一下怎么从二进制文件恢复数据, 假如不小心执行了drop table xxx_db, 假如你保留了完整的二进制日志的话, 先不要冒汗, 这是可以恢复的.
先看看日志
mysql> mysqlbinlog /diskb/bin-logs/xxx_db-bin.000001找到执行create table xxx_db之后和drop table xxx_db之前的position, 假如是20, 1000.
mysql> mysqlbinlog --start-position="4" --stop-position="1000" /diskb/bin-logs/xxx_db-bin.000001 | mysql -u root伴 随着一大堆的ERROR 1062 (23000) at line 12355: Duplicate entry '139' for key 1, 数据库就这样恢复了, 不过--start-position="20"是不行的, 必须从--start-position="4"开始, 为什么要强制从4开始, 这个问题我也暂时没有搞清楚.
还有一种办法是根据日期来恢复
mysql> mysqlbinlog --start-datetime="2009-09-14 0:20:00" --stop-datetim="2009-09-15 01:25:00" /diskb/bin-logs/xxx_db-bin.000001 | mysql -u root如果create table xxx_db和drop table xxx_db之间的时间相距是一年, 或者在不同的二进制日志中, 且位置相距好远, 就等着失眠吧! 做好备份, 小心操作才是正路啊..
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9034054/viewspace-2056444/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9034054/viewspace-2056444/
congyan2377
关注
关注
点赞
收藏
评论
MySQL二进制日志删除与恢复
# vim /etc/my.cnf[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock# Default to using old p...
复制链接
扫一扫
mysql 错误日志文件大的清除
Data & Analysis
02-18
2961
[root@localhost ~]# du -h /var/log/mysqld.log
118G /var/log/mysqld.log
df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 265G 243G 23G 92% /
devtmpfs 16G ...
mysql二进制日志重置_MySQL二进制日志备份和恢复详解
weixin_42364174的博客
01-19
155
原文链接:http://www.showerlee.com/archives/681****经实践,该教程ok,特在此分享****基本概念定义:二进制日志包含了所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句。作用:1.二进制日志的主要目的是在恢复使能够最大可能地更新数据库,因为二进制日志包含备份后进行的所有更新。2.二进制日志还用于在主复制服务器上记录所有...
参与评论
您还未登录,请先
登录
后发表或查看评论
命令清空mysql日志文件_SQLServer:删除log文件和清空日志的方法
weixin_29883023的博客
02-01
841
数据库的性能是DBA都需要重点关注的,日志 文件 的增多严重影响数据库的性能,本文将为您介绍SQLServer 删除 日志 文件 的 方法 ,供您参考,希望对您有所帮助。 数据库在使用过程中会使日志 文件 不断增加,使得数据库的性能下降,并且占用大量的磁盘空间。数据库的性能是DBA都需要重点关注的,日志文件的增多严重影响数据库的性能,本文将为您介绍SQL Server删除日志文件的方法,供您参考,...
mysql bin.000013_mysql运维-二进制日志BINARY LOG清理_ mysql-bin磁盘占用高处理办法
weixin_35781147的博客
01-19
103
1.1 方法1:PURGE MASTER LOGS语法:PURGE { BINARY | MASTER } LOGS{ TO 'log_name' | BEFORE datetime_expr }用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件中的清单中被删除,这样被给定的日志成为第一个。例子:PURGE BINARY LOGS TO 'mysql-...
mysql binlog 删除语句_使用binlog日志恢复MySQL数据库删除数据的方法
weixin_29306317的博客
02-01
1109
原标题:使用binlog日志恢复MySQL数据库删除数据的方法binlog日志简介:binlog 就是binary log,二进制日志文件,这个文件记录了MySQL所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间。binlog日志包括两类文件:1)二进制日志索引文件(文件名后缀为.index):用于记录所有的二进制文件;2)二进制日志文件(文件名后缀为.0...
通过二进制日志恢复误删数据库
zl
08-19
639
一、初始环境
系统版本:CentOS Linux release 7.6.1810 (Core)
数据库版本: 8.0.15 MySQL Community Server - GPL
二、环境模拟
1.恢复的必要条件
​开启binlog日志,通过二进制日志和全备(逻辑备份)来恢复误删库。整体环境是在一次全备后有新数据插入,误删数据库进行恢复。先恢复全备状态,然后根据二进制日志提取出相关SQL将drop语句删除。重新恢复即可。
2.创建测试环境
1)查看此时数据库是否开启二进制日志
mysql> s
查询日志
weixin_44722014的博客
10-20
723
使用工具:xshell
1.到要查询的文件夹里
比如
cd/home/loong/downs
2.看一下目录里有什么文件
ls
3.想看4363.txt.utf-8文件
vi 4363.txt.utf-8
4.看关键词
/+关键字
/GOOD 从上往下检索
?GOOD 从下往上检索
5.翻页
ctrl +B (翻页,往下翻)
ctrl + S (翻页,往上翻)
6.键盘上的G 返回顶部
shift + g 到底部
7.退出命令: q!
...
mysql二进制日志文件恢复数据库_MySQL使用二进制日志恢复数据库
weixin_32287563的博客
01-19
251
一、二进制日志简介MySQL有不同类型的日志,其中二进制文件记录了所有对数据库的修改,如果数据库因为操作不当或其他原因丢失了数据,可以通过二进制文件恢复。在my.ini文件中设置了log-bin,重新启动MySQL后就开启了二进制日志。数据库每次重新启动(或执行flush logs命令)后,都会生成一个新的二进制日志,如在在my.ini文件中设置了log-bin=F:\mysqllog\logbi...
二进制日志恢复数据库数据
******* ▄︻┻┳═一 *******
10-18
1108
一、新建一个目录来存放二进制日志文件,并在配置文件中添加log-bin字段,指定存放二进制日志文件的位置[root@linux-node2 ~]# mkdir /var/lib/mysql-log
[root@linux-node2 ~]# chown mysql. /var/lib/mysql-log -R
[root@linux-node2 ~]# grep 'log-bin' /etc/my
mysql运维-二进制日志BINARY LOG清理
热门推荐
jesseyoung
11-10
2万+
1 几种方法
1.1 方法1:PURGE MASTER LOGS
语法:
PURGE { BINARY | MASTER } LOGS
{ TO 'log_name' | BEFORE datetime_expr }
实例:
PURGE BINARY LOGS TO 'mysql-bin.000001';
PURGE BINARY LOGS BEFORE '2
通过 MySQL 二进制日志恢复删除的记录
weixin_34354173的博客
09-27
234
删除 MySQL 表中的数据
mysql> use sbtest;
mysql> select count(*) from sbtest1;
+----------+
| count(*) |
+----------+
| 1000 |
+----------+
1 row in set (0.00 sec)
mysql> delete from sbtest1;
Qu...
删除MySQL二进制日志的方法
lxpbs8851的专栏
03-07
1万+
由于mysql也处于学习阶段 通过在网上的资料整理了点东西 请大家批评于指正。
----
mysql> SHOW MASTER LOGS; //查看所有的二进制日志列表
一.RESET MASTER
这个语句可以验证首次配置主机备机是否成功、步骤如下:
1. 启动master和 slave,开启replication (即 复制)
注:replication (复制)
mysql清除binlog二进制日志的最简单办法reset master
sunny__sja的专栏
06-23
766
mysql> reset master;
http://hi.baidu.com/ostech/item/cfacd6ca65753bdc97445284
mysql利用二进制日志binlog恢复误删除操作
袖卷笛音的博客
10-24
1481
什么是二进制日志:
二进制日志就是记录着mysql数据库中的一些写入性操作,比如一些增删改,但是,不包括查询!
二进制日志有哪些功能:
二进制日志有着数据复制和数据恢复的功能,可以将一些误删除的数据恢复
注意:
开启二进制日志会有1%的性能消耗!
查看二进制日志是否开启:
show variables like 'l...
mysql通过二进制恢复删除记录
fengqinyun168的专栏
05-16
51
首先确定是否开启二进制
[code="java"]
my.cnf / my.ini文件的mysqld里添加
log-bin=日志名
[/code]
2.日志的位置在data,默认/var/lib/mysql
3.[code="java"]
mysqlbinlog mysqlbinlog.000001 >log.txt
如果有误删,查看dele位置
在这个文件中,我们可以看到...
二进制日志的介绍与配置
limy_yi的博客
04-17
578
1.二进制日志的介绍
二进制日志的作用是记录数据库里的数据被修改的SQL语句,一般为DDL和DML语句,例如含有insert、update、delete、create、drop、alter等关键字的语句。
2.二进制日志的作用
二进制日志最重要的作用有2个,具体如下。
第一个是记录MySQL数据的增量数据,用来做增量数据库恢复,没有二进制日志功能,MySQL的备份将无法完整还原数据。
第二个是实现...
mysql二进制日志重置_MySQL 二进制日志(Binary Log)
最新发布
weixin_39870155的博客
02-08
129
同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分。MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等。这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等。二进制日志,也叫binary log,是MySQL Server中最为重要的日志之一,本文主要描述二进制日志。1、MySQL日志文...
删除MySQL二进制日志的3种方法
为梦想奋斗
12-29
1057
<br />1.RESET MASTER<br /><br /><br />可以删除列于索引文件中的所有二进制日志,把二进制日志索引文件重新设置为空,并创建一个新的二进制日志文件<br /><br />2.PURGE MASTER LOGS<br /><br />语法<br />PURGE {MASTER | BINARY} LOGS TO 'log_name'<br />PURGE {MASTER | BINARY} LOGS BEFORE 'date'<br />用于删除列于在指定的日志或日期之前的日志
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:编程工作室
设计师:CSDN官方博客
返回首页
congyan2377
CSDN认证博客专家
CSDN认证企业博客
码龄7年
暂无认证
原创
周排名
39万+
总排名
1万+
访问
等级
19
积分
粉丝
获赞
评论
13
收藏
私信
关注
热门文章
RHEL 6.5下搭建SNMP测试环境
665
Oracle 12c公用账户和本地用户的创建
595
Oracle数据库管理员账号的密码破解
439
Oracle 11g OCM官网升级考试大纲
316
Redhat5.4 Linux多路径dm-multipath之multi-path详解
233
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
MySQL 5.7遗忘root密码重置记录
Linux为普通用户添加sudo权限
RHEL 6.7搭建MySQL-Cluster集群架构
2017年1篇
2016年71篇
目录
目录
最新文章
MySQL 5.7遗忘root密码重置记录
Linux为普通用户添加sudo权限
RHEL 6.7搭建MySQL-Cluster集群架构
2017年1篇
2016年71篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值