Weitere ähnliche Inhalte Ähnlich wie MySQL Developer Day conference: MySQL Replication and Scalability (20) Mehr von Shivji Kumar Jha (15) Kürzlich hochgeladen (20) MySQL Developer Day conference: MySQL Replication and Scalability2. 2 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Safe Harbour Statement
The following is intended to outline our general product direction. It is
intended for information purposes only, and may not be incorporated into any
contract.
It is not a commitment to deliver any material, code, or functionality, and
should not be relied upon in making purchasing decisions. The development,
release, and timing of any features or functionality described for Oracle’s
products remains at the sole discretion of Oracle.
3. 3 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Overview
MySQL Replication: Discover What's New
Overview: MySQL Replication
Consistency: Lossless Semi-Sync
Slave Throughput: Improved Multi-Threaded Slave
Flexibility: Multi-Source Replication
Monitoring: Performance_Schema Tables
Next steps
4. 4 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
“In my opinion, MySQL is the only database we
would ever trust to power the Zappos.com
website.”
"On any given day we can sell close to
300,000 tickets on the Web site using
MySQL as the database to search for
events. It is amazing."
"craigslist infrastructure could
not have handled the
exponential growth in traffic
without MySQL.”
“We are one of the largest MySQL
web sites in production
MySQL Replication In Action on the Web
“As a leader in our field, we are committed to
providing the best service to our users, and a
web experience that meets members
expectations and that starts with IT”
5. 5 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
What is
Replication?
6. 6 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Replication: Copy Changes Master → Slave
MySQL Master Server
●
Changes data
●
Sends changes to slave
MySQL Slave Server
●
Receives changes from master
●
Applies received changes to database
M S
7. 7 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Replication: Copy Changes Master → Slave
M M/S S
S
S
S
M
Server can be master, slave or both
Master can have multiple slaves
8. 8 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Replication: Copy Changes Master → Slave
S
M
M
Slave can only have one master
S
M
M
Slave can have multiple masters!
labs.mysql.com
labs
Yippee!
9. 9 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Replication: Copy Changes Master → Slave
M/S
Circular replication is also possible
M/S
M/S
M/S
M/S
M/S
10. 10 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Replication: Copy Changes Master → Slave
Filters on slave
SM
Replication
filter
I have a lot
of tables
I only have
table_1
11. 11 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Why Use
Replication?
12. 12 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Why Replication? – Performance
Read scale-out
M S
write clients read clients
13. 13 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Why Replication? – Performance
Read scale-out
M S
write clients read clients
More
reads?
More
slaves!
14. 14 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Why Replication? – Performance
Read scale-out
M S
S
S
S
M
write clients read clients read clients
write clients
More
reads?
More
slaves!
15. 15 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Why Replication? – Redundancy
If master crashes, promote slave to master
C
B
A
16. 16 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Why Replication? – Redundancy
If master crashes, promote slave to master
C
B
ACrash
17. 17 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Why Replication? – Redundancy
If master crashes, promote slave to master
C
B
A
B is the
new master
18. 18 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Why Replication? – Online backup/reporting
Expensive queries on slave(s)
M S
Regular clients
Reports
Big queries
Business intelligence
19. 19 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Why Replication? – Long-distance Data
Distribution
CB
BAAC
Image from
www.ginkgomaps.com
20. 20 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
How Does
Replication
Work?
21. 21 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
All Transactions Written to Binary Log
A
binary log
Client
22. 22 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
All Transactions Written to Binary Log
create table t (a int);
A
binary log
Client
23. 23 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
All Transactions Written to Binary Log
create table t (a int);
Table t
create...
A
binary log
Client
24. 24 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
All Transactions Written to Binary Log
create table t (a int);
insert into t values (1);
Table t
create...
A
binary log
Client
25. 25 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
All Transactions Written to Binary Log
create table t (a int);
insert into t values (1);
Table t
1
create...
insert...A
binary log
Client
26. 26 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Slave Initiates Replication
B
binary log
A
binary log
Client
1. Slave sends request
for replication to start
to master
2. Master sends stream
of replication data
to slave
27. 27 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Binary Log Sent to Slave, Re-applied
B
binary log
A
binary log
Client
28. 28 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
Binary Log Sent to Slave, Re-applied
B
binary log
A
binary log
Client
29. 29 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
Binary Log Sent to Slave, Re-applied
Table t
B
binary log
create...
A
binary log
Client
30. 30 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
Binary Log Sent to Slave, Re-applied
Table t Table t
create...
B
binary log
create...
A
binary log
Client
31. 31 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Binary Log Sent to Slave, Re-applied
Table t Table t
create...
B
binary log
create...
A
binary log
Client
32. 32 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Binary Log Sent to Slave, Re-applied
Table t
1
Table t
create...
B
binary log
create...
insert...A
binary log
Client
33. 33 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Binary Log Sent to Slave, Re-applied
Table t
1
Table t
1
create...
insert...B
binary log
create...
insert...A
binary log
Client
34. 34 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Actually, Transactions Land in Slave's Relay Log
B
binary logrelay log
A
binary log
Client
35. 35 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
Actually, Transactions Land in Slave's Relay Log
B
binary logrelay log
A
binary log
Client
36. 36 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
Actually, Transactions Land in Slave's Relay Log
B
binary logrelay log
create...
A
binary log
Client
Table t
37. 37 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
Actually, Transactions Land in Slave's Relay Log
B
binary log
create...
relay log
create...
A
binary log
Client
Table t
38. 38 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
Actually, Transactions Land in Slave's Relay Log
create...
B
binary log
create...
relay log
create...
A
binary log
Client
Table t Table t
39. 39 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
Replication is Asynchronous
create...
B
binary log
create...
relay log
create...
A
binary log
Client
Table t Table t
Transaction
applied here
and
copied here
THEN
applied here
THEN
ack'ed
40. 40 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Replication is Asynchronous
create...
B
binary log
create...
relay log
create...
A
binary log
Client
Table t Table t
Transaction
applied here
and
copied here
THEN
applied here
THEN
ack'ed
41. 41 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Replication is Asynchronous
create...
B
binary log
create...
relay log
create...
insert...A
binary log
Client
Table t
1
Table t
Transaction
applied here
and
copied here
THEN
applied here
THEN
ack'ed
42. 42 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Replication is Asynchronous
create...
B
binary log
create...
relay log
create...
insert...A
binary log
Client
Table t
1
Table t
Transaction
applied here
and
copied here
THEN
applied here
THEN
ack'ed
43. 43 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Replication is Asynchronous
create...
B
binary log
create...
insert...
relay log
create...
insert...A
binary log
Client
Table t
1
Table t
Transaction
applied here
and
copied here
THEN
applied here
THEN
ack'ed
44. 44 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Replication is Asynchronous
create...
insert...B
binary log
create...
insert...
relay log
create...
insert...A
binary log
Client
Table t
1
Table t
1Transaction
applied here
and
copied here
THEN
applied here
THEN
ack'ed
45. 45 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Overview
MySQL Replication: Discover What's New
Overview: MySQL Replication
Consistency: Lossless Semi-Sync
Slave Throughput: Improved Multi-Threaded Slave
Flexibility: Multi-Source Replication
Monitoring: Performance_Schema Tables
Next steps
46. 46 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
What is
Semi-Synchronous
Replication?
47. 47 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Asynchronous vs Semi-sync Replication
By default, replication is asynchronous
●
In parallel: Master acks to app and sends transaction to slave
●
Fast
●
Changes lost if master dies
MySQL 5.5: semi-synchronous replication possible
●
In sequence: slave receives transaction, then master acks to app
●
Slower: Master waits for slave
●
Less risk for lost updates
48. 48 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
Semi-Synchronous Replication (MySQL 5.5)
create...
B
binary log
create...
relay log
create...
A
binary log
Client
Table t Table t
Transaction
applied here
THEN
copied here
and
applied here
THEN
ack'ed
49. 49 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Semi-Synchronous Replication (MySQL 5.5)
create...
B
binary log
create...
relay log
create...
A
binary log
Client
Table t Table t
Transaction
applied here
and
applied here
THEN
copied here
THEN
ack'ed
50. 50 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Semi-Synchronous Replication (MySQL 5.5)
create...
B
binary log
create...
relay log
create...
insert...A
binary log
Client
Table t
1
Table t
Transaction
applied here
and
applied here
THEN
copied here
THEN
ack'ed
51. 51 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Semi-Synchronous Replication (MySQL 5.5)
create...
B
binary log
create...
insert...
relay log
create...
insert...A
binary log
Client
Table t
1
Table t
Transaction
applied here
and
applied here
THEN
copied here
THEN
ack'ed
52. 52 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Semi-Synchronous Replication (MySQL 5.5)
create...
B
binary log
create...
insert...
relay log
create...
insert...A
binary log
Client
Table t
1
Table t
Transaction
applied here
and
applied here
THEN
copied here
THEN
ack'ed
53. 53 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Semi-Synchronous Replication (MySQL 5.5)
create...
B
binary log
create...
insert...
relay log
create...
insert...A
binary log
Client
Table t
1
Table t
Transaction
applied here
and
applied here
THEN
copied here
THEN
ack'ed
1
2
Slave tells master
when to ack!
54. 54 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Semi-Synchronous Replication (MySQL 5.5)
create...
insert...B
binary log
create...
insert...
relay log
create...
insert...A
binary log
Client
Table t
1
Table t
1Transaction
applied here
and
applied here
THEN
copied here
THEN
ack'ed
55. 55 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
What's New in
Semi-Synchronous
Replication?
56. 56 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Loss-Less Semi-Sync Replication (MySQL 5.7.2)
MySQL 5.5:
semi-synchronous replication
●
Master commit
●
Slave receive
●
Client ack
.If master crashes
between 1 and 2,
committed data is lost
.Concurrent clients
may have seen the transaction
MySQL 5.7.2:
loss-less semi-sync replication
●
Slave receive
●
Master commit
●
Client ack
.If master crashes, all
committed data is on slave
57. 57 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
Loss-Less Semi-Sync Replication (MySQL 5.7.2)
create...
B
binary log
create...
relay log
create...
A
binary log
Client
Table t Table t
THEN com-
mitted here
and
applied here
Transaction
copied here
and
ack'ed
58. 58 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Loss-Less Semi-Sync Replication (MySQL 5.7.2)
create...
B
binary log
create...
relay log
create...
A
binary log
Client
Table t Table t
THEN com-
mitted here
and
applied here
Transaction
copied here
and
ack'ed
59. 59 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Loss-Less Semi-Sync Replication (MySQL 5.7.2)
create...
B
binary log
create...
insert...
relay log
create...
insert...A
binary log
Client
Table t Table t
and
applied here
THEN com-
mitted here
Transaction
copied here
and
ack'ed
60. 60 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Loss-Less Semi-Sync Replication (MySQL 5.7.2)
create...
B
binary log
create...
insert...
relay log
create...
insert...A
binary log
Client
Table t
1
Table t
and
applied here
Transaction
copied here
and
ack'ed
THEN com-
mitted here
61. 61 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Loss-Less Semi-Sync Replication (MySQL 5.7.2)
create...
B
binary log
create...
insert...
relay log
create...
insert...A
binary log
Client
Table t
1
Table t
and
applied here
Transaction
copied here
1
2
Slave tells master
when to commit!
and
ack'ed
THEN com-
mitted here
62. 62 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Loss-Less Semi-Sync Replication (MySQL 5.7.2)
create...
B
binary log
create...
insert...
relay log
create...
insert...A
binary log
Client
Table t
1
Table t
and
applied here
THEN com-
mitted here
Transaction
copied here
and
ack'ed
63. 63 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
create...
insert...
Loss-Less Semi-Sync Replication (MySQL 5.7.2)
create...
insert...B
binary log
create...
insert...
relay log
create...
insert...A
binary log
Client
Table t
1
Table t
1and
applied here
THEN com-
mitted here
Transaction
copied here
and
ack'ed
64. 64 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Loss-Less Semi-Sync Replication (MySQL 5.7.2)
Summary
●
MySQL 5.7.2: loss-less semi-synchronous replication possible
●
If master crashes, all committed data is on slave
●
To enable:
master> SET GLOBAL
rpl_semi_sync_master_wait_point = AFTER_SYNC;
●
(default: AFTER_COMMIT – for 5.5 behavior)
65. 65 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Overview
MySQL Replication: Discover What's New
Overview: MySQL Replication
Consistency: Lossless Semi-Sync
Slave Throughput: Improved Multi-Threaded Slave
Flexibility: Multi-Source Replication
Monitoring: Performance_Schema Tables
Next steps
66. 66 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
What is
Multi-Threaded
Slave?
67. 67 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
A
binary log
Before MySQL 5.6: Single-threaded slave
Improved Multi-Threaded Slave
B
relay logClient
Client
Client
68. 68 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
A
binary log
Before MySQL 5.6: Single-threaded slave
Improved Multi-Threaded Slave
B
relay log
Transactions
applied
in parallel
Client
Client
Client
Transactions
logged
in sequence
Transactions
applied
in sequence
69. 69 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
A
binary log
Before MySQL 5.6: Single-threaded slave
Improved Multi-Threaded Slave
B
relay log
Transactions
applied
in parallel
Client
Client
Client
Transactions
logged
in sequence
Transactions
applied
in sequence
Bottleneck!
70. 70 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
A
binary log
MySQL 5.6: Multi-threaded slave by database
Improved Multi-Threaded Slave
B
relay log
Transactions
applied
in parallel
Client
Client
Client
Transactions
logged
in sequence
Transactions
applied
in parallel
71. 71 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
A
binary log
MySQL 5.6: Multi-threaded slave by database
●
Different databases go to different threads
Improved Multi-Threaded Slave
B
relay logClient
Client
Client
DB1
DB2
DB3
72. 72 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
A
binary log
MySQL 5.6: Multi-threaded slave by database
●
Different databases go to different threads
●
Great for some applications, BUT:
●
No improvement if there is only one database
●
May break cross-database consistency
Improved Multi-Threaded Slave
B
relay logClient
Client
Client
DB1
DB2
DB3
73. 73 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
What's New in
Multi-Threaded
Slave?
74. 74 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
A
binary log
MySQL 5.7.2: Multi-threaded slave by master concurrency
●
Transactions that were prepared at the same time on master
cannot conflict
●
Master stores a logical timestamp in the binary log
●
Slave applies transactions with same timestamp in parallel
Improved Multi-Threaded Slave
B
relay logClient
Client
Client
75. 75 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
A
binary log
MySQL 5.7.2: Multi-threaded slave by master concurrency
●
Works always
●
Even for one-database applications
●
Consistent
Improved Multi-Threaded Slave
B
relay logClient
Client
Client
76. 76 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
A
binary log
MySQL 5.7.2: Multi-threaded slave by master concurrency
●
To enable:
slave> SET GLOBAL
slave_parallel_type = logical_clock;
(default: database – for 5.6 behavior)
Improved Multi-Threaded Slave
B
relay logClient
Client
Client
77. 77 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Overview
MySQL Replication: Discover What's New
Overview: MySQL Replication
Consistency: Lossless Semi-Sync
Slave Throughput: Improved Multi-Threaded Slave
Flexibility: Multi-Source Replication
Monitoring: Performance_Schema Tables
Next steps
78. 78 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Multi-Source Replication
What is
Multi-Source
Replication?
79. 79 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Multi-Source Replication
Before: Slave can have one master
Labs release: Slave can have multiple masters
S
M
M
80. 80 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Multi-Source Replication
Note
●
No conflict detection/resolution
●
Not update everywhere
●
Not synchronous
The masters must have conflict-free workloads!
81. 81 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Multi-Source Replication
Slave can have multiple masters
Preview release: labs.mysql.com
●
Not for production yet
●
Known and unknown limitations and bugs
●
Try it out and give feedback!
S
M
M
82. 82 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Why Use
Multi-Source
Replication?
83. 83 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Multi-Source Replication
for Data Analytics
Business Intelligence
Data analytics
Backup
etc
M
M
M
Database 2
Database 3
Database 1
S
Database 1, 2, 3
84. 84 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Multi-Source Replication
for Merging Shards
M
M
Shard 2
Shard 1
S
New Shard
85. 85 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
How Does
Multi-Source
Work?
86. 86 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Multi-Source Replication
relay log
relay log
relay log
A
B
C
D
87. 87 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Multi-Source + Multi-Threaded
relay log
relay log
relay log
A
B
C
D
88. 88 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Multi-Source Replication
D
relay log
relay log
relay log
A
B
C
D
Channel = Full slave pipeline
89. 89 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Multi-Source Replication
D
relay log
relay log
relay log
A
B
C
D
Channel = Full slave pipeline
Channels are named
my_channel
another_channel
third_channel
90. 90 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Multi-Source Replication
Setting up
CHANGE MASTER TO […] FOR CHANNEL = 'name'
91. 91 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Multi-Source Replication
Other replication commands:
START SLAVE […] FOR CHANNEL = 'name'
STOP SLAVE […] FOR CHANNEL = 'name'
RESET SLAVE […] FOR CHANNEL = 'name'
FLUSH RELAY LOGS FOR CHANNEL = 'name'
SHOW RELAY LOG EVENTS FOR CHANNEL = 'name'
START SLAVE […] FOR ALL CHANNELS
STOP SLAVE […] FOR ALL CHANNELS
RESET SLAVE […] FOR ALL CHANNELS
SELECT MASTER_POS_WAIT('file', pos[, timeout][, 'channel'])
92. 92 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Multi-Source Replication
Compatibility
CHANGE MASTER TO […] (with no channel specified)
START SLAVE […] (with no channel specified)
etc
… are the same as …
CHANGE MASTER TO […] FOR CHANNEL = ''
START SLAVE […] FOR CHANNEL = ''
etc
93. 93 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Overview
MySQL Replication: Discover What's New
Overview: MySQL Replication
Consistency: Lossless Semi-Sync
Slave Throughput: Improved Multi-Threaded Slave
Flexibility: Multi-Source Replication
Monitoring: Performance_Schema Tables
Next steps
94. 94 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Monitoring with Performance_Schema
Traditional replication monitoring:
SHOW SLAVE STATUS;
– Simple
– Not SQL friendly – no WHERE, no joins, etc
– Multi-source has per-source status
– Multi-threaded slave has per-applier status
5.7.2: Performance_Schema tables for replication slave
95. 95 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Monitoring with Performance_Schema
relay log
execute status
by coordinator
execute status
by worker
execute
configuration
execute
status
connection
configuration
connection
status
96. 96 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Monitoring with Performance_Schema
6 tables in performance_schema database:
replication_connection_configuration
replication_connection_status
replication_execute_configuration
replication_execute_status
replication_execute_status_by_coordinator
replication_execute_status_by_worker
Consistent semantics across tables
Consistent naming across tables
One row for each worker
in each multi-source channel
One row
for each
multi-source
channel
97. 97 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Monitoring with Performance_Schema
Example: Connection status
mysql> select * from performance_schema.replication_connection_statusG
*************************** 1. row ***************************
CHANNEL_NAME: CHANNEL1
SOURCE_UUID: 7cff740623ca11e3ac3e5c260a83b12b
THREAD_ID: 13
SERVICE_STATE: ON
RECEIVED_TRANSACTION_SET: 7cff740623ca11e3ac3e5c260a83b12b:14
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 00000000 00:00:00
*************************** 2. row ***************************
CHANNEL_NAME: CHANNEL2
⋮
One row for each channel
98. 98 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Monitoring with Performance_Schema
Example: Connection status
mysql> select * from performance_schema.replication_connection_statusG
*************************** 1. row ***************************
CHANNEL_NAME: CHANNEL1
SOURCE_UUID: 7cff740623ca11e3ac3e5c260a83b12b
THREAD_ID: 13
SERVICE_STATE: ON
RECEIVED_TRANSACTION_SET: 7cff740623ca11e3ac3e5c260a83b12b:14
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 00000000 00:00:00
*************************** 2. row ***************************
CHANNEL_NAME: CHANNEL2
⋮
The master's server_uuid
99. 99 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Monitoring with Performance_Schema
Example: Connection status
mysql> select * from performance_schema.replication_connection_statusG
*************************** 1. row ***************************
CHANNEL_NAME: CHANNEL1
SOURCE_UUID: 7cff740623ca11e3ac3e5c260a83b12b
THREAD_ID: 13
SERVICE_STATE: ON
RECEIVED_TRANSACTION_SET: 7cff740623ca11e3ac3e5c260a83b12b:14
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 00000000 00:00:00
*************************** 2. row ***************************
CHANNEL_NAME: CHANNEL2
⋮
Thread id and status
100. 100 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Monitoring with Performance_Schema
Example: Connection status
mysql> select * from performance_schema.replication_connection_statusG
*************************** 1. row ***************************
CHANNEL_NAME: CHANNEL1
SOURCE_UUID: 7cff740623ca11e3ac3e5c260a83b12b
THREAD_ID: 13
SERVICE_STATE: ON
RECEIVED_TRANSACTION_SET: 7cff740623ca11e3ac3e5c260a83b12b:14
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 00000000 00:00:00
*************************** 2. row ***************************
CHANNEL_NAME: CHANNEL2
⋮
Set of transactions
received through this channel
101. 101 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Monitoring with Performance_Schema
Example: Connection status
mysql> select * from performance_schema.replication_connection_statusG
*************************** 1. row ***************************
CHANNEL_NAME: CHANNEL1
SOURCE_UUID: 7cff740623ca11e3ac3e5c260a83b12b
THREAD_ID: 13
SERVICE_STATE: ON
RECEIVED_TRANSACTION_SET: 7cff740623ca11e3ac3e5c260a83b12b:14
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 00000000 00:00:00
*************************** 2. row ***************************
CHANNEL_NAME: CHANNEL2
⋮
Error status
102. 102 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Monitoring with Performance_Schema
Example: Connection status
mysql> select * from performance_schema.replication_connection_statusG
*************************** 1. row ***************************
CHANNEL_NAME: CHANNEL1
SOURCE_UUID: 7cff740623ca11e3ac3e5c260a83b12b
THREAD_ID: NULL
SERVICE_STATE: OFF
RECEIVED_TRANSACTION_SET: 7cff740623ca11e3ac3e5c260a83b12b:14
LAST_ERROR_NUMBER: 1045
LAST_ERROR_MESSAGE: error connecting to master 'me@host:13000' …
LAST_ERROR_TIMESTAMP: 20131109 21:03:23
*************************** 2. row ***************************
CHANNEL_NAME: CHANNEL2
⋮
Error status
103. 103 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Monitoring with Performance_Schema
Example: Connection status
mysql> select * from performance_schema.replication_connection_statusG
*************************** 1. row ***************************
CHANNEL_NAME: CHANNEL1
SOURCE_UUID: 7cff740623ca11e3ac3e5c260a83b12b
THREAD_ID: NULL
SERVICE_STATE: OFF
RECEIVED_TRANSACTION_SET: 7cff740623ca11e3ac3e5c260a83b12b:14
LAST_ERROR_NUMBER: 1045
LAST_ERROR_MESSAGE: error connecting to master 'me@host:13000' …
LAST_ERROR_TIMESTAMP: 20131109 21:03:23
*************************** 2. row ***************************
CHANNEL_NAME: CHANNEL2
⋮
Thread stopped
on error
104. 104 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Overview
MySQL Replication: Discover What's New
Overview: MySQL Replication
Consistency: Lossless Semi-Sync
Slave Throughput: Improved Multi-Threaded Slave
Flexibility: Multi-Source Replication
Monitoring: Performance_Schema Tables
Next steps
105. 105 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Try it out!
●
MySQL 5.6:
http://dev.mysql.com/downloads/mysql/
●
MySQL 5.7.4:
http://dev.mysql.com/downloads/mysql/5.7.html
●
Labs release:
http://labs.mysql.com
Read the manual!
●
http://dev.mysql.com/doc/refman/5.7/en/index.html
Next Steps
106. 106 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Send us feedback!
●
Shivji Kumar Jha
shivji.jha@oracle.com
●
Sven Sandberg
sven.sandberg@oracle.com
●
Luís Soares
luis.soares@oracle.com
File bugs!
●
http://bugs.mysql.com
Next Steps
107. 107 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.