mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
185 lines
5.3 KiB
Text
185 lines
5.3 KiB
Text
#
|
|
# The test checks that basic DDL and DML events are encrypted
|
|
# in the binary log on master.
|
|
# The test is to be run with all binlog formats
|
|
# (combinations for rpl_init.inc take care of that).
|
|
#
|
|
#
|
|
# The test runs with the encrypted master and non-encrypted slave.
|
|
# It generates a sequence of events on master, and checks that
|
|
# - all events are encrypted on master;
|
|
# - slave is able to replicate from the master;
|
|
# - relay logs and binary logs are not encrypted on slave.
|
|
#
|
|
# The same exercise is repeated
|
|
# - without annotated binlog events and without binlog checksums;
|
|
# - with binlog checksums;
|
|
# - with annotated events and binlog checksums;
|
|
# - with annotated events, default checksums and minimal binlog row image
|
|
#
|
|
|
|
--source include/have_partition.inc
|
|
--source encryption_algorithms.inc
|
|
--source include/have_innodb.inc
|
|
--enable_connect_log
|
|
|
|
--echo #################
|
|
--echo # Initialization
|
|
--echo #################
|
|
|
|
--disable_connect_log
|
|
--let $rpl_topology= 1->2
|
|
--source include/rpl_init.inc
|
|
--enable_connect_log
|
|
|
|
# We stop SQL thread because we want to have
|
|
# all relay logs at the end of the test flow
|
|
|
|
--connection server_2
|
|
--disable_connect_log
|
|
--source include/stop_slave_sql.inc
|
|
--enable_connect_log
|
|
|
|
--connection server_1
|
|
|
|
SET @binlog_annotate_row_events.save= @@global.binlog_annotate_row_events;
|
|
SET @binlog_checksum.save= @@global.binlog_checksum;
|
|
SET @master_verify_checksum.save= @@global.master_verify_checksum;
|
|
SET @binlog_row_image.save= @@global.binlog_row_image;
|
|
|
|
--echo ####################################################
|
|
--echo # Test 1: simple binlog, no checksum, no annotation
|
|
--echo ####################################################
|
|
|
|
--connection server_1
|
|
|
|
SET binlog_annotate_row_events= 0;
|
|
SET GLOBAL binlog_annotate_row_events= 0;
|
|
SET GLOBAL binlog_checksum= NONE;
|
|
SET GLOBAL master_verify_checksum= 0;
|
|
|
|
--source testdata.inc
|
|
|
|
--echo ####################################################
|
|
--echo # Test 2: binlog with checksum, no annotated events
|
|
--echo ####################################################
|
|
|
|
--connection server_1
|
|
|
|
SET binlog_annotate_row_events= 0;
|
|
SET GLOBAL binlog_annotate_row_events= 0;
|
|
SET GLOBAL binlog_checksum= CRC32;
|
|
SET GLOBAL master_verify_checksum= 1;
|
|
|
|
--source testdata.inc
|
|
|
|
--echo ####################################################
|
|
--echo # Test 3: binlog with checksum and annotated events
|
|
--echo ####################################################
|
|
|
|
--connection server_1
|
|
|
|
SET binlog_annotate_row_events= 1;
|
|
SET GLOBAL binlog_annotate_row_events= 1;
|
|
SET GLOBAL binlog_checksum= CRC32;
|
|
SET GLOBAL master_verify_checksum= 1;
|
|
|
|
--source testdata.inc
|
|
|
|
--echo ####################################################
|
|
--echo # Test 4: binlog with annotated events and binlog_row_image=minimal
|
|
--echo ####################################################
|
|
|
|
--connection server_1
|
|
|
|
SET binlog_annotate_row_events= 1;
|
|
SET GLOBAL binlog_annotate_row_events= 1;
|
|
SET GLOBAL binlog_checksum= NONE;
|
|
SET GLOBAL master_verify_checksum= 0;
|
|
SET GLOBAL binlog_row_image= MINIMAL;
|
|
SET binlog_row_image= MINIMAL;
|
|
|
|
--source testdata.inc
|
|
|
|
--echo #############################
|
|
--echo # Final checks for the master
|
|
--echo #############################
|
|
|
|
--let $master_datadir= `SELECT @@datadir`
|
|
|
|
--let SEARCH_RANGE = 500000
|
|
--let SEARCH_FILE= $master_datadir/master-bin.0*
|
|
--let SEARCH_PATTERN= _to_encrypt.*
|
|
--source include/search_pattern_in_file.inc
|
|
|
|
--let SEARCH_FILE= $master_datadir/master-bin.0*
|
|
--let SEARCH_PATTERN= COMMIT.*
|
|
--source include/search_pattern_in_file.inc
|
|
|
|
--let SEARCH_FILE= $master_datadir/master-bin.0*
|
|
--let SEARCH_PATTERN= TIMESTAMP.*
|
|
--source include/search_pattern_in_file.inc
|
|
|
|
--disable_connect_log
|
|
--source include/save_master_pos.inc
|
|
--enable_connect_log
|
|
|
|
--echo #############################
|
|
--echo # Final checks for the slave
|
|
--echo #############################
|
|
|
|
# Wait for the IO thread to write everything to relay logs
|
|
|
|
--connection server_2
|
|
|
|
--let $slave_datadir= `SELECT @@datadir`
|
|
|
|
--disable_connect_log
|
|
--source include/sync_io_with_master.inc
|
|
|
|
# Check that relay logs are unencrypted
|
|
|
|
--let SEARCH_FILE= $slave_datadir/slave-relay-bin.0*
|
|
--let SEARCH_PATTERN= _to_encrypt.*
|
|
--source include/search_pattern_in_file.inc
|
|
|
|
--let SEARCH_FILE= $slave_datadir/slave-relay-bin.0*
|
|
--let SEARCH_PATTERN= COMMIT.*
|
|
--source include/search_pattern_in_file.inc
|
|
|
|
--let SEARCH_FILE= $slave_datadir/slave-relay-bin.0*
|
|
--let SEARCH_PATTERN= TIMESTAMP.*
|
|
--source include/search_pattern_in_file.inc
|
|
|
|
|
|
# Re-enable SQL thread, let it catch up with IO thread
|
|
# and check slave binary logs
|
|
|
|
--source include/start_slave.inc
|
|
--source include/sync_slave_sql_with_io.inc
|
|
--enable_connect_log
|
|
|
|
--let SEARCH_FILE= $slave_datadir/slave-bin.0*
|
|
--let SEARCH_PATTERN= _to_encrypt.*
|
|
--source include/search_pattern_in_file.inc
|
|
|
|
--let SEARCH_FILE= $slave_datadir/slave-bin.0*
|
|
--let SEARCH_PATTERN= COMMIT.*
|
|
--source include/search_pattern_in_file.inc
|
|
|
|
--let SEARCH_FILE= $slave_datadir/slave-bin.0*
|
|
--let SEARCH_PATTERN= TIMESTAMP.*
|
|
--source include/search_pattern_in_file.inc
|
|
|
|
--echo ##########
|
|
--echo # Cleanup
|
|
--echo ##########
|
|
|
|
--connection server_1
|
|
SET GLOBAL binlog_annotate_row_events= @binlog_annotate_row_events.save;
|
|
SET GLOBAL binlog_checksum= @binlog_checksum.save;
|
|
SET GLOBAL master_verify_checksum= @master_verify_checksum.save;
|
|
SET GLOBAL binlog_row_image= @binlog_row_image.save;
|
|
|
|
--disable_connect_log
|
|
--source include/rpl_end.inc
|