mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Fix that BACKUP STAGE BLOCK_COMMIT flushes binary log
This commit is contained in:
21
mysql-test/suite/binlog/r/backup.result
Normal file
21
mysql-test/suite/binlog/r/backup.result
Normal file
@@ -0,0 +1,21 @@
|
||||
#
|
||||
# Test BACKUP STAGES BLOCK_COMMIT with binary logging on
|
||||
#
|
||||
SET BINLOG_FORMAT=MIXED;
|
||||
RESET MASTER;
|
||||
create table t1 (a int) engine=aria;
|
||||
insert into t1 values (1);
|
||||
BACKUP STAGE START;
|
||||
BACKUP STAGE BLOCK_COMMIT;
|
||||
SELECT @@gtid_binlog_pos;
|
||||
@@gtid_binlog_pos
|
||||
0-1-2
|
||||
BACKUP STAGE END;
|
||||
include/show_binlog_events.inc
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Gtid # # GTID #-#-#
|
||||
master-bin.000001 # Query # # use `test`; create table t1 (a int) engine=aria
|
||||
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||
master-bin.000001 # Query # # use `test`; insert into t1 values (1)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
drop table t1;
|
19
mysql-test/suite/binlog/t/backup.test
Normal file
19
mysql-test/suite/binlog/t/backup.test
Normal file
@@ -0,0 +1,19 @@
|
||||
--source include/have_log_bin.inc
|
||||
--source include/have_binlog_format_mixed.inc
|
||||
|
||||
--echo #
|
||||
--echo # Test BACKUP STAGES BLOCK_COMMIT with binary logging on
|
||||
--echo #
|
||||
|
||||
SET BINLOG_FORMAT=MIXED;
|
||||
RESET MASTER;
|
||||
|
||||
create table t1 (a int) engine=aria;
|
||||
insert into t1 values (1);
|
||||
|
||||
BACKUP STAGE START;
|
||||
BACKUP STAGE BLOCK_COMMIT;
|
||||
SELECT @@gtid_binlog_pos;
|
||||
BACKUP STAGE END;
|
||||
source include/show_binlog_events.inc;
|
||||
drop table t1;
|
@@ -290,6 +290,14 @@ static bool backup_block_commit(THD *thd)
|
||||
|
||||
/* We can ignore errors from flush_tables () */
|
||||
(void) flush_tables(thd, FLUSH_SYS_TABLES);
|
||||
|
||||
if (mysql_bin_log.is_open())
|
||||
{
|
||||
mysql_mutex_lock(mysql_bin_log.get_log_lock());
|
||||
mysql_file_sync(mysql_bin_log.get_log_file()->file,
|
||||
MYF(MY_WME|MY_SYNC_FILESIZE));
|
||||
mysql_mutex_unlock(mysql_bin_log.get_log_lock());
|
||||
}
|
||||
thd->clear_error();
|
||||
|
||||
DBUG_RETURN(0);
|
||||
|
Reference in New Issue
Block a user