113 lines
3.6 KiB
Plaintext
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
|