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 () */
|
/* We can ignore errors from flush_tables () */
|
||||||
(void) flush_tables(thd, FLUSH_SYS_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();
|
thd->clear_error();
|
||||||
|
|
||||||
DBUG_RETURN(0);
|
DBUG_RETURN(0);
|
||||||
|
Reference in New Issue
Block a user