标签: postgresql

无法使用 pg_dump,找不到命令

我目前有两个数据库在生产中运行。一个是主人,另一个是奴隶。我使用流复制。我正在考虑使用 pg_dump 并将文件发送到亚马逊 S3。我已经知道如何执行所有这些后勤工作。但是,我似乎无法运行 pg_dump。

当我运行此命令时:

pgdump -U django_login django_db -Fc > db.backup
Run Code Online (Sandbox Code Playgroud)

我收到以下回复:

No command 'pgdump' found, did you mean:
 Command 'pg_dump' from package 'postgresql-client-common' (main)
Run Code Online (Sandbox Code Playgroud)

所以我检查了我是否安装了 postgresql-client-common。为了检查,我跑了:

~$ sudo apt-get install postgresql-client-common
Reading package lists... Done
Building dependency tree       
Reading state information... Done
postgresql-client-common is already the newest version.
postgresql-client-common set to manually installed.
Run Code Online (Sandbox Code Playgroud)

所以我知道我已经安装了它。我再次运行命令:

pgdump -U django_login django_db -Fc > db.backup
Run Code Online (Sandbox Code Playgroud)

并收到了同样的回应。我目前正在运行 postgresql 9.1。我该怎么做才能解决这个问题?

postgresql

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

Postgres 8.4 停止工作

今天早上,一台运行 Postgres 8.4.x 服务器的 Windows 7 机器停止正常工作。错误非常奇怪:

  • 根据服务控制面板,该服务运行。
  • 令人惊讶的是,服务器实际运行,因为我们可以用两种pgAdmin的和我们自己的基于ODBC的软件,但连一些疑问崩溃(我们说的是如何发现它的分解)。
  • 既不启动也不停止服务器做任何事情,并且都返回错误,要么无法访问数据目录,要么根本没有有用的错误(net helpmsg 完全没有给我任何信息)。

事件查看器,其中大部分都存在多次,并且在启动或尝试启动/停止服务器时发生。

PostgreSQL - Error - Se agotó el tiempo de espera al inicio del servidor
2013-12-03 21:33:32 GMT FATAL:  el archivo de bloqueo «postmaster.pid» ya existe
2013-12-03 21:33:32 GMT HINT:  ¿Hay otro postmaster (PID 2952) corriendo en el directorio de datos «C:/Program Files (x86)/PostgreSQL/8.4/data»?
pg_ctl: no se pudo encontrar el ejecutable postgres
2013-12-03 18:46:34 CET FATAL:  no se pudo crear ningún socket …
Run Code Online (Sandbox Code Playgroud)

postgresql windows

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

为 AWS RDS PostgreSQL 创建只读账户

我想为 AWS (PostGreSQL) 中的所有 RDS 实例创建一个只读帐户。我首先创建了一个 IAM 组并附加了 AmazonRDSReadOnlyAccess 策略。我创建了一个新的 IAM 用户并将他放在这个组中。我无法使用这个新的只读用户连接到我们的数据库(使用我们的管理员帐户成功测试就好了)。我现在意识到我在数据库本身中没有只读用户。这向我提出了三个问题:

  1. 当我可以在数据库中创建只读数据库用户时,为我们的 RDS 实例创建只读 IAM 用户是否有意义?
  2. 当我通过命令行访问数据库时,例如。psql --host=servername --port=portnumber --username=username --password --dbname=databasename。据我了解,这是数据库用户的名称,因此创建单独的 RDS IAM 只读用户是否有意义?
  3. 如果我有 RDS 的只读 IAM 用户,如果说其他人为他们创建了一个数据库写帐户,他们仍然拥有写访问权限是否有任何危险?

postgresql amazon-web-services amazon-rds

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

在 Postgresql 中使用 Let's Encrypt 证书

我正在尝试设置与运行 postgresql 的服务器的远程数据库连接。我已经在使用 LE 证书的远程服务器上运行 nginx。我的问题是 postgresql 证书是否需要像让我们加密这样的 CA 签名,或者自签名证书是否就足够了。我试图了解对我的数据库连接使用自签名证书时的安全风险是什么。

postgresql ssl ssl-certificate lets-encrypt

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

在 Centos 7 上移动数据目录后 PostgreSQL 无法启动

我已经在 Centos 7 上安装了 PostgreSQL 9.3。安装后我可以启动系统服务并登录到 psql。我想将 PGDATA 文件夹移动到另一个分区,所以我尝试了几种方法来更改 DATADIR。

我将/var/lib/pgsql/data文件夹复制到/postgresdata/data,然后创建了一个符号链接:

systemctl stop postgresql
cp -rp /var/lib/pgsql/data /postgresdata/data
mv /var/lib/pgsql/data /var/lib/pgsql/data.old
ln -s /postgresdata/data /var/lib/pgsql/data
systemctl start postgresql
Run Code Online (Sandbox Code Playgroud)

该文件夹/postgresdata/设置为 700,所有者为 postgres。

这会导致以下错误:

postgresql.service 的作业失败,因为控制进程退出并显示错误代码。有关详细信息,请参阅“systemctl status postgresql.service”和“journalctl -xe”。

我也尝试了其他两种方法,都导致相同的错误:

方法一:更改postgresql.conf

data_directory = '/postgresdata/data'
Run Code Online (Sandbox Code Playgroud)

方法二:更改系统服务设置:

vim /usr/lib/systemd/system/postgresql.service
Run Code Online (Sandbox Code Playgroud)

然后改变:

# Environment=PGDATA=/var/lib/pgsql/data
Environment=PGDATA=/postgresdata/data
Run Code Online (Sandbox Code Playgroud)

两者都会导致相同的错误。

当我跑步时,journalctl -xe我得到了这个:

-- Unit postgresql.service has begun starting up.
apr 25 15:08:03 srv001 pg_ctl[15517]: FATAL:  could not open file "/postgresdata/data/PG_VERSION": Permission denied …
Run Code Online (Sandbox Code Playgroud)

postgresql postgresql-9.3 centos7

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

使用 pg_dumpall、split & gzip & --set ON_ERROR_STOP=on 备份和恢复 Postgres

我有一个在 CentOS 7.3 上运行的 PostgreSQL 9.4 数据库。该数据库相当普通,通过https://yum.postgresql.org/安装。

我正在尝试备份此数据库,并在另一台主机上测试恢复。如果我尝试使用 进行恢复--set ON_ERROR_STOP=on,则恢复会失败。为什么是这样?

我的备份过程基于https://www.postgresql.org/docs/9.4/static/backup-dump.html上的建议。在全新安装 Postgres(其中包括 initdb)后,我使用以下命令。

pg_dumpall --clean | gzip | split --suffix-length=4 --numeric-suffixes --additional-suffix=.split.gz --bytes 1G - postgres.pg_dumpall.
Run Code Online (Sandbox Code Playgroud)

这会产生一系列如下文件:

[postgres@db1 backups]$ ls
postgres.pg_dumpall.0000.split.gz
postgres.pg_dumpall.0001.split.gz
...
postgres.pg_dumpall.0040.split.gz
[postgres@db1 backups]$
Run Code Online (Sandbox Code Playgroud)

为了恢复,我想我可以使用cat,gunzippsql --set ON_ERROR_STOP=on。但这不起作用:

[postgres@db2 ~]$ cat postgres.pg_dumpall.*.split.gz | gunzip | psql --set ON_ERROR_STOP=on postgres
SET
SET
SET
ERROR:  database "foo" does not exist
[postgres@db2 ~]$
Run Code Online (Sandbox Code Playgroud)

如果我删除 ,该命令将完成--set ON_ERROR_STOP=on,但我不清楚备份存档是否有效。

postgresql backup

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

迁移后 Postgres-RDS CPU 使用率高

我们今天部署了我们的软件更新(3 个 EC2 实例)并迁移到了我们的 RDS(db.t2.medium、Postgres),这将一列添加到了大约 15 行的表中。在迁移之前,我们的 CPU 使用率约为“2”。迁移后,CPU 使用率增加到“60”。数据库重启后,它下降了,但又上升了。

作为旁注:迁移后,我们尝试使用 GUI 进行连接,但它在 SSL 验证时挂起。我们重新启动 GUI,它再次工作。

对此有何建议?这是当前指标的屏幕截图。您可以清楚地看到使用量的增加。

来自 RDS 仪表板的当前指标

我们目前使用的是 PostgreSQL 9.6.2!

postgresql migration amazon-web-services rds

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

Postgresql 8.4 调优指南

我正在努力寻找一些有用的指南,为我指明正确的方向。我有一个小数据库(~100MB,最大的表有 800k 条记录),但是基于几个组合连接的数据获取似乎很慢,尽管 EXPLAIN 中的语句看起来很好(主要是索引使用,部分是 Seq Scan)。

请告诉我您认为哪些指南有用。

非常感谢!

postgresql

0
推荐指数
1
解决办法
1628
查看次数

如何加速数据库 - 仅限硬件

简单的问题 - 仅使用硬件来提高数据库性能的最佳方法是什么?

在这种情况下,一次有 1-4 个进程会定期查询一些非常非常大的表。

我们正在执行数以千计的查询,其中许多需要 +10 秒才能返回,而且所有查询都只返回少量数据。这向我表明 HDD 寻道时间是瓶颈。

作为此过程的一部分,我们还需要根据原始数据表创建汇总表。其中一个查询可能需要数小时才能运行。

请假设所有软件/数据库优化都已经完成。

假设这是因为我们花了一些时间进行代码/数据库优化,并准备在硬件上花费一些预算。我知道更多的软件/数据库优化是可能的,但这不是当前的重点。

我们目前没有用完 ram,但可能会分配更多给 DB。

当前平台是windows,这可能会根据硬件解决方案而改变。

数据库是 postres 8.4。

谢谢。

postgresql hardware windows database

0
推荐指数
1
解决办法
1166
查看次数

64 位 linux 或 64 位 Windows Server 2008 上的 postgres?

Postgres 没有用于 Windows 服务器的 64 位二进制文​​件

引用 “因为通常没有理由在 Windows 上使用 shared_buffers > 256 - 512MB 运行,所以没有很大的动力去投入 64 位端口所需的努力”

  1. 为什么通常没有理由在 Windows 上运行大量内存?
  2. 64 位 linux 安装会更有效率吗?如果是,是哪个?

这台服务器有 8Gb 内存,这个数字可能会增加到 12Gb。我们打算将几乎所有的内存分配给 postgres。对于我正在做的事情,我可以很高兴地在没有 UI 的情况下进行。

postgresql linux windows-server-2008 64-bit

0
推荐指数
1
解决办法
4163
查看次数