PostgreSQL データの格納場所を変更する
PostgreSQL 9.2 でデータベースの保存先を変更する
下記の環境で、PostgreSQLのデータベースの格納場所をデフォルトから違う場所に変更します。
デフォルトの「/var/lib/pgsql/」があるディレクトリのディスクが容量が少ないので、追加ディスクに作成した「/data/pgsql」のディレクトリに変更します
【環境】
- OS: Cent OS 7.7
- PostgreSQL 9.2
- デフォルト保存場所: /var/lib/pgsql/
- 変更先: /data/pgsql
1.作業開始前にPostgreSQLのDBをバックアップします
# su - postgres -c "/usr/bin/pg_dump testdb > /var/tmp/testdb_bak.db"
2. PostgreSQLのサービスを停止します
# systemctl stop postgresql.service
3.変更先のディスクのディレクトリを作成し、所有者とパーミッションを変更します
# mkdir /data/pgsql # chown -R postgres:postgres /data/pgsql # chmod -R 700 /data/pgsql
4.postgresql.service のファイル内の Environment=PGDATAの場所を移動先のディレクトリに指定する
# vim /usr/lib/systemd/system/postgresql.service #Environment=PGDATA=/var/lib/pgsql/data Environment=PGDATA=/data/pgsql/data
5.daemon-reloadをリロードする
# systemctl daemon-reload
6.DBを初期化する
# postgresql-setup initdb
7.PostgreSQLを起動します
# systemctl start postgresql.service
8.レストアするデータベースを作成します
# su - postgres $ psql postgres=# create database testdb; postgres=# \q
9.バックアップしたデータベースをリストアします
$ psql postgres=# create database testdb; postgres=# \q $ psql -U postgres -f /var/tmp/testdb_bak.db testdb
※設定ファイルも初期化されているので、「/var/lib/pgsql/data/postgresql.conf」、「/var/lib/pgsql/data/pg_hba.conf」変更されている場合は、その内容を反映します
設定ファイルをバックアップします # cp /data/pgsql/data/postgresql.conf /data/pgsql/data/postgresql.bak # cp /data/pgsql/data/pg_hba.conf /data/pgsql/data/pg_hba.bak デフォルトディレクトリの設定ファイルをコピーします # cp /var/lib/pgsql/data/postgresql.conf /data/pgsql/data/postgresql.conf # cp /var/lib/pgsql/data/pg_hba.conf /data/pgsql/data/pg_hba.conf PostgreSQLを再起動します # systemctl restart postgresql.service
ディスカッション
コメント一覧
まだ、コメントがありません