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; | ||
|  | 
 |