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

Postgresql 执行Chef 12服务器备份还原时发生Postgres错误,postgresql,chef-infra,Postgresql,Chef Infra,作为Chef 12迁移的一部分,需要备份现有服务器并将其恢复到新创建的Chef 12服务器中。 在构建“备份”和“还原”中使用chef服务器ctl 在将Postgres db转储恢复到新的Chef服务器时,执行会引发多组错误 请查找显示错误的日志片段 .... .... ERROR: role "bifrost" already exists ALTER ROLE ERROR: role "bifrost_ro" already exists ALTER ROLE .... ..

作为Chef 12迁移的一部分,需要备份现有服务器并将其恢复到新创建的Chef 12服务器中。 在构建“备份”和“还原”中使用chef服务器ctl

在将Postgres db转储恢复到新的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 db?

您正在尝试在现有Chef数据库架构之上进行恢复,这意味着所有角色和架构对象都已存在。在恢复可能有用之前,可以在空白数据库上执行恢复,或者使用类似于
pg_restore--clean

chef server ctl clean
的操作。有关更多详细信息,请参阅。我在执行还原时提供了“-c”选项。但是仍然会出现错误
chef server ctl restore name_of_gzip_file_dump-c
chef文档中提到的chef server备份还原步骤已过时。作为新程序的一部分,我们不需要执行Postgres DB恢复步骤。在厨师长支持的帮助下,我们起草了新的“备份和恢复”步骤,并在厨师长支持单中进行了更新。所以,请告诉我,如何结束这个问题。我正在尝试按照Chef文档进行恢复,它使用“psql”命令。它在“psql”中是否有类似的命令和选项?如果没有单击恢复解决方案。你需要学习Postgres的工作原理和操作方法。好的。如果我能够在Chef后端成功恢复Postgres db,我将更新此线程。这并不难,只需在恢复之前删除数据库中的所有内容。