Để thiết lập sao lưu tự động trong PostgreSQL, bạn có thể sử dụng một số phương pháp khác nhau. Dưới đây là hướng dẫn chi tiết về cách thực hiện điều này bằng cách sử dụng pg_dump và cron jobs trên hệ thống Linux:

Bước 1: Tạo Script Sao Lưu

Tạo file script (ví dụ: backup_postgresql.sh):

#!/bin/bash

# Thiết lập các biến
BACKUP_DIR="/path/to/backup/dir"  # Thư mục để lưu trữ sao lưu
DB_NAME="your_database_name"        # Tên cơ sở dữ liệu
TIMESTAMP=$(date +"%Y%m%d%H%M")    # Thời gian để đặt tên file sao lưu
BACKUP_FILE="$BACKUP_DIR/$DB_NAME-$TIMESTAMP.sql"

# Thực hiện sao lưu
pg_dump -U your_username -F c $DB_NAME > $BACKUP_FILE

# Xóa sao lưu cũ (tuỳ chọn)
find $BACKUP_DIR -type f -name "$DB_NAME-*.sql" -mtime +7 -exec rm {} \;  # Xóa các file cũ hơn 7 ngày

Cấp quyền thực thi cho script:

chmod +x /path/to/backup_postgresql.sh

Bước 2: Thiết lập Cron Job

Mở crontab:

crontab -e

Thêm dòng sau để chạy script sao lưu hàng ngày (ví dụ: vào lúc 2 giờ sáng):

0 2 * * * /path/to/backup_postgresql.sh

Bước 3: Kiểm Tra

  • Đảm bảo rằng cron job đã được thiết lập đúng bằng cách kiểm tra log của cron hoặc xem thư mục sao lưu để xác nhận rằng các file sao lưu được tạo ra đúng theo lịch trình.

Lưu Ý

  • Đảm bảo rằng tài khoản người dùng PostgreSQL có quyền sao lưu cơ sở dữ liệu.
  • Thay đổi đường dẫn và tên cơ sở dữ liệu theo yêu cầu của bạn.
  • Kiểm tra và điều chỉnh các tùy chọn pg_dump nếu cần thiết (ví dụ: thêm tùy chọn -W để yêu cầu mật khẩu).

Với các bước này, bạn đã thiết lập thành công sao lưu tự động cho cơ sở dữ liệu PostgreSQL. Nếu có thắc mắc hoặc cần thêm chi tiết, hãy cho tôi biết!