如何在 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。
角色存储在集群中的什么位置,如何转储它们?
我做了一个 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
如果我打开到 Postgres 的连接并发出长时间运行的查询,然后断开连接(例如,终止打开连接的客户端进程),长时间运行的查询会继续运行,还是会自动中止?这个可以配置吗?
(我使用的是 Postgresql 9.2.9)
我安装了 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 上运行。
我用谷歌搜索并找到了这个旧网页,上面写着只是要更改目录的名称。我试过了,但没有用:
$ 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
我有一个现有的 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 ×6
ubuntu ×2
connections ×1
dump ×1
maintenance ×1
restore ×1
role ×1
upgrade ×1
view ×1