Google Cloud SQL实例始终处于维护状态&二进制日志问题

时间:2018-03-22 09:18:35

标签: mysql google-cloud-platform google-cloud-sql

我已经拥有一些带有故障转移复制功能的Google Cloud SQL MySQL第二代5.7实例。最近我注意到,由于某种原因,没有删除因重载binlogs和旧binlog而重载的实例之一。 我尝试重启这个实例,但它从3月17日开始。

其他服务器上使用binlog的正常进程: normal server

问题服务器。 Binlogs没有清除,服务器不会启动,并且总是在gcloud控制台中进行维护。 problem server

此外,我创建了另一台具有相同配置的服务器,而不是binlogs永远不会清除。我在这里已有5326个binlogs,当我在普通服务器上有1273个binlogs时,他们每天都在清理。 new server

我尝试使用问题服务器: 1 - 从Google Cloud Platform前端删除它。响应:实例ID当前不可用。 2 - 使用gcloud命令重新启动它。响应:错误:(gcloud.sql.instances.restart)HTTPError 409:实例或操作未处于处理请求的适当状态。我在gcloud上发送的任何其他命令都有相同的响应。

此外,我尝试使用expire_logs_days选项解决binlogs的问题,但似乎谷歌云sql实例不支持此选项。

1 个答案:

答案 0 :(得分:2)

经过3天的挖掘后,我找到了解决方案。 Binlogs必须在7天后自动清除。在8天内,它必须清除binlogs。它仍然没有为我删除,仍然存储仍在攀升,但我相信它必须很快(今天我猜)

正如我所说 - SQL实例始终处于维护状态,无法从gcloud控制台命令或前端删除。但这很有趣,因为我仍然可以使用像mysql -u root -p -h 123.123.123.123这样的mysql命令连接到实例。所以,我只是连接到实例,删除了未使用的数据库(或者我们可以使用mysqldump来保存当前的实时数据库),然后我就删除了它。在mysql日志中(我使用Stackdriver)我得到了很多这样的消息:2018-03-25T09:28:06.033206Z 25 [ERROR] Disk is full writing '/mysql/binlog/mysql-bin.034311' (Errcode: -255699248 - No space left on device). Waiting for someone to free space...。让我成为这个"某人"。

当我删除数据库时,它重新启动然后再启动。中提琴。现在我们有了实例。现在我们可以删除/恢复数据库/更改存储空间。