PostgreSQLのデータディレクトリを別の場所に移動する手順について、以下に詳しく説明します。この手順は、特にUbuntu 16.04サーバーでの実施を前提にしています。PostgreSQLのデータベースが格納されているディレクトリを変更することにより、ストレージの最適化やパフォーマンス向上、または管理上の理由でディスクの選択を変更したい場合に有効です。
1. 事前準備
まず最初に、PostgreSQLのデータディレクトリを移動する前に、現在の設定を確認し、適切なバックアップを取ることが重要です。
バックアップ
PostgreSQLのデータを移動する際、データの損失を避けるためにバックアップを取ります。以下のコマンドを使用してバックアップを作成します。
bashsudo -u postgres pg_dumpall > backup.sql
このコマンドでデータベース全体のバックアップが作成されます。万が一のトラブルに備えて、バックアップファイル(backup.sql
)を安全な場所に保存してください。
PostgreSQLの停止
データディレクトリの移動作業を行うためには、PostgreSQLを一時的に停止する必要があります。以下のコマンドを使用してPostgreSQLを停止します。
bashsudo systemctl stop postgresql
2. 新しいデータディレクトリを作成
次に、新しいデータディレクトリを作成します。通常、PostgreSQLのデータは/var/lib/postgresql/
ディレクトリ内に格納されています。これを新しい場所に移動します。
新しいデータディレクトリを作成する場所を選びます。例えば、/mnt/data/postgresql
に移動する場合は、次のコマンドを実行します。
bashsudo mkdir -p /mnt/data/postgresql
ディレクトリの権限を適切に設定します。PostgreSQLはpostgres
ユーザーで動作しているため、ディレクトリの所有者をpostgres
に変更します。
bashsudo chown postgres:postgres /mnt/data/postgresql
3. 既存のデータを新しいディレクトリにコピー
次に、既存のデータを新しいディレクトリにコピーします。まず、現在のデータディレクトリの場所(通常は/var/lib/postgresql/
)から、新しいディレクトリにデータをコピーします。
bashsudo rsync -av /var/lib/postgresql/ /mnt/data/postgresql/
rsync