Your SlideShare is downloading. ×
Replikacija u bazama podataka
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Replikacija u bazama podataka

1,073
views

Published on

Kratak uvod u replikaciju baza podataka, teorija i praksa (MySQL, PostgreSQL, CouchDB)

Kratak uvod u replikaciju baza podataka, teorija i praksa (MySQL, PostgreSQL, CouchDB)


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,073
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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 Asinkronapropagira svaku transakciju propagira skup transakcijapuno veći overhead zbog koristi manje mrežne uspostavljanja konekcije za propusnosti i pruža bolje svaku transakciju performansezaustavlja replikaciju ako je visoka dostupnost jedan server nedostupan replikacijske grupe mogućnost sukoba podataka mogućnost izgubljenih transakcija
  • 4. Master-slave Multimaster1 glavna, ostale kopije višegospodarskazapisuje se na master replikacijapropagira 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đukonfiguriranje 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 replikacijemogućnost sukoba u asinkronoj replikaciji sukob ažuriranja sukob jedinstvenosti sukob brisanjamoguć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 replikacijevrlo kratki intervali pražnjenja redova korištenje velikog broja resursa sustava pokretanje i zaustavljanje pražnjenja redova zahtijeva puno procesorskih ciklusarješenje: ne pretjerivati sa zahtjevima intervala pražnjenja intervali od 1 ili više minuta su sasvim u redu
  • 7. Problemi kod multimaster replikacijealat 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 replikacijeAsinkrona master-slave replikacija u MySQL-uAsinkrona master-slave replikacija u PostgreSQL-uAsinkrona multimaster replikacija u CouchDB-uPrikazana rješenja nisu konfigurirana za produkcijske servere, ali su dovoljno dobra za učenje i shvaćanje
  • 9. MySQLNa 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=1Snimiti datoteku i resetirati MySQL
  • 10. MySQLUć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. MySQLIzvršiti naredbe za prikazivanje statusa mastera: USE replicate_me; SHOW MASTER STATUS; obratimo pažnju na vrijednosti stupaca File i Position UNLOCK TABLES;
  • 12. MySQLNa 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. MySQLNa 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. PostgreSQLKao postgres korisnik inicijalizirati klaster i na masteru i na slave serverima: initdb /var/lib/pgsql/dataOmogućiti komunikaciju postgres korisnika SSH ili drugi način
  • 15. PostgreSQLNa 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/%fPokrenemo klaster pg_ctl -D /var/lib/pgsql/data start
  • 16. PostgreSQLNapravimo 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()" template1Dobivenu datoteku kopiramo na slave i raspakiramo mv /var/lib/pgsql/pg_base_backup.tar / tar xvf pg_base_backup.tarNa slave-u izbrišemo /data/postmaster.pid
  • 17. PostgreSQLMaster, /var/lib/pgsql/data/postgresql.conf listen_addresses = * max_wal_senders = 5 wal_keep_segments = 32Master, /var/lib/pgsql/data/pg_hba.conf host replication postgres 192.168.1.101/24 trust
  • 18. PostgreSQLNa slave serveru /var/lib/pgsql/data/postgresql.conf hot_standby = onDodati recovery.conf standby_mode = on primary_conninfo = host=192.168.1.100 port=5432 user=postgres može (trebao bi) imati i dodatne postavkePokrenuti servere pg_ctl -D /var/lib/pgsql/data start
  • 19. CouchDBPristupimo konzoli za administraciju Futon <IP adresa računala>:5984/_utilsU Configuration namjestimo da sluša sve IP adrese bind_address u 0.0.0.0Kreiramo baze podatakaU Replicator namjestiti <IP drugog računala>/baza_na_drugom_racunalu uključimo Continuous gumb Replicate
  • 20. CouchDBKako 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čakDojmovi 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, CouchDBhr.linkedin.com/in/vatroslavmileusnic
  • 22. Pitanja?

×