polardbxengine/mysql-test/suite/ndb/t/ndb_metadata_upgrade_basic....

113 lines
3.6 KiB
Plaintext

--source include/have_multi_ndb.inc
--source suite/ndb/include/backup_restore_setup.inc
#
# The table structure is as follows:
# CREATE TABLE t1 (
# a INT PRIMARY KEY,
# b VARCHAR(30)
# ) ENGINE NDB;
#
# INSERT INTO t1 VALUES
# (1, 'a'),
# (2, 'bb'),
# (3, 'ccc');
--exec $NDB_RESTORE -b 1 -n 1 -m -r --disable-indexes $NDB_SAVED_BACKUPS/metadata_upgrade_basic_backup >> $NDB_TOOLS_OUTPUT
--exec $NDB_RESTORE -b 1 -n 2 -r $NDB_SAVED_BACKUPS/metadata_upgrade_basic_backup >> $NDB_TOOLS_OUTPUT
--exec $NDB_RESTORE -b 1 -n 1 --rebuild-indexes $NDB_SAVED_BACKUPS/metadata_upgrade_basic_backup >> $NDB_TOOLS_OUTPUT
--echo Backup restored
# Test upgrade of the metadata during schema synchronization
--echo Restart server 1 to trigger schema synchronization
let $mysqld_name=mysqld.1.1;
--source include/restart_mysqld.inc
connection server2;
--echo Restart server 2 to trigger schema synchronization
let $mysqld_name=mysqld.2.1;
--source include/restart_mysqld.inc
# Turn off metadata check so it doesn't intefere with discovery/schema sync
SET @old_ndb_metadata_check_server2 = @@global.ndb_metadata_check;
SET GLOBAL ndb_metadata_check = false;
connection server1;
SET @old_ndb_metadata_check_server1 = @@global.ndb_metadata_check;
SET GLOBAL ndb_metadata_check = false;
SHOW CREATE TABLE t1;
--sorted_result
SELECT * FROM t1;
ALTER TABLE t1 DROP COLUMN b;
INSERT INTO t1 values (4),(5);
--sorted_result
SELECT * FROM t1;
DROP TABLE t1;
--exec $NDB_RESTORE -b 1 -n 1 -m -r --disable-indexes $NDB_SAVED_BACKUPS/metadata_upgrade_basic_backup >> $NDB_TOOLS_OUTPUT
--exec $NDB_RESTORE -b 1 -n 2 -r $NDB_SAVED_BACKUPS/metadata_upgrade_basic_backup >> $NDB_TOOLS_OUTPUT
--exec $NDB_RESTORE -b 1 -n 1 --rebuild-indexes $NDB_SAVED_BACKUPS/metadata_upgrade_basic_backup >> $NDB_TOOLS_OUTPUT
# Test upgrade of the metadata during discovery from NDB
SHOW CREATE TABLE t1;
--sorted_result
SELECT * FROM t1;
ALTER TABLE t1 DROP COLUMN b;
INSERT INTO t1 values (4),(5);
--sorted_result
SELECT * FROM t1;
DROP TABLE t1;
# Test upgrade of the metadata during automatic sync
# Store initial counts of both detected and synchronized objects
--let $initial_detected_count = query_get_value(SHOW STATUS LIKE 'Ndb_metadata_detected_count', Value, 1)
--let $initial_synced_count = query_get_value(SHOW STATUS LIKE 'Ndb_metadata_synced_count', Value, 1)
# Set low interval so changes are detected quickly
SET GLOBAL ndb_metadata_check = @old_ndb_metadata_check_server1;
SET @old_ndb_metadata_check_interval = @@global.ndb_metadata_check_interval;
SET GLOBAL ndb_metadata_check_interval = 0;
--exec $NDB_RESTORE -b 1 -n 1 -m -r --disable-indexes $NDB_SAVED_BACKUPS/metadata_upgrade_basic_backup >> $NDB_TOOLS_OUTPUT
--exec $NDB_RESTORE -b 1 -n 2 -r $NDB_SAVED_BACKUPS/metadata_upgrade_basic_backup >> $NDB_TOOLS_OUTPUT
--exec $NDB_RESTORE -b 1 -n 1 --rebuild-indexes $NDB_SAVED_BACKUPS/metadata_upgrade_basic_backup >> $NDB_TOOLS_OUTPUT
# Wait until the following 1 object change is detected:
# Table 'test.t1'
--let $expected_changes = 1
--let $max_wait = 30
--source wait_metadata_changes_detected.inc
# Changes have been detected, reset value
SET GLOBAL ndb_metadata_check_interval = @old_ndb_metadata_check_interval;
# Wait until the changes detected have been synced
--let $max_wait = 30
--source wait_metadata_synced.inc
--sorted_result
SELECT * FROM t1;
ALTER TABLE t1 DROP COLUMN b;
INSERT INTO t1 values (4),(5);
--sorted_result
SELECT * FROM t1;
DROP TABLE t1;
# Reset metadata check value
--connection server2
SET GLOBAL ndb_metadata_check = @old_ndb_metadata_check_server2;
--connection server1
SET GLOBAL ndb_metadata_check = @old_ndb_metadata_check_server1;
let NDB_RESTORE=;
--remove_file $NDB_TOOLS_OUTPUT