0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

pgAdminを使って本番環境DBと同じDBをAWS上に作成

Last updated at Posted at 2021-03-26

はじめに

すでに 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 をクリック。
backup.png

DB をリストア

リストアしたい DB 上で、右クリック -> [Restore...] を選択。Filename に先ほど保存したバックアップファイルを指定して、Restore をクリック。restore.png

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?