postgresql 은 xlog 를 이용 하여 열 준비 작업 을 합 니 다.

1.postgresql 증분 합병 방안 검증
결과:효과 적 이 고 실행 가능 한 증분 합병 방안 이 없어 잠시 포기 합 니 다.
2.postgresql 기반 wal 증분 백업 정리
물리 백업 과 복원 은 작은 버 전의 복구 에 적용 되 지만 플랫폼 을 뛰 어 넘 을 수 없습니다.
논리 백업 과 복원 백업 데 이 터 는 크로스 버 전과 크로스 플랫폼 의 복구 에 적용 된다.
postgersql 증분 백업 절차
1.우선 압축 파일 디 렉 터 리 만 들 기
예 를 들 어 압축 파일 디 렉 터 리 는/archivepg_xlog/xlog

1>mkdir -p /archive_pg_xlog/xlog
2>chown -R postgres:postgres /archive_pg_xlog/xlog
3>chmod 700 /archive_pg_xlog/xlog
2.postgresql.conf 설정 파일 수정

1>wal_level=archive(  wal   )
2>archive_mode=on(    )
3>archive_command='DATE=`date +%Y%m%d`;DIR="/archive_pg_xlog/xlog/$DATE";(test -d $DIR || mkdir -p $DIR) && cp %p $DIR/%f'(      )
3.데이터베이스 서비스 다시 시작

systemctl restart postgresql(     )
4.전량 백업 하기

 1>psql -c 'select pg_start_backup(now()::text);',#           
 2>tar -cf base.tar /var/lib/pgsql/data/*
 3>psql -c 'select pg_stop_backup();'#tar        
5.표 공간 이 존재 하면 백업 표 공간 이 필요 하고 없 으 면 필요 하지 않 습 니 다.
6.이상 작업 이 완료 되면 증분 백업 이 자동 으로 시 작 됩 니 다.
xlog 가 가득 쓰 이면 자동 으로 우리 가 지정 한 디 렉 터 리 로 압축 됩 니 다.
xlog 를 이용 하여 복원
재난 을 모 의 하여 data 디 렉 터 리 를 직접 삭제 합 니 다.(또는 data 디 렉 터 리 에 있 는 모든 파일 을 잃 어 버 렸 습 니 다)
데이터베이스 가 정지 되 었 는 지 확인 하 십시오.아직 멈 추 지 않 았 다 면 멈 춰 야 합 니 다.

mkdir data;chown postgres:postgres data;chmod 700 data
백업 한 base.tar 패키지 를 data 디 렉 터 리 에 복사 하여 압축 을 풀다

cp /usr/share/psql/recovery.conf.sample ./data
vim recovery.conf.sample  restore_command=''
chown postgres:postgres recovery.conf.sample;chmod 700 recovery.conf.sample;mv recovery.conf.sample recovery.conf
데이터 베 이 스 를 시작 합 니 다.recovery.conf 가 recovery.done 이 되 었 을 때 복구 완료 임 을 표시 합 니 다.
주:xlog 파일 이름 은 타임 라인 TimeLineID(8 비트 16 진수),논리 로그 파일 번호(8 비트 16 진수)와 세그먼트 파일 ID(8 비트 16 진수)로 구성 되 어 있 습 니 다.
테스트 1.
첫 번 째 전량 시 db 는 백만 개의 데 이 터 를 가지 고 있 으 며,다시 백만 개의 데 이 터 를 삽입 하여 재난 을 모 의 하여 정상 적 인 회복 을 하 였 다.
두 번 째 전량 은 첫 번 째 재난 을 모 의 한 장면,즉 두 번 째 전량 백업 시 200 만 개의 데이터 가 있 고 다시 10 만 개의 데 이 터 를 삽입 하여 재난 을 모 의 하고 정상 적 인 회복 이다.
테스트 2.
재난 을 다시 모 의 하여 2 차 전체 백업 에 10 만 개의 데 이 터 를 추가 한 후 데이터 디 렉 터 리 를 직접 삭제 합 니 다.
첫 번 째 전체 백업 데이터 와 결합 하여 발생 하 는 증 가 량 으로 회복 한 결과 200 만 개의 데이터 만 있 을 뿐 이 증 가 량 은 합병 할 수 없다 는 것 을 설명 한다.
테스트 3.
xlog 파일 을 잃 어 버 렸 을 때 시 뮬 레이 션 하기
결과:잃 어 버 린 xlog 파일 은 잃 어 버 린 xlog 파일 이 의존 하 는 전체 백업 에 만 영향 을 주지 만 xlog 파일 이 뒤의 전체 백업 을 잃 어 버 리 는 데 는 영향 을 주지 않 습 니 다.
이런 상황 을 잃 어 버 린 것 에 대해 서 는 아직 회복 할 방법 을 찾 지 못 했다.
가장 가 까 운 곳 으로 복원 하려 면 오 작 동 등 으로 인 한 복구 가 아 닌 지 복원 점 을 설정 할 필요 가 없습니다.

recovery_target_name=''(         )
recovery_target_time=''(             )
recovery_target_xid='' (       id  )
복원 점 만 들 기,즉 복원 점 의 이름 select pgcreate_restore_point('pitr_test');
시간 기반 복원 점 만 들 기,selectnow();
xid 기반 복원 점 만 들 기,select txidcurrent();
추가:PostgreSQL 의 log,xlog,clogpg_log$PGDATA/pg_log 는 데이터베이스 실행 활동 로그 의 기본 저장 디 렉 터 리 입 니 다.오류 정보,조회 로그,데이터 베 이 스 를 시작/닫 는 정 보 를 포함 합 니 다.PostgreSQL 을 시작 하 는 데 실 패 했 을 때,여 기 는 첫 번 째 로 봐 야 할 정보 입 니 다.일부 Linux 발행 판 및 기타 패키지 관리 시스템 은 이 로그 디 렉 터 리 를 다른 곳 으로 옮 깁 니 다.예 를 들 어/var/log/postgresql.
pg로그 디 렉 터 리 에 서 는 파일 을 자 유 롭 게 삭제,이름 바 꾸 기,압축 또는 이동 할 수 있 으 며,나 쁜 결 과 는 없 을 것 입 니 다.Postgres 사용자 가 이 디 렉 터 리 를 쓸 수 있 는 권한 이 있다 면.하면,만약,만약...log 는 많은 큰 파일 에 따라 팽창 합 니 다.로 그 를 기록 하고 싶 은 이 벤트 를 postgresql.conf 에서 줄 여야 할 수도 있 습 니 다.pg_xlog$PGDATA/pg_xlog 는 PostgreSQL 의 트 랜 잭 션 로그 입 니 다.이것 은 바 이 너 리 로그 파일 의 집합 입 니 다.파일 이름 은 000000000000000008 E 와 유사 합 니 다.이것 은 최근 업무 에 대한 설명 데 이 터 를 포함 합 니 다.이 로그 들 도 바 이 너 리 복사 에 사용 된다.복사,압축 파일 또는 PITR 이 실패 하면 압축 파일 이 복구 되 고 있 을 때 이 디 렉 터 리 에 저 장 된 데이터베이스 로그 가 GB 팽창 할 수 있 습 니 다.이것 은 당신 이 디스크 공간 을 다 쓰 게 할 수도 있 습 니 다.pg 같 지 않 음log,이 디 렉 터 리 의 파일 을 자 유 롭 게 삭제 하거나 이동 하거나 압축 할 수 없습니다.이 디 렉 터 리 에 기호 가 연결 되 지 않 은 상태 에서 이 디 렉 터 리 를 이동 할 수도 없다.pg 삭제xlog 의 파일 은 복구 할 수 없 는 데이터 베 이 스 를 손상 시 킬 수 있 습 니 다.
만약 당신 이 이런 상황 에 처 해 있다 는 것 을 발견 한다 면:100 G 크기 의 파일 이 pg 에 있 는 것 을 발견 할 수 있 습 니 다.xlog 디 렉 터 리 와 데이터 도 시작 할 수 없 으 며 압축 파일/복사 가 금지 되 어 있 으 며 디스크 공간 을 청소 하 는 등 다른 방법 을 시도 하고 있 습 니 다.다음 두 단 계 를 하 십시오.
1、pg 에서xlog 디 렉 터 리 에서 백업 디스크 나 공유 네트워크 드라이브 로 파일 을 이동 해도 삭제 하지 마 십시오.
2.PostgreSQL 이 시 작 될 수 있 을 때 까지 가장 오래된 파일 을 이동 합 니 다.pg_clog$PGDATA/pg_clog 는 트 랜 잭 션 의 메타 데 이 터 를 포함 합 니 다.이 로 그 는 PostgreSQL 에서 어떤 일이 완성 되 었 는 지,어느 것 이 아직 완성 되 지 않 았 는 지 알려 주 는 데 사 용 됩 니 다.clog 는 비교적 작고 팽창 할 이유 가 없 기 때문에 만 질 이유 가 없 을 것 이다.언제나 pg 에서clog 에서 파일 을 삭제 합 니 다.이렇게 하면 데이터베이스 디 렉 터 리 전 체 를 완전히 삭제 하 는 것 이 좋 습 니 다.clog 가 부족 하면 회복 할 수 없습니다.$PGDATA 디 렉 터 리 에 파일 을 백업 하면 pg 를 동시에 포함 하 는 지 확인 해 야 합 니 다.clog 와 pgxlog,그렇지 않 으 면 백업 을 사용 할 수 없다 는 것 을 알 게 될 것 입 니 다.
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.만약 잘못 이 있 거나 완전히 고려 하지 않 은 부분 이 있다 면 아낌없이 가르침 을 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기