google-cloud-sql 网络架构升级错误

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

我正在尝试运行谷歌所需的网络架构升级,但得到的结果无济于事。我们在 HA 配置中拥有三台数据库服务器,但是在升级其中两台时,我们收到“无效参数”。该命令本身非常普通,所以我不确定它会在哪里出错。我添加了详细调试来尝试查看发生了什么,但没有太大帮助。

$ gcloud sql instances patch db1-ha --upgrade-sql-network-architecture --verbosity debug

其中一个成功了,其他人我得到了:

DEBUG: Running [gcloud.sql.instances.patch] with arguments: [--upgrade-sql-network-architecture: "True", --verbosity: "debug", INSTANCE: "db1-ha"]
DEBUG: Starting new HTTPS connection (1): sqladmin.googleapis.com:443
DEBUG: https://sqladmin.googleapis.com:443 "GET /sql/v1beta4/projects/xxx-production/instances/db1-ha?alt=json HTTP/1.1" 200 None
The following message will be used for the patch API method.
{"name": "db1-ha", "project": "xxx-production", "settings": {"databaseFlags": [{"name": "default_time_zone", "value": "-05:00"}]}, "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"}
DEBUG: Starting new HTTPS connection (1): sqladmin.googleapis.com:443
DEBUG: https://sqladmin.googleapis.com:443 "PATCH /sql/v1beta4/projects/xxx-production/instances/db1-ha?alt=json HTTP/1.1" 400 None
DEBUG: (gcloud.sql.instances.patch) INVALID_ARGUMENT: Request contains an invalid argument.
Traceback (most recent call last):
  File "/usr/bin/../lib/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py", line 998, in Execute
    resources = calliope_command.Run(cli=self, args=args)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/bin/../lib/google-cloud-sdk/lib/googlecloudsdk/calliope/backend.py", line 815, in Run
    resources = command_instance.Run(args)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/bin/../lib/google-cloud-sdk/lib/surface/sql/instances/patch.py", line 411, in Run
    return RunBasePatchCommand(args, self.ReleaseTrack())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/bin/../lib/google-cloud-sdk/lib/surface/sql/instances/patch.py", line 379, in RunBasePatchCommand
    result_operation = sql_client.instances.Patch(
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/bin/../lib/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/sqladmin/v1beta4/sqladmin_v1beta4_client.py", line 936, in Patch
    return self._RunMethod(
           ^^^^^^^^^^^^^^^^
  File "/usr/bin/../lib/google-cloud-sdk/lib/third_party/apitools/base/py/base_api.py", line 737, in _RunMethod
    return self.ProcessHttpResponse(method_config, http_response, request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/bin/../lib/google-cloud-sdk/lib/third_party/apitools/base/py/base_api.py", line 743, in ProcessHttpResponse
    self.__ProcessHttpResponse(method_config, http_response, request))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/bin/../lib/google-cloud-sdk/lib/third_party/apitools/base/py/base_api.py", line 609, in __ProcessHttpResponse
    raise exceptions.HttpError.FromResponse(
apitools.base.py.exceptions.HttpBadRequestError: HttpError accessing <https://sqladmin.googleapis.com/sql/v1beta4/projects/xxx-production/instances/db1-ha?alt=json>: response: <{'vary': 'Origin, X-Origin, Referer', 'content-type': 'application/json; charset=UTF-8', 'content-encoding': 'gzip', 'date': 'Mon, 08 Apr 2024 03:37:27 GMT', 'server': 'ESF', 'cache-control': 'private', 'x-xss-protection': '0', 'x-frame-options': 'SAMEORIGIN', 'x-content-type-options': 'nosniff', 'transfer-encoding': 'chunked', 'status': 400}>, content <{
  "error": {
    "code": 400,
    "message": "Request contains an invalid argument.",
    "errors": [
      {
        "message": "Request contains an invalid argument.",
        "domain": "global",
        "reason": "badRequest"
      }
    ],
    "status": "INVALID_ARGUMENT"
  }
}
>
ERROR: (gcloud.sql.instances.patch) INVALID_ARGUMENT: Request contains an invalid argument.
google-cloud-platform google-cloud-sql
1个回答
0
投票

我花了 4 个小时才找到解决方案:

“--upgrade-sql-network-architecture”的文档要求服务器处于 HA 模式才能进行升级。数据库列表显示 HA 已启用,但当我进入编辑详细信息时,它被列为 HA 关闭。

经过研究,似乎有一个“旧版 HA”在我第一次启动服务器时启用,但不再允许,并且不构成升级所需的“HA”。这没有在任何地方的文档中列出,错误消息当然也没有提到这一点。

解决步骤:

  1. 在主服务器上禁用 HA
  2. 删除辅助备份服务器
  3. 在主服务器上启用 HA(这将创建一个新的隐藏备份服务器)
  4. 重新运行原始问题中列出的升级。
© www.soinside.com 2019 - 2024. All rights reserved.