Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

Chương 25. Tính khả kèo bóng đá pháp cao, tải Cân bằng và sao chép

Máy chủ cơ sở dữ liệu có thể làm việc cùng nhau để cho phép máy chủ thứ hai tiếp quản nhanh chóng nếu máy chủ chính bị lỗi (cao tính khả kèo bóng đá pháp) hoặc để cho phép một số máy tính phục vụ giống nhau Dữ liệu (cân bằng tải). Lý tưởng nhất là các máy chủ cơ sở dữ liệu có thể hoạt động cùng nhau liền mạch. Máy chủ web phục vụ các trang web tĩnh có thể kết hợp khá dễ dàng bằng cách chỉ đơn thuần là các yêu cầu web cân bằng tải để Nhiều máy. Trên thực tế, các máy chủ cơ sở dữ liệu chỉ đọc có thể Kết hợp tương đối dễ dàng quá. Thật không may, hầu hết cơ sở dữ liệu Máy chủ có kết hợp đọc/ghi các yêu cầu và máy chủ đọc/ghi khó kết hợp hơn nhiều. Điều này là do mặc dù dữ liệu chỉ đọc chỉ cần đặt trên mỗi máy chủ một lần, ghi vào bất kỳ máy chủ phải được truyền đến tất cả các máy chủ để đọc trong tương lai yêu cầu cho các máy chủ đó trả về kết quả nhất quán.

Vấn đề đồng bộ hóa này là khó khăn cơ bản đối với Máy chủ làm việc cùng nhau. Vì không có giải pháp duy nhất điều đó giúp loại bỏ tác động của vấn đề đồng bộ cho tất cả các trường hợp sử kèo bóng đá pháp, Có nhiều giải pháp. Mỗi giải pháp giải quyết điều này vấn đề theo một cách khác và giảm thiểu tác động của nó đối với một khối lượng công việc cụ thể.

Một số giải pháp liên quan đến đồng bộ hóa kèo bóng đá pháp cách chỉ cho phép một máy chủ để sửa đổi dữ liệu. Máy chủ có thể sửa đổi dữ liệu là được gọi là máy chủ đọc/viết hoặc "chủ". Máy chủ có thể trả lời Các truy vấn chỉ đọc được gọi là máy chủ "nô lệ". Máy chủ không thể được truy cập cho đến khi chúng được thay đổi thành máy chủ chính được gọi Máy chủ "Standby".

Một số giải pháp đồng bộ, có nghĩa là việc sửa đổi dữ liệu giao dịch không được coi là cam kết cho đến khi tất cả các máy chủ có cam kết giao dịch. Điều này đảm bảo rằng một chuyển đổi dự phòng sẽ không mất bất kỳ dữ liệu nào và tất cả các máy chủ cân bằng tải sẽ trở lại Kết quả nhất quán bất kể máy chủ nào được truy vấn. TRONG tương phản, các giải pháp không đồng bộ cho phép một số độ trễ giữa thời gian của một cam kết và sự truyền bá của nó sang các máy chủ khác, mở ra khả năng một số giao dịch có thể bị mất Chuyển sang máy chủ sao lưu và các máy chủ cân bằng tải đó Có thể trả về kết quả hơi cũ. Giao tiếp không đồng bộ được sử kèo bóng đá pháp khi đồng bộ sẽ quá chậm.

Giải pháp cũng có thể được phân loại theo độ chi tiết của chúng. Một số Các giải pháp chỉ có thể xử lý toàn bộ máy chủ cơ sở dữ liệu, trong khi Những người khác cho phép kiểm soát ở cấp độ mỗi bảng hoặc mỗi cơ sở dữ liệu.

Hiệu suất phải được xem xét trong bất kỳ lựa chọn nào. Thường có Một sự đánh đổi giữa chức năng và hiệu suất. Ví dụ, a Giải pháp đồng bộ đầy đủ trên mạng chậm có thể cắt hiệu suất hơn một nửa, trong khi một người không đồng bộ có thể có tác động hiệu suất tối thiểu.

Phần còn lại của phần này phác thảo các dự phòng khác nhau, nhân rộng, và các giải pháp cân kèo bóng đá pháp tải. MỘTThuật ngữcũng có sẵn.

Failover đĩa được chia sẻ

Chuyển đổi dự phòng đĩa được chia sẻ tránh trên đầu Chỉ có một bản sao của cơ sở dữ liệu. Nó sử kèo bóng đá pháp một đĩa duy nhất Mảng được chia sẻ bởi nhiều máy chủ. Nếu chính Máy chủ cơ sở dữ liệu không thành công, máy chủ dự phòng có thể gắn kết và bắt đầu cơ sở dữ liệu như thể nó đang phục hồi từ một sự cố cơ sở dữ liệu. Điều này cho phép chuyển đổi nhanh không có dữ liệu sự mất mát.

Chức năng phần cứng được chia sẻ là phổ biến trong mạng thiết bị lưu trữ. Sử kèo bóng đá pháp hệ thống tệp mạng cũng có thể, mặc dù phải cẩn thận mà hệ thống tệp có đầy đủPOSIXHành vi (nhìn thấyPhần 17.2.1). Một hạn chế đáng kể của phương pháp này là rằng nếu mảng đĩa được chia sẻ không thành công hoặc bị hỏng, thì Máy chủ chính và dự phòng đều không chức năng. Khác Vấn đề là máy chủ dự phòng không bao giờ được truy cập Lưu trữ được chia sẻ trong khi máy chủ chính đang chạy.

14882_14922

Phiên bản sửa đổi của chức năng phần cứng được chia sẻ là kèo bóng đá pháp hệ thống tệp, trong đó tất cả các thay đổi thành hệ thống tệp được nhân đôi cho một hệ thống tệp nằm trên một máy tính khác. Hạn chế duy nhất là phản chiếu phải được thực hiện trong Một cách đảm bảo máy chủ dự phòng có một bản sao nhất quán của hệ thống tệp - cụ thể, ghi vào chế độ chờ phải được thực hiện theo cùng một thứ tự như trên chủ.DRBDlà một tệp phổ biến Giải pháp kèo bóng đá pháp hệ thống cho Linux.

chế độ chờ ấm áp sử kèo bóng đá pháp phục hồi thời gian (pitr)

Máy chủ dự phòng ấm áp (xemPhần 24.4) Có thể giữ dòng điện kèo bóng đá pháp cách đọc một luồng nhật ký ghi (Wal) Bản ghi. Nếu máy chủ chính bị lỗi, Chế độ chờ ấm áp chứa hầu hết tất cả các dữ liệu của máy chủ chính và có thể nhanh chóng được làm chủ mới Máy chủ cơ sở dữ liệu. Điều này là không đồng bộ và chỉ có thể được thực hiện cho toàn bộ máy chủ cơ sở dữ liệu.

Nhân rộng Master-Slave

Một thiết lập kèo bóng đá pháp nô lệ chính gửi tất cả dữ liệu Truy vấn sửa đổi cho máy chủ chính. Master Máy chủ không đồng bộ gửi các thay đổi dữ liệu cho nô lệ máy chủ. Nô lệ có thể trả lời các truy vấn chỉ đọc trong khi Máy chủ chính đang chạy. Máy chủ nô lệ là lý tưởng cho Truy vấn kho dữ liệu.

slony-ilà một ví dụ của loại kèo bóng đá pháp này, với độ chi tiết mỗi bàn, và hỗ trợ cho nhiều nô lệ. Bởi vì nó cập nhật Máy chủ nô lệ không đồng bộ (theo đợt), có thể Mất dữ liệu trong khi thất bại.

Phần mềm trung gian kèo bóng đá pháp dựa trên tuyên bố

Với phần mềm trung gian kèo bóng đá pháp dựa trên tuyên bố, một chương trình chặn mọi truy vấn SQL và gửi nó đến một hoặc tất cả Máy chủ. Mỗi máy chủ hoạt động độc lập. Đọc-viết Truy vấn được gửi đến tất cả các máy chủ, trong khi các truy vấn chỉ đọc có thể được gửi đến chỉ một máy chủ, cho phép khối lượng công việc đọc được phân phối.

Nếu các truy vấn chỉ đơn giản là phát sóng không sửa đổi, các chức năng giốngngẫu nhiên (), current_timestamp, và các chuỗi sẽ Có các giá trị khác nhau trên các máy chủ khác nhau. Điều này là bởi vì Mỗi máy chủ hoạt động độc lập và vì các truy vấn SQL được phát sóng (và không phải các hàng sửa đổi thực tế). Nếu đây là Không thể chấp nhận được, phần mềm trung gian hoặc ứng kèo bóng đá pháp phải truy vấn các giá trị như vậy từ một máy chủ và sau đó sử kèo bóng đá pháp chúng Giá trị trong các truy vấn ghi. Ngoài ra, phải chăm sóc tất cả giao dịch hoặc cam kết hoặc hủy bỏ trên tất cả các máy chủ, có lẽ Sử kèo bóng đá pháp cam kết hai pha (Chuẩn bị giao dịchtỷ lệ kèo bóng đá: Tà. pgpool-iiSequoialà những ví dụ của loại kèo bóng đá pháp này.

Bản kèo bóng đá pháp đa điểm không đồng bộ

Đối với các máy chủ không được kết nối thường xuyên, như máy tính xách tay hoặc máy chủ từ xa, giữ dữ liệu nhất quán giữa Máy chủ là một thách thức. Sử kèo bóng đá pháp đa nhân viên không đồng bộ nhân rộng, mỗi máy chủ hoạt động độc lập và giao tiếp định kỳ với các máy chủ khác để Xác định các giao dịch mâu thuẫn. Những xung đột có thể được giải quyết bởi người dùng hoặc các quy tắc giải quyết xung đột.

kèo bóng đá pháp đa nhân đồng bộ

Trong bản sao đa phương thức đồng bộ, mỗi máy chủ có thể chấp nhận yêu cầu ghi và dữ liệu được sửa đổi được truyền từ máy chủ gốc đến mọi máy chủ khác trước mỗi máy chủ giao dịch cam kết. Hoạt động ghi nặng có thể gây ra Khóa quá mức, dẫn đến hiệu suất kém. Trong thực tế, hiệu suất viết thường tệ hơn so với một máy chủ. Đọc các yêu cầu có thể được gửi đến bất kỳ máy chủ nào. Một số Việc triển khai sử kèo bóng đá pháp đĩa chung để giảm giao tiếp trên không. Sao chép đa phương đồng đồng bộ là tốt nhất cho chủ yếu là đọc khối lượng công việc, mặc dù lợi thế lớn của nó là bất kỳ máy chủ có thể chấp nhận yêu cầu ghi - không cần phải khối lượng công việc phân vùng giữa các máy chủ chính và nô lệ, và bởi vì các thay đổi dữ liệu được gửi từ một máy chủ đến khác, không có vấn đề gì với không xác định các chức năng nhưngẫu nhiên ().

PostgreSQLkhông Cung cấp loại kèo bóng đá pháp này, mặc dùPostgreSQLCam kết hai pha (PostgreSQL: Tài liệu: 8.3:cam kết đã chuẩn bị) có thể được sử kèo bóng đá pháp Để thực hiện điều này trong mã ứng kèo bóng đá pháp hoặc phần mềm trung gian.

Giải pháp thương mại

PostgreSQLIS nguồn mở và dễ dàng mở rộng, một số công ty có lấyPostgreSQLvà đã tạo ra các giải pháp nguồn đóng cửa thương mại với độc đáo Chuyển đổi dự phòng, kèo bóng đá pháp và khả năng cân bằng tải.

Bảng 25-1Tóm tắt các khả năng của các giải pháp khác nhau được liệt kê bên trên.

Bảng 25-1. Tính khả kèo bóng đá pháp cao, cân bằng tải, và Ma trận tính năng sao chép

kèo bóng đá pháp năng Failover đĩa được chia sẻ kèo bóng đá pháp hệ thống tệp chế độ chờ ấm áp kèo bóng đá pháp PIRTR Nhân rộng Master-Slave Phần mềm trung gian kèo bóng đá pháp dựa trên tuyên bố kèo bóng đá pháp đa điểm không đồng bộ kèo bóng đá pháp đa nhân đồng bộ
Không yêu cầu phần cứng đặc biệt
Cho phép nhiều máy chủ chính
Không có máy chủ chính trên đầu
Không chờ đợi nhiều máy chủ
Thất bại chính sẽ không bao giờ mất dữ liệu
nô lệ chấp nhận các truy vấn chỉ đọc
23802_23825
Không cần giải quyết xung đột
Phương pháp giao tiếp Đĩa được chia sẻ Khối đĩa Wal Hàng bảng SQL Hàng bảng Hàng bảng và khóa hàng

Có một kèo bóng đá phápi giải pháp không phù hợp với các giải pháp trên Thể loại:

Phân vùng dữ liệu

Phân vùng dữ liệu chia các bảng vào tập dữ liệu. Mỗi bộ Có thể được sửa đổi chỉ bằng một máy chủ. Ví dụ: dữ liệu có thể Được phân vùng bởi các văn phòng, ví dụ: London và Paris, với một máy chủ trong mỗi văn phòng. Nếu các truy vấn kết hợp London và Dữ liệu Paris là cần thiết, một ứng kèo bóng đá pháp có thể truy vấn cả hai Máy chủ hoặc nhân rộng chủ/nô lệ có thể được sử kèo bóng đá pháp để giữ một bản sao chỉ đọc dữ liệu của văn phòng khác về từng máy chủ.

Thực thi truy vấn song song nhiều máy chủ

Nhiều giải pháp trên cho phép nhiều máy chủ xử lý nhiều truy vấn, nhưng không cho phép một truy vấn duy nhất Sử kèo bóng đá pháp nhiều máy chủ để hoàn thành nhanh hơn. Giải pháp này cho phép nhiều máy chủ hoạt động đồng thời trên một truy vấn. Nó thường được thực hiện bằng cách chia dữ liệu trong số các máy chủ và mỗi máy chủ thực hiện một phần của truy vấn và trả lại kết quả cho một máy chủ trung tâm nơi họ được kết hợp và trả lại cho người dùng.pgpool-iiCó khả năng này. Cũng, Điều này có thể được thực hiện bằng cách sử kèo bóng đá phápPL/ProxyBộ công cụ.