Skip to content

Commit bd25e29

Browse files
Optimize Rows_query_log_event logging to save disk space
Summary: A separate event for trx metadata was causing an unreasonable increase in binlog size. Also, now we're not writing rows query event if there are no comments in the query and `log_only_query_comments` is enabled Reviewed By: anirbanr-fb Differential Revision: D7002217 fbshipit-source-id: 1c3ab92
1 parent 9df52ea commit bd25e29

19 files changed

+430
-253
lines changed

mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_verbose.result

+2
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,10 @@ stmt
160160
### @1=2
161161
drop table raw_binlog_rows;
162162
SET @@SESSION.BINLOG_ROWS_QUERY_LOG_EVENTS = 1;
163+
SET @@GLOBAL.LOG_ONLY_QUERY_COMMENTS = 0;
163164
CREATE TABLE t1 (a VARCHAR(50));
164165
INSERT INTO t1 VALUES ("
165166
GRANT ALL ON *.* TO 'batman'/*!*/;
166167
")|
167168
DROP TABLE t1;
169+
SET @@GLOBAL.LOG_ONLY_QUERY_COMMENTS = DEFAULT;
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
SET @@SESSION.BINLOG_ROWS_QUERY_LOG_EVENTS = 1;
2+
SET @@GLOBAL.LOG_ONLY_QUERY_COMMENTS = 0;
23
CREATE TABLE t1 (a VARCHAR(256));
34
INSERT INTO t1 VALUES ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
45
include/assert.inc [Logged query must match the one issued.]
56
DROP TABLE t1;
7+
SET @@GLOBAL.LOG_ONLY_QUERY_COMMENTS = DEFAULT;

mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_verbose.test

+2
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ drop table raw_binlog_rows;
9090
# the multi-line original statement are properly escaped to prevent from
9191
# being executed.
9292
SET @@SESSION.BINLOG_ROWS_QUERY_LOG_EVENTS = 1;
93+
SET @@GLOBAL.LOG_ONLY_QUERY_COMMENTS = 0;
9394
CREATE TABLE t1 (a VARCHAR(50));
9495
--let $binlog_start_position= query_get_value("SHOW MASTER STATUS", Position, 1)
9596

@@ -140,4 +141,5 @@ END_OF_FILE
140141

141142
# Clean up
142143
DROP TABLE t1;
144+
SET @@GLOBAL.LOG_ONLY_QUERY_COMMENTS = DEFAULT;
143145
--remove_file $TMP_FILE

mysql-test/suite/binlog/t/binlog_row_query_log_events.test

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
# Check that queries with more than 255 characters are not truncated
77
# when stored on Rows_query_log_events.
88
SET @@SESSION.BINLOG_ROWS_QUERY_LOG_EVENTS = 1;
9+
SET @@GLOBAL.LOG_ONLY_QUERY_COMMENTS = 0;
910
CREATE TABLE t1 (a VARCHAR(256));
1011

1112
--let $as= `SELECT REPEAT('a', 256)`
@@ -29,3 +30,4 @@ if (!`SELECT COUNT(*) = 0 OR VARIABLE_VALUE != 'ON' FROM INFORMATION_SCHEMA.GLOB
2930

3031
# Clean up
3132
DROP TABLE t1;
33+
SET @@GLOBAL.LOG_ONLY_QUERY_COMMENTS = DEFAULT;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Init
2+
connection master;
3+
flush logs;
4+
let $master_last_log = query_get_value("SHOW MASTER STATUS", "File", 1);
5+
eval purge binary logs to '$master_last_log';
6+
connection slave;
7+
flush logs;
8+
let $slave_last_log = query_get_value("SHOW MASTER STATUS", "File", 1);
9+
eval purge binary logs to '$slave_last_log';
10+
11+
# Generate load
12+
connection master;
13+
disable_result_log;
14+
disable_query_log;
15+
create table t1(a int auto_increment primary key) engine=innodb;
16+
# the following loop will generate 300 meta data events, 1 for each statement
17+
# the total number of meta data events will be 301, +1 for create stmt above
18+
let $iter= 10;
19+
while ($iter > 0)
20+
{
21+
begin;
22+
eval /*insert*/insert into t1 values();
23+
eval /*update*/update t1 set a= a + 1;
24+
/*delete*/delete from t1;
25+
commit;
26+
dec $iter;
27+
}
28+
enable_result_log;
29+
enable_query_log;
30+
sync_slave_with_master;
31+
32+
# Check binlogs for meta data
33+
connection master;
34+
disable_query_log;
35+
let $MYSQLD_DATADIR = `select @@datadir`;
36+
let $MYSQLD_SECURE_FILE_DIR = `select @@secure_file_priv`;
37+
exec $MYSQL_BINLOG -v -v $MYSQLD_DATADIR/master-bin.0* | grep "::TRX_META_DATA::" | sed 's/\"[0-9]*\"/ts/g' > $MYSQLD_SECURE_FILE_DIR/meta_data.dat;
38+
set sql_log_bin=0;
39+
create table test.meta_data(meta text);
40+
eval load data infile '$MYSQLD_SECURE_FILE_DIR/meta_data.dat' into table test.meta_data;
41+
select meta, count(*) from test.meta_data group by meta;
42+
drop table test.meta_data;
43+
set sql_log_bin=1;
44+
remove_file $MYSQLD_SECURE_FILE_DIR/meta_data.dat;
45+
46+
connection slave;
47+
let $MYSQLD_DATADIR = `select @@datadir`;
48+
let $MYSQLD_SECURE_FILE_DIR = `select @@secure_file_priv`;
49+
exec $MYSQL_BINLOG -v -v $MYSQLD_DATADIR/slave-bin.0* | grep "::TRX_META_DATA::" | sed 's/\"[0-9]*\"/ts/g' > $MYSQLD_SECURE_FILE_DIR/meta_data.dat;
50+
set sql_log_bin=0;
51+
create table test.meta_data(meta text);
52+
eval load data infile '$MYSQLD_SECURE_FILE_DIR/meta_data.dat' into table test.meta_data;
53+
select meta, count(*) from test.meta_data group by meta;
54+
drop table test.meta_data;
55+
set sql_log_bin=1;
56+
remove_file $MYSQLD_SECURE_FILE_DIR/meta_data.dat;
57+
enable_query_log;
58+
59+
# Cleanup
60+
connection master;
61+
drop table t1;
62+
sync_slave_with_master;

mysql-test/suite/rpl/r/binlog_db_metadata.result

+32-32
Original file line numberDiff line numberDiff line change
@@ -34,39 +34,39 @@ use test4;
3434
create table t1 (a int primary key, b char(8));
3535
insert into t1 values(1, 'a');
3636
insert into t1 values(2, 'b');
37-
# /*::TRX_META_DATA::{"timestamps":[ts]}*/
38-
# /*::TRX_META_DATA::{"timestamps":[ts]}*/
39-
# /*::TRX_META_DATA::{"timestamps":[ts]}*/
40-
# /*::TRX_META_DATA::{"timestamps":[ts],"shard":"test2_shard","replicaset":"test2_replicaset"}*/
41-
# /*::TRX_META_DATA::{"timestamps":[ts],"shard":"test2_shard","replicaset":"test2_replicaset"}*/
42-
# /*::TRX_META_DATA::{"timestamps":[ts],"shard":"test2_shard","replicaset":"test2_replicaset"}*/
43-
# /*::TRX_META_DATA::{"timestamps":[ts],"shard":"test3_shard","replicaset":"test3_replicaset"}*/
44-
# /*::TRX_META_DATA::{"timestamps":[ts],"shard":"test3_shard","replicaset":"test3_replicaset"}*/
45-
# /*::TRX_META_DATA::{"timestamps":[ts],"shard":"test3_shard","replicaset":"test3_replicaset"}*/
46-
# /*::TRX_META_DATA::{"timestamps":[ts],"shard":"test3_shard_updated","replicaset":"test3_replicaset_updated"}*/
47-
# /*::TRX_META_DATA::{"timestamps":[ts],"shard":"test3_shard_updated","replicaset":"test3_replicaset_updated"}*/
48-
# /*::TRX_META_DATA::{"timestamps":[ts],"shard":"test3_shard_updated","replicaset":"test3_replicaset_updated"}*/
49-
# /*::TRX_META_DATA::{"timestamps":[ts],"shard":"test3_shard_updated","replicaset":"test3_replicaset_updated"}*/
50-
# /*::TRX_META_DATA::{"timestamps":[ts],"shard":"newly_added_shard_for_test4","replicaset":"new_replicaset_for_test4"}*/
51-
# /*::TRX_META_DATA::{"timestamps":[ts],"shard":"newly_added_shard_for_test4","replicaset":"new_replicaset_for_test4"}*/
52-
# /*::TRX_META_DATA::{"timestamps":[ts],"shard":"newly_added_shard_for_test4","replicaset":"new_replicaset_for_test4"}*/
37+
# /*::TRX_META_DATA::{"ts":[ts]}*/
38+
# /*::TRX_META_DATA::{"ts":[ts]}*/
39+
# /*::TRX_META_DATA::{"ts":[ts]}*/
40+
# /*::TRX_META_DATA::{"ts":[ts],"shard":"test2_shard","replicaset":"test2_replicaset"}*/
41+
# /*::TRX_META_DATA::{"ts":[ts],"shard":"test2_shard","replicaset":"test2_replicaset"}*/
42+
# /*::TRX_META_DATA::{"ts":[ts],"shard":"test2_shard","replicaset":"test2_replicaset"}*/
43+
# /*::TRX_META_DATA::{"ts":[ts],"shard":"test3_shard","replicaset":"test3_replicaset"}*/
44+
# /*::TRX_META_DATA::{"ts":[ts],"shard":"test3_shard","replicaset":"test3_replicaset"}*/
45+
# /*::TRX_META_DATA::{"ts":[ts],"shard":"test3_shard","replicaset":"test3_replicaset"}*/
46+
# /*::TRX_META_DATA::{"ts":[ts],"shard":"test3_shard_updated","replicaset":"test3_replicaset_updated"}*/
47+
# /*::TRX_META_DATA::{"ts":[ts],"shard":"test3_shard_updated","replicaset":"test3_replicaset_updated"}*/
48+
# /*::TRX_META_DATA::{"ts":[ts],"shard":"test3_shard_updated","replicaset":"test3_replicaset_updated"}*/
49+
# /*::TRX_META_DATA::{"ts":[ts],"shard":"test3_shard_updated","replicaset":"test3_replicaset_updated"}*/
50+
# /*::TRX_META_DATA::{"ts":[ts],"shard":"newly_added_shard_for_test4","replicaset":"new_replicaset_for_test4"}*/
51+
# /*::TRX_META_DATA::{"ts":[ts],"shard":"newly_added_shard_for_test4","replicaset":"new_replicaset_for_test4"}*/
52+
# /*::TRX_META_DATA::{"ts":[ts],"shard":"newly_added_shard_for_test4","replicaset":"new_replicaset_for_test4"}*/
5353
include/sync_slave_sql_with_master.inc
54-
# /*::TRX_META_DATA::{"timestamps":[ts,ts]}*/
55-
# /*::TRX_META_DATA::{"timestamps":[ts,ts]}*/
56-
# /*::TRX_META_DATA::{"timestamps":[ts,ts]}*/
57-
# /*::TRX_META_DATA::{"shard":"test2_shard","replicaset":"test2_replicaset","timestamps":[ts,ts]}*/
58-
# /*::TRX_META_DATA::{"shard":"test2_shard","replicaset":"test2_replicaset","timestamps":[ts,ts]}*/
59-
# /*::TRX_META_DATA::{"shard":"test2_shard","replicaset":"test2_replicaset","timestamps":[ts,ts]}*/
60-
# /*::TRX_META_DATA::{"shard":"test3_shard","replicaset":"test3_replicaset","timestamps":[ts,ts]}*/
61-
# /*::TRX_META_DATA::{"shard":"test3_shard","replicaset":"test3_replicaset","timestamps":[ts,ts]}*/
62-
# /*::TRX_META_DATA::{"shard":"test3_shard","replicaset":"test3_replicaset","timestamps":[ts,ts]}*/
63-
# /*::TRX_META_DATA::{"shard":"test3_shard_updated","replicaset":"test3_replicaset_updated","timestamps":[ts,ts]}*/
64-
# /*::TRX_META_DATA::{"shard":"test3_shard_updated","replicaset":"test3_replicaset_updated","timestamps":[ts,ts]}*/
65-
# /*::TRX_META_DATA::{"shard":"test3_shard_updated","replicaset":"test3_replicaset_updated","timestamps":[ts,ts]}*/
66-
# /*::TRX_META_DATA::{"shard":"test3_shard_updated","replicaset":"test3_replicaset_updated","timestamps":[ts,ts]}*/
67-
# /*::TRX_META_DATA::{"shard":"newly_added_shard_for_test4","replicaset":"new_replicaset_for_test4","timestamps":[ts,ts]}*/
68-
# /*::TRX_META_DATA::{"shard":"newly_added_shard_for_test4","replicaset":"new_replicaset_for_test4","timestamps":[ts,ts]}*/
69-
# /*::TRX_META_DATA::{"shard":"newly_added_shard_for_test4","replicaset":"new_replicaset_for_test4","timestamps":[ts,ts]}*/
54+
# /*::TRX_META_DATA::{"ts":[ts,ts]}*/
55+
# /*::TRX_META_DATA::{"ts":[ts,ts]}*/
56+
# /*::TRX_META_DATA::{"ts":[ts,ts]}*/
57+
# /*::TRX_META_DATA::{"shard":"test2_shard","replicaset":"test2_replicaset","ts":[ts,ts]}*/
58+
# /*::TRX_META_DATA::{"shard":"test2_shard","replicaset":"test2_replicaset","ts":[ts,ts]}*/
59+
# /*::TRX_META_DATA::{"shard":"test2_shard","replicaset":"test2_replicaset","ts":[ts,ts]}*/
60+
# /*::TRX_META_DATA::{"shard":"test3_shard","replicaset":"test3_replicaset","ts":[ts,ts]}*/
61+
# /*::TRX_META_DATA::{"shard":"test3_shard","replicaset":"test3_replicaset","ts":[ts,ts]}*/
62+
# /*::TRX_META_DATA::{"shard":"test3_shard","replicaset":"test3_replicaset","ts":[ts,ts]}*/
63+
# /*::TRX_META_DATA::{"shard":"test3_shard_updated","replicaset":"test3_replicaset_updated","ts":[ts,ts]}*/
64+
# /*::TRX_META_DATA::{"shard":"test3_shard_updated","replicaset":"test3_replicaset_updated","ts":[ts,ts]}*/
65+
# /*::TRX_META_DATA::{"shard":"test3_shard_updated","replicaset":"test3_replicaset_updated","ts":[ts,ts]}*/
66+
# /*::TRX_META_DATA::{"shard":"test3_shard_updated","replicaset":"test3_replicaset_updated","ts":[ts,ts]}*/
67+
# /*::TRX_META_DATA::{"shard":"newly_added_shard_for_test4","replicaset":"new_replicaset_for_test4","ts":[ts,ts]}*/
68+
# /*::TRX_META_DATA::{"shard":"newly_added_shard_for_test4","replicaset":"new_replicaset_for_test4","ts":[ts,ts]}*/
69+
# /*::TRX_META_DATA::{"shard":"newly_added_shard_for_test4","replicaset":"new_replicaset_for_test4","ts":[ts,ts]}*/
7070
use test;
7171
drop table if exists t1;
7272
drop database if exists test2;

mysql-test/suite/rpl/r/binlog_trx_meta_data.result

+8-6
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,17 @@ Warnings:
33
Note #### Sending passwords in plain text without SSL/TLS is extremely insecure.
44
Note #### Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
55
[connection master]
6-
set @save.binlog_trx_meta_data= @@global.binlog_trx_meta_data;
76
set @@global.binlog_trx_meta_data= true;
8-
set @save.binlog_trx_meta_data= @@global.binlog_trx_meta_data;
97
set @@global.binlog_trx_meta_data= true;
8+
flush logs;
9+
purge binary logs to 'master-bin.000002';
10+
flush logs;
11+
purge binary logs to 'slave-bin.000002';
1012
meta count(*)
11-
# /*::TRX_META_DATA::{"timestamps":[ts]}*/ 301
13+
# /*::TRX_META_DATA::{"ts":[ts]}*/ 31
1214
meta count(*)
13-
# /*::TRX_META_DATA::{"timestamps":[ts,ts]}*/ 301
15+
# /*::TRX_META_DATA::{"ts":[ts,ts]}*/ 31
1416
drop table t1;
15-
set @@global.binlog_trx_meta_data= @save.binlog_trx_meta_data;
16-
set @@global.binlog_trx_meta_data= @save.binlog_trx_meta_data;
17+
set @@global.binlog_trx_meta_data= default;
18+
set @@global.binlog_trx_meta_data= default;
1719
include/rpl_end.inc
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
include/master-slave.inc
2+
Warnings:
3+
Note #### Sending passwords in plain text without SSL/TLS is extremely insecure.
4+
Note #### Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
5+
[connection master]
6+
set @@global.binlog_trx_meta_data= true;
7+
set @@global.binlog_trx_meta_data= true;
8+
set @@session.binlog_rows_query_log_events= OFF;
9+
set @@global.binlog_rows_query_log_events= OFF;
10+
include/stop_slave.inc
11+
include/start_slave.inc
12+
flush logs;
13+
purge binary logs to 'master-bin.000002';
14+
flush logs;
15+
purge binary logs to 'slave-bin.000002';
16+
meta count(*)
17+
# /*::TRX_META_DATA::{"ts":[ts]}*/ 31
18+
meta count(*)
19+
# /*::TRX_META_DATA::{"ts":[ts,ts]}*/ 31
20+
drop table t1;
21+
set @@session.binlog_rows_query_log_events= ON;
22+
set @@global.log_only_query_comments= OFF;
23+
set @@global.binlog_rows_query_log_events= ON;
24+
set @@global.log_only_query_comments= OFF;
25+
include/stop_slave.inc
26+
include/start_slave.inc
27+
flush logs;
28+
purge binary logs to 'master-bin.000003';
29+
flush logs;
30+
purge binary logs to 'slave-bin.000003';
31+
meta count(*)
32+
# /*::TRX_META_DATA::{"ts":[ts]}*/ 1
33+
# /*::TRX_META_DATA::{"ts":[ts]}*//*delete*/delete from t1 10
34+
# /*::TRX_META_DATA::{"ts":[ts]}*//*insert*/insert into t1 values() 10
35+
# /*::TRX_META_DATA::{"ts":[ts]}*//*update*/update t1 set a= a + 1 10
36+
meta count(*)
37+
# /*::TRX_META_DATA::{"ts":[ts,ts]}*/ 1
38+
# /*::TRX_META_DATA::{"ts":[ts,ts]}*//*delete*/delete from t1 10
39+
# /*::TRX_META_DATA::{"ts":[ts,ts]}*//*insert*/insert into t1 values() 10
40+
# /*::TRX_META_DATA::{"ts":[ts,ts]}*//*update*/update t1 set a= a + 1 10
41+
drop table t1;
42+
set @@session.binlog_rows_query_log_events= ON;
43+
set @@global.log_only_query_comments= ON;
44+
set @@global.binlog_rows_query_log_events= ON;
45+
set @@global.log_only_query_comments= ON;
46+
include/stop_slave.inc
47+
include/start_slave.inc
48+
flush logs;
49+
purge binary logs to 'master-bin.000004';
50+
flush logs;
51+
purge binary logs to 'slave-bin.000004';
52+
meta count(*)
53+
# /*::TRX_META_DATA::{"ts":[ts]}*/ 1
54+
# /*::TRX_META_DATA::{"ts":[ts]}*//*delete*/ 10
55+
# /*::TRX_META_DATA::{"ts":[ts]}*//*insert*/ 10
56+
# /*::TRX_META_DATA::{"ts":[ts]}*//*update*/ 10
57+
meta count(*)
58+
# /*::TRX_META_DATA::{"ts":[ts,ts]}*/ 1
59+
# /*::TRX_META_DATA::{"ts":[ts,ts]}*//*delete*/ 10
60+
# /*::TRX_META_DATA::{"ts":[ts,ts]}*//*insert*/ 10
61+
# /*::TRX_META_DATA::{"ts":[ts,ts]}*//*update*/ 10
62+
drop table t1;
63+
set @@global.binlog_trx_meta_data= default;
64+
set @@session.binlog_rows_query_log_events= default;
65+
set @@global.log_only_query_comments= default;
66+
set @@global.binlog_trx_meta_data= default;
67+
set @@global.binlog_rows_query_log_events= default;
68+
set @@global.log_only_query_comments= default;
69+
include/rpl_end.inc

mysql-test/suite/rpl/r/rpl_log_only_query_comments.result

+4-10
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,14 @@ insert into t1 values(1);
99
/*Comment test */ insert into t1 values(2);
1010
/*Comment test */ /* Comment test*/ insert into t1 values(4);
1111
drop table t1;
12-
#010909 4:46:40 server id 1 end_log_pos 325 Rows_query
13-
# insert into t1 values(1)
14-
--
15-
#010909 4:46:40 server id 1 end_log_pos 578 Rows_query
12+
#010909 4:46:40 server id 1 end_log_pos 534 Rows_query
1613
# /*Comment test */
1714
--
18-
#010909 4:46:40 server id 1 end_log_pos 851 Rows_query
15+
#010909 4:46:40 server id 1 end_log_pos 807 Rows_query
1916
# /*Comment test */ /* Comment test*/
20-
#010909 4:46:40 server id 1 end_log_pos 316 Rows_query
21-
# insert into t1 values(1)
22-
--
23-
#010909 4:46:40 server id 1 end_log_pos 551 Rows_query
17+
#010909 4:46:40 server id 1 end_log_pos 507 Rows_query
2418
# /*Comment test */
2519
--
26-
#010909 4:46:40 server id 1 end_log_pos 806 Rows_query
20+
#010909 4:46:40 server id 1 end_log_pos 762 Rows_query
2721
# /*Comment test */ /* Comment test*/
2822
include/rpl_end.inc
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,18 @@
11
source include/master-slave.inc;
2+
source include/not_binlog_format_row.inc; # we have binlog_trx_meta_data_rbr.test for this
23

34
# Enable trx meta data
45
connection master;
5-
set @save.binlog_trx_meta_data= @@global.binlog_trx_meta_data;
66
set @@global.binlog_trx_meta_data= true;
7-
87
connection slave;
9-
set @save.binlog_trx_meta_data= @@global.binlog_trx_meta_data;
108
set @@global.binlog_trx_meta_data= true;
119

12-
# Generate load
13-
connection master;
14-
disable_result_log;
15-
disable_query_log;
16-
create table t1(a int) engine=innodb;
17-
# the following loop will generate 300 meta data events, 1 for each statement
18-
# the total number of meta data events will be 301, +1 for create stmt above
19-
let $iter= 100;
20-
while ($iter > 0)
21-
{
22-
begin;
23-
eval insert into t1 values($iter);
24-
eval update t1 set a= $iter + 1;
25-
delete from t1;
26-
commit;
27-
dec $iter;
28-
}
29-
enable_result_log;
30-
enable_query_log;
31-
sync_slave_with_master;
32-
33-
# Check binlogs for meta data
34-
connection master;
35-
disable_query_log;
36-
let $MYSQLD_DATADIR = `select @@datadir`;
37-
let $MYSQLD_SECURE_FILE_DIR = `select @@secure_file_priv`;
38-
exec $MYSQL_BINLOG -v -v $MYSQLD_DATADIR/master-bin.0* | grep "::TRX_META_DATA::" | sed 's/\"[0-9]*\"/ts/g' > $MYSQLD_SECURE_FILE_DIR/meta_data.dat;
39-
set sql_log_bin=0;
40-
create table test.meta_data(meta text);
41-
eval load data infile '$MYSQLD_SECURE_FILE_DIR/meta_data.dat' into table test.meta_data;
42-
select meta, count(*) from test.meta_data;
43-
drop table test.meta_data;
44-
set sql_log_bin=1;
45-
remove_file $MYSQLD_SECURE_FILE_DIR/meta_data.dat;
46-
47-
connection slave;
48-
let $MYSQLD_DATADIR = `select @@datadir`;
49-
let $MYSQLD_SECURE_FILE_DIR = `select @@secure_file_priv`;
50-
exec $MYSQL_BINLOG -v -v $MYSQLD_DATADIR/slave-bin.0* | grep "::TRX_META_DATA::" | sed 's/\"[0-9]*\"/ts/g' > $MYSQLD_SECURE_FILE_DIR/meta_data.dat;
51-
set sql_log_bin=0;
52-
create table test.meta_data(meta text);
53-
eval load data infile '$MYSQLD_SECURE_FILE_DIR/meta_data.dat' into table test.meta_data;
54-
select meta, count(*) from test.meta_data;
55-
drop table test.meta_data;
56-
set sql_log_bin=1;
57-
remove_file $MYSQLD_SECURE_FILE_DIR/meta_data.dat;
58-
enable_query_log;
10+
source suite/rpl/include/binlog_trx_meta_data.inc;
5911

6012
# Cleanup
6113
connection master;
62-
drop table t1;
63-
sync_slave_with_master;
14+
set @@global.binlog_trx_meta_data= default;
6415
connection slave;
65-
set @@global.binlog_trx_meta_data= @save.binlog_trx_meta_data;
66-
connection master;
67-
set @@global.binlog_trx_meta_data= @save.binlog_trx_meta_data;
16+
set @@global.binlog_trx_meta_data= default;
6817

6918
source include/rpl_end.inc;

0 commit comments

Comments
 (0)