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

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

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

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

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



인코딩...

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

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


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



복원

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

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

그렇다.