mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
MDEV-5624 mysqldump --dump-slave option does not restart the replication if the dump has failed
This commit is contained in:
@ -160,6 +160,8 @@ static void dynstr_set_checked(DYNAMIC_STRING *str, const char *init_str);
|
|||||||
static void dynstr_append_mem_checked(DYNAMIC_STRING *str, const char *append,
|
static void dynstr_append_mem_checked(DYNAMIC_STRING *str, const char *append,
|
||||||
uint length);
|
uint length);
|
||||||
static void dynstr_realloc_checked(DYNAMIC_STRING *str, ulong additional_size);
|
static void dynstr_realloc_checked(DYNAMIC_STRING *str, ulong additional_size);
|
||||||
|
|
||||||
|
static int do_start_slave_sql(MYSQL *mysql_con);
|
||||||
/*
|
/*
|
||||||
Constant for detection of default value of default_charset.
|
Constant for detection of default value of default_charset.
|
||||||
If default_charset is equal to mysql_universal_client_charset, then
|
If default_charset is equal to mysql_universal_client_charset, then
|
||||||
@ -1494,6 +1496,8 @@ static void free_resources()
|
|||||||
|
|
||||||
static void maybe_exit(int error)
|
static void maybe_exit(int error)
|
||||||
{
|
{
|
||||||
|
if (opt_slave_data)
|
||||||
|
do_start_slave_sql(mysql);
|
||||||
if (!first_error)
|
if (!first_error)
|
||||||
first_error= error;
|
first_error= error;
|
||||||
if (ignore_errors)
|
if (ignore_errors)
|
||||||
@ -5646,10 +5650,6 @@ int main(int argc, char **argv)
|
|||||||
dump_databases(argv);
|
dump_databases(argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if --dump-slave , start the slave sql thread */
|
|
||||||
if (opt_slave_data && do_start_slave_sql(mysql))
|
|
||||||
goto err;
|
|
||||||
|
|
||||||
/* add 'START SLAVE' to end of dump */
|
/* add 'START SLAVE' to end of dump */
|
||||||
if (opt_slave_apply && add_slave_statements())
|
if (opt_slave_apply && add_slave_statements())
|
||||||
goto err;
|
goto err;
|
||||||
@ -5665,9 +5665,6 @@ int main(int argc, char **argv)
|
|||||||
if (opt_delete_master_logs && purge_bin_logs_to(mysql, bin_log_name))
|
if (opt_delete_master_logs && purge_bin_logs_to(mysql, bin_log_name))
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
#ifdef HAVE_SMEM
|
|
||||||
my_free(shared_memory_base_name);
|
|
||||||
#endif
|
|
||||||
/*
|
/*
|
||||||
No reason to explicitely COMMIT the transaction, neither to explicitely
|
No reason to explicitely COMMIT the transaction, neither to explicitely
|
||||||
UNLOCK TABLES: these will be automatically be done by the server when we
|
UNLOCK TABLES: these will be automatically be done by the server when we
|
||||||
@ -5675,6 +5672,14 @@ int main(int argc, char **argv)
|
|||||||
server.
|
server.
|
||||||
*/
|
*/
|
||||||
err:
|
err:
|
||||||
|
/* if --dump-slave , start the slave sql thread */
|
||||||
|
if (opt_slave_data && do_start_slave_sql(mysql))
|
||||||
|
goto err;
|
||||||
|
|
||||||
|
#ifdef HAVE_SMEM
|
||||||
|
my_free(shared_memory_base_name);
|
||||||
|
#endif
|
||||||
|
|
||||||
dbDisconnect(current_host);
|
dbDisconnect(current_host);
|
||||||
if (!path)
|
if (!path)
|
||||||
write_footer(md_result_file);
|
write_footer(md_result_file);
|
||||||
|
@ -11,4 +11,11 @@ START SLAVE;
|
|||||||
STOP SLAVE;
|
STOP SLAVE;
|
||||||
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_MYPORT, MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START;
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_MYPORT, MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
|
slave start;
|
||||||
|
Warnings:
|
||||||
|
Note 1254 Slave is already running
|
||||||
|
CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START;
|
||||||
|
slave start;
|
||||||
|
Warnings:
|
||||||
|
Note 1254 Slave is already running
|
||||||
include/rpl_end.inc
|
include/rpl_end.inc
|
||||||
|
@ -27,4 +27,13 @@ connection slave;
|
|||||||
# Execute mysqldump with --dump-slave ,--apply-slave-statements and --include-master-host-port
|
# Execute mysqldump with --dump-slave ,--apply-slave-statements and --include-master-host-port
|
||||||
--exec $MYSQL_DUMP_SLAVE --compact --dump-slave --apply-slave-statements --include-master-host-port test
|
--exec $MYSQL_DUMP_SLAVE --compact --dump-slave --apply-slave-statements --include-master-host-port test
|
||||||
|
|
||||||
|
#
|
||||||
|
# MDEV-5624 mysqldump --dump-slave option does not restart the replication if the dump has failed
|
||||||
|
#
|
||||||
|
slave start;
|
||||||
|
--replace_regex /MASTER_LOG_POS=[0-9]+/MASTER_LOG_POS=BINLOG_START/
|
||||||
|
--error 2
|
||||||
|
--exec $MYSQL_DUMP_SLAVE --compact --dump-slave no_such_db
|
||||||
|
slave start;
|
||||||
|
|
||||||
--source include/rpl_end.inc
|
--source include/rpl_end.inc
|
||||||
|
Reference in New Issue
Block a user