はじめに
すでに AWS 上で動いている本番環境 DB からデータを引っ張ってきてアプリ上で表示させたい。ただ本番環境を汚してトラブルになるのは怖いので、別で EC2 インスタンスをたててそこに PostgreSQL をインストールし、本番環境 DB のコピーを作成する。
EC2 インスタンスに PostgreSQL をインストール
EC2 インスタンスの端末で以下コマンドを実行し、PostgreSQL をインストール。
$ sudo apt -y update
$ sudo apt -y install postgresql postgresql-contrib
インストールすると、/etc/postgresql/12/main/postgresql.conf が作成されるので、クライアントから接続ができるように listen_addresses (59行目あたり)を以下のように変更する。
#listen_addresses = 'localhost' # デフォルトで書かれている設定
listen_addresses = '*' # 追記した設定
上記設定にすることで、どのクライアントからでも接続できるようになる。制限を加えたい場合は、listen_addresses = '192.168.0.1'
のように IP アドレスを指定する。
設定を適用するために、一度再起動。
$ sudo service postgresql restart
また PostgreSQL インストール時に作成されるユーザ postgres はパスワードが未設定の状態である。その状態だとアカウントロック状態になっているので、パスワードを設定する。
ubuntu:$ sudo -i -u postgres
postgres:$ psql
postgres=# \password
Enter new password:
Enter it agein:
postgres=# \q
DB へ接続
Windows10 の pgAdmin で 接続する。pgAdmin は PostgreSQL からファイルをダウンロードしてインストールする。(詳細は割愛)
pgAdmin を開いて Servers 上で右クリック -> [Create] -> [Server] で DB に接続する。[General] タブで Name:(任意)、
[Connection] タブで __Host name/address:(Server の IP アドレス、ifconfig にて確認可能)、Password:(上記で設定していたパスワード)__を入力すれば接続できる。
DB のバックアップを作成
上記で接続した DB にて、バックアップをとりたい DB 上で右クリック -> [Backup...] を選択。Filename に任意の保存先、Format に Tar、Encoding に UTF8 を選択し、Backup をクリック。
DB をリストア
リストアしたい DB 上で、右クリック -> [Restore...] を選択。Filename に先ほど保存したバックアップファイルを指定して、Restore をクリック。