개발용 서버로 사용 중이던 AWS 서버에서 업체 쪽 서버로 옮길 때가되었다. 

 

기존에 사용중이던 RDS 도 옮겨야되는 상황이 되었는데 RDS도, postgresql 도, DB 를 옮기는 것도 전부 처음이라 삽질을 마구하는 중이다..

 

나중에 필요할지 모르니 이것도 기록해둔다. 

 

 

 

필요 준비물 : 사용 중인 AWS RDS 인스턴스, 마이그레이션할 DB 서버, pgadmin4

 

1. pgadmin4 를 설치하고 AWS RDS 서버에 연결 : 

 

Server 아이콘을 보조클릭해주고 Register -> Server 선택

 

Server 아이콘을 보조클릭해주고 Register -> Server 선택

 

이름은 원하는대로 입력해준다

이름은 원하는대로 입력해준다

 

호스트 혹은 주소, 포트번호, posgresql 사용자, password 를 입력해준다

 

호스트 혹은 주소, 포트번호, posgresql 사용자, password 를 입력해준다. 그리고 save 를 클릭하면 rds 서버에 연결된다.

 

 

 

2. 데이터베이스 백업 옵션

 

사용 중인 데이터베이스를 보조클릭하고 Backup 을 선택

 

사용 중인 데이터베이스를 보조클릭하고 Backup 을 선택

 

 

filename 옆 폴더 아이콘으로 원하는 경로와 파일이름을 설정

 

filename 옆 폴더 아이콘으로 원하는 경로와 파일이름을 설정한다. Format 은 Custom, Encoding 은 UTF-8 로 설정해준다.

 

 

 

위 처럼 백업 옵션을 설정해준 뒤 Backup 버튼을 눌러 .sql 파일이 생성됐는지 확인한다.

 

 

 

3. 새로운 서버에 postgreSQL 설치 및 원격 접속 허용 설정

 

 

https://www.postgresql.org/download/linux/ubuntu/

 

PostgreSQL: Linux downloads (Ubuntu)

Linux downloads (Ubuntu) PostgreSQL is available in all Ubuntu versions by default. However, Ubuntu "snapshots" a specific version of PostgreSQL that is then supported throughout the lifetime of that Ubuntu version. Other versions of PostgreSQL are availab

www.postgresql.org

 

⬆️ 우분투 서버에 15 버전을 설치할 예정이기 때문에 위 가이드를 따라 설치했다. 14까지는 apt 저장소에서 설치 가능한듯 함.

 

 

sudo -u postgres psql

 

정상적으로 설치가 완료되고 서비스가 실행 중이라면 위 명령어로 DB 에 접속이 가능할 것이다. 

나는 설치할 때 super user 의 암호를 설정하라는 말이 없어서 직접 변경해줬다.

 

\password postgres

 

DB 에 접속한 상태에서 위 명령어를 입력하면 변경할 password 를 입력하라고 표시되는데, 

password 확인하는 것까지 총 두 번 입력하면 변경 완료됨.

하지만 이 상태로 종료 후 다시 접속하려하면 password 도 묻지않고 에러가 발생할 것이다. 설정을 변경해줘야 한다.

pg_hba.conf 라는 파일을 수정해줘야하는데 내 경우에 경로는 다음과 같았다. 

 

sudo vim /etc/postgresql/15/main/pg_hba.conf

 

위 경로로 접근하게되면 맨 밑에 아래와 같은 부분이 보인다.

 

 

 

 

수정해야할 부분은 "md5" 라고 표시된 부분이다. 

원래는 peer 라고 표시되어 있을텐데 md5 로 수정된 부분을 똑같이 변경해주면 된다.

 

맨 아래에 수정된 부분은 모든 곳에서 원격 접속을 허용하도록 설정한 것이다.

이렇게 총 두 부분을 추가/변경 해주면된다. 

설정 이후 DB에 접속할 때마다 password 를 물어볼 것이다.

 

 

 

sudo vim /etc/postgresql/15/main/postgresql.conf

 

위 설정 외에 원격 접속을 위한 설정이 하나 더 있는데 위에서 설정한 곳과 같은 경로에서 "postgresql.conf" 를 찾는다.

 

위 명령어로 파일을 열면 아래와 같은 부분이 보일것이다.

 

원격 접속 설정

 

이 곳에서 주석처리된 부분 밑의 listen_addresses = '*' 부분을 똑같이 작성해주고 저장한다.

 

위 설정을 모두 마치고 원격서버가 아닌 자신의 로컬환경으로 되돌아와서 pgadmin4 를 실행시킨다.

 

 

 

 

 

4. 백업파일 복원 및 옵션

 

AWS RDS 와 연결한 방식  그대로 원격 DB 서버에 pgadmin4 으로 접속한다.

 

사용자 이름과 비밀번호는 위에서 설정한 "postgres / 비밀번호 " 를 입력한다.

 

 

 

 

접속이 완료되었다면 데이터베이스를 보조클릭하고 Resotre 클릭

 

 

 

 

Filename 부분에 위에서 백업했던 파일의 경로를 찾아서 입력해준다. 

 

 

복원 옵션

복원 옵션을 위 이미지처럼 설정해준 뒤 Restore 클릭한다.

 

 

위 과정을 모두 마치면 사용하던 RDS 데이터베이스를 옮길 수 있다.

 

 

 

+ pgamdin4 에서 테이블 값 확인

 

 

 

사용해본 DBMS 가 졸업작품 만들 때 사용한 mariaDB 밖에 없어서 postgresql 은 생소했다 ... 

쿼리문을 입력해도 자꾸 에러가 발생해서 GUI 기능을 사용하기로 함.. 나중에 따로 공부해야할 듯

 

위 이미지에 나온대로 테이블을 보조클릭하고 "View/Edit Data -> All Rows" 를 클릭하면 저장된 데이터들이 보인다.

새로운 서버에서 이전에 사용하던 데이터들이 잘 보임. 다행이다.

 

 

+ 터미널의 pg_restore 에서 .sql 파일 복원하기 

 

위에서 백업한 .sql 파일을 pgAdmin 으로 복원할 수 없다면 pg_restore 을 사용해야한다.

아래 명령어로 복원이 가능하다

pg_store -U ${사용자이름} -d ${Database 이름} ${백업파일}
 

 

 

 

+ Recent posts