PostgreSQL 9: Hút bụi một bảng trên bản sao chính trên gương?


18

Chạy PostgreSQL 9.0.1, với bản sao phát trực tuyến giữ cho một cá thể nhân bản chỉ đọc được cập nhật. Tự động tiêm vắc-xin được bật trên bản chính, ngoại trừ một vài bảng không được hút bụi bằng daemon tự động, trong nỗ lực giảm IO giờ làm việc. Các bảng này là "quan điểm cụ thể hóa".

Mỗi đêm vào lúc nửa đêm, chúng tôi chạy chân không trên cơ sở dữ liệu để dọn sạch những bảng được loại trừ khỏi máy hút bụi tự động. Tôi đang tự hỏi nếu quá trình đó sao chép qua gương, hoặc nếu tôi cần thiết lập chân không trên gương?


1
Câu hỏi tuyệt vời. Bản sao phát trực tuyến sử dụng Nhật ký ghi trước, vì vậy nó sẽ xem xét liệu các thay đổi mà VACUUM thực hiện có được ghi lại hay không.
DerfK

1
Thật thú vị, tôi đã tự động bật chân không BẬT trên gương chỉ đọc, nhưng nhìn vào bảng thống kê nó không xuất hiện đã từng chạy; vì tất cả các bảng liệt kê 0 bộ dữ liệu sống / chết và không có lịch sử nào có thể nhìn thấy chân không hoặc phân tích.
Scott Herbert

developer.postgresql.org/pgdocs/postgres/hot-standby.html - 25.5.2. Xử lý xung đột truy vấn - "Ứng dụng bản ghi dọn sạch chân không từ WAL xung đột với các giao dịch dự phòng mà ảnh chụp nhanh vẫn có thể" nhìn thấy "bất kỳ hàng nào cần xóa ............. Điều này dường như cho thấy VACUUM là WAL đã được ghi lại, và do đó nó là "có" cho câu hỏi của tôi. Tôi rất muốn nhận thêm một số thông tin từ một guru PG!
Scott Herbert

Dữ liệu từ chế độ xem động được dự kiến ​​sẽ khác nhau ở chế độ chính so với chế độ chờ. Các khung nhìn này sử dụng các hàm hệ thống để thu thập dữ liệu và các hàm đó đọc dữ liệu từ các cấu trúc dữ liệu trong bộ nhớ thay vì từ bảng vật lý. Ví dụ: thực hiện ANALYZE trên chính sẽ cập nhật số liệu thống kê tối ưu hóa (được sử dụng để lập kế hoạch truy vấn) ở chế độ chờ, nhưng thời gian ANALYZE được thực hiện trên bảng sẽ không phản ánh trong pg_stat_user_tables vì ​​thông tin đó không được đăng nhập trong giao dịch nhật ký.
Gurjeet Singh

Vì vậy, kết luận là AUTOVACUUM xảy ra trên bản gốc không có tác dụng gì với nó chạy trên nô lệ, đúng không? Giả sử đây là trường hợp, nếu tôi có một bảng KHÔNG có cập nhật / xóa, chỉ cần chèn, thì có thể vô hiệu hóa autovacuum trong bản gốc, vì tôi chỉ viết cho nó và các lần đọc xảy ra trên nô lệ.
Henley Chiu

Câu trả lời:


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.