我正在尝试使用compose transporter将更改从postgres复制到rabbitmq:
var source = postgres({
"uri": "postgres://admin:****@****.dblayer.com:17596/compose"
"debug": true,
"tail": true,
"replication_slot": "slot"
})
var sink = rmq = rabbitmq({
"uri": "amqps://transporter:****@****.composedb.com:17597/****",
"routing_key": "test",
"key_in_field": false
// "delivery_mode": 1, // non-persistent (1) or persistent (2)
// "api_port": 15672,
// "ssl": false,
// "cacerts": ["/path/to/cert.pem"]
})
t.Source(source).Save(sink)
错误:
INFO[0001] Listening for changes... db=compose logical_decoding_slot=slot
ERRO[0002] error plucking from logical decoding pq: must be superuser or replication role to use replication slots db=compose
如何使用超级用户或复制角色设置Postgres用户?在撰写时似乎不允许这样做?
ALTER USER admin WITH REPLICATION;
结果:
ERROR: must be superuser to alter replication users
另请注意:
我可以创建“超级用户”吗?
PostgreSQL允许创建超级用户。作为超级用户意味着能够绕过所有访问 数据库中的权限检查,所以超级用户不应该 轻描淡写。出于安全考虑,我们不允许创建 超级用户。
答案 0 :(得分:0)
我从Compose Support收到的回复是Compose PostgreSQL不支持超级用户帐户。