With deployment step on, the master does binlog correctly. All my tests show this works fine.
-- Jeremy Tinley <email address hidden>
> On Mar 28, 2017, at 8:38 PM, Laurynas Biveinis <email address hidden> wrote: > > The startup variable setting issue needs to be fixed too, but the one I > was talking about before is master with gtid_deployment_step=ON not > binlogging its workload, which seems to be related to your latter > comment. > > -- > You received this bug notification because you are subscribed to the bug > report. > https://bugs.launchpad.net/bugs/1516919 > > Title: > online upgrade GTID cause binlog damage in high write QPS situation > > Status in Percona Server: > Invalid > Status in Percona Server 5.5 series: > Invalid > Status in Percona Server 5.6 series: > Triaged > Status in Percona Server 5.7 series: > Invalid > > Bug description: > percona verson: > $ rpm -qa |grep -i percona > Percona-Server-client-56-5.6.27-rel75.0.el6.x86_64 > Percona-Server-tokudb-56-5.6.27-rel75.0.el6.x86_64 > Percona-Server-devel-56-5.6.27-rel75.0.el6.x86_64 > Percona-Server-shared-56-5.6.27-rel75.0.el6.x86_64 > Percona-Server-server-56-5.6.27-rel75.0.el6.x86_64 > Percona-Server-test-56-5.6.27-rel75.0.el6.x86_64 > Percona-Server-56-debuginfo-5.6.27-rel75.0.el6.x86_64 > > OS: > $ cat /etc/redhat-release > CentOS release 6.6 (Final) > $ uname -a > Linux 2.6.32-504.16.2.el6.x86_64 #1 SMP Wed Apr 22 06:48:29 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux > > > Server: > aws c4.4xlarge with 3.4TB gp2 ssd volume > > > Runing 2 mysql instance in one server 3306(master)<-3307(slave) > > Myql config file : > ------------------------------------------------------------------------------------------------------------------------------------------ > [mysqld_multi] > mysqld = /usr/bin/mysqld_safe > mysqladmin = /usr/bin/mysqladmin > > [mysqld3306] > socket = /data/mysqldata/mysql3306/mysql3306.sock > port = 3306 > pid-file = /data/mysqldata/mysql3306/bjzw3306.pid > datadir = /data/mysqldata/mysql3306 > user = mysql > server-id = 1523306 > > > gtid_mode = ON > gtid_deployment_step = ON > log_slave_updates = 1 > enforce_gtid_consistency = 1 > > > log_error = /data/mysqllog/mysql3306/yxmysql-error.log > log_bin = /data/mysqllog/mysql3306/yxmysql-bin.log > relay_log = /data/mysqllog/mysql3306/yxmysql-relay-bin.log > slow_query_log_file=/data/mysqllog/mysql3306/slow-queries.log > > log_bin_trust_function_creators = 1 > > thread_handling = pool-of-threads > thread_pool_max_threads = 100000 > thread_pool_size = 22 > > slave-skip-errors=1062 > slave_compressed_protocol=ON > > log-slave-updates > skip-slave-start > > innodb_file_per_table = 1 > innodb_file_format=BARRACUDA > > innodb_thread_concurrency = 0 > thread_cache_size = 32 > > innodb_io_capacity = 20000 > innodb_read_io_threads = 8 > innodb_write_io_threads = 8 > > innodb_log_file_size = 56M > innodb_log_files_in_group = 3 > innodb_log_buffer_size = 8M > > innodb_buffer_pool_size = 56M > innodb_buffer_pool_instances = 2 > > query_cache_type = OFF > > long_query_time = 1 > slow_query_log = ON > log-queries-not-using-indexes > log-slow-admin-statements > max_connect_errors = 200 > max_connections = 10000 > character_set_server = utf8mb4 > character-set-client-handshake = FALSE > collation-server = utf8mb4_unicode_ci > init_connect='SET NAMES utf8mb4' > table_open_cache=10240 > open_files_limit=20480 > innodb_flush_log_at_trx_commit=0 > innodb_open_files=10000 > expire_logs_days = 7 > > --------------------------------------------------END------------------------------------------------------------------------------------- > 3307's conf is same with 3306 with diffrent server-id and port number > > > How to replay: > 1、set up mysql cluster as 3306(master)<--3307(slave) > 2、create table and user for test in 3306 > create user test@127.0.0.1 identified by '123456'; > grant all on test.* to test@127.0.0.1; > use test; > create table seq_test( > iid bigint(20) auto_increment, > dt1 timestamp, > dt2 timestamp default CURRENT_TIMESTAMP, > primary key(iid)); > > 3、create a script to load data into mysql > $ cat /tmp/insert.py > #!/usr/bin/python > # -*- coding:utf-8 -*- > > import MySQLdb > import datetime > > db = MySQLdb.connect('127.0.0.1','test','123456', '', 3306) > cursor = db.cursor() > cnt = 0 > while True: > cursor.execute('''insert into test.seq_test(dt1) values('%s');''' %(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))) > cnt = cnt + 1 > if cnt % 10000 == 0: > print cnt > db.commit() > > 4、run 3 load data script instance to load data > python /tmp/insert.py & > python /tmp/insert.py & > python /tmp/insert.py & > > now the wirte qps nearly 30000 > > 5、turn off gtid_deployment_step in master (3306) > SET GLOBAL gtid_deployment_step = OFF; > > 6、execute "show slave status\G;" in 3307 shows: > Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master; the first event 'yxmysql-bin.000001' at 151, the last event read from '/data/mysqllog/mysql3306/yxmysql-bin.000001' at 464889689, the last byte read from '/data/mysqllog/mysql3306/yxmysql-bin.000001' at 464889708.' > > this because the binlog file in the master is damaged while turn GTID > ON > > I have tried 3 times ,the first time is ok,but the last 2 times are > meet binlog damage problem. > > To manage notifications about this bug go to: > https://bugs.launchpad.net/percona-server/+bug/1516919/+subscriptions
With deployment step on, the master does binlog correctly. All my tests show this works fine.
--
Jeremy Tinley
<email address hidden>
> On Mar 28, 2017, at 8:38 PM, Laurynas Biveinis <email address hidden> wrote: _step=ON not /bugs.launchpad .net/bugs/ 1516919 Server- client- 56-5.6. 27-rel75. 0.el6.x86_ 64 Server- tokudb- 56-5.6. 27-rel75. 0.el6.x86_ 64 Server- devel-56- 5.6.27- rel75.0. el6.x86_ 64 Server- shared- 56-5.6. 27-rel75. 0.el6.x86_ 64 Server- server- 56-5.6. 27-rel75. 0.el6.x86_ 64 Server- test-56- 5.6.27- rel75.0. el6.x86_ 64 Server- 56-debuginfo- 5.6.27- rel75.0. el6.x86_ 64 504.16. 2.el6.x86_ 64 #1 SMP Wed Apr 22 06:48:29 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux <-3307( slave) ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ----- mysqld_ safe /mysql3306/ mysql3306. sock /mysql3306/ bjzw3306. pid /mysql3306 _step = ON gtid_consistenc y = 1 mysql3306/ yxmysql- error.log mysql3306/ yxmysql- bin.log mysql3306/ yxmysql- relay-bin. log log_file= /data/mysqllog/ mysql3306/ slow-queries. log trust_function_ creators = 1 pool_max_ threads = 100000 errors= 1062 d_protocol= ON file_per_ table = 1 file_format= BARRACUDA thread_ concurrency = 0 read_io_ threads = 8 write_io_ threads = 8 log_file_ size = 56M log_files_ in_group = 3 log_buffer_ size = 8M buffer_ pool_size = 56M buffer_ pool_instances = 2 not-using- indexes admin-statement s set_server = utf8mb4 set-client- handshake = FALSE cache=10240 limit=20480 flush_log_ at_trx_ commit= 0 open_files= 10000 ------- ------- ------- ------- ------- ------- -END--- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ----- <--3307( slave) connect( '127.0. 0.1','test' ,'123456' , '', 3306) execute( '''insert into test.seq_test(dt1) values('%s');''' %(datetime. datetime. now().strftime( '%Y-%m- %d %H:%M:%S'))) _step in master (3306) _step = OFF; bin.000001' at 151, the last event read from '/data/ mysqllog/ mysql3306/ yxmysql- bin.000001' at 464889689, the last byte read from '/data/ mysqllog/ mysql3306/ yxmysql- bin.000001' at 464889708.' /bugs.launchpad .net/percona- server/ +bug/1516919/ +subscriptions
>
> The startup variable setting issue needs to be fixed too, but the one I
> was talking about before is master with gtid_deployment
> binlogging its workload, which seems to be related to your latter
> comment.
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https:/
>
> Title:
> online upgrade GTID cause binlog damage in high write QPS situation
>
> Status in Percona Server:
> Invalid
> Status in Percona Server 5.5 series:
> Invalid
> Status in Percona Server 5.6 series:
> Triaged
> Status in Percona Server 5.7 series:
> Invalid
>
> Bug description:
> percona verson:
> $ rpm -qa |grep -i percona
> Percona-
> Percona-
> Percona-
> Percona-
> Percona-
> Percona-
> Percona-
>
> OS:
> $ cat /etc/redhat-release
> CentOS release 6.6 (Final)
> $ uname -a
> Linux 2.6.32-
>
>
> Server:
> aws c4.4xlarge with 3.4TB gp2 ssd volume
>
>
> Runing 2 mysql instance in one server 3306(master)
>
> Myql config file :
> -------
> [mysqld_multi]
> mysqld = /usr/bin/
> mysqladmin = /usr/bin/mysqladmin
>
> [mysqld3306]
> socket = /data/mysqldata
> port = 3306
> pid-file = /data/mysqldata
> datadir = /data/mysqldata
> user = mysql
> server-id = 1523306
>
>
> gtid_mode = ON
> gtid_deployment
> log_slave_updates = 1
> enforce_
>
>
> log_error = /data/mysqllog/
> log_bin = /data/mysqllog/
> relay_log = /data/mysqllog/
> slow_query_
>
> log_bin_
>
> thread_handling = pool-of-threads
> thread_
> thread_pool_size = 22
>
> slave-skip-
> slave_compresse
>
> log-slave-updates
> skip-slave-start
>
> innodb_
> innodb_
>
> innodb_
> thread_cache_size = 32
>
> innodb_io_capacity = 20000
> innodb_
> innodb_
>
> innodb_
> innodb_
> innodb_
>
> innodb_
> innodb_
>
> query_cache_type = OFF
>
> long_query_time = 1
> slow_query_log = ON
> log-queries-
> log-slow-
> max_connect_errors = 200
> max_connections = 10000
> character_
> character-
> collation-server = utf8mb4_unicode_ci
> init_connect='SET NAMES utf8mb4'
> table_open_
> open_files_
> innodb_
> innodb_
> expire_logs_days = 7
>
> -------
> 3307's conf is same with 3306 with diffrent server-id and port number
>
>
> How to replay:
> 1、set up mysql cluster as 3306(master)
> 2、create table and user for test in 3306
> create user test@127.0.0.1 identified by '123456';
> grant all on test.* to test@127.0.0.1;
> use test;
> create table seq_test(
> iid bigint(20) auto_increment,
> dt1 timestamp,
> dt2 timestamp default CURRENT_TIMESTAMP,
> primary key(iid));
>
> 3、create a script to load data into mysql
> $ cat /tmp/insert.py
> #!/usr/bin/python
> # -*- coding:utf-8 -*-
>
> import MySQLdb
> import datetime
>
> db = MySQLdb.
> cursor = db.cursor()
> cnt = 0
> while True:
> cursor.
> cnt = cnt + 1
> if cnt % 10000 == 0:
> print cnt
> db.commit()
>
> 4、run 3 load data script instance to load data
> python /tmp/insert.py &
> python /tmp/insert.py &
> python /tmp/insert.py &
>
> now the wirte qps nearly 30000
>
> 5、turn off gtid_deployment
> SET GLOBAL gtid_deployment
>
> 6、execute "show slave status\G;" in 3307 shows:
> Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master; the first event 'yxmysql-
>
> this because the binlog file in the master is damaged while turn GTID
> ON
>
> I have tried 3 times ,the first time is ok,but the last 2 times are
> meet binlog damage problem.
>
> To manage notifications about this bug go to:
> https:/