mariadb/mysql-test/include/maria_empty_logs.inc
Michael Widenius d6d63f4844 MDEV-16421 Make system tables crash safe
Make all system tables in mysql directory of type
engine=Aria

Privilege tables are using transactional=1
Statistical tables are using transactional=0, to allow them
to be quickly updated with low overhead.
Help tables are also using transactional=0 as these are only
updated at init time.

Other changes:
- Aria store engine is now a required engine
- Update comment for Aria tables to reflect their new usage
- Fixed that _ma_reset_trn_for_table() removes unlocked table
  from transaction table list. This was needed to allow one
  to lock and unlock system tables separately from other
  tables, for example when reading a procedure from mysql.proc
- Don't give a warning when using transactional=1 for engines
  that is using transactions. This is both logical and also
  to avoid warnings/errors when doing an alter of a privilege
  table to InnoDB.
- Don't abort on warnings from ALTER TABLE for changes that
  would be accepted by CREATE TABLE.
- New created Aria transactional tables are marked as not movable
  (as they include create_rename_lsn).
- bootstrap.test was changed to kill orignal server, as one
  can't anymore have two servers started at same time on same
  data directory and data files.
- Disable maria.small_blocksize as one can't anymore change
  aria block size after system tables are created.
- Speed up creation of help tables by using lock tables.
- wsrep_sst_resync now also copies Aria redo logs.
2018-08-14 12:18:38 +03:00

106 lines
3.2 KiB
PHP

# Maria help script.
# Cleans up all logs to give recovery a fresh start.
#
# Note that this script relies on the number of threads connect at start of
# this script, so one should run this script with a freshly started server
# for it to work.
#
# API: set mel_keep_control_file=1 if want to keep control file;
# uses vardir, port and socket.
connection default;
let $default_db=`select database()`;
let $MYSQLD_DATADIR= `SELECT @@datadir`;
#it will used at end of test for wait_for_status_var.inc primitive
#let $status_var= Threads_connected;
#let $status_var_value= query_get_value(SHOW STATUS LIKE 'Threads_connected', Value, 1);
connection admin;
-- echo * shut down mysqld, removed logs, restarted it
append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect;
wait-maria_empty_logs.inc
EOF
--source include/mysqladmin_shutdown.inc
--disable_warnings
if (!$mel_keep_control_file)
{
--error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log_control;
}
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000001;
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000002;
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000003;
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000004;
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000005;
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000006;
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000007;
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000008;
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000009;
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000010;
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000011;
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000012;
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000013;
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000014;
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000015;
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000016;
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000017;
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000018;
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000019;
-- error 0,1
remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000020;
# hope there are not more than these logs...
-- error 0,1
remove_file $MYSQLD_DATADIR/aria_recovery.trace;
--enable_warnings
append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect;
restart-maria_empty_logs.inc
EOF
connection default;
--source include/wait_until_connected_again.inc
# Make sure that all connections are restored
# This is disabled as 'Threads_connected' can't be trusted'
# (It may be affected by 'check_testcase()')
# --source include/wait_for_status_var.inc
# Restore current database as the effect of "use" was lost after restart
--disable_query_log
eval use $default_db;
--enable_query_log
#
# Ensure that we don't get warnings from mysql.priv (used by check_mysqld)
# or test running after this one.
#
--disable_query_log
--disable_warnings
--disable_result_log
show table status from mysql;
--enable_result_log
--enable_warnings
--enable_query_log