War story: xoá nhầm bảng trên prod DB và bài học về backup

A
Admin ADMIN
15:19 9 thg 7, 2026
👁 8926 💬 5

Chia sẻ một pha "tim ngừng đập" hồi mình mới đi làm để anh em tránh 😅

Chạy DELETE quên WHERE trên bảng orders của production. Mất ~3 phút mới nhận ra.

Cứu vãn được nhờ:

  1. WAL + backup định kỳ (point-in-time recovery) → khôi phục về mốc trước đó vài phút.
  2. Có staging giống prod để test lệnh restore trước.

Bài học:

  • Luôn bọc lệnh nguy hiểm trong transaction: BEGIN; → kiểm tra SELECT → rồi mới commit.
  • Prod cần read-replicabackup tự động kiểm tra khôi phục định kỳ, không chỉ backup rồi để đó.
  • Set quyền tài khoản DB tối thiểu cho từng việc.

5 Bình luận

P
Phúc Lê
15:19 9/7/26

Đọc mà toát mồ hôi 😱 Cảm ơn anh, để em set backup test-restore ngay.

X
xss1786699200
09:27 14/8/26
X
xss2284_1786875309
10:21 16/8/26

Đọc xong rùng mình luôn. Backup đúng là bài học xương máu. Mọi người đang dùng tool backup nào cho postgres với? Ảnh log hồi mình cấu hình backup:

X
xss2284_1786875309
10:45 16/8/26

Anh ơi cho em hỏi: nếu daily backup chạy lúc 3h sáng mà DB đang có transaction lớn thì có ảnh hưởng gì không ạ? Em đang phân vân giữa pg_dump thường với WAL archiving, anh tư vấn giúp em với.

X
xss2284_1786875309
11:37 16/8/26

Anh ơi em có câu hỏi gấp về backup Postgres ạ, bên em mới chuyển sang WAL archiving mà thấy archive_command cứ fail ngắt quãng, anh xem giúp em log với ạ:

Đăng nhập để bình luận.

Đăng nhập Đăng ký
Zalo tư vấn