Một giải pháp soi kèo bóng đá truoctran thế cho chế độ chờ tích hợp được mô tả trong các phần trước là sử dụngrestore_command
Thăm dò vị trí lưu trữ. Đây là tùy chọn duy nhất có sẵn trong các phiên bản 8.4 trở xuống.standby_mode
Tắt, vì bạn đang thực hiện bỏ phiếu cần thiết cho hoạt động dự phòng. Xemtỷ lệ kèo bóngMô -đun để thực hiện tham chiếu về điều này.
Lưu ý rằng trong chế độ này, máy chủ sẽ áp dụng tệp wal một tại một thời điểm, vì vậy nếu bạn sử dụng máy chủ dự phòng cho các truy vấn (xem Hot Standby), có một sự chậm trễ giữa một hành động trong chính và khi hành động có thể nhìn thấy trong chế độ chờ, tương ứng với thời gian để điền vào tệp WAL.Archive_Timeout
có thể được sử dụng để làm cho độ trễ đó ngắn hơn. Cũng lưu ý rằng bạn không thể kết hợp sao chép phát trực tuyến với soi kèo bóng đá truoctran này.
Các hoạt động xảy ra trên cả máy chủ chính và máy chủ dự phòng là các tác vụ lưu trữ và phục hồi liên tục bình thường. Điểm tiếp xúc duy nhất giữa hai máy chủ cơ sở dữ liệu là kho lưu trữ các tệp WAL mà cả hai chia sẻ: Viết chính vào kho lưu trữ, đọc chờ từ kho lưu trữ.
Phép thuật làm cho hai máy chủ được kết hợp lỏng lẻo hoạt động cùng nhau chỉ đơn giản là mộtrestore_command
Được sử dụng ở chế độ chờ, khi được yêu cầu tệp WAL tiếp theo, hãy chờ nó có sẵn từ chính. Therestore_command
được chỉ định trongrecovery.conf
Tệp trên máy chủ dự phòng. Xử lý phục hồi thông thường sẽ yêu cầu một tệp từ kho lưu trữ Wal, báo cáo thất bại nếu tệp không có sẵn..History
Không cần phải chờ, và phải trả lại mã trả lại không phải. Chờ đợirestore_command
có thể được viết dưới dạng tập lệnh tùy chỉnh lặp lại sau khi bỏ phiếu cho sự tồn tại của tệp WAL tiếp theo. Cũng phải có một số cách để kích hoạt soi kèo bóng đá truoctran đổi dự phòng, sẽ làm gián đoạnrestore_command
, phá vỡ vòng lặp và trả lại lỗi không có tệp cho máy chủ dự phòng. Điều này kết thúc phục hồi và dự phòng sau đó sẽ trở thành một máy chủ bình thường.
Pseudocode cho phù hợprestore_command
IS:
được kích hoạt = false;
Một ví dụ hoạt động của sự chờ đợirestore_command
được cung cấp trongtỷ lệ kèo bóngMô -đun. Nó nên được sử dụng làm tài liệu tham khảo về cách thực hiện chính xác logic được mô tả ở trên.
Phương pháp kích hoạt soi kèo bóng đá truoctran đổi dự phòng là một phần quan trọng trong lập kế hoạch và thiết kế. Một tùy chọn tiềm năng làrestore_command
lệnh. Nó được thực thi một lần cho mỗi tệp wal, nhưng quá trình chạyrestore_command
được tạo và chết cho mỗi tệp, do đó không có quy trình daemon hoặc máy chủ, và tín hiệu hoặc trình xử lý tín hiệu không thể được sử dụng. Do đó,restore_command
không phù hợp để kích hoạt soi kèo bóng đá truoctran đổi dự phòng. Có thể sử dụng một cơ sở thời gian chờ đơn giản, đặc biệt là nếu được sử dụng cùng với đã biếtArchive_Timeout
Đặt trên chính. Tuy nhiên, điều này có phần dễ bị lỗi vì sự cố mạng hoặc máy chủ chính bận có thể đủ để bắt đầu soi kèo bóng đá truoctran đổi dự phòng.
Quy trình ngắn để định cấu hình máy chủ dự phòng bằng phương pháp soi kèo bóng đá truoctran thế này như sau. Để biết chi tiết đầy đủ của từng bước, hãy tham khảo các phần trước như đã lưu ý.
Thiết lập các hệ thống chính và dự phòng gần như giống hệt nhau nhất có thể, bao gồm hai bản sao giống hệt nhau củaPostgreSQLỞ cùng một mức phát hành.
Thiết lập lưu trữ liên tục từ chính sang thư mục lưu trữ Wal trên máy chủ dự phòng. Đảm bảo rằngArchive_Mode, Archive_Commandvàarchive_timeoutđược đặt một cách thích hợp trên chính (xemPhần 25.3.1).
Tạo bản sao lưu cơ sở của máy chủ chính (xemPhần 25.3.2) và tải dữ liệu này vào chế độ chờ.
Bắt đầu khôi phục trên máy chủ dự phòng từ kho lưu trữ WAL cục bộ, sử dụngrecovery.conf
Chỉ định Arestore_command
Đang chờ như mô tả trước đây (xemPhần 25.3.4).
Recovery xử lý kho lưu trữ WAL chỉ đọc, do đó, một khi tệp WAL đã được sao chép vào hệ thống dự phòng, nó có thể được sao chép vào băng cùng lúc với máy chủ cơ sở dữ liệu dự phòng. Do đó, chạy máy chủ dự phòng cho tính khả dụng cao có thể được thực hiện cùng lúc với các tệp được lưu trữ cho mục đích khắc phục thảm họa dài hạn.
Đối với mục đích thử nghiệm, có thể chạy cả máy chủ chính và máy chủ dự phòng trên cùng một hệ thống. Điều này không cung cấp bất kỳ sự cải thiện đáng giá nào trong sự mạnh mẽ của máy chủ, cũng như không được mô tả là ha.
Cũng có thể triển khai soi kèo bóng đá truoctran ký dựa trên bản ghi bằng phương pháp thay thế này, mặc dù điều này đòi hỏi sự phát triển tùy chỉnh và các thay đổi vẫn sẽ chỉ hiển thị đối với các truy vấn dự phòng nóng sau khi tệp WAL đầy đủ được vận chuyển.
Một chương trình bên ngoài có thể gọipg_walfile_name_offset ()
Hàm (xemPhần 9.26) Để tìm ra tên tệp và phần bù byte chính xác trong đó của đầu hiện tại của Wal. Sau đó, nó có thể truy cập trực tiếp vào tệp WAL và sao chép dữ liệu từ đầu cuối của Wal được biết đến qua đầu hiện tại vào các máy chủ dự phòng.16714_16731
Các tập lệnh chỉ có thể xử lý toàn bộ các tệp WAL, vì vậy dữ liệu được sao chép tăng dần không được cung cấp thông thường cho các máy chủ dự phòng. Nó chỉ sử dụng khi các chính chết chính - thì tệp WAL một phần cuối cùng được đưa vào chế độ chờ trước khi cho phép nó xuất hiện.restore_command
tập lệnh với chương trình sao chép dữ liệu.
Bắt đầu vớiPostgreSQLPhiên bản 9.0, bạn có thể sử dụng sao chép phát trực tuyến (xemPhần 26.2.5) để đạt được những lợi ích tương tự với ít nỗ lực hơn.