Amazon EC2 인스턴스에서 PostgreSQL 데이터베이스 가져오기
Amazon EC2 인스턴스상의 PostgreSQL 서버에 데이터가 있는데 이를 PostgreSQL DB 인스턴스로 이동하려는 경우 다음 프로세스를 사용하여 데이터를 마이그레이션할 수 있습니다.
-
로드할 데이터를 포함한 pg_dump를 사용하여 파일 만들기
-
대상 DB 인스턴스 만들기
-
psql을 사용하여 DB 인스턴스에서 데이터베이스를 만들고 데이터 로드
-
DB 인스턴스의 DB 스냅샷 만들기
다음 섹션에서는 위에 나열된 각 단계에 대한 자세한 내용을 제공합니다.
1단계: 로드할 데이터를 포함하여 pg_dump로 파일 생성
pg_dump
유틸리티는 COPY 명령을 사용하여 PostgreSQL 데이터베이스의 스키마와 데이터 덤프를 만듭니다. pg_dump
에 의해 생성되는 덤프 스크립트는 같은 이름을 가진 데이터베이스로 데이터를 로드하고 테이블, 인덱스 및 외래 키를 다시 만듭니다. pg_restore
명령과 -d
파라미터를 사용하여 데이터를 다른 이름의 데이터베이스로 복원할 수 있습니다.
데이터 덤프를 만들기 전, 대상 DB 인스턴스에서 개수를 확인할 수 있도록 행 개수를 확인하기 위해 덤프할 테이블을 쿼리해야 합니다.
다음 명령을 실행하면 mydb2라는 데이터베이스에 대해 mydb2dump.sql이라는 덤프 파일이 생성됩니다.
prompt>pg_dump dbname=mydb2 -f mydb2dump.sql
2단계: 대상 DB 인스턴스 만들기
Amazon RDS 콘솔, AWS CLI 또는 API를 사용하여 대상 PostgreSQL DB 인스턴스를 만듭니다. 백업 보존 설정을 0으로 지정하여 인스턴스를 만들고 다중 AZ를 비활성화합니다. 그러면 데이터를 더 빠르게 가져올 수 있습니다. 데이터를 덤프하려면 먼저 인스턴스에 데이터베이스를 생성해야 합니다. 데이터베이스 이름은 덤프 데이터가 저장된 데이터베이스와 동일하게 지정할 수 있습니다. 그렇지 않으면 다른 이름으로 지정하는 것도 가능합니다. 이 경우에는 pg_restore
명령과 -d
파라미터를 사용하여 데이터를 새로운 이름의 데이터베이스로 복원할 수 있습니다.
예를 들어 다음 명령을 사용하여 데이터베이스를 덤프 및 복원하고 이름을 바꿀 수 있습니다.
pg_dump -Fc -v -h
[endpoint of instance]
-U[master username]
[database]
>[database]
.dump createdb[new database name]
pg_restore -v -h[endpoint of instance]
-U[master username]
-d[new database name]
[database]
.dump
3단계: psql을 사용하여 DB 인스턴스에서 데이터베이스를 만들고 데이터 로드
pg_dump 명령을 실행할 때 사용한 것과 같은 연결을 사용하여 대상 DB 인스턴스에 연결하고 데이터베이스를 다시 만들 수 있습니다. psql을 사용할 때는 마스터 사용자 이름과 마스터 암호를 사용하여 DB 인스턴스에 데이터베이스를 만들 수 있습니다.
다음 예제에서는 psql과 mydb2dump.sql이라는 덤프 파일을 사용하여 mypginstance라는 PostgreSQL DB 인스턴스에 mydb2라는 데이터베이스를 만듭니다.
대상 LinuxmacOS, 또는Unix:
psql \ -f
mydb2dump.sql
\ --hostmypginstance.555555555555
.aws-region
.rds.amazonaws.com \ --port8199
\ --usernamemyawsuser
\ --passwordpassword
\ --dbnamemydb2
Windows의 경우:
psql ^ -f
mydb2dump.sql
^ --hostmypginstance.555555555555
.aws-region
.rds.amazonaws.com ^ --port8199
^ --usernamemyawsuser
^ --passwordpassword
^ --dbnamemydb2
참고
보안 모범 사례로 여기에 표시된 프롬프트 이외의 암호를 지정하는 것이 좋습니다.
4단계: DB 인스턴스의 DB 스냅샷 만들기
데이터가 DB 인스턴스로 로드된 것을 확인했으면, 대상 PostgreSQL DB 인스턴스의 DB 스냅샷을 만드는 것이 좋습니다. DB 스냅샷은 DB 인스턴스를 알려진 상태로 복원하는 데 사용할 수 있는 DB 인스턴스의 완전한 백업입니다. 로드 직후에 생성된 DB 스냅샷은 사고 발생 시 데이터를 다시 로드하지 않아도 됩니다. 또한 이러한 스냅샷을 사용하여 새 DB 인스턴스를 시드할 수 있습니다. DB 스냅샷 생성에 대한 정보는 Amazon RDS의 단일 AZ DB 인스턴스에 대한 DB 스냅샷 생성 단원을 참조하세요.