136 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
| # Test of mysqlhotcopy (perl script)
 | |
| # Author: Horst Hunger
 | |
| # Created: 2010-05-10
 | |
| 
 | |
| --source include/not_windows.inc
 | |
| --source include/not_embedded.inc
 | |
| --source include/have_dbi_dbd-mysql.inc
 | |
| 
 | |
| if (!$MYSQLHOTCOPY)
 | |
| {
 | |
|   # Fail the test if the mysqlhotcopy script is missing.
 | |
|   # If the tool's location changes, mysql-test-run.pl must be updated to
 | |
|   # reflect this (look for "MYSQLHOTCOPY").
 | |
|   die due to missing mysqlhotcopy tool;
 | |
| }
 | |
| 
 | |
| # NOTE (johnemb, 2011-01-26):
 | |
| #       In this test mysqlhotcopy (a perl script) is executed as a standalone
 | |
| #       executable, i.e. not necessarily using the perl interpreter in PATH,
 | |
| #       because that is how the documentation demonstrates it.
 | |
| #
 | |
| #       We include have_dbi_dbd-mysql.inc above so that the test will
 | |
| #       be skipped if Perl modules required by the mysqlhotcopy tool are not
 | |
| #       found when the script is run this way.
 | |
| 
 | |
| 
 | |
| let $MYSQLD_DATADIR= `SELECT @@datadir`;
 | |
| --disable_warnings
 | |
| DROP DATABASE IF EXISTS hotcopy_test;
 | |
| --enable_warnings
 | |
| CREATE DATABASE hotcopy_test;
 | |
| USE hotcopy_test;
 | |
| eval CREATE TABLE t1 (c1 int, c2 varchar(20)) ENGINE=$engine;
 | |
| eval CREATE TABLE t2 (c1 int, c2 varchar(20)) ENGINE=$engine;
 | |
| eval CREATE TABLE t3 (c1 int, c2 varchar(20)) ENGINE=$engine;
 | |
| 
 | |
| INSERT INTO t1 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb');
 | |
| INSERT INTO t2 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb');
 | |
| INSERT INTO t3 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb');
 | |
| 
 | |
| --replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
 | |
| --list_files $MYSQLD_DATADIR/hotcopy_test
 | |
| 
 | |
| # backup into another database in the same directory
 | |
| --replace_result $MASTER_MYSOCK MASTER_MYSOCK
 | |
| --exec $MYSQLHOTCOPY --quiet -S $MASTER_MYSOCK -u root hotcopy_test hotcopy_save
 | |
| 
 | |
| --replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
 | |
| --list_files $MYSQLD_DATADIR/hotcopy_save
 | |
| 
 | |
| USE hotcopy_save;
 | |
| SELECT * FROM t1;
 | |
| SELECT * FROM t2;
 | |
| SELECT * FROM t3;
 | |
| 
 | |
| # restore data into the original database with mysqlhotcopy
 | |
| if(`SELECT engine= 'MyISAM' FROM information_schema.tables WHERE table_name='t1'`)
 | |
| {
 | |
| USE hotcopy_test;
 | |
| DELETE FROM t1;
 | |
| SELECT * FROM t1;
 | |
| 
 | |
| --replace_result $MASTER_MYSOCK MASTER_MYSOCK
 | |
| --exec $MYSQLHOTCOPY --quiet --addtodest -S $MASTER_MYSOCK -u root hotcopy_save hotcopy_test
 | |
| 
 | |
| USE hotcopy_save;
 | |
| SELECT * FROM t1;
 | |
| SELECT * FROM t2;
 | |
| SELECT * FROM t3;
 | |
| }
 | |
| 
 | |
| USE hotcopy_test;
 | |
| DROP TABLE t2;
 | |
| --replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
 | |
| --list_files $MYSQLD_DATADIR/hotcopy_test
 | |
| 
 | |
| --replace_result $MASTER_MYSOCK MASTER_MYSOCK
 | |
| --exec $MYSQLHOTCOPY --quiet --addtodest -S $MASTER_MYSOCK -u root hotcopy_save hotcopy_test
 | |
| 
 | |
| FLUSH TABLES;
 | |
| SELECT * FROM t1;
 | |
| SELECT * FROM t2;
 | |
| SELECT * FROM t3;
 | |
| 
 | |
| # backup of db into a directory
 | |
| USE hotcopy_test;
 | |
| --replace_result $MASTER_MYSOCK MASTER_MYSOCK $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
 | |
| --exec $MYSQLHOTCOPY --quiet -S $MASTER_MYSOCK -u root hotcopy_test $MYSQLTEST_VARDIR/tmp
 | |
| --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
 | |
| --list_files $MYSQLTEST_VARDIR/tmp/hotcopy_test
 | |
| #--exec rm -rf $MYSQLTEST_VARDIR/tmp/hotcopy_test
 | |
| --remove_files_wildcard $MYSQLTEST_VARDIR/tmp/hotcopy_test *
 | |
| --rmdir $MYSQLTEST_VARDIR/tmp/hotcopy_test
 | |
| 
 | |
| # backup without full index files
 | |
| # reproduction of bug#53556, "--list_files" shows MYI files, which is wrong.
 | |
| DROP DATABASE hotcopy_save;
 | |
| --replace_result $MASTER_MYSOCK MASTER_MYSOCK
 | |
| --exec $MYSQLHOTCOPY --quiet --noindices -S $MASTER_MYSOCK -u root hotcopy_test hotcopy_save
 | |
| --replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
 | |
| --list_files $MYSQLD_DATADIR/hotcopy_save
 | |
| 
 | |
| # test of option "allowold"
 | |
| DROP DATABASE hotcopy_save;
 | |
| --replace_result $MASTER_MYSOCK MASTER_MYSOCK
 | |
| --exec $MYSQLHOTCOPY --quiet -S $MASTER_MYSOCK -u root hotcopy_test hotcopy_save
 | |
| --replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
 | |
| --list_files $MYSQLD_DATADIR/hotcopy_save
 | |
| --replace_result $MASTER_MYSOCK MASTER_MYSOCK
 | |
| --error 9,11,2304
 | |
| --exec $MYSQLHOTCOPY --quiet -S $MASTER_MYSOCK -u root hotcopy_test hotcopy_save
 | |
| --replace_result $MASTER_MYSOCK MASTER_MYSOCK
 | |
| --exec $MYSQLHOTCOPY --quiet --allowold -S $MASTER_MYSOCK -u root hotcopy_test hotcopy_save
 | |
| --replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
 | |
| --list_files $MYSQLD_DATADIR/hotcopy_save
 | |
| 
 | |
| # test of option "keepold"
 | |
| --replace_result $MASTER_MYSOCK MASTER_MYSOCK
 | |
| --exec $MYSQLHOTCOPY --quiet --keepold -S $MASTER_MYSOCK -u root hotcopy_test hotcopy_save
 | |
| --replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
 | |
| --list_files $MYSQLD_DATADIR/hotcopy_save_old
 | |
| --replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
 | |
| --list_files $MYSQLD_DATADIR/hotcopy_save
 | |
| 
 | |
| # test of option "suffix"
 | |
| --replace_result $MASTER_MYSOCK MASTER_MYSOCK
 | |
| --exec $MYSQLHOTCOPY --quiet --suffix=_cpy -S $MASTER_MYSOCK -u root hotcopy_test
 | |
| --replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
 | |
| --list_files $MYSQLD_DATADIR/hotcopy_test_cpy
 | |
| DROP DATABASE hotcopy_test_cpy;
 | |
| 
 | |
| DROP DATABASE hotcopy_test;
 | |
| DROP DATABASE hotcopy_save;
 | |
| DROP DATABASE hotcopy_save_old;
 | |
| 
 |