Chủ Nhật, 18 tháng 6, 2023

Các khái niệm cơ bản trong Backup, phân biệt Incomplete Recovery và Complete Recovery trong Oracle Database

Mục đích: Chia sẻ với các bạn Các khái niệm cơ bản trong Backup, phân biệt  Incomplete Recovery và Complete Recovery trong Oracle Database

NỘI DUNG

  • Giới thiệu
  • Phân biệt khái niệm Incomplete Recovery và Complete Recovery
  • Vai trò ca Archived redo log trong backup
  • TÓM TẮT
  • THAM KHẢO THÊM

GIỚI THIỆU

Cơ sở dữ liệu là một trong những tài sản quý giá của doanh nghiệp. Đảm bảo an toàn cho cơ sở dữ liệu là nhiệm vụ quan trọng. Khi có sự cố về cơ sở dữ liệu xảy ra, yêu cầu đặt lên hàng đầu là phải nhanh chóng khôi phục cơ sở dữ liệu, giảm tối đa thời gian hệ thống bị downtime cũng như các vấn đề mất mát dữ liệu. Hiện nay, tại các doanh nghiệp tại Việt Nam và trên thế giới, phần lớn các nghiệp vụ quan trọng đều sử dụng cơ sở dữ liệu Oracle. Tuy nhiên công tác Backup và Recovery trong cơ sở dữ liệu Oracle nhìn chung phức tạp hơn so với các cơ sở dữ liệu khác. Bài viết này giới thiệu các khái niệm cơ bản trong sao lưu phục hồi dữ liệu Oracle, nhằm giúp cho những người mới tiếp cận hệ thống Oracle có cái nhìn tổng quan về công tác này.

Các khái niệm cơ bản trong Backup & Recovery database Oracle

Phân biệt khái niệm Incomplete Recovery và Complete Recovery

Các khái niệm đầu tiên chúng ta cần phải phân biệt là Incomplete Recovery và Complete Recovery. Cả hai thuật ngữ này được sử dụng mô tả các phương pháp khác nhau để khôi phục cơ sở dữ liệu trong trường hợp "media failure" - là khi các tập tin dữ liệu của database bị lỗi và không thể khởi động lại Oracle Instance.

Complete Recovery: Khi thực hiện Complete Recovery thì cơ sở dữ liệu sẽ được khôi phục đến thời điểm mới nhất, bao gồm tất cả các transaction đã hoàn thành và các dữ liệu đã được chỉnh sửa cho đến thời gian hiện tại. Về bản chất, khi thực hiện Complete Recorvery, chúng ta khôi phục cơ sở dữ liệu đến thời điểm gần hiện tại nhất.

Incomplete Recovery: Khác với Complete Recovery, Incomplete Recovery đưa database đến một thời điểm cụ thể trong quá khứ. Incomplete Recovery còn được gọi là Point in Time Recovery (PITR). Chúng ta hãy cùng nhìn vào ví dụ bên dưới, trong khoảng thời gian từ 2h đến 8h. Từ 2h đến 4h database hoạt động bình thường. Đến 4h hệ thống tạo 1 bản full backup, từ 4h đến 8h database hoạt động bình thường, 8h hệ thống lại tạo một bản backup.

Cơ sở dữ liệu trong khoảng thời gian 2h đến 8h

Tuy nhiên vào khoảng lúc 7h tối, một nhân viên trong công ty vô tình xóa một bảng dữ liệu cực kỳ quan trọng, có thể là tiền thưởng cho quý tới, hoặc có thể một dữ liệu chứa lương của nhân viên. Giả sử bạn là DBA và bạn không nắm bắt được vấn đề đó cho đến 8h tối, bạn thực hiện một bản backup full khác. Sau 8h tối, bạn nhận được yêu cầu của lãnh đạo, cần khôi phục database tại thời điểm 6h59 tối trước lúc dữ liệu bị xóa, lúc này nếu thực hiện Complete Recovery thì không thể khôi phục được dữ liệu đã bị xóa, vì Complete Recovery khôi phục cơ sở dữ liệu đến thời điểm gần nhất hiện tại. Trong khi hiện tại đã hơn 8h tối và dữ liệu bị xóa vào thời điểm 7h tối. Để khôi phục dữ liệu vào lúc 6h59 tối người quản trị cần phải thực hiện Incomplete Recorvery - Point in time recovery.

Dữ liệu trong khoảng thời hạn thực hiện PITR đến hiện tại sẽ bị mất

Khi thực hiện Incomplete Recovery thì các transaction, các nội dung chỉnh sửa giữa thời điểm PITR đến thời gian hiện tại sẽ bị mất (để không bị mất chúng ta tạo 1 DB mới, có thể 1 node trên node 2 chẳng hạn và khôi phục dữ liệu đến thời điểm 6h59 tối; có thể khôi phục sang máy chủ khác). Tuy nhiên trong một vài trường hợp, ví dụ đối với các thao tác xóa nhầm dữ liệu hay hệ thống bị attacker xâm nhập và thay đổi hàng loạt dữ liệu thì việc thực hiện Incomplete Recovery là hết sức cần thiết.

Vai trò ca Archived redo log trong backup

Một khái niệm quan trọng khác cần phải biết trong việc backup và recovery database là vai trò của Archived redo log hoặc viết tắt là Archived log được dùng để khôi phục Oracle Database.

Như chúng ta biết, Oracle redo logs chứa log của tất cả transactions đã được applied đến Oracle database. Mỗi câu lệnh Insert, Delete hoặc Update đều được ghi lại trong redo logs. Về cơ bản chúng là log của tất cả thay đổi database. Oracle sử dụng redo logs cho tính nhất quán nội bộ. Khi Oracle hoàn thành việc ghi một redo log, nó thực hiện redo log switch và bắt đầu viết vào redo log kế tiếp.

Quá trình ghi vào redo log group

Tại thời điểm này, giả định database đang ở chế độ Archive mode, khi 3 group redo log đầy, thì nó sẽ thực hiện ghi ra Archived redo logs.

Quá trình ghi redo log ra Archived redo log

Archive log có vai trò quan trọng trong việc recovery database, đặc biệt là khi thực hiện Point in Time Recovery. Chúng ta có thể kết hợp bản database backup cộng thêm một hoặc nhiều Archive redo log files để restore database đến một thời gian chỉ định.

Chúng ta sẽ bắt đầu với một ví dụ đơn giản, giả sử chúng ta muốn restore database vào thời điểm 2h04 pm. Đầu tiên chúng ta sẽ bắt đầu restore database đến bản full backup gần nhất.

Theo như hình dưới, giả sử bản backup full gần nhất là vào lúc 12h00 pm. Quá trình khôi phục cơ sở dữ liệu về thời điểm bản backup 12h00 pm gọi là restore. Tuy nhiên chúng ta muốn khôi phục database đến 2h04 pm thì chúng ta phải apply những thay đổi của database từ Archived redo log files (quá trình này gọi là recovery). Kết hợp sử dụng cả database backup file và Archive redo log files là một sự cần thiết trong công tác backup và recovery.

Dữ liệu được backup vào thời điểm 12h00

TÓM TẮT

Cuối cùng, để thực hiện Point In Time Recovery trong Oracle, hệ thống phải thỏa mãn các điều kiện sau: 

  • Database phải hoạt động chế độ Archive log mode; 
  • Phải có bản backup database từ trước thời điểm thực hiện PITR; 
  • Phải có đầy đủ Archive redo log trong khoảng thời gian thực hiện bản backup đến thời gian PITR để apply những thay đổi xảy ra. 

Như trong ví dụ trên, chúng ta muốn khôi phục database vào thời điểm 6h59 tối, giả sử chúng ta có bản backup vào lúc 4h00 chiều thì chúng ta phải có đầy đủ các Archive redo log sinh ra trong khoảng thời gian từ 4h đến 6h59 tối.

THAM KHẢO THÊM

Quy trình khôi phục Point-in-Time DB

Hướng dẫn cấu hình tham số backup RMAN


=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
Các khái niệm cơ bản trong Backup, phân biệt  Incomplete Recovery và Complete Recovery trong Oracle Database, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master