Postgresql Postgres:如何在数据库启动后立即启动一个过程?
我有几十个未标记的表,doc说一个未标记的表在崩溃或不干净的关机后会自动被截断 基于此,我需要在数据库开始后检查一些表,看看它们是否为空,并对此采取一些措施 所以简而言之,我需要在数据库启动之后执行一个过程 怎样做才是最好的方法Postgresql Postgres:如何在数据库启动后立即启动一个过程?,postgresql,Postgresql,我有几十个未标记的表,doc说一个未标记的表在崩溃或不干净的关机后会自动被截断 基于此,我需要在数据库开始后检查一些表,看看它们是否为空,并对此采取一些措施 所以简而言之,我需要在数据库启动之后执行一个过程 怎样做才是最好的方法 PS:我在Ubuntu12.04服务器上运行Postgres9.1。在撰写本文时没有这类功能,最新版本是PostgresQl9.2。您唯一的选择是: 从postgresqlinit脚本启动一个脚本,该脚本轮询数据库,并在数据库准备就绪时锁定表并填充它们 修改启动脚本以使
PS:我在Ubuntu12.04服务器上运行Postgres9.1。在撰写本文时没有这类功能,最新版本是PostgresQl9.2。您唯一的选择是: 从postgresqlinit脚本启动一个脚本,该脚本轮询数据库,并在数据库准备就绪时锁定表并填充它们 修改启动脚本以使用pg_ctl start-w,并在pg_ctl返回时调用脚本;这具有相同的竞争条件,但无需轮询 教导应用程序在打开新池连接时运行测试,以检测此情况、锁定表并填充它们;或 如果应用程序在打开新连接时无法处理空表,则不要使用未标记的表执行此任务 有人讨论过pgsql黑客的连接时间挂钩,但没有发布和合并可行的实现
您可以使用PostgreSQL bgworkers执行类似的操作,但这比简单地从脚本轮询DB要困难得多。在编写本文时,没有此类功能可用,最新版本是PostgreSQL 9.2。您唯一的选择是: 从postgresqlinit脚本启动一个脚本,该脚本轮询数据库,并在数据库准备就绪时锁定表并填充它们 修改启动脚本以使用pg_ctl start-w,并在pg_ctl返回时调用脚本;这具有相同的竞争条件,但无需轮询 教导应用程序在打开新池连接时运行测试,以检测此情况、锁定表并填充它们;或 如果应用程序在打开新连接时无法处理空表,则不要使用未标记的表执行此任务 有人讨论过pgsql黑客的连接时间挂钩,但没有发布和合并可行的实现 您可以使用PostgreSQL bgworkers执行类似操作,但这比简单地从脚本轮询数据库要困难得多。Postgres现在已经有了PGU,可以确定数据库是否准备就绪。 Postgres现在已经准备好了pg_来确定数据库是否准备就绪。
可能是一个小bash脚本,它将在DB启动后立即启动?在这样的脚本中,您可以使用psql调用数据库中的函数。不幸的是,我无法更改数据库启动脚本。我需要数据库自己来做。也许是一个小的bash脚本,它会在数据库启动后立即启动?在这样的脚本中,您可以使用psql调用数据库中的函数。不幸的是,我无法更改数据库启动脚本。我需要用数据库自己做。