da en en da en en sv da en en da sv da sv en en sv fr de de fr fr fr sv en fr en en en en en en it en en en en da da en it en it da ja en ja da ja en ja da en en sv fr de de fr fr fr sv en hbs_lat en en en en en pt en en en da da da da en da da da en en sv fr de de fr fr fr sv en fr en ja fr de uz en en en en en en en en en en en en en en de it en it da ja en ja da en en en da da en en sv fr de de fr fr fr sv en en en da en en en zh pt de en en sv fr en en en da da en en sv en en da en en en da da da da da en da da da da da sv da nb nb en da da da da en nl da sv da en
MariaDB 10.2 replikering på Ubuntu 16.04 – NerdGirl
Forbud fører sjældent noget godt med sig
(Last Updated On: 1. december 2020)
Det forudsættes at du har installeret MariaDB på både master og slave, ellers følg denne vejledning først:
Installer MariaDB på Ubuntu 16.04
bind-address bestemmer hvilket interface din master lytter på og det skal naturligvis være et din slave kan kommunikere med, og 127.0.0.1 du’r derfor ikke 😉
Din slave henter data fra de binære logs, og derfor bør du med binlog-ignore-db ekskludere alle de databaser der IKKE skal replikeres. Man kan også gøre det modsatte, nemlig bruge binlog-do-db til at angive de databaser der skal inkluderes… eller bruge en kombination. Jeg bruger kun binlog-ignore-db for at sikre at eventuelle nye databaser der oprettes, automatisk bliver en del af replikeringen. Men det er en smagssag.
$ sudo systemctl restart mysql
Nu kan du indlæse data fra en evt. tidligere database server:
$ mysql -u root -p < mysqldump_data.sql
$ mysql -u root -p < mysqldump_data.sql
… og oprette eventuelle tidligere brugere:
$ mysql -u root -p < mysqldump_grants.sql
$ mysql -u root -p < mysqldump_grants.sql
Forbind til MariaDB og opret en bruger til din slave. Erstat ‘10.0.0.49’  med IP adressen på din slave og ‘adgangskode’ med noget andet. Bemærk: Hvis du ønsker at bruge et hostnavn i stedet for IP skal du fjerne skip-name-resolve i my.cnf og genstarte MariaDB.
$ mysql -u root -p MariaDB> GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'10.0.0.49' IDENTIFIED BY 'adgangskode'; MariaDB> FLUSH PRIVILEGES; MariaDB> SHOW MASTER STATUS; +--------------------+----------+--------------+-------------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +--------------------+----------+--------------+-------------------------+ | mariadb-bin.000012 | 242793 | | | mysql,replication [...] | +--------------------+----------+--------------+-------------------------+
$ mysql -u root -p
MariaDB> GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'10.0.0.49' IDENTIFIED BY 'adgangskode';
MariaDB> SHOW MASTER STATUS;
| File               | Position | Binlog_Do_DB | Binlog_Ignore_DB        |
| mariadb-bin.000012 | 242793 | |              | mysql,replication [...] |
SHOW MASTER STATUS  viser den aktuelle position i den binære log, dvs. det punkt hvorfra slaven skal starte med replikering. Disse oplysninger skal du derfor lige notere dig, da de skal bruges senere.
Fra dette øjeblik, bør du sikre dig at der ikke er noget der forbinder til din database og foretager ændringer i struktur eller data.
Nu er din master sådan set klar. Du mangler bare lige at lave et dump af data, som skal indlæses på slaven. :
$ mysqldump -u bruger -pkode -h hostnavn --lock-all-tables --skip-triggers --routines --databases db1 db2 db3 > mysqldump_data.sql
$ mysqldump -u bruger -pkode -h hostnavn --lock-all-tables --skip-triggers --routines --databases db1 db2 db3 > mysqldump_data.sql
En vigtig parameter her er --skip-triggers. De ændringer triggers måtte foretage på masteren, havner nemlig også i masterens binære logs og afvikles dermed også på din slave. Hvis dine triggers også oprettes på slaven, bliver disse ændringer således afviklet 2 gange, med de fejl det må afstedkomme.
[mysqld] server_id=2 bind-address=10.0.0.49 report_host = 10.0.0.49 # Skip duplicate entry errors, since they will stop te slave # You can skip more errors by commaseparating them. slave-skip-errors = 1032,1062,1146 # Ignore tables with temporary data that we do not need to backup replicate-ignore-table=database1.MassMail replicate-ignore-table=database1.mail_queue #Only users with SUPER privilege can write data read_only = 1
# Skip duplicate entry errors, since they will stop te slave
# You can skip more errors by commaseparating them.
# Ignore tables with temporary data that we do not need to backup
#Only users with SUPER privilege can write data
$ sudo systemctl restart mysql
$ sudo systemctl restart mysql
Indlæs data fra masteren:
mysql -u root -p < mysqldump_data.sql
mysql -u root -p < mysqldump_data.sql
MariaDB> GRANT ALL PRIVILEGES ON *.* TO 'replicator'@'10.0.0.49' IDENTIFIED BY 'adgangskode';
MariaDB> GRANT ALL PRIVILEGES ON *.* TO 'replicator'@'10.0.0.49' IDENTIFIED BY 'adgangskode';
Konfigurer den til at køre som slave:
MASTER_HOST er ip adressen på din master. MASTER_LOG_FILE og MASTER_LOG_POS er værdierne fra den SHOW MASTER STATUS forespørgsel vi kørte på masteren tidligere:
MariaDB> CHANGE MASTER TO MASTER_HOST='10.0.0.51', MASTER_USER='replicator', MASTER_PASSWORD='adgangskode', MASTER_PORT=3306, MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=314, MASTER_CONNECT_RETRY=10, MASTER_USE_GTID=slave_pos;
MariaDB> CHANGE MASTER TO
Nu kan du starte slaven:
MariaDB> START SLAVE; MariaDB> SHOW SLAVE STATUS\G; Slave_IO_State: Waiting for master to send event
MariaDB> SHOW SLAVE STATUS\G;
Slave_IO_State: Waiting for master to send event
Den første linje i status for slaven, skulle gerne vise at den venter på events fra masteren, som det ses herover.
Hvis du nogensinde skal genstarte slave-databasen eller hele slave serveren, så gør som følger:
MariaDB> STOP SLAVE; MariaDB> FLUSH TABLES;
Genstart nu server eller database og derefter:
Du kan bruge din slave til tunge forespørgsler, backup og ting generelt der ikke skal forstyrre de applikationer der kører på masteren. Du kan også lade alle  “SELECT” statements gå til slaven og alt andet gå til masteren, men da bør du overveje at konfigurere din slave som read-only.
BEMÆRK: Replikering er ikke noget man sætter op, og så kører det bare. Det kræver overvågning og vedligeholdelse. Jeg har et script der jævnligt tjekker om alt er som det skal være, og hvis ikke, får jeg en notifikation. Derudover har jeg et job der jævnligt tjekker data, og fikser det hvis slaven mangler data. Dette er helt essentielt hvis din slave er backup.
MariaDB replikering: Tjek af data
MariaDB replikering: Når replikeringen fejler
Posted in Server Tagged maradb, master, replikering, slave, ubuntu
Sikker genstart af MariaDB master
Konfigurering af L2TP VPN på Fedora 26
I gang med Angular 13 på Linux
Brug af grep kommandoen
Installer Asbru Connection Manager på Fedora
Installer DBeaver på Fedora
Node Package Manager (npm)
Linux: Afvikle en kommando som en anden bruger
MariaDB: Slå generel log til midlertidigt
Udskift nouveau driver med NVIDIA på Fedora 33 – og fortryd
Skab overblik over dine DMARC rapporter
Kategorier Vælg kategori Aftensmad Akrylmaling Bagværk Computer Dessert Fotografi Generelt Grød Hakket oksekød Hobby Hvidkål Ikke kategoriseret Internet IT Krop og sind PHP Pizza Politik Samfund Server Tips & Tricks Vegansk Webudvikling
Arkiver Vælg måned august 2022 april 2022 marts 2022 oktober 2021 maj 2021 marts 2021 februar 2021 januar 2021 december 2020 november 2020 oktober 2020 august 2020 juli 2020 juni 2020 marts 2020 januar 2020 december 2019 november 2019 oktober 2019 august 2019 juni 2019 april 2019 februar 2019 december 2018 oktober 2018 september 2018 juli 2018 juni 2018 maj 2018 april 2018 februar 2018 januar 2018 december 2017 oktober 2017 september 2017 august 2017 juli 2017 juni 2017 maj 2017 april 2017 januar 2017 december 2016 november 2016 oktober 2016 september 2016 januar 2016 december 2015 november 2015 oktober 2015 september 2015
Proudly powered by WordPress | Theme: chichi by xtianmark.