标签: postgresql

`psql` 扩展模式等效于 `mysql`

我对以下事情感到沮丧:

0:33:1407402356:root@ahost:~# echo 'use wordpress_3_6_1; select * from wp_posts;'
 | mysql -u mysqluser -pmysqlpasswdord | wc -l -L
42   40585
Run Code Online (Sandbox Code Playgroud)

SQL 查询结果被破坏得很丑陋。

PostgreSQLpsql提供了 helper 特性扩展模式。看看它在行动:

postgres@ahost:~$ echo '\c openerp7-0 \\ select * from pg_shadow' | psql
You are now connected to database "openerp7-0" as user "postgres".
 usename  | usesysid | usecreatedb | usesuper | usecatupd | userepl |          
   passwd                | valuntil | useconfig 
----------+----------+-------------+----------+-----------+---------+----------
-------------------------+----------+-----------
 openerp |    16384 | t           | t        | t         | t …
Run Code Online (Sandbox Code Playgroud)

mysql postgresql command-line-interface psql echo

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

从 EC2 实例连接到 RDS——都在 VPC 内

我有一个带有两个私有子网的 VPC(需要两个子网才能设置 RDS 实例)。我有这个 VPC 的安全组,我们称之为vpc-sg。vpc-sg允许从我的家用机器在端口 22 上进行 TCP 访问,并允许所有出站流量。就是这样。

我在 VPC 内启动了一个面向公众的 EC2 服务器,我已将公共弹性 IP 附加到该服务器。我正在使用 EIP ssh 进入这个 EC2 服务器。我将安全组设置为vpc-sg. 我在 EC2 实例上安装了 PostgreSQL 9.2。

我在同一个 VPC 中有一个 RDS 实例。它也vpc-sg用于安全组。创建实例时,我被迫选择 PostgreSQL 9.3 版。我尝试从我的 EC2 实例访问 RDS PostgreSQL 数据库:

[ec2-user@ip-10-0-0-20 ~]$ psql the_db_name -U the_db_username -h my-db-instance.random-string.us-east-1.rds.amazonaws.com -p 5432 -W
Password for user the_db_username:
psql: could not connect to server: Connection timed out
        Is the server running on host "my-db-instance.random-string.us-east-1.rds.amazonaws.com" (10.0.0.147) …
Run Code Online (Sandbox Code Playgroud)

postgresql amazon-ec2 rds

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

具有共享磁盘的多个 Postgres 服务器(一个写入器,多个读取器)

这是场景:

  1. 一个分片(Gluster)
  2. 多个 Postgres 服务器

要求:

  1. 使用共享磁盘存储数据库文件
  2. 使用提供最大效率的配置

迄今为止的发现,

  1. 如本文档所述,可以使用共享磁盘来存储数据。但它也说“另一个问题是备用服务器不应该在主服务器运行时访问共享存储”。这意味着所有服务器(主服务器除外)都未使用,这对我们来说几乎是不可接受的。

  2. 由于我们使用的是共享磁盘,因此应该没有复制。在本文档中发现某些配置(原始和主/从模式)已经足够好了。但另一个问题是它们可能会导致上述问题。

问题:

  1. 网络上有很多文档让我对它们的要求和功能感到困惑。我的理解正确吗?
  2. 如果是这样,是否有可能实现这种设计(使用 pgpool 或任何其他工具)
  3. 如果是这样,请您命名工具和/或关键字,以便我可以找到更多信息。

注意(对于那些有兴趣尽可能多地结束问题的人)-它发生在我之前。有人说我正在寻找基于意见的答案。事实上我不是。我正在寻找的是技术名称或某种关键字,无论如何。这样我就可以通过使用它们来搜索更多信息。有时您需要知道一些关键字来搜索和查找信息。

提前致谢。

postgresql cluster database-replication

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

AWS EBS 中的 IO 操作 (IOP) 的大小是多少?

我的研究表明,现代文件系统(ext4、xfs)的标准块大小和最大(内核限制)块大小均为 4KB。但是,AWS 允许最大 256KB 的 IO 操作并说

对于 32 KB 或更小的 I/O 操作,您应该会看到已配置的 IOPS 量,前提是您驱动的 I/O 足够使驱动器保持忙碌。对于较小的 I/O 操作,您甚至可能会看到 IOPS 值高于您提供的值(在客户端测量时),这是因为客户端可能将多个较小的 I/O 操作合并为一个较小的数字大块。

Linux 在哪里公开和/或允许配置“设备块大小”?在说,postgres 中的全表扫描(8KB 块大小)时,您可以在哪里查看和/或配置操作系统问题的“IO 操作”的大小?

postgresql linux amazon-ebs iops amazon-web-services

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

PostgreSQL 无法启动。无法加载私钥文件 << server.key >> :键值不匹配

我正在尝试在我的 Linux Debian 7.2 服务器上安装 PostgreSQL,但它失败了。

这就是我所做的:

user ~ $ sudo apt-get install postgresql
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés :
  postgresql-9.1 postgresql-client-9.1 postgresql-client-common postgresql-common
Paquets suggérés :
  oidentd ident-server locales-all postgresql-doc-9.1
Les NOUVEAUX paquets suivants seront installés :
  postgresql postgresql-9.1 postgresql-client-9.1 postgresql-client-common postgresql-common
0 mis à jour, 5 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de …
Run Code Online (Sandbox Code Playgroud)

postgresql linux debian-wheezy

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

使用 PGPASSWORD 变量似乎不再适用于 Postgresql 9.3

在Posgresql你可以设置一个变量称为PGPASSWORD(和PGUSER),所以你不必使用PostgreSQL命令,如时使用的密码psql或pg_dump

但我有点困惑,因为我无法让它在 Postgresql 9.3.10 上工作,而且它仍然记录在他们的网站上,好像它应该工作一样。

所以命令像

PGPASSWORD=password psql -l

不管用。

我也不能事先声明它们,例如

PGUSER=root

PGPASSWORD=password

psql -l

它仍然要求输入密码(尽管在这种情况下,它应该使用 root 用户)

我让它以某种方式工作的唯一方法是通过执行该.pgpass文件,但它仅在使用特定数据库时才有效,星号不起作用并且它仅适用于 pg_dump,而不是所有 postgresql 命令,例如psql -l:

localhost:5432:*:root:password

pg_hba.conf如果有帮助,这些是我的设置:

local   all             root                                md5

    # TYPE  DATABASE        USER            ADDRESS                 METHOD

    # "local" is for Unix domain socket connections only
    local   all             all                                     peer
    # IPv4 local connections:
    host    all             all             127.0.0.1/32            md5
    # IPv6 local connections:
    host    all             all             ::1/128                 md5
Run Code Online (Sandbox Code Playgroud)

postgresql ubuntu postgresql-9.3

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

AWS RDS 在创建时不断备份我的服务器

我正在使用 Amazon CloudFormation 创建一个包含 EC2 和 RDS(Postgres 9.4.4、5gb、db.m1.small)的堆栈。RDS 实例一启动就启动备份。

如何阻止 RDS 在启动时对其进行备份?

这是 Postgres 日志:

2016-01-12 22:23:31 UTC::@:[2435]:LOG: database system is ready to accept connections
2016-01-12 22:23:31 UTC::@:[2448]:LOG: autovacuum launcher started
2016-01-12 22:23:34 UTC::@:[2445]:LOG: checkpoint starting: immediate force wait flush-all
2016-01-12 22:23:34 UTC::@:[2445]:LOG: checkpoint complete: wrote 23 buffers (0.0%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=0.005 s, sync=0.011 s, total=0.051 s; sync files=20, longest=0.011 s, average=0.000 s
2016-01-12 22:23:35 UTC::@:[2445]:LOG: checkpoint starting: immediate force wait
2016-01-12 22:23:35 …
Run Code Online (Sandbox Code Playgroud)

postgresql amazon-web-services amazon-rds

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

如何将 postgresql 与 LDAP 用户连接?

我有一台全新安装 postgresql-9.4 的服务器,我还有另一台安装了 LDAP 的服务器。我想将 postgresql 与已经存在的 LDAP 用户连接。

我应该在 /var/lib/pgsql/9.4/data/pg_hba.conf 中更改的基本配置是什么,我还应该做什么?

postgresql linux openldap database ldap

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

Postgres 出现太多打开文件错误

在 JAVA 应用程序上的 Ubuntu 14.04 服务器中,我们收到了 Postgres(使用 Postgresql 9.5)的 Too many Open files 错误。

我们在 /etc/security/limits.conf 中设置以下内容

* soft nofile 16384
* hard nofile 16384
root soft nofile 16384
root hard  nofile 16384
postgres soft nofile 16384
postgres hard  nofile 16384
Run Code Online (Sandbox Code Playgroud)

还要在 /etc/sysctl.conf 中设置以下内容

kern.maxfiles=20480
kern.maxfilesperproc=18000
Run Code Online (Sandbox Code Playgroud)

另请在以 Postgres 用户身份运行时查看以下结果:

-> ulimit -Hn
16384

-> ulimit -Sn
16384


-> cat /proc/sys/fs/file-max
100268
Run Code Online (Sandbox Code Playgroud)

重新启动服务器并检查 Postgres 的 ulimit 后为 100268。但是在检查 postgres 下打开文件的限制时,它仍然是 1024 和 4096

# cat /proc/1072/limits

Max open files            1024                 4096 …
Run Code Online (Sandbox Code Playgroud)

postgresql ulimit ubuntu-14.04

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

为 Postgresql 使用 Letsencrypt 证书

我已经在 Debian 8 Jessie 上为我的 NGINX 网络服务器成功配置了 Letsencrypt。

现在我已经安装了 Postgresql 9.4 并想使用 LE 证书(在/etc/letsencrypt/live/mydomain/com/...)进行 SSL 连接。我已经在配置文件 ( /etc/postgresql/9.4/main/postgresql.conf) 中设置了证书和密钥的路径。

可以预见的是,当我尝试通过pg_ctlcluster它重新启动 Postgres 时,由于Permission denied证书而失败。我知道 Postgresql 是使用用户postgres运行的,并且该用户无权访问此目录。

我如何以干净的方式解决这个问题?

postgresql permissions debian ssl-certificate lets-encrypt

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