Postgres 데이터베이스를 백업해야 하는 이유 및 백업 방법


너는 지난번에 네가 문장이나 논문을 쓰려고 노력했지만 워드나 컴퓨터가 갑자기 붕괴되었을 때 모든 것을 잃었다는 것을 기억하니?근무시간이 지났습니다. 왜냐하면 "저장"단추를 자주 누르지 않았기 때문입니다.이런 좌절감은 심지어 가장 용감한 영혼을 울리기도 한다.
간혹 이런 데이터의 분실을 감당할 수 있을지도 모르지만, 지금은 문서가 아닌 테라바이트 정보를 포함하는 전체 데이터베이스라고 상상해 보세요.특히 이러한 정보가 운영 환경에서 손실될 경우 수백만 달러의 비용이 소요될 수 있습니다.성숙한 조직이라도 이런 오류를 감당할 수 없으며 데이터베이스 백업은 이런 상황을 막을 수 있다.

데이터베이스 백업이 필요한 이유


데이터베이스 백업을 통해 미디어, 소프트웨어 또는 하드웨어 장애 시 사용자가 최소한의 손실을 볼 수 있습니다.이런 고장들은 아마도 무고한 잘못이나 악의적인 범죄자들이 일으킨 것일 것이다.가치 있는 정보의 분실은 명예에 만회할 수 없는 손해를 초래할 뿐만 아니라 법적 대응의 이유가 될 수도 있다.
예를 들어 8만 명이 넘는 죄수UK Prison System lost the release dates와 개인정보가 2008년 유리한 계약을 잃었다.DreamHost라는 네트워크 위탁 관리 회사의 공유기에 구멍이 생겨 복구할 수 없는 기록 몇 개를 삭제했다.그들은 다시 한 번 신뢰를 얻기 위해 고객에게 공개적으로 사과하고 열심히 일해야만 했다.​
일단 어떤 사고가 발생하면 백업한 데이터를 복구할 수 있고 데이터베이스는 가능한 한 빨리 다시 시작하여 운행할 수 있다.장기적으로 보면 세수, 감사, 이해관계자, 투자자의 연간 보고서 등 오래된 데이터를 되돌아보고 싶을 때 데이터베이스에 대한 백업도 도움이 될 것이다.데이터 백업을 사용하여 마케팅 및 판매를 늘리는 방법으로 고객 관계를 개선할 수도 있습니다.

그러나 백업 데이터베이스는 하드디스크에 삽입되어 모든 데이터를 전송하는 것처럼 쉽지 않다.

데이터베이스 백업 컨텐츠, 위치 및 방법


데이터 파일 외에 데이터베이스에는 또 몇 개의 구성 요소가 있다.우선 제어 파일, 파라미터 파일, 로그 파일을 백업해야 합니다.오직 이렇게 해야만 데이터베이스가 복구된 데이터의 구조를 복제하고 파라미터를 초기화하며 데이터베이스에서 한 최신 변경 사항을 반영할 수 있다.복구 중에 입력해야 할 암호를 저장하는 것도 중요합니다.
데이터베이스 백업에는 백업 작업 상태, 저장된 데이터 및 데이터베이스 소프트웨어의 아키텍처가 포함됩니다.그리고 예견할 수 없는 상황에서 낡은 데이터베이스의 복사본을 만들거나 실례를 복제할 수 있다.
이동성이 필요한 경우 백업된 데이터는 USB 드라이브나 외부 하드 드라이브에 저장할 수 있습니다.온라인 백업 서비스를 사용하면 어디서든 접근할 수 있지만, 데이터가 암호화되고 암호화되었는지 확인해야 한다.만약 랜이 있다면, 파일을 다른 서버나 장치에 백업할 수도 있다.

DBA의 책임


DBA는 백업할 구성 요소와 백업 유형을 포함한 계획을 세워야 합니다.예를 들어 cold backups는 데이터베이스가 닫힌 후에 발생하고 hot backups는 데이터베이스가 실행될 때 발생한다.보통 이런 결정은 당신이 준비한 실패 유형에 달려 있다.예를 들어 시스템을 완전히 복구하지 않으면 하드웨어 고장을 극복할 수 없기 때문에 서버 운영체제를 백업해야 한다.
또 다른 백업을 분류하는 방법은 완전 백업이나 증량 백업이다.모든 기존 파일의 사본을 저장하기 때문에 전체 백업은 매우 간단하다.그러나 대형 데이터베이스는 여러 채널을 사용하여 백업을 하고 증량 백업 기술을 사용하여 백업 과정에 필요한 시간을 줄인다.변동분 백업은 마지막 백업 후 업데이트된 파일만 백업합니다.복잡한 포지셔닝에도 불구하고 스토리지 공간을 절약할 수 있습니다.우리는 전체 백업을 신속하게 검색할 수 있지만, 그것들은 대량의 디스크 공간을 차지한다.

이러한 백업 계획은 데이터베이스가 대량으로 사용되지 않을 때 진행되어 성능이 영향을 받지 않도록 한다.심지어 일부 도구는 백업을 자동으로 스케줄링하고 백업이 실패할 때 경보를 보내서 다시 실행할 수 있도록 합니다.

기억해야 할 일


백업 데이터베이스 계획을 세우기 전에 백업 과정에서 얼마의 비용을 들일 수 있는지, 백업한 데이터를 어디에 저장하고 싶은지, 어떤 방법을 사용할 것인지를 고려해야 합니다.또한 데이터가 장기적으로 증가할지, 백업 계획을 확장할 필요가 있는지도 고려해야 합니다.

기업에서는 모든 이해관계자가 같은 페이지에서 재난 복구 계획을 토론하도록 해야 합니다.이 프로그램은 IT 팀이 데이터베이스를 복구하는 순서입니다.모든 사람이 더 중요한 프로그램을 가능한 한 빨리 사용할 수 있도록 확보해야 할 책임이 있기 때문이다.

이제 PostgreSQL 데이터베이스를 백업하는 방법을 살펴보겠습니다.

PostgreSQL 데이터베이스 백업


PostgreSQL에는 pg_dump라는 유틸리티가 백업을 수행할 수 있습니다.데이터베이스를 일반 텍스트 SQL 파일로 백업하려면 데이터베이스 서버에 로그인하기만 하면 됩니다.그런 다음 Postgres 계정으로 전환하고 명령을 실행합니다.pg_dump database_name > filename.sql
일반 텍스트 SQL 파일에는 백업 시 전체 데이터베이스를 해당 상태로 재구축하는 데 필요한 명령이 있습니다.

다른 파일 형식에 대해서는 -F 형식 설명자를 사용할 수 있습니다.백업을 사용자 지정 아카이브로 저장하려면 데이터베이스 이름 앞에 추가-F c하십시오.디렉터리나 tar 형식의 압축 파일은 각각 자모표dt를 사용하십시오.pg_restore 모든 형식으로 백업된 데이터베이스를 복원할 수 있습니다.그래서 어떤 격식을 사용할지 결정할 때 문제가 되어서는 안 된다.

pg_dump -F c database_name > filename.dump 
pg_dump -F t database_name > filename.tar 
때때로 백업을 파일이 아닌 새 디렉터리에 저장하기를 원할 수도 있습니다.이 경우 > filename-f directory로 교체할 수 있다.이것은 이 이름을 가진 새 디렉터리를 만들 것입니다. 이것은 이미 존재하는 이름을 줄 수 없다는 것을 의미합니다.pg_dump -F d database_name -f directory pg_dump 데이터베이스는 하나만 덤프할 수 있습니다.그런데 데이터베이스마다 이런 명령을 실행하는 것은 좀 지루하지 않습니까?한순간에 그것들을 모두 백업하려면 pg_dumpall 도구를 사용하십시오.pg_dumpall > alldbdump.sql
단일 데이터베이스에 속하지 않지만 일반적으로 전체 시스템에서 사용하는 역할과 테이블 공간과 같은 전역 대상을 백업할 수도 있습니다.​

PostgreSQL에서 데이터베이스 복원


만약 텍스트 파일에서 백업을 했다면plsql 실용 프로그램은 이 파일들을 복원할 수 있습니다.pg_dumpall
pg restore는 사용자 정의, 디렉토리 또는 tar 형식으로 백업된 파일을 복원할 수 있습니다.

pg_restore -d database_name filename.dump 
pg_restore -d database_name filename.tar
pg_restore -d database_name dumpdirectory
pg restore에는 일부 작업을 지정할 수 있는 여러 명령줄 매개변수가 있습니다.예를 들어 -a는 정의가 아닌 단독으로 데이터를 복구한다.마찬가지로 -c는 데이터베이스 대상을 다시 만들기 전에 삭제하고 -t를 사용하여 특정한 테이블을 복구할 수 있습니다.

모든 명령줄 파라미터를 볼 수 있습니다.

대규모 데이터베이스 백업


만약 당신이 거대한 데이터베이스를 백업하려고 한다면, 모든 데이터베이스를 직접 저장할 공간을 부담할 수 없을 것이다.이 경우 덤프 파일을 압축하여 저장할 수 있다.gzip은 이 점을 촉진하는 도구이다.plsql database_name < filename.sql
해량의 데이터베이스에 대해 압축 저장은 아마도 시간을 소모하는 과정일 것이다.PostgreSQL은 여러 파일을 동시에 덤프할 수 있으므로 이러한 우려를 없앴습니다.당신은 -j 로고를 사용하여 같은 조작을 실행할 수 있습니다.
Pg_dump database_name | gzip > dumpname.gz
비록 이 과정은 당신의 시간을 절약할 수 있지만, 데이터베이스 서버에 더욱 높은 부하를 가져올 수 있습니다.

원격 데이터베이스 백업


PostgreSQL의 pg 덤프 도구는 명령줄 옵션의 도움을 통해 원격 데이터베이스 서버의 백업을 쉽게 합니다.데이터베이스 탐지기가 있는 원격 호스트와 원격 포트를 각각 지정하기만 하면 된다.pg_dump -F d -j 5 -f dumpdirectory
- U 플래그는 데이터베이스에 연결할 역할을 나타냅니다.이것은 데이터베이스 내용에 접근할 수 있는 적당한 권한을 확보하는 데 매우 중요하다.만약 접근이 여전히 어렵다면 데이터베이스 서버에 데이터베이스 인증 방법이 설정되어 있는지 확인해야 할 수도 있습니다.
또한 다음과 같은 방법으로 데이터베이스를 한 서버에서 다른 서버로 전송할 수 있습니다.pg_dump -U role -h 20.20.20.20 -p 7777 database_name

자동 백업


PostgreSQL의cron 작업을 통해 데이터베이스 백업을 신속하게 할 수 있습니다.이러한 작업을 구성하려면 수퍼유저를 통해 로그인하여 다음 명령을 실행합니다.

우선 백업을 위한 디렉터리를 만들고,crontab을 편집해서 새 작업을 추가합니다.

mkdir -p /srv/backups/databases 
crontab -e
crontab의 끝에서 다음 컨텐트를 복사하여 붙여넣습니다.pg_dump -U role -h 10.10.10.10 database | plsql -U role -h 20.20.20.20 database_name
그러나 덤프 형식은 사용자의 선택입니다.완료되면cron 서비스가 실행되고 데이터가 매일 자정에 백업될 수 있도록 합니다.

결론


데이터베이스 백업은 데이터를 항상 안전하게 유지하고 손쉽게 사용할 수 있도록 하는 데 매우 중요합니다.백업 유형과 방법을 선택하는 것은 여러 가지 요소에 달려 있다.전체 기업의 데이터를 백업하든지 서버에 있는 한 기업의 데이터만 백업하든지 여러 가지 옵션을 사용할 수 있습니다.

PostgreSQL 데이터베이스를 백업하는 방법에 대해 알고 계시다면 데이터베이스에서 시도해 보세요!

좋은 웹페이지 즐겨찾기