小编Rob*_*ark的帖子

如何在 PostgreSQL 中列出 SQL 中的所有视图?

如何在 PostgreSQL 中使用 SQL 命令列出数据库的所有视图?

我想要类似于 psql\dv命令的输出的东西,但最好只是一个视图名称列表。例如,

SELECT ...;
my_view_1
my_view_2
my_view_3
Run Code Online (Sandbox Code Playgroud)

我在 Ubuntu Linux 上运行 PostgreSQL v9.1.4。

postgresql view postgresql-9.1

53
推荐指数
4
解决办法
12万
查看次数

postgresql:如何转储和恢复集群的角色?

角色存储在集群中的什么位置,如何转储它们?

我做了一个 db 的 pg_dump 然后将它加载到不同的集群中,但我收到了很多这些错误:

psql:mydump.sql:3621: ERROR:  role "myrole" does not exist 
Run Code Online (Sandbox Code Playgroud)

所以显然我的数据库的转储不包括角色。我尝试转储“postgres”数据库,但我也没有看到那里的角色。

我需要使用pg_dumpall --roles-only吗?

Postgresql 版本 8.4.8 和 9.1.4 操作系统:Ubuntu 11.04 Natty

postgresql dump role restore

40
推荐指数
1
解决办法
4万
查看次数

如果连接丢失/中断,Postgres 长时间运行的查询是否会中止?

如果我打开到 Postgres 的连接并发出长时间运行的查询,然后断开连接(例如,终止打开连接的客户端进程),长时间运行的查询会继续运行,还是会自动中止?这个可以配置吗?

(我使用的是 Postgresql 9.2.9)

postgresql connections

25
推荐指数
2
解决办法
2万
查看次数

如何运行特定版本(8.4、9.1)的 postgresql pg_* 命令(例如 pg_dump)

我安装了 Postgresql 8.4 和 9.1 版。对于任何给定的 Postgresql 命令,如何指定要运行的命令的特定版本?(例如, psql, pg_dump, pg_ctlcluster, pg_restore, ...)

我的问题是想要做一个 pg_dump 以准备从 8.4 升级到 9.1,我想知道我正在运行哪个 pg_dump 版本。

我在 Ubuntu 10.04 Natty 上运行。

postgresql ubuntu

11
推荐指数
2
解决办法
1万
查看次数

如何重命名 PostgreSQL 集群?

我用谷歌搜索并找到了这个旧网页,上面写着只是要更改目录的名称。我试过了,但没有用:

$ pg_lsclusters 
Version Cluster   Port Status Owner    Data directory                     Log file
8.4     main      5432 down   postgres /var/lib/postgresql/8.4/main       /var/log/postgresql/postgresql-8.4-main.log
9.1     main      50420 online postgres /var/lib/postgresql/9.1/main       /var/log/postgresql/postgresql-9.1-main.log$ pg_ctlcluster 9.1 main stop

$ pwd
/var/lib/postgresql/9.1

$ ls
main

$ mv main oldmain

$ pg_ctlcluster 9.1 oldmain start
Error: specified cluster does not exist
Run Code Online (Sandbox Code Playgroud)

PostgreSQL 9.1.4,Ubuntu 11.10

postgresql maintenance

8
推荐指数
2
解决办法
8371
查看次数

当 9.1“主”已经存在时,如何将“主”集群从 8.4 升级到 9.1?

我有一个现有的 8.4 集群(名为main),我想升级到 9.1。但是,当我去升级它时,我收到一个错误,因为 9.1 已经有一个名为的集群main(显然是我执行 a 时创建的默认集群sudo apt-get install postgresql-9.1-postgis):

$ pg_upgradecluster 8.4 main
Error: target cluster 9.1/main already exists
Run Code Online (Sandbox Code Playgroud)

我该怎么办?
删除默认的 9.1/主集群?如何?
重命名 9.1/主集群?如何?

Postgresql 默认main集群有什么特别之处吗?

Ubuntu 11.10 Oneiric、Postgresql 8.4.8 和 9.1.4

更新:我刚刚发现了这个AskUbuntu 问答,它说首先做一个pg_dropcluster --stop 9.1 main 我试过的,它奏效了。所以现在我想知道默认 9.1main集群中是否有任何数据、配置设置等可能会因为删除而丢失?

postgresql ubuntu upgrade

5
推荐指数
1
解决办法
3478
查看次数