Ant*_*ern 50 postgresql ssh pg-dump remote-server
我正在尝试在我们的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
有谁知道我想要实现的目标是否可行?
Oki*_*Oth 72
您可以将ssh连接到远程服务器,使用连接pg_dump调用并将输出发送回本地计算机的stdout.
ssh user@remote_machine "pg_dump -U dbuser -h localhost -C --column-inserts" \
>> backup_file_on_your_local_machine.sql
Run Code Online (Sandbox Code Playgroud)
编辑:修正了一个错字.
Kis*_*ngi 13
让我们使用pg_dump从远程postgresql数据库创建一个备份:
pg_dump -h [host address] -Fc -o -U [database user] <database name> > [dump file]
Run Code Online (Sandbox Code Playgroud)
之后,可以使用以下命令在同一远程服务器上将其还原:
sudo -u postgres pg_restore -C mydb_backup.dump
Run Code Online (Sandbox Code Playgroud)
例如:
pg_dump -h 67.8.78.10 -Fc -o -U myuser mydb > mydb_backup.dump
Run Code Online (Sandbox Code Playgroud)
完整(所有数据库和对象)
pg_dumpall -U myuser -h 67.8.78.10 --clean --file=mydb_backup.dump
Run Code Online (Sandbox Code Playgroud)
从pg_dumpall --clean恢复:
psql -f mydb_backup.dump postgres #it doesn't matter which db you select here
Run Code Online (Sandbox Code Playgroud)
复制自:https : //codepad.co/snippet/73eKCuLx
您可以尝试像这样将表的一部分转储到本地计算机中的文件中(假设您的本地计算机已psql安装):
psql -h ${db_host} -p 5432 -U ${db_user} -d ${db_name} \
-c "\copy (SELECT * FROM my_table LIMIT 10000) to 'some_local_file.csv' csv;"
Run Code Online (Sandbox Code Playgroud)
您可以稍后将导出的csv导入另一个数据库:
COPY my_table FROM '/path/to/some_local_file.csv' WITH (FORMAT csv);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56132 次 |
| 最近记录: |