You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL远程数据库备份至Linode服务器:位置选择与命令指导

PostgreSQL跨服务器备份恢复(排除指定表)

1. 选择远程还是本地执行备份?

  • 若数据库体积较大,优先在远程虚拟服务器执行备份:避免大备份文件往返本地的带宽消耗,节省时间,降低传输出错概率。
  • 若需要本地留存备份副本,或远程服务器资源(CPU/磁盘)紧张,可选择在本地机器执行备份。

2. 两种方案的具体命令

方案一:在远程虚拟服务器执行备份

a. 备份命令

直接在远程服务器运行命令生成压缩备份(自动添加日期后缀便于管理):

pg_dump -T analytics_* -T aggregated* -T completeness* -O -x database_name | gzip > db_backup_$(date +%Y%m%d).sql.gz

参数说明:

  • -T:排除指定表(支持通配符)
  • -O:不导出对象所有者信息(恢复时用当前用户创建对象)
  • -x:不导出权限信息

随后将备份文件传到Linode服务器:

scp db_backup_YYYYMMDD.sql.gz your_linode_user@linode_ip:/path/to/backup/storage/

b. Linode服务器恢复命令

先确保目标数据库已创建(未创建则执行createdb database_name),再解压恢复:

gunzip -c /path/to/backup/storage/db_backup_YYYYMMDD.sql.gz | psql -d database_name -U your_postgres_user

方案二:在本地机器直接拉取远程备份

a. 备份命令

本地通过PostgreSQL客户端直接连接远程服务器,生成本地备份文件:

pg_dump -h remote_server_ip -U remote_postgres_user -T analytics_* -T aggregated* -T completeness* -O -x database_name | gzip > db_backup_$(date +%Y%m%d).sql.gz

参数说明:

  • -h:指定远程服务器IP/域名
  • -U:远程PostgreSQL用户名

若需自动输入密码,可通过环境变量实现:

PGPASSWORD=remote_postgres_password pg_dump -h remote_server_ip -U remote_postgres_user -T analytics_* -T aggregated* -T completeness* -O -x database_name | gzip > db_backup_$(date +%Y%m%d).sql.gz

若想更安全(无需开放远程5432端口),可通过SSH隧道拉取备份:

ssh remote_user@remote_server_ip "pg_dump -T analytics_* -T aggregated* -T completeness* -O -x database_name" | gzip > db_backup_$(date +%Y%m%d).sql.gz

随后将本地备份传到Linode:

scp db_backup_YYYYMMDD.sql.gz your_linode_user@linode_ip:/path/to/backup/storage/

b. Linode服务器恢复命令

与方案一完全一致:

gunzip -c /path/to/backup/storage/db_backup_YYYYMMDD.sql.gz | psql -d database_name -U your_postgres_user

内容的提问来源于stack exchange,提问作者Jetro Olowole

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 06:17:12