Trong phiên bản hiện tại (PG 9.0-9.3) không có cơ chế "fail-back" nhanh. Bạn sẽ phải tuân theo các hướng dẫn chính thức của tiểu bang:
Chế độ chờ trước đây bây giờ là chính, nhưng trước đây là chính và có thể ở lại. Để trở lại hoạt động bình thường, một máy chủ dự phòng phải được tạo lại, trên hệ thống chính cũ khi nó xuất hiện hoặc trên hệ thống thứ ba, có thể là mới.
Vì vậy, dự đoán thứ hai của bạn là chính xác: bạn cần phải xây dựng lại hoàn toàn chế độ chờ.
Điều này phát sinh từ nội bộ PostgreSQL, định dạng WAL và các mốc thời gian. Mỗi lần thất bại được thực hiện, nó tạo ra một dòng thời gian mới. Bạn không thể sử dụng các tệp WAL từ máy chủ mới một cách an toàn (tệp đã được quảng cáo) để phát lại trên máy chủ cũ sau khi được khôi phục.
Từ phiên bản 9.1 trở đi, bạn có một công cụ để nhân bản nhanh các phiên bản postgreSQL : pg_basBackup . Bạn cũng có thể sử dụng ảnh chụp nhanh hệ thống tập tin (ví dụ: LVM2 + XFS).
Nếu bạn có một ảnh chụp nhanh của cụm postgres chính từ trước khi gặp sự cố và một loạt các tệp WAL từ thời điểm đó trở đi, bạn có thể hồi sinh cụm chính từ ảnh chụp nhanh đó và phát lại các tệp WAL của nó. Điều này được đề cập trong các tài liệu .
Tái bút Cảm ơn cho một câu hỏi hay - điều này không quá rõ ràng ngay từ các tài liệu.
rsync
để chuyển thư mục dữ liệu có thể ít tốn kém hơn so với việc xây dựng lại hoàn chỉnh kể từ khi tăng dần. Tuy nhiên, lợi ích phụ thuộc vào mức độ hoạt động xảy ra sau khi chuyển đổi dự phòng và mức độ lan truyền giữa các bảng.