在CentOS上備份和恢復PostgreSQL數據庫可以通過以下幾種方法實現:
使用 pg_dump
命令進行邏輯備份,該命令將數據庫的結構和數據導出為SQL腳本文件。
備份示例:
pg_dump -U postgres -h localhost -p 5432 -F c -b -v -f /path/to/backup/backup_file mydatabase
其中:
-U postgres
指定用戶名。-h localhost
指定主機名。-p 5432
指定端口號。-F c
表示以自定義格式備份。-b
表示包含大對象。-v
表示詳細模式。-f /path/to/backup/backup_file
指定備份文件的路徑和名稱。mydatabase
是要備份的數據庫名稱。恢復示例:
pg_restore -U postgres -h localhost -p 5432 -d mydatabase -v /path/to/backup/backup_file
其中:
-U postgres
指定用戶名。-h localhost
指定主機名。-p 5432
指定端口號。-d mydatabase
指定要恢復的數據庫名稱。-v
表示詳細模式。/path/to/backup/backup_file
是備份文件的路徑。使用 pg_basebackup
命令進行物理備份,該命令會復制整個數據目錄,適用于快速恢復,但占用空間較大。
備份示例:
pg_basebackup -U postgres -D /path/to/backup -F t -v -P
其中:
-U postgres
指定用戶名。-D /path/to/backup
指定備份目錄。-F t
表示以tar格式備份。-v
表示詳細模式。-P
表示顯示進度。可以使用 cron
任務定期執行備份腳本,以確保數據庫的定期備份和異地備份。
備份腳本示例:
#!/bin/bash
# 配置參數
USER= "postgres"
DB_NAME= "mydatabase"
BACKUP_DIR= "/path/to/backups"
DATE=$(date +%Y%m%d%H%M%S)
# 創建備份文件路徑
BACKUP_FILE= "$BACKUP_DIR/$DB_NAME - $DATE.sql"
# 使用pg_dump進行備份
pg_dump -U $USER -d $DB_NAME -f $BACKUP_FILE
# 打印備份完成信息
echo "Backup of $DB_NAME completed on $DATE. Backup file is $BACKUP_FILE"
設置定時任務:
0 2 * * * /path/to/backup_postgresql.sh
這條命令會在每天凌晨2點執行備份腳本。
通過這些步驟,您可以在CentOS系統上成功備份和恢復PostgreSQL數據庫,確保數據的安全性和可靠性。