Postgres 9.1의 핫 백업을 잠시 동안 진행하고 있으며 일관된 문제가 발생했습니다. 슬레이브 서버에서 Postgres를 다시 시작하면 pgstartup 로그 파일과 pg_log 디렉토리 아래의 일일 로그 파일이 오류없이 읽 힙니다. 그러나 psql 명령을 사용하여 데이터베이스에 입력하려고하면 오류가 발생합니다.
치명적 : 데이터베이스 시스템이 시작 중입니다.
recovery.conf 파일도 recovery.done으로 바뀌지 않습니다. 이 오류를 광범위하게 조사했으며 동일한 응답을 일관되게 발견했습니다. Postgres를 다시 시작하기 전에 데이터베이스가 완전히 종료되지 않았습니다. Postgres를 다시 시작한 유일한 방법은 service postgresql-9.1 restart또는 /etc/init.d/postgresql-9.1 restart명령을 사용하는 것입니다. 이 오류가 발생하면 모든 프로세스를 종료하고 다시 데이터베이스를 다시 시작하려고 시도해도 여전히 동일한 오류가 발생합니다. 여기에서 어디로 가야 하고이 문제를 해결하는 방법을 잃어 버렸습니다. 다음은 핫 백업을 완료하기 위해 수행 한 정확한 프로세스입니다.
마스터 서버 구성 :
pg_hba.conf는 다음 줄을 추가했습니다 :
호스트 복제 postgres IPAddressOfSlaveServer 트러스트
postgresql.conf :
wal_level = 핫 스탠바이 max_wal_senders = 5 listen_address = '*' 포트 = 5432 max_wal_senders = 5 wal_keep_segments = 32
슬레이브 서버 구성 :
postgresql.conf :
hot_standby = 켜기
recovery.conf :
standby_mode = 켜기 primary_conninfo = host = IPAddressOfMasterServer 포트 = 5432 사용자 = postgres restore_command = 'cp /var/lib/pgsql/9.1/data/pg_xlog/%f "% p"'
두 서버를 모두 구성한 후
마스터 서버에서 postgres 사용자로 변경하고 명령을 실행합니다.
psql -c "pg_start_backup ( 'label', true);를 선택하십시오.";
rsync -a -v -e ssh /var/lib/pgsql/9.1/data 슬레이브 : /var/lib/pgsql/9.1/data \
--postmaster.pid 제외
pgsql -c "select pg_stop_backup ();";
슬레이브 서버와 데이터베이스를 동기화 한 후
슬레이브 서버를 다시 시작했는데 시작이 실패하지 않습니다. pgstartup.log는 다음과 같이 읽습니다.
성공. 이제 다음을 사용하여 데이터베이스 서버를 시작할 수 있습니다.
/usr/pgsql-9.1/bin/postgres -D /var/lib/pgsql/9.1/data
또는
/usr/pgsql/9.1/bin/pg_ctl -D /var/lib/pgsql/9.1/data -l 로그 파일 시작
현재 날짜 로그 파일 postgresql-Thu.log는 다음을 읽습니다.
로그 : 종료 로그 : 데이터베이스 시스템이 종료되었습니다 로그 : 2012 년 4 월 10 일에 복구시 데이터베이스 시스템이 종료되었습니다 로그 : 대기 모드로 전환 로그 : 아카이브에서 "logFileName"로그 파일을 복원했습니다. 로그 : 일관된 복구 상태가 0 / BF0000B0에 도달했습니다. 로그 : 다시 실행은 0 / BF000020에서 시작합니다 로그 : 아카이브에서 "logFileName"로그 파일을 복원했습니다. 로그 : 로그 파일 0의 예기치 않은 pageaddr 0/85000000, 세그먼트 192, 오프셋 0 로그 : 로그 파일 0의 예기치 않은 pageaddr 0/85000000, 세그먼트 192, 오프셋 0 로그 : 스트리밍 복제가 기본에 성공적으로 연결되었습니다
예기치 않은 pageaddr 및 postgres 아카이브에서 조사한 결과 이것이 정상이며 WAL (End-of-WAL)을 감지하는 예상되는 방법 중 하나라는 것을 이해하고 있습니다.
모든 조언을 주시면 감사하겠습니다.