BINLOG记录内容
二进制日志包含了所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句。语句以“事件”的形式保存,它描述数据更改文件位置和格式。当用--log-bin[=file_name]选项启动时,mysqld写入包含所有更新数据的SQL命令的日志文件。如果未给出file_name值, 默认名为-bin后面所跟的主机名。如果给出了文件名,但没有包含路径,则文件被写入数据目录。
查看binlog内容:
shell> mysqlbinlog log-file
删除日志:
RESET MASTER;//删除所有binlog日志,新日志编号从头开始
PURGE MASTER LOGS TO 'mysql-bin.007';//删除mysql-bin.007之前所有日志
PURGE MASTER LOGS BEFORE '2014-08-17 08:55:27';// 删除2014-08-17 08:55:27之前产生的所有日志
相关选项:
1. --binlog-do-db=db_name
告诉主服务器,如果当前的数据库 ( 即USE选定的数据库)是db_name,应将更新
记录到二进制日志中。其它所有没有明显指定的数据库被忽略;
2. --binlog-ignore-db=db_name
告诉主服务器,如果当前的数据库 ( 即USE选定的数据库)是db_name,不应将更
新保存到二进制日志中要想记录或忽视多个数据库,使用多个选项,为每个数据库指定相应的选项;
3. -innodb-safe-binlog
使用此选项和sync_binlog=N(每写N次日志同步磁盘)全局变量将使得事务能够记录的更加安全;
4.具有SUPER权限的客户端可以通过 SET SQL_LOG_BIN=0语句禁止将自己的语句
记入二进制记录
MySQL的binlog是很关键的,有必要对其制定备份和恢复策略。在备份的过程中,要考虑怎样才能保证日志不丢失是很重要的,比如主从模式下binlog备份。
该贴由hui.chen转至本版2014-11-5 16:18:26
该贴由hui.chen转至本版2014-11-5 16:22:20