Tôi đang cố gắng hiểu cách sử dụng tốt nhất sao chép PostgreSQL và cách thức hoạt động để tôi có thể khắc phục sự cố trong môi trường sản xuất.
Tôi đang gặp khó khăn để hiểu sự khác biệt giữa 2 loại sao chép này về mặt (1) Cấu hình (2) Cách 2 máy chủ Master / Slave thực hiện trong mỗi kịch bản
Bản sao trên PostgreSQL (9.2+) về cơ bản là các tệp XLOG có kích thước 16 MB (tùy thuộc vào cài đặt tần số để tạo từng tệp) đang được tạo trên Master và được gửi bằng phương thức nào đó tới Slave.
Thiết lập của tôi (cho mục đích của câu hỏi này)
Cấu hình của Postgresql.conf trên Master
archive_command = 'rsync -av% p postgres @ [SlaveIP]: [wal_archive_folder] /% f'
Cấu hình của Recovery.conf trên Slave để đọc tệp nhật ký
restore_command = 'cp [wal_archive_folder] /% f \ "% p \"'
primary_conninfo = 'host = [MasterIP] port = 5432 user = postgres'
Câu hỏi của tôi là phần nào của cấu hình này làm cho bản sao "phát trực tuyến" này so với "vận chuyển nhật ký"? Master của tôi được cấu hình để sử dụng rsync để gửi nhật ký đến nô lệ (đây có phải là nhật ký vận chuyển không?) Slave của tôi được cấu hình để có thể kết nối với chủ trong recovery.conf (đây có phải là luồng không?)
Phần thứ hai của câu hỏi: Chuyện gì đang xảy ra? Tôi hiểu rằng có một giao thức khác trên PostgreSQL thông qua WAL_sender & WAL_receiver. Nhưng tôi không rõ nếu điều này chỉ được sử dụng để phát trực tuyến và nếu vậy, rsync được sử dụng trong Master như thế nào?
:) Cảm ơn bạn!! Và xin lỗi nếu đây là một câu hỏi rõ ràng. Tôi đã làm một loạt các blog / sách đọc nhưng có một thời gian khó hiểu. Wiki Postgres có chiều sâu đến nỗi phải mất một thời gian dài để vượt qua tất cả (và tôi có thời hạn)