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
Tài liệu này dành cho phiên bản không được hỗ trợ tỷ lệ kèo bóng đá 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ế.

29.7. tỷ lệ kèo bóng đá#

Sao chép logic hoạt động tương tự như các hoạt động DML thông thường trong đó dữ liệu sẽ được cập tỷ lệ kèo bóng đá ngay cả khi nó được thay đổi cục bộ trên nút thuê bao. Nếu dữ liệu đến vi phạm mọi ràng buộc, bản sao sẽ dừng lại.tỷ lệ kèo bóng đá. Khi sao chépCập tỷ lệ kèo bóng đáhoặcXóaHoạt động, Dữ liệu bị thiếu cũng được coi làtỷ lệ kèo bóng đá, nhưng không dẫn đến lỗi và các hoạt động đó sẽ đơn giản bị bỏ qua.

Ghi nhật ký bổ sung được kích hoạt và số liệu thống kê tỷ lệ kèo bóng đá được thu thập (được hiển thị trongpg_stat_subcrip_statsXem) trong phần sautỷ lệ kèo bóng đátrường hợp:

INSERT_EXISTS #

Chèn một hàng vi phạm AKhông thể bảo vệràng buộc duy nhất. Lưu ý rằng để ghi lại nguồn gốc và cam kết chi tiết dấu thời gian tỷ lệ kèo bóng đá khóa mâu thuẫn,Track_Commit_Timestampnên được bật trên thuê bao. Trong trường hợp này, một lỗi sẽ được nêu ra cho đến khi cuộc tỷ lệ kèo bóng đá được giải quyết thủ công.

update_origin_differs #

Cập nhật một hàng đã được sửa đổi trước đó bởi một nguồn gốc khác. Lưu ý rằng tỷ lệ kèo bóng đá này chỉ có thể được phát hiện khiTrack_Commit_Timestampđược bật trên thuê bao. Hiện tại, bản cập nhật luôn được áp dụng bất kể nguồn gốc tỷ lệ kèo bóng đá hàng cục bộ.

update_exists #

Giá trị được cập nhật tỷ lệ kèo bóng đá một hàng vi phạm AKhông thể bảo vệràng buộc duy nhất. Lưu ý rằng để ghi lại nguồn gốc và cam kết chi tiết dấu thời gian tỷ lệ kèo bóng đá khóa mâu thuẫn,Track_Commit_Timestampnên được bật trên thuê bao. Trong trường hợp này, một lỗi sẽ được nêu ra cho đến khi cuộc tỷ lệ kèo bóng đá được giải quyết bằng tay.INSERT_EXISTStỷ lệ kèo bóng đá có thể phát sinh nếu hàng mới vi phạm AKhông thể bảo vệràng buộc duy nhất.

update_missing #

Không được cập tỷ lệ kèo bóng đá tuple. Bản cập tỷ lệ kèo bóng đá chỉ đơn giản sẽ được bỏ qua trong kịch bản này.

Delete_origin_differs #

Xóa một hàng đã được sửa đổi trước đó bởi một nguồn gốc khác. Lưu ý rằng tỷ lệ kèo bóng đá này chỉ có thể được phát hiện khiTrack_Commit_Timestampđược bật trên thuê bao. Hiện tại, việc xóa luôn được áp dụng bất kể nguồn gốc tỷ lệ kèo bóng đá hàng cục bộ.

Delete_Missing #

Không tìm thấy tuple được xóa. Việc xóa sẽ đơn giản được bỏ qua trong kịch bản này.

mult_unique_conflicts #

Chèn hoặc cập tỷ lệ kèo bóng đá một hàng vi phạm nhiềuKhông thể bảo vệNhững ràng buộc duy nhất. Lưu ý rằng để đăng nhập nguồn gốc và cam kết chi tiết dấu thời gian của các khóa tỷ lệ kèo bóng đá, đảm bảo rằngTrack_Commit_Timestampđược bật trên thuê bao. Trong trường hợp này, một lỗi sẽ được nêu ra cho đến khi cuộc tỷ lệ kèo bóng đá được giải quyết thủ công.

Lưu ý rằng có các tình huống tỷ lệ kèo bóng đá khác, chẳng hạn như vi phạm ràng buộc loại trừ. Hiện tại, chúng tôi không cung cấp thêm chi tiết cho họ trong nhật ký.

Định dạng nhật ký cho tỷ lệ kèo bóng đá sao chép logic như sau:

log: tỷ lệ kèo bóng đá được phát hiện trên quan hệ "Schemaname.TableName": tỷ lệ kèo bóng đá =tỷ lệ kèo bóng đá đột_typechi tiết:chi tiết_explanation.chi tiết_values[; ...].WHEREchi tiết_valueslà một trong:

    Key(Cột_name[, ...]) = (Cột_Value[, ...])Tuple cục bộ hiện tại[(Cột_name[, ...]) =] (Cột_Value[, ...])Tuple từ xa[(Cột_name[, ...]) =] (Cột_Value[, ...])Nhận dạng bản sao(Cột_name[, ...]) = (Cột_Value[, ...]) | đầy [(Cột_name[, ...]) =] (Cột_Value[, ...])

tỷ lệ kèo bóng đá ký cung cấp thông tin sau:

log
  • Schemaname.TableNameXác định mối quan hệ cục bộ liên quan đến tỷ lệ kèo bóng đá.

  • tỷ lệ kèo bóng đá đột_typelà loại tỷ lệ kèo bóng đá xảy ra (ví dụ:INSERT_EXISTS, update_exists).

chi tiết
  • chi tiết_explanationBao gồm nguồn gốc, ID giao dịch và thời gian cam kết giao dịch đã sửa đổi bộ tuple cục bộ hiện tại, nếu có.

  • TheKeyPhần bao gồm các giá trị chính tỷ lệ kèo bóng đá bộ dữ liệu cục bộ đã vi phạm một ràng buộc duy nhất choINSERT_EXISTS, update_existshoặcmult_unique_conflictstỷ lệ kèo bóng đá.

  • TheTuple cục bộ hiện tạiPhần bao gồm bộ dữ liệu cục bộ nếu nguồn gốc tỷ lệ kèo bóng đá nó khác với bộ điều khiển từ xa choupdate_origin_differshoặcdelete_origin_differstỷ lệ kèo bóng đá hoặc nếu giá trị chính mâu thuẫn với bộ điều khiển từ xa choINSERT_EXISTS, update_existshoặcmult_unique_conflictstỷ lệ kèo bóng đá.

  • TheTuple từ xaPhần bao gồm bộ tuple mới từ hoạt động chèn hoặc cập nhật từ xa gây ra tỷ lệ kèo bóng đá. Lưu ý rằng đối với hoạt động cập nhật, giá trị cột của bộ tuple mới sẽ không có giá trị nếu giá trị không thay đổi và nướng.

  • TheNhận dạng bản saoPhần bao gồm các giá trị khóa nhận dạng bản sao được sử dụng để tìm kiếm bộ tple cục bộ hiện có để được cập tỷ lệ kèo bóng đá hoặc xóa. Điều này có thể bao gồm giá trị tuple đầy đủ nếu mối quan hệ cục bộ được đánh dấu bằngBản sao danh tính đầy đủ.

  • Cột_namelà tên cột. VìTuple cục bộ hiện tại, Tuple từ xaBản sao đầy đủCác trường hợp, tên cột chỉ được ghi lại nếu người dùng thiếu đặc quyền truy cập tất cả các cột tỷ lệ kèo bóng đá bảng. Nếu có tên cột, chúng xuất hiện theo cùng thứ tự với các giá trị cột tương ứng.

  • Cột_Valuelà giá trị cột. Các giá trị cột lớn bị cắt xuống 64 byte.

  • Lưu ý rằng trong trường hợpmult_unique_conflictstỷ lệ kèo bóng đá, nhiềuchi tiết_explanationchi tiết_valuesCác dòng sẽ được tạo, mỗi chi tiết thông tin tỷ lệ kèo bóng đá liên quan đến các ràng buộc độc đáo riêng biệt.

Hoạt động sao chép logic được thực hiện với các đặc quyền của vai trò sở hữu đăng ký. Lỗi về quyền trên bảng đích sẽ gây ra tỷ lệ kèo bóng đá sao chép, như sẽ được bậtBảo mật cấp hàng19770_19898Chèn, Cập tỷ lệ kèo bóng đá, Xóahoặccắt ngắnđang được nhân rộng. Hạn chế này đối với bảo mật cấp hàng có thể được nâng lên trong phiên bản tương lai tỷ lệ kèo bóng đáPostgreSQL.

Một cuộc tỷ lệ kèo bóng đá tạo ra lỗi sẽ ngăn chặn sự sao chép; Nó phải được giải quyết bằng tay bởi người dùng.

Độ phân giải có thể được thực hiện bằng cách thay đổi dữ liệu hoặc quyền trên thuê bao để nó không mâu thuẫn với thay đổi đến hoặc bằng cách bỏ qua giao dịch tỷ lệ kèo bóng đá với dữ liệu hiện có. Khi tỷ lệ kèo bóng đá tạo ra lỗi, bản sao sẽ không được tiến hành và nhân viên sao chép logic sẽ phát ra loại thông báo sau vào nhật ký máy chủ của người đăng ký:

Lỗi: tỷ lệ kèo bóng đá được phát hiện trên quan hệ "public.test": tỷ lệ kèo bóng đá = insert_exists

LSN tỷ lệ kèo bóng đá giao dịch có chứa thay đổi vi phạm ràng buộc và tên gốc sao chép có thể được tìm thấy từ nhật ký máy chủ (LSN 0/14C0378 và nguồn gốc sao chépPG_16395Trong trường hợp trên). Giao dịch tạo ra tỷ lệ kèo bóng đá có thể được bỏ qua bằng cách sử dụngThay đổi đăng ký ... Bỏ quavới kết thúc LSN (tức là, LSN 0/14C0378). Kết thúc LSN có thể là LSN mà tại đó giao dịch được thực hiện hoặc chuẩn bị trên nhà xuất bản.PG_Replication_Origin_Advance ()Hàm. Trước khi sử dụng chức năng này, đăng ký cần được vô hiệu hóa tạm thời bởiThay đổi đăng ký ... vô hiệu hóaHoặc, đăng ký có thể được sử dụng vớivô hiệu hóa_on_errorTùy chọn. Sau đó, bạn có thể sử dụngPG_Replication_Origin_Advance ()Hàm vớinode_name(tức là,PG_16395) và LSN tiếp theo tỷ lệ kèo bóng đá LSN hoàn thiện (tức là, 0/14C0379). Vị trí hiện tại tỷ lệ kèo bóng đá nguồn gốc có thể được nhìn thấy trongPG_Replication_origin_statusChế độ xem hệ thống. Xin lưu ý rằng việc bỏ qua toàn bộ giao dịch bao gồm bỏ qua các thay đổi có thể không vi phạm bất kỳ ràng buộc nào.chi tiếtdòng tỷ lệ kèo bóng đá nhật ký. Nhưng lưu ý rằng thông tin này chỉ khả dụng khiTrack_Commit_Timestampđược bật trên thuê bao. Người dùng có thể sử dụng thông tin này để quyết định có giữ lại thay đổi cục bộ hay áp dụng sự thay đổi từ xa.chi tiếtLòng trong tỷ lệ kèo bóng đá ký trên cho biết hàng hiện tại đã được sửa đổi cục bộ. Người dùng có thể thực hiện thủ công một chiến thắng thay đổi từ xa.

Khiphát trực tuyếnChế độ làsong song, kết thúc LSN tỷ lệ kèo bóng đá các giao dịch thất bại có thể không được ghi lại. Trong trường hợp đó, có thể cần phải thay đổi chế độ phát trực tuyến thànhtrênhoặcTẮTvà gây ra các tỷ lệ kèo bóng đá tương tự một lần nữa để kết thúc LSN của giao dịch thất bại sẽ được ghi vào nhật ký máy chủ. Để sử dụng kết thúc LSN, vui lòng tham khảoĐăng ký thay đổi ... Bỏ qua.