SlideShare une entreprise Scribd logo
1  sur  22
Replikacija u bazama podataka


      Vatroslav Mileusnić, univ.bacc.inf.

      mileusnic.vatroslav@gmail.com


                                                 DORS/CLUC
                                            Zagreb, 24.5.2012.
Što je replikacija?
Replikacija baza podataka je kreiranje i održavanje
 višestrukih kopija iste baze.
Vrste replikacija:
   sinkrona i asinkrona
   master-slave i master-master (multimaster)
   ...
Sinkrona                      Asinkrona
propagira svaku transakciju     propagira skup transakcija
puno veći overhead zbog         koristi manje mrežne
  uspostavljanja konekcije za     propusnosti i pruža bolje
  svaku transakciju               performanse
zaustavlja replikaciju ako je   visoka dostupnost
  jedan server nedostupan          replikacijske grupe
                                mogućnost sukoba podataka
                                mogućnost izgubljenih
                                 transakcija
Master-slave                Multimaster
1 glavna, ostale kopije    višegospodarska
zapisuje se na master        replikacija
propagira se ostalima      moguće zapisivati na bilo
                            koji server, pa se
čitanje se dijeli između    propagira svim ostalima
   svih servera
                           čitanje se dijeli između
konfiguriranje slave          svih servera
  servera da preuzme
  ulogu master-a ako       snažna i fleksibilna
  pravi master ispadne       mogućnost, ali i vrlo
                             kompleksna
Problemi kod multimaster replikacije
mogućnost sukoba u asinkronoj replikaciji
  sukob ažuriranja
  sukob jedinstvenosti
  sukob brisanja
moguća rješenja:
  konfiguriranje aplikacije da piše u samo jednu bazu
  omogućiti da aplikacija može pisati u drugu bazu, ako prva
    ispadne
Problemi kod multimaster replikacije
vrlo kratki intervali pražnjenja redova
  korištenje velikog broja resursa sustava
  pokretanje i zaustavljanje pražnjenja redova zahtijeva puno
    procesorskih ciklusa
rješenje:
  ne pretjerivati sa zahtjevima intervala pražnjenja
  intervali od 1 ili više minuta su sasvim u redu
Problemi kod multimaster replikacije
alat za nadgledanje replikacijskog sustava
  ako koristimo sinkronu replikaciju, svi serveri moraju biti
    aktivni i ispravni
  automatizirani alat koji periodično provjera status svih
    servera
  ako alat odredi da je neki server nedostupan, pokušat će
    ga ponovno pokrenuti, a ako ne uspije, uklonit će ga iz
    replikacije, tako da replikacija može dalje funkcionirati
Primjer replikacije
Asinkrona master-slave replikacija u MySQL-u
Asinkrona master-slave replikacija u PostgreSQL-u
Asinkrona multimaster replikacija u CouchDB-u


Prikazana rješenja nisu konfigurirana za produkcijske
  servere, ali su dovoljno dobra za učenje i shvaćanje
MySQL
Na serverima kreirati bazu podataka (replicate_me)
Na master serveru izmijeniti: /etc/mysql/my.cnf
  #skip-networking
  #bind-address         = 127.0.0.1
  log-bin = /var/log/mysql/mysql-bin.log
  binlog-do-db = replicate_me
  server-id=1
Snimiti datoteku i resetirati MySQL
MySQL
Ući u MySQL i dodijeliti prava slave korisniku:
  GRANT REPLICATION SLAVE ON *.* TO
   slave_korisnik@192.168.1.101 IDENTIFIED BY 'lozinka';
  GRANT RELOAD SLAVE ON *.* TO
   slave_korisnik@192.168.1.101 IDENTIFIED BY 'lozinka';
  GRANT SUPER SLAVE ON *.* TO
   slave_korisnik@192.168.1.101 IDENTIFIED BY 'lozinka';
  FLUSH PRIVILEGES;
MySQL
Izvršiti naredbe za prikazivanje statusa mastera:
  USE replicate_me;
  SHOW MASTER STATUS;
     obratimo pažnju na vrijednosti stupaca File i Position
  UNLOCK TABLES;
MySQL
Na slave serveru u /etc/mysql/my.cnf dodati:
  server-id = 2
  master-host = 192.168.1.100
  master-user = slave_korisnik
  master-password = lozinka
  master-connect-retry = 60
  replicate-do-db = replicate_me
MySQL
Na slave serveru ući u MySQL i izvršiti:
  STOP SLAVE;
  CHANGE MASTER TO MASTER_HOST = '192.168.1.100'
  MASTER_USER='slave_korisnik',
   MASTER_PASSWORD='lozinka',
   MASTER_LOG_FILE='mysql-bin.000001',
   MASTER_LOG_POS=106;
  START SLAVE;
PostgreSQL
Kao postgres korisnik inicijalizirati klaster i na masteru
 i na slave serverima:
   initdb /var/lib/pgsql/data
Omogućiti komunikaciju postgres korisnika
   SSH ili drugi način
PostgreSQL
Na master u /var/lib/pgsql/data/postgresql.conf
  wal_level = hot_standby
  archive_mode = on
  archive_command =
     'scp %p postgres@192.168.1.101:/var/lib/pgsql/archive/%f'
Pokrenemo klaster
  pg_ctl -D /var/lib/pgsql/data start
PostgreSQL
Napravimo backup
  psql -c "SELECT pg_start_backup('osnovni backup')"
    template1
  tar cvf pg_base_backup.tar /var/lib/pgsql/data
  psql -c "SELECT pg_stop_backup()" template1
Dobivenu datoteku kopiramo na slave i raspakiramo
  mv /var/lib/pgsql/pg_base_backup.tar /
  tar xvf pg_base_backup.tar
Na slave-u izbrišemo /data/postmaster.pid
PostgreSQL
Master, /var/lib/pgsql/data/postgresql.conf
  listen_addresses = '*'
  max_wal_senders = 5
  wal_keep_segments = 32
Master, /var/lib/pgsql/data/pg_hba.conf
  host replication postgres 192.168.1.101/24 trust
PostgreSQL
Na slave serveru /var/lib/pgsql/data/postgresql.conf
  hot_standby = on
Dodati recovery.conf
  standby_mode = 'on'
  primary_conninfo = 'host=192.168.1.100 port=5432
     user=postgres'
  može (trebao bi) imati i dodatne postavke
Pokrenuti servere
  pg_ctl -D /var/lib/pgsql/data start
CouchDB
Pristupimo konzoli za administraciju Futon
  <IP adresa računala>:5984/_utils
U Configuration namjestimo da sluša sve IP adrese
  bind_address u 0.0.0.0
Kreiramo baze podataka
U Replicator namjestiti
  <IP drugog računala>/baza_na_drugom_racunalu
  uključimo Continuous
  gumb Replicate
CouchDB
Kako bi napravili multimaster replikaciju, ponoviti
 podešavanje pomoću alata Replicator na drugom
 računalu
  <IP drugog računala>/baza_na_prvom_racunalu
  uključimo Continuous
  gumb Replicate
Zaključak
Dojmovi
  uobičajena MySQL vs PostgreSQL diskusija
  realno: nećemo birati koji sustav koristimo samo temeljem
    toga čija je replikacija bolja
  za male projekte i kućnu upotrebu, CouchDB


hr.linkedin.com/in/vatroslavmileusnic
Pitanja?

Contenu connexe

Tendances

cstore_fdw: Columnar Storage for PostgreSQL
cstore_fdw: Columnar Storage for PostgreSQLcstore_fdw: Columnar Storage for PostgreSQL
cstore_fdw: Columnar Storage for PostgreSQLCitus Data
 
MySQL: Indexing for Better Performance
MySQL: Indexing for Better PerformanceMySQL: Indexing for Better Performance
MySQL: Indexing for Better Performancejkeriaki
 
MySQL Index Cookbook
MySQL Index CookbookMySQL Index Cookbook
MySQL Index CookbookMYXPLAIN
 
[B22] PostgresPlus Advanced Server の Oracle Database 互換機能検証 by Noriyoshi Shinoda
[B22] PostgresPlus Advanced Server の Oracle Database 互換機能検証 by Noriyoshi Shinoda[B22] PostgresPlus Advanced Server の Oracle Database 互換機能検証 by Noriyoshi Shinoda
[B22] PostgresPlus Advanced Server の Oracle Database 互換機能検証 by Noriyoshi ShinodaInsight Technology, Inc.
 
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...InfluxData
 
Hierarchical data models in Relational Databases
Hierarchical data models in Relational DatabasesHierarchical data models in Relational Databases
Hierarchical data models in Relational Databasesnavicorevn
 
MySQL Indexing : Improving Query Performance Using Index (Covering Index)
MySQL Indexing : Improving Query Performance Using Index (Covering Index)MySQL Indexing : Improving Query Performance Using Index (Covering Index)
MySQL Indexing : Improving Query Performance Using Index (Covering Index)Hemant Kumar Singh
 
How to Analyze and Tune MySQL Queries for Better Performance
How to Analyze and Tune MySQL Queries for Better PerformanceHow to Analyze and Tune MySQL Queries for Better Performance
How to Analyze and Tune MySQL Queries for Better Performanceoysteing
 
HBase in Practice
HBase in PracticeHBase in Practice
HBase in Practicelarsgeorge
 
Linux performance tuning & stabilization tips (mysqlconf2010)
Linux performance tuning & stabilization tips (mysqlconf2010)Linux performance tuning & stabilization tips (mysqlconf2010)
Linux performance tuning & stabilization tips (mysqlconf2010)Yoshinori Matsunobu
 
Cassandra at Instagram (August 2013)
Cassandra at Instagram (August 2013)Cassandra at Instagram (August 2013)
Cassandra at Instagram (August 2013)Rick Branson
 
Morel, a Functional Query Language
Morel, a Functional Query LanguageMorel, a Functional Query Language
Morel, a Functional Query LanguageJulian Hyde
 
A New Chapter of Data Processing with CDK
A New Chapter of Data Processing with CDKA New Chapter of Data Processing with CDK
A New Chapter of Data Processing with CDKShu-Jeng Hsieh
 
The Complete MariaDB Server tutorial
The Complete MariaDB Server tutorialThe Complete MariaDB Server tutorial
The Complete MariaDB Server tutorialColin Charles
 
Spark And Cassandra: 2 Fast, 2 Furious
Spark And Cassandra: 2 Fast, 2 FuriousSpark And Cassandra: 2 Fast, 2 Furious
Spark And Cassandra: 2 Fast, 2 FuriousJen Aman
 
Real-Time Forecasting at Scale using Delta Lake and Delta Caching
Real-Time Forecasting at Scale using Delta Lake and Delta CachingReal-Time Forecasting at Scale using Delta Lake and Delta Caching
Real-Time Forecasting at Scale using Delta Lake and Delta CachingDatabricks
 
Advanced MySQL Query Tuning
Advanced MySQL Query TuningAdvanced MySQL Query Tuning
Advanced MySQL Query TuningAlexander Rubin
 
Kernel Recipes 2018 - CPU Idle Loop Rework - Rafael J. Wysocki
Kernel Recipes 2018 - CPU Idle Loop Rework - Rafael J. WysockiKernel Recipes 2018 - CPU Idle Loop Rework - Rafael J. Wysocki
Kernel Recipes 2018 - CPU Idle Loop Rework - Rafael J. WysockiAnne Nicolas
 
Scaling SolrCloud to a Large Number of Collections - Fifth Elephant 2014
Scaling SolrCloud to a Large Number of Collections - Fifth Elephant 2014Scaling SolrCloud to a Large Number of Collections - Fifth Elephant 2014
Scaling SolrCloud to a Large Number of Collections - Fifth Elephant 2014Shalin Shekhar Mangar
 

Tendances (20)

cstore_fdw: Columnar Storage for PostgreSQL
cstore_fdw: Columnar Storage for PostgreSQLcstore_fdw: Columnar Storage for PostgreSQL
cstore_fdw: Columnar Storage for PostgreSQL
 
MySQL: Indexing for Better Performance
MySQL: Indexing for Better PerformanceMySQL: Indexing for Better Performance
MySQL: Indexing for Better Performance
 
MySQL Index Cookbook
MySQL Index CookbookMySQL Index Cookbook
MySQL Index Cookbook
 
[B22] PostgresPlus Advanced Server の Oracle Database 互換機能検証 by Noriyoshi Shinoda
[B22] PostgresPlus Advanced Server の Oracle Database 互換機能検証 by Noriyoshi Shinoda[B22] PostgresPlus Advanced Server の Oracle Database 互換機能検証 by Noriyoshi Shinoda
[B22] PostgresPlus Advanced Server の Oracle Database 互換機能検証 by Noriyoshi Shinoda
 
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
 
Hierarchical data models in Relational Databases
Hierarchical data models in Relational DatabasesHierarchical data models in Relational Databases
Hierarchical data models in Relational Databases
 
MySQL Indexing : Improving Query Performance Using Index (Covering Index)
MySQL Indexing : Improving Query Performance Using Index (Covering Index)MySQL Indexing : Improving Query Performance Using Index (Covering Index)
MySQL Indexing : Improving Query Performance Using Index (Covering Index)
 
How to Analyze and Tune MySQL Queries for Better Performance
How to Analyze and Tune MySQL Queries for Better PerformanceHow to Analyze and Tune MySQL Queries for Better Performance
How to Analyze and Tune MySQL Queries for Better Performance
 
MySQL SQL Tutorial
MySQL SQL TutorialMySQL SQL Tutorial
MySQL SQL Tutorial
 
HBase in Practice
HBase in PracticeHBase in Practice
HBase in Practice
 
Linux performance tuning & stabilization tips (mysqlconf2010)
Linux performance tuning & stabilization tips (mysqlconf2010)Linux performance tuning & stabilization tips (mysqlconf2010)
Linux performance tuning & stabilization tips (mysqlconf2010)
 
Cassandra at Instagram (August 2013)
Cassandra at Instagram (August 2013)Cassandra at Instagram (August 2013)
Cassandra at Instagram (August 2013)
 
Morel, a Functional Query Language
Morel, a Functional Query LanguageMorel, a Functional Query Language
Morel, a Functional Query Language
 
A New Chapter of Data Processing with CDK
A New Chapter of Data Processing with CDKA New Chapter of Data Processing with CDK
A New Chapter of Data Processing with CDK
 
The Complete MariaDB Server tutorial
The Complete MariaDB Server tutorialThe Complete MariaDB Server tutorial
The Complete MariaDB Server tutorial
 
Spark And Cassandra: 2 Fast, 2 Furious
Spark And Cassandra: 2 Fast, 2 FuriousSpark And Cassandra: 2 Fast, 2 Furious
Spark And Cassandra: 2 Fast, 2 Furious
 
Real-Time Forecasting at Scale using Delta Lake and Delta Caching
Real-Time Forecasting at Scale using Delta Lake and Delta CachingReal-Time Forecasting at Scale using Delta Lake and Delta Caching
Real-Time Forecasting at Scale using Delta Lake and Delta Caching
 
Advanced MySQL Query Tuning
Advanced MySQL Query TuningAdvanced MySQL Query Tuning
Advanced MySQL Query Tuning
 
Kernel Recipes 2018 - CPU Idle Loop Rework - Rafael J. Wysocki
Kernel Recipes 2018 - CPU Idle Loop Rework - Rafael J. WysockiKernel Recipes 2018 - CPU Idle Loop Rework - Rafael J. Wysocki
Kernel Recipes 2018 - CPU Idle Loop Rework - Rafael J. Wysocki
 
Scaling SolrCloud to a Large Number of Collections - Fifth Elephant 2014
Scaling SolrCloud to a Large Number of Collections - Fifth Elephant 2014Scaling SolrCloud to a Large Number of Collections - Fifth Elephant 2014
Scaling SolrCloud to a Large Number of Collections - Fifth Elephant 2014
 

En vedette

Diapositivas canaima
Diapositivas  canaimaDiapositivas  canaima
Diapositivas canaimaEmilde Medina
 
Steps to social media strategy
Steps to social media strategySteps to social media strategy
Steps to social media strategysmercer2
 
2013 Presidents' Forum of St. Louis - Kraftig Presentation
2013 Presidents' Forum of St. Louis - Kraftig Presentation2013 Presidents' Forum of St. Louis - Kraftig Presentation
2013 Presidents' Forum of St. Louis - Kraftig PresentationRobert Rodenbaugh
 
The House that Service Built
The House that Service BuiltThe House that Service Built
The House that Service BuiltRobert Rodenbaugh
 
WS `Publisher Deck
WS `Publisher DeckWS `Publisher Deck
WS `Publisher DeckDavid Facter
 
Arpita mehta mphil(0930006)
Arpita mehta mphil(0930006)Arpita mehta mphil(0930006)
Arpita mehta mphil(0930006)Ravi Prakash
 
WebSpectator - Time as a measurement
WebSpectator - Time as a measurementWebSpectator - Time as a measurement
WebSpectator - Time as a measurementDavid Facter
 
So Easy Pay Presentation
So Easy Pay PresentationSo Easy Pay Presentation
So Easy Pay Presentationssaib
 
Web spectator time as a measurement
Web spectator   time as a measurementWeb spectator   time as a measurement
Web spectator time as a measurementDavid Facter
 
Jmj gonzalez vega brandon manuel (1)
Jmj gonzalez vega brandon manuel (1)Jmj gonzalez vega brandon manuel (1)
Jmj gonzalez vega brandon manuel (1)BrandonGonzalezVega
 
Milieuprestatie Bouwbesluit 2012
Milieuprestatie Bouwbesluit 2012Milieuprestatie Bouwbesluit 2012
Milieuprestatie Bouwbesluit 2012gijrath
 

En vedette (20)

Positive influence of a strong reputatino on a company´s Economic and financi...
Positive influence of a strong reputatino on a company´s Economic and financi...Positive influence of a strong reputatino on a company´s Economic and financi...
Positive influence of a strong reputatino on a company´s Economic and financi...
 
Diapositivas canaima
Diapositivas  canaimaDiapositivas  canaima
Diapositivas canaima
 
I67 top managers’ engagement
I67 top managers’ engagementI67 top managers’ engagement
I67 top managers’ engagement
 
Mars gujarati
Mars gujaratiMars gujarati
Mars gujarati
 
Becoming a citizen brands
Becoming a citizen brandsBecoming a citizen brands
Becoming a citizen brands
 
Steps to social media strategy
Steps to social media strategySteps to social media strategy
Steps to social media strategy
 
2013 Presidents' Forum of St. Louis - Kraftig Presentation
2013 Presidents' Forum of St. Louis - Kraftig Presentation2013 Presidents' Forum of St. Louis - Kraftig Presentation
2013 Presidents' Forum of St. Louis - Kraftig Presentation
 
The House that Service Built
The House that Service BuiltThe House that Service Built
The House that Service Built
 
WS `Publisher Deck
WS `Publisher DeckWS `Publisher Deck
WS `Publisher Deck
 
Arpita mehta mphil(0930006)
Arpita mehta mphil(0930006)Arpita mehta mphil(0930006)
Arpita mehta mphil(0930006)
 
WebSpectator - Time as a measurement
WebSpectator - Time as a measurementWebSpectator - Time as a measurement
WebSpectator - Time as a measurement
 
Planing my blog
Planing my blogPlaning my blog
Planing my blog
 
So Easy Pay Presentation
So Easy Pay PresentationSo Easy Pay Presentation
So Easy Pay Presentation
 
Web spectator time as a measurement
Web spectator   time as a measurementWeb spectator   time as a measurement
Web spectator time as a measurement
 
Jmj gonzalez vega brandon manuel (1)
Jmj gonzalez vega brandon manuel (1)Jmj gonzalez vega brandon manuel (1)
Jmj gonzalez vega brandon manuel (1)
 
Aligning Corporate Strategy with Risks in order to avoid a Crisis
Aligning Corporate Strategy with Risks in order to avoid a CrisisAligning Corporate Strategy with Risks in order to avoid a Crisis
Aligning Corporate Strategy with Risks in order to avoid a Crisis
 
Reasons and Emotions that Guide Stakeholder´s Decisions and Have an Impact on...
Reasons and Emotions that Guide Stakeholder´s Decisions and Have an Impact on...Reasons and Emotions that Guide Stakeholder´s Decisions and Have an Impact on...
Reasons and Emotions that Guide Stakeholder´s Decisions and Have an Impact on...
 
From Corporate Brand to Company Brand: Authenticity, Transparency and Origin
From Corporate Brand to Company Brand: Authenticity, Transparency and OriginFrom Corporate Brand to Company Brand: Authenticity, Transparency and Origin
From Corporate Brand to Company Brand: Authenticity, Transparency and Origin
 
Tim barton presentation
Tim barton presentationTim barton presentation
Tim barton presentation
 
Milieuprestatie Bouwbesluit 2012
Milieuprestatie Bouwbesluit 2012Milieuprestatie Bouwbesluit 2012
Milieuprestatie Bouwbesluit 2012
 

Replikacija u bazama podataka

  • 1. Replikacija u bazama podataka Vatroslav Mileusnić, univ.bacc.inf. mileusnic.vatroslav@gmail.com DORS/CLUC Zagreb, 24.5.2012.
  • 2. Što je replikacija? Replikacija baza podataka je kreiranje i održavanje višestrukih kopija iste baze. Vrste replikacija: sinkrona i asinkrona master-slave i master-master (multimaster) ...
  • 3. Sinkrona Asinkrona propagira svaku transakciju propagira skup transakcija puno veći overhead zbog koristi manje mrežne uspostavljanja konekcije za propusnosti i pruža bolje svaku transakciju performanse zaustavlja replikaciju ako je visoka dostupnost jedan server nedostupan replikacijske grupe mogućnost sukoba podataka mogućnost izgubljenih transakcija
  • 4. Master-slave Multimaster 1 glavna, ostale kopije višegospodarska zapisuje se na master replikacija propagira se ostalima moguće zapisivati na bilo koji server, pa se čitanje se dijeli između propagira svim ostalima svih servera čitanje se dijeli između konfiguriranje slave svih servera servera da preuzme ulogu master-a ako snažna i fleksibilna pravi master ispadne mogućnost, ali i vrlo kompleksna
  • 5. Problemi kod multimaster replikacije mogućnost sukoba u asinkronoj replikaciji sukob ažuriranja sukob jedinstvenosti sukob brisanja moguća rješenja: konfiguriranje aplikacije da piše u samo jednu bazu omogućiti da aplikacija može pisati u drugu bazu, ako prva ispadne
  • 6. Problemi kod multimaster replikacije vrlo kratki intervali pražnjenja redova korištenje velikog broja resursa sustava pokretanje i zaustavljanje pražnjenja redova zahtijeva puno procesorskih ciklusa rješenje: ne pretjerivati sa zahtjevima intervala pražnjenja intervali od 1 ili više minuta su sasvim u redu
  • 7. Problemi kod multimaster replikacije alat za nadgledanje replikacijskog sustava ako koristimo sinkronu replikaciju, svi serveri moraju biti aktivni i ispravni automatizirani alat koji periodično provjera status svih servera ako alat odredi da je neki server nedostupan, pokušat će ga ponovno pokrenuti, a ako ne uspije, uklonit će ga iz replikacije, tako da replikacija može dalje funkcionirati
  • 8. Primjer replikacije Asinkrona master-slave replikacija u MySQL-u Asinkrona master-slave replikacija u PostgreSQL-u Asinkrona multimaster replikacija u CouchDB-u Prikazana rješenja nisu konfigurirana za produkcijske servere, ali su dovoljno dobra za učenje i shvaćanje
  • 9. MySQL Na serverima kreirati bazu podataka (replicate_me) Na master serveru izmijeniti: /etc/mysql/my.cnf #skip-networking #bind-address = 127.0.0.1 log-bin = /var/log/mysql/mysql-bin.log binlog-do-db = replicate_me server-id=1 Snimiti datoteku i resetirati MySQL
  • 10. MySQL Ući u MySQL i dodijeliti prava slave korisniku: GRANT REPLICATION SLAVE ON *.* TO slave_korisnik@192.168.1.101 IDENTIFIED BY 'lozinka'; GRANT RELOAD SLAVE ON *.* TO slave_korisnik@192.168.1.101 IDENTIFIED BY 'lozinka'; GRANT SUPER SLAVE ON *.* TO slave_korisnik@192.168.1.101 IDENTIFIED BY 'lozinka'; FLUSH PRIVILEGES;
  • 11. MySQL Izvršiti naredbe za prikazivanje statusa mastera: USE replicate_me; SHOW MASTER STATUS; obratimo pažnju na vrijednosti stupaca File i Position UNLOCK TABLES;
  • 12. MySQL Na slave serveru u /etc/mysql/my.cnf dodati: server-id = 2 master-host = 192.168.1.100 master-user = slave_korisnik master-password = lozinka master-connect-retry = 60 replicate-do-db = replicate_me
  • 13. MySQL Na slave serveru ući u MySQL i izvršiti: STOP SLAVE; CHANGE MASTER TO MASTER_HOST = '192.168.1.100' MASTER_USER='slave_korisnik', MASTER_PASSWORD='lozinka', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=106; START SLAVE;
  • 14. PostgreSQL Kao postgres korisnik inicijalizirati klaster i na masteru i na slave serverima: initdb /var/lib/pgsql/data Omogućiti komunikaciju postgres korisnika SSH ili drugi način
  • 15. PostgreSQL Na master u /var/lib/pgsql/data/postgresql.conf wal_level = hot_standby archive_mode = on archive_command = 'scp %p postgres@192.168.1.101:/var/lib/pgsql/archive/%f' Pokrenemo klaster pg_ctl -D /var/lib/pgsql/data start
  • 16. PostgreSQL Napravimo backup psql -c "SELECT pg_start_backup('osnovni backup')" template1 tar cvf pg_base_backup.tar /var/lib/pgsql/data psql -c "SELECT pg_stop_backup()" template1 Dobivenu datoteku kopiramo na slave i raspakiramo mv /var/lib/pgsql/pg_base_backup.tar / tar xvf pg_base_backup.tar Na slave-u izbrišemo /data/postmaster.pid
  • 17. PostgreSQL Master, /var/lib/pgsql/data/postgresql.conf listen_addresses = '*' max_wal_senders = 5 wal_keep_segments = 32 Master, /var/lib/pgsql/data/pg_hba.conf host replication postgres 192.168.1.101/24 trust
  • 18. PostgreSQL Na slave serveru /var/lib/pgsql/data/postgresql.conf hot_standby = on Dodati recovery.conf standby_mode = 'on' primary_conninfo = 'host=192.168.1.100 port=5432 user=postgres' može (trebao bi) imati i dodatne postavke Pokrenuti servere pg_ctl -D /var/lib/pgsql/data start
  • 19. CouchDB Pristupimo konzoli za administraciju Futon <IP adresa računala>:5984/_utils U Configuration namjestimo da sluša sve IP adrese bind_address u 0.0.0.0 Kreiramo baze podataka U Replicator namjestiti <IP drugog računala>/baza_na_drugom_racunalu uključimo Continuous gumb Replicate
  • 20. CouchDB Kako bi napravili multimaster replikaciju, ponoviti podešavanje pomoću alata Replicator na drugom računalu <IP drugog računala>/baza_na_prvom_racunalu uključimo Continuous gumb Replicate
  • 21. Zaključak Dojmovi uobičajena MySQL vs PostgreSQL diskusija realno: nećemo birati koji sustav koristimo samo temeljem toga čija je replikacija bolja za male projekte i kućnu upotrebu, CouchDB hr.linkedin.com/in/vatroslavmileusnic