1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222
|
include/master-slave.inc
Warnings:
Note #### Sending passwords in plain text without SSL/TLS is extremely insecure.
Note #### Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
[connection master]
DROP TABLE IF EXISTS t1;
# Establish connection con1 (user=root)
# Establish connection con2 (user=root)
# Establish connection con3 (user=root)
# Establish connection con4 (user=root)
# reset replication to guarantee that master-bin.000001 is used
include/stop_slave.inc
RESET SLAVE;
RESET MASTER;
RESET MASTER;
CHANGE MASTER TO master_host="127.0.0.1",master_port=MASTER_PORT,master_user="root";
Warnings:
Note 1759 Sending passwords in plain text without SSL/TLS is extremely insecure.
Note 1760 Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
include/start_slave.inc
# Switch to connection con1
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=rocksdb;
INSERT INTO t1 VALUES(1);
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
START TRANSACTION WITH CONSISTENT SNAPSHOT;
ERROR HY000: Only REPEATABLE READ isolation level is supported for START TRANSACTION WITH CONSISTENT|SHARED|EXISTING SNAPSHOT in RocksDB Storage Engine.
START TRANSACTION WITH CONSISTENT ROCKSDB SNAPSHOT;
ERROR HY000: Only REPEATABLE READ isolation level is supported for START TRANSACTION WITH CONSISTENT|SHARED|EXISTING SNAPSHOT in RocksDB Storage Engine.
ROLLBACK;
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
START TRANSACTION WITH CONSISTENT ROCKSDB SNAPSHOT;
File Position Gtid_executed
master-bin.000001 531 UUID:1-2
# Switch to connection con2
INSERT INTO t1 VALUES(2);
INSERT INTO t1 VALUES(3);
# Switch to connection con1
SELECT * FROM t1;
a
1
COMMIT;
SELECT * FROM t1;
a
1
2
3
DROP TABLE t1;
# Switch to connection con1
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=rocksdb;
INSERT INTO t1 VALUES(1);
START TRANSACTION WITH CONSISTENT ROCKSDB SNAPSHOT;
File Position Gtid_executed
master-bin.000001 1510 UUID:1-7
START TRANSACTION WITH CONSISTENT ROCKSDB SNAPSHOT;
File Position Gtid_executed
master-bin.000001 1510 UUID:1-7
START TRANSACTION WITH CONSISTENT ROCKSDB SNAPSHOT;
File Position Gtid_executed
master-bin.000001 1510 UUID:1-7
START TRANSACTION WITH CONSISTENT ROCKSDB SNAPSHOT;
File Position Gtid_executed
master-bin.000001 1510 UUID:1-7
# Switch to connection con2
INSERT INTO t1 VALUES(2);
INSERT INTO t1 VALUES(3);
# Switch to connection con1
SELECT * FROM t1;
a
1
SELECT * INTO OUTFILE '<MYSQLTEST_VARDIR>/tmp/rpl_rocksdb_snapshot.out.file' FROM t1;
COMMIT;
# Switch to slave
CREATE TABLE t1_backup LIKE t1;
INSERT INTO t1_backup SELECT * FROM t1;
include/stop_slave.inc
RESET SLAVE;
RESET MASTER;
DELETE FROM t1;
LOAD DATA INFILE '<MYSQLTEST_VARDIR>/tmp/rpl_rocksdb_snapshot.out.file' INTO TABLE t1;
SELECT * FROM t1;
a
1
CHANGE MASTER TO master_host="127.0.0.1",master_port=MASTER_PORT,master_user="root",master_log_file="master-bin.000001",master_log_pos=binlog_pos;
Warnings:
Note 1759 Sending passwords in plain text without SSL/TLS is extremely insecure.
Note 1760 Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
include/start_slave.inc
SELECT * FROM t1;
a
1
2
3
SELECT * FROM t1_backup;
a
1
2
3
DROP TABLE t1_backup;
DROP TABLE t1;
# Switch to connection con1
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=rocksdb;
INSERT INTO t1 VALUES(1);
# async queries from con2
INSERT INTO t1 VALUES(2);
# async queries from con3
INSERT INTO t1 VALUES(21);
# Switch to connection con1
# Switch to connection con4
INSERT INTO t1 VALUES(9);
# Switch to connection con1
SELECT * INTO OUTFILE '<MYSQLTEST_VARDIR>/tmp/rpl_rocksdb_snapshot.out.file' FROM t1;
COMMIT;
# reap async statements
# Switch to slave
CREATE TABLE t1_backup LIKE t1;
INSERT INTO t1_backup SELECT * FROM t1;
include/stop_slave.inc
RESET SLAVE;
RESET MASTER;
DELETE FROM t1;
LOAD DATA INFILE '<MYSQLTEST_VARDIR>/tmp/rpl_rocksdb_snapshot.out.file' INTO TABLE t1;
CHANGE MASTER TO master_host="127.0.0.1",master_port=MASTER_PORT,master_user="root",master_log_file="master-bin.000001",master_log_pos=binlog_pos;
Warnings:
Note 1759 Sending passwords in plain text without SSL/TLS is extremely insecure.
Note 1760 Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
include/start_slave.inc
# sync and then query slave
ShouldBeZero
0
DROP TABLE t1_backup;
DROP TABLE t1;
# Switch to connection con1
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=rocksdb;
INSERT INTO t1 VALUES(1);
START TRANSACTION WITH CONSISTENT ROCKSDB SNAPSHOT;
File Position Gtid_executed
master-bin.000001 3688 UUID:1-18
START TRANSACTION WITH CONSISTENT ROCKSDB SNAPSHOT;
File Position Gtid_executed
master-bin.000001 3688 UUID:1-18
START TRANSACTION WITH CONSISTENT ROCKSDB SNAPSHOT;
File Position Gtid_executed
master-bin.000001 3688 UUID:1-18
START TRANSACTION WITH CONSISTENT ROCKSDB SNAPSHOT;
File Position Gtid_executed
master-bin.000001 3688 UUID:1-18
# Switch to connection con2
INSERT INTO t1 VALUES(2);
INSERT INTO t1 VALUES(3);
# Switch to connection con1
SELECT * FROM t1;
a
1
SELECT * INTO OUTFILE '<MYSQLTEST_VARDIR>/tmp/rpl_rocksdb_snapshot.out.file' FROM t1;
COMMIT;
# Switch to slave
CREATE TABLE t1_backup LIKE t1;
INSERT INTO t1_backup SELECT * FROM t1;
include/stop_slave.inc
RESET SLAVE;
RESET MASTER;
SET @@global.gtid_purged='gtid_executed_from_snapshot';
DELETE FROM t1;
LOAD DATA INFILE '<MYSQLTEST_VARDIR>/tmp/rpl_rocksdb_snapshot.out.file' INTO TABLE t1;
SELECT * FROM t1;
a
1
CHANGE MASTER TO master_host="127.0.0.1",master_port=MASTER_PORT,master_user="root", master_auto_position=1;
Warnings:
Note 1759 Sending passwords in plain text without SSL/TLS is extremely insecure.
Note 1760 Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
include/start_slave.inc
SELECT * FROM t1;
a
1
2
3
SELECT * FROM t1_backup;
a
1
2
3
DROP TABLE t1_backup;
DROP TABLE t1;
# Switch to connection con1
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=rocksdb;
INSERT INTO t1 VALUES(1);
# async queries from con2
INSERT INTO t1 VALUES(2);
# async queries from con3
INSERT INTO t1 VALUES(21);
# Switch to connection con1
# Switch to connection con4
INSERT INTO t1 VALUES(9);
# Switch to connection con1
SELECT * INTO OUTFILE '<MYSQLTEST_VARDIR>/tmp/rpl_rocksdb_snapshot.out.file' FROM t1;
COMMIT;
# reap async statements
# Switch to slave
CREATE TABLE t1_backup LIKE t1;
INSERT INTO t1_backup SELECT * FROM t1;
include/stop_slave.inc
RESET SLAVE;
RESET MASTER;
SET @@global.gtid_purged='gtid_executed_from_snapshot';
DELETE FROM t1;
LOAD DATA INFILE '<MYSQLTEST_VARDIR>/tmp/rpl_rocksdb_snapshot.out.file' INTO TABLE t1;
CHANGE MASTER TO master_host="127.0.0.1",master_port=MASTER_PORT,master_user="root", master_auto_position=1;
Warnings:
Note 1759 Sending passwords in plain text without SSL/TLS is extremely insecure.
Note 1760 Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
include/start_slave.inc
# sync and then query slave
ShouldBeZero
0
DROP TABLE t1_backup;
DROP TABLE t1;
# Switch to connection default + close connections con1 and con2
include/stop_slave.inc
CHANGE MASTER to master_auto_position=0;
include/start_slave.inc
include/rpl_end.inc
|