SlideShare une entreprise Scribd logo
1  sur  139
Télécharger pour lire hors ligne
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!

Contenu connexe

Tendances

What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015Mikiya Okuno
 
MariaDB ColumnStore
MariaDB ColumnStoreMariaDB ColumnStore
MariaDB ColumnStoreMariaDB plc
 
The Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication TutorialThe Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication TutorialJean-François Gagné
 
JSON improvements in MySQL 8.0
JSON improvements in MySQL 8.0JSON improvements in MySQL 8.0
JSON improvements in MySQL 8.0Mydbops
 
MySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxMySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxNeoClova
 
MariaDB MaxScale
MariaDB MaxScaleMariaDB MaxScale
MariaDB MaxScaleMariaDB plc
 
SQL Plan Directives explained
SQL Plan Directives explainedSQL Plan Directives explained
SQL Plan Directives explainedMauro Pagano
 
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1SolarWinds
 
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)Jean-François Gagné
 
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorAlmost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorJean-François Gagné
 
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...Jean-François Gagné
 
MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용I Goo Lee
 
Transparent sharding with Spider: what's new and getting started
Transparent sharding with Spider: what's new and getting startedTransparent sharding with Spider: what's new and getting started
Transparent sharding with Spider: what's new and getting startedMariaDB plc
 
Evolution of MySQL Parallel Replication
Evolution of MySQL Parallel Replication Evolution of MySQL Parallel Replication
Evolution of MySQL Parallel Replication Mydbops
 
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAs
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAsOracle Database Performance Tuning Advanced Features and Best Practices for DBAs
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAsZohar Elkayam
 
MySQL Query And Index Tuning
MySQL Query And Index TuningMySQL Query And Index Tuning
MySQL Query And Index TuningManikanda kumar
 
MySQL Timeout Variables Explained
MySQL Timeout Variables Explained MySQL Timeout Variables Explained
MySQL Timeout Variables Explained Mydbops
 
Oracle sql high performance tuning
Oracle sql high performance tuningOracle sql high performance tuning
Oracle sql high performance tuningGuy Harrison
 
High Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouseHigh Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouseAltinity Ltd
 
My SYSAUX tablespace is full - please help
My SYSAUX tablespace is full - please helpMy SYSAUX tablespace is full - please help
My SYSAUX tablespace is full - please helpMarkus Flechtner
 

Tendances (20)

What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
 
MariaDB ColumnStore
MariaDB ColumnStoreMariaDB ColumnStore
MariaDB ColumnStore
 
The Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication TutorialThe Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication Tutorial
 
JSON improvements in MySQL 8.0
JSON improvements in MySQL 8.0JSON improvements in MySQL 8.0
JSON improvements in MySQL 8.0
 
MySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxMySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docx
 
MariaDB MaxScale
MariaDB MaxScaleMariaDB MaxScale
MariaDB MaxScale
 
SQL Plan Directives explained
SQL Plan Directives explainedSQL Plan Directives explained
SQL Plan Directives explained
 
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
 
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
 
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorAlmost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
 
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...
 
MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용
 
Transparent sharding with Spider: what's new and getting started
Transparent sharding with Spider: what's new and getting startedTransparent sharding with Spider: what's new and getting started
Transparent sharding with Spider: what's new and getting started
 
Evolution of MySQL Parallel Replication
Evolution of MySQL Parallel Replication Evolution of MySQL Parallel Replication
Evolution of MySQL Parallel Replication
 
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAs
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAsOracle Database Performance Tuning Advanced Features and Best Practices for DBAs
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAs
 
MySQL Query And Index Tuning
MySQL Query And Index TuningMySQL Query And Index Tuning
MySQL Query And Index Tuning
 
MySQL Timeout Variables Explained
MySQL Timeout Variables Explained MySQL Timeout Variables Explained
MySQL Timeout Variables Explained
 
Oracle sql high performance tuning
Oracle sql high performance tuningOracle sql high performance tuning
Oracle sql high performance tuning
 
High Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouseHigh Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouse
 
My SYSAUX tablespace is full - please help
My SYSAUX tablespace is full - please helpMy SYSAUX tablespace is full - please help
My SYSAUX tablespace is full - please help
 

En vedette

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
 

En vedette (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?
 

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

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

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

Plus de 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 ...
 

Dernier

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 

Dernier (20)

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 

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