MySQL Developer Day conference: MySQL Replication and Scalability

Post on 27-Jan-2015

118 views 0 download

Tags:

description

The slide deck contains the latest developments in MySQL Replication. It covers: - An introduction to MySQL Replication - Scaling with Multi-threaded slaves - Data aggregation with Multi-source replication - Lossless failover with semi-synchronous replication - Replication Monitoring made easier

transcript

MySQL Replication and Scalability

Shivji JhaSoftware Developer,MySQL Replication Team

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 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

OverviewMySQL 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 | 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 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

What isReplication?

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 | 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 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Replication: Copy Changes Master → Slave

SM

M

Slave can only have one master

SM

MSlave can have multiple masters!labs.mysql.com

labsYippee!

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 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Replication: Copy Changes Master → Slave

Filters on slave

SM

Replicationfilter

I have a lotof tables

I only havetable_1

11 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Why UseReplication?

12 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Why Replication? – Performance

Read scale-out

M S

write clients read clients

13 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Why Replication? – Performance

Read scale-out

M S

write clients read clients

Morereads?More

slaves!

14 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Why Replication? – Performance

Read scale-out

M SS

S

S

M

write clients read clients read clients

write clients

Morereads?More

slaves!

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 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Why Replication? – Redundancy

If master crashes, promote slave to master

C

B

ACrash

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 thenew master

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 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Why Replication? – Long-distance Data Distribution

CB

BAAC

Image fromwww.ginkgomaps.com

20 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

How DoesReplication

Work?

21 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

All Transactions Written to Binary Log

A

binary log

Client

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 | 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 | 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 | 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 t1

create...insert...A

binary log

Client

26 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Slave Initiates Replication

B

binary log

A

binary log

Client1. Slave sends request

for replication to startto master

2. Master sends streamof replication data

to slave

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 | 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 | 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 | 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 | 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 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

create...insert...

Binary Log Sent to Slave, Re-applied

Table t1

Table t

create...

B

binary log

create...insert...A

binary log

Client

33 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

create...insert...

Binary Log Sent to Slave, Re-applied

Table t1

Table t1

create...insert...B

binary log

create...insert...A

binary log

Client

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 | 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 | 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 | 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 | 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 | 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 tTransactionapplied here

andcopied here

THENapplied here

THENack'ed

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 tTransactionapplied here

andcopied here

THENapplied here

THENack'ed

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 t1

Table tTransactionapplied here

andcopied here

THENapplied here

THENack'ed

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 t1

Table tTransactionapplied here

andcopied here

THENapplied here

THENack'ed

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 t1

Table tTransactionapplied here

andcopied here

THENapplied here

THENack'ed

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 t1

Table t1Transaction

applied hereand

copied hereTHEN

applied hereTHENack'ed

45 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

OverviewMySQL 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 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

What isSemi-Synchronous

Replication?

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 | 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 tTransactionapplied here

THENcopied here

andapplied here

THENack'ed

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 tTransactionapplied here

andapplied here

THENcopied here

THENack'ed

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 t1

Table tTransactionapplied here

andapplied here

THENcopied here

THENack'ed

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 t1

Table tTransactionapplied here

andapplied here

THENcopied here

THENack'ed

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 t1

Table tTransactionapplied here

andapplied here

THENcopied here

THENack'ed

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 t1

Table tTransactionapplied here

andapplied here

THENcopied here

THENack'ed

1

2

Slave tells masterwhen to ack!

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 t1

Table t1Transaction

applied hereand

applied hereTHEN

copied hereTHENack'ed

55 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

What's New inSemi-Synchronous

Replication?

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 crashesbetween 1 and 2,committed data is lost

.Concurrent clientsmay 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 | 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 tTHEN com-mitted here

andapplied here

Transactioncopied here

andack'ed

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 tTHEN com-mitted here

andapplied here

Transactioncopied here

andack'ed

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 tand

applied hereTHEN com-mitted here

Transactioncopied here

andack'ed

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 t1

Table tand

applied here

Transactioncopied here

andack'ed

THEN com-mitted here

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 t1

Table tand

applied here

Transactioncopied here

1

2

Slave tells masterwhen to commit!

andack'ed

THEN com-mitted here

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 t1

Table tand

applied hereTHEN com-mitted here

Transactioncopied here

andack'ed

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 t1

Table t1and

applied hereTHEN com-mitted here

Transactioncopied here

andack'ed

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 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

OverviewMySQL 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 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

What isMulti-Threaded

Slave?

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 | 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

Transactionsapplied

in parallel

Client

Client

Client

Transactionslogged

in sequence

Transactionsapplied

in sequence

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

Transactionsapplied

in parallel

Client

Client

Client

Transactionslogged

in sequence

Transactionsapplied

in sequence

Bottleneck!

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

Transactionsapplied

in parallel

Client

Client

Client

Transactionslogged

in sequence

Transactionsapplied

in parallel

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 | 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 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

What's New inMulti-Threaded

Slave?

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 | 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 | 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 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

OverviewMySQL 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 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Multi-Source Replication

What isMulti-SourceReplication?

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

SM

M

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 | 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!

SM

M

82 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Why UseMulti-SourceReplication?

83 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Multi-Source Replicationfor Data Analytics

Business IntelligenceData analytics

Backupetc

M

M

M

Database 2

Database 3

Database 1

SDatabase 1, 2, 3

84 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Multi-Source Replicationfor Merging Shards

M

M

Shard 2

Shard 1

SNew Shard

85 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

How DoesMulti-Source

Work?

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 | 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 | 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 | 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 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Multi-Source Replication

Setting up CHANGE MASTER TO […] FOR CHANNEL = 'name'

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 | 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 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

OverviewMySQL 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 | 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 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Monitoring with Performance_Schema

relay log

execute statusby coordinator

execute statusby worker

executeconfiguration

executestatus

connectionconfiguration

connectionstatus

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 workerin each multi-source channel

One rowfor each

multi-sourcechannel

97 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Monitoring with Performance_Schema

Example: Connection statusmysql> select * from performance_schema.replication_connection_status\G*************************** 1. row ***************************            CHANNEL_NAME: CHANNEL1             SOURCE_UUID: 7cff7406­23ca­11e3­ac3e­5c260a83b12b               THREAD_ID: 13           SERVICE_STATE: ONRECEIVED_TRANSACTION_SET: 7cff7406­23ca­11e3­ac3e­5c260a83b12b:1­4       LAST_ERROR_NUMBER: 0      LAST_ERROR_MESSAGE:    LAST_ERROR_TIMESTAMP: 0000­00­00 00:00:00*************************** 2. row ***************************            CHANNEL_NAME: CHANNEL2

                        ⋮ One row for each channel

98 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Monitoring with Performance_Schema

Example: Connection statusmysql> select * from performance_schema.replication_connection_status\G*************************** 1. row ***************************            CHANNEL_NAME: CHANNEL1             SOURCE_UUID: 7cff7406­23ca­11e3­ac3e­5c260a83b12b               THREAD_ID: 13           SERVICE_STATE: ONRECEIVED_TRANSACTION_SET: 7cff7406­23ca­11e3­ac3e­5c260a83b12b:1­4       LAST_ERROR_NUMBER: 0      LAST_ERROR_MESSAGE:    LAST_ERROR_TIMESTAMP: 0000­00­00 00:00:00*************************** 2. row ***************************            CHANNEL_NAME: CHANNEL2

                        ⋮ The master's server_uuid

99 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Monitoring with Performance_Schema

Example: Connection statusmysql> select * from performance_schema.replication_connection_status\G*************************** 1. row ***************************            CHANNEL_NAME: CHANNEL1             SOURCE_UUID: 7cff7406­23ca­11e3­ac3e­5c260a83b12b               THREAD_ID: 13           SERVICE_STATE: ONRECEIVED_TRANSACTION_SET: 7cff7406­23ca­11e3­ac3e­5c260a83b12b:1­4       LAST_ERROR_NUMBER: 0      LAST_ERROR_MESSAGE:    LAST_ERROR_TIMESTAMP: 0000­00­00 00:00:00*************************** 2. row ***************************            CHANNEL_NAME: CHANNEL2

                        ⋮ Thread id and status

100 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Monitoring with Performance_Schema

Example: Connection statusmysql> select * from performance_schema.replication_connection_status\G*************************** 1. row ***************************            CHANNEL_NAME: CHANNEL1             SOURCE_UUID: 7cff7406­23ca­11e3­ac3e­5c260a83b12b               THREAD_ID: 13           SERVICE_STATE: ONRECEIVED_TRANSACTION_SET: 7cff7406­23ca­11e3­ac3e­5c260a83b12b:1­4       LAST_ERROR_NUMBER: 0      LAST_ERROR_MESSAGE:    LAST_ERROR_TIMESTAMP: 0000­00­00 00:00:00*************************** 2. row ***************************            CHANNEL_NAME: CHANNEL2

                        ⋮  Set of transactionsreceived through this channel

101 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Monitoring with Performance_Schema

Example: Connection statusmysql> select * from performance_schema.replication_connection_status\G*************************** 1. row ***************************            CHANNEL_NAME: CHANNEL1             SOURCE_UUID: 7cff7406­23ca­11e3­ac3e­5c260a83b12b               THREAD_ID: 13           SERVICE_STATE: ONRECEIVED_TRANSACTION_SET: 7cff7406­23ca­11e3­ac3e­5c260a83b12b:1­4       LAST_ERROR_NUMBER: 0      LAST_ERROR_MESSAGE:    LAST_ERROR_TIMESTAMP: 0000­00­00 00:00:00*************************** 2. row ***************************            CHANNEL_NAME: CHANNEL2

                        ⋮ Error status

102 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Monitoring with Performance_Schema

Example: Connection statusmysql> select * from performance_schema.replication_connection_status\G*************************** 1. row ***************************            CHANNEL_NAME: CHANNEL1             SOURCE_UUID: 7cff7406­23ca­11e3­ac3e­5c260a83b12b               THREAD_ID: NULL           SERVICE_STATE: OFFRECEIVED_TRANSACTION_SET: 7cff7406­23ca­11e3­ac3e­5c260a83b12b:1­4       LAST_ERROR_NUMBER: 1045      LAST_ERROR_MESSAGE: error connecting to master 'me@host:13000' …    LAST_ERROR_TIMESTAMP: 2013­11­09 21:03:23*************************** 2. row ***************************            CHANNEL_NAME: CHANNEL2

                        ⋮ 

Error status

103 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Monitoring with Performance_Schema

Example: Connection statusmysql> select * from performance_schema.replication_connection_status\G*************************** 1. row ***************************            CHANNEL_NAME: CHANNEL1             SOURCE_UUID: 7cff7406­23ca­11e3­ac3e­5c260a83b12b               THREAD_ID: NULL           SERVICE_STATE: OFFRECEIVED_TRANSACTION_SET: 7cff7406­23ca­11e3­ac3e­5c260a83b12b:1­4       LAST_ERROR_NUMBER: 1045      LAST_ERROR_MESSAGE: error connecting to master 'me@host:13000' …    LAST_ERROR_TIMESTAMP: 2013­11­09 21:03:23*************************** 2. row ***************************            CHANNEL_NAME: CHANNEL2

                        ⋮ 

Thread stoppedon error

104 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

OverviewMySQL 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 | 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 | 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 | Copyright © 2014, Oracle and/or its affiliates. All rights reserved.