标签: postgresql-10

无法加载库 plpython3.dll

在 Postgresql 版本 10 中创建扩展时出现错误

无法加载库“C:/Program Files/PostgreSQL/10/lib/plpython3.dll”:找不到指定的模块

CREATE EXTENSION plpython3u;
Run Code Online (Sandbox Code Playgroud)

注意:在 Window 10 上使用 Postgresql 10

plpython postgres-plpython postgresql-10

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

恢复转储时 psql 内存不足

我有一个大小约为 4.5GB(未压缩)的 PostgreSQL 文本转储文件,我试图恢复它,但由于内存不足而总是失败。

有趣的是,无论我尝试什么,它总是在转储文件的完全相同的行号处失败,这让我相信我尝试的更改没有效果。(我确实查看了文件中的这个行号,它只是另一行数据,文件中的那个点没有发生任何重要的事情。)

我正在使用带有 -f 选项的 psql,因为我读到它比标准输入更好。然而,这两种方法都失败了。

我尝试了以下方法:

  • 将 work_mem 从 4MB 增加到 128MB
  • 将共享缓冲区从 128MB 增加到 2GB
  • 将 VM 内存从 8GB 增加到 16GB

使用 Top 和 PG_Top 我可以看到(我相信显示)当 psql 失败时,操作系统和数据库仍然有可用的内存。我并不怀疑某个地方的内存不足,我只是希望我有一种更好的方式来说明那到底是什么。

其他可能有用的信息:

  • PostgreSQL 10.5
  • 在 VMWare 工作站上运行的 Ubuntu 16.04 LTS

postgresql postgresql-10

5
推荐指数
0
解决办法
1227
查看次数

为 PostgreSQL 设置 lc_monetary

如何设置将( docs ) 数据类型lc_monetary显示为 EUR?money

我试过:

  • 更改postgresql.conf并设置lc_monetary="de_DE.UTF-8@euro。PG 不会因此更改而启动(当前设置为en_US.UTF-8
  • 通过 pgAdmin 和 psql (使用)做同样的事情,set我得到ERROR: invalid value for parameter "lc_monetary"

我当前的整理是en_US.UTF-8.

postgresql collation postgresql-10

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

PostgreSQL 错误:CASE 中不允许设置返回函数

我尝试在 PostgreSQL 10 中运行此查询:

select e.errordescription,
       CASE 
        WHEN e.reworkempid is not null THEN get_empname(e.reworkempid) 
        else null 
      end  
from error_log_gs  e 
where e.qcworkpackageid=3012175 and e.logno=1 
Run Code Online (Sandbox Code Playgroud)

得到错误:

CASE 中不允许设置返回函数

sql postgresql set-returning-functions postgresql-10

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

为什么我们在postgresql上需要template0和template1?

我是Postgresql的初学者。在使用pgadmin安装和连接数据库时,我遇到了许多困难,我从所做的错误中学到了很多东西。现在我的疑问是,为什么\ l应该显示template0和template1,我在网上搜索了,但是不幸的是我没有找到合适的资源,但是我发现在删除两个DB(template0&template1)之后,我们无法创建数据库。

postgresql postgresql-10

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

使用 ANALYZE 从零/从头开始重建 PostgreSQL 统计信息的最快方法是什么?

我有一个大小约为 100GB 的 PostgreSQL v10 数据库。

重建统计信息的最有效(最快)方法是什么,例如在主要版本升级之后?

ANALYZE默认情况下,没有参数会更新整个数据库的统计信息——这太慢了!这似乎是一个单一的过程。

有没有办法并行化它以加快速度?

postgresql database-administration postgresql-10

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

如何在Debian的Postgres 10中使用scram-sha-256?获取“致命错误:密码身份验证失败”

我编辑了pg_hba.conf

sudo su postgres
nano /etc/postgresql/10/main/pg_hba.conf
Run Code Online (Sandbox Code Playgroud)

并添加以下行:

local   all             username                               scram-sha-256
Run Code Online (Sandbox Code Playgroud)

并且改变了这一切md5,以scram-sha-256在该文件中。

作为postgres用户,我创建了一个具有超级用户权限的新用户:

sudo su postgres
psql

CREATE USER username WITH SUPERUSER PASSWORD 'password';
Run Code Online (Sandbox Code Playgroud)

然后我重新启动了Postgres:

/etc/init.d/postgresql restart
Run Code Online (Sandbox Code Playgroud)

并尝试使用pgAdmin4登录,我在其中更改了数据库的Connection属性下的用户名。但是,无论如何,这都psql -U username testdb < ./testdb.sql不起作用:

严重:用户“用户名”的密码身份验证失败

那么如何在我的Debian9 / KDE机器上让Postgres使用scram-sha-256?早前工作时,我离开了所有md5pg_hba.conf原样。

authentication postgresql sasl-scram postgresql-10

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

pgAdmin4 - 无法联系 postgresql 应用程序服务器

我知道这个问题可能会被标记为重复,但请记住,我已经搜索了许多发布的解决方案,但我的错误尚未得到修复。

启动 postgres 时,出现以下错误:

无法联系 postgresql 应用程序服务器。

当以管理员身份运行时,错误已“解决”,但应用程序在另一个端口中打开 - 有时它在 50142、51120 中打开,而其他端口则在 50859 中打开 -。当它在另一个端口上打开时(如前面所说的),它会要求输入密码才能连接到服务器,我收到此错误:

无法连接到服务器:连接被拒绝 (0x0000274D/10061) 服务器是否在主机“localhost”(::1) 上运行并接受端口 5432 上的 TCP/IP 连接?无法连接到服务器:连接被拒绝 (0x0000274D/10061) 服务器是否在主机“localhost”(127.0.0.1) 上运行并接受端口 5432 上的 TCP/IP 连接?

信息:

  • Windows 10 64 位
  • PostgreSQL 10
  • pgAdmin 4.1
  • 端口 5432(甚至出现在 PostgreSQL\10\data\postgres.conf 中)

已经尝试过的解决方案:

  • 以管理员模式运行
  • 修改postgres.conf文件
  • 清除AppData\Roaming\pgAdmin文件夹的内容

我想知道在启动应用程序并始终在特定端口上打开时如何避免此错误。

postgresql pgadmin pgadmin-4 postgresql-10

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

获取分区表的表大小(Postgres 10+)

每周Postgres上遇到这个查询,它以字节为单位显示表、它们的大小、toast 大小和索引大小:

SELECT
  relname AS table_name,
  pg_size_pretty(pg_total_relation_size(relid)) AS total,
  pg_size_pretty(pg_relation_size(relid)) AS internal,
  pg_size_pretty(pg_table_size(relid) - pg_relation_size(relid)) AS external,
  pg_size_pretty(pg_indexes_size(relid)) AS indexes
FROM pg_catalog.pg_statio_user_tables 
ORDER BY pg_total_relation_size(relid) DESC;
Run Code Online (Sandbox Code Playgroud)

我知道 Postgres 正在为每个分区创建一个表,所以我分别为每个分区获取条目,但是有没有办法为每个表获取一行,无论该表是否分区?

postgresql postgresql-10 postgresql-11

4
推荐指数
2
解决办法
4176
查看次数

外部数据包装器“postgres_fdw”不存在(即使存在)

使用 PostgreSQL 10.10,来自超级用户postgres

CREATE EXTENSION postgres_fdw;
GRANT USAGE ON FOREIGN DATA WRAPPER postgres_fdw TO my_user;
Run Code Online (Sandbox Code Playgroud)

然后在执行以下操作时my_user

CREATE SERVER my_server
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (...);
Run Code Online (Sandbox Code Playgroud)

显示此错误消息:

Query 1 ERROR: ERROR:  foreign-data wrapper "postgres_fdw" does not exist
Run Code Online (Sandbox Code Playgroud)

以下是当前活动的外部数据包装器的列表(来自 psql):

postgres=# \dew
                      List of foreign-data wrappers
     Name     |  Owner   |       Handler        |       Validator
--------------+----------+----------------------+------------------------
 postgres_fdw | postgres | postgres_fdw_handler | postgres_fdw_validator
(1 row)
Run Code Online (Sandbox Code Playgroud)

为什么即使在被授予之后USAGE,用户my_user仍然无法看到/使用 postgres_fdw 外部数据包装器,就好像后者不存在一样?还需要采取更多步骤吗?

sql postgresql foreign-data-wrapper postgresql-10

3
推荐指数
1
解决办法
6579
查看次数