标签: postgresql

使用 COPY FROM 时 psql 拒绝访问文件

当我这样做时:

COPY "mytable" FROM '/my/file.csv' WITH DELIMITER AS ',' CSV;
Run Code Online (Sandbox Code Playgroud)

关于这一点:

-rw-r--r-- 1 peter peter 54819176 2011-07-21 13:17 file.csv
Run Code Online (Sandbox Code Playgroud)

psql 告诉我这个:

ERROR:  could not open file "/my/file.csv" for reading: Permission denied
Run Code Online (Sandbox Code Playgroud)

我怎样才能读取我的文件?谢谢!

- - 更新

看起来apparmor在 Ubuntu 中默认安装了一个叫做的东西。
似乎与评论中提到的 SELinux 具有相同的功能。

- - 更新

删除后apparmor,我仍然遇到同样的问题。 selinux未安装。

关于下面关于访问的评论,COPY FROM 正在从超级用户帐户运行(如果没有,它会给出不同的错误消息)和上面复制的文件权限,我理解为“每个人都可读”。

- - 更新

我试图访问postgres用户下的文件。它卡在树的特定位置

drwxr--r-- 6 peter peter 4096 2011-04-14 14:03 phm

postgres@dexter:/home/peter/PyPacks$ cd phm

bash: cd: phm: Permission denied

我想我会把文件放在其他地方,但这很奇怪!

postgresql psql csv

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

深入了解长时间运行的 INSERT INTO ... SELECT

我有一个更新汇总表的大型 SQL 插入语句。该过程通常每小时运行一次,并需要大约 5 到 10 分钟来计算这段时间内的唯一身份。我“愚蠢地”选择在 15 天内运行它,我想知道我是否可以做些什么来了解它的位置。该过程已经运行了 9 个小时。我只想知道它是否仍然是正在运行的 SELECT 查询,或者它是否正在插入数据:我需要知道我是否应该停止它并执行较小的批处理,或者我是否应该让它完成。

由于该声明,我知道服务器已经使用了 9 个小时:

select
    now() - xact_start
  , procpid
  , client_addr
  , client_port
  , current_query
from pg_stat_activity
where xact_start is not null
order by 1 desc
Run Code Online (Sandbox Code Playgroud)

实际查询是:

INSERT INTO summary_show_unique_personas(period, show_id, persona_id, interactions_count)
  SELECT
      date_trunc('hour', created_at) AS period
    , show_id
    , persona_id
    , COUNT(*)
  FROM
          twitter_interactions
    JOIN  show_bindings        USING(interaction_id)
    JOIN  twitter_personas     USING(screen_name)
  WHERE
        created_at >= '__PERIOD_START_AT__' AND created_at < '__PERIOD_END_AT__'
    AND interaction_created_at >= '__PERIOD_START_AT__' AND interaction_created_at < …
Run Code Online (Sandbox Code Playgroud)

postgresql

7
推荐指数
1
解决办法
1087
查看次数

与 PostgreSQL 或 MySQL 相比,DB2 是否更可靠和稳定?

我总是将 MySQL 或 PostgreSQL 用于我的项目,例如 Web/桌面应用程序。我有几次数据丢失,多亏了旧备份,我总是能正常运行。

但是对于机场最近的一个项目,我必须使用一些永远不会丢失数据的东西,至少在电路通电之前不会丢失数据库。

所以我认为 DB2 应该最适合这种风险较小的任务?任何想法或提示。

提前致谢。

mysql postgresql oracle db2

7
推荐指数
1
解决办法
3683
查看次数

将 MySQL/PostgreSQL 表结构可视化为图形/UML

是否有任何程序、源代码或 API 将采用 MySQL 或 PostgreSQL 模式并吐出 UML 或其他图形可视化?

mysql postgresql graph

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

用于构建实时分析系统的数据库

我想搭建一个类似Google Analytics的系统(仅供内部使用,流量少,功能少),主要关注

  1. 通过不同维度的用户人口统计信息,例如用户代理、操作系统、国家等,实时统计唯一的 URI 访问/PV

  2. 实时计算平均用户会话长度(如果来自同一IP的两个请求之间的差异小于1分钟)

有没有好的数据库存储可以实时启用这种查询?

ps 我目前正在测试 InfiDB。

mysql postgresql oracle database-design columnstore

7
推荐指数
1
解决办法
2816
查看次数

在不弄乱端口的情况下升级 postgre?

升级 Postgres的标准程序似乎要求我临时运行旧版本和新版本。这意味着我必须更改旧版本的端口。

考虑到我如何pg_upgrade准确地告诉在哪里可以找到数据目录,这似乎完全没有必要,它可以直接读取所有数据。

这真的是升级的唯一方法(除了转储/恢复),还是我误解了什么?难道我不能只要求升级者直接转换所有二进制数据文件,而不用弄乱用户、密码和端口吗?

postgresql upgrade

7
推荐指数
1
解决办法
337
查看次数

以非超级特权用户身份创建 UUID 扩展

我需要在我的数据库上加载 uuid 扩展,这是在运行时创建的。创建数据库的用户不是超级用户,她只有“CREATEDB”权限。

有没有办法做到这一点?谢谢。

postgresql postgresql-extensions

7
推荐指数
1
解决办法
4319
查看次数

提高 PostgreSQL 中的排序性能?

我在 postgres-8.4 中有一个简单的博客数据库,它有两个表,articlescomments. 我有一个查询(由 Django 生成),想要获取类型为“NEWS”的最新文章并查找该文章的评论数量。它通过以下查询做到这一点:

SELECT "articles"."id", "articles"."datestamp", "articles"."title", "articles"."shorttitle", "articles"."description", "articles"."markdown", "articles"."body", "articles"."idxfti", "articles"."published", "articles"."type", COUNT("comments"."id") AS "comment__count"
FROM "articles"
LEFT OUTER JOIN "comments" ON ("articles"."id" = "comments"."article_id")
WHERE ("articles"."type"='NEWS')
GROUP BY "articles"."id", "articles"."datestamp", "articles"."title", "articles"."shorttitle", "articles"."description", "articles"."markdown", "articles"."body", "articles"."idxfti", "articles"."published", "articles"."type"
ORDER BY "articles"."datestamp" DESC
LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

这些表都不是特别大,但该查询需要 46 毫秒。执行计划是:

Limit  (cost=119.54..119.58 rows=1 width=1150) (actual time=46.479..46.481 rows=1 loops=1)
   ->  GroupAggregate  (cost=119.54..138.88 rows=455 width=1150) (actual time=46.475..46.475 rows=1 loops=1)
     ->  Sort  (cost=119.54..120.68 rows=455 width=1150) (actual …
Run Code Online (Sandbox Code Playgroud)

postgresql performance index

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

PostgreSQL 中的流式复制

我正在尝试在一台机器上设置两台 PostgreSQL 服务器并执行流式复制。我已经成功过一次,但是当我按照完全相同的步骤再次尝试时它不起作用..这些是步骤:我有 $PGDATA = home/postgresql/9.1/data 和 $STANDBY = home/postgresql/9.1 /数据2

  1. 设置两个节点:
    initdb -D $PGDATA
    initdb -D $STANDBY
  2. 在主节点中创建一个用户进行复制。我在 pgAdmin 中这样做(它确实具有超级用户权限)
  3. 在 pg_hba.conf 中的主节点中添加允许备用连接的部分: host replication repuser 127.0.0.1/0 md5
  4. 在 postgresql.conf 中的 master 节点中设置:

    max_wal_senders = 1
    归档模式 = 开
    存档命令 = 'cp %p ~/postgresql/backup/archivedir/%f'
    wal_level = 存档
    wal_keep_segments = 32

  5. 启动主节点并做基础备份:

    psql -d dellstore2 -c "SELECT pg_start_backup('backup for replication', true)"
    rsync -av ${PGDATA}/ $STANDBY --exclude postmaster.pid
    psql -d dellstore2 -c "选择 pg_stop_backup()"
    
    pg_stop_backup 表示一切正常,所有 WAL 文件都已存档

  6. 在备用 (data2) 节点中,我使用以下命令创建 …

postgresql replication

7
推荐指数
1
解决办法
3636
查看次数

Postgres 主键以相反的顺序排序。它会有效地使用索引吗?

我的 Rails 数据库由 Postgres 数据库支持。您可能知道,Rails 中的每个表都分配了一个主键,该主键是 Integer 类型并已编入索引。

我的列表视图以相反的时间顺序显示记录。所以我只是按照主键的相反顺序对我的结果集进行排序。

我的问题是:查询会使用主键索引吗?如果是,那么那么有效吗?我如何验证?

在此先感谢您的时间。

巴拉特

postgresql index primary-key sorting

7
推荐指数
2
解决办法
7658
查看次数