[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.138.102.163: ~ $
#
# Currently this test only runs in the source tree with the 
# ndb/test programs compiled.
# invoke with:  ./mysql-test-run --ndb-extra-test --do-test=rpl_ndb_bank
#
# 1. start a "bank" application running on the master cluster
# 2. perform online sync of slave
# 3. periodically check consistency of slave
# 4. stop the bank application
# 5. check that the slave and master BANK databases are the same
#
 
--source include/have_ndb.inc
--source include/have_ndb_extra.inc
--source include/have_binlog_format_mixed_or_row.inc
--source suite/ndb_rpl/ndb_master-slave.inc

# kill any trailing processes
--system killall lt-bankTransactionMaker lt-bankTimer lt-bankMakeGL || true

--disable_warnings
# initialize master
--connection master
CREATE DATABASE IF NOT EXISTS BANK;
DROP DATABASE BANK;
CREATE DATABASE BANK default charset=latin1 default collate=latin1_bin;
--enable_warnings

#
# These tables should correspond to the table definitions in
# storage/ndb/test/src/NDBT_Tables.cpp
#
--connection master
USE BANK;
CREATE TABLE GL ( TIME BIGINT UNSIGNED NOT NULL,
                  ACCOUNT_TYPE INT UNSIGNED NOT NULL,
                  BALANCE INT UNSIGNED NOT NULL,
                  DEPOSIT_COUNT INT UNSIGNED NOT NULL,
                  DEPOSIT_SUM INT UNSIGNED NOT NULL,
                  WITHDRAWAL_COUNT INT UNSIGNED NOT NULL,
                  WITHDRAWAL_SUM INT UNSIGNED NOT NULL,
                  PURGED INT UNSIGNED NOT NULL,
                  PRIMARY KEY USING HASH (TIME,ACCOUNT_TYPE))
   ENGINE = NDB;

CREATE TABLE ACCOUNT ( ACCOUNT_ID INT UNSIGNED NOT NULL,
                       OWNER INT UNSIGNED NOT NULL,
                       BALANCE INT UNSIGNED NOT NULL,
                       ACCOUNT_TYPE INT UNSIGNED NOT NULL,
                       PRIMARY KEY USING HASH (ACCOUNT_ID))
   ENGINE = NDB;

CREATE TABLE TRANSACTION ( TRANSACTION_ID BIGINT UNSIGNED NOT NULL,
                           ACCOUNT INT UNSIGNED NOT NULL,
                           ACCOUNT_TYPE INT UNSIGNED NOT NULL,
                           OTHER_ACCOUNT INT UNSIGNED NOT NULL,
                           TRANSACTION_TYPE INT UNSIGNED NOT NULL,
                           TIME BIGINT UNSIGNED NOT NULL,
                           AMOUNT INT UNSIGNED NOT NULL,
                           PRIMARY KEY USING HASH (TRANSACTION_ID,ACCOUNT))
   ENGINE = NDB;

CREATE TABLE SYSTEM_VALUES ( SYSTEM_VALUES_ID INT UNSIGNED NOT NULL,
                             VALUE BIGINT UNSIGNED NOT NULL,
                             PRIMARY KEY USING HASH (SYSTEM_VALUES_ID))
   ENGINE = NDB;

CREATE TABLE ACCOUNT_TYPE ( ACCOUNT_TYPE_ID INT UNSIGNED NOT NULL,
                            DESCRIPTION CHAR(64) NOT NULL,
                            PRIMARY KEY USING HASH (ACCOUNT_TYPE_ID))
   ENGINE = NDB;

#
# create "BANK" application
#
--exec NDB_CONNECTSTRING=$NDB_CONNECTSTRING ../storage/ndb/test/ndbapi/bank/bankCreator --skip-create >> $NDB_TOOLS_OUTPUT

#
# start main loop
# repeat backup-restore-check
#

# set this high if testing to run many syncs in loop
--let $2=1
while ($2)
{

#
# start "BANK" application
#
--exec NDB_CONNECTSTRING=$NDB_CONNECTSTRING ../storage/ndb/test/ndbapi/bank/bankTimer -w 5 >> $NDB_TOOLS_OUTPUT &
--exec NDB_CONNECTSTRING=$NDB_CONNECTSTRING ../storage/ndb/test/ndbapi/bank/bankMakeGL >> $NDB_TOOLS_OUTPUT &
--exec NDB_CONNECTSTRING=$NDB_CONNECTSTRING ../storage/ndb/test/ndbapi/bank/bankTransactionMaker >> $NDB_TOOLS_OUTPUT &

#
# let the "BANK" run for a while
#
--sleep 5

--disable_warnings
# initialize slave for sync
--connection slave
STOP SLAVE;
RESET SLAVE;
# to make sure we drop any ndbcluster tables
CREATE DATABASE IF NOT EXISTS BANK;
DROP DATABASE BANK;
# create database
CREATE DATABASE BANK;
--enable_warnings

#
# Time to sync the slave:
# start by taking a backup on master
--connection master
RESET MASTER;
--exec $NDB_MGM --no-defaults --ndb-connectstring="$NDB_CONNECTSTRING" -e "start backup" >> $NDB_TOOLS_OUTPUT

# there is no neat way to find the backupid, this is a hack to find it...
--exec $NDB_SELECT_ALL --ndb-connectstring="$NDB_CONNECTSTRING" -d sys --delimiter=',' SYSTAB_0 | grep 520093696 > $MYSQLTEST_VARDIR/tmp.dat
CREATE TABLE IF NOT EXISTS mysql.backup_info (id INT, backup_id INT) ENGINE = HEAP;
DELETE FROM mysql.backup_info;
LOAD DATA INFILE '../tmp.dat' INTO TABLE mysql.backup_info FIELDS TERMINATED BY ',';
--remove_file $MYSQLTEST_VARDIR/tmp.dat
--replace_column 1 <the_backup_id>
SELECT @the_backup_id:=backup_id FROM mysql.backup_info;
let the_backup_id=`select @the_backup_id`;

# restore on slave, first check that nothing is there
--connection slave
--exec $NDB_RESTORE --no-defaults --ndb-connectstring="$NDB_CONNECTSTRING_SLAVE" -p 8 -b $the_backup_id -n 1 -m -r --print --print_meta $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT
--exec $NDB_RESTORE --no-defaults --ndb-connectstring="$NDB_CONNECTSTRING_SLAVE" -p 8 -b $the_backup_id -n 2 -r -e --print --print_meta $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT

#
# now setup replication to continue from last epoch
--source include/ndb_setup_slave.inc
--connection slave
START SLAVE;


#
# Now loop and check consistency every 2 seconds on slave
#
--connection slave
--let $1=10
while ($1)
{
  --sleep 2
  --replace_result $MASTER_MYPORT MASTER_PORT
  --replace_column 1 <Slave_IO_State> 7 <Read_Master_Log_Pos> 8 <Relay_Log_File> 9 <Relay_Log_Pos> 16 <Replicate_Ignore_Table> 22 <Exec_Master_Log_Pos> 23 <Relay_Log_Space> 33 <Seconds_Behind_Master> 34 <Last_IO_Errno> 35 <Last_IO_Error>
  SHOW SLAVE STATUS;
  STOP SLAVE;
  --exec NDB_CONNECTSTRING=$NDB_CONNECTSTRING_SLAVE ../storage/ndb/test/ndbapi/bank/bankValidateAllGLs >> $NDB_TOOLS_OUTPUT
  START SLAVE;
  --dec $1
}

#
# Stop transactions
#
--exec killall lt-bankTransactionMaker lt-bankTimer lt-bankMakeGL

#
# Check that the databases are the same on slave and master
# 1. dump database BANK on both master and slave
# 2. compare, there should be no difference
#
--exec $MYSQL_DUMP --compact --order-by-primary --skip-extended-insert --no-create-info BANK ACCOUNT_TYPE ACCOUNT GL TRANSACTION > $MYSQLTEST_VARDIR/tmp/master_BANK.sql
--connection master
use test;
create table t1 (a int primary key) engine=ndb;
insert into t1 values (1);
--sync_slave_with_master
--exec $MYSQL_DUMP_SLAVE --compact --order-by-primary --skip-extended-insert --no-create-info BANK ACCOUNT_TYPE ACCOUNT GL TRANSACTION > $MYSQLTEST_VARDIR/tmp/slave_BANK.sql
--connection master
drop table t1;

diff_files $MYSQLTEST_VARDIR/tmp/master_BANK.sql $MYSQLTEST_VARDIR/tmp/slave_BANK.sql;

  --dec $2
}
--source include/rpl_end.inc

Filemanager

Name Type Size Permission Actions
disabled.def File 688 B 0644
ndb_apply_status.frm File 8.51 KB 0644
ndb_conflict_info.inc File 1013 B 0644
ndb_conflict_info_init.inc File 692 B 0644
ndb_rpl_2innodb-master.opt File 32 B 0644
ndb_rpl_2innodb-slave.opt File 56 B 0644
ndb_rpl_2innodb.test File 1.63 KB 0644
ndb_rpl_2multi_basic.inc File 3.42 KB 0644
ndb_rpl_2multi_eng.inc File 10.33 KB 0644
ndb_rpl_2myisam-master.opt File 25 B 0644
ndb_rpl_2myisam-slave.opt File 47 B 0644
ndb_rpl_2myisam.test File 1.6 KB 0644
ndb_rpl_2ndb-slave.opt File 58 B 0644
ndb_rpl_2ndb.test File 648 B 0644
ndb_rpl_2other-slave.opt File 54 B 0644
ndb_rpl_2other.test File 2.18 KB 0644
ndb_rpl_add_column.test File 3.56 KB 0644
ndb_rpl_apply_status-master.opt File 28 B 0644
ndb_rpl_apply_status.test File 1.29 KB 0644
ndb_rpl_auto_inc.test File 3.98 KB 0644
ndb_rpl_bank.test File 6.47 KB 0644
ndb_rpl_basic.test File 11.29 KB 0644
ndb_rpl_binlog_format_errors.test File 3.26 KB 0644
ndb_rpl_bitfield.test File 7.9 KB 0644
ndb_rpl_blob.test File 3.91 KB 0644
ndb_rpl_break_3_chain.cnf File 1.71 KB 0644
ndb_rpl_break_3_chain.test File 3.53 KB 0644
ndb_rpl_bug22045.test File 2.2 KB 0644
ndb_rpl_check_for_mixed.test File 804 B 0644
ndb_rpl_circular.test File 4.21 KB 0644
ndb_rpl_circular_2ch.cnf File 878 B 0644
ndb_rpl_circular_2ch.test File 4.21 KB 0644
ndb_rpl_circular_2ch_rep_status.cnf File 183 B 0644
ndb_rpl_circular_2ch_rep_status.test File 9.01 KB 0644
ndb_rpl_circular_simplex.test File 2.22 KB 0644
ndb_rpl_conflict.test File 9.99 KB 0644
ndb_rpl_conflict_1.inc File 5.15 KB 0644
ndb_rpl_conflict_epoch.cnf File 561 B 0644
ndb_rpl_conflict_epoch.test File 6.86 KB 0644
ndb_rpl_conflict_epoch_1.inc File 12.36 KB 0644
ndb_rpl_conflict_max-master.opt File 28 B 0644
ndb_rpl_conflict_max.test File 2.83 KB 0644
ndb_rpl_conflict_max_delete_win-master.opt File 28 B 0644
ndb_rpl_conflict_max_delete_win.test File 2.86 KB 0644
ndb_rpl_conflict_old-master.opt File 28 B 0644
ndb_rpl_conflict_old.test File 2.83 KB 0644
ndb_rpl_ctype_ucs2_def-master.opt File 70 B 0644
ndb_rpl_ctype_ucs2_def.test File 1.13 KB 0644
ndb_rpl_dd_advance.test File 10.04 KB 0644
ndb_rpl_dd_basic.test File 1.38 KB 0644
ndb_rpl_dd_partitions-master.opt File 11 B 0644
ndb_rpl_dd_partitions-slave.opt File 11 B 0644
ndb_rpl_dd_partitions.test File 8.53 KB 0644
ndb_rpl_do_db-slave.opt File 26 B 0644
ndb_rpl_do_db.test File 1.52 KB 0644
ndb_rpl_do_table-slave.opt File 29 B 0644
ndb_rpl_do_table.test File 1.21 KB 0644
ndb_rpl_empty_epoch.test File 934 B 0644
ndb_rpl_gap_event-master.opt File 24 B 0644
ndb_rpl_gap_event.test File 1.52 KB 0644
ndb_rpl_get_binlog_events.inc File 1.09 KB 0644
ndb_rpl_idempotent.test File 2.95 KB 0644
ndb_rpl_ignore_db-master.opt File 25 B 0644
ndb_rpl_ignore_db.test File 1.07 KB 0644
ndb_rpl_init_rep_status.test File 2.95 KB 0644
ndb_rpl_innodb2ndb-master.opt File 9 B 0644
ndb_rpl_innodb2ndb-slave.opt File 42 B 0644
ndb_rpl_innodb2ndb.test File 714 B 0644
ndb_rpl_innodb_trans-slave.opt File 34 B 0644
ndb_rpl_innodb_trans.test File 1.54 KB 0644
ndb_rpl_load.test File 2.34 KB 0644
ndb_rpl_logging.test File 3.76 KB 0644
ndb_rpl_mix_eng_trans-master.opt File 9 B 0644
ndb_rpl_mix_eng_trans-slave.opt File 9 B 0644
ndb_rpl_mix_eng_trans.test File 8.84 KB 0644
ndb_rpl_mix_innodb-master.opt File 41 B 0644
ndb_rpl_mix_innodb.test File 533 B 0644
ndb_rpl_mixed_tables-master.opt File 22 B 0644
ndb_rpl_mixed_tables-slave.opt File 70 B 0644
ndb_rpl_mixed_tables.test File 8.35 KB 0644
ndb_rpl_multi.test File 2.68 KB 0644
ndb_rpl_multi_binlog_update.cnf File 1.85 KB 0644
ndb_rpl_multi_binlog_update.inc File 6.78 KB 0644
ndb_rpl_multi_update2-slave.opt File 42 B 0644
ndb_rpl_myisam2ndb-slave.opt File 42 B 0644
ndb_rpl_myisam2ndb.test File 672 B 0644
ndb_rpl_ndbapi_multi.test File 614 B 0644
ndb_rpl_relayrotate-slave.opt File 57 B 0644
ndb_rpl_rep_error.test File 2.29 KB 0644
ndb_rpl_rep_ignore-slave.opt File 63 B 0644
ndb_rpl_rep_ignore.test File 1.58 KB 0644
ndb_rpl_skip_gap_event-slave.opt File 24 B 0644
ndb_rpl_skip_gap_event.test File 1.65 KB 0644
ndb_rpl_slave_lsu.cnf File 57 B 0644
ndb_rpl_slave_lsu.test File 5.66 KB 0644
ndb_rpl_slave_lsu_anyval.cnf File 176 B 0644
ndb_rpl_slave_lsu_anyval.test File 2.25 KB 0644
ndb_rpl_slave_restart.test File 2.87 KB 0644
ndb_rpl_stm_innodb-master.opt File 41 B 0644
ndb_rpl_stm_innodb.test File 622 B 0644
ndb_rpl_sync.test File 3.02 KB 0644
ndb_rpl_ui.test File 1.2 KB 0644
ndb_rpl_ui2.test File 747 B 0644
ndb_rpl_ui3.test File 1.3 KB 0644
ndb_rpl_xxx_innodb.inc File 6.22 KB 0644
rpl_truncate_7ndb.test File 1.58 KB 0644
rpl_truncate_7ndb_2.test File 383 B 0644
select_ndb_apply_status.inc File 505 B 0644
wait_schema_logging.inc File 2.33 KB 0644