Postgres CloudSQL 迁移:错误:设置参数"log_min_duration_statement"的权限被拒绝



我正在尝试使用数据库迁移服务将现有数据库迁移到CloudSQL。

当我开始迁移,我收到以下错误:

finished setup replication with errors: [api_production]: error importing schema: failed to restore schema: stderr=pg_restore: while PROCESSING TOC: pg_restore: from TOC entry 3997; 0 0 DATABASE PROPERTIES api_production postgres pg_restore: error: could not execute query: ERROR: permission denied to set parameter "log_min_duration_statement" Command was: ALTER DATABASE api_production SET log_min_duration_statement TO '500ms'; pg_restore: warning: errors ignored on restore: 1 , stdout=

如何继续迁移,忽略SET PARAMETER语句?

我终于能够通过重置源数据库上的参数来启动迁移(将它们设置为匹配是不够的)。

这可以从源数据库的postgres控制台完成:

reset log_min_duration_statement;
ALTER DATABASE <database_name> RESET log_min_duration_statement;
ALTER DATABASE postgres RESET log_min_duration_statement;

数据库迁移服务是一项受管理的谷歌云服务,它限制了对某些需要高级特权的系统过程和表的访问。'postgres'用户是Cloud SQL中最有特权的用户,但它不是postgres超级管理员。有关PostgreSQL用户的更多信息,请参阅公共文档。
还有一些其他的参数可以运行ALTER Database"命令变更;然而,"log_statement"one_answers";log_min_duration_statement"不幸的是不是这些参数的例子。
PostgreSQL文档也特别记录了这一点;"某些变量不能这样设置,或者只能由超级用户设置。">
但是,您可以通过数据库编辑屏幕上的Flags更改控制台中的特定设置,并从迁移作业中删除这些语句,以避免这些失败错误。
有关配置数据库标志的更多信息,请参考文档。

相关内容

  • 没有找到相关文章

最新更新