centos postgresql备份恢复

509
2025/2/12 6:31:27
栏目: 云计算
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在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数据库,确保数据的安全性和可靠性。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: 在centos下mongodb怎么设置用户