#### #### 1. When binlog_expire_logs_seconds == 0 and expire_logs_days == 0 #### no purge should happen SET GLOBAL binlog_expire_logs_seconds= 0; SET GLOBAL expire_logs_days= 0; CREATE TABLE t1(s LONGBLOB ); Case:0 FLUSH LOGS; INSERT INTO t1 VALUES('a'); FLUSH LOGS; #### 1. FLUSH LOGS FLUSH LOGS; RESET MASTER; Case:1 FLUSH LOGS; INSERT INTO t1 VALUES('a'); FLUSH LOGS; #### 2. Binlog_size > max_binlog_size SET @@GLOBAL.MAX_BINLOG_SIZE= 4096; INSERT INTO t1 (s) VALUES (REPEAT('s',50000)); RESET MASTER; Case:2 FLUSH LOGS; INSERT INTO t1 VALUES('a'); FLUSH LOGS; #### 3. Server restart # restart: --binlog_expire_logs_seconds=0 RESET MASTER; ##### Cleanup ##### SET @@GLOBAL.MAX_BINLOG_SIZE= 1073741824;; DROP TABLE t1; RESET MASTER; #### #### 2.1: binlog_expire_logs_seconds > 0 and expire_logs_days > 0 #### expire_logs_days=1.5 and binlog_expire_logs_seconds=86400 #### Since binlog_expire_logs_seconds is set later #### expire_logs_days value will be overridden should be #### '0.000347222' #### Testing with smaller values of binlog_expire_logs_seconds SET GLOBAL expire_logs_days= 1.5; SET GLOBAL binlog_expire_logs_seconds= 30 ; SELECT @@expire_logs_days as 'Expected_0.000347222'; Expected_0.000347222 0.000347 SELECT @@binlog_expire_logs_seconds as Expected_30; Expected_30 30 FLUSH LOGS; FLUSH LOGS; FLUSH LOGS; RESET MASTER; #### #### 2.2: binlog_expire_logs_seconds = 43200 and expire_logs_days = 0 #### SET GLOBAL expire_logs_days=0; SET GLOBAL binlog_expire_logs_seconds=43200; SELECT @@expire_logs_days as 'Expected_0.5'; Expected_0.5 0.500000 SELECT @@binlog_expire_logs_seconds as Expected_43200; Expected_43200 43200 CREATE TABLE t1(s LONGBLOB ); Case:0 FLUSH LOGS; INSERT INTO t1 VALUES('a'); FLUSH LOGS; #### 1. FLUSH LOGS FLUSH LOGS; RESET MASTER; Case:1 FLUSH LOGS; INSERT INTO t1 VALUES('a'); FLUSH LOGS; #### 2. Binlog_size > max_binlog_size SET @@GLOBAL.MAX_BINLOG_SIZE= 4096; INSERT INTO t1 (s) VALUES (REPEAT('s',50000)); RESET MASTER; Case:2 FLUSH LOGS; INSERT INTO t1 VALUES('a'); FLUSH LOGS; #### 3. Server restart # restart: --binlog_expire_logs_seconds=43200 RESET MASTER; ##### Cleanup ##### SET @@GLOBAL.MAX_BINLOG_SIZE= 1073741824;; DROP TABLE t1; RESET MASTER; #### #### 2.3: binlog_expire_logs_seconds == 0 and expire_logs_days > 0 #### SET GLOBAL binlog_expire_logs_seconds= 0; SET GLOBAL expire_logs_days= 1; SELECT @@expire_logs_days as Expected_1; Expected_1 1.000000 SELECT @@binlog_expire_logs_seconds as Expected_86400; Expected_86400 86400 CREATE TABLE t1(s LONGBLOB ); Case:0 FLUSH LOGS; INSERT INTO t1 VALUES('a'); FLUSH LOGS; #### 1. FLUSH LOGS FLUSH LOGS; RESET MASTER; Case:1 FLUSH LOGS; INSERT INTO t1 VALUES('a'); FLUSH LOGS; #### 2. Binlog_size > max_binlog_size SET @@GLOBAL.MAX_BINLOG_SIZE= 4096; INSERT INTO t1 (s) VALUES (REPEAT('s',50000)); RESET MASTER; Case:2 FLUSH LOGS; INSERT INTO t1 VALUES('a'); FLUSH LOGS; #### 3. Server restart # restart: --binlog_expire_logs_seconds=86400 RESET MASTER; ##### Cleanup ##### SET @@GLOBAL.MAX_BINLOG_SIZE= 1073741824;; DROP TABLE t1; RESET MASTER; #### #### 2.4: binlog_expire_logs_seconds = 1 #### SET GLOBAL binlog_expire_logs_seconds= 1; SELECT @@expire_logs_days; @@expire_logs_days 0.000012 SELECT @@binlog_expire_logs_seconds as Expected_1; Expected_1 1 #### #### 2.5. binlog_expire_logs_seconds = 8553600, testing max value 99days #### SET GLOBAL binlog_expire_logs_seconds= 8553600; SELECT @@expire_logs_days; @@expire_logs_days 99.000000 SELECT @@binlog_expire_logs_seconds as Expected_8553600; Expected_8553600 8553600 SET GLOBAL binlog_expire_logs_seconds= 0; SET GLOBAL expire_logs_days= 0.000000;