[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@52.14.7.103: ~ $
#############################################
#Authors:    TU and Jeb
#Date:       2007/04
#Purpose:    Generic replication to cluster
#            and ensuring that the ndb_apply_status
#            table is updated.
#############################################
# Notes: 
# select_ndb_apply_status.inc
# Selects out the log name, start & end pos
# from the ndb_apply_status table
#
# include/show_binlog_using_logname.inc
# To select out 1 row from offset 1
# from the start position in the binlog whose
# name is = log_name
#
# include/tpcb.inc
# Creates DATABASE tpcb, the tables and 
# stored procedures for loading the DB
# and for running transactions against DB.
##############################################


--echo
--echo *** Test 1 ***
--echo

connection master;
create table t1 (a int key, b int) engine innodb;
create table t2 (a int key, b int) engine innodb;

--echo

--sync_slave_with_master
alter table t1 engine ndb;
alter table t2 engine ndb;

--echo

# check binlog position without begin
connection master;
insert into t1 values (1,2);

--echo

--sync_slave_with_master
--source suite/ndb_rpl/t/select_ndb_apply_status.inc

--echo

connection master;
--echo # Now check that that is in the apply_status table is consistant
--echo # with what is in the binlog
--echo
--echo # since insert is done with transactional engine, expect a BEGIN
--echo # at <start_pos>
--echo
--let $binlog_start= $start_pos
--let $binlog_limit= 1
--source include/show_binlog_events.inc

--echo
--echo # Now the insert, one step after
--echo
--let $binlog_start= $start_pos
--let $binlog_limit= 1,1
--source include/show_binlog_events.inc

--echo
--echo # and the COMMIT should be at <end_pos>
--echo
--let $binlog_start= $start_pos
--let $binlog_limit= 2,1
--source include/show_binlog_events.inc

--echo

# check binlog position with begin
begin;
insert into t1 values (2,3);
insert into t2 values (3,4);
commit;

--echo

--sync_slave_with_master
--source suite/ndb_rpl/t/select_ndb_apply_status.inc

connection master;
--let $binlog_start= $start_pos
--let $binlog_limit= 1
--source include/show_binlog_events.inc
--echo
--let $binlog_start= $start_pos
--let $binlog_limit= 1,2
--source include/show_binlog_events.inc
--echo
--let $binlog_start= $start_pos
--let $binlog_limit= 3,1
--source include/show_binlog_events.inc

--echo

connection master;
DROP TABLE test.t1, test.t2;
--sync_slave_with_master
SHOW TABLES;

# Run in some transactions using stored procedures
# and ensure that the ndb_apply_status table is 
# updated to show the transactions


--echo
--echo *** Test 2 ***
--echo

# Create database/tables and stored procdures
connection master;
--source include/tpcb.inc

# Switch tables on slave to use NDB 
--sync_slave_with_master
USE tpcb;
ALTER TABLE account ENGINE NDB;
ALTER TABLE branch ENGINE NDB;
ALTER TABLE teller ENGINE NDB;
ALTER TABLE history ENGINE NDB;

--echo

# Load DB tpcb and run some transactions
connection master;
--disable_query_log
CALL tpcb.load();
SET AUTOCOMMIT=0;
let $run= 5;
while ($run)
{
 START TRANSACTION;
 --eval CALL tpcb.trans($rpl_format);
 eval SET @my_errno= $mysql_errno;
 let $run_good= `SELECT @my_errno = 0`;
 let $run_bad= `SELECT @my_errno <> 0`;
 if ($run_good)
 {
   COMMIT;
 }
 if ($run_bad)
 {
   ROLLBACK;
 }
 dec $run;
}

SET AUTOCOMMIT=1;
--enable_query_log

--sync_slave_with_master
--source suite/ndb_rpl/t/select_ndb_apply_status.inc

--echo

connection master;
--source  include/show_binlog_using_logname.inc

# Flush the logs on the master moving all
# Transaction to a new binlog and ensure
# that the ndb_apply_status table is updated
# to show the use of the new binlog.

--echo
--echo ** Test 3 **
--echo

# Flush logs on master which should force it
# to switch to binlog #2

FLUSH LOGS;

# Run in some transaction to increase end pos in
# binlog

--disable_query_log
SET AUTOCOMMIT=0;
let $run= 5;
while ($run)
{
 START TRANSACTION;
 --eval CALL tpcb.trans($rpl_format);
 eval SET @my_errno= $mysql_errno;
 let $run_good= `SELECT @my_errno = 0`;
 let $run_bad= `SELECT @my_errno <> 0`;
 if ($run_good)
 {
   COMMIT;
 }
 if ($run_bad)
 {
   ROLLBACK;
 }
 dec $run;
}
SET AUTOCOMMIT=1;
--enable_query_log

--echo

--sync_slave_with_master
--source suite/ndb_rpl/t/select_ndb_apply_status.inc

--echo

connection master;
--source  include/show_binlog_using_logname.inc

# Now we reset both the master and the slave
# Run some more transaction and ensure
# that the ndb_apply_status is updated
# correctly

--echo
--echo ** Test 4 **
--echo

# Reset both slave and master
# This should reset binlog to #1
--source include/rpl_reset.inc

--echo

# Run in some transactions and check
connection master;
--disable_query_log
SET AUTOCOMMIT=0;
let $run= 5;
while ($run)
{
 START TRANSACTION;
 --eval CALL tpcb.trans($rpl_format);
 eval SET @my_errno= $mysql_errno;
 let $run_good= `SELECT @my_errno = 0`;
 let $run_bad= `SELECT @my_errno <> 0`;
 if ($run_good)
 {
   COMMIT;
 }
 if ($run_bad)
 {
   ROLLBACK;
 }
 dec $run;
}
SET AUTOCOMMIT=1;
--enable_query_log

--sync_slave_with_master
--source suite/ndb_rpl/t/select_ndb_apply_status.inc

--echo

connection master;
--source include/show_binlog_using_logname.inc

# Since we are doing replication, it is a good
# idea to check to make sure all data was 
# Replicated correctly

--echo
--echo *** DUMP MASTER & SLAVE FOR COMPARE ********

--exec $MYSQL_DUMP -n -t --compact --order-by-primary --skip-extended-insert tpcb account teller branch history > $MYSQLTEST_VARDIR/tmp/master_apply_status.sql

--exec $MYSQL_DUMP_SLAVE -n -t --compact --order-by-primary --skip-extended-insert tpcb account teller branch history > $MYSQLTEST_VARDIR/tmp/slave_apply_status.sql

connection master;
DROP DATABASE tpcb;

--sync_slave_with_master

####### Commenting out until decision on Bug#27960 ###########

#--source suite/ndb_rpl/t/select_ndb_apply_status.inc

#connection master;
#--eval SHOW BINLOG EVENTS in '$log_name' from $start_pos
#--source include/show_binlog_using_logname.inc

--echo ****** Do dumps compare ************


diff_files $MYSQLTEST_VARDIR/tmp/master_apply_status.sql $MYSQLTEST_VARDIR/tmp/slave_apply_status.sql;

## Note: Ths files should only get removed, if the above diff succeeds.

--remove_file $MYSQLTEST_VARDIR/tmp/master_apply_status.sql
--remove_file $MYSQLTEST_VARDIR/tmp/slave_apply_status.sql


# End of 5.1 Test

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