我正试图在我们DMZ的远程服务器上转储一个SQL数据库.有两个问题.

  1. 远程服务器上没有太多空间,因此正常的命令会运行以在本地备份数据库

  2. 我也无法运行其他版本的pg_dump命令,使用以下命令将数据库从远程服务器转储到本地服务器:

    pg_dump-C-h remotehost-U remoteuser db_name | psql localhost-U localuser db_name

因为服务器在我们的DMZ中,端口5432被阻塞.我希望看到的是,是否有可能pg_转储数据库,并立即将其(ssh或其他形式)作为文件保存到远程服务器.

有人知道我想要实现的目标是否可能吗?

推荐答案

您可以使用ssh连接到远程服务器,执行connect the pg_dump调用,并将输出发送回本地机器的stdout.

ssh user@remote_machine "pg_dump -U dbuser -h localhost -C --column-inserts" \
 > backup_file_on_your_local_machine.sql

Postgresql相关问答推荐

"错误:无法创建用户:错误:关系\users\违反了非空约束

如何在查询空字段时设置pgtype.comb为默认值?

PostgreSQL解释分析实际时间不加总

为什么在PostgreSQL中CPU_INDEX_TUPLE_COST与CPU_TUPLE_COST不同

将CSV文件复制到临时表

Select 与输入数组完全相交的所有行?

使用Helm设置PostgreSQL配置

postgres 如何计算多列哈希?

联合所有 postgresql Select 子句保留顺序

Spring:如何在 PostgreSQL 中使用 KeyHolder

使用 JDBC 连接到 PostgreSql 的本地实例

Postgres 会话处于空闲状态,query = COMMIT 或 ROLLBACK

PostgreSQL 中基于时间戳的移动平均线

如何更改几何列的 SRID?

!= 和 <> 运算符有什么区别?

错误:syntax error at or near "user"

SQLAlchemy 和多个进程的连接问题

Postgres 删除表语法错误

将属性添加到 Sequelize FindOne 返回的对象

根据 Helm 图表设置值