Erinevus lehekülje "Londiste" redaktsioonide vahel
(→p-to-s.ini seadistamine) |
|||
170. rida: | 170. rida: | ||
ja jääb käima vastav protsess. | ja jääb käima vastav protsess. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Andmete replitseerimiseks tuleb logiserverisse moodustada vastavad tableid ning seejärel öelda logiserverist | Andmete replitseerimiseks tuleb logiserverisse moodustada vastavad tableid ning seejärel öelda logiserverist | ||
207. rida: | 181. rida: | ||
Staatust saab küsida | Staatust saab küsida | ||
− | |||
− | |||
− | |||
− | |||
===Londiste haldamine=== | ===Londiste haldamine=== |
Redaktsioon: 13. aprill 2010, kell 23:21
Sisukord
Sissejuhatus
Londiste http://wiki.postgresql.org/wiki/Londiste_Tutorial on asünkroonne master/slave-tüüpi andmete replitseerimislahendus. Londiste tarkvara sisaldub Skytools komplektis ühe rakendusena.
Tööpõhimõte
Londiste kasutab PGQ http://wiki.postgresql.org/wiki/PGQ_Tutorial lahendust andmete asünkroonseks replikeerimiseks. Londiste on
- nn 'master to many slaves' lahendus
- sünkroniseeritakse tabeleid (sh loendureid)
Londiste töötamise võiks kujutada sellise skeemiga
MASTER SLAVE -----|---------------------------------------|----- _|_ _|_ | | | | |___| |___| seadistusfail: ticker.ini p-to-s.ini protsess: pgqadm ticker.ini ticker londiste p-to-s.ini replay skeemid: pgq, londiste londiste
kus
- MASTER - andmebaas, mille tabelites kasutajad muudavad andmeid
- SLAVE - andmebaas, mille tabelite sisu hoitakse masteriga sünkroonis
- pgq, londiste - replikeerimisega seotud skeemid; selliste nimedega skeeme ei tohiks andmebaasis muuks kasutuseks olla
Londiste tarkvara paigaldamine failisüsteemi
Londiste paigaldamiseks Debian Squeeze keskkonnas sobib öelda master ja slave arvutites
# apt-get install skytools
Paigaldamise tulemusena lisanduvad muu hulgas failid
/usr/bin/walmgr /usr/bin/table_dispatcher /usr/bin/skytools_upgrade /usr/bin/scriptmgr /usr/bin/queue_splitter /usr/bin/queue_mover /usr/bin/pgqadm /usr/bin/londiste /usr/bin/cube_dispatcher /usr/bin/bulk_loader
Londiste tarkvara paigaldamine andmebaasi
Londiste tööks tuleb master andmebaasi tekitada skeemid londiste ja pgq ning slave andmebaasi skeem londiste koos seal sisalduvate replikeerimiseks vajalike funktsioonide ja tabelitega.
Üks võimalus on need skeemid moodustada Slave andmebaasi arvutis töötades. Esmalt tuleb tekitada sobiva sisuga sarnane seadistusfail
$ cat /etc/londiste/londiste.ini [londiste] job_name = test_to_subcriber # source queue location provider_db = dbname=londiste port=5432 host=192.168.10.205 user=postgres password=trust # target database - it's preferable to run "londiste replay" # on same machine and use unix-socket or localhost to connect subscriber_db = dbname=londiste port=5432 host=127.0.0.1 # source queue name pgq_queue_name = londiste.replica logfile = ~/log/%(job_name)s.log pidfile = ~/pid/%(job_name)s.pid # how often to poll event from provider #loop_delay = 1 # max locking time on provider (in seconds, float) #lock_timeout = 10.0
kus on näidatud
- provider_db - master andmebaasi ligipääs
- subscriber_db - slave andmebaasi ligipääs
Tablite ning funktsioonide tekitamiseks masterisse tuleb öelda nt
$ londiste.py /etc/londiste/londiste.ini provider install
Tabelite ning funktsioonide tekitamiseks Slave'i tuleb öelda nt
$ londiste.py /etc/londiste/londiste.ini subscriber install
PgQ seadistamine ja käivitamine masteris
Masteri PgQ seadistamiseks sobib kasutada nt sellist seadistusfaili
$ cat /etc/londiste/ticker.ini [pgqadm] # should be globally unique job_name = pgqadm_londiste db = dbname=londiste port=5432 host=127.0.0.1 user=postgres password=trust # how often to run maintenance [minutes] maint_delay_min = 5 # how often to check for activity [secs] loop_delay = 0.1 logfile = ~/log/%(job_name)s.log pidfile = ~/pid/%(job_name)s.pid use_skylog = 0
kus
- db - masteri andmebaas
PgQ käivitamiseks sobib öelda masteris
$ pgqadm /etc/londiste/ticker.ini ticker
Londiste kliendi käivitamine slave'is
$ londiste /etc/londiste/londiste.ini
Londiste kasutamine
TODO
- ticker.ini
- p-to-s.ini
ticker.ini
Londiste kasutamiseks tuleb tekitada seadistusfail ticker.ini
$ cat /home/postgres/londiste/ticker.ini [pgqadm] job_name = myticker_name db = dbname=baasinimi host=10.0.13.170 user=postgres password=parool port=5432 # how often to run maintenance [seconds] maint_delay = 600 # how often to check for activity [seconds] loop_delay = 0.1 logfile = ~/londiste/log/%(job_name)s.log pidfile = ~/londiste/pid/%(job_name)s.pid
kusjuures ühendussõnet saab testida selliselt
PGQ baasi osa paigaldamiseks tuleb seejärel öelda
$ mkdir /home/postgres/londiste/log $ mkdir /home/postgres/londiste/pid $ export PYTHONPATH=/usr/local/skytools/lib/python2.4/site-packages $ /usr/local/skytools/bin/pgqadm.py /home/postgres/londiste/ticker.ini install 2009-11-03 13:28:41,793 28491 INFO plpgsql is installed 2009-11-03 13:28:41,795 28491 INFO txid_current_snapshot is installed 2009-11-03 13:28:41,796 28491 INFO Installing pgq 2009-11-03 13:28:41,796 28491 INFO Reading from \ /usr/local/skytools/share/skytools/pgq.sql
Tulemusena tekib andmebaasi baasinimi skeem pgq.
Tickeri käivitamiseks tuleb öelda
$ /usr/local/skytools/bin/pgqadm.py /home/postgres/londiste/ticker.ini ticker -d
ja jääb käima vastav protsess.
Andmete replitseerimiseks tuleb logiserverisse moodustada vastavad tableid ning seejärel öelda logiserverist
$ londiste.py p-to-s.ini provider add public.T1 public.T2 $ londiste.py p-to-s.ini subscriber add public.T1 public.T2
Subscriberi eemaldamiseks sobib öelda
$ londiste.py p-to-s.ini subscriber remove skeeminimi.tabelinimi
Staatust saab küsida
Londiste haldamine
Master
$ pgqadm /etc/londiste/ticker.ini status Postgres version: 8.4.3 PgQ version: 2.1.8 Event queue Rotation Ticker TLag ------------------------------------------------------------------------------ londiste.replica 3/360s 240/3s/60s 9s ------------------------------------------------------------------------------ Consumer Lag LastSeen ------------------------------------------------------------------------------ londiste.replica: test_to_subcriber 9s 8s ------------------------------------------------------------------------------
Slave
TODO
Testimine
TODO
Märkused
- Andmebaasiühenduse testimiseks Pyhtonist sobib öelda
$ python ... >>> import psycopg2 >>> con = psycopg2.connect('dbname=baasinimi host=10.0.13.170 \ user=postgres password=parool port=5432') >>> Ctrl-D
Kasulikud lisamaterjalid
TODO