google-cloud-platform - PostgreSQL 数据库定期处于恢复模式

标签 google-cloud-platform google-cloud-sql

我们经常收到此错误,数据库正在进入恢复模式,应用程序连接不足。一段时间后~ 3 到 5 分钟它恢复。这是无法接受的。

应用异常:

      at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:118)
      at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:692)
      at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:140)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
      at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
      at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:677)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
      at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
      at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
      at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
      at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1458)
      at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      at java.lang.Thread.run(Thread.java:748)
Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
      at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1469)
      at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:644)
      at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:554)
      at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutAndMarkConnectionInUse(C3P0PooledConnectionPool.java:758)
      at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:685)
      ... 34 more
Caused by: org.postgresql.util.PSQLException: FATAL: the database system is in recovery mode
      at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:463)
      at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:203)
      at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
      at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:195)
      at org.postgresql.Driver.makeConnection(Driver.java:454)
      at org.postgresql.Driver.connect(Driver.java:256)
      at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:175)
      at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:220)
      at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:214)
      at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1138)
      at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1125)
      at com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)
      at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870)
      at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)

可悲的是,Stackdriver 日志记录中没有错误和警告。
检查维护窗口和备份计划,没有一个与这些“数据库处于恢复模式”事件一致。

最佳答案

我遇到了同样的问题并联系了 Google Cloud 支持。这是由打开 Query Insights 引起的。

This happens when the Query Insights are active, and after reviewing your instances I notice that it has the Query Insights enabled. To disable this, please follow these steps:

1 - Log in to the GCP Console. 2 - Click on the name of the instance, then go to the Overview page. 3 - On the Configuration section, click Edit Configuration. 4 - Search for Query insights on the Configuration options 5 - Uncheck the Enable Query Insights 6 - Click Save. 7 - Try to run the schema change command.

关于google-cloud-platform - PostgreSQL 数据库定期处于恢复模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54782517/

相关文章:

google-cloud-platform - 我可以为 Terraform for GCP 授予管理员角色吗? (Cloud Run 域映射示例)

authentication - 使用不同的服务帐户并行调用 gcloud,并自动使用其项目 ID

java - 从端点 API 方法生成字符串响应(java)

google-cloud-platform - 更改 google sql 云中的区域

ruby-on-rails - Rails 5、Google 容器引擎和 Google Cloud SQL

google-cloud-platform - 将 Google Cloud Run 服务连接到 Google Cloud SQL 数据库

python - 在谷歌云函数中访问用户定义的包(ModuleNotFoundError : No module named. ..)

python - Google Cloud Functions - 如何对 AWS S3 存储桶进行身份验证?

php - 在 Google App Engine 上运行 Wordpress 时出现数据库错误

postgresql - SonarQube:如何连接到支持 SSL 的 Google Cloud Postgresql 服务器