DB/PostgreSQL

[Postgresql] DB Server 'windows to linux(ubuntu)' migration - pgsql backup/restore

Binceline 2016. 9. 24. 11:08



Windows에서 pgadmin으로 Postgresql을 쓰다가, 리눅스로 갈아타려고 멀티부팅으로 설치했는데, 윈도우에 있는 걸 그대로 복원할 수 있더라.


방법은 pg_dumpall 이나 pg_dump 기능을 이용하는 것이다.


pg_dump는 데이터베이스 하나하나 백업이 가능하고, pg_dumpall은 서버 전체를 백업한다.



Windows에서 백업


cmd로 작업한다.

옵션은 간단하게

-h : hostname

-p : port

-U : username

-f : file

이렇다. 자세한 옵션은 문서를 참조 : https://www.postgresql.org/docs/current/static/app-pgdump.html


pg_dump


pg_dumpall

암호라고 뜨는 건 

Database 수만큼 권한 때문에 비밀번호를 입력해야 한다.

Superuser 권한으로 접속했으니 계속 비밀번호를 입력해 주면 된다.



Linux(Ubuntu)에서 복원

백업 파일을 옮긴 후 sudo 권한이 있는 유저로 들어가서 다음과 같이 입력한다.

결과

이런식으로 로그가 뜨면서 백업이 진행된다.


(pg_restore 명령어로 하는 방법이 있긴한데 안 써봤당.

문서 https://www.postgresql.org/docs/9.5/static/app-pgdump.html

보고 해보면 비슷할 것 같다. 옵션이 다른게 있나..? )


여튼 하다 보면 'root'라는 이름의 유저가 없어서 복원이 안된다.. 뭐시기 하는 오류가 나는데

'root' 유저를 만들고 Superuser 권한을 준 뒤 다시 복원 시도하면 잘 된다.


확인은 psql을 실행해서 \du나 \d \l 이런 명령어를 입력해 보면 간단하게 할 수 있다.

반응형