はじめに
PostgreSQLのデータフォルダ(data
フォルダ)のパスを変更したい状況が発生することがあります。特に、ストレージの拡張やディレクトリ構成の変更が必要な場合、data
ディレクトリの移動が必要となることがあります。今回は、Windows上でPostgreSQLのdata
フォルダを新しい場所に移動し、正常に動作させる方法をステップごとに紹介します。
手順
1. PostgreSQLの停止
まず、データベースサーバーを停止します。PostgreSQLが稼働したままではデータディレクトリの変更ができないため、必ず停止させます。
Windowsサービスマネージャーを使用してpostgresql-x64
-16サービスを停止するか、コマンドプロンプト(管理者として実行)で以下のコマンドを実行します。
net stop postgresql-x64-16
2. PostgreSQLのWindowsサービスを削除
次に、現在のPostgreSQLサービスを削除します。これにより、旧データフォルダへの参照が削除されます。
pg_ctl unregister -N postgresql-x64-16
このコマンドで、指定したサービス名を削除します。
3. dataディレクトリを新しい場所に移動
次に、現在のdata
ディレクトリを新しいディレクトリに移動します。移動が完了するまでは元のデータディレクトリを残しておき、バックアップとして使用することを推奨します。
例:C:\Program Files\PostgreSQL\16\dataをD:\PostgreSQL\data
に移動する場合
xcopy "C:\Program Files\PostgreSQL\16\data" "D:\PostgreSQL\data" /E /H /C /I
4. 新しいdataディレクトリでPostgreSQLサービスを再登録
データの移動が完了したら、新しい場所のdata
フォルダを使用してPostgreSQLサービスを再登録します。
pg_ctl register -N postgresql-x64-16 -D "D:\PostgreSQL\data"
このコマンドで、新しいディレクトリを指定し、サービス名を「postgresql-x64-16」として再登録します。
5. サービスを開始
次に、net start
コマンドを使ってPostgreSQLサービスを開始します。
net start postgresql-x64-16
サービスが正しく開始されたかどうかを確認します。
6. psqlで接続して確認
PostgreSQLが正常に稼働しているかを確認するため、psql
コマンドを使用してデータベースに接続します。
psql -U postgres
このコマンドで、postgres
ユーザーとしてPostgreSQLに接続します。
7. データディレクトリの確認
最後に、PostgreSQLが新しいdata
ディレクトリを使用していることを確認します。以下のSQLコマンドを実行し、data_directory
の値を確認します。
SHOW data_directory;
このコマンドで表示されたパスが、新しいディレクトリの場所になっているかを確認します。
8. 古いdataディレクトリの削除
PostgreSQLが正常に新しいdata
ディレクトリを使用していることを確認したら、必要に応じて古いディレクトリを削除します。
まとめ
PostgreSQLのdata
フォルダパスを変更する際には、PostgreSQLの停止、サービスの再登録、data
フォルダの移動など、慎重なステップを踏む必要があります。今回の手順を使用して、Windows環境でのdata
フォルダパス変更を安全に行ってください。
コメント