Postgresql 还原我从远程服务器转储的postgres数据库
我正在尝试使用psql转储和恢复托管在AWS堡垒上的Postgres数据库。为此,我需要打开一个SSH隧道 我这样打开隧道: ssh-v-Aadmin@bastion.my.company.name-L 15432:databasename.amazonaws.com:5432-N 然后将其转储为: pg_dump-v-h0.0.0.0-p15432-U postgres-d databasename-clean-T tablelined>~/pgdumps/databasenamedump.sql 到目前为止还不错,我可以通过我的隧道。然后我关闭隧道并尝试恢复: psql-h0.0.0.0-p5432-U postgres-d databasename<~/pgdumps/databasenamedump.sql 但我得到: psql:错误:无法连接到服务器:无法连接到服务器:连接被拒绝 服务器是否在主机0.0.0.0上运行并接受 端口5432上的TCP/IP连接 怎么样?我可能不理解转储/恢复的概念?一旦我转储了db,我只想运行它的本地实例。 我应该使用我为ssh隧道打开的端口15432进行恢复吗?我不敢尝试,因为这是一个生产数据库。我试图查看psql文档,但没有找到类似的场景 谢谢你的澄清 一旦我转储了db,我只想运行它的本地实例。我应该使用我为ssh隧道打开的端口15432进行恢复吗?我不敢尝试,因为这是一个生产数据库 你害怕是对的。这将还原回您从中转储的同一个数据库,这不是您希望发生的事情。由于您指定了-clean to pg_dump,转储后的生产更改可能会丢失 pg_restore不会创建数据库实例,它只是将数据库还原到一个已经运行的实例中。因此,您必须首先执行initdb或等效程序来创建这样一个实例,然后执行pg_ctl start或等效程序来启动它。当然,除非你已经做了这些事情,但是你收到的错误信息表明你没有,或者没有正确地做 我试图查看psql文档,但没有找到类似的场景 psql只是一个用于连接数据库的命令行客户端工具,它不是数据库软件本身,因此它的文档与您的关系不大 你可能需要退一步,从最开始的时候开始 一旦我转储了db,我只想运行它的本地实例。我应该使用我为ssh隧道打开的端口15432进行恢复吗?我不敢尝试,因为这是一个生产数据库 你害怕是对的。这将还原回您从中转储的同一个数据库,这不是您希望发生的事情。由于您指定了-clean to pg_dump,转储后的生产更改可能会丢失 pg_restore不会创建数据库实例,它只是将数据库还原到一个已经运行的实例中。因此,您必须首先执行initdb或等效程序来创建这样一个实例,然后执行pg_ctl start或等效程序来启动它。当然,除非你已经做了这些事情,但是你收到的错误信息表明你没有,或者没有正确地做 我试图查看psql文档,但没有找到类似的场景 psql只是一个用于连接数据库的命令行客户端工具,它不是数据库软件本身,因此它的文档与您的关系不大Postgresql 还原我从远程服务器转储的postgres数据库,postgresql,amazon-web-services,ssh,psql,restore,Postgresql,Amazon Web Services,Ssh,Psql,Restore,我正在尝试使用psql转储和恢复托管在AWS堡垒上的Postgres数据库。为此,我需要打开一个SSH隧道 我这样打开隧道: ssh-v-Aadmin@bastion.my.company.name-L 15432:databasename.amazonaws.com:5432-N 然后将其转储为: pg_dump-v-h0.0.0.0-p15432-U postgres-d databasename-clean-T tablelined>~/pgdumps/databasenamedump.s
您可能需要后退一步,从开始。确保本地实例在本地主机上运行;检查此本地实例上的显示侦听地址和显示端口。您可以通过运行psql以OS用户postgres的身份连接到此本地实例吗?确保本地实例在本地主机上运行;检查此本地实例上的显示侦听地址和显示端口。您能否仅通过运行psql以OS用户postgres的身份连接到此本地实例?