403Webshell
Server IP : 104.21.38.3  /  Your IP : 108.162.226.233
Web Server : Apache
System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64
User : www ( 1000)
PHP Version : 7.4.33
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /www/server/mysql/src/mysql-test/suite/large_tests/t/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/server/mysql/src/mysql-test/suite/large_tests/t/innodb_innochecksum_3gb.test
#****************************************************************
# WL6045: Improve Innochecksum
# Check Innochecksum with ibd file size 3GB
# When server --default_storage_engine=InnoDB & tab2.ibd (CRC32)
# When server --default_storage_engine=CRC32  & tab2.ibd (None)
# Precondition : This testcase assumes 3GB disk space exist
# on the server where, it is kick off.
# How to run this testcase:
# ./mtr --big-test --suite=large_tests --suite-timeout=6360
# --testcase-timeout=6000 innodb_innochecksum_3gb.test
#****************************************************************

--source include/have_innodb.inc
--source include/not_embedded.inc
--source include/have_innodb_16k.inc

let MYSQLD_BASEDIR= `SELECT @@basedir`;
let MYSQLD_DATADIR= `SELECT @@datadir`;

--disable_warnings
DROP TABLE IF EXISTS tab2;

SHOW variables like '%innodb_checksum_algorithm%';
#check the default engine is always InnoDB after restart
SELECT @@default_storage_engine;

CREATE TABLE tab2(col_1 CHAR (255) ,
col_2 VARCHAR (255), col_3 longtext,
col_4 longtext,col_5 BLOB,
col_6 LONGBLOB , col_7 bigint)
engine = innodb ;

#create index on the compress table
CREATE INDEX idx1 ON tab2(col_3(10));
CREATE INDEX idx2 ON tab2(col_4(10));
CREATE INDEX idx3 ON tab2(col_5(10));

--echo # Generate a input text file for loading the table
perl;
$count=0;
my $MYSQLD_TMPDIR= $ENV{'MYSQLTEST_VARDIR'}."/tmp";
opendir(MYSQLDTMP, $MYSQLD_TMPDIR) or die $!;
open OUT_FILE, ">", "$MYSQLD_TMPDIR/input.dat" or die $!;
while ($count <= 500){
print OUT_FILE "aaaaaaa \t bbbbbbb \t cccccccccc \t dddddd \t eeeeee \t fffff \t $count \n";
$count++;
}
close(OUT_FILE);
closedir(MYSQLDTMP);
EOF

--echo # check whether file exist
--file_exists $MYSQLTEST_VARDIR/tmp/input.dat

--echo # load the data into the table

--disable_query_log

let $i = 14000;
while ($i) {
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval LOAD DATA INFILE '$MYSQLTEST_VARDIR/tmp/input.dat' IGNORE INTO TABLE tab2;
COMMIT;
dec $i;
}

--enable_query_log

# check the record count 7014000 ,to ensure ibd file size is 3GB
SELECT COUNT(*) FROM tab2;

--echo # Stop the server
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server 
--source include/wait_until_disconnected.inc

--echo # Rewrite the tab2.ibd file into new checksum=CRC32
--exec $INNOCHECKSUM --no-check --write=CRC32 $MYSQLD_DATADIR/test/tab2.ibd

--echo # Restart the DB server with default innodb_checksum_algorithm=InnoDB (Default)
--echo # no need to pass to the server.
--exec echo "restart:  --default_storage_engine=InnoDB " > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
--disable_reconnect

--echo # Load the with repeat function
SET @col_1 = repeat('A', 5);
SET @col_2 = repeat('B', 20);
SET @col_3 = repeat('D', 100);
SET @col_4 = repeat('E', 100);
SET @col_5 = repeat('F', 100);
SET @col_6 = repeat('G', 100);

--echo # Check the table status with DML
let $i = 1000;
eval INSERT INTO tab2(col_1,col_2,col_3,col_4,col_5,col_6,col_7)
VALUES (@col_1,@col_2,@col_3,@col_4,@cl_5,@col_6,$i);

--echo # Check with Read operation by record count
SELECT COUNT(*) FROM tab2 where col_7=1000;

--echo # Stop the server
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server 
--source include/wait_until_disconnected.inc

--echo # Rewrite the tab2.ibd file into new checksum=None
--exec $INNOCHECKSUM --no-check -w None $MYSQLD_DATADIR/test/tab2.ibd

--echo # Check the page type summary with longform for *.ibd
--replace_regex /File.*.ibd/File::tab2.ibd/ /[0-9]+/#/
--exec $INNOCHECKSUM --page-type-summary $MYSQLD_DATADIR/test/tab2.ibd

--echo # Page type dump for tab2.ibd
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
--exec $INNOCHECKSUM -D $MYSQL_TMP_DIR/dump.txt $MYSQLD_DATADIR/test/tab2.ibd

--echo # check whether dump.txt file exist
--file_exists $MYSQL_TMP_DIR/dump.txt

--echo # Restart the DB server with default innodb_checksum_algorithm=CRC32
--exec echo "restart: --innodb_checksum_algorithm=crc32 --default_storage_engine=InnoDB " > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
--disable_reconnect

# Check the server startup option of the checksum
SHOW variables like '%innodb_checksum_algorithm%';

--echo # Check the default engine is always InnoDB after restart
SELECT @@default_storage_engine;

--echo # Load the with repeat function
SET @col_1 = repeat('G', 5);
SET @col_2 = repeat('H', 20);
SET @col_3 = repeat('I', 100);
SET @col_4 = repeat('J', 100);
SET @col_5 = repeat('K', 100);
SET @col_6 = repeat('L', 100);

--echo # Check the table status with DML
let $i = 2000;
eval INSERT INTO tab2(col_1,col_2,col_3,col_4,col_5,col_6,col_7)
VALUES (@col_1,@col_2,@col_3,@col_4,@cl_5,@col_6,$i);

--echo # Check with Read operation that record count
SELECT COUNT(*) FROM tab2 where col_7=2000;

--enable_warnings
# Cleanup
DROP TABLE IF EXISTS tab2;

Youez - 2016 - github.com/yon3zu
LinuXploit