mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 20:12:31 +01:00
06d874ba90
5.6 files
146 lines
3.9 KiB
PHP
146 lines
3.9 KiB
PHP
# Test replication, when using special non-replicated tables.
|
|
#
|
|
# This test involve special statements that use non-replicated tables.
|
|
# Changes affecting non replicated tables are never written to the binlog.
|
|
# Executing these statements should work nicely with replication in all cases:
|
|
# - STATEMENT binlog format
|
|
# - MIXED binlog format
|
|
# - ROW binlog format.
|
|
|
|
RESET MASTER;
|
|
|
|
--disable_warnings
|
|
drop database if exists my_local_db;
|
|
--enable_warnings
|
|
|
|
create database my_local_db;
|
|
|
|
create table my_local_db.my_tx_table(a bigint) engine = innodb;
|
|
create table my_local_db.my_non_tx_table(a bigint) engine = myisam;
|
|
|
|
use test;
|
|
drop table if exists marker_start;
|
|
|
|
# --binlog-ignore-db only works with the current database.
|
|
use my_local_db;
|
|
|
|
insert into my_tx_table(a)
|
|
values (1000), (2000), (3000);
|
|
|
|
insert into my_non_tx_table(a)
|
|
values (1000), (2000), (3000);
|
|
|
|
use test;
|
|
drop table if exists marker_truncate;
|
|
|
|
use performance_schema;
|
|
truncate table events_waits_history;
|
|
truncate table events_waits_history_long;
|
|
|
|
use test;
|
|
truncate table performance_schema.events_statements_history_long;
|
|
truncate table performance_schema.host_cache;
|
|
|
|
use test;
|
|
drop table if exists marker_update;
|
|
|
|
use performance_schema;
|
|
update setup_instruments set enabled='NO';
|
|
update setup_instruments set timed='NO';
|
|
use test;
|
|
update performance_schema.setup_instruments set enabled='YES', timed='YES';
|
|
update performance_schema.threads set instrumented='YES';
|
|
|
|
use test;
|
|
drop table if exists marker_insert;
|
|
|
|
insert into performance_schema.setup_actors(`user`, `host`, `role`)
|
|
values ('XXX', 'XXX', 'XXX'),
|
|
('YYY', 'YYY', 'YYY'),
|
|
('ZZZ', 'ZZZ', 'ZZZ');
|
|
|
|
select * from performance_schema.setup_actors
|
|
where user in ('XXX', 'YYY', 'ZZZ') order by user;
|
|
|
|
insert into performance_schema.setup_objects
|
|
(object_type, object_schema, object_name, enabled, timed)
|
|
values ('TABLE', 'DB1', 'AAA', 'YES', 'YES'),
|
|
('TABLE', 'DB1', 'BBB', 'NO', 'NO'),
|
|
('TABLE', 'DB2', 'CCC', 'YES', 'NO'),
|
|
('TABLE', 'DB2', 'DDD', 'NO', 'YES');
|
|
|
|
select * from performance_schema.setup_objects
|
|
where object_schema like 'DB%' order by object_name;
|
|
|
|
use test;
|
|
drop table if exists marker_insert_select;
|
|
|
|
# Note:
|
|
# The queries used here do not make any sense (no semantic).
|
|
# What this test is interrested in, is check the behavior
|
|
# when replicating queries that mix both:
|
|
# - non replicated tables
|
|
# - replicated tables
|
|
|
|
use my_local_db;
|
|
insert into my_tx_table(a)
|
|
select thread_id from performance_schema.threads;
|
|
|
|
insert into my_non_tx_table(a)
|
|
select thread_id from performance_schema.threads;
|
|
|
|
insert into my_tx_table(a)
|
|
select id from information_schema.processlist;
|
|
|
|
insert into my_non_tx_table(a)
|
|
select id from information_schema.processlist;
|
|
|
|
insert into my_tx_table(a)
|
|
select thread_id from mysql.general_log;
|
|
|
|
insert into my_non_tx_table(a)
|
|
select thread_id from mysql.general_log;
|
|
|
|
insert into my_tx_table(a)
|
|
select thread_id from mysql.slow_log;
|
|
|
|
insert into my_non_tx_table(a)
|
|
select thread_id from mysql.slow_log;
|
|
|
|
insert into my_tx_table(a)
|
|
select Relay_log_pos from mysql.slave_relay_log_info;
|
|
|
|
insert into my_non_tx_table(a)
|
|
select Relay_log_pos from mysql.slave_relay_log_info;
|
|
|
|
insert into my_tx_table(a)
|
|
select Master_log_pos from mysql.slave_master_info;
|
|
|
|
insert into my_non_tx_table(a)
|
|
select Master_log_pos from mysql.slave_master_info;
|
|
|
|
insert into my_tx_table(a)
|
|
select Relay_log_pos from mysql.slave_worker_info;
|
|
|
|
insert into my_non_tx_table(a)
|
|
select Relay_log_pos from mysql.slave_worker_info;
|
|
|
|
use test;
|
|
drop table if exists marker_delete;
|
|
|
|
delete from performance_schema.setup_actors
|
|
where user in ('XXX', 'YYY', 'ZZZ');
|
|
|
|
delete from performance_schema.setup_objects
|
|
where object_schema like 'DB%';
|
|
|
|
use test;
|
|
drop table if exists marker_end;
|
|
|
|
drop database my_local_db;
|
|
|
|
# The content of the binlog dumped in the result file
|
|
# should not contain any references to non-replicated tables.
|
|
|
|
--source include/show_binlog_events.inc
|
|
|