rpl_max_relay_size.test
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. # Test of options max_binlog_size and max_relay_log_size and
  2. # how they act (if max_relay_log_size == 0, use max_binlog_size 
  3. # for relay logs too).
  4. # Test of manual relay log rotation with FLUSH LOGS.
  5. source include/master-slave.inc;
  6. connection slave;
  7. stop slave;
  8. connection master;
  9. # Generate a big enough master's binlog to cause relay log rotations
  10. create table t1 (a int);
  11. let $1=800;
  12. disable_query_log;
  13. begin;
  14. while ($1)
  15. {
  16. # eval means expand $ expressions
  17.  eval insert into t1 values( $1 );
  18.  dec $1;
  19. }
  20. enable_query_log;
  21. drop table t1;
  22. save_master_pos;
  23. connection slave;
  24. reset slave;
  25. set global max_binlog_size=8192;
  26. set global max_relay_log_size=8192-1; # mapped to 4096
  27. select @@global.max_relay_log_size;
  28. start slave;
  29. sync_with_master;
  30. --replace_result $MASTER_MYPORT MASTER_PORT
  31. --replace_column 1 # 33 #
  32. show slave status;
  33. stop slave;
  34. reset slave;
  35. set global max_relay_log_size=(5*4096);
  36. select @@global.max_relay_log_size;
  37. start slave;
  38. sync_with_master;
  39. --replace_result $MASTER_MYPORT MASTER_PORT
  40. --replace_column 1 # 33 #
  41. show slave status;
  42. stop slave;
  43. reset slave;
  44. set global max_relay_log_size=0;
  45. select @@global.max_relay_log_size;
  46. start slave;
  47. sync_with_master;
  48. --replace_result $MASTER_MYPORT MASTER_PORT
  49. --replace_column 1 # 33 #
  50. show slave status;
  51. # Tests below are mainly to ensure that we have not coded with wrong assumptions
  52. stop slave;
  53. reset slave;
  54. # test of relay log rotation when the slave is stopped
  55. # (to make sure it does not crash).
  56. flush logs;
  57. --replace_result $MASTER_MYPORT MASTER_PORT
  58. --replace_column 1 # 33 #
  59. show slave status;
  60. reset slave;
  61. start slave;
  62. sync_with_master;
  63. # test of relay log rotation when the slave is started
  64. flush logs;
  65. # We have now easy way to be sure that the SQL thread has now deleted the
  66. # log we just closed. But a trick to achieve this is do an update on the master.
  67. connection master;
  68. create table t1 (a int);
  69. save_master_pos;
  70. connection slave;
  71. sync_with_master;
  72. --replace_result $MASTER_MYPORT MASTER_PORT
  73. --replace_column 1 # 33 #
  74. show slave status;
  75. # one more rotation, to be sure Relay_Log_Space is correctly updated
  76. flush logs;
  77. connection master;
  78. drop table t1;
  79. save_master_pos;
  80. connection slave;
  81. sync_with_master;
  82. --replace_result $MASTER_MYPORT MASTER_PORT
  83. --replace_column 1 # 33 #
  84. show slave status;
  85. connection master;
  86. # test that the absence of relay logs does not make a master crash
  87. flush logs;
  88. show master status;
  89. # End of 4.1 tests