Cam kết so với Cam kết nhanh so với Cam kết Dọn dẹp trong Cơ sở dữ liệu Oracle


12

Tôi đã tự hỏi liệu ai đó có thể xác minh sự hiểu biết của tôi về sự khác biệt giữa 3 điều khoản đó có liên quan đến Cơ sở dữ liệu Oracle hay không.

Nhiều nguồn gây nhầm lẫn các điều khoản này và không giải thích chi tiết về chúng vì vậy việc tìm kiếm thông tin là một chút thách thức.

Từ những gì tôi thu thập được:

  1. Cam kết và cam kết nhanh là cùng một điều chính xác, tất cả các cam kết là cam kết nhanh.
  2. Một cam kết nhanh về cơ bản chỉ cập nhật cờ trong bảng giao dịch của tiêu đề phân đoạn hoàn tác / khôi phục để cho biết rằng giao dịch đã được cam kết. Tuy nhiên, khối thực tế không được xem xét lại có nghĩa là địa chỉ byte hoàn tác (UBA) trong danh sách giao dịch quan tâm (ITL) nằm trong tiêu đề của khối dữ liệu vẫn trỏ đến bảng giao dịch của phân đoạn hoàn tác tương ứng. Hơn nữa, các byte khóa của các hàng tương ứng không được giải phóng và số lượng khóa trong ITL không thay đổi (các hàng vẫn bị khóa).
  3. Trong phần xóa sạch cam kết, khối được xem xét lại và ITL được cập nhật với SCN cam kết. Tuy nhiên, số lượng khóa trong ITL và byte khóa được lưu trữ với mỗi hàng vẫn không được cập nhật (hàng vẫn bị khóa giống như trong cam kết nhanh), điều này không tạo ra làm lại ngay cả khi khối bị thay đổi.
  4. Các khối được cam kết bình thường (== cam kết nhanh) sẽ trải qua Chặn khối bị trì hoãn khi chúng được chạm vào lần tiếp theo (và tạo lại).
  5. Các khối đã trải qua quá trình dọn dẹp cam kết sẽ trải qua Xóa nhật ký khối bị trì hoãn khi chúng được chạm vào lần tiếp theo (và tạo lại).

Hy vọng ai đó có thể xác minh những điểm này! Cảm ơn!

Câu trả lời:


6

Bạn có những điều cơ bản đúng. Chỉ có một loại cam kết (không bình thường , nhanh ...).

từ các khái niệm doc :

Khi một giao dịch được thực hiện, các hành động sau đây xảy ra:

  • Số thay đổi hệ thống (SCN) được tạo cho CAM KẾT.

    Bảng giao dịch nội bộ cho các bản ghi không gian bảng hoàn tác được liên kết mà giao dịch đã cam kết. SCN duy nhất tương ứng của giao dịch được chỉ định và ghi lại trong bảng giao dịch. Xem "Cấp cách ly nối tiếp".

  • Quá trình ghi nhật ký (LGWR) ghi các mục nhật ký làm lại còn lại trong bộ đệm nhật ký làm lại vào nhật ký làm lại trực tuyến và ghi SCN giao dịch vào nhật ký làm lại trực tuyến. Sự kiện nguyên tử này cấu thành cam kết của giao dịch.

  • Cơ sở dữ liệu Oracle phát hành các khóa được giữ trên các hàng và bảng.

    Người dùng bị mê hoặc chờ đợi trên các khóa được giữ bởi giao dịch không được cam kết được phép tiến hành công việc của họ.

  • Cơ sở dữ liệu Oracle xóa các điểm lưu trữ.

  • Cơ sở dữ liệu Oracle thực hiện xóa sạch cam kết.

    Nếu các khối được sửa đổi chứa dữ liệu từ giao dịch đã cam kết vẫn còn trong SGA và nếu không có phiên nào khác sửa đổi chúng, thì cơ sở dữ liệu sẽ xóa thông tin giao dịch liên quan đến khóa khỏi các khối. Lý tưởng nhất, CAM KẾT dọn sạch các khối để một CHỌN tiếp theo không phải thực hiện nhiệm vụ này.

Vì vậy, dọn dẹp (đầy đủ với làm lại) sẽ được thực hiện trong quá trình cam kết nếu các khối vẫn còn trong SGA.

Trong các hệ thống đang hoạt động, thông thường các khối có giao dịch không được ghi sẽ được ghi vào đĩa và được xóa từ SGA. Trong trường hợp này, khối được giữ nguyên và truy vấn tiếp theo chạm vào khối sẽ thực hiện xóa khối bị trì hoãn (điểm 5 của bạn không xảy ra trong mọi trường hợp).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.