错误:(gcloud.sql.export.sql)HTTP错误409:操作失败,因为另一个操作已在进行中

时间:2019-04-01 19:53:23

标签: google-cloud-sql

通过jenkins运行SQL导出(备份),我定期收到 “错误:(gcloud.sql.export.sql)HTTP错误409:操作失败,因为正在进行另一项操作。错误:(gcloud.sql.operations.wait)参数OPERATION [OPERATION ...]:必须指定。< / p>

我正在尝试确定在哪里可以看到导致此操作失败的作业

ive试图将gcloud sql操作wait --timeout扩展到1600 没有运气

gcloud sql操作wait --timeout = 1600

3 个答案:

答案 0 :(得分:4)

要等待操作,您需要指定操作的ID,如@PYB所述。您可以像在Jenkins脚本中那样以编程方式进行操作:

  services.Configure<MyLibraryConfiguration>(options => this.Configuration.GetSection("SectionName").Bind(options));
  services.AddScoped<MyService>();   

答案 1 :(得分:0)

这里有2个错误可能会影响您。第一个是在前一个操作完成之前开始管理操作。阅读有关SQL的“最佳实践”文档将在以下方面为您提供帮助: https://cloud.google.com/sql/docs/mysql/best-practices#admin 具体来说,在“操作”选项卡中,您可以看到正在运行的操作。

最后,命令“ gcloud sql operation wait --timeout = 1600”中缺少[OPERATION]参数。请参阅以下命令中的文档:https://cloud.google.com/sdk/gcloud/reference/sql/operations/wait

OPERATION是正在运行的操作的名称,如果您希望列出所有实例操作以获取正确的名称,则可以使用以下命令: https://cloud.google.com/sdk/gcloud/reference/sql/operations/list

操作名称是十六进制格式的36个字符的字符串,因此您的命令应如下所示:
“ gcloud sql操作等待操作aaaaaaaa-0000-0000-0000-000000000000 --timeout = 1600”

欢呼

答案 2 :(得分:0)

我在长时间运行的导入过程中遇到了同样的问题:

gcloud sql import sql "mycompany-mysql-1" $DB_BACKUP_PATH --database=$DB_NAME -q

这是否真的意味着如果导入运行一个小时,我无法创建数据库 在那段时间内?真的吗???

gcloud sql databases create $DB_NAME --instance="mycompany-mysql-1", -i "mycompany-mysql-1" --async "

如果您在 CI/CD 中使用 GCloud,这是一个大问题!有人有简单的解决方案吗?

到目前为止我的想法:

  1. 将备份从云存储桶下载到 CI/CD
  2. 通过 CLI 连接到 MySQL 并以这种方式导入转储

但这意味着每当 CI/CD 中的两个任务想要同时执行多个任务时,一个任务将失败或我必须等待。非常难过,如果我没记错的话。