使用的服务:
- Google Compute Engine (GCE)(永远在线或抢占式)
- Ubuntu 16.04 LTS
- PHP
- 谷歌云 SQL
- 谷歌云 SQL 代理
问题:Google Cloud SQL 代理连接在 Google 关闭脚本启动之前关闭。
问题原因:关闭期间 PHP 中出现“MySQL 服务器已消失”和类似错误消息。
经过大量调查后,似乎在关闭实例期间,在 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 错误或服务器关闭时遇到的类似问题有关。
是否有人能够帮助提出解决方案,因为我们的设置非常不稳定,服务器一直在扩大和缩小,所以我们遇到了很多这些错误。
谢谢