mysql命令之mysqldump详解

一,功能

mysqldump:用来解析binlog日志。

binlog日志:用来记录对数据库进行有更新(或潜在更新,如delete语句,删除0条记录)的事件,不记录select,show等查询语句
形如以下log-files:

 mysql_bin.000001  
 mysql_bin.000002
 mysql_bin.000003
 mysql_bin.000004

二,用法

 mysqlbinlog [options] log-files
[root@www data]# mysqlbinlog mysql_bin.000027
/*!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


#180208 14:39:15 server id 1  end_log_pos 107   Start: binlog v 4, server v 5.5.32-log created 180208 14:39:15
# Warning: this binlog is either in use or was not closed properly.
BINLOG '
k/B7Wg8BAAAAZwAAAGsAAAABAAQANS41LjMyLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAVAAEGggAAAAICAgCAA==
'/*!*/;
------------------------------------------------------------------

**这是最初的binlog日志,没有写入任何数据,以后对数据库的更新会从这里写入**

-------------------------------------------------------------------
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

三, 常用options

为方便介绍,先创建数据库
登录:

[root@www data]# mysql -uroot -pgzn

创建数据库

mysql> create database abc;
Query OK, 1 row affected (0.00 sec)

mysql> create database xyz;
Query OK, 1 row affected (0.00 sec)

再次查看

 mysqlbinlog [options] log-files
[root@www data]# mysqlbinlog mysql_bin.000027
/*!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
#180208 14:39:15 server id 1  end_log_pos 107   Start: binlog v 4, server v 5.5.32-log created 180208 14:39:15
# Warning: this binlog is either in use or was not closed properly.
BINLOG '
k/B7Wg8BAAAAZwAAAGsAAAABAAQANS41LjMyLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAVAAEGggAAAAICAgCAA==
'/*!*/;
——————————————————————————————————————————————————————————————————-
以上不用看,每个刚创建的binlog日志都有
                    《事件create database abc》
# at 107  (可以理解为create database abc在binlog文件中的起始位置)
#180208 14:49:16(时间:18年2月8号) 
server id 1 
end_log_pos 188 (可以理解为事件create database abc 在文件中的结束位置,同时也是下一事件的起始位置,  
Query   thread_id=3     exec_time=0     error_code=0
SET TIMESTAMP=1518072556/*!*/;

*************************************************************************************************
关于mysql数据库的若干信息,有的可以在my.cnf中配置,是全局数据库的设置
SET @@session.pseudo_thread_id=3/*!*/;                                                          *  
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0,                               *
@@session.unique_checks=1, @@session.autocommit=1/*!*/;                                         *
SET @@session.sql_mode=0/*!*/;                                                                  *
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;*              *
/*!\C utf8 *//*!*/;                                                                             *
SET @@session.character_set_client=33,@@session.collation_connection=33,                        *
@@session.collation_server=33/*!*/;                                                             *                            
SET @@session.lc_time_names=0/*!*/;                                                             *
SET @@session.collation_database=DEFAULT/*!*/;                                                  *
*************************************************************************************************

create database abc

/*!*/;
               《事件create databade xyz》
# at 188
#180208 14:49:27 server id 1  end_log_pos 269   Query   thread_id=3     exec_time=0     error_code=0
SET TIMESTAMP=1518072567/*!*/;

create database xyz

/*!*/;
以下不用看
————————————————————————————————————————————————————————————————————
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

-d db_name : 从binlog日志中提取和指定库相关的sql语句

[root@www data]# mysqlbinlog -d abc mysql_bin.000027    
/*!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
#180208 14:39:15 server id 1  end_log_pos 107   Start: binlog v 4, server v 5.5.32-log created 180208 14:39:15
# Warning: this binlog is either in use or was not closed properly.
BINLOG '
k/B7Wg8BAAAAZwAAAGsAAAABAAQANS41LjMyLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAVAAEGggAAAAICAgCAA==
'/*!*/;
# at 107
#180208 14:49:16 server id 1  end_log_pos 188   Query   thread_id=3     exec_time=0     error_code=0
SET TIMESTAMP=1518072556/*!*/;
SET @@session.pseudo_thread_id=3/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=0/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
————————————————————-----------------
create database abc     看这里
————————————————————------------------
/*!*/;
# at 188
————————————————————----------------
关于 数据库xyz的语句没有提取   和这里
——————————————————————---------------
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

指定时间提取sql,
–start-datetime=’time’;
–stop-datatime=’time’ ;
time格式:2018-02-08 14:49:16

指定位置提取sql,
–start-position= pos ;
–stop-position= pos ;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明月几时有666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值