서버구축_2

김수현·2025년 5월 7일

Suhyeon's 개발일지

목록 보기
18/34

현재 운영중인 DB 데이터를 덤프파일로 받아와 테스트를 하기로 결정했다.

pg_dump를 하기 위해 DB 서버의 hostname과 user, database 의 정보가 필요하다.
powershell에서 아래 명령어를 통해 백업 파일을 생성한다.

pg_dump -h 호스트정보 -U 유저네임 -d 디비네임 -F c -f ",,.backup"

-f 뒤에 경로를 지정해주면 거기에 저장이 된다.

덤프 파일 저장 후 테스트 서버에 전송해준다.

 scp "지정경로.backup" username@ip주소:/home/---- #지정경로

이렇게 명령어를 치면 해당 ip에 home/----아래에 생성이 되는 걸 확인할 수 있다.

여기까지는 괜찮았는데,, 권한 문제 user name이 다른 문제가 발생해서 restore이 제대로 진행되지 않았다.

권한 문제를 해결하기 위해 public 스키마의 CREATE 권한을 부여해주었다.

GRANT ALL ON SCHEMA public TO suhyeon_u;
GRANT USAGE ON SCHEMA public TO suhyeon_u;
GRANT CREATE ON SCHEMA public TO suhyeon_u;

추가로, db에 대한 권한도 추가해주었다.

GRANT CONNECT ON DATABASE ****_db TO ****_u;
GRANT TEMP ON DATABASE ****_db TO  ****_u;
GRANT CREATE ON DATABASE ****_db TO  ****_u;

user name의 문제는
예를들어, 운영 서버 db의 유저 이름은 suhyeon이라면 테스트 db의 유저 이름은 suhyeon_u였다.
이것을 무시하는 명령어를 통해 restore 해주었다.

pg_restore -U ****_u -d *****_t_db -F c --no-owner /home/****/*****.backup

이렇게 했더니 정상적으로 restore을 끝낼 수 있었다.

추가로, dump 파일을 생성한 psql과 restore할 psql의 버전이 맞아야 진행할 수 있다.

0개의 댓글