Giới thiệu các thuật ngữ thường gặp khi backup

Backup database là một trong các công việc quan trọng nhất của người quản trị CSDL (Database Administrator – DBA). Hẳn là khi backup database, bạn thường nghe đến các thuật ngữ sau:

   Backup toàn bộ database (Full backup)
   Backup một phần database (Partial backup)
   Backup tăng tiến (Incremental backup)
   Backup nhất quán dữ liệu (Consistent backup)
   Backup không nhất quán dữ liệu (Inconsistent backup)

Trong bài viết này, tôi sẽ giúp các bạn hiểu ý nghĩa của chúng.

Ý nghĩa của các thuật ngữ này gần như giống nhau trong tất cả RDBMS. Tôi tin là bài viết này sẽ giúp bạn áp dụng được cho rất nhiều RDBMS đấy.


   Full backup – Backup toàn bộ database

    Full backup là backup tất cả dữ liệu trong database, thường là về mặt vật lý. Tức là bản backup sẽ bao gồm tất cả các file liên quan trong database: data file, transaction log, control file,… Do đây là bản backup đầy đủ nhất, nên thời gian để thực hiện backup này thường khá mất thời gian, do đó người ta thường không thực hiện full backup hàng ngày, mà thường là hàng tuần, thậm chi là hàng tháng.


   Partial backup – Backup một phần database.

Partial backup là backup một phần nào đó trong database. Thông thường khi nhắc đến partial backup, DBA thường hiểu là backup 1 thành phần vật lý nào đó trong database, ví dụ như: datafile, filegroup, tablespace, … (theo cách gọi của các RDBMS), chứ ít khi hiểu là backup các đối tượng ở mức độ logic như table, index.

Đọc thêm  Xử lý thế nào khi phân vùng WAL file bị đầy

Việc thực hiện partial backup thường không có tính chất định kỳ như full backup, mà thường xảy ra trong 1 số tình huống như sau:

   Bạn chuẩn bị có tác động gì đó đến 1 thành phần trong database, có thể gây nguy hiểm cho thành phần đó. Ví dụ: Bạn thực hiện dọn dẹp dữ liệu, khử phân mảnh 1 tablespace,… Để an toàn mà không bị quá mất thời gian để full backup, bạn sẽ thực hiện partial backup.
   Partial backup cũng là 1 phương thức an toàn để di chuyển 1 thành phần trong database sang 1 vị trí khác. Ví dụ: Bạn muốn di chuyển datafile từ vị trí này sang một vị trí khác. Partial backup thường sẽ được sử dụng.


   Incremental backup – Backup tăng tiến

Nếu như full backup là bản backup đầy đủ các thành phần của database, thì bản backup tăng tiến là bản backup những thay đổi của database kể từ bản backup full gần nhất.

incremental-backup

Thuật ngữ incremental backup, ở hầu hết hệ quản trị CSDL quan hệ (RDBMS) có ý nghĩa là backup những thay đổi. Nhưng thay đổi so với cái gì (so với bản backup full gần nhất hay bản backup incremental gần nhất,…) thì giữa các RDBMS có đôi chút khác biệt.

VD: Oracle coi Incremental backup chia làm 2 loại: Differential backup (backup những thay đổi kể từ bản backup incremental gần nhất) và Cummulative backup (backup thay đổi kể từ bản backup full gần nhất). SQL Server thì chỉ có Differential backup (cũng là bản backup thay đổi kể từ bản backup full gần nhất) và transaction log backup (Backup những file transaction log là những file ghi nhận thay đổi).

Nói chung, tất cả các thuật ngữ nói trên đều có ý chỉ Incremental backup.

Thông thường, người ta sẽ cho chạy incremental backup hàng ngày, và full backup vào 1 ngày trong tuần có ít hoạt động (Ví dụ: Chủ Nhật)

Đọc thêm  Thay đổi tên schema trong PostgreSQL

   Inconsistence backup – Backup không nhất quán dữ liệu

Tôi có 1 tình huống như sau: Giả sử lúc 10h, bạn chạy lệnh backup database, trong khi database vẫn đang chạy, dữ liệu vẫn thay đổi. Câu lệnh backup chạy đến 12h mới xong. Vậy, dữ liệu trong bản backup đó là dữ liệu lúc 10h hay dữ liệu lúc 12h?

Câu trả lời là cả 2. Có cả dữ liệu lúc 10h và cả dữ liệu lúc 12h trong đó. Dữ liệu trong bản backup không nhất quán, do đó bản backup trong khi database đang chạy gọi là Inconsistent backup (Một cách gọi khác là Hot backup)

Vậy làm sao mà khôi phục lại database từ bản Inconsistent backup được trong khi dữ liệu trong đó không nhất quán. Đó là lúc cơ chế archive log mode tham chiến. Để hiểu rõ vấn đề này, tôi sẽ làm ở 1 bài viết khác, hẹn bạn ở bài viết sau nhé.

Thông thường, DBA vẫn backup database trong khi database vẫn đang hoạt động, nên thường thì bản backup đó là Inconsistent backup đấy.


   Consistent backup – Backup nhất quán dữ liệu

Trái ngược lại với Inconsistent backup Consistent backup. Đây là bản backup được thực hiện sau khi đã tắt database. Lúc này dữ liệu không có thay đổi gì nữa, đang ở trạng thái nhất quán (consistent) nên bản backup được gọi là Consistent backup hay Cold backup.

Trên các database thực tế, rất hiếm khi chúng ta có thể thực hiện được các bản backup kiểu này.

 

Tùy vào hệ quản trị CSDL mà các tên gọi của các thuật ngữ có thể khác đi đôi chút, nhưng ý nghĩa bản chất gần như là giống nhau. Theo kinh nghiệm của tôi, tôi thường đọc các tài liệu do Oracle viết, rất đầy đủ và chi tiết, ví dụ như tài liệu sau

Đọc thêm  12c New Features - Hướng dẫn kỹ thuật Remote Clone PDB

https://docs.oracle.com/cd/B10501_01/server.920/a96519/strategy.htm

Bạn có thể tham khảo nó, chúc bạn thành công.

Nguồn: https://dangxuanduy.com/

Xin cho tôi được biết, bạn cảm thấy bài viết này như thế nào? Ý kiến của bạn sẽ giúp tôi nâng cao chất lượng bài viết của mình.

    Hãy chia sẻ bài viết này nếu bạn thấy có ích nhé
    0 0 votes
    Article Rating
    Subscribe
    Notify of
    guest
    0 Comments
    Inline Feedbacks
    View all comments