[PostgreSQL] 덤프: 데이터베이스 백업

[원본 링크]

실제로 서버 등을 구성하다보면 만일을 위해 데이터베이스를 백업하거나, 혹은 테스트용으로 백업해서 따로 사용해야할 일이 잦을 것이다.
실제 서비스 중인 데이터베이스에 테스트를 하면 문제가 생길지도 모를 일이니...

데이터베이스 파일을 추출하려면, pg_dump 프로그램을 사용하면 된다.
접근할 때와 마찬가지로 사용자명을 붙이고, 데이터베이스명 > 출력파일명의 형태로 쓰면 된다.
인코딩도 -E 플래그로 써주는게 좋다.

그럼 뭐... 파일이 잘 생성될 것이다.

이러한 덤프 파일들은, 데이터베이스나 테이블 등의 재구성에 필요한 쿼리를 담고 있다.



인코딩...

근데 윈도우즈에서는 이게 약간 문제가 있는 것 같다.
만들어진 백업을 다시 집어넣거나 할 때는 UTf-8로 읽어들이는데, 정작 저렇게 뽑은 백업 파일은 UTF-16로 생성되는듯하다. 심지어 인코딩 플래그(-E) 값을 utf8로 줘도 그렇다.

확인 후 UTF8로 재인코딩하는 작업이 필요할 수 있겠다.


여튼, 덤프를 잘 뽑았다면,
데이터베이스에 이상이 생겼거나, 삭제됐더라도, 혹은 다른 환경에서도 그대로 저걸 집어넣어 사용할 수 있다.



복원

덤프를 갖다가 복원을 하려면, psql에다 -f 플래그로 백업 파일을 지정해주고, 그 다음에 목적지가 될 데이터베이스의 이름을 지정해주면 된다.

그럼 덤프의 내용이 고스란히 잘 들어가있을 것이다.

그렇다.