执行Chef 12服务器备份还原时发生Postgres错误

时间:2016-01-11 13:08:38

标签: postgresql chef

作为Chef 12迁移的一部分,需要备份现有服务器并在新创建的Chef 12服务器中恢复它。 使用chef-server-ctl in-build commands“备份”和“恢复”。

在将Postgres数据库转储恢复到新的Chef服务器时,执行会引发多组错误。

请查找日志片段,显示错误

....
....

ERROR:  role "bifrost" already exists

ALTER ROLE

ERROR:  role "bifrost_ro" already exists

ALTER ROLE

....

....
ERROR:  database "opscode-pgsql" already exists

....

....

ERROR:  type "auth_any_permission" already exists

ALTER TYPE

ERROR:  type "auth_permission" already exists

ALTER TYPE

....

....

ERROR:  function "group_id" already exists with same argument types

ALTER FUNCTION

ERROR:  function "groups_for_actor" already exists with same argument types

ALTER FUNCTION

....

....

ERROR:  relation "object_acl_group" already exists

ALTER TABLE

....


ALTER TABLE

ERROR:  duplicate key value violates unique constraint "actor_acl_actor_pkey"
DETAIL:  Key (target, authorizee, permission)=(1, 1, create) already exists.
CONTEXT:  COPY actor_acl_actor, line 1


.....

等等。

请澄清,这些错误是否可以安全地忽略?

如果没有,如何为成功的postgres数据库恢复解决这些错误?

1 个答案:

答案 0 :(得分:2)

您正尝试在现有Chef数据库架构的基础上进行恢复,这意味着已存在所有角色和架构对象。要么还原到空白数据库,要么使用pg_restore --clean