Menggunakan SkytoolsUntuk Manajemen Data Master           Wildan Maulana    wildan.m@openthinklabs.com
Lingkungan●   CentOS release 6.3 (Final)●   postgres (PostgreSQL) 8.4.13●   SkyTools version 3.1.3
Setup   Layer : Provider & Ticker                        IP : 10.1.4.203                        DB : db_portal_sempur     ...
Panduan   Buat user skytools, baikdi Producer maupun Consumer                                              Kompilasi dan I...
Modul SkyTools●   PgQ, sistem queuing yang ditulis menggunakan PL/pgsql,    Python dan C    Terdiri dari tiga layer :    ●...
Producers
Consumers / Subscribers
Ticker●    Ticker dibutuhkan oleh Londiste●    Ticker harus diarahkan ke database yang menjadi “Provider”.●    Ticker dapa...
Instalasi             Di Producer maupun Consumer●   Unduh SkyTools 3 di alamat berikut :    http://bit.ly/WHUAJw●   Jalan...
Instalasi         Ubah Ownership /opt/skytools3sudo chown skytools.skytools -R /opt/skytools3
Instalasi                       Di Producer maupun Consumer ●   Edit .bashrc, tambahkan baris berikut :PATH=$PATH:/opt/sky...
Instalasi                 Pastikan Dapat Berjalan$   londiste3 --version$   pgqd --version$   qadmin --version$   queue_mo...
Mensetup Replikasi Londiste3●   Tabel-tabel yang akan direplikasi :    ●   employee_all    ●   organizationunit    ●   org...
Mempersiapkan Database Target        Replikasi (Subscriber)●   Buat database baru, misalkan namanya,    masterdata, owner ...
Mempersiapkan Database Target        Replikasi (Subscriber)●   Dump skema tabel-tabel yang ingin direplikasi    dari datab...
Tips : .pgpass●   Agar tidak perlu memasukkan password secara    interaktif, maka kita bisa menyimpan password    pada fil...
.pgpass di Subcriber●   Tambahkan entri berikut di ~/.pgpass      localhost:5432:masterdata:skytools:the_password      10....
Test Koneksi            Database di Subscriber●   Pastikan skytools di subscriber dapat mengakses    database masterdata d...
.pgpass di Provider●   Tambahkan entri berikut di ~/.pgpass      localhost:5432:db_portal_sempur:skytools:the_password    ...
Test Koneksi              Database di Provider●   Pastikan skytools di Provider dapat mengakses    database db_portal_semp...
SkyTools Services                   Di Provider maupun Di Subscriber/home/skytools/conf/skytools.ini# configure your skyto...
Membuat Konfigurasi Londiste       untuk Provider                                                      Konfigurasi ini    ...
Membuat Konfigurasi Londiste       untuk Provider                                                      Konfigurasi ini    ...
Menjalankan worker daemon pada           root node        londiste3 -d conf/db_portal.ini worker
Membuat Konfigurasi untuk      Subscriber                                                Konfigurasi ini                  ...
Membuat Node di Database Targetlondiste3 conf/db_masterdata.ini create-leaf node2 dbname=masterdata                       ...
Menjalankan Worker Daemon di       Database Target    londiste3 -d conf/db_masterdata.ini worker
Membuat Konfigurasi untuk  PgQ Ticker Daemon                               Di jalankan pada mesin tempat                  ...
Menjalankan Ticker Daemon   pgqd -d conf/pgqd.ini
Menambahkan tabel di root node●   Jalankan perintah berikut :londiste3 conf/db_portal.ini add-table employee_all   --handl...
Menambahkan tabel di leaf node  ●   Jalankan perintah berikut :londiste3   conf/db_masterdata.ini add-table employee_all  ...
SkyTools init script                  skytools3.init.dSahabat bisa melihat contoh init script sederhana        pada tautan...
Jalankan/etc/init.d/skytools3 start
Menjalankan SkyTools Ketika BootTambahkan baris script berikut untukmenginisialisais SkyTools ketika boot di/etc/rc.local ...
Referensi●   Blue Skies: Practical Skytools,    http://bit.ly/VRNt2E (Skytools 2)●   Skytools 3 Documentation, http://bit....
Upcoming SlideShare
Loading in...5
×

PostgreSQL BootCamp : Manajemen Master Data dengan SkyTools

1,018

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

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

No notes for slide

PostgreSQL BootCamp : Manajemen Master Data dengan SkyTools

  1. 1. Menggunakan SkytoolsUntuk Manajemen Data Master Wildan Maulana wildan.m@openthinklabs.com
  2. 2. Lingkungan● CentOS release 6.3 (Final)● postgres (PostgreSQL) 8.4.13● SkyTools version 3.1.3
  3. 3. Setup Layer : Provider & Ticker IP : 10.1.4.203 DB : db_portal_sempur User : skytoolsLayer : SubscriberIP : 10.1.4.148DB : masterdataUser : skytools
  4. 4. Panduan Buat user skytools, baikdi Producer maupun Consumer Kompilasi dan Install skytools, Baik di Producer maupun Consumer Install Producer Consumer ● Ticker ● Londiste3 ● Londiste3 ● pgQ ● pgQ
  5. 5. Modul SkyTools● PgQ, sistem queuing yang ditulis menggunakan PL/pgsql, Python dan C Terdiri dari tiga layer : ● Producers ● Consumers / Subscribers ● Ticker● Londiste, tool replikasi yang ditulis menggunakan Python, menggunakan PgQ sebagai event transport● Walmgr, script yang akan mensetup WAL archiving, melakukan backup awal, dan menjalankan WAL archive dan restore.
  6. 6. Producers
  7. 7. Consumers / Subscribers
  8. 8. Ticker● Ticker dibutuhkan oleh Londiste● Ticker harus diarahkan ke database yang menjadi “Provider”.● Ticker dapat dijalankan pada mesin yang berbeda (tidak harus pada mesin yang sama dimana database “Provider” berada), meskipun pada umumnya biasanya Ticker dijalankan pada mesin yang sama dimana database “Provider” berada.● Ticker dapat meng-host berapapun queue yang Sahabat inginkan. Setiap queue memiliki nama yang unik dan dapat digunakan oleh banyak subscriber.
  9. 9. Instalasi Di Producer maupun Consumer● Unduh SkyTools 3 di alamat berikut : http://bit.ly/WHUAJw● Jalankan perintah berikut : ./configure --prefix=/opt/skytools3 --with-pgconfig=/usr/bin/pg_config make make install●
  10. 10. Instalasi Ubah Ownership /opt/skytools3sudo chown skytools.skytools -R /opt/skytools3
  11. 11. Instalasi Di Producer maupun Consumer ● Edit .bashrc, tambahkan baris berikut :PATH=$PATH:/opt/skytools3/bin/export PATHPYTHONPATH=$PYHTONPATH:/opt/skytools3/lib64/python2.6/site-packages:/opt/skytools3/lib/python2.6/site-packagesexport PYTHONPATH ● Jalankan perintah : source ~/.bashrc
  12. 12. Instalasi Pastikan Dapat Berjalan$ londiste3 --version$ pgqd --version$ qadmin --version$ queue_mover3 --version$ queue_splitter3 --version$ scriptmgr3 --version$ simple_consumer3 --version$ simple_local_consumer3 --version$ skytools_upgrade3 --version$ walmgr3 --version
  13. 13. Mensetup Replikasi Londiste3● Tabel-tabel yang akan direplikasi : ● employee_all ● organizationunit ● organizationunit_parent ● organizationunit_type● Pada Schema di database replikasi constraint FK tidak diikut sertakan, hanya struktur tabel dan constraint PK saja yang diikut sertakan.
  14. 14. Mempersiapkan Database Target Replikasi (Subscriber)● Buat database baru, misalkan namanya, masterdata, owner bisa disamakan dengan database sumber (provider) CREATE DATABASE masterdata WITH OWNER = mdm ENCODING = UTF8 TABLESPACE = pg_default LC_COLLATE = en_US.UTF-8 LC_CTYPE = en_US.UTF-8 CONNECTION LIMIT = -1;
  15. 15. Mempersiapkan Database Target Replikasi (Subscriber)● Dump skema tabel-tabel yang ingin direplikasi dari database sumber (Provider). pg_dump --schema-only -t object_category -t organizationunit -t organizationunit_parent -t organizationunit_type -t employee_all --no-owner db_portal_sempur --no-acl > masterdata_schema.sql Karena kita tidak men-dump seluruh tabel Dalam database, maka sebelum melakukan Import ke database subscriber, Pastikan Sahabat telah menghapus Klausa constraint FK yang merujuk ke Tabel yang tidak ada dan menghapus trigger- Trigger yang ikut ter-dump
  16. 16. Tips : .pgpass● Agar tidak perlu memasukkan password secara interaktif, maka kita bisa menyimpan password pada file ~/.pgpass , formatnya : hostname:port:database:username:password
  17. 17. .pgpass di Subcriber● Tambahkan entri berikut di ~/.pgpass localhost:5432:masterdata:skytools:the_password 10.1.4.203:5432:db_portal_sempur:skytools:the_password Baris kedua adalah Provider● Ubah permission .pgpass chmod 0600 ~/.pgpass
  18. 18. Test Koneksi Database di Subscriber● Pastikan skytools di subscriber dapat mengakses database masterdata di localhost skytools@localhost $ psql -d masterdata masterdata=> select * from employee_all ;● Pastikan skytools di subscriber dapat mengakses database db_portal_sempur di Provider $ psql -d db_portal_sempur -h 10.1.4.203 db_portal_sempur=> select * from employee_all ;
  19. 19. .pgpass di Provider● Tambahkan entri berikut di ~/.pgpass localhost:5432:db_portal_sempur:skytools:the_password 10.1.4.158:5432:masterdata:skytools:the_password Baris kedua adalah Subscriber● Ubah permission .pgpass chmod 0600 ~/.pgpass
  20. 20. Test Koneksi Database di Provider● Pastikan skytools di Provider dapat mengakses database db_portal_sempur di localhost skytools@localhost $ psql -d db_portal_sempur masterdata=> select * from employee_all ;● Pastikan skytools di Provider dapat mengakses database masterdata di Subscriber $ psql -d masterdata -h 10.1.4.158 db_portal_sempur=> select * from employee_all ;
  21. 21. SkyTools Services Di Provider maupun Di Subscriber/home/skytools/conf/skytools.ini# configure your skytools services here# man scriptmgr3 for details.[scriptmgr]job_name = skytools3logfile = /home/skytools/log/%(job_name)s.logpidfile = /home/skytools/log/%(job_name)s.pidconfig_list = /home/skytools/conf/*.ini[DEFAULT]cwd = /[londiste3]script = /opt/skytools3/bin/londiste3args = worker[pgqd]script = /opt/skytools3/bin/pgqd
  22. 22. Membuat Konfigurasi Londiste untuk Provider Konfigurasi ini Digunakan di Provider /home/skytools/conf/db_portal.ini [londiste3] job_name = db_portal_sempur_replicate db = dbname=db_portal_sempur user=skytools port=5432 queue_name = masterdata_replicate logfile = /var/lib/pgsql/data/pg_log/skytools/%(job_name)s.log pidfile = /var/lib/pgsql/data/pg_log/skytools/%(job_name)s.pidBuat root node londiste : londiste3 conf/db_portal.ini create-root node1 dbname=db_portal_sempur
  23. 23. Membuat Konfigurasi Londiste untuk Provider Konfigurasi ini Digunakan di Provider /home/skytools/conf/db_portal.ini [londiste3] job_name = db_portal_sempur_replicate db = dbname=db_portal_sempur user=skytools port=5432 queue_name = masterdata_replicate logfile = /var/lib/pgsql/data/pg_log/skytools/%(job_name)s.log pidfile = /var/lib/pgsql/data/pg_log/skytools/%(job_name)s.pidBuat root node londiste : londiste3 conf/db_portal.ini create-root node1 dbname=db_portal_sempur
  24. 24. Menjalankan worker daemon pada root node londiste3 -d conf/db_portal.ini worker
  25. 25. Membuat Konfigurasi untuk Subscriber Konfigurasi ini Digunakan di Subscriber /home/skytools/conf/db_masterdata.ini [londiste3] job_name = db_masterdata db = dbname=masterdata user=skytools port=5432 queue_name = masterdata_replicate logfile = /home/skytools/log/%(job_name)s.log pidfile = /home/skytools/log/%(job_name)s.pid
  26. 26. Membuat Node di Database Targetlondiste3 conf/db_masterdata.ini create-leaf node2 dbname=masterdata --provider="dbname=db_portal_sempur host=10.1.4.203 port=5432"
  27. 27. Menjalankan Worker Daemon di Database Target londiste3 -d conf/db_masterdata.ini worker
  28. 28. Membuat Konfigurasi untuk PgQ Ticker Daemon Di jalankan pada mesin tempat Database Provider berada/home/skytools/conf/pgqd.ini[pgqd]base_connstr = “host=localhost port=5432 user=skytools”initial_database = template1database_list = db_portal_sempur, masterdatalogfile = /home/skytools/log/pgqd.logpidfile = /home/skytools/log/pgqd.pidUntuk melihat opsi konfigurasi yang lain, Sahabat bisa menjalankan perintah :$pgqd --ini
  29. 29. Menjalankan Ticker Daemon pgqd -d conf/pgqd.ini
  30. 30. Menambahkan tabel di root node● Jalankan perintah berikut :londiste3 conf/db_portal.ini add-table employee_all --handler=dispatch --handler-arg=skip_fields=passwordlondiste3 conf/db_portal.ini add-table organizationunitlondiste3 conf/db_portal.ini add-table organizationunit_parentlondiste3 conf/db_portal.ini add-table organizationunit_type
  31. 31. Menambahkan tabel di leaf node ● Jalankan perintah berikut :londiste3 conf/db_masterdata.ini add-table employee_all --handler=dispatch --handler-arg=skip_fields=passwordlondiste3 conf/db_masterdata.ini add-table organizationunitlondiste3 conf/db_masterdata.ini add-table organizationunit_parentlondiste3 conf/db_masterdata.ini add-table organizationunit_type
  32. 32. SkyTools init script skytools3.init.dSahabat bisa melihat contoh init script sederhana pada tautan di alamat berikut : http://bit.ly/12BAEvy
  33. 33. Jalankan/etc/init.d/skytools3 start
  34. 34. Menjalankan SkyTools Ketika BootTambahkan baris script berikut untukmenginisialisais SkyTools ketika boot di/etc/rc.local export PGPASSFILE=/var/lib/pgsql/.pgpass /var/lib/pgsql/init/skytools3.init.d start
  35. 35. Referensi● Blue Skies: Practical Skytools, http://bit.ly/VRNt2E (Skytools 2)● Skytools 3 Documentation, http://bit.ly/12e4fuJ● PgPass, http://bit.ly/wpimnV● Londiste Tutorial, http://bit.ly/17E9BC
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×