Mục lục
1. 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.
2. 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.
3. 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.
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.
4. 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.
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)
5. 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.
6. Consistent backup – Backup nhất quán dữ liệu
Trái ngược lại với Inconsistent backup là 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
https://docs.oracle.com/cd/B10501_01/server.920/a96519/strategy.htm
Nguồn: https://dangxuanduy.com/
Hiện tại, tôi có tổ chức đều đặn các khóa học về quản trị Oracle Database, tôi sẽ để thông tin ở đây, để bạn nào quan tâm về lịch học cũng như chương trình học có thể theo dõi nhé.
KHOÁ DÀNH CHO NGƯỜI MỚI
KHÓA HỌC: QUẢN TRỊ ORACLE DATABASE THẬT LÀ ĐƠN GIẢN (ADMIN 1)
CÁC KHOÁ NÂNG CAO:
KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ KIẾN TRÚC MULTITENANT 12c
KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ HỆ THỐNG DATA GUARD
CÁC KHOÁ COMBO:
COMBO 1: ADMIN 1 + MULTITENANT 12c
COMBO 3: ADMIN 1 + MULTITENANT 12c + DATA GUARD
LỊCH HỌC:
Mời bạn xem tại đây: LỊCH HỌC CÁC LỚP ORACLE
ĐĂNG KÝ:
https://forms.gle/MtCAoRQFenP886y79
Hãy tham gia group “Kho tài liệu kiến thức database” để cùng học hỏi và chia sẻ nhé.