mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
MDEV-6926: innodb_rows_updated is misleading on slav
Merged Facebook commit dd2d11be7aaf3be270e740fb95cbc4eacb52f4d7
authored by Rongrong Zhong from https://github.com/facebook/mysql-5.6
This fixes MySQL Bug #68220 innodb_rows_updated is misleading on slave
http://bugs.mysql.com/bug.php?id=68220
Added innodb_system_rows_read/inserted/updated/deleted counters
that are the equivalent of innodb_rows_* but that only account for
changes made to system databases (mysql, information_schame and
preformance_schema). These counters will be used on slaves to
differentiated the updates made on system databases from those made on
user databases.
innodb_rows_* status counters are not updated when innodb_system_rows_*
are updated.
dd2d11be7a
This commit is contained in:
59
mysql-test/suite/rpl/t/rpl_innodb_bug68220.test
Normal file
59
mysql-test/suite/rpl/t/rpl_innodb_bug68220.test
Normal file
@@ -0,0 +1,59 @@
|
||||
--source include/have_innodb.inc
|
||||
--source include/master-slave.inc
|
||||
|
||||
#
|
||||
# Bug#68220: innodb_rows_updated is misleading on slave when *info_repository=TABLE
|
||||
#
|
||||
|
||||
# clean previous tests
|
||||
--connection master
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS testdb.t1;
|
||||
DROP DATABASE IF EXISTS testdb;
|
||||
--enable_warnings
|
||||
--sync_slave_with_master
|
||||
|
||||
# created all the base variables at the beginning at the test
|
||||
--connection master
|
||||
select variable_value into @master_rows_read from information_schema.global_status where variable_name = 'innodb_rows_read';
|
||||
select variable_value into @master_rows_updated from information_schema.global_status where variable_name = 'innodb_rows_updated';
|
||||
select variable_value into @master_rows_deleted from information_schema.global_status where variable_name = 'innodb_rows_deleted';
|
||||
select variable_value into @master_rows_inserted from information_schema.global_status where variable_name = 'innodb_rows_inserted';
|
||||
select variable_value into @master_system_rows_read from information_schema.global_status where variable_name = 'innodb_system_rows_read';
|
||||
select variable_value into @master_system_rows_updated from information_schema.global_status where variable_name = 'innodb_system_rows_updated';
|
||||
select variable_value into @master_system_rows_deleted from information_schema.global_status where variable_name = 'innodb_system_rows_deleted';
|
||||
select variable_value into @master_system_rows_inserted from information_schema.global_status where variable_name = 'innodb_system_rows_inserted';
|
||||
|
||||
--connection slave
|
||||
select variable_value into @slave_rows_read from information_schema.global_status where variable_name = 'innodb_rows_read';
|
||||
select variable_value into @slave_rows_updated from information_schema.global_status where variable_name = 'innodb_rows_updated';
|
||||
select variable_value into @slave_rows_deleted from information_schema.global_status where variable_name = 'innodb_rows_deleted';
|
||||
select variable_value into @slave_rows_inserted from information_schema.global_status where variable_name = 'innodb_rows_inserted';
|
||||
select variable_value into @slave_system_rows_read from information_schema.global_status where variable_name = 'innodb_system_rows_read';
|
||||
select variable_value into @slave_system_rows_updated from information_schema.global_status where variable_name = 'innodb_system_rows_updated';
|
||||
select variable_value into @slave_system_rows_deleted from information_schema.global_status where variable_name = 'innodb_system_rows_deleted';
|
||||
select variable_value into @slave_system_rows_inserted from information_schema.global_status where variable_name = 'innodb_system_rows_inserted';
|
||||
|
||||
--connection master
|
||||
CREATE DATABASE testdb;
|
||||
USE testdb;
|
||||
CREATE TABLE testdb.t1 (i int NOT NULL PRIMARY KEY) ENGINE=InnoDB;
|
||||
|
||||
# insert a row and show counters on master and slave
|
||||
INSERT INTO testdb.t1 VALUES (1);
|
||||
--source suite/rpl/include/rpl_innodb_rows_counters.inc
|
||||
|
||||
# update the row and show counters on master and slave
|
||||
UPDATE t1 SET i=2 WHERE i=1;
|
||||
--source suite/rpl/include/rpl_innodb_rows_counters.inc
|
||||
|
||||
# delete the row and show counters on master and slave
|
||||
DELETE FROM t1 WHERE i=2;
|
||||
--source suite/rpl/include/rpl_innodb_rows_counters.inc
|
||||
|
||||
# clean the test
|
||||
DROP TABLE t1;
|
||||
DROP DATABASE testdb;
|
||||
--sync_slave_with_master
|
||||
|
||||
--source include/rpl_end.inc
|
||||
Reference in New Issue
Block a user