SlideShare a Scribd company logo
1 of 139
Download to read offline
Why MySQL Replication Fails,
and How to Get it Back
September, 26, 2017
Sveta Smirnova
∙ MySQL Support engineer
∙ Author of
∙ MySQL Troubleshooting
∙ JSON UDF functions
∙ FILTER clause for MySQL
∙ Speaker
∙ Percona Live, OOW, Fosdem,
DevConf, HighLoad...
Sveta Smirnova
2
Thank You Sponsors!
3
∙ Exists since very first versions
Replication in MySQL
4
∙ Exists since very first versions
∙ Easy to use
Replication in MySQL
4
∙ Exists since very first versions
∙ Easy to use
∙ Minimal setup
Replication in MySQL
4
∙ Master
∙ --log-bin
∙ --server-id
∙ GRANT REPLICATION SLAVE ON *.* ...
Turn Replication On
5
∙ Master
∙ --log-bin
∙ --server-id
∙ GRANT REPLICATION SLAVE ON *.* ...
∙ Slave
∙ --server-id
∙ CHANGE MASTER ...
∙ START SLAVE
Turn Replication On
5
Simple
6
Circle
7
Star
8
Creative
9
Typical Replication Errors
Replication Stopped
11
Slave Lags from the Master
12
Increased Resource Usage on Master
13
Not a Full List!
14
MySQL Replication: Must Know
Master Slave
← Initiates
Asynchronous
16
Master Slave
← Initiates
← Requests a packet
Asynchronous
16
Master
Sends the packet →
Slave
← Initiates
← Requests a packet
Asynchronous
16
Master
Sends the packet →
Slave
← Initiates
← Requests a packet
... ?
Asynchronous
16
∙ Network error
∙ Authorization
Did Slave Recieve Data?
17
Slave_IO_State: Waiting for master to send event
Master_Host: 127.0.0.1
Master_User: root
Master_Port: 13000
Connect_Retry: 60
Master_Log_File: master-bin.000002
Read_Master_Log_Pos: 63810611
Relay_Log_File: slave-relay-bin-master@002d1.000004
Relay_Log_Pos: 1156
Relay_Master_Log_File: master-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1032
Last_Error: Could not execute Update_rows event on...
Skip_Counter: 0
Exec_Master_Log_Pos: 989
Relay_Log_Space: 63814652
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No | Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 1032
Last_SQL_Error: Could not execute Update_rows event on...
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: d08c509e-6857-11e6-8872-30b5c2208a0f
Master_Info_File: mysql.slave_master_info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State:
Master_Retry_Count: 10
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp: 160823 15:11:21
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
Replicate_Rewrite_DB:
Channel_Name: master-1 | Master_TLS_Version:
∙ IO thread Configuration
∙ SQL thread Configuration
∙ IO thread State
∙ SQL thread State
∙ Errors
∙ Only last one
∙ All are in the error log
Tool #1: SHOW SLAVE STATUS
18
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
...
Last_IO_Errno: 1045
Last_IO_Error: error connecting to master ’root@127.0.0.1:13000’ -
Last_SQL_Errno: 0
Last_SQL_Error:
...
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp: 160824 03:18:36
Last_SQL_Error_Timestamp:
Network Errors
19
mysql> select * from performance_schema.replication_connection_statusG
*************************** 1. row ***************************
CHANNEL_NAME:
GROUP_NAME:
SOURCE_UUID:
THREAD_ID: NULL
SERVICE_STATE: CONNECTING
COUNT_RECEIVED_HEARTBEATS: 0
LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00
RECEIVED_TRANSACTION_SET:
LAST_ERROR_NUMBER: 1045
LAST_ERROR_MESSAGE: error connecting to master ’root@127.0.0.1:13000’ -
retry-time: 60 retries: 4
LAST_ERROR_TIMESTAMP: 2016-08-24 03:21:36
1 row in set (0,01 sec)
#2: connection status in Performance Schema
20
2016-08-24T00:18:36.077384Z 3 [ERROR] Slave I/O for channel ’’: error connecting to
master ’root@127.0.0.1:13000’ - retry-time: 60 retries: 1, Error_code: 1045
2016-08-24T00:19:36.299011Z 3 [ERROR] Slave I/O for channel ’’: error connecting to
master ’root@127.0.0.1:13000’ - retry-time: 60 retries: 2, Error_code: 1045
2016-08-24T00:20:36.485315Z 3 [ERROR] Slave I/O for channel ’’: error connecting to
master ’root@127.0.0.1:13000’ - retry-time: 60 retries: 3, Error_code: 1045
2016-08-24T00:21:36.677915Z 3 [ERROR] Slave I/O for channel ’’: error connecting to
master ’root@127.0.0.1:13000’ - retry-time: 60 retries: 4, Error_code: 1045
2016-08-24T00:22:36.872066Z 3 [ERROR] Slave I/O for channel ’’: error connecting to
master ’root@127.0.0.1:13000’ - retry-time: 60 retries: 5, Error_code: 1045
#3: Error Log File
21
$ perror 1045
MySQL error code 1045 (ER_ACCESS_DENIED_ERROR): Access denied for user ’%-.48s’@’%-.64s’
(using password: %s)
#4: perror
22
∙ On the slave
$ mysql -h127.0.0.1 -P13000 -uslave_user -pslave_password
Warning: Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user ’slave_user’@’localhost’ (using password: YES
#5: MySQL Command Line Client
23
∙ On the slave
∙ On the master
mysql> SHOW GRANTS;
+-----------------------------------------+
| Grants for slave_user@% |
+-----------------------------------------+
| GRANT SELECT ON *.* TO ’slave_user’@’%’ |
+-----------------------------------------+
1 row in set (0.00 sec)
#5: MySQL Command Line Client
23
∙ On the slave
∙ On the master
∙ Fix privileges on master
GRANT REPLICATION SLAVE
ON *.* TO ’slave user’@’%’
#5: MySQL Command Line Client
23
∙ On the slave
∙ On the master
∙ Fix privileges on master
∙ Restart replication
#5: MySQL Command Line Client
23
Master Slave
← Initiates
Semisynchrous plugin
24
Master Slave
← Initiates
← Requests a packet
Semisynchrous plugin
24
Master
Sends the packet →
Slave
← Initiates
← Requests a packet
Semisynchrous plugin
24
Master
Sends the packet →
Waits ”Ack”
Slave
← Initiates
← Requests a packet
Semisynchrous plugin
24
Master
Sends the packet →
Waits ”Ack”
Slave
← Initiates
← Requests a packet
← Sends ”Ack”
Semisynchrous plugin
24
∙ Writes on master are slower
Semisynchrous: Troubleshooting
25
∙ Writes on master are slower
∙ How many ”Ack”-s master waits?
Semisynchrous: Troubleshooting
25
∙ Writes on master are slower
∙ How many ”Ack”-s master waits?
∙ Before 5.7: from single slave
Semisynchrous: Troubleshooting
25
∙ Writes on master are slower
∙ How many ”Ack”-s master waits?
∙ Before 5.7: from single slave
∙ Now in MySQL:
rpl semi sync master wait for slave count
Semisynchrous: Troubleshooting
25
∙ Writes on master are slower
∙ How many ”Ack”-s master waits?
∙ Before 5.7: from single slave
∙ Now in MySQL:
rpl semi sync master wait for slave count
∙ Won’t wait others
Semisynchrous: Troubleshooting
25
∙ Writes on master are slower
∙ How many ”Ack”-s master waits?
∙ What happens in case of timeout?
Semisynchrous: Troubleshooting
25
∙ Writes on master are slower
∙ How many ”Ack”-s master waits?
∙ What happens in case of timeout?
∙ Replication becomes asynchronous
Semisynchrous: Troubleshooting
25
∙ Writes on master are slower
∙ How many ”Ack”-s master waits?
∙ What happens in case of timeout?
∙ What does ”Ack” mean?
Semisynchrous: Troubleshooting
25
∙ Writes on master are slower
∙ How many ”Ack”-s master waits?
∙ What happens in case of timeout?
∙ What does ”Ack” mean?
∙ Event written into relay log
Semisynchrous: Troubleshooting
25
∙ Writes on master are slower
∙ How many ”Ack”-s master waits?
∙ What happens in case of timeout?
∙ What does ”Ack” mean?
∙ Event written into relay log
∙ It is unknown if event applied
Semisynchrous: Troubleshooting
25
IO thread
Reads from the master
SQL thread
Two Kinds of Slave Threads
26
IO thread
Reads from the master
Stores in the relay log
SQL thread
Two Kinds of Slave Threads
26
IO thread
Reads from the master
Stores in the relay log
SQL thread
← Reads from relay log
Two Kinds of Slave Threads
26
IO thread
Reads from the master
Stores in the relay log
SQL thread
← Reads from relay log
Executes
Two Kinds of Slave Threads
26
∙ Easier for troubleshooting
Single SQL Thread
27
∙ Easier for troubleshooting
∙ Slower than master
∙ High parallel load
Single SQL Thread
27
Writes on the Master
28
Writes on the Slave: Single SQL Thread
29
Multiple SQL Threads: 5.6+
30
∙ MySQL: --slave parallel workers
∙ MySQL: --slave parallel type=DATABASE | LOGICAL CLOCK
∙ MySQL 8.0.1+:
SET @@GLOBAL.binlog transaction dependency tracking =
WRITESET | WRITESET SESSION | COMMIT ORDER;
Performance Tuning
31
∙ MariaDB: --slave parallel threads
∙ MariaDB: --slave parallel max queued
∙ MariaDB: --slave domain parallel threads
∙ MariaDB: --slave parallel mode=optimistic | conservative |
aggressive | minimal | none
Performance Tuning
31
mysql> select WORKER_ID, SERVICE_STATE, LAST_SEEN_TRANSACTION, LAST_ERROR_NUMBER,
-> LAST_ERROR_MESSAGE from performance_schema.replication_applier_status_by_workerG
*************************** 1. row ***************************
WORKER_ID: 1
SERVICE_STATE: OFF
LAST_SEEN_TRANSACTION: d318bc17-66dc-11e6-a471-30b5c2208a0f:4988
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
*************************** 2. row ***************************
WORKER_ID: 3
SERVICE_STATE: OFF
LAST_SEEN_TRANSACTION: d318bc17-66dc-11e6-a471-30b5c2208a0f:4986
LAST_ERROR_NUMBER: 1032
LAST_ERROR_MESSAGE: Worker 2 failed executing transaction...
#6: Error of One Thread Stops All
32
MariaDB [test]> select id, command, time, state from information_schema.processlist
-> where user=’system user’;
+----+---------+------+------------------------------------------------------------------+
| id | command | time | state |
+----+---------+------+------------------------------------------------------------------+
| 25 | Connect | 4738 | Waiting for master to send event |
| 24 | Connect | 5096 | Slave has read all relay log; waiting for the slave I/O thread t |
| 23 | Connect | 0 | Waiting for work from SQL thread |
| 22 | Connect | 0 | Unlocking tables |
| 21 | Connect | 0 | Update_rows_log_event::ha_update_row(-1) |
| 20 | Connect | 0 | Waiting for prior transaction to start commit before starting ne |
| 19 | Connect | 0 | Update_rows_log_event::ha_update_row(-1) |
| 18 | Connect | 0 | Update_rows_log_event::ha_update_row(-1) |
| 17 | Connect | 0 | Update_rows_log_event::find_row(-1)
...
#6: Error of One Thread Stops All
32
∙ Different data
∙ Slave cannot apply event from relay log
Which Kind of Errors?
33
∙ Different data
∙ Slave cannot apply event from relay log
∙ Different errors on master and slave
∙ Triggers
∙ Transactional and non-transactional tables in
the same transaction
Which Kind of Errors?
33
∙ Did table change outside of the replication?
∙ How?
∙ Can it cause conflict with changes on the
master?
Different Data on Master and Slave
34
∙ Did table change outside of the replication?
∙ Are table structures identical?
∙ Percona Toolkit
pt-table-checksum, pt-table-sync
∙ MySQL Utilities
mysqlrplsync, mysqldbcompare, mysqldiff
Different Data on Master and Slave
34
∙ Did table change outside of the replication?
∙ Are table structures identical?
∙ Are changes in the correct order?
∙ mysqlbinlog
∙ Application logic on the master
Different Data on Master and Slave
34
Master
Recieves a change
Storage Engine
Logical
35
Master
Recieves a change
Sends to SE →
Storage Engine
Logical
35
Master
Recieves a change
Sends to SE →
Storage Engine
Writes into table
Logical
35
Master
Recieves a change
Sends to SE →
Storage Engine
Writes into table
← Returns control
Logical
35
Master
Recieves a change
Sends to SE →
Writes into binary log
Storage Engine
Writes into table
← Returns control
Logical
35
Master
Recieves a change
Sends to SE →
Writes into binary log
Synchronizes →
Storage Engine
Writes into table
← Returns control
← Synchronizes
Logical
35
∙ More writes
∙ RBR: --binlog row image
Master Performance
36
∙ More writes
∙ RBR: --binlog row image
∙ --binlog cache size
Watch Binlog cache disk use
Master Performance
36
∙ More writes
∙ RBR: --binlog row image
∙ --binlog cache size
Watch Binlog cache disk use
∙ --binlog stmt cache size
Watch Binlog stmt cache disk use
Master Performance
36
∙ More writes
∙ Synchronization
∙ --binlog sync
∙ Do not disable!
∙ You may set it greater than 1
Master Performance
36
∙ Binary log lifetime
∙ --expire log days
Master Behavior
37
∙ Binary log lifetime
∙ Synchronization
∙ SBR is not safe with READ COMMITTED and READ
UNCOMMITTED
Master Behavior
37
∙ Binary log lifetime
∙ Synchronization
∙ Order of records in the binary log
∙ Non-deterministic events and SBR
Master Behavior
37
Client Binary log
Statement-Based Binary Log Format
38
Client
INSERT INTO ... →
Binary log
Statement-Based Binary Log Format
38
Client
INSERT INTO ... →
Binary log
SET TIMESTAMP...
Statement-Based Binary Log Format
38
Client
INSERT INTO ... →
Binary log
SET TIMESTAMP...
SET sql mode...
Statement-Based Binary Log Format
38
Client
INSERT INTO ... →
Binary log
SET TIMESTAMP...
SET sql mode...
INSERT INTO ...
Statement-Based Binary Log Format
38
∙ Exists since very first versions
SBR: Strong Sides
39
∙ Exists since very first versions
∙ Table definitions on master and slave can
significantly vary
SBR: Strong Sides
39
∙ Exists since very first versions
∙ Table definitions on master and slave can
significantly vary
∙ Usually less writes
∙ There are exceptions!
SBR: Strong Sides
39
∙ Exists since very first versions
∙ Table definitions on master and slave can
significantly vary
∙ Usually less writes
∙ Human readable
SBR: Strong Sides
39
∙ Exists since very first versions
∙ Table definitions on master and slave can
significantly vary
∙ Usually less writes
∙ Human readable
∙ Easy to troubleshoot
SBR: Strong Sides
39
mysql> SHOW BINLOG EVENTS IN ’mysql-bin.000316’ FROM 422;
+------------------+-----+------------+------------+-------------+---------------------------------+
| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
+------------------+-----+------------+------------+-------------+---------------------------------+
| mysql-bin.000316 | 422 | Query | 1456667904 | 509 | BEGIN |
| mysql-bin.000316 | 509 | Query | 1456667904 | 609 | use ‘PgDay‘; update ai set f1=1 |
| mysql-bin.000316 | 609 | Xid | 1456667904 | 640 | COMMIT /* xid=60328 */ |
+------------------+-----+------------+------------+-------------+---------------------------------+
3 rows in set (0,12 sec)
#7: SHOW BINLOG EVENTS
40
∙ Not all queries are safe
∙ Non-deterministic functions
∙ MySQL extentions
∙ Triggers
∙ Mix with non-transactional tables
∙ Temporary tables
SBR: Weak Sides
41
∙ Not all queries are safe
∙ Order of events matter!
∙ Row-based locks
SBR: Weak Sides
41
∙ Not all queries are safe
∙ Order of events matter!
∙ Row-based locks
∙ Triggers
SET GLOBAL slave skip counter – No GTIDs!
Skip transaction – GTIDs
Synchronize tables!
SBR: Weak Sides
41
Client Binary log
Row-Based Binary Log Format
42
Client
UPDATE ... →
Binary log
Row-Based Binary Log Format
42
Client
UPDATE ... →
Binary log
SET TIMESTAMP...
Row-Based Binary Log Format
42
Client
UPDATE ... →
Binary log
SET TIMESTAMP...
SET sql mode...
Row-Based Binary Log Format
42
Client
UPDATE ... →
Binary log
SET TIMESTAMP...
SET sql mode...
Row before changes
Row-Based Binary Log Format
42
Client
UPDATE ... →
Binary log
SET TIMESTAMP...
SET sql mode...
Row before changes
Row with changes
Row-Based Binary Log Format
42
∙ Safe
∙ You do not need to care about
Order of events
Triggers
Functions
Which queries you send to master
RBR: Strong Sides
43
∙ Sensitive for table structures
∙ More writes
∙ --binlog row image=FULL | MINIMAL | NOBLOB
∙ Harder to read
RBR: Weak Sidex
44
$ mysqlbinlog ./mysqld.1/data/master-bin.000001 --start-position=989 --stop-position=1213
...
# at 1167
#160822 14:15:11 server id 1 end_log_pos 1213 CRC32 0x1f346c6b
Update_rows: table id 109 flags: STMT_END_F
BINLOG ’
v966VxMBAAAAKwAAAI8EAAAAAG0AAAAAAAEAAm0yAAJ0MQABAwABY2HOoQ==
v966Vx8BAAAALgAAAL0EAAAAAG0AAAAAAAEAAgAB///+BQAAAP4GAAAAa2w0Hw==
’/*!*/;
ROLLBACK /* added by mysqlbinlog */ /*!*/;
SET @@SESSION.GTID_NEXT= ’AUTOMATIC’ /* added by mysqlbinlog */ /*!*/;
...
#8: mysqlbinlog
45
$ mysqlbinlog -v ./mysqld.1/data/master-bin.000001 --start-position=989 --stop-position=1213
...
# at 1167
#160822 14:15:11 server id 1 end_log_pos 1213 CRC32 0x1f346c6b
Update_rows: table id 109 flags: STMT_END_F
BINLOG ’
v966VxMBAAAAKwAAAI8EAAAAAG0AAAAAAAEAAm0yAAJ0MQABAwABY2HOoQ==
v966Vx8BAAAALgAAAL0EAAAAAG0AAAAAAAEAAgAB///+BQAAAP4GAAAAa2w0Hw==
’/*!*/;
### UPDATE ‘m2‘.‘t1‘
### WHERE
### @1=5
### SET
### @1=6
ROLLBACK /* added by mysqlbinlog */ /*!*/;
SET @@SESSION.GTID_NEXT= ’AUTOMATIC’ /* added by mysqlbinlog */ /*!*/;
#8: mysqlbinlog
46
∙ You must specify
∙ Name of the master’s binary log file
∙ Position
Position-Based
47
∙ You must specify
∙ Name of the master’s binary log file
∙ Position
∙ From the troubleshooting point of view
∙ Event executes if on the current position
Position-Based
47
∙ You must specify
∙ Name of the master’s binary log file
∙ Position
∙ From the troubleshooting point of view
∙ Event executes if on the current position
∙ Easy to skip
Position-Based
47
∙ You must specify
∙ Name of the master’s binary log file
∙ Position
∙ From the troubleshooting point of view
∙ Event executes if on the current position
∙ Easy to skip
∙ Easy to move position backward
Position-Based
47
∙ You must specify
∙ Name of the master’s binary log file
∙ Position
∙ From the troubleshooting point of view
∙ Event executes if on the current position
∙ Easy to skip
∙ Easy to move position backward
∙ No conflict resolution
Position-Based
47
∙ Each transaction has unique number: GTID
Global Transaction Identifiers (GTID)
48
∙ Each transaction has unique number: GTID
∙ MySQL: AUTO POSITION=1
Global Transaction Identifiers (GTID)
48
∙ Each transaction has unique number: GTID
∙ MySQL: AUTO POSITION=1
∙ MariaDB: master use gtid = { slave pos | current pos }
Global Transaction Identifiers (GTID)
48
∙ Each transaction has unique number: GTID
∙ MySQL: AUTO POSITION=1
∙ MariaDB: master use gtid = { slave pos | current pos }
∙ No need to specify binary log and position
Global Transaction Identifiers (GTID)
48
∙ Each transaction has unique number: GTID
∙ MySQL: AUTO POSITION=1
∙ MariaDB: master use gtid = { slave pos | current pos }
∙ No need to specify binary log and position
∙ Hard to skip erroneous event
Global Transaction Identifiers (GTID)
48
sveta@thinkie> mysqlslavetrx --gtid-set=fb776095-8474-11e5-ad41-30b5c2208a0f:3 
--slaves=root:@127.0.0.1:13001
WARNING: Using a password on the command line interface can be insecure.
#
# GTID set to be skipped for each server:
# - 127.0.0.1@13001: fb776095-8474-11e5-ad41-30b5c2208a0f:3
#
# Injecting empty transactions for ’127.0.0.1:13001’...
#
#...done.
#
#9: mysqlslavetrx
49
Complicated Setups
∙ Same specifics and methods
Complicated Setups
51
∙ Same specifics and methods
∙ Multiply complexity on number of channels
Complicated Setups
51
∙ Same specifics and methods
∙ Multiply complexity on number of channels
∙ Control writes
∙ What
∙ On which server
Complicated Setups
51
Master
∙ Binary log
∙ Binlog Dump
Slave
∙ Relay log
∙ IO thread
∙ SQL thread
Master and Slave
52
Slave 1
∙ Relay log
∙ IO thread
∙ SQL thread
Master
∙ Binary log
∙ Binlog Dump
∙ Binlog Dump
Slave 2
∙ Relay log
∙ IO thread
∙ SQL thread
Master and Two Slaves
53
Master 1
∙ Binary log
∙ Binlog Dump
∙ Relay log
∙ IO thread
∙ SQL thread
Master 2
∙ Relay log
∙ IO thread
∙ SQL thread
∙ Binary log
∙ Binlog Dump
Circular
54
Master 1
∙ Binary log
∙ Binlog Dump
Slave
∙ Relay log
∙ IO thread
∙ SQL thread
∙ Relay log
∙ IO thread
∙ SQL thread
Master 2
∙ Binary log
∙ Binlog Dump
Multiple Masters (Multi-channel): 5.7+
55
∙ Multiple sets of relay logs
∙ Multiple IO threads
∙ Multiple SQL threads
∙ MySQL: --slave parallel workers for each
Multi-Master: Troubleshooting
56
∙ Multiple sets of relay logs
∙ Multiple IO threads
∙ Multiple SQL threads
∙ MySQL: --slave parallel workers for each
∙ Independent channels
Multi-Master: Troubleshooting
56
∙ Multiple sets of relay logs
∙ Multiple IO threads
∙ Multiple SQL threads
∙ MySQL: --slave parallel workers for each
∙ Independent channels
∙ Error in one stops only one
Multi-Master: Troubleshooting
56
∙ Multiple sets of relay logs
∙ Multiple IO threads
∙ Multiple SQL threads
∙ MySQL: --slave parallel workers for each
∙ Independent channels
∙ Error in one stops only one
∙ No automatic conflict resolution
Multi-Master: Troubleshooting
56
Summary
∙ Error log file
Basic Tools
58
∙ Error log file
∙ On the slave
∙ SHOW SLAVE STATUS
∙ MySQL: Tables in Performance Schema
∙ System database mysql
Basic Tools
58
∙ Error log file
∙ On the slave
∙ On the master
∙ SHOW MASTER STATUS
∙ SHOW BINLOG EVENTS
∙ mysqlbinlog
Basic Tools
58
∙ Error log file
∙ On the slave
∙ On the master
∙ Percona Toolkit
Basic Tools
58
∙ Error log file
∙ On the slave
∙ On the master
∙ Percona Toolkit
∙ MySQL Utilities
Basic Tools
58
∙ Always available, requires setup
∙ Asynchronous
∙ Master
∙ Keeps all changes in the binary log
Two formats: ROW and STATEMENT
∙ Slave
∙ IO thread reads from the master into relay log
∙ SQL thread executes updates
Multiple SQL threads in 5.6+
Multiple channels/sources (masters) in 5.7+
∙ GTID in 5.6+
Replication Must Know
59
∙ Master
∙ Same as for standalone server
∙ More writes and consistency checks
Typical Issues
60
∙ Master
∙ Slave IO thread
∙ Common network issues
∙ mysql command line client for tests
Typical Issues
60
∙ Master
∙ Slave IO thread
∙ Slave SQL thread
∙ Regular query-related issues
∙ Regular storage engine issues
∙ Less execution threads than on master
Typical Issues
60
∙ Basic Techniques – troubleshooting
webinar
∙ Troubleshooting hardware resource usage
∙ Introduction into storage engine
troubleshoot...
∙ Percona Toolkit
∙ MySQL Utilities
∙ Book MySQL High Availability
∙ MySQL Replication Team blog
More Information
61
http://www.slideshare.net/SvetaSmirnova
https://twitter.com/svetsmirnova
https://github.com/svetasmirnova
Contact Information
62
∙ ... Case Study: .IE Continuous Restore ...
Marcelo Altmann - Percona, Mick Begley - IE Domain Registry
Tuesday 2:20PM-3:10PM @ Goldsmith 3
∙ A ... Walkthrough on pt-stalk
Marcelo Altmann - Percona, Marcos Albe - Percona
Wednesday 3:20PM-4:10PM @ Field Suite 2
∙ Percona XtraBackup Best Practices
Marcelo Altmann - Percona
Wednesday 4:30PM-4:55PM @ Sky Suite 2
∙ MySQL-MongoDB-Redis-Cassandra-HBase
Marcos Albe - Percona
Wednesday 4.55PM-5.20PM @ Sky Suite 2
Support Team at Percona Live
63
Thank you!

More Related Content

What's hot

Lessons Learned: Troubleshooting Replication
Lessons Learned: Troubleshooting ReplicationLessons Learned: Troubleshooting Replication
Lessons Learned: Troubleshooting ReplicationSveta Smirnova
 
Achieving compliance With MongoDB Security
Achieving compliance With MongoDB Security Achieving compliance With MongoDB Security
Achieving compliance With MongoDB Security Mydbops
 
MariaDB 10.11 key features overview for DBAs
MariaDB 10.11 key features overview for DBAsMariaDB 10.11 key features overview for DBAs
MariaDB 10.11 key features overview for DBAsFederico Razzoli
 
MMUG18 - MySQL Failover and Orchestrator
MMUG18 - MySQL Failover and OrchestratorMMUG18 - MySQL Failover and Orchestrator
MMUG18 - MySQL Failover and OrchestratorSimon J Mudd
 
The InnoDB Storage Engine for MySQL
The InnoDB Storage Engine for MySQLThe InnoDB Storage Engine for MySQL
The InnoDB Storage Engine for MySQLMorgan Tocker
 
MySQL Data Encryption at Rest
MySQL Data Encryption at RestMySQL Data Encryption at Rest
MySQL Data Encryption at RestMydbops
 
A Technical Introduction to WiredTiger
A Technical Introduction to WiredTigerA Technical Introduction to WiredTiger
A Technical Introduction to WiredTigerMongoDB
 
Mvcc in postgreSQL 권건우
Mvcc in postgreSQL 권건우Mvcc in postgreSQL 권건우
Mvcc in postgreSQL 권건우PgDay.Seoul
 
InnoDB Internal
InnoDB InternalInnoDB Internal
InnoDB Internalmysqlops
 
AWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMTAWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMTI Goo Lee
 
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Mydbops
 
MariaDB Galera Cluster
MariaDB Galera ClusterMariaDB Galera Cluster
MariaDB Galera ClusterAbdul Manaf
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기NeoClova
 
MariaDB MaxScale
MariaDB MaxScaleMariaDB MaxScale
MariaDB MaxScaleMariaDB plc
 
Achieving High Availability in PostgreSQL
Achieving High Availability in PostgreSQLAchieving High Availability in PostgreSQL
Achieving High Availability in PostgreSQLMydbops
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestI Goo Lee
 
How to set up orchestrator to manage thousands of MySQL servers
How to set up orchestrator to manage thousands of MySQL serversHow to set up orchestrator to manage thousands of MySQL servers
How to set up orchestrator to manage thousands of MySQL serversSimon J Mudd
 
MySQL Performance schema missing_manual_flossuk
MySQL Performance schema missing_manual_flossukMySQL Performance schema missing_manual_flossuk
MySQL Performance schema missing_manual_flossukValeriy Kravchuk
 
Running MariaDB in multiple data centers
Running MariaDB in multiple data centersRunning MariaDB in multiple data centers
Running MariaDB in multiple data centersMariaDB plc
 

What's hot (20)

Lessons Learned: Troubleshooting Replication
Lessons Learned: Troubleshooting ReplicationLessons Learned: Troubleshooting Replication
Lessons Learned: Troubleshooting Replication
 
Achieving compliance With MongoDB Security
Achieving compliance With MongoDB Security Achieving compliance With MongoDB Security
Achieving compliance With MongoDB Security
 
MariaDB 10.11 key features overview for DBAs
MariaDB 10.11 key features overview for DBAsMariaDB 10.11 key features overview for DBAs
MariaDB 10.11 key features overview for DBAs
 
MMUG18 - MySQL Failover and Orchestrator
MMUG18 - MySQL Failover and OrchestratorMMUG18 - MySQL Failover and Orchestrator
MMUG18 - MySQL Failover and Orchestrator
 
The InnoDB Storage Engine for MySQL
The InnoDB Storage Engine for MySQLThe InnoDB Storage Engine for MySQL
The InnoDB Storage Engine for MySQL
 
MySQL Data Encryption at Rest
MySQL Data Encryption at RestMySQL Data Encryption at Rest
MySQL Data Encryption at Rest
 
A Technical Introduction to WiredTiger
A Technical Introduction to WiredTigerA Technical Introduction to WiredTiger
A Technical Introduction to WiredTiger
 
Mvcc in postgreSQL 권건우
Mvcc in postgreSQL 권건우Mvcc in postgreSQL 권건우
Mvcc in postgreSQL 권건우
 
InnoDB Internal
InnoDB InternalInnoDB Internal
InnoDB Internal
 
AWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMTAWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMT
 
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
 
Get to know PostgreSQL!
Get to know PostgreSQL!Get to know PostgreSQL!
Get to know PostgreSQL!
 
MariaDB Galera Cluster
MariaDB Galera ClusterMariaDB Galera Cluster
MariaDB Galera Cluster
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기
 
MariaDB MaxScale
MariaDB MaxScaleMariaDB MaxScale
MariaDB MaxScale
 
Achieving High Availability in PostgreSQL
Achieving High Availability in PostgreSQLAchieving High Availability in PostgreSQL
Achieving High Availability in PostgreSQL
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software Test
 
How to set up orchestrator to manage thousands of MySQL servers
How to set up orchestrator to manage thousands of MySQL serversHow to set up orchestrator to manage thousands of MySQL servers
How to set up orchestrator to manage thousands of MySQL servers
 
MySQL Performance schema missing_manual_flossuk
MySQL Performance schema missing_manual_flossukMySQL Performance schema missing_manual_flossuk
MySQL Performance schema missing_manual_flossuk
 
Running MariaDB in multiple data centers
Running MariaDB in multiple data centersRunning MariaDB in multiple data centers
Running MariaDB in multiple data centers
 

Viewers also liked

MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group ReplicationManish Kumar
 
MySQL Group Replication - HandsOn Tutorial
MySQL Group Replication - HandsOn TutorialMySQL Group Replication - HandsOn Tutorial
MySQL Group Replication - HandsOn TutorialKenny Gryp
 
MySQL InnoDB Cluster and Group Replication - OSI 2017 Bangalore
MySQL InnoDB Cluster and Group Replication - OSI 2017 BangaloreMySQL InnoDB Cluster and Group Replication - OSI 2017 Bangalore
MySQL InnoDB Cluster and Group Replication - OSI 2017 BangaloreSujatha Sivakumar
 
What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...Sveta Smirnova
 
Hbase源码初探
Hbase源码初探Hbase源码初探
Hbase源码初探zhaolinjnu
 
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group ReplicationPercona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group ReplicationKenny Gryp
 
Мониторинг и отладка MySQL: максимум информации при минимальных потерях
Мониторинг и отладка MySQL: максимум информации при минимальных потеряхМониторинг и отладка MySQL: максимум информации при минимальных потерях
Мониторинг и отладка MySQL: максимум информации при минимальных потеряхSveta Smirnova
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationFrederic Descamps
 
Mysql high availability and scalability
Mysql high availability and scalabilityMysql high availability and scalability
Mysql high availability and scalabilityyin gong
 
MySQL Best Practices - OTN LAD Tour
MySQL Best Practices - OTN LAD TourMySQL Best Practices - OTN LAD Tour
MySQL Best Practices - OTN LAD TourRonald Bradford
 
Capturing, Analyzing and Optimizing MySQL
Capturing, Analyzing and Optimizing MySQLCapturing, Analyzing and Optimizing MySQL
Capturing, Analyzing and Optimizing MySQLRonald Bradford
 
Multi Source Replication With MySQL 5.7 @ Verisure
Multi Source Replication With MySQL 5.7 @ VerisureMulti Source Replication With MySQL 5.7 @ Verisure
Multi Source Replication With MySQL 5.7 @ VerisureKenny Gryp
 
MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group ReplicationKenny Gryp
 
淘宝数据库架构演进历程
淘宝数据库架构演进历程淘宝数据库架构演进历程
淘宝数据库架构演进历程zhaolinjnu
 
MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?
MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?
MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?Sveta Smirnova
 

Viewers also liked (20)

MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group Replication
 
Redis介绍
Redis介绍Redis介绍
Redis介绍
 
MySQL Group Replication - HandsOn Tutorial
MySQL Group Replication - HandsOn TutorialMySQL Group Replication - HandsOn Tutorial
MySQL Group Replication - HandsOn Tutorial
 
MySQL InnoDB Cluster and Group Replication - OSI 2017 Bangalore
MySQL InnoDB Cluster and Group Replication - OSI 2017 BangaloreMySQL InnoDB Cluster and Group Replication - OSI 2017 Bangalore
MySQL InnoDB Cluster and Group Replication - OSI 2017 Bangalore
 
What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...
 
SQL Outer Joins for Fun and Profit
SQL Outer Joins for Fun and ProfitSQL Outer Joins for Fun and Profit
SQL Outer Joins for Fun and Profit
 
Hbase源码初探
Hbase源码初探Hbase源码初探
Hbase源码初探
 
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group ReplicationPercona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
 
MySQL aio
MySQL aioMySQL aio
MySQL aio
 
Load Data Fast!
Load Data Fast!Load Data Fast!
Load Data Fast!
 
Мониторинг и отладка MySQL: максимум информации при минимальных потерях
Мониторинг и отладка MySQL: максимум информации при минимальных потеряхМониторинг и отладка MySQL: максимум информации при минимальных потерях
Мониторинг и отладка MySQL: максимум информации при минимальных потерях
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group Replication
 
Mysql high availability and scalability
Mysql high availability and scalabilityMysql high availability and scalability
Mysql high availability and scalability
 
Extensible Data Modeling
Extensible Data ModelingExtensible Data Modeling
Extensible Data Modeling
 
MySQL Best Practices - OTN LAD Tour
MySQL Best Practices - OTN LAD TourMySQL Best Practices - OTN LAD Tour
MySQL Best Practices - OTN LAD Tour
 
Capturing, Analyzing and Optimizing MySQL
Capturing, Analyzing and Optimizing MySQLCapturing, Analyzing and Optimizing MySQL
Capturing, Analyzing and Optimizing MySQL
 
Multi Source Replication With MySQL 5.7 @ Verisure
Multi Source Replication With MySQL 5.7 @ VerisureMulti Source Replication With MySQL 5.7 @ Verisure
Multi Source Replication With MySQL 5.7 @ Verisure
 
MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group Replication
 
淘宝数据库架构演进历程
淘宝数据库架构演进历程淘宝数据库架构演进历程
淘宝数据库架构演进历程
 
MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?
MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?
MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?
 

Similar to Why MySQL Replication Fails, and How to Get it Back

ConFoo MySQL Replication Evolution : From Simple to Group Replication
ConFoo  MySQL Replication Evolution : From Simple to Group ReplicationConFoo  MySQL Replication Evolution : From Simple to Group Replication
ConFoo MySQL Replication Evolution : From Simple to Group ReplicationDave Stokes
 
Mysql replication @ gnugroup
Mysql replication @ gnugroupMysql replication @ gnugroup
Mysql replication @ gnugroupJayant Chutke
 
MySQL Replication Evolution -- Confoo Montreal 2017
MySQL Replication Evolution -- Confoo Montreal 2017MySQL Replication Evolution -- Confoo Montreal 2017
MySQL Replication Evolution -- Confoo Montreal 2017Dave Stokes
 
MySQL 101 PHPTek 2017
MySQL 101 PHPTek 2017MySQL 101 PHPTek 2017
MySQL 101 PHPTek 2017Dave Stokes
 
Java MySQL Connector & Connection Pool Features & Optimization
Java MySQL Connector & Connection Pool Features & OptimizationJava MySQL Connector & Connection Pool Features & Optimization
Java MySQL Connector & Connection Pool Features & OptimizationKenny Gryp
 
Download presentation
Download presentationDownload presentation
Download presentationRachit Gaur
 
Download presentation531
Download presentation531Download presentation531
Download presentation531Indra Pratap
 
MySQL Replication Basics -Ohio Linux Fest 2016
MySQL Replication Basics -Ohio Linux Fest 2016MySQL Replication Basics -Ohio Linux Fest 2016
MySQL Replication Basics -Ohio Linux Fest 2016Dave Stokes
 
MariaDB Galera Cluster - Simple, Transparent, Highly Available
MariaDB Galera Cluster - Simple, Transparent, Highly AvailableMariaDB Galera Cluster - Simple, Transparent, Highly Available
MariaDB Galera Cluster - Simple, Transparent, Highly AvailableMariaDB Corporation
 
Training Slides: Intermediate 202: Performing Cluster Maintenance with Zero-D...
Training Slides: Intermediate 202: Performing Cluster Maintenance with Zero-D...Training Slides: Intermediate 202: Performing Cluster Maintenance with Zero-D...
Training Slides: Intermediate 202: Performing Cluster Maintenance with Zero-D...Continuent
 
MySQL Replication Update -- Zendcon 2016
MySQL Replication Update -- Zendcon 2016MySQL Replication Update -- Zendcon 2016
MySQL Replication Update -- Zendcon 2016Dave Stokes
 
Mater,slave on mysql
Mater,slave on mysqlMater,slave on mysql
Mater,slave on mysqlVasudeva Rao
 
Webinar slides: Introducing Galera 3.0 - Now supporting MySQL 5.6
Webinar slides: Introducing Galera 3.0 - Now supporting MySQL 5.6Webinar slides: Introducing Galera 3.0 - Now supporting MySQL 5.6
Webinar slides: Introducing Galera 3.0 - Now supporting MySQL 5.6Severalnines
 
High Availability with MySQL
High Availability with MySQLHigh Availability with MySQL
High Availability with MySQLThava Alagu
 
Easy MySQL Replication Setup and Troubleshooting
Easy MySQL Replication Setup and TroubleshootingEasy MySQL Replication Setup and Troubleshooting
Easy MySQL Replication Setup and TroubleshootingBob Burgess
 
NY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with MaxscaleNY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with MaxscaleWagner Bianchi
 
Advanced percona xtra db cluster in a nutshell... la suite plsc2016
Advanced percona xtra db cluster in a nutshell... la suite plsc2016Advanced percona xtra db cluster in a nutshell... la suite plsc2016
Advanced percona xtra db cluster in a nutshell... la suite plsc2016Frederic Descamps
 

Similar to Why MySQL Replication Fails, and How to Get it Back (20)

ConFoo MySQL Replication Evolution : From Simple to Group Replication
ConFoo  MySQL Replication Evolution : From Simple to Group ReplicationConFoo  MySQL Replication Evolution : From Simple to Group Replication
ConFoo MySQL Replication Evolution : From Simple to Group Replication
 
Mysql replication @ gnugroup
Mysql replication @ gnugroupMysql replication @ gnugroup
Mysql replication @ gnugroup
 
MySQL Replication Evolution -- Confoo Montreal 2017
MySQL Replication Evolution -- Confoo Montreal 2017MySQL Replication Evolution -- Confoo Montreal 2017
MySQL Replication Evolution -- Confoo Montreal 2017
 
MySQL 101 PHPTek 2017
MySQL 101 PHPTek 2017MySQL 101 PHPTek 2017
MySQL 101 PHPTek 2017
 
Java MySQL Connector & Connection Pool Features & Optimization
Java MySQL Connector & Connection Pool Features & OptimizationJava MySQL Connector & Connection Pool Features & Optimization
Java MySQL Connector & Connection Pool Features & Optimization
 
Download presentation
Download presentationDownload presentation
Download presentation
 
Download presentation531
Download presentation531Download presentation531
Download presentation531
 
MySQL Replication Basics -Ohio Linux Fest 2016
MySQL Replication Basics -Ohio Linux Fest 2016MySQL Replication Basics -Ohio Linux Fest 2016
MySQL Replication Basics -Ohio Linux Fest 2016
 
MariaDB Galera Cluster - Simple, Transparent, Highly Available
MariaDB Galera Cluster - Simple, Transparent, Highly AvailableMariaDB Galera Cluster - Simple, Transparent, Highly Available
MariaDB Galera Cluster - Simple, Transparent, Highly Available
 
Training Slides: Intermediate 202: Performing Cluster Maintenance with Zero-D...
Training Slides: Intermediate 202: Performing Cluster Maintenance with Zero-D...Training Slides: Intermediate 202: Performing Cluster Maintenance with Zero-D...
Training Slides: Intermediate 202: Performing Cluster Maintenance with Zero-D...
 
MySQL Replication Update -- Zendcon 2016
MySQL Replication Update -- Zendcon 2016MySQL Replication Update -- Zendcon 2016
MySQL Replication Update -- Zendcon 2016
 
Mater,slave on mysql
Mater,slave on mysqlMater,slave on mysql
Mater,slave on mysql
 
Webinar slides: Introducing Galera 3.0 - Now supporting MySQL 5.6
Webinar slides: Introducing Galera 3.0 - Now supporting MySQL 5.6Webinar slides: Introducing Galera 3.0 - Now supporting MySQL 5.6
Webinar slides: Introducing Galera 3.0 - Now supporting MySQL 5.6
 
High Availability with MySQL
High Availability with MySQLHigh Availability with MySQL
High Availability with MySQL
 
Introducing Galera 3.0
Introducing Galera 3.0Introducing Galera 3.0
Introducing Galera 3.0
 
Oss4b - pxc introduction
Oss4b   - pxc introductionOss4b   - pxc introduction
Oss4b - pxc introduction
 
Easy MySQL Replication Setup and Troubleshooting
Easy MySQL Replication Setup and TroubleshootingEasy MySQL Replication Setup and Troubleshooting
Easy MySQL Replication Setup and Troubleshooting
 
NY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with MaxscaleNY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with Maxscale
 
How to understand Galera Cluster - 2013
How to understand Galera Cluster - 2013How to understand Galera Cluster - 2013
How to understand Galera Cluster - 2013
 
Advanced percona xtra db cluster in a nutshell... la suite plsc2016
Advanced percona xtra db cluster in a nutshell... la suite plsc2016Advanced percona xtra db cluster in a nutshell... la suite plsc2016
Advanced percona xtra db cluster in a nutshell... la suite plsc2016
 

More from Sveta Smirnova

MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?Sveta Smirnova
 
Database in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringDatabase in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringSveta Smirnova
 
MySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to HaveMySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to HaveSveta Smirnova
 
MySQL Cookbook: Recipes for Developers
MySQL Cookbook: Recipes for DevelopersMySQL Cookbook: Recipes for Developers
MySQL Cookbook: Recipes for DevelopersSveta Smirnova
 
MySQL Performance for DevOps
MySQL Performance for DevOpsMySQL Performance for DevOps
MySQL Performance for DevOpsSveta Smirnova
 
MySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации баговMySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации баговSveta Smirnova
 
MySQL Cookbook: Recipes for Your Business
MySQL Cookbook: Recipes for Your BusinessMySQL Cookbook: Recipes for Your Business
MySQL Cookbook: Recipes for Your BusinessSveta Smirnova
 
Introduction into MySQL Query Tuning for Dev[Op]s
Introduction into MySQL Query Tuning for Dev[Op]sIntroduction into MySQL Query Tuning for Dev[Op]s
Introduction into MySQL Query Tuning for Dev[Op]sSveta Smirnova
 
Производительность MySQL для DevOps
 Производительность MySQL для DevOps Производительность MySQL для DevOps
Производительность MySQL для DevOpsSveta Smirnova
 
MySQL Performance for DevOps
MySQL Performance for DevOpsMySQL Performance for DevOps
MySQL Performance for DevOpsSveta Smirnova
 
How to Avoid Pitfalls in Schema Upgrade with Percona XtraDB Cluster
How to Avoid Pitfalls in Schema Upgrade with Percona XtraDB ClusterHow to Avoid Pitfalls in Schema Upgrade with Percona XtraDB Cluster
How to Avoid Pitfalls in Schema Upgrade with Percona XtraDB ClusterSveta Smirnova
 
How to migrate from MySQL to MariaDB without tears
How to migrate from MySQL to MariaDB without tearsHow to migrate from MySQL to MariaDB without tears
How to migrate from MySQL to MariaDB without tearsSveta Smirnova
 
Modern solutions for modern database load: improvements in the latest MariaDB...
Modern solutions for modern database load: improvements in the latest MariaDB...Modern solutions for modern database load: improvements in the latest MariaDB...
Modern solutions for modern database load: improvements in the latest MariaDB...Sveta Smirnova
 
How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?Sveta Smirnova
 
Современному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
Современному хайлоду - современные решения: MySQL 8.0 и улучшения PerconaСовременному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
Современному хайлоду - современные решения: MySQL 8.0 и улучшения PerconaSveta Smirnova
 
How to Avoid Pitfalls in Schema Upgrade with Galera
How to Avoid Pitfalls in Schema Upgrade with GaleraHow to Avoid Pitfalls in Schema Upgrade with Galera
How to Avoid Pitfalls in Schema Upgrade with GaleraSveta Smirnova
 
How Safe is Asynchronous Master-Master Setup?
 How Safe is Asynchronous Master-Master Setup? How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?Sveta Smirnova
 
Introduction to MySQL Query Tuning for Dev[Op]s
Introduction to MySQL Query Tuning for Dev[Op]sIntroduction to MySQL Query Tuning for Dev[Op]s
Introduction to MySQL Query Tuning for Dev[Op]sSveta Smirnova
 
Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?Sveta Smirnova
 
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...Sveta Smirnova
 

More from Sveta Smirnova (20)

MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
 
Database in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringDatabase in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and Monitoring
 
MySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to HaveMySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to Have
 
MySQL Cookbook: Recipes for Developers
MySQL Cookbook: Recipes for DevelopersMySQL Cookbook: Recipes for Developers
MySQL Cookbook: Recipes for Developers
 
MySQL Performance for DevOps
MySQL Performance for DevOpsMySQL Performance for DevOps
MySQL Performance for DevOps
 
MySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации баговMySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации багов
 
MySQL Cookbook: Recipes for Your Business
MySQL Cookbook: Recipes for Your BusinessMySQL Cookbook: Recipes for Your Business
MySQL Cookbook: Recipes for Your Business
 
Introduction into MySQL Query Tuning for Dev[Op]s
Introduction into MySQL Query Tuning for Dev[Op]sIntroduction into MySQL Query Tuning for Dev[Op]s
Introduction into MySQL Query Tuning for Dev[Op]s
 
Производительность MySQL для DevOps
 Производительность MySQL для DevOps Производительность MySQL для DevOps
Производительность MySQL для DevOps
 
MySQL Performance for DevOps
MySQL Performance for DevOpsMySQL Performance for DevOps
MySQL Performance for DevOps
 
How to Avoid Pitfalls in Schema Upgrade with Percona XtraDB Cluster
How to Avoid Pitfalls in Schema Upgrade with Percona XtraDB ClusterHow to Avoid Pitfalls in Schema Upgrade with Percona XtraDB Cluster
How to Avoid Pitfalls in Schema Upgrade with Percona XtraDB Cluster
 
How to migrate from MySQL to MariaDB without tears
How to migrate from MySQL to MariaDB without tearsHow to migrate from MySQL to MariaDB without tears
How to migrate from MySQL to MariaDB without tears
 
Modern solutions for modern database load: improvements in the latest MariaDB...
Modern solutions for modern database load: improvements in the latest MariaDB...Modern solutions for modern database load: improvements in the latest MariaDB...
Modern solutions for modern database load: improvements in the latest MariaDB...
 
How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?
 
Современному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
Современному хайлоду - современные решения: MySQL 8.0 и улучшения PerconaСовременному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
Современному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
 
How to Avoid Pitfalls in Schema Upgrade with Galera
How to Avoid Pitfalls in Schema Upgrade with GaleraHow to Avoid Pitfalls in Schema Upgrade with Galera
How to Avoid Pitfalls in Schema Upgrade with Galera
 
How Safe is Asynchronous Master-Master Setup?
 How Safe is Asynchronous Master-Master Setup? How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?
 
Introduction to MySQL Query Tuning for Dev[Op]s
Introduction to MySQL Query Tuning for Dev[Op]sIntroduction to MySQL Query Tuning for Dev[Op]s
Introduction to MySQL Query Tuning for Dev[Op]s
 
Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?
 
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
 

Recently uploaded

Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...software pro Development
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 

Recently uploaded (20)

Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 

Why MySQL Replication Fails, and How to Get it Back

  • 1. Why MySQL Replication Fails, and How to Get it Back September, 26, 2017 Sveta Smirnova
  • 2. ∙ MySQL Support engineer ∙ Author of ∙ MySQL Troubleshooting ∙ JSON UDF functions ∙ FILTER clause for MySQL ∙ Speaker ∙ Percona Live, OOW, Fosdem, DevConf, HighLoad... Sveta Smirnova 2
  • 4. ∙ Exists since very first versions Replication in MySQL 4
  • 5. ∙ Exists since very first versions ∙ Easy to use Replication in MySQL 4
  • 6. ∙ Exists since very first versions ∙ Easy to use ∙ Minimal setup Replication in MySQL 4
  • 7. ∙ Master ∙ --log-bin ∙ --server-id ∙ GRANT REPLICATION SLAVE ON *.* ... Turn Replication On 5
  • 8. ∙ Master ∙ --log-bin ∙ --server-id ∙ GRANT REPLICATION SLAVE ON *.* ... ∙ Slave ∙ --server-id ∙ CHANGE MASTER ... ∙ START SLAVE Turn Replication On 5
  • 15. Slave Lags from the Master 12
  • 16. Increased Resource Usage on Master 13
  • 17. Not a Full List! 14
  • 20. Master Slave ← Initiates ← Requests a packet Asynchronous 16
  • 21. Master Sends the packet → Slave ← Initiates ← Requests a packet Asynchronous 16
  • 22. Master Sends the packet → Slave ← Initiates ← Requests a packet ... ? Asynchronous 16
  • 23. ∙ Network error ∙ Authorization Did Slave Recieve Data? 17
  • 24. Slave_IO_State: Waiting for master to send event Master_Host: 127.0.0.1 Master_User: root Master_Port: 13000 Connect_Retry: 60 Master_Log_File: master-bin.000002 Read_Master_Log_Pos: 63810611 Relay_Log_File: slave-relay-bin-master@002d1.000004 Relay_Log_Pos: 1156 Relay_Master_Log_File: master-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: No Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 1032 Last_Error: Could not execute Update_rows event on... Skip_Counter: 0 Exec_Master_Log_Pos: 989 Relay_Log_Space: 63814652 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No | Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: NULL Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 1032 Last_SQL_Error: Could not execute Update_rows event on... Replicate_Ignore_Server_Ids: Master_Server_Id: 1 Master_UUID: d08c509e-6857-11e6-8872-30b5c2208a0f Master_Info_File: mysql.slave_master_info SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Master_Retry_Count: 10 Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: 160823 15:11:21 Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 0 Replicate_Rewrite_DB: Channel_Name: master-1 | Master_TLS_Version: ∙ IO thread Configuration ∙ SQL thread Configuration ∙ IO thread State ∙ SQL thread State ∙ Errors ∙ Only last one ∙ All are in the error log Tool #1: SHOW SLAVE STATUS 18
  • 25. Slave_IO_Running: Connecting Slave_SQL_Running: Yes ... Last_IO_Errno: 1045 Last_IO_Error: error connecting to master ’root@127.0.0.1:13000’ - Last_SQL_Errno: 0 Last_SQL_Error: ... Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates Master_Retry_Count: 86400 Master_Bind: Last_IO_Error_Timestamp: 160824 03:18:36 Last_SQL_Error_Timestamp: Network Errors 19
  • 26. mysql> select * from performance_schema.replication_connection_statusG *************************** 1. row *************************** CHANNEL_NAME: GROUP_NAME: SOURCE_UUID: THREAD_ID: NULL SERVICE_STATE: CONNECTING COUNT_RECEIVED_HEARTBEATS: 0 LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00 RECEIVED_TRANSACTION_SET: LAST_ERROR_NUMBER: 1045 LAST_ERROR_MESSAGE: error connecting to master ’root@127.0.0.1:13000’ - retry-time: 60 retries: 4 LAST_ERROR_TIMESTAMP: 2016-08-24 03:21:36 1 row in set (0,01 sec) #2: connection status in Performance Schema 20
  • 27. 2016-08-24T00:18:36.077384Z 3 [ERROR] Slave I/O for channel ’’: error connecting to master ’root@127.0.0.1:13000’ - retry-time: 60 retries: 1, Error_code: 1045 2016-08-24T00:19:36.299011Z 3 [ERROR] Slave I/O for channel ’’: error connecting to master ’root@127.0.0.1:13000’ - retry-time: 60 retries: 2, Error_code: 1045 2016-08-24T00:20:36.485315Z 3 [ERROR] Slave I/O for channel ’’: error connecting to master ’root@127.0.0.1:13000’ - retry-time: 60 retries: 3, Error_code: 1045 2016-08-24T00:21:36.677915Z 3 [ERROR] Slave I/O for channel ’’: error connecting to master ’root@127.0.0.1:13000’ - retry-time: 60 retries: 4, Error_code: 1045 2016-08-24T00:22:36.872066Z 3 [ERROR] Slave I/O for channel ’’: error connecting to master ’root@127.0.0.1:13000’ - retry-time: 60 retries: 5, Error_code: 1045 #3: Error Log File 21
  • 28. $ perror 1045 MySQL error code 1045 (ER_ACCESS_DENIED_ERROR): Access denied for user ’%-.48s’@’%-.64s’ (using password: %s) #4: perror 22
  • 29. ∙ On the slave $ mysql -h127.0.0.1 -P13000 -uslave_user -pslave_password Warning: Using a password on the command line interface can be insecure. ERROR 1045 (28000): Access denied for user ’slave_user’@’localhost’ (using password: YES #5: MySQL Command Line Client 23
  • 30. ∙ On the slave ∙ On the master mysql> SHOW GRANTS; +-----------------------------------------+ | Grants for slave_user@% | +-----------------------------------------+ | GRANT SELECT ON *.* TO ’slave_user’@’%’ | +-----------------------------------------+ 1 row in set (0.00 sec) #5: MySQL Command Line Client 23
  • 31. ∙ On the slave ∙ On the master ∙ Fix privileges on master GRANT REPLICATION SLAVE ON *.* TO ’slave user’@’%’ #5: MySQL Command Line Client 23
  • 32. ∙ On the slave ∙ On the master ∙ Fix privileges on master ∙ Restart replication #5: MySQL Command Line Client 23
  • 34. Master Slave ← Initiates ← Requests a packet Semisynchrous plugin 24
  • 35. Master Sends the packet → Slave ← Initiates ← Requests a packet Semisynchrous plugin 24
  • 36. Master Sends the packet → Waits ”Ack” Slave ← Initiates ← Requests a packet Semisynchrous plugin 24
  • 37. Master Sends the packet → Waits ”Ack” Slave ← Initiates ← Requests a packet ← Sends ”Ack” Semisynchrous plugin 24
  • 38. ∙ Writes on master are slower Semisynchrous: Troubleshooting 25
  • 39. ∙ Writes on master are slower ∙ How many ”Ack”-s master waits? Semisynchrous: Troubleshooting 25
  • 40. ∙ Writes on master are slower ∙ How many ”Ack”-s master waits? ∙ Before 5.7: from single slave Semisynchrous: Troubleshooting 25
  • 41. ∙ Writes on master are slower ∙ How many ”Ack”-s master waits? ∙ Before 5.7: from single slave ∙ Now in MySQL: rpl semi sync master wait for slave count Semisynchrous: Troubleshooting 25
  • 42. ∙ Writes on master are slower ∙ How many ”Ack”-s master waits? ∙ Before 5.7: from single slave ∙ Now in MySQL: rpl semi sync master wait for slave count ∙ Won’t wait others Semisynchrous: Troubleshooting 25
  • 43. ∙ Writes on master are slower ∙ How many ”Ack”-s master waits? ∙ What happens in case of timeout? Semisynchrous: Troubleshooting 25
  • 44. ∙ Writes on master are slower ∙ How many ”Ack”-s master waits? ∙ What happens in case of timeout? ∙ Replication becomes asynchronous Semisynchrous: Troubleshooting 25
  • 45. ∙ Writes on master are slower ∙ How many ”Ack”-s master waits? ∙ What happens in case of timeout? ∙ What does ”Ack” mean? Semisynchrous: Troubleshooting 25
  • 46. ∙ Writes on master are slower ∙ How many ”Ack”-s master waits? ∙ What happens in case of timeout? ∙ What does ”Ack” mean? ∙ Event written into relay log Semisynchrous: Troubleshooting 25
  • 47. ∙ Writes on master are slower ∙ How many ”Ack”-s master waits? ∙ What happens in case of timeout? ∙ What does ”Ack” mean? ∙ Event written into relay log ∙ It is unknown if event applied Semisynchrous: Troubleshooting 25
  • 48. IO thread Reads from the master SQL thread Two Kinds of Slave Threads 26
  • 49. IO thread Reads from the master Stores in the relay log SQL thread Two Kinds of Slave Threads 26
  • 50. IO thread Reads from the master Stores in the relay log SQL thread ← Reads from relay log Two Kinds of Slave Threads 26
  • 51. IO thread Reads from the master Stores in the relay log SQL thread ← Reads from relay log Executes Two Kinds of Slave Threads 26
  • 52. ∙ Easier for troubleshooting Single SQL Thread 27
  • 53. ∙ Easier for troubleshooting ∙ Slower than master ∙ High parallel load Single SQL Thread 27
  • 54. Writes on the Master 28
  • 55. Writes on the Slave: Single SQL Thread 29
  • 57. ∙ MySQL: --slave parallel workers ∙ MySQL: --slave parallel type=DATABASE | LOGICAL CLOCK ∙ MySQL 8.0.1+: SET @@GLOBAL.binlog transaction dependency tracking = WRITESET | WRITESET SESSION | COMMIT ORDER; Performance Tuning 31
  • 58. ∙ MariaDB: --slave parallel threads ∙ MariaDB: --slave parallel max queued ∙ MariaDB: --slave domain parallel threads ∙ MariaDB: --slave parallel mode=optimistic | conservative | aggressive | minimal | none Performance Tuning 31
  • 59. mysql> select WORKER_ID, SERVICE_STATE, LAST_SEEN_TRANSACTION, LAST_ERROR_NUMBER, -> LAST_ERROR_MESSAGE from performance_schema.replication_applier_status_by_workerG *************************** 1. row *************************** WORKER_ID: 1 SERVICE_STATE: OFF LAST_SEEN_TRANSACTION: d318bc17-66dc-11e6-a471-30b5c2208a0f:4988 LAST_ERROR_NUMBER: 0 LAST_ERROR_MESSAGE: *************************** 2. row *************************** WORKER_ID: 3 SERVICE_STATE: OFF LAST_SEEN_TRANSACTION: d318bc17-66dc-11e6-a471-30b5c2208a0f:4986 LAST_ERROR_NUMBER: 1032 LAST_ERROR_MESSAGE: Worker 2 failed executing transaction... #6: Error of One Thread Stops All 32
  • 60. MariaDB [test]> select id, command, time, state from information_schema.processlist -> where user=’system user’; +----+---------+------+------------------------------------------------------------------+ | id | command | time | state | +----+---------+------+------------------------------------------------------------------+ | 25 | Connect | 4738 | Waiting for master to send event | | 24 | Connect | 5096 | Slave has read all relay log; waiting for the slave I/O thread t | | 23 | Connect | 0 | Waiting for work from SQL thread | | 22 | Connect | 0 | Unlocking tables | | 21 | Connect | 0 | Update_rows_log_event::ha_update_row(-1) | | 20 | Connect | 0 | Waiting for prior transaction to start commit before starting ne | | 19 | Connect | 0 | Update_rows_log_event::ha_update_row(-1) | | 18 | Connect | 0 | Update_rows_log_event::ha_update_row(-1) | | 17 | Connect | 0 | Update_rows_log_event::find_row(-1) ... #6: Error of One Thread Stops All 32
  • 61. ∙ Different data ∙ Slave cannot apply event from relay log Which Kind of Errors? 33
  • 62. ∙ Different data ∙ Slave cannot apply event from relay log ∙ Different errors on master and slave ∙ Triggers ∙ Transactional and non-transactional tables in the same transaction Which Kind of Errors? 33
  • 63. ∙ Did table change outside of the replication? ∙ How? ∙ Can it cause conflict with changes on the master? Different Data on Master and Slave 34
  • 64. ∙ Did table change outside of the replication? ∙ Are table structures identical? ∙ Percona Toolkit pt-table-checksum, pt-table-sync ∙ MySQL Utilities mysqlrplsync, mysqldbcompare, mysqldiff Different Data on Master and Slave 34
  • 65. ∙ Did table change outside of the replication? ∙ Are table structures identical? ∙ Are changes in the correct order? ∙ mysqlbinlog ∙ Application logic on the master Different Data on Master and Slave 34
  • 66. Master Recieves a change Storage Engine Logical 35
  • 67. Master Recieves a change Sends to SE → Storage Engine Logical 35
  • 68. Master Recieves a change Sends to SE → Storage Engine Writes into table Logical 35
  • 69. Master Recieves a change Sends to SE → Storage Engine Writes into table ← Returns control Logical 35
  • 70. Master Recieves a change Sends to SE → Writes into binary log Storage Engine Writes into table ← Returns control Logical 35
  • 71. Master Recieves a change Sends to SE → Writes into binary log Synchronizes → Storage Engine Writes into table ← Returns control ← Synchronizes Logical 35
  • 72. ∙ More writes ∙ RBR: --binlog row image Master Performance 36
  • 73. ∙ More writes ∙ RBR: --binlog row image ∙ --binlog cache size Watch Binlog cache disk use Master Performance 36
  • 74. ∙ More writes ∙ RBR: --binlog row image ∙ --binlog cache size Watch Binlog cache disk use ∙ --binlog stmt cache size Watch Binlog stmt cache disk use Master Performance 36
  • 75. ∙ More writes ∙ Synchronization ∙ --binlog sync ∙ Do not disable! ∙ You may set it greater than 1 Master Performance 36
  • 76. ∙ Binary log lifetime ∙ --expire log days Master Behavior 37
  • 77. ∙ Binary log lifetime ∙ Synchronization ∙ SBR is not safe with READ COMMITTED and READ UNCOMMITTED Master Behavior 37
  • 78. ∙ Binary log lifetime ∙ Synchronization ∙ Order of records in the binary log ∙ Non-deterministic events and SBR Master Behavior 37
  • 79. Client Binary log Statement-Based Binary Log Format 38
  • 80. Client INSERT INTO ... → Binary log Statement-Based Binary Log Format 38
  • 81. Client INSERT INTO ... → Binary log SET TIMESTAMP... Statement-Based Binary Log Format 38
  • 82. Client INSERT INTO ... → Binary log SET TIMESTAMP... SET sql mode... Statement-Based Binary Log Format 38
  • 83. Client INSERT INTO ... → Binary log SET TIMESTAMP... SET sql mode... INSERT INTO ... Statement-Based Binary Log Format 38
  • 84. ∙ Exists since very first versions SBR: Strong Sides 39
  • 85. ∙ Exists since very first versions ∙ Table definitions on master and slave can significantly vary SBR: Strong Sides 39
  • 86. ∙ Exists since very first versions ∙ Table definitions on master and slave can significantly vary ∙ Usually less writes ∙ There are exceptions! SBR: Strong Sides 39
  • 87. ∙ Exists since very first versions ∙ Table definitions on master and slave can significantly vary ∙ Usually less writes ∙ Human readable SBR: Strong Sides 39
  • 88. ∙ Exists since very first versions ∙ Table definitions on master and slave can significantly vary ∙ Usually less writes ∙ Human readable ∙ Easy to troubleshoot SBR: Strong Sides 39
  • 89. mysql> SHOW BINLOG EVENTS IN ’mysql-bin.000316’ FROM 422; +------------------+-----+------------+------------+-------------+---------------------------------+ | Log_name | Pos | Event_type | Server_id | End_log_pos | Info | +------------------+-----+------------+------------+-------------+---------------------------------+ | mysql-bin.000316 | 422 | Query | 1456667904 | 509 | BEGIN | | mysql-bin.000316 | 509 | Query | 1456667904 | 609 | use ‘PgDay‘; update ai set f1=1 | | mysql-bin.000316 | 609 | Xid | 1456667904 | 640 | COMMIT /* xid=60328 */ | +------------------+-----+------------+------------+-------------+---------------------------------+ 3 rows in set (0,12 sec) #7: SHOW BINLOG EVENTS 40
  • 90. ∙ Not all queries are safe ∙ Non-deterministic functions ∙ MySQL extentions ∙ Triggers ∙ Mix with non-transactional tables ∙ Temporary tables SBR: Weak Sides 41
  • 91. ∙ Not all queries are safe ∙ Order of events matter! ∙ Row-based locks SBR: Weak Sides 41
  • 92. ∙ Not all queries are safe ∙ Order of events matter! ∙ Row-based locks ∙ Triggers SET GLOBAL slave skip counter – No GTIDs! Skip transaction – GTIDs Synchronize tables! SBR: Weak Sides 41
  • 93. Client Binary log Row-Based Binary Log Format 42
  • 94. Client UPDATE ... → Binary log Row-Based Binary Log Format 42
  • 95. Client UPDATE ... → Binary log SET TIMESTAMP... Row-Based Binary Log Format 42
  • 96. Client UPDATE ... → Binary log SET TIMESTAMP... SET sql mode... Row-Based Binary Log Format 42
  • 97. Client UPDATE ... → Binary log SET TIMESTAMP... SET sql mode... Row before changes Row-Based Binary Log Format 42
  • 98. Client UPDATE ... → Binary log SET TIMESTAMP... SET sql mode... Row before changes Row with changes Row-Based Binary Log Format 42
  • 99. ∙ Safe ∙ You do not need to care about Order of events Triggers Functions Which queries you send to master RBR: Strong Sides 43
  • 100. ∙ Sensitive for table structures ∙ More writes ∙ --binlog row image=FULL | MINIMAL | NOBLOB ∙ Harder to read RBR: Weak Sidex 44
  • 101. $ mysqlbinlog ./mysqld.1/data/master-bin.000001 --start-position=989 --stop-position=1213 ... # at 1167 #160822 14:15:11 server id 1 end_log_pos 1213 CRC32 0x1f346c6b Update_rows: table id 109 flags: STMT_END_F BINLOG ’ v966VxMBAAAAKwAAAI8EAAAAAG0AAAAAAAEAAm0yAAJ0MQABAwABY2HOoQ== v966Vx8BAAAALgAAAL0EAAAAAG0AAAAAAAEAAgAB///+BQAAAP4GAAAAa2w0Hw== ’/*!*/; ROLLBACK /* added by mysqlbinlog */ /*!*/; SET @@SESSION.GTID_NEXT= ’AUTOMATIC’ /* added by mysqlbinlog */ /*!*/; ... #8: mysqlbinlog 45
  • 102. $ mysqlbinlog -v ./mysqld.1/data/master-bin.000001 --start-position=989 --stop-position=1213 ... # at 1167 #160822 14:15:11 server id 1 end_log_pos 1213 CRC32 0x1f346c6b Update_rows: table id 109 flags: STMT_END_F BINLOG ’ v966VxMBAAAAKwAAAI8EAAAAAG0AAAAAAAEAAm0yAAJ0MQABAwABY2HOoQ== v966Vx8BAAAALgAAAL0EAAAAAG0AAAAAAAEAAgAB///+BQAAAP4GAAAAa2w0Hw== ’/*!*/; ### UPDATE ‘m2‘.‘t1‘ ### WHERE ### @1=5 ### SET ### @1=6 ROLLBACK /* added by mysqlbinlog */ /*!*/; SET @@SESSION.GTID_NEXT= ’AUTOMATIC’ /* added by mysqlbinlog */ /*!*/; #8: mysqlbinlog 46
  • 103. ∙ You must specify ∙ Name of the master’s binary log file ∙ Position Position-Based 47
  • 104. ∙ You must specify ∙ Name of the master’s binary log file ∙ Position ∙ From the troubleshooting point of view ∙ Event executes if on the current position Position-Based 47
  • 105. ∙ You must specify ∙ Name of the master’s binary log file ∙ Position ∙ From the troubleshooting point of view ∙ Event executes if on the current position ∙ Easy to skip Position-Based 47
  • 106. ∙ You must specify ∙ Name of the master’s binary log file ∙ Position ∙ From the troubleshooting point of view ∙ Event executes if on the current position ∙ Easy to skip ∙ Easy to move position backward Position-Based 47
  • 107. ∙ You must specify ∙ Name of the master’s binary log file ∙ Position ∙ From the troubleshooting point of view ∙ Event executes if on the current position ∙ Easy to skip ∙ Easy to move position backward ∙ No conflict resolution Position-Based 47
  • 108. ∙ Each transaction has unique number: GTID Global Transaction Identifiers (GTID) 48
  • 109. ∙ Each transaction has unique number: GTID ∙ MySQL: AUTO POSITION=1 Global Transaction Identifiers (GTID) 48
  • 110. ∙ Each transaction has unique number: GTID ∙ MySQL: AUTO POSITION=1 ∙ MariaDB: master use gtid = { slave pos | current pos } Global Transaction Identifiers (GTID) 48
  • 111. ∙ Each transaction has unique number: GTID ∙ MySQL: AUTO POSITION=1 ∙ MariaDB: master use gtid = { slave pos | current pos } ∙ No need to specify binary log and position Global Transaction Identifiers (GTID) 48
  • 112. ∙ Each transaction has unique number: GTID ∙ MySQL: AUTO POSITION=1 ∙ MariaDB: master use gtid = { slave pos | current pos } ∙ No need to specify binary log and position ∙ Hard to skip erroneous event Global Transaction Identifiers (GTID) 48
  • 113. sveta@thinkie> mysqlslavetrx --gtid-set=fb776095-8474-11e5-ad41-30b5c2208a0f:3 --slaves=root:@127.0.0.1:13001 WARNING: Using a password on the command line interface can be insecure. # # GTID set to be skipped for each server: # - 127.0.0.1@13001: fb776095-8474-11e5-ad41-30b5c2208a0f:3 # # Injecting empty transactions for ’127.0.0.1:13001’... # #...done. # #9: mysqlslavetrx 49
  • 115. ∙ Same specifics and methods Complicated Setups 51
  • 116. ∙ Same specifics and methods ∙ Multiply complexity on number of channels Complicated Setups 51
  • 117. ∙ Same specifics and methods ∙ Multiply complexity on number of channels ∙ Control writes ∙ What ∙ On which server Complicated Setups 51
  • 118. Master ∙ Binary log ∙ Binlog Dump Slave ∙ Relay log ∙ IO thread ∙ SQL thread Master and Slave 52
  • 119. Slave 1 ∙ Relay log ∙ IO thread ∙ SQL thread Master ∙ Binary log ∙ Binlog Dump ∙ Binlog Dump Slave 2 ∙ Relay log ∙ IO thread ∙ SQL thread Master and Two Slaves 53
  • 120. Master 1 ∙ Binary log ∙ Binlog Dump ∙ Relay log ∙ IO thread ∙ SQL thread Master 2 ∙ Relay log ∙ IO thread ∙ SQL thread ∙ Binary log ∙ Binlog Dump Circular 54
  • 121. Master 1 ∙ Binary log ∙ Binlog Dump Slave ∙ Relay log ∙ IO thread ∙ SQL thread ∙ Relay log ∙ IO thread ∙ SQL thread Master 2 ∙ Binary log ∙ Binlog Dump Multiple Masters (Multi-channel): 5.7+ 55
  • 122. ∙ Multiple sets of relay logs ∙ Multiple IO threads ∙ Multiple SQL threads ∙ MySQL: --slave parallel workers for each Multi-Master: Troubleshooting 56
  • 123. ∙ Multiple sets of relay logs ∙ Multiple IO threads ∙ Multiple SQL threads ∙ MySQL: --slave parallel workers for each ∙ Independent channels Multi-Master: Troubleshooting 56
  • 124. ∙ Multiple sets of relay logs ∙ Multiple IO threads ∙ Multiple SQL threads ∙ MySQL: --slave parallel workers for each ∙ Independent channels ∙ Error in one stops only one Multi-Master: Troubleshooting 56
  • 125. ∙ Multiple sets of relay logs ∙ Multiple IO threads ∙ Multiple SQL threads ∙ MySQL: --slave parallel workers for each ∙ Independent channels ∙ Error in one stops only one ∙ No automatic conflict resolution Multi-Master: Troubleshooting 56
  • 127. ∙ Error log file Basic Tools 58
  • 128. ∙ Error log file ∙ On the slave ∙ SHOW SLAVE STATUS ∙ MySQL: Tables in Performance Schema ∙ System database mysql Basic Tools 58
  • 129. ∙ Error log file ∙ On the slave ∙ On the master ∙ SHOW MASTER STATUS ∙ SHOW BINLOG EVENTS ∙ mysqlbinlog Basic Tools 58
  • 130. ∙ Error log file ∙ On the slave ∙ On the master ∙ Percona Toolkit Basic Tools 58
  • 131. ∙ Error log file ∙ On the slave ∙ On the master ∙ Percona Toolkit ∙ MySQL Utilities Basic Tools 58
  • 132. ∙ Always available, requires setup ∙ Asynchronous ∙ Master ∙ Keeps all changes in the binary log Two formats: ROW and STATEMENT ∙ Slave ∙ IO thread reads from the master into relay log ∙ SQL thread executes updates Multiple SQL threads in 5.6+ Multiple channels/sources (masters) in 5.7+ ∙ GTID in 5.6+ Replication Must Know 59
  • 133. ∙ Master ∙ Same as for standalone server ∙ More writes and consistency checks Typical Issues 60
  • 134. ∙ Master ∙ Slave IO thread ∙ Common network issues ∙ mysql command line client for tests Typical Issues 60
  • 135. ∙ Master ∙ Slave IO thread ∙ Slave SQL thread ∙ Regular query-related issues ∙ Regular storage engine issues ∙ Less execution threads than on master Typical Issues 60
  • 136. ∙ Basic Techniques – troubleshooting webinar ∙ Troubleshooting hardware resource usage ∙ Introduction into storage engine troubleshoot... ∙ Percona Toolkit ∙ MySQL Utilities ∙ Book MySQL High Availability ∙ MySQL Replication Team blog More Information 61
  • 138. ∙ ... Case Study: .IE Continuous Restore ... Marcelo Altmann - Percona, Mick Begley - IE Domain Registry Tuesday 2:20PM-3:10PM @ Goldsmith 3 ∙ A ... Walkthrough on pt-stalk Marcelo Altmann - Percona, Marcos Albe - Percona Wednesday 3:20PM-4:10PM @ Field Suite 2 ∙ Percona XtraBackup Best Practices Marcelo Altmann - Percona Wednesday 4:30PM-4:55PM @ Sky Suite 2 ∙ MySQL-MongoDB-Redis-Cassandra-HBase Marcos Albe - Percona Wednesday 4.55PM-5.20PM @ Sky Suite 2 Support Team at Percona Live 63