Thứ Bảy, 31 tháng 5, 2025

13: Cấu hình Tham số An toàn & Tối ưu cho Backup và Recovery

✅ 1. Mục tiêu cấu hình

Cấu hình tham số giúp:

  • Đảm bảo dữ liệu được backup chính xác

  • Cho phép khôi phục linh hoạt theo thời gian (PITR)

  • Giảm rủi ro mất WAL

  • Tối ưu dung lượng, tốc độ ghi WAL và backup

📘 2. Các tham số cần thiết để backup + PITR

🔧 Trong postgresql.conf:

conf
# Mức độ WAL đủ để replication và PITR wal_level = replica # Bật chế độ lưu trữ WAL log archive_mode = on # Câu lệnh lưu file WAL vào thư mục backup archive_command = 'test ! -f /pg_archive/%f && cp %p /pg_archive/%f' # Thời gian giữa các checkpoint checkpoint_timeout = 5min # Số lượng WAL giữ lại tối thiểu & tối đa min_wal_size = 1GB max_wal_size = 4GB # Nén WAL để tiết kiệm lưu trữ wal_compression = on

✅ Giải thích:

Tham sốÝ nghĩaGợi ý
wal_levelDữ liệu được ghi vào WALreplica để backup/replication
archive_modeCho phép lưu trữ WAL để phục hồion
archive_commandLệnh copy WAL đến nơi lưu trữPhải kiểm tra lỗi & trùng file
checkpoint_timeoutThời gian giữa 2 lần ghi dữ liệu từ RAM ra đĩa5–10 phút
min/max_wal_sizeDung lượng WAL giữ trong pg_wal/Tối ưu IO
wal_compressionNén WALon nếu I/O là bottleneck

🔍 3. Câu lệnh kiểm tra tham số đang chạy

sql
-- Xem giá trị hiện tại: SHOW wal_level; SHOW archive_command; -- Tìm tất cả tham số liên quan: SELECT name, setting FROM pg_settings WHERE name LIKE '%wal%' OR name LIKE '%archive%';

🔒 4. Tham số bảo vệ dữ liệu khi phục hồi

Tham sốÝ nghĩa
restore_commandLệnh đọc WAL archive khi recovery
recovery_target_timePhục hồi đến thời điểm cụ thể
recovery_target_lsnPhục hồi đến WAL position
recovery_target_nameTên của restore point được đặt
recovery_target_actionKhi phục hồi xong thì làm gì (pause, promote, v.v.)

Áp dụng khi cấu hình file recovery.conf hoặc postgresql.auto.conf sau khi restore.


🧠 5. Tối ưu hiệu suất backup

Thực hiệnGiải thích
Dùng pg_basebackup -XsStream WAL đồng thời khi backup
Dùng --compress nếu cóGiảm dung lượng
Bật parallel trong pgBackRestBackup nhiều thread
Tách riêng ổ đĩa cho WAL, archiveTránh I/O conflict

🧪 6. Gợi ý cấu hình mẫu (PostgreSQL ≥13)

conf
# WAL + Checkpoint wal_level = replica wal_compression = on archive_mode = on archive_command = 'cp %p /pg_archive/%f' max_wal_size = 2GB min_wal_size = 512MB checkpoint_timeout = 5min checkpoint_completion_target = 0.9 # Giới hạn số WAL giữ lại wal_keep_size = 512MB # Log backup, recovery log_checkpoints = on log_autovacuum_min_duration = 0

📦 7. Quản lý kích thước WAL thực tế

Kiểm tra dung lượng thư mục:

bash
du -sh /var/lib/pgsql/13/data/pg_wal du -sh /pg_archive

Kiểm tra WAL LSN hiện tại:

sql
SELECT pg_current_wal_lsn();

Kiểm tra timeline, checkpoint:

bash
pg_controldata | grep 'Timeline\|Checkpoint\|Time'

📌 8. Đảm bảo phục hồi an toàn

  • Backup test → Restore test hàng tháng

  • WAL archive giữ ít nhất 7–14 ngày

  • Dùng công cụ: pgBackRest, barman, wal-g nếu hệ thống lớn


✅ Kết luận

  • Tham số backup/recovery cần được cấu hình chủ động, không mặc định

  • WAL là yếu tố trung tâm của phục hồi và replication

  • Backup không quan trọng bằng khả năng phục hồi

  • Cần kết hợp: wal_level, archive_mode, checkpoint_timeout, restore_command

=============================
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- 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
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
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

=============================
AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, 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, ms 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