Corner Notes [email protected]Dalam catatan ini dipresentasikan tahapan penggunaan Slony untuk replikasi dan sinkronisasi database postgres. Contoh kasus menggunakan database Odoo dalam environment Windows digambarkan sebagai berikut: Slony Cluster192.168.50.2 Slave Host 192.168.50.1 Master Host Data Replication pg_hba.confpg_service.conf192.168.50.1.slon preamble.sk initcluster.sk addnode.sk addpaths.sk buildset.sk addtables.sk subscribeset.sk pg_hba.confpg_service.conf192.168.50.2.slon Dalam gambar tersebut komputer 192.168.50.1 berperan sebagai master host dan 192.168.50.2 sebagai slave host. Data akan direplikasi dan disinkronisasi dari master host ke slave host. File konfigurasi dan script yang dibutuhkan dalam kegiatan ini dicantumkan dalam list diatas yaitu pg_hba.conf, pg_service.conf, *.slon dan *.sk akan dijelaskan dalam tahapan berikut: 1.Langkah pertama adalah menginstall slony menggunakan Application Stack Builder.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Dalam catatan ini dipresentasikan tahapan penggunaan Slony untuk replikasi dansinkronisasi database postgres. Contoh kasus menggunakan database Odoo dalamenvironment Windows digambarkan sebagai berikut:
Dalam gambar tersebut komputer 192.168.50.1 berperan sebagai master host dan192.168.50.2 sebagai slave host. Data akan direplikasi dan disinkronisasi dari master hostke slave host. File konfigurasi dan script yang dibutuhkan dalam kegiatan ini dicantumkandalam list diatas yaitu pg_hba.conf, pg_service.conf, *.slon dan *.sk akan dijelaskan dalamtahapan berikut:
1. Langkah pertama adalah menginstall slony menggunakan Application Stack Builder.
Edit file C:\Program Files\PostgreSQL\9.4\data\ pg_hba.conf baik dimaster host maupun slave host, kemudian reload menggunakan pgAdmin (Tools >Reload Configuration).
File pg_hba.conf di master host sbb:# TYPE DATABASE USER ADDRESS METHOD# IPv4 local connections:host odoo_node1 slony 192.168.50.2/32 md5
host all all 127.0.0.1/32 md5# IPv6 local connections:host all all ::1/128 md5
File pg_hba.conf di slave host sbb:
# TYPE DATABASE USER ADDRESS METHOD# IPv4 local connections:host odoo_node2 slony 192.168.50.1/32 md5host all all 127.0.0.1/32 md5# IPv6 local connections:host all all ::1/128 md5
5. Buat folder di master host dan slave host berisi file pg_service.conf dan setenvironment variable PGSYSCONFDIR ke folder tersebut. Untuk contoh ini file
pg_service.conf disimpan dalam folder C:\slonycluster. Folder tersebut untukselanjutnya dijadikan sebagai working directory.
6. Langkah selanjutnya membuat script untuk menginisiasi cluster, menambahkanslave node, dan menambahkan paths untuk menghubungkan node dalam cluster.Script berikut dibuat dan dijalankan di master host dengan working directoryC:\slonycluster.
8. Register Slony service dan engine di master host dan slave host Selanjutnyajalankan Slony service dengan membuka Control Panel > Administrative Tools >Services, pilih Slony service dan klik link Start Service.
9. Tahap selanjutnya adalah membuat script untuk menambahkan replication set kereplication cluster, menambahkan table ke replication set, dan script untuksubscribe slave node ke replication set. Replication set dibuat sesuai dengankebutuhan. Dalam contoh ini dibuat 3 buah replication set untuk table yang berelasidengan res_users, product_product, dan product_taxes_rel.
SET ADD TABLE (SET ID=1, ORIGIN = 1, ID = 17, FULLY QUALIFIED NAME ='public.res_partner_title', ADD SEQUENCES=true);
SET ADD TABLE (SET ID=1, ORIGIN = 1, ID = 18, FULLY QUALIFIED NAME = 'public.ir_sequence',ADD SEQUENCES=true);SET ADD TABLE (SET ID=1, ORIGIN = 1, ID = 19, FULLY QUALIFIED NAME ='public.product_pricelist', ADD SEQUENCES=true);SET ADD TABLE (SET ID=1, ORIGIN = 1, ID = 20, FULLY QUALIFIED NAME ='public.stock_picking_type', ADD SEQUENCES=true);SET ADD TABLE (SET ID=1, ORIGIN = 1, ID = 21, FULLY QUALIFIED NAME ='public.account_journal', ADD SEQUENCES=true);
SET ADD TABLE (SET ID=1, ORIGIN = 1, ID = 22, FULLY QUALIFIED NAME ='public.product_removal', ADD SEQUENCES=true);SET ADD TABLE (SET ID=1, ORIGIN = 1, ID = 23, FULLY QUALIFIED NAME ='public.product_putaway', ADD SEQUENCES=true);
SET ADD TABLE (SET ID=1, ORIGIN = 1, ID = 24, FULLY QUALIFIED NAME ='public.product_uom_categ', ADD SEQUENCES=true);
SET ADD TABLE (SET ID=1, ORIGIN = 1, ID = 25, FULLY QUALIFIED NAME ='public.stock_warehouse', ADD SEQUENCES=true);
SET ADD TABLE (SET ID=1, ORIGIN = 1, ID = 26, FULLY QUALIFIED NAME ='public.procurement_rule', ADD SEQUENCES=true);SET ADD TABLE (SET ID=1, ORIGIN = 1, ID = 27, FULLY QUALIFIED NAME ='public.stock_location_route', ADD SEQUENCES=true);
SET ADD TABLE (SET ID=1, ORIGIN = 1, ID = 28, FULLY QUALIFIED NAME ='public.account_analytic_journal', ADD SEQUENCES=true);
SET ADD TABLE (SET ID=1, ORIGIN = 1, ID = 29, FULLY QUALIFIED NAME ='public.account_account_type', ADD SEQUENCES=true);
File subscribeset1.sk#!C:\"Program Files"\PostgreSQL\9.4\bin\slonik#file subscribeset1.sk for adding subscribers to replication set 1include <preamble.sk>;subscribe set (id=1, provider=1, receiver=2, forward=yes);
sync(id=1);wait for event (origin=1, confirmed=2, wait on=1, timeout=1800);
Eksekusi perintah berikut di master host untuk replication set #1C:\slonycluster>runslonik buildset1.skC:\slonycluster>runslonik addtables1.skC:\slonycluster>runslonik subscribeset1.sk
SET ADD TABLE (SET ID=2, ORIGIN = 1, ID = 36, FULLY QUALIFIED NAME ='public.hr_timesheet_invoice_factor', ADD SEQUENCES=true);
File subscribeset2.sk#!C:\"Program Files"\PostgreSQL\9.4\bin\slonik# file subscribeset2.sk for adding subscribers to replication set 2include <preamble.sk>;subscribe set (id=2, provider=1, receiver=2, forward=yes);sync(id=1);wait for event (origin=1, confirmed=2, wait on=1, timeout=1800);
Eksekusi perintah berikut di master host untuk replication set #2C:\slonycluster>runslonik buildset2.skC:\slonycluster>runslonik addtables2.skC:\slonycluster>runslonik subscribeset2.sk
SET ADD TABLE (SET ID=3, ORIGIN = 1, ID = 37, FULLY QUALIFIED NAME = 'public.account_tax',ADD SEQUENCES=true);SET ADD TABLE (SET ID=3, ORIGIN = 1, ID = 38, FULLY QUALIFIED NAME ='public.account_tax_code', ADD SEQUENCES=true);
SET ADD TABLE (SET ID=3, ORIGIN = 1, ID = 39, FULLY QUALIFIED NAME ='public.product_taxes_rel', KEY='product_taxes_rel_prod_id_tax_id_key', ADDSEQUENCES=false);
File subscribeset3.sk#!C:\"Program Files"\PostgreSQL\9.4\bin\slonik# file subscribeset3.sk for adding subscribers to replication set 3include <preamble.sk>;subscribe set (id=3, provider=1, receiver=2, forward=yes);sync(id=1);wait for event (origin=1, confirmed=2, wait on=1, timeout=1800);
Eksekusi perintah berikut di master host untuk replication set #3C:\slonycluster>runslonik buildset3.skC:\slonycluster>runslonik addtables3.skC:\slonycluster>runslonik subscribeset3.sk