Odpověď z MediaWiki API

This is the HTML representation of the JSON format. HTML is good for debugging, but is unsuitable for application use.

Specify the format parameter to change the output format. To see the non-HTML representation of the JSON format, set format=json.

See the complete documentation, or the API help for more information.

{
    "batchcomplete": "",
    "continue": {
        "gapcontinue": "Rozpohybov\u00e1n\u00ed_p\u0159\u00edklad\u016f_z_Nette_ve_Fedo\u0159e",
        "continue": "gapcontinue||"
    },
    "warnings": {
        "main": {
            "*": "Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce> for notice of API deprecations and breaking changes."
        },
        "revisions": {
            "*": "Because \"rvslots\" was not specified, a legacy format has been used for the output. This format is deprecated, and in the future the new format will always be used."
        }
    },
    "query": {
        "pages": {
            "431": {
                "pageid": 431,
                "ns": 0,
                "title": "Reference pou\u017eit\u00ed PostgreSQL v \u010cR",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "==Internet - slu\u017eby, obchod, soci\u00e1ln\u00ed s\u00edt\u011b==\n* [http://www.uol.cz \u00da\u010detnictv\u00ed on-line], \u00fa\u010detn\u00ed slu\u017eby p\u0159es internet, PostgreSQL 10.3 (dvojn\u00e1sobn\u011b replikov\u00e1no), v\u00edce ne\u017e 1800 datab\u00e1z\u00ed od 23MB do 3GB\n* [http://www.flexibee.eu/produkty/flexibee/ FlexiBee], \u00fa\u010detn\u00ed a ekonomick\u00fd syst\u00e9m ur\u010den\u00fd pro mal\u00e9 a st\u0159edn\u00ed firmy\n* [http://www.mistacms.com/ MistaCMS], PostgreSQL 8.4, datab\u00e1ze o cca 15 a\u017e 40 MB\n* [http://www.foxstat.com FoxStat], LinuxBox.cz, n\u00e1stroj pro z\u00e1znam a anal\u00fdzu datov\u00fdch linek; des\u00edtky db, jednotky GB, TB\n* [http://www.linuxbox.cz/ipsms IPSMS], LinuxBox.cz, odes\u00edl\u00e1n\u00ed a p\u0159\u00edjem SMS zpr\u00e1v; des\u00edtky db do 1GB\n* [http://www.harmonik.cz/ Harmonik], \u00fa\u010detn\u00ed a ekonomick\u00fd syst\u00e9m ur\u010den\u00fd pro mal\u00e9 a st\u0159edn\u00ed firmy ve verzi 13, stovky datab\u00e1z\u00ed, tis\u00edce objekt\u016f v r\u00e1mci datab\u00e1ze, replikace dat typu master - master, krabicov\u00fd software\n* [https://zonky.cz/ Zonky], P2P p\u016fj\u010dky, PostgreSQL 9.4, db nad 10GB \n* [http://http://www.septim.cz/ Septim.cz] pokladn\u00ed syst\u00e9m pro restaurace a obchody, stovky DB, jednotky GB\n* [http://adresarfirem.cz adresar firem] - ve\u0159ejn\u00e1 datab\u00e1ze firem, 9.5, 31GB, 125 tabulek\n* [http://hyperodvoz.cz/aukrobot.cz aukrobot.cz] -  9.5, 3.5GB, 155 tabulek\n* [http://www.ipis.cz/ iPiS G2] - Integrovan\u00fd Podnikov\u00fd Informa\u010dn\u00ed Syst\u00e9m\n* [HTTP://www.datona.cz/ DATONA] - Pokladn\u00ed a informa\u010dn\u00ed syst\u00e9my pro sklady, obchody a restaurace. Stovky db, jednotky MB a\u017e des\u00edtky GB\n* [https://www.ifortuna.cz/ FORTUNA] - S\u00e1zkov\u00fd syst\u00e9m distribuovan\u00fd p\u0159es 4 zem\u011b, cca 1.5TB/zeme a produkt, 1-4k tx/s, verze 9.6, 11\n* [https://aukro.cz/ Aukro.cz] - Obchodn\u00ed port\u00e1l, cca 1.3TB, 1-4k tx/s, verze 9.6\n\n==Bankovnictv\u00ed a finan\u010dn\u00ed slu\u017eby==\n* [http://www.csas.cz/ \u010cesk\u00e1 spo\u0159itelna], 30 produk\u010dn\u00edch instanc\u00ed s DR, PostgreSQL je pou\u017e\u00edv\u00e1na pro \"krabicov\u00fd SW\", syst\u00e9my vyv\u00edjen\u00e9 na zak\u00e1zku i pro intern\u011b vyv\u00edjen\u00e9 aplkace, PostgreSQL 9.2 - 9.6\n* [http://www.wincor-nixdorf.cz/ Wincor Nixdorf, s.r.o.], Sekund\u00e1rn\u00ed transak\u010dn\u00ed datab\u00e1ze (bezhotovostn\u00ed platby, bankomaty etc.), n\u011bkolik instanc\u00ed, des\u00edtky a\u017e stovky GB, n\u011bkter\u00e9 s nativn\u00ed replikac\u00ed,  PostgreSQL 9.2 a vy\u0161\u0161\u00ed \n* [https://finmason.com/ finmason.com], platforma pro pokro\u010dil\u00e9 investi\u010dn\u00ed anal\u00fdzy formou API jako slu\u017ebu, PostgreSQL datab\u00e1ze ( cca 700GB) slou\u017e\u00ed jako centr\u00e1ln\u00ed \u00falo\u017ei\u0161t\u011b dat.\n\n==Pr\u016fmysl==\n* [http://www.steelsoft.sk/ Paradox], Sofistikovan\u00fd komplexn\u00fd informa\u010dn\u00fd syst\u00e9m \u0161pecializovan\u00fd pre potreby evidencie v\u00fdroby a obchodu hutn\u00edckych a stroj\u00e1rskych spolo\u010dnost\u00ed, 10 db cca 6GB\n* [http://www.teepco.cz TeepEx] - eviden\u010dn\u00ed, lokaliza\u010dn\u00ed a expedi\u010dn\u00ed syst\u00e9m palet pro v\u00fdrobn\u00ed sklady propojiteln\u00fd na jin\u00e9 informa\u010dn\u00ed syst\u00e9my. PostgreSQL 12.4, db jednotky GB, trigger-based synchronizace reportovac\u00edch tabulek do SybaseASA 16 s pomoc\u00ed SymmetricsDS 3.11\n\n==St\u00e1tn\u00ed a ve\u0159ejn\u00e1 spr\u00e1va==\n* [http://www.alis.cz/cs/produkty/keo4 KEO4], aplikace-informa\u010dn\u00ed syst\u00e9m ur\u010den\u00fd pro ve\u0159ejnou spr\u00e1vu, PostgreSQL 9.5, tis\u00edce datab\u00e1z\u00ed\n* [http://www.qcm.cz/ QCM],  aplikace pro elektronizaci ve\u0159ejn\u00fdch zak\u00e1zek, elektronick\u00e9 tr\u017ei\u0161t\u011b a profily zadavatel\u016f, PG 9.1 po 9.3., p\u0159es 140 Postgresov\u00fdch DB velikosti do 120GB, celkov\u00e1 velikost dat v PG p\u0159es 2.5TB.\n* NIS-IZS (N\u00e1rodn\u00ed informa\u010dn\u00ed syst\u00e9m integrovan\u00e9ho z\u00e1chran\u00e9ho syst\u00e9mu), provozovatel hasi\u010dsk\u00fd z\u00e1chran\u00fd sbor, 30 instanc\u00ed 9.3 s logickou replikac\u00ed vybran\u00fdch tabulek\n* [http://nil.uhul.cz/ NIL], N\u00e1rodn\u00ed inventarizace les\u016f. Pou\u017eit\u00ed PostgreSQL od roku 2008. Kompletn\u00ed ulo\u017een\u00ed (ter\u00e9nn\u00ed m\u011b\u0159en\u00ed + DPZ produkty v\u010detn\u011b rastr\u016f) a vyhodnocen\u00ed dat projektu. Vlastn\u00ed v\u00fdvoj funkcionality pomoc\u00ed [https://www.postgresql.org/docs/current/extend-extensions.html extenz\u00ed] (viz [https://gitlab.com/nfiesta nFIESTA]). T\u0159i datab\u00e1ze: ulo\u017een\u00ed dat (385GB, PG9.6 & PostGis 2.3), p\u0159\u00edprava dat pro odhady (53GB, PG9.6 & PostGis 2.3),  v\u00fdpo\u010det odhad\u016f NIL (8GB, PG12.2 & PostGis 3.0) - \u00dastav pro hospod\u00e1\u0159skou \u00fapravu les\u016f Brand\u00fds nad Labem.\n* [https://www.spcss.cz/ SPCSS] - informa\u010dn\u00ed syst\u00e9my pro ve\u0159ejnou spr\u00e1vu. PostgreSQL 11.2 - 12.2, p\u0159es 50 DB.\n* [https://cs.wikipedia.org/wiki/Z%C3%A1kladn%C3%AD_b%C3%A1ze_geografick%C3%BDch_dat ZABAGED] - z\u00e1kladn\u00ed b\u00e1ze geografick\u00fdch dat \u010cesk\u00e9 republiky, PostgreSQL 11 + PostGIS 3.1, cca 500GB vektorov\u00fdch dat, denn\u011b aktualizov\u00e1no cca 80 paraleln\u011b pracuj\u00edc\u00edmi u\u017eivateli.\n* [https://ags.cuzk.cz/jmenasveta/ Jmena sv\u011bta] - n\u00e1zvy m\u00edst na planet\u011b + jejich sou\u0159adnice\n* [https://www.autocont.cz/reference/technicke-prostredky-sldb-2021 S\u010d\u00edt\u00e1n\u00ed lidu 2021] zaji\u0161t\u011bn\u00ed sb\u011bru dat\n\n==V\u011bda, v\u00fdzkum, vzd\u011bl\u00e1n\u00ed, zdravotnictv\u00ed==\n* [http://botany.natur.cuni.cz/flower/ FLOWer], A Plant DNA Flow Cytometry Database, Katedra Botaniky UK Praha\n* [http://botany.natur.cuni.cz/palycz/ PALYCZ] Czech Quaternary Palynological Database, Katedra Botaniky UK Praha\n* [http://oma.sk OMA.sk], OMA.sk, OpenStreetMap datab\u00e1za, PostgreSQL a PostGIS, jednotky GB\n* [https://www.jcu.cz/ Jiho\u010desk\u00e1 univerzita v \u010cesk\u00fdch Bud\u011bjovic\u00edch], PostgreSQL 9.6, 11, n\u011bkolik datab\u00e1z\u00ed - Server Identity Management 24GB, db v\u00fdzkum filologie 167GB, a dal\u0161\u00ed\n* [http://www.genasis.cz/ Genasis], [http://pops-gmp.org/ GMP] environmentalni studie, RECETOX (PrF Muni),\n* [http://www.celspac.cz/ CELSPAC] kohortove studie,  RECETOX (PrF Muni), 100MB .. 1GB datab\u00e1ze\n* [https://onemocneni-aktualne.mzcr.cz/ Onemocn\u011bn\u00ed aktu\u00e1ln\u011b], p\u0159ehled aktu\u00e1ln\u00edch informac\u00ed o nemocech v \u010cesk\u00e9 republice. MZ\u010cR + \u00daZIS \u010cR (PostgreSQL v10, ulo\u017een\u00ed a p\u0159edzpracov\u00e1n\u00ed dat pro \u010d\u00e1st vykreslovan\u00fdch anal\u00fdz a API)\n* [https://www.nzip.cz/ nzip.cz], N\u00e1rodn\u00ed zdravotnick\u00fd informa\u010dn\u00ed port\u00e1l. \u00daZIS \u010cR + MZ\u010cR (PostgreSQL  v10, kompletn\u00ed ulo\u017een\u00ed obsahu port\u00e1lu a informac\u00edch o poskytovatel\u00edch zdravotn\u00ed p\u00e9\u010de v \u010cR)\n* [https://www.iz.sk/ In\u0161tit\u00fat zamestnanosti] - nieko\u013eko DB, desiatky GB, na spracovanie \u0161tatist\u00edk a anal\u00fdz z oblasti trhu pr\u00e1ce\n* [https://fit.cvut.cz/cs FIT] - pou\u017eit\u00ed Postgresu pro v\u00fduku datab\u00e1z\u00ed"
                    }
                ]
            },
            "479": {
                "pageid": 479,
                "ns": 0,
                "title": "Replikace",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "==Vestav\u011bn\u00e1 (a)synchronn\u00ed replikace - postup pro 9.1 a vy\u0161\u0161\u00ed==\n\nZde popsan\u00fd postup plat\u00ed pro streaming replikaci. Streaming replikace vylep\u0161uje Warm Standby a Hot Standby replikaci, tak \u017ee mezi master a standby datab\u00e1z\u00ed otev\u0159e s\u00ed\u0165ov\u00e9 spojen\u00ed po kter\u00e9m se p\u0159ed\u00e1vaj\u00ed z\u00e1znamy Write-Ahead Log\u016f (WAL) z masteru na standby ihned pot\u00e9, co jsou na master DB zpracov\u00e1ny. Na DB serveru v opera\u010dn\u00edm syst\u00e9mu jsou vid\u011bt b\u011b\u017e\u00edc\u00ed procesy walsender resp. walreceiver.\n\nWarm Standby a Hot Standby replikace taky vyu\u017e\u00edv\u00e1 WAL logy pro synchronizaci dat, ale v tomto p\u0159\u00edpad\u011b je pot\u0159eba logy doru\u010dit z master na slave (nap\u0159. p\u0159es scp). Tato konfigurace zde nen\u00ed pops\u00e1na.\n\nMaster b\u011b\u017e\u00ed na 10.0.0.1, replika na 10.0.0.4 \n\nPozn: ''Slave server\u016f m\u016f\u017ee b\u00fdt n\u011bkolik - slave (replika) je read-only, master pouze jeden. Podm\u00ednkou je stejn\u00e1 verze PostgreSQL na replikovan\u00e9m serveru a na replik\u00e1ch. Replikuj\u00ed se ve\u0161ker\u00e9 zm\u011bny v datab\u00e1zi. Repliky mohou m\u00edt vlastn\u00ed konfiguraci - podm\u00ednkou je soubor recovery.conf.''\n\n===P\u0159\u00edprava serveru, kter\u00fd pob\u011b\u017e\u00ed jako '''master'''===\n* vytvo\u0159en\u00ed \u00fa\u010dtu pod kter\u00fdm pob\u011b\u017e\u00ed replikace (pro 9.0 je nutn\u00e9 pou\u017e\u00edt \u00fa\u010det ''postgres'')\n<pre>\npostgres=# CREATE ROLE replikator LOGIN REPLICATION;\nCREATE ROLE\npostgres=# ALTER USER replikator PASSWORD 'heslo';\nALTER ROLE\n</pre>\n* \u00fapravy konfigurace ''postgresql.conf'' \n<pre>\nlisten_addresses = '*'\t\t# what IP address(es) to listen on;\nwal_level = hot_standby\t\t\t# minimal, archive, or hot_standby\narchive_mode = on\t\t# allows archiving to be done\narchive_command = '/bin/true'\t\t# command to use to archive a logfile segment\nmax_wal_senders = 1\t\t# max number of walsender processes\nwal_keep_segments = 64\t\t# in logfile segments, 16MB each; 0 disables\n</pre>\n* zp\u0159\u00edstupn\u011bn\u00ed masteru z repliky - z\u00e1sah do ''pg_hba.conf''\n<pre>\nhost     replication     replikator              10.0.0.4/32             md5\n</pre>\n* (nepovinn\u00e9) aktivace synchronn\u00ed replikace v ''postgresql.conf''\n<pre>\nsynchronous_standby_names = '*'\n</pre>\n\n===P\u0159\u00edprava serveru, kter\u00fd pob\u011b\u017e\u00ed jako '''slave'''===\n* z repliky se p\u0159ihl\u00e1sit jako u\u017eivatel postgres a vymazat adres\u00e1\u0159 ve kter\u00e9m bude um\u00edst\u011bn cluster repliky\n* z repliky pomoc\u00ed pg_basebackup prov\u00e9st online z\u00e1lohu masteru - (na 9.0 ru\u010dn\u011b)\n<pre>\n[postgres@nemesis data]$ pg_basebackup -D /usr/local/pgsql/data/ -U replikator -h 10.0.0.1\nPassword: \nNOTICE:  pg_stop_backup complete, all required WAL segments have been archived\n</pre>\n* v postgresql.conf povolit ''hot standby'' re\u017eim\n<pre>\nhot_standby = on\n</pre>\n* v p\u0159\u00edpad\u011b, \u017ee na replice budete volat pomal\u00e9 dotazy, nastavte aktivn\u00ed ''hot_standby_feedback''\n<pre>\nhot_standby_feedback = on\n</pre>\n* do clusteru repliky nakop\u00edrovat soubor ''recovery.conf''\n<pre>\nstandby_mode='on'\nprimary_conninfo='host=10.0.0.1 user=replikator password=heslo'\ntrigger_file='/usr/local/pgsql/data/failover'\n</pre>\n* vymazat ''serverlog'' z clusteru repliky\n* nastartovat repliku\n* log by m\u011bl obsahovat zhruba:\n<pre>\nLOG:  database system was interrupted; last known up at 2011-09-04 17:59:03 CEST\nLOG:  creating missing WAL directory \"pg_xlog/archive_status\"\nLOG:  entering standby mode\nLOG:  streaming replication successfully connected to primary\nLOG:  redo starts at 0/23000020\nLOG:  consistent recovery state reached at 0/24000000\n</pre>\nPozn: Pokud je takto nakonfigurov\u00e1n server, tak velice snadno - s pou\u017eit\u00edm '''pg_basebackup''' m\u016f\u017eeme prov\u00e1d\u011bt online full backup.V tom p\u0159\u00edpad\u011b je nutn\u00e9 zv\u00fd\u0161it ''max_wal_senders''.\n\n===Monitoring b\u011b\u017e\u00edc\u00ed replikace===\n\n'''Master server'''\n* V\u00fdpis proces\u016f OS\n<pre>\n[root@testdb1 data]# ps -ef |grep sender\npostgres  1818  1687  0 13:53 ?        00:00:00 postgres: wal sender process replikator 10.0.0.4(35948) streaming 0/130009A0\n</pre>\n\n* DB dotaz\n<pre>\npostgres=# SELECT pg_current_xlog_location() ;\n pg_current_xlog_location \n--------------------------\n 0/13000A38\n(1 row)\n</pre>\n\n'''Standby server'''\n* V\u00fdpis proces\u016f OS\n<pre>\n[root@testdb2 data]# ps -ef |grep receiver\npostgres  2837  2831  0 13:53 ?        00:00:02 postgres: wal receiver process   streaming 0/130009A0\n</pre>\n\n* DB dotaz\n<pre>\npostgres=# select pg_last_xlog_receive_location() ;\n pg_last_xlog_receive_location \n-------------------------------\n 0/13000A38\n(1 row)\n\npostgres=# select pg_last_xlog_replay_location() ;\n pg_last_xlog_replay_location \n------------------------------\n 0/13000A38\n(1 row)\n\npostgres=# SELECT pg_is_in_recovery();\n pg_is_in_recovery \n-------------------\n t\n(1 row)\n</pre>\n\n=== Failover ===\nV p\u0159\u00edpad\u011b, \u017ee v souboru recovery.conf pou\u017eijeme parametr trigger_file (v na\u0161em p\u0159\u00edpad\u011b trigger_file='/usr/local/pgsql/data/failover') sta\u010d\u00ed vytvo\u0159it pr\u00e1zdn\u00fd soubor na kter\u00fd tento \nparametr ukazuje a DB provede recovery automaticky.\n\n* Proveden\u00ed failoveru pomoc\u00ed trigger file\n<pre>\n[root@testdb2 ~]# su - posgres -c \"touch /usr/local/pgsql/data/failover\"\n\nV\u00fdpis logu:\nLOG:  trigger file found: /usr/local/pgsql/data/failover\nFATAL:  terminating walreceiver process due to administrator command\nLOG:  record with zero length at 0/13000C00\nLOG:  redo done at 0/13000BA0\nLOG:  selected new timeline ID: 2\nLOG:  archive recovery complete\nLOG:  database system is ready to accept connections\nLOG:  autovacuum launcher started\n</pre>\n\n\nDal\u0161\u00ed mo\u017enost\u00ed je pou\u017e\u00edt p\u0159\u00edkaz '''pg_ctl promote'''\n\n\nObnoven\u00ed replikace po procedu\u0159e failover znamen\u00e1 vytvo\u0159en\u00ed nov\u00e9 kopie standby DB a nastaven\u00ed nov\u00e9 replikace jak je pops\u00e1no v\u00fd\u0161e.\n\nV ''pg_bench'' tj. p\u0159i maxim\u00e1ln\u00edm vyt\u00ed\u017een\u00ed (v\u00fdchoz\u00ed konfigurace a IO s zablokovanou write cache (oby\u010dejn\u00fd disk v notebooku)) je re\u017eie asynchronn\u00ed replikace cca 6-10%, a re\u017eie synchronn\u00ed replikace cca 40% - v b\u011b\u017en\u00e9m provozu bych o\u010dek\u00e1val re\u017eii znateln\u011b ni\u017e\u0161\u00ed - pravd\u011bpodobn\u011b budete m\u00edt na sv\u00e9m serveru ji\u0161t\u011bn\u00e9 IO s aktivn\u00ed write cache.\n\nV p\u0159\u00edpad\u011b, \u017ee pot\u0159ebujeme automatick\u00e9 HA \u0159e\u0161en\u00ed existuj\u00ed r\u016fzn\u00e9 projekty, kter\u00e9 pou\u017e\u00edvaj\u00ed v\u00fd\u0161e popsan\u00fd princip streaming replikace.\n\nPro Pacemaker + Corosync existuje projekt [https://github.com/ClusterLabs/PAF PAF]. Je to v perlu napsan\u00fd OCF resource agent pomoc\u00ed kter\u00e9ho je Pacemaker schopn\u00fd rozpoznat stav jednotliv\u00fdch PostgreSQL instanc\u00ed na ka\u017ed\u00e9m nodu: master, slave, stopped, catching up, apod. V p\u0159\u00edpad\u011b, \u017ee na masteru nastane chyba, kter\u00e1 je neopraviteln\u00e1 PAF provede promote vybran\u00e9 standby DB jako nov\u00fd master. PAF vy\u017eaduje verzi PostgreSQL 9.3 a vy\u0161\u0161\u00ed\n\nDal\u0161\u00ed projekt, kter\u00fd umo\u017enuje postaven\u00ed HA \u0159e\u0161en\u00ed je [https://repmgr.org/ repmgr]. Popis konfigurace viz n\u00ed\u017ee, nebo v aktu\u00e1ln\u00edm [https://postgres.cz/files/tahak_postgresql-10.pdf tah\u00e1ku]\n\n\n==Replikace a HA zalo\u017een\u00e1 na ''repmgr'' (nutno zrevidovat)==\nFakticky se jedn\u00e1 o nadstavbu nad vestav\u011bnou podporou replikac\u00ed v PostgreSQL 9.0 a vy\u0161\u0161\u00ed. Tu roz\u0161i\u0159uje o podporu ''fail-over''. Pracnost spojen\u00e1 s t\u00edmto syst\u00e9mem je v\u011bt\u0161\u00ed ne\u017e vestav\u011bn\u00e1 replikace v 9.1 - naopak tento syst\u00e9m je mo\u017en\u00e9 pou\u017e\u00edt i s PostgreSQL 9.1.\n\nMaster je na 10.0.0.1, slave je na 10.0.0.4.\n\nP\u0159edpoklady: b\u011b\u017e\u00edc\u00ed ''sshd'', mo\u017enost kop\u00edrov\u00e1n\u00ed pomoc\u00ed ''rsync'' mezi jednotliv\u00fdmi uzlu prost\u0159ednictv\u00edm u\u010dtu ''postgres''.\n* nastaven\u00ed hesla pro u\u017eivatele ''postgres'', vytvo\u0159en\u00ed certifik\u00e1tu a jeho zkop\u00edrov\u00e1n\u00ed na ''slave''\n<pre>\n[root@nemesis pavel]# passwd postgres\nChanging password for user postgres.\nNew password: \nRetype new password: \npasswd: all authentication tokens updated successfully.\n[root@nemesis pavel]# su - postgres\n[postgres@nemesis ~]$ ssh-keygen -t rsa\nGenerating public/private rsa key pair.\nEnter file in which to save the key (/home/postgres/.ssh/id_rsa): \nCreated directory '/home/postgres/.ssh'.\nEnter passphrase (empty for no passphrase): \nEnter same passphrase again: \nYour identification has been saved in /home/postgres/.ssh/id_rsa.\nYour public key has been saved in /home/postgres/.ssh/id_rsa.pub.\nThe key fingerprint is:\nb6:84:3c:e2:e0:53:49:59:35:a9:53:9d:ca:f5:e8:ab postgres@nemesis\nThe key's randomart image is:\n+--[ RSA 2048]----+\n|      ..oo .     |\n|     o  o.+      |\n|    o  + o o     |\n|   . oo.o . .    |\n|  . + +.S.       |\n| . + . + ..      |\n|  o .   .  .     |\n|   .      .      |\n|        E.       |\n+-----------------+\n\n[postgres@10.0.0.1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.0.4\nThe authenticity of host '10.0.0.4 (10.0.0.4)' can't be established.\nRSA key fingerprint is b2:25:50:34:3f:93:da:60:e8:f2:36:88:51:a8:1a:ce.\nAre you sure you want to continue connecting (yes/no)? yes\nWarning: Permanently added '10.0.0.4' (RSA) to the list of known hosts.\npostgres@10.0.0.4's password: \nPermission denied, please try again.\npostgres@10.0.0.4's password: \nNow try logging into the machine, with \"ssh '10.0.0.4'\", and check in:\n\n  .ssh/authorized_keys\n\nto make sure we haven't added extra keys that you weren't expecting.\n\n[postgres@nemesis ~]$ ssh 10.0.0.4\n</pre>\n* v\u00fd\u0161e zm\u00edn\u011bn\u00fd login (ssh 10.0.0.4) by m\u011bl proj\u00edt bez po\u017eadavk\u016f na heslo\n* p\u0159edchoz\u00ed dva body se zopakuj\u00ed na po\u010d\u00edta\u010di, kter\u00fd m\u00e1 slou\u017eit jako slave\n<pre>\nsu - postgres\nssh-keygen -t rsa\nssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.0.1\nssh 10.0.0.1\n</pre>\n* uzav\u0159eme v\u0161echny ssh spojen\u00ed\n* na masteru p\u0159iprav\u00edme po\u010d\u00e1te\u010dn\u00ed konfiguraci PostgreSQL\n<pre>\nlisten_addresses = \"*\"\nwal_level = hot_standby\narchive_mode=on\narchive_command='/bin/true'\nmax_wal_senders=2\nwal_keep_segments=100\nhot_standby=on\n</pre>\n* prim\u00e1rn\u00ed server zp\u0159\u00edstupn\u00edme replice - z\u00e1sah do ''pg_hba.conf''\n<pre>\nhost     repmgr           repmgr      10.0.0.4/32         md5\nhost     replication      all         10.0.0.4/32         md5\nhost     repmgr           repmgr      10.0.0.1/32         md5\nhost     replication      all         10.0.0.1/32         md5\n</pre>\n* heslo u\u017eivatele ulo\u017e\u00ed v dal\u0161\u00edm kroku do ''.pgpass''\n* restart masteru\n* na '''replice''' odstran\u00edme obsah clusteru\n<pre>\n/etc/init.d/postgresql stop\ncd /var/lib/pgsql/data\nrm -rf *\n</pre>\n* na slavu p\u0159elo\u017e\u00edme [http://www.repmgr.org/ ''repmgr'']. K dispozici mus\u00ed b\u00fdt devel knihovny PostgreSQL. Tento krok je nutn\u00e9 zopakovat i na prim\u00e1rn\u00e9m serveru (masteru)\n<pre>\ntar xvfz repmgr-1.1.0.tar.gz\ncd repmgr-1.1.0\nmake USE_PGXS=1\nsu\nmake USE_PGXS=1 install\n</pre>\n* zp\u011bt na master - zalo\u017e\u00edme db ''repmgr'' a u\u017eivatele ''repmgr'' - u\u017eivatel ''repmgr'' mus\u00ed b\u00fdt superuser\n<pre>\n[postgres@10.0.0.1]$ createdb repmgr;\n[postgres@10.0.0.1]$ createuser repmgr\nShall the new role be a superuser? (y/n) y\npostgres=# ALTER USER repmgr PASSWORD 'heslo';\nALTER ROLE\n</pre>\n* ov\u011b\u0159\u00edme p\u0159\u00edstup ze slave na master\n<pre>\nsu postgres\necho '10.0.0.1:5432:repmgr:repmgr:heslo' >> .pgpass\nchmod 0600 ~/.pgpass\npsql -h 10.0.0.1 -U repmgr repmgr\n</pre>\n* klonujeme master na slave (pozor - je nutne zadat port, p\u0159esto\u017ee je standardn\u00ed)\n<pre>\n[postgres@10.0.0.4]$ repmgr -D /usr/local/pgsql/data -U repmgr -p 5432 -d repmgr -R postgres --verbose standby clone 10.0.0.1\n...\nreomgr standby clone complete\n</pre>\n* na v\u0161ech uzlech vytvo\u0159\u00edme konfigura\u010dn\u00ed soubor ''/usr/local/pgsql/repmgr/repmgr.conf'' podle vzoru:\n<pre>\n[root@10.0.0.1]# cat /usr/local/pgsql/repmgr/repmgr.conf \ncluster=test\nnode=1\nconninfo='host=10.0.0.1 user=repmgr dbname=repmgr password=heslo'\n</pre>\n* registrace masteru\n<pre>\n[root@10.0.0.1]# repmgr -f /usr/local/pgsql/repmgr/repmgr.conf --verbose master register\nOpening configuration file: /usr/local/pgsql/repmgr/repmgr.conf\nrepmgr connecting to master database\nrepmgr connected to master, checking its state\nmaster register: creating database objects inside the repmgr_test schema\nNOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index \"repl_nodes_pkey\" for table \"repl_nodes\"\nMaster node correctly registered for cluster test with id 1 (conninfo: host=10.0.0.1 user=repmgr dbname=repmgr password=heslo)\n</pre>\n* na slave je nutn\u00e9 do souboru ''recovery.conf'' dopsat p\u0159ihla\u0161ovac\u00ed \u00fadaje pro login na master\n<pre>\nstandby_mode = 'on'\nprimary_coninfo = 'host=10.0.0.1 port=5432 user=repmgr password=heslo'\n</pre>\n* registrace slave\n<pre>\n[root@nemesis data]# /etc/init.d/pgsql start\nStarting PostgreSQL: ok\n[root@10.0.0.4 data]# repmgr -f /usr/local/pgsql/repmgr/repmgr.conf --verbose standby register\nOpening configuration file: /usr/local/pgsql/repmgr/repmgr.conf\nrepmgr connecting to standby database\nrepmgr connected to standby, checking its state\nrepmgr connecting to master database\nfinding node list for cluster 'test'\nchecking role of cluster node 'host=10.0.0.1 user=repmgr dbname=repmgr password=heslo'\nrepmgr connected to master, checking its state\nrepmgr registering the standby\nrepmgr registering the standby complete\n</pre>\n* na slave nastartujeme ''repmgrd''\n<pre>\n[root@10.0.0.4]# repmgrd -f /usr/local/pgsql/repmgr/repmgr.conf --verbose > /usr/local/pgsql/repmgr/repmgr.log 2>&1\n\n[root@10.0.0.4 pavel]# tail -f /usr/local/pgsql/repmgr/repmgr.log \nrepmgrd Connecting to database 'host=10.0.0.4 user=repmgr dbname=repmgr password=heslo'\nrepmgrd Connected to database, checking its state\nrepmgrd Connecting to primary for cluster 'test'\nfinding node list for cluster 'test'\nchecking role of cluster node 'host=10.0.0.1 user=repmgr dbname=repmgr password=heslo'\nrepmgrd Checking cluster configuration with schema 'repmgr_test'\nrepmgrd Checking node 2 in cluster 'test'\nrepmgrd Starting continuous standby node monitoring\n</pre>\n* na slave se lze dot\u00e1zat na stav replikace\n<pre>\nrepmgr=# select * from repmgr_test.repl_status ;\n\u2500[ RECORD 1 ]\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nprimary_node              \u2502 1\nstandby_node              \u2502 2\nlast_monitor_time         \u2502 2011-09-05 18:00:44.277306+02\nlast_wal_primary_location \u2502 0/5B186764\nlast_wal_standby_location \u2502 0/5B186764\nreplication_lag           \u2502 0 bytes\napply_lag                 \u2502 0 bytes\ntime_lag                  \u2502 00:00:02.639117\n</pre>"
                    }
                ]
            }
        }
    }
}