几周前我删除了一个数据库,但它仍然显示为\l. 我试过使用DROP DATABASE mixmobi_master;,第一次它给了我一条确认消息,但mixmobi_master仍然出现\l. 现在,当我再次尝试该命令时,我得到:
template1=# \l
template1=# drop database mixmobi_master;
ERROR: database "mixmobi_master" does not exist
template1=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-------------------------+-------+----------+-------------+-------------+-------------------
biterator_development | kyle | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
mixmobi_master | kyle | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
plantjotter_development | kyle | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | atmos | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | atmos | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/atmos +
| | | | | atmos=CTc/atmos
template1 | atmos | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/atmos +
| | | | | atmos=CTc/atmos
(6 rows)
Run Code Online (Sandbox Code Playgroud)
每隔几分钟左右它也会给我这个错误信息:
FATAL: database "mixmobi_master" does not exist
DETAIL: It seems to have just been dropped or renamed.
Run Code Online (Sandbox Code Playgroud)
有人有建议吗?我正在运行 Lion 并使用过 Atmos 的 Cinderella 环境。
我使用了@Erwin 的建议并得到了这个:
template1=# SELECT * FROM pg_stat_database WHERE datname = 'mixmobi_master';
datid | datname | numbackends | xact_commit | xact_rollback | blks_read | blks_hit | tup_returned | tup_fetched | tup_inserted | tup_updated | tup_deleted | conflicts | stats_reset
-------+----------------+-------------+-------------+---------------+-----------+----------+--------------+-------------+--------------+-------------+-------------+-----------+-------------------------------
16387 | mixmobi_master | 0 | 9 | 2118 | 262 | 1826 | 2181 | 1157 | 0 | 0 | 0 | 0 | 2012-01-24 11:47:34.692079-06
(1 row)
template1=# SELECT pg_terminate_backend(procpid)
template1-# FROM pg_stat_activity
template1-# WHERE datname = 'mixmobi_master';
pg_terminate_backend
----------------------
(0 rows)
Run Code Online (Sandbox Code Playgroud)
还有其他人有什么建议吗?我仍然收到这些错误,到目前为止没有任何效果!在此先感谢您的时间!
我猜想当您最初删除数据库时您已经打开了连接/事务并且 DROP 以某种方式停止了。
您可以通过统计视图获取有关数据库的更多信息。例如:
SELECT * FROM pg_stat_database WHERE datname = 'mixmobi_master';
Run Code Online (Sandbox Code Playgroud)
如果您发现打开的后端进程,您可能需要像这样关闭它们:
SELECT pg_terminate_backend(procpid)
FROM pg_stat_activity
WHERE datname = 'mixmobi_master';
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅此处的手册。
在这个相关答案中找到一种安全的方法来删除负载下的数据库:
| 归档时间: |
|
| 查看次数: |
1306 次 |
| 最近记录: |