mysql replikation - doag.org · mysql replikation erkan yanar erkan.yanar@linsenraum.de...
Post on 29-Aug-2019
227 Views
Preview:
TRANSCRIPT
MySQLReplikation
Erkan Yanarerkan.yanar@linsenraum.de
linsenraum.de
linsenraum.de
19.11.2013
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 1 / 37
Who Am I? Doings
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 2 / 37
Who Am I? Conferences
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 2 / 37
Who Am I? Publications
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 2 / 37
Who Am I? Customers
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 2 / 37
Topics:
Replication 5.5
MySQL Replication 5.6
No MySQL Replication 5.7
No MariaDB Replication 10.0
No Galera Replication :(
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 3 / 37
Replikation
Was ist Replikation?
Die unidirektionale Ubertragen von Datenanderungen.
Vom so called Master zum Slave.
Fruhes Alleinstellungsmerkmal von MySQL
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 4 / 37
Replikation Einige Architekturen
ReplikationSingle Threaded
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 5 / 37
Replikation Einige Architekturen
Was ist Replikation?
Die unidirektionale Ubertragen von Datenanderungen.
Vom so called Master zum Slave.
Fruhes Feature von MySQL
Wofur wird Replikation genutzt?
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 6 / 37
Replikation Einige Architekturen
Read ScaleOut/Read Load Balancing
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 7 / 37
Replikation Einige Architekturen
Massive Read ScaleOut
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 8 / 37
Replikation Einige Architekturen
Test new versions
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 9 / 37
Replikation Einige Architekturen
Backups/Daten Sicherung
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 10 / 37
Replikation Einige Architekturen
Reporting
Switch Engine?
FullText
transaction-isolation=read-committed
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 11 / 37
Replikation Einige Architekturen
HA und Redundanz
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 12 / 37
Replikation Einige Architekturen
Deeper Look: Threads
Der Replikation seine Threads
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 13 / 37
Replikation Einige Architekturen
Deeper Look: Threads
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 14 / 37
Wie macht das MySQL Binlog aktivieren
Configuration Build Replication
Master Side
log bin
server id
Master
[mysqld]
server id=11log bin
Slave
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 15 / 37
Wie macht das MySQL Binlog aktivieren
Configuration Build Replication
Slave Side
log bin
server id
Master
[mysqld]
server id=11log bin
Slave
[mysqld]
server id=111
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 15 / 37
Wie macht das MySQL Binlog aktivieren
Configuration Build Replication
Slave Side
log bin
server id
Master
[mysqld]
server id=11log bin
Slave
[mysqld]
server id=111
log slave updates
log bin
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 15 / 37
Wie macht das MySQL Binlog aktivieren
Configuration Build ReplicationCreate User
Master Side
log bin
server id
Master
GRANT REPLICATION SLAVE ON *.* TO
repl@’host’ IDENTIFIED BY ’jjiaef’
Slave
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 15 / 37
Wie macht das MySQL Binlog aktivieren
Configuration Build ReplicationGet Binlog Position
Master Side
log bin
server id
Master
mysql> show master status;
+-------------------+----------+-+
| File | Position | |
+-------------------+----------+-+
| mysqld-bin.000014 | 308 | |
+-------------------+----------+-+
1 row in set (0.00 sec)
The two nodes are not in sync!
Slave
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 15 / 37
Wie macht das MySQL Binlog aktivieren
Configuration Build Replication
Slave Side
log bin
server id
Master
mysql> show master status;
+-------------------+----------+-+
| File | Position | |
+-------------------+----------+-+
| mysqld-bin.000014 | 308 | |
+-------------------+----------+-+
1 row in set (0.00 sec)
Slave
CHANGE MASTER TO
MASTER HOST=’master2.ja.com’,
MASTER USER=’repl’,
MASTER PASSWORD=’jjiaef’,
MASTER PORT=3306,
MASTER LOG FILE=’mysqld-bin.000014’,
MASTER LOG POS=308;
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 15 / 37
Wie macht das MySQL Slave Status
FYI:
We started replication withouthaving the instances in sync?!
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 16 / 37
Wie macht das MySQL Das Binlog
Binlog Formate
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 17 / 37
Wie macht das MySQL binlog-formatStatement vs. Row
Binlog Format
STATEMENT
Replizieren der SQL Aufrufebinlog-format=STATEMENT
INSERT INTO b VALUES(12)
ROW
Replizieren des Row Imagesbinlog-format=ROW
BINLOG ’
kdyIUhMBAAAALAAAAGUDAAAAAEYAAAAAAAEABHRlc3QAAWIAAQMAAVLEDMs=
kdyIUh4BAAAAKAAAAI0DAAAAAEYAAAAAAAEAAgAB//4MAAAAIIRpag==
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 18 / 37
Wie macht das MySQL binlog-formatStatement vs. Row
Eine Gegenuberstellung
STATEMENT ROW
Footprint Small Up to HeavyPerformance Query Execution ApplyingPK Egal RecommendedLesbarkeit Leicht SchwerIdempodent Nein JaSicher ? Ja
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 19 / 37
[a|semi]synchrone Replikation
[a|semi]synchrone Replikation
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 20 / 37
[a|semi]synchrone Replikation
asynchrone und semisynchrone Replikation
WANErkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 21 / 37
[a|semi]synchrone Replikation
Datensicherheit vs. Durchsatz
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 22 / 37
[a|semi]synchrone Replikation
Forever Semisync?
WANErkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 23 / 37
5.6 10.0
Die wichtigsten Neuerungen in MySQL/Percona 5.6 und MariaDB 10.0
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 24 / 37
Replication Features
Improved Replication Features
Crash safe and reliable
relay-log-info-repository= TABLE
-> mysql.slave_relay_log_info
master-info-repository = TABLE
-> mysql.slave_master_info
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 25 / 37
Replication Features
Improved Replication Features
Crash safe and reliable
binlog-checksum=CRC32|NONE Generates Binlog Checksums
master-verify-checksum=0|1 Dump thread verifies Checksum
slave-sql-verify-checksum=0|1 SQL-Thread verifys Checksum
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 26 / 37
Row-Based Improvements
Improved RBR
binlog row image=
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 27 / 37
GTID MySQL/MariaDB
GTID: Global Transaction ID
Genauer: Unique Transaction ID
Transaktion behalt seine GTID auch auf anderen Nodes
GTID sind im Binlog
Einfachere HA Setups
Einfaches Checken der Replikation (rw/ro Setups)
Sichere Replikation
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 28 / 37
GTID MySQL/MariaDB
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 29 / 37
GTID MySQL/MariaDB MySQL GTID
GTID@MySQLRethinking Replication
Remind the sets
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 30 / 37
GTID MySQL/MariaDB MySQL GTID
MySQL GTID
server uuid:seqno
389c970e-2947-11e3-9007-00163e5183c7:456
GTID arbeitet mit Ranges (Mengen)
Slave sendet, die ihm bekannten ausgefuhrten GTIDMaster sendet den ihm bekannten Rest
BILD
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 31 / 37
GTID MySQL/MariaDB MySQL GTID
Easy Replication Setup
CHANGE MASTER TO
> MASTER_HOST = host,
> MASTER_PORT = port,
> MASTER_USER = user,
> MASTER_PASSWORD = password,
> MASTER_AUTO_POSITION = 1;
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 32 / 37
GTID MySQL/MariaDB MySQL GTID
Configure GTID
[mysqld]
gtid-mode=ON
enforce-gtid-consistency
#CREATE TABLE .. SELECT
#CREATE TEMPORARY TABLE (in einer Transaktion)
#Transaktionen "uber nicht transaktionale Tabellen
log-bin
log-slave-updates
server-id=N
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 33 / 37
GTID MySQL/MariaDB MySQL GTID
GTID Functions
’Overriding’ one upcomming events.
set gtid_next=’f452d3d6-2944-11e3-8ff8-00163e5f1993:17’;
transaction;
set gtid_next=’AUTOMATIC’;
Delayed Replication
STOP SLAVE;
CHANGE MASTER TO master_delay=3600;
START SLAVE;
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 34 / 37
GTID MySQL/MariaDB MySQL GTID
Backup
You can generate Backups like you used to to
SET @@GLOBAL.GTID_PURGED=’f452d3d6-2944-11e3-8ff8-00163e5f1993:1-411’;
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 35 / 37
Parallel Replication
Parallel Replication
Merkwurdige Implementierung von MySQL. Gerade im Vergleich zu Galera.Per Schema
SET GLOBAL slave_parallel_workers=N;
mysql.slave_worker_info <- no GTID
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 36 / 37
Parallel Replication
Erkan Yanar erkan.yanar@linsenraum.de linsenraum.de (linsenraum.de)MySQL Replikation 19.11.2013 37 / 37
top related