postgresql - 如何将 complet.BD.postgres 从 SERVER1 直接复制/传输到 SERVER2?
问题描述
许多网站(如 StackOverFlow:将 PostgreSQL 数据库复制到另一台服务器)都谈到了这一点,但我的命令可能有问题。
pg_dump -C -h localhost -U postgres BD.to.move | psql -h server.destiny -U postgres BD.to.move
我在 S1 上有密码 root + 密码 postgres
我在 S2 上有密码 root + 密码 postgres
但是在运行我的命令之后over server1
,在 server2 中不存在BD.to.move
.
我的命令错了吗?
我如何复制/转移 {BD.to.move + ROLES + SCHEMAS + users, + password, etc...} ?
(换句话说,BD 完成直接在 server.destiny 的生产中使用)
解决方案
不要为 指定参数BD.to.move
,psql
因为该数据库在目的地不存在。使用postgres
, 存在。
如果您使用 创建转储-C
,它将包含一个CREATE DATABASE
语句。为了恢复这样的转储,您必须连接到您要恢复的数据库以外的现有数据库,然后psql
将首先创建数据库,然后连接到它并恢复数据。
推荐阅读
- jdbc - Logstash JDBC last_run 元数据文件未更新
- c# - 在添加总计时使用 Linq 对重复项进行分组
- amazon-web-services - 是否可以将 AWS API 网关配置为具有两个端点,一个需要 API 密钥,一个不需要?
- c# - 带有时间戳字符串的 Json.NET (Newtonsoft) 解析器发生了什么?
- dataweave - 在 Mulesoft 中读取 xslx 文件时,ignoreEmptyLine 参数不起作用
- python - 如何将所有图像旋转到相同的方向?
- spring-boot - SpringBoot中的参数化测试
- python - 在 Python Tkinter 中调整窗口大小时调用函数
- python - 字节数组中的重复字节
- apache-spark - Apache spark 自定义日志未过滤数据 (LazyLogging)