2013-06-03 3 views
0

저는 PostgreSQL을 처음 사용하고 있으며 데이터베이스를 백업하려고합니다. 3 가지 방법이 있다고 이해합니다. pg_dump, 스냅 샷 및 복사, WAL 사용. 어느 데이터베이스의 전체 백업을 권장합니까? 가능한 경우 코드 스 니펫을 제공하십시오.PostgreSQL 백업

+1

여기서 C/C++ 프로그램이 필요한 이유가 많이 있습니다. 기존의 유지 관리 응용 프로그램에 백업 자동화를 구축하려고합니까? 또는 기존 도구 위에 몇 가지 추가 기능을 구현할 수 있습니까? 설령 그대로 대답 할 수있는 유일한 방법은 기존 도구에 대한 광범위한 토론입니다.이 도구는 여기에 권장되는 질문이 아닙니다. – IMSoP

답변

6

운영 요구 사항에 따라 다른 것보다 더 많이 다릅니다.

세 가지 모두 외부 프로그램으로 포격해야합니다. libpq은 해당 시설을 직접 제공하지 않습니다. pg_basebackup 또는 pg_dumpexecv 또는 이와 유사하게 호출해야합니다.

세 가지 모두 다른 장점이 있습니다.

원자 스냅 샷 기반 백업은 파일 시스템에서 지원하는 경우 유용하지만 대부분의 시스템에서 지원하지 않는 다중 볼륨 원자 스냅 샷이 필요하기 때문에 테이블 공간을 사용하는 경우 쓸모 없게됩니다. 그들은 또한 고통을 설정할 수 있습니다.

pg_dump은 간단하고 컴팩트 한 백업을 생성하지만 실행에 더 많은 서버 리소스가 필요하며 특정 시점 복구 또는 증분 백업을 지원하지 않습니다.

pg_basebackup + WAL 보관 및 PITR은 매우 유용하며 서버의 자원 비용은 상당히 낮지 만 설정 및 관리가 더 복잡합니다. 적절한 백업 테스트가 반드시 필요합니다.

사용자가 사용 된 백업 방법을 제어 할 수있게하는 것이 좋습니다. pg_dump으로 시작하면 간단한 명령 줄로 호출하고 단일 파일을 관리 할 수 ​​있기 때문입니다. -Fc 모드와 pg_restore을 사용하여 필요할 경우 복원하십시오. 그런 다음 기본 사항을 확인한 후 WAL 보관 및 PITR 용 서버 구성과 같은 작업을 수행하십시오.

관련 문제