diff options
author | Vlad Lesin <vlad_lesin@mail.ru> | 2019-02-13 16:01:38 +0300 |
---|---|---|
committer | Vlad Lesin <vlad_lesin@mail.ru> | 2019-02-14 10:45:25 +0300 |
commit | a78d5dd35c8ae3966f7f319884accd095b1bf224 (patch) | |
tree | 061779961d380c87634f62cdb701b0508388f4bd | |
parent | 8a9cdc5f44b14466e79630778c5e76d941d28435 (diff) | |
download | mariadb-git-bb-10.2-mariabackup-remove-nolock.tar.gz |
MDEV-18573: avoid backup inconsistency in 10.2bb-10.2-mariabackup-remove-nolock
--no-lock and --lock-ddl-per-table options deprecared, the corresponing
code is removed. aria_log_control is copied first and aria_log.# files last
under FTWRL.
-rw-r--r-- | extra/mariabackup/backup_copy.cc | 60 | ||||
-rw-r--r-- | extra/mariabackup/backup_mysql.cc | 122 | ||||
-rw-r--r-- | extra/mariabackup/innobackupex.cc | 24 | ||||
-rw-r--r-- | extra/mariabackup/xtrabackup.cc | 138 | ||||
-rw-r--r-- | extra/mariabackup/xtrabackup.h | 2 | ||||
-rw-r--r-- | mysql-test/suite/mariabackup/backup_grants.test | 6 | ||||
-rw-r--r-- | mysql-test/suite/mariabackup/deprecated_options.result | 1 | ||||
-rw-r--r-- | mysql-test/suite/mariabackup/deprecated_options.test | 11 | ||||
-rw-r--r-- | mysql-test/suite/mariabackup/lock_ddl_per_table.test | 21 | ||||
-rw-r--r-- | mysql-test/suite/mariabackup/nolock_ddl_during_backup_end.test | 14 | ||||
-rw-r--r-- | mysql-test/suite/mariabackup/rename_during_mdl_lock.test | 21 |
11 files changed, 73 insertions, 347 deletions
diff --git a/extra/mariabackup/backup_copy.cc b/extra/mariabackup/backup_copy.cc index b0ad000cb90..273cf3d6cd0 100644 --- a/extra/mariabackup/backup_copy.cc +++ b/extra/mariabackup/backup_copy.cc @@ -1325,7 +1325,7 @@ backup_files(const char *from, bool prep_mode) } msg("rsync finished successfully."); - if (!prep_mode && !opt_no_lock) { + if (!prep_mode) { char path[FN_REFLEN]; char dst_path[FN_REFLEN]; char *newline; @@ -1406,24 +1406,22 @@ extern void backup_wait_for_lsn(lsn_t lsn); /** Start --backup */ bool backup_start() { - if (!opt_no_lock) { - if (opt_safe_slave_backup) { - if (!wait_for_safe_slave(mysql_connection)) { - return(false); - } - } - - if (!backup_files(fil_path_to_mysql_datadir, true)) { + if (opt_safe_slave_backup) { + if (!wait_for_safe_slave(mysql_connection)) { return(false); } + } + + if (!backup_files(fil_path_to_mysql_datadir, true)) { + return(false); + } - history_lock_time = time(NULL); + history_lock_time = time(NULL); - if (!lock_tables(mysql_connection)) { - return(false); - } - server_lsn_after_lock = get_current_lsn(mysql_connection); + if (!lock_tables(mysql_connection)) { + return(false); } + server_lsn_after_lock = get_current_lsn(mysql_connection); if (!backup_files(fil_path_to_mysql_datadir, false)) { return(false); @@ -1441,17 +1439,6 @@ bool backup_start() backup_wait_for_lsn(server_lsn_after_lock); backup_fix_ddl(); - // There is no need to stop slave thread before coping non-Innodb data when - // --no-lock option is used because --no-lock option requires that no DDL or - // DML to non-transaction tables can occur. - if (opt_no_lock) { - if (opt_safe_slave_backup) { - if (!wait_for_safe_slave(mysql_connection)) { - return(false); - } - } - } - if (opt_slave_info) { lock_binlog_maybe(mysql_connection); @@ -1479,7 +1466,7 @@ bool backup_start() write_binlog_info(mysql_connection); } - if (have_flush_engine_logs && !opt_no_lock) { + if (have_flush_engine_logs) { msg("Executing FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS..."); xb_mysql_query(mysql_connection, "FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS", false); @@ -1492,16 +1479,8 @@ bool backup_start() void backup_release() { /* release all locks */ - if (!opt_no_lock) { - unlock_all(mysql_connection); - history_lock_time = 0; - } else { - history_lock_time = time(NULL) - history_lock_time; - } - - if (opt_lock_ddl_per_table) { - mdl_unlock_all(); - } + unlock_all(mysql_connection); + history_lock_time = 0; if (opt_safe_slave_backup && sql_thread_started) { msg("Starting slave SQL thread"); @@ -2091,6 +2070,13 @@ decrypt_decompress() */ static bool backup_files_from_datadir(const char *dir_path) { + std::string aria_ctrl_file(dir_path); + aria_ctrl_file.append("/aria_log_control"); + if (file_exists(aria_ctrl_file.c_str()) && + !copy_file(ds_data, aria_ctrl_file.c_str(), "aria_log_control", 1)) { + return false; + } + os_file_dir_t dir = os_file_opendir(dir_path, TRUE); os_file_stat_t info; bool ret = true; @@ -2104,7 +2090,7 @@ static bool backup_files_from_datadir(const char *dir_path) pname = info.name; /* Copy aria log files, and aws keys for encryption plugins.*/ - const char *prefixes[] = { "aria_log", "aws-kms-key" }; + const char *prefixes[] = { "aria_log.", "aws-kms-key" }; for (size_t i = 0; i < array_elements(prefixes); i++) { if (starts_with(pname, prefixes[i])) { ret = copy_file(ds_data, info.name, info.name, 1); diff --git a/extra/mariabackup/backup_mysql.cc b/extra/mariabackup/backup_mysql.cc index a691cb664f1..cf5916a2c37 100644 --- a/extra/mariabackup/backup_mysql.cc +++ b/extra/mariabackup/backup_mysql.cc @@ -867,83 +867,6 @@ stop_query_killer() os_event_wait_time(kill_query_thread_stopped, 60000); } - -/* -Killing connections that wait for MDL lock. -If lock-ddl-per-table is used, there can be some DDL statements - -FLUSH TABLES would hang infinitely, if DDL statements are waiting for -MDL lock, which mariabackup currently holds. Therefore we start killing -those statements from a dedicated thread, until FLUSH TABLES WITH READ LOCK -succeeds. -*/ - -static os_event_t mdl_killer_stop_event; -static os_event_t mdl_killer_finished_event; - -static -os_thread_ret_t -DECLARE_THREAD(kill_mdl_waiters_thread(void *)) -{ - MYSQL *mysql; - if ((mysql = xb_mysql_connect()) == NULL) { - msg("Error: kill mdl waiters thread failed to connect"); - goto stop_thread; - } - - for(;;){ - if (os_event_wait_time(mdl_killer_stop_event, 1000) == 0) - break; - - MYSQL_RES *result = xb_mysql_query(mysql, - "SELECT ID, COMMAND, INFO FROM INFORMATION_SCHEMA.PROCESSLIST " - " WHERE State='Waiting for table metadata lock'", - true, true); - while (MYSQL_ROW row = mysql_fetch_row(result)) - { - char query[64]; - - if (row[1] && !strcmp(row[1], "Killed")) - continue; - - msg("Killing MDL waiting %s ('%s') on connection %s", - row[1], row[2], row[0]); - snprintf(query, sizeof(query), "KILL QUERY %s", row[0]); - if (mysql_query(mysql, query) && (mysql_errno(mysql) != ER_NO_SUCH_THREAD)) { - die("failed to execute query %s: %s", query,mysql_error(mysql)); - } - } - mysql_free_result(result); - } - - mysql_close(mysql); - -stop_thread: - msg("Kill mdl waiters thread stopped"); - os_event_set(mdl_killer_finished_event); - os_thread_exit(); - return os_thread_ret_t(0); -} - - -static void start_mdl_waiters_killer() -{ - mdl_killer_stop_event = os_event_create(0); - mdl_killer_finished_event = os_event_create(0); - os_thread_create(kill_mdl_waiters_thread, 0, 0); -} - - -/* Tell MDL killer to stop and finish for its completion*/ -static void stop_mdl_waiters_killer() -{ - os_event_set(mdl_killer_stop_event); - os_event_wait(mdl_killer_finished_event); - - os_event_destroy(mdl_killer_stop_event); - os_event_destroy(mdl_killer_finished_event); -} - /*********************************************************************//** Function acquires either a backup tables lock, if supported by the server, or a global read lock (FLUSH TABLES WITH READ LOCK) @@ -966,10 +889,6 @@ lock_tables(MYSQL *connection) return(true); } - if (opt_lock_ddl_per_table) { - start_mdl_waiters_killer(); - } - if (!opt_lock_wait_timeout && !opt_kill_long_queries_timeout) { /* We do first a FLUSH TABLES. If a long update is running, the @@ -1009,11 +928,6 @@ lock_tables(MYSQL *connection) } xb_mysql_query(connection, "FLUSH TABLES WITH READ LOCK", false); - - if (opt_lock_ddl_per_table) { - stop_mdl_waiters_killer(); - } - if (opt_kill_long_queries_timeout) { stop_query_killer(); } @@ -1029,7 +943,7 @@ not in the --no-lock mode and the lock has not been acquired already. bool lock_binlog_maybe(MYSQL *connection) { - if (have_backup_locks && !opt_no_lock && !binlog_locked) { + if (have_backup_locks && !binlog_locked) { msg("Executing LOCK BINLOG FOR BACKUP..."); xb_mysql_query(connection, "LOCK BINLOG FOR BACKUP", false); binlog_locked = true; @@ -1779,37 +1693,3 @@ mdl_lock_init() xb_mysql_query(mdl_con, "BEGIN", false, true); } - -void -mdl_lock_table(ulint space_id) -{ - if (space_id == 0) - return; - - std::string full_table_name = spaceid_to_tablename[space_id]; - - DBUG_EXECUTE_IF("rename_during_mdl_lock_table", - if (full_table_name == "`test`.`t1`") - xb_mysql_query(mysql_connection, "RENAME TABLE test.t1 to test.t2", false, true); - ); - - std::ostringstream lock_query; - lock_query << "SELECT 1 FROM " << full_table_name << " LIMIT 0"; - msg("Locking MDL for %s", full_table_name.c_str()); - if (mysql_query(mdl_con, lock_query.str().c_str())) { - msg("Warning : locking MDL failed for space id %zu, name %s", space_id, full_table_name.c_str()); - } else { - MYSQL_RES *r = mysql_store_result(mdl_con); - mysql_free_result(r); - } -} - -void -mdl_unlock_all() -{ - msg("Unlocking MDL for all tables"); - xb_mysql_query(mdl_con, "COMMIT", false, true); - mysql_close(mdl_con); - spaceid_to_tablename.clear(); -} - diff --git a/extra/mariabackup/innobackupex.cc b/extra/mariabackup/innobackupex.cc index ac2272bf9b0..67b9e8b32d1 100644 --- a/extra/mariabackup/innobackupex.cc +++ b/extra/mariabackup/innobackupex.cc @@ -76,7 +76,7 @@ my_bool opt_ibx_copy_back = FALSE; my_bool opt_ibx_move_back = FALSE; my_bool opt_ibx_galera_info = FALSE; my_bool opt_ibx_slave_info = FALSE; -my_bool opt_ibx_no_lock = FALSE; +my_bool opt_ibx_no_lock_deprecated = FALSE; my_bool opt_ibx_safe_slave_backup = FALSE; my_bool opt_ibx_rsync = FALSE; my_bool opt_ibx_force_non_empty_dirs = FALSE; @@ -266,21 +266,9 @@ static struct my_option ibx_long_options[] = (uchar *) &opt_ibx_incremental, (uchar *) &opt_ibx_incremental, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, - {"no-lock", OPT_NO_LOCK, "Use this option to disable table lock " - "with \"FLUSH TABLES WITH READ LOCK\". Use it only if ALL your " - "tables are InnoDB and you DO NOT CARE about the binary log " - "position of the backup. This option shouldn't be used if there " - "are any DDL statements being executed or if any updates are " - "happening on non-InnoDB tables (this includes the system MyISAM " - "tables in the mysql database), otherwise it could lead to an " - "inconsistent backup. If you are considering to use --no-lock " - "because your backups are failing to acquire the lock, this could " - "be because of incoming replication events preventing the lock " - "from succeeding. Please try using --safe-slave-backup to " - "momentarily stop the replication slave thread, this may help " - "the backup to succeed and you then don't need to resort to " - "using this option.", - (uchar *) &opt_ibx_no_lock, (uchar *) &opt_ibx_no_lock, 0, + {"no-lock", OPT_NO_LOCK, "Deprecated option.", + (uchar *) &opt_ibx_no_lock_deprecated, + (uchar *) &opt_ibx_no_lock_deprecated, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, {"safe-slave-backup", OPT_SAFE_SLAVE_BACKUP, "Stop slave SQL thread " @@ -782,6 +770,9 @@ ibx_get_one_option(int optid, start[1]=0 ; } break; + case OPT_NO_LOCK: + die("option --no-lock is deprecated"); + break; } return(0); } @@ -878,7 +869,6 @@ ibx_init() xtrabackup_move_back = opt_ibx_move_back; opt_galera_info = opt_ibx_galera_info; opt_slave_info = opt_ibx_slave_info; - opt_no_lock = opt_ibx_no_lock; opt_safe_slave_backup = opt_ibx_safe_slave_backup; opt_rsync = opt_ibx_rsync; opt_force_non_empty_dirs = opt_ibx_force_non_empty_dirs; diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc index 38d871d965d..a27f361228a 100644 --- a/extra/mariabackup/xtrabackup.cc +++ b/extra/mariabackup/xtrabackup.cc @@ -295,7 +295,7 @@ extern LOGGER logger; my_bool opt_galera_info = FALSE; my_bool opt_slave_info = FALSE; -my_bool opt_no_lock = FALSE; +my_bool opt_no_lock_deprecated = FALSE; my_bool opt_safe_slave_backup = FALSE; my_bool opt_rsync = FALSE; my_bool opt_force_non_empty_dirs = FALSE; @@ -304,7 +304,7 @@ my_bool opt_no_backup_locks = FALSE; my_bool opt_decompress = FALSE; my_bool opt_remove_original; -my_bool opt_lock_ddl_per_table = FALSE; +my_bool opt_lock_ddl_per_table_deprecated = FALSE; static my_bool opt_check_privileges; static const char *binlog_info_values[] = {"off", "lockless", "on", "auto", @@ -499,6 +499,9 @@ Execute query from a new connection, in own thread. @param expected_errno - if not 0, and query finished with error, expected mysql_errno() */ +// TODO: remove "unused" attribute when use it, the function can be used in +// the future for debug and testing +__attribute__((unused)) static os_event_t dbug_start_query_thread( const char *query, const char *wait_state, @@ -543,24 +546,6 @@ end: os_event_t dbug_alter_thread_done; #endif -void mdl_lock_all() -{ - mdl_lock_init(); - datafiles_iter_t *it = datafiles_iter_new(fil_system); - if (!it) - return; - - while (fil_node_t *node = datafiles_iter_next(it)){ - if (fil_is_user_tablespace_id(node->space->id) - && check_if_skip_table(node->space->name)) - continue; - - mdl_lock_table(node->space->id); - } - datafiles_iter_free(it); -} - - // Convert non-null terminated filename to space name std::string filename_to_spacename(const byte *filename, size_t len) { @@ -625,8 +610,7 @@ static void backup_file_op(ulint space_id, const byte* flags, This callback is called if DDL operation is detected, at the end of backup - Normally, DDL operations are blocked due to FTWRL, - but in rare cases of --no-lock, they are not. + Normally, DDL operations are blocked due to FTWRL. We will abort backup in this case. */ @@ -634,30 +618,8 @@ static void backup_file_op_fail(ulint space_id, const byte* flags, const byte* name, ulint len, const byte* new_name, ulint new_len) { - ut_a(opt_no_lock); - bool fail; - if (flags) { - msg("DDL tracking : create %zu \"%.*s\": %x", - space_id, int(len), name, mach_read_from_4(flags)); - std::string spacename = filename_to_spacename(name, len); - fail = !check_if_skip_table(spacename.c_str()); - } - else if (new_name) { - msg("DDL tracking : rename %zu \"%.*s\",\"%.*s\"", - space_id, int(len), name, int(new_len), new_name); - std::string spacename = filename_to_spacename(name, len); - std::string new_spacename = filename_to_spacename(new_name, new_len); - fail = !check_if_skip_table(spacename.c_str()) || !check_if_skip_table(new_spacename.c_str()); - } - else { - std::string spacename = filename_to_spacename(name, len); - fail = !check_if_skip_table(spacename.c_str()); - msg("DDL tracking : delete %zu \"%.*s\"", space_id, int(len), name); - } - if (fail) { - die("DDL operation detected in the late phase of backup." - "Backup is inconsistent. Remove --no-lock option to fix."); - } + die("DDL operation detected in the late phase of backup." + "Backup is inconsistent."); } @@ -675,23 +637,15 @@ static void backup_optimized_ddl_op(ulint space_id) run with --no-lock. Usually aborts the backup. */ static void backup_optimized_ddl_op_fail(ulint space_id) { - ut_a(opt_no_lock); - msg("DDL tracking : optimized DDL on space %zu", space_id); - if (ddl_tracker.tables_in_backup.find(space_id) != ddl_tracker.tables_in_backup.end()) { - msg("ERROR : Optimized DDL operation detected in the late phase of backup." - "Backup is inconsistent. Remove --no-lock option to fix."); - exit(EXIT_FAILURE); - } + die("ERROR : Optimized DDL operation detected in the late phase of backup." + "Backup is inconsistent."); } /** Callback whenever MLOG_TRUNCATE happens. */ static void backup_truncate_fail() { - msg("mariabackup: Incompatible TRUNCATE operation detected.%s", - opt_lock_ddl_per_table - ? "" - : " Use --lock-ddl-per-table to lock all tables before backup."); + msg("mariabackup: Incompatible TRUNCATE operation detected."); } @@ -981,21 +935,8 @@ struct my_option xb_client_options[] = (uchar *) &opt_slave_info, (uchar *) &opt_slave_info, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, - {"no-lock", OPT_NO_LOCK, "Use this option to disable table lock " - "with \"FLUSH TABLES WITH READ LOCK\". Use it only if ALL your " - "tables are InnoDB and you DO NOT CARE about the binary log " - "position of the backup. This option shouldn't be used if there " - "are any DDL statements being executed or if any updates are " - "happening on non-InnoDB tables (this includes the system MyISAM " - "tables in the mysql database), otherwise it could lead to an " - "inconsistent backup. If you are considering to use --no-lock " - "because your backups are failing to acquire the lock, this could " - "be because of incoming replication events preventing the lock " - "from succeeding. Please try using --safe-slave-backup to " - "momentarily stop the replication slave thread, this may help " - "the backup to succeed and you then don't need to resort to " - "using this option.", - (uchar *) &opt_no_lock, (uchar *) &opt_no_lock, 0, + {"no-lock", OPT_NO_LOCK, "Deprecated option", + (uchar *) &opt_no_lock_deprecated, (uchar *) &opt_no_lock_deprecated, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, {"safe-slave-backup", OPT_SAFE_SLAVE_BACKUP, "Stop slave SQL thread " @@ -1390,9 +1331,9 @@ struct my_option xb_server_options[] = (G_PTR*) &xb_open_files_limit, (G_PTR*) &xb_open_files_limit, 0, GET_ULONG, REQUIRED_ARG, 0, 0, UINT_MAX, 0, 1, 0}, - {"lock-ddl-per-table", OPT_LOCK_DDL_PER_TABLE, "Lock DDL for each table " - "before xtrabackup starts to copy it and until the backup is completed.", - (uchar*) &opt_lock_ddl_per_table, (uchar*) &opt_lock_ddl_per_table, 0, + {"lock-ddl-per-table", OPT_LOCK_DDL_PER_TABLE, "Deprecated option", + (uchar*) &opt_lock_ddl_per_table_deprecated, + (uchar*) &opt_lock_ddl_per_table_deprecated, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, {"rocksdb-datadir", OPT_ROCKSDB_DATADIR, "RocksDB data directory." @@ -1783,6 +1724,12 @@ xb_get_one_option(int optid, print_version(); exit(EXIT_SUCCESS); break; + case OPT_NO_LOCK: + die("Deprecated option --no-lock"); + break; + case OPT_LOCK_DDL_PER_TABLE: + die("Deprecated option --lock-ddl-per-table"); + break; default: break; } @@ -4307,15 +4254,6 @@ fail_before_log_copying_thread_start: "files transfer", xtrabackup_parallel); } - if (opt_lock_ddl_per_table) { - mdl_lock_all(); - - DBUG_EXECUTE_IF("check_mdl_lock_works", - dbug_alter_thread_done = - dbug_start_query_thread("ALTER TABLE test.t ADD COLUMN mdl_lock_column int", - "Waiting for table metadata lock", 1, ER_QUERY_INTERRUPTED);); - } - datafiles_iter_t *it = datafiles_iter_new(fil_system); if (it == NULL) { msg("mariabackup: Error: datafiles_iter_new() failed."); @@ -5825,22 +5763,16 @@ check_all_privileges() int check_result = PRIVILEGE_OK; /* FLUSH TABLES WITH READ LOCK */ - if (!opt_no_lock) - { - check_result |= check_privilege( - granted_privileges, - "RELOAD", "*", "*"); - } + check_result |= check_privilege( + granted_privileges, + "RELOAD", "*", "*"); - if (!opt_no_lock) - { - check_result |= check_privilege( - granted_privileges, - "PROCESS", "*", "*"); - } + check_result |= check_privilege( + granted_privileges, + "PROCESS", "*", "*"); /* KILL ... */ - if ((!opt_no_lock && (opt_kill_long_queries_timeout || opt_lock_ddl_per_table)) + if (opt_kill_long_queries_timeout /* START SLAVE SQL_THREAD */ /* STOP SLAVE SQL_THREAD */ || opt_safe_slave_backup) { @@ -5852,8 +5784,7 @@ check_all_privileges() /* SHOW MASTER STATUS */ /* SHOW SLAVE STATUS */ - if (opt_galera_info || opt_slave_info - || (opt_no_lock && opt_safe_slave_backup)) { + if (opt_galera_info || opt_slave_info) { check_result |= check_privilege(granted_privileges, "REPLICATION CLIENT", "*", "*", PRIVILEGE_WARNING); @@ -5873,15 +5804,6 @@ xb_init() /* sanity checks */ - if (opt_slave_info - && opt_no_lock - && !opt_safe_slave_backup) { - msg("Error: --slave-info is used with --no-lock but " - "without --safe-slave-backup. The binlog position " - "cannot be consistent with the backup data."); - return(false); - } - if (xtrabackup_backup && opt_rsync) { if (xtrabackup_stream_fmt) diff --git a/extra/mariabackup/xtrabackup.h b/extra/mariabackup/xtrabackup.h index 90f5e28e2c7..ab54db56a43 100644 --- a/extra/mariabackup/xtrabackup.h +++ b/extra/mariabackup/xtrabackup.h @@ -99,7 +99,6 @@ extern longlong xtrabackup_use_memory; extern my_bool opt_galera_info; extern my_bool opt_slave_info; -extern my_bool opt_no_lock; extern my_bool opt_safe_slave_backup; extern my_bool opt_rsync; extern my_bool opt_force_non_empty_dirs; @@ -109,7 +108,6 @@ extern my_bool opt_decompress; extern my_bool opt_remove_original; extern my_bool opt_extended_validation; extern my_bool opt_encrypted_backup; -extern my_bool opt_lock_ddl_per_table; extern char *opt_incremental_history_name; extern char *opt_incremental_history_uuid; diff --git a/mysql-test/suite/mariabackup/backup_grants.test b/mysql-test/suite/mariabackup/backup_grants.test index 1c0c3f89346..63cdc2ce523 100644 --- a/mysql-test/suite/mariabackup/backup_grants.test +++ b/mysql-test/suite/mariabackup/backup_grants.test @@ -1,12 +1,6 @@ let $targetdir=$MYSQLTEST_VARDIR/tmp/backup; CREATE user backup@localhost; -# backup possible for unprivileges user, with --no-lock ---disable_result_log -exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup -ubackup --no-lock --target-dir=$targetdir; ---enable_result_log -rmdir $targetdir; - # backup fails without --no-lock, because of FTWRL --disable_result_log error 1; diff --git a/mysql-test/suite/mariabackup/deprecated_options.result b/mysql-test/suite/mariabackup/deprecated_options.result new file mode 100644 index 00000000000..55e6e6e5217 --- /dev/null +++ b/mysql-test/suite/mariabackup/deprecated_options.result @@ -0,0 +1 @@ +# xtrabackup backup diff --git a/mysql-test/suite/mariabackup/deprecated_options.test b/mysql-test/suite/mariabackup/deprecated_options.test new file mode 100644 index 00000000000..39131d99726 --- /dev/null +++ b/mysql-test/suite/mariabackup/deprecated_options.test @@ -0,0 +1,11 @@ +let $targetdir=$MYSQLTEST_VARDIR/tmp/backup; +mkdir $targetdir; + +echo # xtrabackup backup; +--disable_result_log +error 1; +exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir --no-lock; +error 1; +exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir --lock-ddl-per-table; +--enable_result_log +rmdir $targetdir; diff --git a/mysql-test/suite/mariabackup/lock_ddl_per_table.test b/mysql-test/suite/mariabackup/lock_ddl_per_table.test deleted file mode 100644 index 2689508e554..00000000000 --- a/mysql-test/suite/mariabackup/lock_ddl_per_table.test +++ /dev/null @@ -1,21 +0,0 @@ ---source include/have_debug.inc ---source include/have_partition.inc - -CREATE TABLE t(i INT) ENGINE INNODB; -INSERT INTO t VALUES(1); -echo # xtrabackup backup; -let $targetdir=$MYSQLTEST_VARDIR/tmp/backup; - -CREATE TABLE `bobby``tables` (id INT, name VARCHAR(50), purchased DATE) ENGINE INNODB PARTITION BY RANGE( YEAR(purchased) ) ( - PARTITION p0 VALUES LESS THAN (1990), - PARTITION p1 VALUES LESS THAN (1995), - PARTITION p2 VALUES LESS THAN (2000), - PARTITION p3 VALUES LESS THAN (2005) -) ; - ---disable_result_log -exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir --lock-ddl-per-table=1 --dbug=+d,check_mdl_lock_works; ---enable_result_log -DROP TABLE t; -DROP TABLE `bobby``tables`; -rmdir $targetdir;
\ No newline at end of file diff --git a/mysql-test/suite/mariabackup/nolock_ddl_during_backup_end.test b/mysql-test/suite/mariabackup/nolock_ddl_during_backup_end.test deleted file mode 100644 index f6bc51bd9a6..00000000000 --- a/mysql-test/suite/mariabackup/nolock_ddl_during_backup_end.test +++ /dev/null @@ -1,14 +0,0 @@ ---source include/have_debug.inc -let $targetdir=$MYSQLTEST_VARDIR/tmp/backup; -mkdir $targetdir; - -CREATE TABLE t1(i int) ENGINE=INNODB; - -# this will table and populate it, after backup has list of tables to be copied ---let backup_fix_ddl=BEGIN NOT ATOMIC DROP TABLE test.t1;DO SLEEP(10000); END -echo # xtrabackup backup; ---disable_result_log -error 1; -exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir --no-lock --dbug=+d,mariabackup_events; ---enable_result_log -rmdir $targetdir; diff --git a/mysql-test/suite/mariabackup/rename_during_mdl_lock.test b/mysql-test/suite/mariabackup/rename_during_mdl_lock.test deleted file mode 100644 index 6d22e0db4a7..00000000000 --- a/mysql-test/suite/mariabackup/rename_during_mdl_lock.test +++ /dev/null @@ -1,21 +0,0 @@ ---source include/have_debug.inc -let $targetdir=$MYSQLTEST_VARDIR/tmp/backup; -mkdir $targetdir; -CREATE TABLE t1(i int) ENGINE INNODB; -exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir --lock-ddl-per-table --dbug=+d,rename_during_mdl_lock_table; - -echo # xtrabackup prepare; ---disable_result_log -exec $XTRABACKUP --prepare --target-dir=$targetdir; --- source include/restart_and_restore.inc ---enable_result_log -# the table was renamed from t1 to t2 -# make sure t1 does not exist, and t2 does - -CREATE TABLE t1(i int); -DROP TABLE t1; -SELECT * from t2; -DROP TABLE t2; - -rmdir $targetdir; - |