我正在尝试在我们的DMZ中的远程服务器上pg_dump一个SQL数据库.有两个问题.
1)远程服务器上没有足够的空间,因此运行到本地备份数据库的正常命令
pg_dump -C database > sqldatabase.sql.bak
将因空间问题而无法工作.
2)我也无法使用其他版本的pg_dump命令将数据库从远程服务器转储到本地服务器:
pg_dump -C -h remotehost -U remoteuser db_name | psql localhost -U localuser db_name
Run Code Online (Sandbox Code Playgroud)
因为服务器在我们的DMZ中,端口5432被阻止.我期待看到的是,是否可以pg_dump数据库并立即将其(ssh或其他形式)作为文件保存到远程服务器.我在想的是: pg_dump -C testdb | ssh admin@ourserver.com | > /home/admin/testdb.sql.bak
有谁知道我想要实现的目标是否可行?
我正在尝试在 docker 中运行我的数据库,其中已经有一些数据,但是当我在 docker 中运行它时,它给出了空的 .. 那么如何在 docker PostgreSQL 映像中恢复我的数据库。
我正在 docker 容器内测试我的 postgres 数据库的备份/恢复过程。
我像这样转储我的数据库:
$ docker exec -ti my_postgres_container pg_dump -Fc -U postgres > db.dump
Run Code Online (Sandbox Code Playgroud)
之后,我尝试像这样恢复它:
$ docker cp db.dump my_postgres_container:/db.dump
$ docker exec -ti my_postgres_container pg_restore -U postgres -c -d postgres db.dump
Run Code Online (Sandbox Code Playgroud)
该命令返回时没有输出或错误,但没有任何反应。
因此,我尝试像这样手动恢复它:
$ docker cp db.dump my_postgres_container:/db.dump
$ docker exec -ti my_postgres_container bash
root@fdaad610bee3:/# pg_restore -U postgres -c -d postgres db.dump
Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)
为什么在尝试读取我的数据库转储时 pg_restore 出现段错误?