postgresql-10-check-db-dir Datei fehlt

Fragen und Probleme zum Selbstkompilierung von PostgreSQL.
Antworten
mknl
Neuer Benutzer
Beiträge: 6
Registriert: Di 11. Sep 2018, 11:14

postgresql-10-check-db-dir Datei fehlt

Beitrag von mknl » Di 11. Sep 2018, 11:41

Hi,

ich habe mich ein wenig damit beschäftigt die Installation eines PostgeSQL Servers an einige Standards des Unternehems anzupassen (Die Systeme sind RHEL7 Systeme zur Zeit: Red Hat Enterprise Linux Server release 7.5 (Maipo)).
Ich bin also dem Chapter 16 (Installation from Sources) der Dokumentation gefolgt und hatte soweit auch keine Probleme. - https://www.postgresql.org/docs/10/stat ... edure.html

Ein für uns angepasstes RPM habe ich zum Schluss erstellt und das lässt sich auch soweit nutzen und bisher treten an keiner Stelle Fehler auf. Nun wollte ich für das saubere Starten und Stoppen von PostgreSQL einen Systemd-Service einrichten und habe an diversen Stellen folgende Zeile im service file gefunden:

Code: Alles auswählen

ExecStartPre=/usr/pgsql-10/bin/postgresql-10-check-db-dir ${PGDATA}
Diese Zeile enthält z.B. auch das Service-File (/usr/lib/systemd/system/postgresql-10.service) was erstellt wird, wenn man PostgreSQL via dem offiziell bereitgestelltem RPM installiert (Abschnitt "PostgreSQL Yum Repository": https://www.postgresql.org/download/linux/redhat/).

Nun ist diese Datei (postgresql-10-check-db-dir) bei meiner "Installation from Sources" Variante nicht entstanden und ich frage mich, wo es zu finden ist und was ich beim configure/make Prozess beachten muss, damit es zum Schluss da ist. Ich habe dazu irgendwie bisher nichts gefunden.
Es ist wahrscheinlich nicht lebenswichtig, aber die Abstinenz des Files wundert mich ein wenig. (/usr/pgsql-10/bin/postgresql-10-setup fehlt im Übrigen auch ... sonst ist auf den ersten Blick alles vorhanden)

Für ein paar Aufklärende Worte sag ich schon mal vielen Dank.

LG

PS.:
Im Prinzip ist es ein überschaubar großes Shellscript mit folgender Beschreibung:
# This script verifies that the postgresql data directory has been correctly
# initialized. We do not want to automatically initdb it, because that has
# a risk of catastrophic failure (ie, overwriting a valuable database) in
# corner cases, such as a remotely mounted database on a volume that's a
# bit slow to mount. But we can at least emit a message advising newbies
# what to do.
  • Postgres-Version: 10.5 (compiled/installed from sources)
  • Operating System: Red Hat Enterprise Linux Server 7.5 (Maipo)
  • Kernel: Linux 3.10.0-862.6.3.el7.x86_64

mknl
Neuer Benutzer
Beiträge: 6
Registriert: Di 11. Sep 2018, 11:14

Re: postgresql-10-check-db-dir Datei fehlt

Beitrag von mknl » Di 11. Sep 2018, 14:22

Vielleicht noch zur Ergänzung (aber das wissen die, die sich damit beschäftigen sicherlich auch so):
Beide Skripte die bei mir fehlen (Standard Pfad der 10ner Version: /usr/pgsql-10/bin/), gehören irgendwie zum Upgrade des DB clusters auf ein neueres Major-Release.

Zum einen 'postgresql-10-check-db-dir' und der dazugehörige Eintrag im systemd-service-file, dass wohl verhindern soll, dass ein DB cluster eines älteren releases (z.B. 9.x) beim Start mit Binaries eines neueren Releases (z.B. 10.x) einfach so initialisiert wird.

Zum anderen 'postgresql-10-setup', dass wohl dann beim Upgrade selbst unterstützt.

Ich könnte mir dir Skripte auch einfach aus einer Installation mit dem offiziellen RPM rüber kopieren, aber irgendwie habe ich bedenken, dass die Dateien fehlen, da ich beim Build-Prozess etwas falsch gemacht habe. Das will ich eigentlich nur ausschließen.
  • Postgres-Version: 10.5 (compiled/installed from sources)
  • Operating System: Red Hat Enterprise Linux Server 7.5 (Maipo)
  • Kernel: Linux 3.10.0-862.6.3.el7.x86_64

frastr
Benutzer
Beiträge: 39
Registriert: Di 9. Sep 2014, 12:20
Wohnort: Hoyerswerda, Sachsen

Re: postgresql-10-check-db-dir Datei fehlt

Beitrag von frastr » Di 11. Sep 2018, 14:57

Hallo,

ich kann nur soviel sagen, das diese Datei in der Standard Ubuntu Installation *nicht* vorhanden ist.
Hier eine Liste der enthaltenen Dateien.

Code: Alles auswählen

/usr
/usr/lib
/usr/lib/postgresql
/usr/lib/postgresql/10
/usr/lib/postgresql/10/bin
/usr/lib/postgresql/10/bin/initdb
/usr/lib/postgresql/10/bin/oid2name
/usr/lib/postgresql/10/bin/pg_archivecleanup
/usr/lib/postgresql/10/bin/pg_controldata
/usr/lib/postgresql/10/bin/pg_ctl
/usr/lib/postgresql/10/bin/pg_resetwal
/usr/lib/postgresql/10/bin/pg_rewind
/usr/lib/postgresql/10/bin/pg_standby
/usr/lib/postgresql/10/bin/pg_test_fsync
/usr/lib/postgresql/10/bin/pg_test_timing
/usr/lib/postgresql/10/bin/pg_upgrade
/usr/lib/postgresql/10/bin/pg_waldump
/usr/lib/postgresql/10/bin/pgbench
/usr/lib/postgresql/10/bin/postgres
/usr/lib/postgresql/10/bin/postmaster
/usr/lib/postgresql/10/bin/vacuumlo
/usr/lib/postgresql/10/lib
/usr/lib/postgresql/10/lib/_int.so
/usr/lib/postgresql/10/lib/adminpack.so
/usr/lib/postgresql/10/lib/amcheck.so
/usr/lib/postgresql/10/lib/ascii_and_mic.so
/usr/lib/postgresql/10/lib/auth_delay.so
/usr/lib/postgresql/10/lib/auto_explain.so
/usr/lib/postgresql/10/lib/autoinc.so
/usr/lib/postgresql/10/lib/bloom.so
/usr/lib/postgresql/10/lib/btree_gin.so
/usr/lib/postgresql/10/lib/btree_gist.so
/usr/lib/postgresql/10/lib/chkpass.so
/usr/lib/postgresql/10/lib/citext.so
/usr/lib/postgresql/10/lib/cube.so
/usr/lib/postgresql/10/lib/cyrillic_and_mic.so
/usr/lib/postgresql/10/lib/dblink.so
/usr/lib/postgresql/10/lib/dict_int.so
/usr/lib/postgresql/10/lib/dict_snowball.so
/usr/lib/postgresql/10/lib/dict_xsyn.so
/usr/lib/postgresql/10/lib/earthdistance.so
/usr/lib/postgresql/10/lib/euc2004_sjis2004.so
/usr/lib/postgresql/10/lib/euc_cn_and_mic.so
/usr/lib/postgresql/10/lib/euc_jp_and_sjis.so
/usr/lib/postgresql/10/lib/euc_kr_and_mic.so
/usr/lib/postgresql/10/lib/euc_tw_and_big5.so
/usr/lib/postgresql/10/lib/file_fdw.so
/usr/lib/postgresql/10/lib/fuzzystrmatch.so
/usr/lib/postgresql/10/lib/hstore.so
/usr/lib/postgresql/10/lib/insert_username.so
/usr/lib/postgresql/10/lib/isn.so
/usr/lib/postgresql/10/lib/latin2_and_win1250.so
/usr/lib/postgresql/10/lib/latin_and_mic.so
/usr/lib/postgresql/10/lib/libpqwalreceiver.so
/usr/lib/postgresql/10/lib/lo.so
/usr/lib/postgresql/10/lib/ltree.so
/usr/lib/postgresql/10/lib/moddatetime.so
/usr/lib/postgresql/10/lib/pageinspect.so
/usr/lib/postgresql/10/lib/passwordcheck.so
/usr/lib/postgresql/10/lib/pg_buffercache.so
/usr/lib/postgresql/10/lib/pg_freespacemap.so
/usr/lib/postgresql/10/lib/pg_prewarm.so
/usr/lib/postgresql/10/lib/pg_stat_statements.so
/usr/lib/postgresql/10/lib/pg_trgm.so
/usr/lib/postgresql/10/lib/pg_visibility.so
/usr/lib/postgresql/10/lib/pgcrypto.so
/usr/lib/postgresql/10/lib/pgoutput.so
/usr/lib/postgresql/10/lib/pgrowlocks.so
/usr/lib/postgresql/10/lib/pgstattuple.so
/usr/lib/postgresql/10/lib/pgxml.so
/usr/lib/postgresql/10/lib/plpgsql.so
/usr/lib/postgresql/10/lib/postgres_fdw.so
/usr/lib/postgresql/10/lib/refint.so
/usr/lib/postgresql/10/lib/seg.so
/usr/lib/postgresql/10/lib/sepgsql.so
/usr/lib/postgresql/10/lib/sslinfo.so
/usr/lib/postgresql/10/lib/tablefunc.so
/usr/lib/postgresql/10/lib/tcn.so
/usr/lib/postgresql/10/lib/test_decoding.so
/usr/lib/postgresql/10/lib/timetravel.so
/usr/lib/postgresql/10/lib/tsm_system_rows.so
/usr/lib/postgresql/10/lib/tsm_system_time.so
/usr/lib/postgresql/10/lib/unaccent.so
/usr/lib/postgresql/10/lib/utf8_and_ascii.so
/usr/lib/postgresql/10/lib/utf8_and_big5.so
/usr/lib/postgresql/10/lib/utf8_and_cyrillic.so
/usr/lib/postgresql/10/lib/utf8_and_euc2004.so
/usr/lib/postgresql/10/lib/utf8_and_euc_cn.so
/usr/lib/postgresql/10/lib/utf8_and_euc_jp.so
/usr/lib/postgresql/10/lib/utf8_and_euc_kr.so
/usr/lib/postgresql/10/lib/utf8_and_euc_tw.so
/usr/lib/postgresql/10/lib/utf8_and_gb18030.so
/usr/lib/postgresql/10/lib/utf8_and_gbk.so
/usr/lib/postgresql/10/lib/utf8_and_iso8859.so
/usr/lib/postgresql/10/lib/utf8_and_iso8859_1.so
/usr/lib/postgresql/10/lib/utf8_and_johab.so
/usr/lib/postgresql/10/lib/utf8_and_sjis.so
Daher meine Vermutung das es sich um eine Distribution spezifisiche Datei handelt.

Gruß frastr

mknl
Neuer Benutzer
Beiträge: 6
Registriert: Di 11. Sep 2018, 11:14

Re: postgresql-10-check-db-dir Datei fehlt

Beitrag von mknl » Di 11. Sep 2018, 15:55

Wie in meinem letzten Post erwähnt scheint es sich, vereinfacht gesagt, um eine Art doppelten Boden / "Upgrade-Warnung" für Major-Release-Sprünge zu handeln.

@frastr
Kann schon sein, dass die Dateien nicht auf allen Linux-Distros (auch nicht mit der Standard Packet-Installation) entstehen, aber die Unterscheidung würde mich etwas wundern, denn als völlig unützt würde ich dieden Schutzmechanimus nun auch nicht bezeichnen.

Ich werde das jetzt vorerst ignorieren und den ExecStartPre Eintrag in meinem für PostgreSQL angelegten systemd-Service-File erstmal weglassen.

LG
  • Postgres-Version: 10.5 (compiled/installed from sources)
  • Operating System: Red Hat Enterprise Linux Server 7.5 (Maipo)
  • Kernel: Linux 3.10.0-862.6.3.el7.x86_64

akretschmer
Erfahrener Benutzer
Beiträge: 7511
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: postgresql-10-check-db-dir Datei fehlt

Beitrag von akretschmer » Di 11. Sep 2018, 15:57

wenn du das schon dir alles baust: ich empfehle, das initdb dann gleich mit Checksummen zu machen. Nur so als Hint...
(wünsche mir, daß das mal Default wird...)
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Antworten