Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "CNTT" các nội dung bạn quan tâm.

Bài 32. Backup database với mysqldump và pg_dump

ICT

1. Vì sao logical backup vẫn là “xương sống” của backup database?

Dù có:

  • Snapshot

  • Replication

  • Cluster

Thì trong các kịch bản:

  • Mất dữ liệu logic

  • Ransomware

  • Phục hồi sang môi trường khác

  • Audit, pháp lý

Logical backup vẫn là lựa chọn an toàn và độc lập nhất.

📌 mysqldumppg_dump không nhanh nhất, nhưng ổn định, đáng tin và có thể restore ở hầu hết mọi nơi.


2. Khi nào BẮT BUỘC phải dùng mysqldump / pg_dump?

  • Off-site backup

  • Retention dài hạn (7-4-12-5)

  • Phục hồi chọn lọc table / schema

  • Migration

  • Tuân thủ, kiểm toán

📌 Snapshot không thay thế được các kịch bản này.


3. Tổng quan mysqldump (MySQL / MariaDB)

3.1. Backup được những gì?

  • Database

  • Table

  • View

  • Trigger

  • Stored procedure / function

  • Event

  • User & privilege (khi dump đúng cách)

📌 Không chỉ là dữ liệu bảng.


3.2. Nguyên tắc dump an toàn trên production

  • Không khóa lâu

  • Có transaction

  • Dump nhất quán

📌 Dump sai có thể làm chậm hoặc treo hệ thống.


3.3. Những thành phần PHẢI backup kèm theo

  • User database

  • Quyền truy cập

  • Charset / collation

  • Timezone

📌 Restore thiếu user là lỗi rất phổ biến.


4. Tổng quan pg_dump (PostgreSQL)

4.1. Đặc điểm nổi bật

  • Snapshot logic nhất quán

  • Ít ảnh hưởng production

  • Hỗ trợ backup từng database

📌 PostgreSQL thiết kế dump tốt hơn MySQL về mặt nhất quán.


4.2. pg_dump và pg_dumpall

  • pg_dump: backup 1 database

  • pg_dumpall: backup toàn cluster (role + DB)

📌 Phải hiểu rõ để tránh dump thiếu role.


5. So sánh mysqldump và pg_dump

Tiêu chímysqldumppg_dump
Nhất quánCần cấu hình đúngTốt mặc định
Ảnh hưởng productionTrungThấp
Backup roleRiêngpg_dumpall
Restore chọn lọcRất tốt
MigrationTốtRất tốt

6. Chiến lược backup database chuẩn

6.1. Daily backup

  • Logical dump

  • Nén

  • Mã hóa

  • Đẩy off-site

6.2. Weekly / Monthly

  • Full dump

  • Giữ dài hạn

  • Test restore

📌 Dump phải gắn với RPO / RTO, không theo cảm tính.


7. Đảm bảo chất lượng file dump

Một dump “có file” chưa chắc đã dùng được.

Cần kiểm tra:

  • File không rỗng

  • Có header SQL

  • Có statement tạo table

  • Có data

📌 Backup không kiểm tra = backup mù.


8. Restore database đúng cách

8.1. Trình tự chuẩn

  1. Tạo user / role

  2. Tạo database

  3. Restore schema

  4. Restore data

  5. Kiểm tra ứng dụng

📌 Restore sai thứ tự → lỗi permission.


9. Kết hợp mysqldump / pg_dump với công cụ khác

Mô hình đúng:

  • Dump DB → file

  • File → Borg / Restic

  • Lưu off-site

  • Áp dụng retention

📌 Dump chỉ là bước đầu, không phải toàn bộ backup.


10. Sai lầm phổ biến

  • Dump DB live mà không transaction

  • Chỉ dump data, quên user

  • Không test restore

  • Không theo dõi thời gian dump


11. Checklist backup database bằng dump

BẮT BUỘC

  • Dump logic

  • User / role

  • Charset / encoding

RẤT NÊN

  • Compression

  • Encryption

  • Off-site

  • Restore test


12. Liên hệ với hệ thống thực tế

Trong hệ thống:

  • HIS / EMR

  • Website bệnh viện

  • Cổng dịch vụ người bệnh

Logical backup giúp:

  • Phục hồi dữ liệu nghiệp vụ

  • Đáp ứng pháp lý

  • An tâm khi có sự cố lớn


 

Snapshot giúp quay lại nhanh,
nhưng dump giúp sống sót lâu dài.

mysqldumppg_dump không hào nhoáng,
nhưng là trụ cột không thể thay thế của backup database đúng nghĩa.