小编Swa*_*l17的帖子

带-C选项的pg_restore不会创建数据库

我正在使用pg_dump和pg_restore来备份和恢复postgres数据库.

以下是与此问题相关的文档中的一些信息.对于Pg_restore,-C选项描述如下

-C

- 创建

在还原到数据库之前创建数据库.如果还指定了--clean,则>> drop并在连接之前重新创建目标数据库.使用此选项时,使用-d命名的数据库仅用于发出初始DROP DATABASE和CREATE DATABASE命令.所有数据都将还原到存档中显示的数据库名称中.

但是,即使我在pg_restore中使用此选项,也会出现以下错误

pg_restore:[archiver(db)]与数据库"test"的连接失败:致命:>数据库"test"不存在

根据描述,-C选项应该创建缺少的数据库.但是在我的情况下并不适用.

以下是我为备份和还原所做的步骤:

  1. 使用pg_dump备份数据库
pg_dump -N backup -d test --format custom -v -h xxhostxx -p 5432 -U xxuserxx --lock-wait-timeout 300000 -f test_pg_dump.dmp
Run Code Online (Sandbox Code Playgroud)

注意:不使用-C选项,因为它仅对纯文本格式有意义

  1. 删除了测试数据库

  2. 使用pg_resore恢复数据库

    pg_restore -C -d test -v -h xxhostxx -p 5432 -U xxuserxx test_pg_dump.dmp**
    
    Run Code Online (Sandbox Code Playgroud)

我无法理解这里的问题是什么!我做错了吗?如果需要更多信息,请与我们联系.

postgresql pg-dump pg-restore

11
推荐指数
3
解决办法
7919
查看次数

Consul服务定义地址和服务地址之间的区别

领事服务定义json如下

{
    "Address": "192.168.10.10",
    "TaggedAddresses": {
      "lan": "192.168.10.10",
      "wan": "10.0.10.10"
    },
    "CreateIndex": 51,
    "ModifyIndex": 51,
    "Node": "foobar",
    "ServiceAddress": "172.17.0.3",
    "ServiceEnableTagOverride": false,
    "ServiceID": "32a2a47f7992:nodea:5000",
    "ServiceName": "foobar",
    "ServicePort": 5000,
    "ServiceTags": [
      "tacos"
    ]
}
Run Code Online (Sandbox Code Playgroud)

现在按照https://www.consul.io/docs/agent/http/catalog.html#catalog_service上提供的文档进行操作

地址和服务地址的定义如下:

  1. 地址:注册服务的Consul节点的IP地址
  2. ServiceAddress:服务主机的IP地址 - 如果为空,则应使用节点地址

A.这是否意味着Address是consul服务器节点的地址,服务地址是服务所在节点的地址?

要么

B.这是否意味着地址是与服务一起居住的领事代理人的地址.如果是这种情况,这意味着地址和服务地址是否相同?

以上哪项是正确的?

consul

8
推荐指数
1
解决办法
1200
查看次数

标签 统计

consul ×1

pg-dump ×1

pg-restore ×1

postgresql ×1