Restore를 하기 위하여 열심히 Backup을 하는데 정작 Restore는 그리 자주 할 일이 없어 자꾸 까먹는다. 자주 하면 텍스트 명령어로 하면 좋겠지만 자주 안하는데 굳이 텍스트 명령어로 할 일이 없을 것 같아 pgAdmin 4를 이용한 Backup과 Restore를 정리하고 필요할 때 보자. 

중간에도 설명하지만 Backup은 텍스트 명령어로 매일 해야 한다.

pgadmin 실행

 

 

 

 

소유자가 myuser2 인 데이터베이스 mydb2

 

 

 

 

mydb2를 마우스 오른쪽 버튼 클릭 -> Backup 선택

 

 

 

 

백업 파일을 저장할 폴더를 지정하고, 파일 이름을 입력하기 위하여 ... 클릭

 

 

 

 

temp 폴더에 mydb2_backup 이란 이름으로 저장. 백업 포맷을 backup로 지정. create 클릭

 

 

 

 

format 은 custom, encoding은 utf-8 선택

 

Dump options 선택

 

 

 

 

위와 같이 설정하고 Backup을 클릭한다.

 

 

 

 

성공했다는 메시지가 나온다. More details ... 클릭하여 자세한 사항을 살펴 본다.

 

 

 

 

실제로 실행된 명령어와 백업 과정을 살펴볼 수 있다.

 

실제로 실행된 명령어는 다음과 같다.

 

C:\Program Files\PostgreSQL\12\bin\pg_dump.exe —file "C:\\Temp\\mydb2_backup.backup" --host "localhost" --port "5432" --username "postgres" --no-password —verbose --format=c --section=pre-data --section=data --section=post-data --column-inserts "mydb2"

 

백업은 자주 해야 하므로 위 명령을 배치 파일로 만들고 배치 파일을 작업 스케줄러로 주기적으로 실행시킬 수 있을 것이다.

 

PS. 2021.4.17.) 최근에 컴퓨터를 교체하면서 위의 백업 명령어를 cmd에서 실행하였더니, "no password supplied" 때문에 접속을 못한다는 에러가 떴다. 분명히 pgAdmin4에서는 잘 실행되는 명령어가 cmd에서 안 되다니. 그건 pgAdmin4에서는 접속할 때 password를 입력하고 그걸 이용해서 pg_dump를 실행하는데 cmd에서는 password가 없어서 실행을 못한다는 뜻이다. 찾아보니 pgpass 파일이 필요하다. linux 에서는 .pgpass 파일이고 윈도우에서는 pgpass.conf 파일이다. pgpass.conf 파일이 있어야할 위치는 %appdata%postgresql 폴더이다. 윈도우즈 탐색기에서 %appdata% 라고 치면 적당한 폴더로 이동한다. postgresql 폴더가 없으면 postgresql 폴더를 만들고 pgpass.conf 파일을 만든다. 예를 들어 사용자가 abcd 이면 다음 폴더에 pgpass.conf 파일을 만든다.C:\Users\abcd\AppData\Roaming\postgresql\pgpass.conf

pgpass.conf 파일의 내용은 다음과 같다.

localhost : 5432 : mydb : myuser : mypassword

구체적으로 써 보면 다음과 같다.

localhost:5432:*:postgres:12345678로컬호스트에 포트 번호 5432에 모든 데이터베이스에 사용자 postgres로 비밀번호 12345678로 접속하란 뜻이다. 이렇게 하고 postgresql 서버를 재시작하고 하니 pg_dump가 잘 동작한다. postgresql을 반드시 재시작해야 하는 지는 잘 모르겠다. 

(2021.4.17.)

 

이제 새로운 컴퓨터에 리스토어 한다고 가정하자.

 

새로 유저와 빈 데이터베이스를 만들자.

 

 

 

 

새로운 Role과 Database가 만들어진 상태는 다음과 같다.

 

 

 

 

myuser2와 mydb2를 볼 수 있다. mydb2를 마우스 오른쪽 버튼으로 클릭하고 Restore ...를 클릭한다.

 

 

 

 

복원할 백업 파일을 선택하기 위하여 “...” 버튼을 클릭한다.

 

 

 

 

백업 파일을 선택하고, Format으로 backup을 선택하고 Select를 클릭한 후, Restore options를 클릭한다.

 

 

 

 

위와 같이 선택하고 Restore를 클릭한다.

 

 

 

 

성공적으로 완료되었음을 알 수 있다. More details ...를 클릭하여 자세히 알아 본다.

 

 

 

 

실제로 실행된 명령어를 확인할 수 있다.

 

다음은 리스토어된 데이터베이스와 테이블이다.

 

 

 

 

 

 

+ Recent posts