IMS DB - Phục hồi

Người quản trị cơ sở dữ liệu cần lập kế hoạch khôi phục cơ sở dữ liệu trong trường hợp hệ thống bị lỗi. Lỗi có thể có nhiều loại như treo ứng dụng, lỗi phần cứng, lỗi nguồn, v.v.

Phương pháp tiếp cận đơn giản

Một số cách tiếp cận đơn giản để khôi phục cơ sở dữ liệu như sau:

  • Tạo các bản sao lưu định kỳ của các tập dữ liệu quan trọng để tất cả các giao dịch được đăng trên các tập dữ liệu đều được giữ lại.

  • Nếu tập dữ liệu bị hỏng do lỗi hệ thống, sự cố đó sẽ được khắc phục bằng cách khôi phục bản sao lưu. Sau đó, các giao dịch tích lũy được đăng lại vào bản sao lưu để cập nhật chúng.

Nhược điểm của Phương pháp Tiếp cận Đơn giản

Những nhược điểm của cách tiếp cận đơn giản để khôi phục cơ sở dữ liệu như sau:

  • Đăng lại các giao dịch đã tích lũy tiêu tốn rất nhiều thời gian.

  • Tất cả các ứng dụng khác cần phải đợi thực thi cho đến khi quá trình khôi phục kết thúc.

  • Phục hồi cơ sở dữ liệu lâu hơn phục hồi tệp, nếu các mối quan hệ chỉ mục thứ cấp và logic có liên quan.

Quy trình chấm dứt bất thường

Chương trình DL / I bị treo theo cách khác với cách chương trình chuẩn bị treo vì chương trình chuẩn được thực thi trực tiếp bởi hệ điều hành, trong khi chương trình DL / I thì không. Bằng cách sử dụng một quy trình kết thúc bất thường, hệ thống sẽ can thiệp để quá trình khôi phục có thể được thực hiện sau khi kết thúc bất thường (ABEND). Quy trình chấm dứt bất thường thực hiện các hành động sau:

  • Đóng tất cả các tập dữ liệu
  • Hủy tất cả các công việc đang chờ xử lý trong hàng đợi
  • Tạo kết xuất lưu trữ để tìm ra nguyên nhân gốc rễ của ABEND

Hạn chế của quy trình này là nó không đảm bảo dữ liệu đang sử dụng có chính xác hay không.

DL / I Log

Khi chương trình ứng dụng TRỞ LÊN, cần phải hoàn nguyên các thay đổi do chương trình ứng dụng thực hiện, sửa lỗi và chạy lại chương trình ứng dụng. Để làm điều này, cần phải có nhật ký DL / I. Đây là những điểm chính về ghi nhật ký DL / I -

  • Một DL / I ghi lại tất cả các thay đổi được thực hiện bởi một chương trình ứng dụng trong một tệp được gọi là tệp nhật ký.

  • Khi chương trình ứng dụng thay đổi một đoạn, ảnh trước và ảnh sau của nó được tạo bởi DL / I.

  • Những hình ảnh phân đoạn này có thể được sử dụng để khôi phục các phân đoạn, trong trường hợp chương trình ứng dụng bị treo.

  • DL / I sử dụng một kỹ thuật gọi là ghi nhật ký ghi trước để ghi lại các thay đổi của cơ sở dữ liệu. Với ghi nhật ký ghi trước, một thay đổi cơ sở dữ liệu được ghi vào tập dữ liệu nhật ký trước khi nó được ghi vào tập dữ liệu thực.

  • Vì nhật ký luôn ở trước cơ sở dữ liệu, các tiện ích khôi phục có thể xác định trạng thái của bất kỳ thay đổi cơ sở dữ liệu nào.

  • Khi chương trình thực hiện một lệnh gọi để thay đổi một phân đoạn cơ sở dữ liệu, DL / I sẽ xử lý phần ghi nhật ký của nó.

Phục hồi - Tiến và lùi

Hai phương pháp phục hồi cơ sở dữ liệu là:

  • Forward Recovery - DL / I sử dụng tệp nhật ký để lưu trữ dữ liệu thay đổi. Các giao dịch tích lũy được đăng lại bằng cách sử dụng tệp nhật ký này.

  • Backward Recovery- Phục hồi ngược còn được gọi là khôi phục dự phòng. Các bản ghi nhật ký cho chương trình được đọc ngược và tác động của chúng được đảo ngược trong cơ sở dữ liệu. Khi quá trình dự phòng hoàn tất, cơ sở dữ liệu ở trạng thái giống như trước khi bị lỗi, giả sử rằng không có chương trình ứng dụng nào khác thay đổi cơ sở dữ liệu trong thời gian đó.

Trạm kiểm soát

Điểm kiểm tra là một giai đoạn mà các thay đổi cơ sở dữ liệu do chương trình ứng dụng thực hiện được coi là hoàn chỉnh và chính xác. Dưới đây là những điểm cần lưu ý về một trạm kiểm soát -

  • Các thay đổi cơ sở dữ liệu được thực hiện trước điểm kiểm tra gần đây nhất sẽ không bị khôi phục ngược bằng cách khôi phục.

  • Các thay đổi cơ sở dữ liệu được ghi lại sau điểm kiểm tra gần đây nhất không được áp dụng cho bản sao hình ảnh của cơ sở dữ liệu trong quá trình khôi phục chuyển tiếp.

  • Sử dụng phương pháp điểm kiểm tra, cơ sở dữ liệu được khôi phục về tình trạng của nó tại điểm kiểm tra gần đây nhất khi quá trình khôi phục hoàn tất.

  • Mặc định cho các chương trình hàng loạt là điểm kiểm tra là phần bắt đầu của chương trình.

  • Một trạm kiểm soát có thể được thiết lập bằng cách gọi trạm kiểm soát (CHKP).

  • Lệnh gọi điểm kiểm tra khiến bản ghi điểm kiểm tra được ghi trên nhật ký DL / I.

Dưới đây là cú pháp của cuộc gọi CHKP -

CALL 'CBLTDLI' USING DLI-CHKP
                     PCB-NAME
                     CHECKPOINT-ID

Có hai phương pháp kiểm tra -

  • Basic Checkpointing - Nó cho phép lập trình viên đưa ra các lệnh gọi điểm kiểm tra mà tiện ích khôi phục DL / I sử dụng trong quá trình xử lý khôi phục.

  • Symbolic Checkpointing- Đây là một hình thức kiểm tra nâng cao được sử dụng kết hợp với cơ sở khởi động lại mở rộng. Kết hợp điểm kiểm tra tượng trưng và khởi động lại mở rộng để lập trình viên ứng dụng mã hóa các chương trình để chúng có thể tiếp tục xử lý tại điểm ngay sau điểm kiểm tra.