【发布时间】:2017-11-11 05:53:39
【问题描述】:
使用的服务:
- Google Compute Engine (GCE)(永远在线或抢占式)
- Ubuntu 16.04 LTS
- PHP
- 谷歌云 SQL
- 谷歌云 SQL 代理
问题:Google Cloud SQL 代理连接在 Google 关闭脚本启动之前关闭。
问题原因:“MySQL 服务器已消失”以及关闭期间 PHP 中的类似错误消息。
经过大量调查,似乎在关闭实例期间,在 Google Cloud Startup 脚本期间启动的数据库连接在 Shutdown Script 启动之前已关闭。
我已尝试更改 systemctl 服务的顺序,但找不到正确的加载顺序。
在图像创建期间,此内容被插入到 /lib/systemd/system/google-shutdown-scripts.service.d/bizzycloud.conf
[Unit]
After=apache2.service haproxy.service
Wants=apache2.service haproxy.service google-startup-scripts.service
启动脚本片段:
sudo /cloud_sql_proxy -dir=/cloudsql -instances_metadata /project/attributes/DB_Connections &
关闭脚本片段
echo "Shutting Down"
curl "http://localhost/run/shutdowntest.php" # < This reports database errors
sudo /cloud_sql_proxy -dir=/cloudsql -instances_metadata /project/attributes/DB_Connections & # < Reconnect back to the database
curl "http://localhost/run/shutdowntest.php" # < This reports database is ok
服务器启动时数据库没有问题,但一旦它们开始关闭,我们就会开始注意到问题。
我的 google-shutdown-scripts.service.d/bizzycloud.conf 文件似乎没有更改启动和关闭脚本的顺序。
这很可能与人们在“健康检查恢复”或服务器关闭期间遇到的随机 Cloud SQL 错误有关。
由于我们的设置非常不稳定,并且服务器一直在扩大和缩小规模,因此我们遇到了很多此类错误,因此是否有人能够帮助提出解决方案。
谢谢
【问题讨论】:
标签: php mysql google-cloud-platform google-cloud-sql systemctl