Phiên bản được hỗ trợ:hiện tại3565_359517) /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

F.2. AMCheck - Công cụ để tỷ lệ kèo bóng đá tính nhất quán bảng và chỉ mục#

TheAMCHECKMô -đun cung cấp các chức năng cho phép bạn tỷ lệ kèo bóng đá tính nhất quán logic của cấu trúc của các mối quan hệ.

Các chức năng kiểm tra cây B-cây tỷ lệ kèo bóng đá khác nhaubất biếnTrong cấu trúc đại diện của các mối quan hệ cụ thể. Tính chính xác của các chức năng phương thức truy cập đằng sau quét chỉ mục và các hoạt động quan trọng khác phụ thuộc vào các bất biến này luôn giữ. Ví dụ: một số chức năng nhất định tỷ lệ kèo bóng đá, trong số những thứ khác, rằng tất cả các trang B-cây đều có các mục trongHồilogicĐặt hàng (ví dụ: đối với các chỉ tỷ lệ kèo bóng đá B-cây trênText, các tổng chỉ mục nên được đối chiếu từ vựng). Nếu bất biến đặc biệt đó bằng cách nào đó không giữ được, chúng ta có thể mong đợi các tìm kiếm nhị phân trên trang bị ảnh hưởng để hướng dẫn không chính tỷ lệ kèo bóng đá các lần quét chỉ mục, dẫn đến câu trả lời sai cho các truy vấn SQL. Nếu cấu trúc có vẻ hợp lệ, không có lỗi nào được nêu ra.

9934_10199Phần 38.16.3Để biết chi tiết về tỷ lệ kèo bóng đá chức năng hỗ trợ của lớp vận hành.

Không giống như tỷ lệ kèo bóng đá chức năng kiểm tra cây B báo cáo tham nhũng bằng cách tăng lỗi, chức năng kiểm tra heapVerify_HeapamKiểm tra một bảng và cố gắng trả về một tập hợp tỷ lệ kèo bóng đá hàng, một hàng cho mỗi tham nhũng được phát hiện. Mặc dù vậy, nếu tỷ lệ kèo bóng đá cơ sở đóVerify_Heapamdựa vào bản thân bị hỏng, chức năng có thể không thể tiếp tục và thay vào đó có thể gây ra lỗi.

Quyền để thực thiAMCheck10873_11417

F.2.1. Chức năng#

11781_11850

bt_index_checkKiểm tra rằng tỷ lệ kèo bóng đá tiêu của nó, chỉ số B-cây, tôn trọng một loạt các bất biến. Ví dụ sử dụng:

12145_13502

Ví dụ này hiển thị một phiên thực hiện tỷ lệ kèo bóng đá các chỉ mục danh mục lớn nhất trong cơ sở dữ liệutestHồi. tỷ lệ kèo bóng đá sự hiện diện của các bộ dữ liệu Heap là các bộ dữ liệu chỉ mục được yêu cầu cho tập hợp con là các chỉ mục duy nhất. Vì không có lỗi nào được nêu ra, tất cả các chỉ mục được kiểm tra dường như là nhất quán về mặt logic. Đương nhiên, truy vấn này có thể dễ dàng được thay đổi thành cuộc gọibt_index_checkĐối với mọi chỉ mục trong cơ sở dữ liệu nơi tỷ lệ kèo bóng đá được hỗ trợ.

bt_index_checkmua lạiAccessSharelockTrên chỉ tỷ lệ kèo bóng đá đích và mối quan hệ heap mà nó thuộc về. Chế độ khóa này là cùng chế độ khóa được thu được trên các mối quan hệ bằng cách đơn giảnChọncâu lệnh.bt_index_checkKhông tỷ lệ kèo bóng đá các bất biến có mối quan hệ con cái/cha mẹ, nhưng sẽ tỷ lệ kèo bóng đá sự hiện diện của tất cả các bộ dữHeapallIndexedTRUE14625_14729bt_index_checkthường cung cấp sự đánh đổi tốt nhất giữa tính kỹ lưỡng của tỷ lệ kèo bóng đá và giới hạn tác động đến hiệu suất và tính khả dụng của ứng dụng.

14984_15081

bt_index_parent_checkKiểm tra rằng tỷ lệ kèo bóng đá tiêu của nó, một chỉ số B-cây, tôn trọng một loạt các bất biến. Tùy chọn, khiHeapallIndexedĐối số là15444_15450, Hàm tỷ lệ kèo bóng đá sự hiện diện của tất cả các bộ dữ liệu đống nên được tìm thấy trong chỉ mục. Khi tùy chọnrootDescendĐối số làtrue, tỷ lệ kèo bóng đá tìm lại các bộ dữ liệu ở cấp độ lá bằng cách thực hiện một tìm kiếm mới từ trang gốc cho mỗi tuple. Các kiểm tra có thể được thực hiện bởibt_index_parent_check15863_15920bt_index_check. bt_index_parent_check16015_16066bt_index_check: Không giống nhưbt_index_check, bt_index_parent_checkCũng kiểm tra tỷ lệ kèo bóng đá bất biến bao gồm tỷ lệ kèo bóng đá mối quan hệ cha mẹ/conbt_index_parent_checktuân theo quy ước chung về việc nêu lỗi nếu nó tìm thấy sự không nhất quán logic hoặc vấn đề khác.

ASharelockđược yêu cầu trên chỉ tỷ lệ kèo bóng đá đích bởibt_index_parent_check(ASharelockcũng được mua trên quan hệ heap). tỷ lệ kèo bóng đá khóa này ngăn chặn sửa đổi dữ liệu đồng thời từChèn, Cập nhậtXóalệnh. tỷ lệ kèo bóng đá khóa cũng ngăn chặn mối quan hệ cơ bản được xử lý đồng thời bởiVACUUM, cũng như tất cả tỷ lệ kèo bóng đá lệnh tiện ích khác. Lưu ý rằng chức năng chỉ giữ tỷ lệ kèo bóng đá khóa trong khi chạy, không phải cho toàn bộ giao dịch.

bt_index_parent_check17232_17521bt_index_parent_checkKhông thể được sử dụng khi chế độ dự phòng nóng được bật (tức là, trên tỷ lệ kèo bóng đá bản sao vật lý chỉ đọc), không giống nhưbt_index_check.

TIP

bt_index_checkbt_index_parent_checkCả hai thông báo nhật ký đầu ra về quy trình tỷ lệ kèo bóng đá tạiDEBUG1Debug2mức độ nghiêm trọng. Những tin nhắn này cung cấp thông tin chi tiết về quy trình tỷ lệ kèo bóng đá có thể được quan tâm đối vớiPostgreSQL18215_18384

đặt client_min_messages = Debug1;

Trong tương tácPSQLPhiên trước khi chạy truy vấn tỷ lệ kèo bóng đá sẽ hiển thị các tin nhắn về tiến trình tỷ lệ kèo bóng đá với mức độ chi tiết có thể quản lý được.

verify_heapam (quan hệ regclass, on_error_stop boolean, kiểm tra_toast boolean, bỏ qua văn bản, startBlock bigint, endblock bigint, blkno out bigint, offnum out integer, attnum out integer

Kiểm tra một bảng, trình tự hoặc chế độ xem được vật chất hóa cho tham nhũng cấu trúc, trong đó tỷ lệ kèo bóng đá trang trong quan hệ chứa dữ liệu được định dạng không hợp lệ và cho tham nhũng logic, trong đó tỷ lệ kèo bóng đá trang có giá trị cấu trúc nhưng không nhất quán với phần còn lại của cụm cơ sở dữ liệu.

tỷ lệ kèo bóng đá đối số tùy chọn sau đây được nhận ra:

on_error_stop

Nếu đúng, kiểm tra tham nhũng dừng ở cuối khối đầu tiên trong đó có bất kỳ sự cố nào được tìm thấy.

mặc định là sai.

Check_toast

Nếu đúng, các giá trị nướng được kiểm tra đối với bảng bánh mì nướng của quan hệ tỷ lệ kèo bóng đá tiêu.

Tùy chọn này được biết là chậm. Ngoài ra, nếu bảng bánh mì nướng hoặc chỉ tỷ lệ kèo bóng đá của nó bị hỏng, việc kiểm tra nó chống lại các giá trị bánh mì nướng có thể hình dung được máy chủ, mặc dù trong nhiều trường hợp, điều này sẽ chỉ tạo ra lỗi.

Mặc định là sai.

Bỏ qua

nếu khôngKhông20429_2054420564_20577, All-FrozenKhông.

Mặc định làKhông.

StartBlock

Nếu được chỉ định, kiểm tra tham nhũng bắt đầu tại khối được chỉ định, bỏ qua tất cả tỷ lệ kèo bóng đá khối trước đó. Đó là một lỗi để chỉ định mộtStartBlockBên ngoài phạm vi của tỷ lệ kèo bóng đá khối trong bảng đích.

Theo mặc định, kiểm tra bắt đầu ở khối đầu tiên.

EndBlock

Nếu được chỉ định, kiểm tra tham nhũng kết thúc tại khối được chỉ định, bỏ qua tất cả tỷ lệ kèo bóng đá khối còn lại. Đó là một lỗi để chỉ định mộtEndBlockBên ngoài phạm vi của tỷ lệ kèo bóng đá khối trong bảng đích.

Theo mặc định, tất cả tỷ lệ kèo bóng đá khối được kiểm tra.

Đối với mỗi tham nhũng được phát hiện,verify_heapamTrả về một hàng với tỷ lệ kèo bóng đá cột sau:

blkno

Số lượng khối chứa trang bị hỏng.

Offnum

OffsetNumber của Tuple bị hỏng.

Attnum

Số thuộc tính của cột bị hỏng trong tuple, nếu tham nhũng là cụ thể cho một cột chứ không phải toàn bộ tuple.

MSG

Một thông báo mô tả vấn đề được phát hiện.

F.2.2. Không bắt buộc23006_23022tỷ lệ kèo bóng đá#

KhiHeapallIndexedĐối số cho các hàm tỷ lệ kèo bóng đá B-cây làTRUE23317_23450giảHàng Tạo chỉ tỷ lệ kèo bóng đáHoạt động, kiểm tra sự hiện diện của tất cả các bộ dữ liệu chỉ số mới giả định đối với cấu trúc tóm tắt tạm thời, trong bộ nhớ (điều này được xây dựng khi cần trong giai đoạn đầu tiên cơ bản của tỷ lệ kèo bóng đá). Cấu trúc tóm tắtdấu vân tayHồiMỗi tuple được tìm thấy trong chỉ tỷ lệ kèo bóng đá đích. Nguyên tắc cấp cao đằng sauHeapallIndexedtỷ lệ kèo bóng đá là một chỉ mục mới tương đương với chỉ mục mục tiêu hiện có, chỉ phải có các mục có thể tìm thấy trong cấu trúc hiện có.

bổ sungHeapallIndexedPha thêm chi phí đáng kể: tỷ lệ kèo bóng đá thường sẽ mất nhiều lần hơn nhiều lần. Tuy nhiên, không có thay đổi nào đối với các khóa cấp quan hệ có được khiHeapallIndexedtỷ lệ kèo bóng đá được thực hiện.

Cấu trúc tóm tắt bị ràng buộc theo kích thước bằngbảo trì_work_mem. Để đảm bảo rằng không có xác suất 2% không thể phát hiện sự không nhất quán cho mỗi bộ tple hàng đống nên được biểu thị trong chỉ số, cần có khoảng 2 byte bộ nhớ. Khi ít bộ nhớ được cung cấp cho mỗi tuple, khả năng thiếu sự không nhất quán tăng dần. Cách tiếp cận này giới hạn đáng kể chi phí tỷ lệ kèo bóng đá, trong khi chỉ giảm một chút xác suất phát hiện vấn đề, đặc biệt là các cài đặt trong đó tỷ lệ kèo bóng đá được coi là một nhiệm vụ bảo trì thường xuyên. Bất kỳ Tuple vắng mặt hoặc dị dạng nào cũng có cơ hội mới được phát hiện với mỗi lần thử tỷ lệ kèo bóng đá mới.

F.2.3. Sử dụngAMCheckhiệu quả#

AMCheckCó thể có hiệu quả trong việc phát hiện tỷ lệ kèo bóng đá loại chế độ thất bại khác nhauTổng kiểm tra dữ liệusẽ không bắt được. Chúng bao gồm:

  • Sự không nhất quán về cấu trúc do triển khai lớp vận hành không chính tỷ lệ kèo bóng đá.

    Điều này bao gồm tỷ lệ kèo bóng đá vấn đề gây ra bởi tỷ lệ kèo bóng đá quy tắc so sánh của tỷ lệ kèo bóng đá đối thủ hệ điều hành thay đổi. So sánh tỷ lệ kèo bóng đá dữ liệu của một loại có thể có được nhưText26223_26606MajorPhiên bản hệ điều hành đang sử dụng không nhất quán. Sự không nhất quán như vậy thường sẽ chỉ phát sinh trên tỷ lệ kèo bóng đá máy chủ dự phòng và do đó chỉ có thể được phát hiện trên tỷ lệ kèo bóng đá máy chủ dự phòng.

    Nếu một vấn đề như thế này phát sinh, nó có thể không ảnh hưởng đến từng chỉ số riêng lẻ được đặt hàng bằng cách sử dụng một đối chiếu bị ảnh hưởng, đơn giản vìđược lập chỉ tỷ lệ kèo bóng đátỷ lệ kèo bóng đá giá trị có thể có cùng một thứ tự tuyệt đối bất kể sự không nhất quán về hành vi. Nhìn thấyPhần 24.1Phần 24.2Để biết thêm chi tiết về cáchPostgreSQLSử dụng tỷ lệ kèo bóng đá địa phương và đối chiếu hệ điều hành.

  • Sự không nhất quán về cấu trúc giữa các chỉ tỷ lệ kèo bóng đá và các quan hệ heap được lập chỉ tỷ lệ kèo bóng đá (khiHeapallIndexedtỷ lệ kèo bóng đá được thực hiện).

    Không có kiểm tra chéo các chỉ tỷ lệ kèo bóng đá chống lại mối quan hệ heap của chúng trong quá trình hoạt động bình thường. Các triệu chứng tham nhũng nặng có thể tinh tế.

  • 27878_27950PostgreSQLMã phương thức truy cập, mã sắp xếp hoặc mã quản lý giao dịch.

    tỷ lệ kèo bóng đá tự động về tính toàn vẹn cấu trúc của các chỉ mục đóng vai trò trong thử nghiệm chung của mới hoặc đề xuấtPostgreSQLCác tính năng có thể cho phép một sự không nhất quán hợp lý được giới thiệu. tỷ lệ kèo bóng đá cấu trúc bảng và thông tin trạng thái giao dịch và tầm nhìn liên quan đóng vai trò tương tự. Một chiến lược thử nghiệm rõ ràng là gọiAMCheckHàm liên tục khi chạy tỷ lệ kèo bóng đá bài kiểm tra hồi quy tiêu chuẩn. Nhìn thấyPhần 33.1Để biết chi tiết về chạy tỷ lệ kèo bóng đá bài kiểm tra.

  • 28769_28859

    Lưu ý rằngAMCHECKKiểm tra một trang như được biểu thị trong một số bộ đệm bộ nhớ được chia sẻ tại thời điểm tỷ lệ kèo bóng đá nếu chỉ có một bộ đệm được chia sẻ khi truy cập vào khối. Do đó,AMCHECKKhông nhất thiết phải kiểm tra dữ liệu được đọc từ hệ thống tệp tại thời điểm tỷ lệ kèo bóng đá. Lưu ý rằng khi kiểm tra được bật,AMCheckCó thể gây lỗi do lỗi tổng kiểm tra khi một khối bị hỏng được đọc thành bộ đệm.

  • Tham nhũng do RAM bị lỗi hoặc hệ thống con bộ nhớ rộng hơn.

    PostgreSQLKhông bảo vệ chống lại các lỗi bộ nhớ có thể chính tỷ lệ kèo bóng đá và giả sử bạn sẽ hoạt động bằng cách sử dụng RAM sử dụng mã sửa lỗi tiêu chuẩn công nghiệp (ECC) hoặc bảo vệ tốt hơn. Tuy nhiên, bộ nhớ ECC thường chỉ miễn nhiễm với các lỗi đơn lẻ và không nên được giả định để cung cấpTuyệt đốiBảo vệ chống lại những thất bại dẫn đến tham nhũng bộ nhớ.

    KhiHeapallIndexedtỷ lệ kèo bóng đá được thực hiện, nhìn chung có cơ hội tăng đáng kể để phát hiện các lỗi đơn bit, vì sự bình đẳng nhị phân nghiêm ngặt được kiểm tra và các thuộc tính được lập chỉ mục trong đống được kiểm tra.

30282_30470Tổng kiểm tra trang dữ liệu.

Các trang quan hệ được định dạng chính tỷ lệ kèo bóng đá, nhất quán nội bộ và chính tỷ lệ kèo bóng đá so với tổng kiểm tra nội bộ của chúng vẫn có thể chứa tham nhũng logic. Như vậy, loại tham nhũng này không thể được phát hiện vớiTổng kiểm tra. Các ví dụ bao gồm các giá trị nướng trong bảng chính thiếu một tỷ lệ kèo bóng đá nhập tương ứng trong bảng bánh mì nướng và các bộ dữ liệu trong bảng chính với ID giao dịch cũ hơn ID giao dịch hợp lệ lâu đời nhất trong cơ sở dữ liệu hoặc cụm.

Nhiều nguyên nhân của tham nhũng logic đã được quan sát thấy trong tỷ lệ kèo bóng đá hệ thống sản xuất, bao gồm tỷ lệ kèo bóng đá lỗi trongPostgreSQL31259_31345

Mối quan hệ tham nhũng liên quan nhiều nhất trong môi trường sản xuất trực tiếp, chính tỷ lệ kèo bóng đá là các môi trường giống như các hoạt động rủi ro cao ít được chào đón nhất. Vì lý do này,verify_heapam31564_31774kèo bóng đá cúp c2: Tàđược thực hiện và có thể có vấn đề nếu chính các danh tỷ lệ kèo bóng đá bị hỏng.

Nói chung,AMCHECKChỉ có thể chứng tỷ lệ kèo bóng đá sự hiện diện của tham nhũng; nó không thể chứng tỷ lệ kèo bóng đá sự vắng mặt của nó.

F.2.4. Sửa chữa tham nhũng#

Không có lỗi liên quan đến tham nhũng được nêu ra bởiAMCHECKAMCheck32524_32637AMCheckLỗi thường được yêu cầu.

Không có phương pháp chung nào để sửa chữa tỷ lệ kèo bóng đá vấn đềAMCHECKPhát hiện. Một lời giải thích cho nguyên nhân gốc rễ của vi phạm bất biến nên được tìm kiếm.PageInspectCó thể đóng một vai trò hữu ích trong việc chẩn đoán tham nhũng đóAMCHECKPhát hiện. MỘTReindexcó thể không hiệu quả trong việc sửa chữa tham nhũng.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính tỷ lệ kèo bóng đá, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.