postgresql 如何把pg转储从测试服务器到我的pc

35g0bw71  于 2023-01-30  发布在  PostgreSQL
关注(0)|答案(2)|浏览(142)

我正在尝试将pg转储从测试服务器转移到我的本地计算机,我已经登录到我的服务器
root@我的项目-准备-开发1:~/我的项目/当前#
我应该在这里写哪个命令来把pg转储到我的本地机器上?

n3ipq98p

n3ipq98p1#

    • 转储PostgreSQL数据库**

第一步
SSH连接到临时/生产服务器。
第二步
转储所需的数据库:

pg_dump database_name > database_name_20160527.sql

你可以随意命名你的转储--我用日期来区分多个转储。
第三步
离开SSH并使用SCP下载新的SQL文件。

scp login@host:path_to_dir_with/database_name_20160527.sql database_name_20160527.sql

此命令使用SSH登录到远程服务器,并将给定文件下载到您指定的本地目录。如果未指定本地目录的路径,则转储将保存在当前工作目录中。
示例:

scp marcin@8.8.8.8:/home/my_app/backups/my_app_database_20160527.sql my_app_database_20160527.sql
    • 恢复PostgreSQL转储**

第一步
如果要使用当前的localhost数据库,必须先将其删除:

psql template1 -c 'drop database database_name;'

第二步
在本地主机上创建新数据库:

psql template1 -c 'create database database_name with owner your_user_name;

第三步
并将转储写入数据库:

psql database_name < database_name_20160527.sql

Source

omhiaaxx

omhiaaxx2#

您可以通过ssh命令运行pg_dump,这样您就有了一行代码:

filename="tmp/backup_$(date +%Y-%m-%d_%H-%M-%S).sql"

ssh user@IP \
  "pg_dump --no-owner postgresql://user:pass@127.0.0.1/dbname" \
  >"$filename"

相关问题