Postgresql 删除没有 运行 服务的表空间
Postgresql deleting a tablespace without running service
在重置过程中,我们还需要重置 PostgreSQL 数据库(在 Gentoo 上),这意味着要彻底清除给定的数据库。在此期间,我们只能访问文件系统。正如文档中所述,并已被现实证明 - 仅删除表空间文件是行不通的,也不是一个好主意。
删除应该发生在应用程序启动并连接到数据库之前。
我的第二个难题是在 init.d 中创建一个脚本,等待 PostgreSQL 进程启动,然后 运行 著名的删除数据库和 dro 表空间语句:echo 'DROP DATABASE foo; \n DROP TABLESPACE foo' | psql -U postgres
。
有没有更好的方法,或者类似 PostgreSQL 的启动挂钩目录?
您无法删除文件系统上的数据,您必须像您展示的那样通过 SQL 来完成。要挂接到启动程序,您必须破解 C 并可能修改 PostgreSQL.
您可以确保在数据库启动完成后启动您的启动脚本。
在重置过程中,我们还需要重置 PostgreSQL 数据库(在 Gentoo 上),这意味着要彻底清除给定的数据库。在此期间,我们只能访问文件系统。正如文档中所述,并已被现实证明 - 仅删除表空间文件是行不通的,也不是一个好主意。
删除应该发生在应用程序启动并连接到数据库之前。
我的第二个难题是在 init.d 中创建一个脚本,等待 PostgreSQL 进程启动,然后 运行 著名的删除数据库和 dro 表空间语句:echo 'DROP DATABASE foo; \n DROP TABLESPACE foo' | psql -U postgres
。
有没有更好的方法,或者类似 PostgreSQL 的启动挂钩目录?
您无法删除文件系统上的数据,您必须像您展示的那样通过 SQL 来完成。要挂接到启动程序,您必须破解 C 并可能修改 PostgreSQL.
您可以确保在数据库启动完成后启动您的启动脚本。