PostgreSQL 9 : 기본에서 테이블을 진공 청소기로 청소하면 미러에서 복제됩니까?


18

하나의 읽기 전용 미러 인스턴스를 최신 상태로 유지하는 스트리밍 복제와 함께 PostgreSQL 9.0.1 실행. Auto-vaccuum은 업무 시간 IO를 줄이기 위해 auto-vacuum 데몬에 의해 진공 처리되지 않은 일부 테이블을 제외하고 기본에 있습니다. 이 테이블은 "구체화 된 뷰"입니다.

매일 밤 자정에 자동 진공에서 제외 된 테이블을 정리하기 위해 데이터베이스를 가로 질러 진공 청소기를 실행합니다. 해당 프로세스가 미러로 복제되는지 또는 미러에서 진공을 설정해야하는지 궁금합니다.


1
훌륭한 질문입니다. 스트리밍 복제는 Write-Ahead Log를 사용하므로 VACUUM의 변경 사항이 기록되는지 여부로 요약됩니다.
DerfK

1
흥미롭게도, 나는 읽기 전용 미러에서 자동 진공을 켰지 만 테이블 통계를 보면 실행되지 않은 것으로 보입니다. 모든 테이블에 0 개의 활성 / 죽음 튜플이 나열되어 있으며 진공 또는 분석에 대한 히스토리가 표시되지 않습니다.
Scott Herbert

developer.postgresql.org/pgdocs/postgres/hot-standby.html-25.5.2 . 쿼리 충돌 처리- "WAL에서 진공 정리 레코드를 적용하면 제거 할 행을 스냅 샷으로 볼 수있는 대기 트랜잭션과 충돌합니다 ............. VACUUM WAL이 기록되었으므로 제 질문에 "예"입니다. PG 전문가로부터 정보를 더 얻고 싶습니다!
Scott Herbert

동적 뷰의 데이터는 기본과 대기에서 다를 것으로 예상됩니다. 이러한 뷰는 시스템 함수를 사용하여 데이터를 수집하고 해당 함수는 실제 테이블이 아닌 메모리 내 데이터 구조에서 데이터를 읽습니다. 예를 들어, 기본에서 ANALYZE를 수행하면 대기에서 옵티 마이저 통계 (쿼리 계획에 사용됨)도 업데이트되지만 테이블에서 ANALYZE가 수행 된 시간은 해당 정보가 트랜잭션에 기록되지 않으므로 pg_stat_user_tables에 반영되지 않습니다. 로그.
Gurjeet Singh 22.07에

따라서 마스터에서 발생하는 AUTOVACUUM은 슬레이브에서 실행되는 데 아무런 영향을 미치지 않습니다. 맞습니까? 이것이 사실이라고 가정하면, 업데이트 / 삭제가없는 테이블이 있고 삽입 만하면 마스터에 자동 진공 기능을 비활성화하는 것이 가능할 것입니다.
Henley Chiu

답변:


16

진공 및 자동 진공은 다른 쓰기 작업과 마찬가지로 복제됩니다. (음, 내부적으로는 다소 특별하지만, 귀하의 질문에 관해서는 정상적인 쓰기 작업입니다.) 슬레이브에서 진공 또는 자동 진공을 실행하는 것은 아무 것도하지 않으며 필요하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.