2020年4月20日月曜日

Ubuntu18.04でのpostgreSQLデータディレクトリ変更

Ubuntu18.04にPostgreSQLを入れてデータディレクトリを変更する際のメモ

■PostgreSQLのインストール
Ubuntu18.04ではPostgreSQLのVer.10がインストールされる
$ sudo apt -y install postgresql



■現状のデータディレクトリ確認
DBにログイン
$ sudo –u postgres psql

・データディレクトリ確認
postgres=# SHOW data_directory;
【/var/lib/postgresql/10/main】と表示されているはず


・ログアウト
\q


■変更先フォルダ作成
今回は【/mnt/usb/pgdata】を新しいデータディレクトリにする
・フォルダ作成とパーミッション変更
 所有者をpostgresにして所有者のみ読み書きできるように
$ sudo mkdir /mnt/usb/pgdata
$ sudo chmod go-rwx /mnt/usb/pgdata
$ sudo chown postgres:postgres /mnt/usb/pgdata


DB初期化
・ユーザpostgresにログイン

$sudo -s -u postgres

・DB初期化
 Ubuntuだとinitdbにパスが通って無いのでとりあえずフルパスで指定
$ /usr/lib/postgresql/10/bin/initdb -D /mnt/usb/pgdata


■設定ファイル書き換え
postgresユーザだと掛けない場合はログアウトして
$ sudo vim /etc/postgresql/10/main/postgresql.conf

・該当箇所を以下の通り書き換え
data_directory = '/var/lib/postgresql/10/main' # use data in another directory
data_directory = '/mnt/usb/pgdata' # use data in another directory


■postgesqlの再起動
$ sudo /etc/init.d/postgresql stop
$ sudo /etc/init.d/postgresql start


■変更後ののデータディレクトリ確認
DBにログイン
$ sudo –u postgres psql

・データディレクトリ確認
postgres=# SHOW data_directory;
【/mnt/usb/pgdata】と表示されているはず

・問題なければログアウト
\q


これでデータディレクトリを任意の位置に変更できる