PostgreSQL 备份、传输与恢复指南
PostgreSQL 数据库备份、传输与恢复指南
1. 备份数据库
在源服务器上执行以下步骤来备份 PostgreSQL 数据库。
1.1. 设置数据库连接信息:
将以下变量替换为你的实际数据库信息:
DB_NAME="patentinfer_8004" # 数据库名称
DB_USER="root" # 数据库用户名
DB_PASSWORD="rootroot" # 数据库密码
DB_HOST="localhost" # 数据库主机地址
DB_PORT="5432" # 数据库端口
BACKUP_DIR="/home/trizhi2/zhanghengrui/backup" # 备份文件存储目录
1.2. 执行备份命令:
运行以下命令进行数据库备份,并将备份文件存储在指定的目录中:
# 创建备份目录
mkdir -p "$BACKUP_DIR"
# 导出数据库密码
export PGPASSWORD="$DB_PASSWORD"
# 执行备份
pg_dump -h "$DB_HOST" -U "$DB_USER" -p "$DB_PORT" -F c -b -v -f "$BACKUP_DIR/db_$(date +"%Y%m%d%H%M%S").backup" "$DB_NAME"
备份完成后,备份文件将以 db_YYYYMMDDHHMMSS.backup
的格式存储在 /home/trizhi2/zhanghengrui/backup
目录中。
2. 传输备份文件到目标服务器
在备份完成后,使用 scp
命令将备份文件传输到目标服务器。
2.1. 传输命令:
假设目标服务器的内网地址是 172.17.157.30
,用户名为 root
,目标目录为 /home/zhanghengrui/psql_backup
,并且目标服务器的用户密码为 xxx
。
scp /home/trizhi2/zhanghengrui/backup/db_*.backup [email protected]:/home/zhanghengrui/psql_backup/
在执行该命令时,系统会提示输入目标服务器 root
用户的密码。输入正确的密码以完成文件传输。
3. 恢复数据库
在目标服务器上,执行以下步骤来恢复数据库。
3.1. 连接到目标服务器:
通过 SSH 连接到目标服务器:
3.2. 恢复数据库:
在目标服务器上,设置数据库连接信息:
DB_NAME="patentinfer_8004" # 目标数据库名称
DB_USER="root" # 数据库用户名
DB_PASSWORD="rootroot" # 数据库密码
DB_HOST="localhost" # 数据库主机地址
DB_PORT="5432" # 数据库端口
BACKUP_PATH="/home/zhanghengrui/psql_backup/db_*.backup" # 备份文件路径
3.3. 执行恢复命令:
在目标服务器上执行以下命令来恢复数据库:
# 导出数据库密码
export PGPASSWORD="$DB_PASSWORD"
# 恢复数据库
pg_restore -h "$DB_HOST" -U "$DB_USER" -p "$DB_PORT" -d "$DB_NAME" -v "$BACKUP_PATH"
# 例如
pg_restore -h localhost -U root -p 5432 -d patentinfer_8004 -v /home/zhanghengrui/psql_backup/db_20240917022405.backup > restore_log.txt 2>&1
这个命令会将备份文件中的数据恢复到指定的数据库中。
注意事项:
请确保在执行这些命令时具有足够的权限。
确保
pg_dump
和pg_restore
工具已在两台服务器上正确安装。如果数据库恢复失败,请检查日志信息以定位问题,并确保目标数据库处于空闲状态或已正确初始化。
以上是 PostgreSQL 数据库备份、传输和恢复的完整步骤。根据你的具体环境和需求,可以调整变量和路径。
Last updated