Kiến thức quản trị

Phân biệt Complete Recovery và Incomplete Recovery

Phân biệt Complete Recovery và Incomplete Recovery

Để trở thành DBA chuyên nghiệp, sẵn sàng ứng phó với các sự cố có thể xảy ra, bạn cần nắm chắc những khái niệm và chiến lược sao lưu, khôi phục dữ liệu.
Hôm nay tôi sẽ chia sẻ 02 phương án khôi phục dữ liệu mà mỗi DBA thường phải quyết định trong các trường hợp xử lý sự cố do hỏng phần cứng: Complete Recovery và Incomplete Recovery.

A. Tình huống giả định

  1. Giả sử Database của bạn được cấu hình backup định kỳ vào 12h đêm mỗi ngày. Database của bạn hoạt động ở trạng thái Archive log.
  2. Thời điểm 9h sáng ngày thứ 2 bạn phát hiện Cơ sở dữ liệu gặp sự cố nghiêm trọng (ví dụ hỏng ổ cứng dẫn đến mất 01 số data files).
  3. Bạn quyết định khôi phục lại dữ liệu từ bản backup gần nhất (bản backup lúc 12h đêm ngày Chủ Nhật).

B. Phương án xử lý

Trường hợp 1: Nếu bạn có đầy đủ tất cả archive log từ thời điểm bạn backup đến thời điểm 9h sáng (thời điểm xảy ra lỗi). Quá trình xử lý sự cố của bạn sẽ như sau:

  1. Bước 1: Bạn restore toàn bộ data files trở lại thời điểm 12h đêm ngày Chủ Nhật.
  2. Bước 2: Thực hiện quá trình recovery, cập nhật tất cả những thay đổi từ lúc 12h đêm đến thời điểm 9h sáng (các thay đổi này được lưu trong các archive log sinh ra từ 12h đêm ngày Chủ Nhật đến thời điểm 9h sáng ngày thứ 2 + thông tin trong online redo log).
  3. Bước 3: Database instance sẽ được bật, thời điểm này Database của bạn chứa cả những dữ liệu đã commit và dữ liệu chưa commit. Hệ thống sẽ tự động lấy thông tin trong Undo để rollback tất cả những dữ liệu chưa được commit.
  4. Kết thúc của toàn bộ tiến trình: Hệ thống của bạn được khôi phục lại toàn bộ đến thời điểm xảy ra sự cố. Toàn bộ quá trình này gọi là tiến trình COMPLETE RECOVERY

Cách tìm kiếm các Database instance đang hoạt động.

Trường hợp 2: Bạn không có trọn vẹn những archive log từ thời điểm backup đến thời điểm xảy ra sự cố. Giả sử bạn chỉ có archive log từ 12h đêm Chủ Nhật đến 6h sáng ngày thứ 2. Quá trình xử lý sự cố của bạn sẽ như sau:

  1. Bước 1: Bạn restore toàn bộ data files trở lại thời điểm 12h đêm ngày Chủ Nhật.
  2. Bước 2: Thực hiện tiến trình recovery, cật nhật dữ liệu từ thời điểm 12h đêm ngày Chủ Nhật đến thời điểm 6h sáng ngày thứ 2. Bạn chấp nhận mất dữ liệu từ 6h sáng đến 9h sáng do không có đủ archive log trong khoảng thời gian này.
  3. Bước 3: Database instance của bạn sẽ được bật, thời điểm này Database của bạn chứa cả những dữ liệu đã commit và dữ liệu chưa commit. Hệ thống sẽ tự động lấy thông tin trong Undo để rollback tất cả những dữ liệu chưa được commit.
  4. Kết thúc toàn bộ tiến trình: Bạn chỉ có thể khôi phục dữ liệu đến thời điểm 6h sáng thứ 2 (mất dữ liệu từ lúc 6h sáng đến 9h sáng). Toàn bộ tiến trình này gọi là tiến trình INCOMPLETE RECOVERY (hay còn gọi là Point-in-Time Recovery).

Thông qua tình huống giả định và 2 phương án xử lý như trên, hi vọng các bạn sẽ hiểu rõ, Phân biệt Complete Recovery và Incomplete Recovery và áp dụng tốt trong công việc của mình!

Trần Quốc Huy

 

 

Leave a Reply

avatar
  Subscribe  
Notify of