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

问题描述 投票:0回答:3

我正在尝试使用数据库迁移服务将现有数据库迁移到 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
语句?

postgresql migration google-cloud-sql
3个回答
0
投票

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

这可以通过源数据库上的 postgres 控制台来完成:

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

0
投票

我能够通过首先运行以下命令来使其适用于我的 aws aurora postgresql 实例:

grant set on parameter log_statement to <master_user>;

然后我就可以运行更改角色命令


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.