d1ck3n
Goto Top

Wie ändert man den Speicherort einer PostgeSQL Datenbank in Redhat?

Hallo zusammen,

ich möchte den Standard Speicherort meiner psql Datenbanken auf ein separates Laufwerk legen (/apps/database), aber leider weiß ich nicht genau an welchen Stellschrauben ich drehen muss damit das klappt.

Ich habe zwar diese Anleitung gefunden, aber die bezieht sich auf Ubuntu 16.04 und ich nutze Redhat 7.4: http://yallalabs.com/linux/ubuntu/how-to-change-postgresql-data-directo ...

Deswegen greift das nicht so ganz, weil sich Redhat von Ubuntu, von der Stuktur her, schon unterscheidet.

In der postgresql.conf habe ich folgenden Eintrag gefunden:

#------------------------------------------------------------------------------
# FILE LOCATIONS
#------------------------------------------------------------------------------

# The default values of these variables are driven from the -D command-line
# option or PGDATA environment variable, represented here as ConfigDir.

#data_directory = 'ConfigDir'           # use data in another directory 
                                        # (change requires restart)
#hba_file = 'ConfigDir/pg_hba.conf'     # host-based authentication file 
                                        # (change requires restart)
#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file 
                                        # (change requires restart)

# If external_pid_file is not explicitly set, no extra PID file is written.
#external_pid_file = ''                 # write an extra PID file 
                                        # (change requires restart)

bezieht sich das auf alle PSQL Daten oder nur die config files? Ich bin da gerade etwas verwirrt und würde mich freuen, wenn mir das jemand verständlich erklären könnte.

Danke!

Grüße
D1Ck3n

Content-ID: 371629

Url: https://administrator.de/contentid/371629

Ausgedruckt am: 26.11.2024 um 05:11 Uhr

NetzwerkDude
Lösung NetzwerkDude 19.04.2018 um 10:06:35 Uhr
Goto Top
Die Ubuntu Anleitung kannst du 1:1 übernehmen face-smile

Die Interaktive Postgres Konsole sagt dir ja mit dem Befehl:
SHOW data_directory;
Wo der Aktuelle Pfad liegt

Und in der von dir geposteten conf einfach das
#data_directory = 'ConfigDir'   
Einkommentieren und den Pfad eintragen:
data_directory = '/apps/database'    

Dannach noch postgres neustarten:
sudo systemctl restart postgresql
D1Ck3n
D1Ck3n 19.04.2018 um 11:19:09 Uhr
Goto Top
Hi Netzwerkdude,

die Anleitung sagt aber das ich die /etc/postgresql/9.6/main/postgresql.conf editieren soll und die liegt bei Redhat auch in der data_directory und nicht separat in der /etc/

Das irritiert mich gerade.

Ach ja, ich habe vergessen zu sagen, dass ich die aktuellste psql Version (10) nutze.
NetzwerkDude
NetzwerkDude 19.04.2018 um 11:30:24 Uhr
Goto Top
lt. Handbuch stimmt es wie es bei dir ist:
https://www.postgresql.org/docs/current/static/runtime-config-file-locat ...

"In a default installation, none of the above parameters are set explicitly. Instead, the data directory is specified by the -D command-line option or the PGDATA environment variable, and the configuration files are all found within the data directory."

weiter unten auch:
"Notice that data_directory overrides -D and PGDATA for the location of the data directory, but not for the location of the configuration files".

Daraus leite ich mal ab das es gefahrlos möglich ist die änderungen zu machen wir im ersten Post von mir

PS: Ich habe Postgres10 selbst noch nie bentuzt, daher ist das ein bisschen theoretisch was ich so schreibe...
D1Ck3n
D1Ck3n 19.04.2018 um 11:47:32 Uhr
Goto Top
Also den Step dem umbenennen der "main" in "main.backup" sollte man nicht machen. Bezogen auf meinen ersten Blogpost.

Ich habe in der alten Config den Pfad auf das neue Verzeichnis gemacht und es klappt! Also es wird immerhin so ausgegeben:

postgres=# SHOW data_directory;
     data_directory
-------------------------
 /apps/database/postgres
(1 row)

Danke für die Hilfe! face-smile