⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.124
Server IP:
50.28.103.30
Server:
Linux host.jcukjv-lwsites.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
Server Software:
nginx/1.28.0
PHP Version:
8.3.12
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
www
/
server
/
mysql
/
mysql-test
/
suite
/
innodb_undo
/
t
/
View File Name :
truncate.test
# # WL#6965: Truncate UNDO logs. # --source include/have_innodb_max_16k.inc --source include/have_undo_tablespaces.inc # The test is restarting the server to force undo truncation. --source include/not_embedded.inc --source include/big_test.inc --let $restart_parameters="restart: --innodb_undo_tablespaces=2 --innodb_rollback_segments=35" --source include/restart_mysqld.inc ################################################################################ # Test-case will test following scenarios. # # 1. Perform enough DML action so that undo tablespace size grows beyond # set threshold and then wait and see if it is being truncated. # ################################################################################ #----------------------------------------------------------------------------- # # create test-bed # let MYSQLD_DATADIR = `select @@datadir`; #----------------------------------------------------------------------------- # # 1. Perform enough DML action so that undo tablespace size grows beyond # set threshold and then wait and see if it is being truncated. # create table t1 (keyc int, c1 char(100), c2 char(100), primary key(keyc)) engine = innodb; delimiter |; CREATE PROCEDURE populate_t1() BEGIN DECLARE i INT DEFAULT 1; while (i <= 40000) DO insert into t1 values (i, 'a', 'b'); SET i = i + 1; END WHILE; END | delimiter ;| begin; call populate_t1(); delete from t1 where keyc < 20000; update t1 set c1 = 'mysql' where keyc > 20000; update t1 set c2 = 'oracle' where keyc > 20000; # commit; drop table t1; drop PROCEDURE populate_t1; let CHECKFILE = $MYSQLTEST_VARDIR/log/check.txt; perl; ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size1) = stat("$ENV{MYSQLD_DATADIR}/undo001"); ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size2) = stat("$ENV{MYSQLD_DATADIR}/undo002"); open(OUT, ">$ENV{CHECKFILE}") || die; print OUT "let \$size1='$size1,$size2';\n"; close(OUT); EOF SET GLOBAL innodb_fast_shutdown=0; --source include/shutdown_mysqld.inc --source $CHECKFILE perl; ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size1) = stat("$ENV{MYSQLD_DATADIR}/undo001"); ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size2) = stat("$ENV{MYSQLD_DATADIR}/undo002"); open(OUT, ">$ENV{CHECKFILE}") || die; print OUT "let \$size2='$size1,$size2';\n"; close(OUT); EOF --source $CHECKFILE if ($size1 == $size2) { echo Truncation did not happen: $size1 == $size2; } --let $restart_parameters= --source include/start_mysqld.inc