MySQL日志详细解析(11)

命令行下查看二进制日志:
由于无法使用cat等方式直接打开并查看二进制日志;所以必须使用mysqlbinlog命令。但是当正在执行mysql读写操作时建议不要使用此打开正在使用的二进制日志文件;若非要打开可flush logs。mysqlbinlog命令的使用方式:
[root@linuxidc data]#mysqlbinlog mysql-bin.000017        #必须在数据目录下
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET@@session.max_insert_delayed_threads=0*/;
/*!50003 SET@OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4      #事件开始处
#131009  0:25:59 server id 1  end_log_pos 107  Start: binlog v 4, server v 5.5.33-log created 131009  0:25:59 
# Warning: thisbinlog is either in use or was not closed properly.
BINLOG '
FzJUUg8BAAAAZwAAAGsAAAABAAQANS41LjMzLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAVAAEGggAAAAICAgCAA==
'/*!*/;
# at 107
#131009  0:26:36 server id 1  end_log_pos 192  Query  thread_id=12    exec_time=0 error_code=0    #131009 0:26:36年月日的简写方式;end_log_pos事件结束处;thread_id=12 哪个会话线程创建的此语句;exec_time=0 执行时长单位为秒;error_code=0 错误代码0表示没有
SET TIMESTAMP=1381249596/*!*/;      #预设信息(环境设定)

导出此数据库的信息:
[root@linuxidc data]#mysqlbinlog mysql-bin.000017 > /tmp/a.sql

导入此数据库的信息:
[root@linuxidc data]#mysql < a.sql

删除二进制日志信息:
二进制日志会记录大量的信息(其中包含一些无用的信息)。如果很长时间不清理二进制日志,将会浪费很多的磁盘空间。但是,删除之后可能导致数据库崩溃时无法进行恢复,所以若要删除二进制日志首先将其和数据库备份一份,其中也只能删除备份前的二进制日志,新产生的日志信息不可删(可以做即时点还原)。也不可在关闭mysql服务器之后直接删除因为这样可能会给数据库带来错误的。若非要删除二进制日志需要做如下操作:导出备份数据库和二进制日志文件进行压缩归档存储。删除二进制文件的方法如下:
1、删除所有的二进制日志(不可效仿):
使用RESET MASTER语句可以删除所有的二进制日志。该语句的形式如下:
mysql> resetmaster;           
Query OK, 0 rowsaffected (0.17 sec)
mysql> showbinary logs;
+------------------+-----------+
| Log_name        | File_size |
+------------------+-----------+
| mysql-bin.000001|      107 |
+------------------+-----------+
1 row in set (0.04sec)

解析:首先不建议在生产环境下使用此操作;删除所有的二进制日志后,Mysql将会重新创建新的二进制日志。新二进制日志的编号从000001开始。

2、根据文件或时间点来删除二进制日志:
语法形式:
mysql> PURGE { BINARY | MASTER } LOGS {TO 'log_name' | BEFORE datetime_expr }

其中TO'log_name'表示把这个文件之前的其他文件都删除掉,也可使用BEFORE datetime_expr指定把哪个时间之前的二进制文件删除了。
mysql> PURGEBINARY LOGS TO 'mysql-bin.000007';
Query OK, 0 rowsaffected (0.11 sec)
mysql> showbinary logs;
+------------------+-----------+
| Log_name        | File_size |
+------------------+-----------+
| mysql-bin.000007|      150 |
| mysql-bin.000008|      150 |
| mysql-bin.000009|      150 |
| mysql-bin.000010|      150 |
| mysql-bin.000011|      150 |
| mysql-bin.000012|      150 |
| mysql-bin.000013|      150 |
| mysql-bin.000014|      150 |
| mysql-bin.000015|      150 |
| mysql-bin.000016|      150 |
| mysql-bin.000017|      483 |
+------------------+-----------+
11 rows in set (0.04sec)
[root@linuxidc data]#cat mysql-bin.index
./mysql-bin.000007
./mysql-bin.000008
./mysql-bin.000009
./mysql-bin.000010
./mysql-bin.000011
./mysql-bin.000012
./mysql-bin.000013
./mysql-bin.000014
./mysql-bin.000015
./mysql-bin.000016
./mysql-bin.000017

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/2664cb88d7126d3636e3a9c8cb6894c4.html