mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Made max_relay_log_size depending on master connection.
Changed names of multi-source log files so that original suffixes are kept. include/my_sys.h: Added fn_ext2(), which returns pointer to last '.' in file name mysql-test/extra/rpl_tests/rpl_max_relay_size.test: Updated test mysql-test/suite/multi_source/info_logs-master.opt: Test with strange file names mysql-test/suite/multi_source/info_logs.result: Updated results mysql-test/suite/multi_source/info_logs.test: Changed to test with complex names to be able to verify the filename generator code mysql-test/suite/multi_source/relaylog_events.result: Updated results mysql-test/suite/multi_source/reset_slave.result: Updated results mysql-test/suite/multi_source/skip_counter.result: Updated results mysql-test/suite/multi_source/skip_counter.test: Added testing of max_relay_log_size mysql-test/suite/rpl/r/rpl_row_max_relay_size.result: Updated results mysql-test/suite/rpl/r/rpl_stm_max_relay_size.result: Updated results mysql-test/suite/sys_vars/r/max_relay_log_size_basic.result: Updated results mysql-test/suite/sys_vars/t/max_relay_log_size_basic.test: Updated results mysys/mf_fn_ext.c: Added fn_ext2(), which returns pointer to last '.' in file name sql/log.cc: Removed some wrong casts sql/log.h: Updated comment to reflect new code sql/log_event.cc: Updated DBUG_PRINT sql/mysqld.cc: Added that max_relay_log_size copies it's values from max_binlog_size sql/mysqld.h: Removed max_relay_log_size sql/rpl_mi.cc: Changed names of multi-source log files so that original suffixes are kept. sql/rpl_mi.h: Updated prototype sql/rpl_rli.cc: Updated comment to reflect new code Made max_relay_log_size depending on master connection. sql/rpl_rli.h: Made max_relay_log_size depending on master connection. sql/set_var.h: Made option global so that one can check and change min & max values (sorry Sergei) sql/sql_class.h: Made max_relay_log_size depending on master connection. sql/sql_repl.cc: Updated calls to create_signed_file_name() sql/sys_vars.cc: Made max_relay_log_size depending on master connection. Made old code more reusable sql/sys_vars.h: Changed Sys_var_multi_source_uint to ulong to be able to handle max_relay_log_size Made old code more reusable
This commit is contained in:
1
mysql-test/suite/multi_source/info_logs-master.opt
Normal file
1
mysql-test/suite/multi_source/info_logs-master.opt
Normal file
@ -0,0 +1 @@
|
||||
--relay-log=relay.bin --relay-log-info=relay.bin.info
|
@ -15,35 +15,35 @@ set default_master_connection = 'master1';
|
||||
include/wait_for_slave_to_start.inc
|
||||
#
|
||||
# List of files matching '*info*' pattern while 'master1' is running
|
||||
master.info.master1
|
||||
master-master1.info
|
||||
multi-master.info
|
||||
relay-log.info.master1
|
||||
relay.bin-master1.info
|
||||
# End of list
|
||||
#
|
||||
# Contents of multi-master.info
|
||||
master1
|
||||
# EOF
|
||||
#
|
||||
change master 'master2' to
|
||||
change master 'MASTER 2.2' to
|
||||
master_port=MYPORT_2,
|
||||
master_host='127.0.0.1',
|
||||
master_user='root';
|
||||
start slave 'master2';
|
||||
set default_master_connection = 'master2';
|
||||
start slave 'MASTER 2.2';
|
||||
set default_master_connection = 'MASTER 2.2';
|
||||
include/wait_for_slave_to_start.inc
|
||||
#
|
||||
# List of files matching '*info*' pattern
|
||||
# while 'master1' and 'master2' are running
|
||||
master.info.master1
|
||||
master.info.master2
|
||||
# while 'master1' and 'MASTER 2.2' are running
|
||||
master-master1.info
|
||||
master-master@00202@002e2.info
|
||||
multi-master.info
|
||||
relay-log.info.master1
|
||||
relay-log.info.master2
|
||||
relay.bin-master1.info
|
||||
relay.bin-master@00202@002e2.info
|
||||
# End of list
|
||||
#
|
||||
# Contents of multi-master.info
|
||||
master1
|
||||
master2
|
||||
MASTER 2.2
|
||||
# EOF
|
||||
#
|
||||
stop slave 'master1';
|
||||
@ -52,14 +52,14 @@ include/wait_for_slave_to_stop.inc
|
||||
reset slave 'master1' all;
|
||||
#
|
||||
# List of files matching '*info*' pattern
|
||||
# after 'master1' was completely reset, 'master2' still running
|
||||
master.info.master2
|
||||
# after 'master1' was completely reset, 'MASTER 2.2' still running
|
||||
master-master@00202@002e2.info
|
||||
multi-master.info
|
||||
relay-log.info.master2
|
||||
relay.bin-master@00202@002e2.info
|
||||
# End of list
|
||||
#
|
||||
# Contents of multi-master.info
|
||||
master2
|
||||
MASTER 2.2
|
||||
# EOF
|
||||
#
|
||||
set default_master_connection = '';
|
||||
@ -71,44 +71,44 @@ start slave;
|
||||
include/wait_for_slave_to_start.inc
|
||||
#
|
||||
# List of files matching '*info*' pattern
|
||||
# while 'master2' and '' are running
|
||||
# while 'MASTER 2.2' and '' are running
|
||||
master-master@00202@002e2.info
|
||||
master.info
|
||||
master.info.master2
|
||||
multi-master.info
|
||||
relay-log.info
|
||||
relay-log.info.master2
|
||||
relay.bin-master@00202@002e2.info
|
||||
relay.bin.info
|
||||
# End of list
|
||||
#
|
||||
# Contents of multi-master.info
|
||||
master2
|
||||
MASTER 2.2
|
||||
# EOF
|
||||
#
|
||||
show full slave status;
|
||||
Connection_name Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id
|
||||
Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 286 mysqld-relay-bin.000002 572 master-bin.000001 Yes Yes 0 0 286 868 None 0 No 0 No 0 0 1
|
||||
master2 Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 286 mysqld-relay-bin-master2.000002 572 master-bin.000001 Yes Yes 0 0 286 876 None 0 No 0 No 0 0 2
|
||||
Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 286 relay.000002 572 master-bin.000001 Yes Yes 0 0 286 857 None 0 No 0 No 0 0 1
|
||||
MASTER 2.2 Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 286 relay-master@00202@002e2.000002 572 master-bin.000001 Yes Yes 0 0 286 876 None 0 No 0 No 0 0 2
|
||||
show full slave status;
|
||||
Connection_name Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id
|
||||
Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 286 mysqld-relay-bin.000004 532 master-bin.000001 Yes Yes 0 0 286 828 None 0 No 0 No 0 0 1
|
||||
master2 Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 286 mysqld-relay-bin-master2.000004 532 master-bin.000001 Yes Yes 0 0 286 836 None 0 No 0 No 0 0 2
|
||||
Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 286 relay.000004 532 master-bin.000001 Yes Yes 0 0 286 817 None 0 No 0 No 0 0 1
|
||||
MASTER 2.2 Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 286 relay-master@00202@002e2.000004 532 master-bin.000001 Yes Yes 0 0 286 836 None 0 No 0 No 0 0 2
|
||||
#
|
||||
# List of files matching '*info*' pattern
|
||||
# after slave server restart
|
||||
# while 'master2' and '' are running
|
||||
# while 'MASTER 2.2' and '' are running
|
||||
master-master@00202@002e2.info
|
||||
master.info
|
||||
master.info.master2
|
||||
multi-master.info
|
||||
relay-log.info
|
||||
relay-log.info.master2
|
||||
relay.bin-master@00202@002e2.info
|
||||
relay.bin.info
|
||||
# End of list
|
||||
#
|
||||
# Contents of multi-master.info
|
||||
master2
|
||||
MASTER 2.2
|
||||
# EOF
|
||||
#
|
||||
stop slave;
|
||||
include/wait_for_slave_to_stop.inc
|
||||
set default_master_connection = 'master2';
|
||||
set default_master_connection = 'MASTER 2.2';
|
||||
stop slave;
|
||||
include/wait_for_slave_to_stop.inc
|
||||
reset slave all;
|
||||
|
@ -47,20 +47,20 @@ set default_master_connection = 'master1';
|
||||
# Start replication from the second master
|
||||
|
||||
--replace_result $SERVER_MYPORT_2 MYPORT_2
|
||||
eval change master 'master2' to
|
||||
eval change master 'MASTER 2.2' to
|
||||
master_port=$SERVER_MYPORT_2,
|
||||
master_host='127.0.0.1',
|
||||
master_user='root';
|
||||
|
||||
start slave 'master2';
|
||||
set default_master_connection = 'master2';
|
||||
start slave 'MASTER 2.2';
|
||||
set default_master_connection = 'MASTER 2.2';
|
||||
--source include/wait_for_slave_to_start.inc
|
||||
|
||||
# Check the files
|
||||
|
||||
--echo #
|
||||
--echo # List of files matching '*info*' pattern
|
||||
--echo # while 'master1' and 'master2' are running
|
||||
--echo # while 'master1' and 'MASTER 2.2' are running
|
||||
--list_files $datadir *info*
|
||||
--echo # End of list
|
||||
--echo #
|
||||
@ -80,7 +80,7 @@ reset slave 'master1' all;
|
||||
|
||||
--echo #
|
||||
--echo # List of files matching '*info*' pattern
|
||||
--echo # after 'master1' was completely reset, 'master2' still running
|
||||
--echo # after 'master1' was completely reset, 'MASTER 2.2' still running
|
||||
--list_files $datadir *info*
|
||||
--echo # End of list
|
||||
--echo #
|
||||
@ -106,7 +106,7 @@ start slave;
|
||||
|
||||
--echo #
|
||||
--echo # List of files matching '*info*' pattern
|
||||
--echo # while 'master2' and '' are running
|
||||
--echo # while 'MASTER 2.2' and '' are running
|
||||
--list_files $datadir *info*
|
||||
--echo # End of list
|
||||
--echo #
|
||||
@ -136,7 +136,7 @@ show full slave status;
|
||||
--echo #
|
||||
--echo # List of files matching '*info*' pattern
|
||||
--echo # after slave server restart
|
||||
--echo # while 'master2' and '' are running
|
||||
--echo # while 'MASTER 2.2' and '' are running
|
||||
--list_files $datadir *info*
|
||||
--echo # End of list
|
||||
--echo #
|
||||
@ -151,7 +151,7 @@ show full slave status;
|
||||
stop slave;
|
||||
--source include/wait_for_slave_to_stop.inc
|
||||
|
||||
set default_master_connection = 'master2';
|
||||
set default_master_connection = 'MASTER 2.2';
|
||||
stop slave;
|
||||
--source include/wait_for_slave_to_stop.inc
|
||||
reset slave all;
|
||||
|
@ -9,6 +9,7 @@ drop table if exists t1;
|
||||
create table t1 (i int) engine=MyISAM;
|
||||
mysqld-relay-bin-master1.000001
|
||||
mysqld-relay-bin-master1.000002
|
||||
mysqld-relay-bin-master1.index
|
||||
show relaylog events in 'mysqld-relay-bin-master1.000002';
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
mysqld-relay-bin-master1.000002 4 Format_desc 3 246 Server version
|
||||
|
@ -14,7 +14,7 @@ Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File
|
||||
127.0.0.1 root MYPORT_1 60 master-bin.000001 729 mysqld-relay-bin-master1.000002 1015 master-bin.000001 No No 0 0 729 1319 None 0 No NULL No 0 0 1
|
||||
mysqld-relay-bin-master1.000001
|
||||
mysqld-relay-bin-master1.000002
|
||||
mysqld-relay-bin.index-master1
|
||||
mysqld-relay-bin-master1.index
|
||||
reset slave 'master1';
|
||||
show slave 'master1' status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id
|
||||
|
@ -55,6 +55,49 @@ set default_master_connection = 'master2';
|
||||
select @@session.sql_slave_skip_counter;
|
||||
@@session.sql_slave_skip_counter
|
||||
3
|
||||
select @@global.max_relay_log_size;
|
||||
@@global.max_relay_log_size
|
||||
1073741824
|
||||
set global max_relay_log_size = 1*1024*1024;
|
||||
select @@global.max_relay_log_size;
|
||||
@@global.max_relay_log_size
|
||||
1048576
|
||||
select @@session.max_relay_log_size;
|
||||
@@session.max_relay_log_size
|
||||
1048576
|
||||
set session max_relay_log_size = 3*1024*1024;
|
||||
select @@global.max_relay_log_size;
|
||||
@@global.max_relay_log_size
|
||||
3145728
|
||||
select @@session.max_relay_log_size;
|
||||
@@session.max_relay_log_size
|
||||
3145728
|
||||
set global max_relay_log_size= default;
|
||||
select @@global.max_relay_log_size;
|
||||
@@global.max_relay_log_size
|
||||
1073741824
|
||||
select @@session.max_relay_log_size;
|
||||
@@session.max_relay_log_size
|
||||
1073741824
|
||||
set global max_relay_log_size= 3*1024*1024;
|
||||
set default_master_connection = 'master1';
|
||||
select @@session.max_relay_log_size;
|
||||
@@session.max_relay_log_size
|
||||
1073741824
|
||||
set default_master_connection = 'qqq';
|
||||
select @@session.max_relay_log_size;
|
||||
@@session.max_relay_log_size
|
||||
0
|
||||
Warnings:
|
||||
Warning 1617 There is no master connection 'qqq'
|
||||
set default_master_connection = 'master2';
|
||||
select @@session.max_relay_log_size;
|
||||
@@session.max_relay_log_size
|
||||
3145728
|
||||
set global max_binlog_size= 4*1024*1024;
|
||||
select @@global.max_relay_log_size;
|
||||
@@global.max_relay_log_size
|
||||
3145728
|
||||
start slave 'master2';
|
||||
include/wait_for_slave_to_start.inc
|
||||
set default_master_connection = '';
|
||||
@ -72,6 +115,8 @@ set default_master_connection = 'master2';
|
||||
stop slave;
|
||||
include/wait_for_slave_to_stop.inc
|
||||
set global sql_slave_skip_counter = 0;
|
||||
set global max_relay_log_size = 1073741824;
|
||||
set global max_binlog_size = 1073741824;
|
||||
disconnect slave;
|
||||
connection master1;
|
||||
drop database db;
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Test of sql_slave_skip_counter
|
||||
# Test of sql_slave_skip_counter and rpl_max_size
|
||||
#
|
||||
|
||||
--enable_connect_log
|
||||
@ -16,7 +16,6 @@ create database db;
|
||||
create table db.t1 (i int) engine=MyISAM;
|
||||
--save_master_pos
|
||||
|
||||
|
||||
# Create the same schema and another table
|
||||
# on the 2nd master
|
||||
|
||||
@ -62,6 +61,8 @@ master_user='root';
|
||||
# to modify the test later
|
||||
|
||||
--let $skip_counter_saved = `select @@global.sql_slave_skip_counter`
|
||||
--let $max_relay_log_size_saved= `select @@global.max_relay_log_size`
|
||||
--let $max_binlog_size_saved= `select @@global.max_binlog_size`
|
||||
set global sql_slave_skip_counter = 2;
|
||||
select @@global.sql_slave_skip_counter;
|
||||
select @@session.sql_slave_skip_counter;
|
||||
@ -79,6 +80,28 @@ select @@session.sql_slave_skip_counter;
|
||||
set default_master_connection = 'master2';
|
||||
select @@session.sql_slave_skip_counter;
|
||||
|
||||
# Test of setting max_relay_log_size
|
||||
select @@global.max_relay_log_size;
|
||||
set global max_relay_log_size = 1*1024*1024;
|
||||
select @@global.max_relay_log_size;
|
||||
select @@session.max_relay_log_size;
|
||||
set session max_relay_log_size = 3*1024*1024;
|
||||
select @@global.max_relay_log_size;
|
||||
select @@session.max_relay_log_size;
|
||||
set global max_relay_log_size= default;
|
||||
select @@global.max_relay_log_size;
|
||||
select @@session.max_relay_log_size;
|
||||
set global max_relay_log_size= 3*1024*1024;
|
||||
set default_master_connection = 'master1';
|
||||
select @@session.max_relay_log_size;
|
||||
set default_master_connection = 'qqq';
|
||||
select @@session.max_relay_log_size;
|
||||
set default_master_connection = 'master2';
|
||||
select @@session.max_relay_log_size;
|
||||
set global max_binlog_size= 4*1024*1024;
|
||||
select @@global.max_relay_log_size;
|
||||
|
||||
|
||||
start slave 'master2';
|
||||
--source include/wait_for_slave_to_start.inc
|
||||
set default_master_connection = '';
|
||||
@ -113,6 +136,8 @@ stop slave;
|
||||
|
||||
--source include/wait_for_slave_to_stop.inc
|
||||
--eval set global sql_slave_skip_counter = $skip_counter_saved
|
||||
--eval set global max_relay_log_size = $max_relay_log_size_saved
|
||||
--eval set global max_binlog_size = $max_binlog_size_saved
|
||||
|
||||
--enable_connect_log
|
||||
--disconnect slave
|
||||
|
Reference in New Issue
Block a user