标签: postgresql

postgres 真空

好的,我已经搬到一家新公司,我看到他们在这里有一个 PostgreSQL 数据库来运行 OpenNMS。

我是一个 MySQL 人,对 PostgreSQL 一点也不熟悉,但我至少学会了如何运行psqlpostgres -D进入单用户模式。

无论如何,OpenNMS 崩溃了。我进入并追踪到 PostgreSQL,给出了这个错误:

WARNING:  database "template1" must be vacuumed within 965550 transactions
HINT:  To avoid a database shutdown, execute a full-database VACUUM in "template1".
Run Code Online (Sandbox Code Playgroud)

它实际上从 100 万开始,而我已经下降到 965500,如您所见。我已经通过登录单用户 ( postgres -D) 并完全运行 Vacuum来达到这一点。现在我希望这可以清理它,但结果正好是 55 行:

WARNING:  database "template1" must be vacuumed within 938861 transactions
HINT:  To avid a database shutdown, execute a full-database VACUUM in "template1".
WARNING:  database "template1" must be vacuumed within 938860 transactions …
Run Code Online (Sandbox Code Playgroud)

postgresql opennms vacuum

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

Dovecot - 身份验证:致命:未知数据库驱动程序“pgsql”

我正在尝试使用 postgresql 支持配置 Dovecot + Postfix + PostfixAdmin。我成功配置了 postfix 以将电子邮件发送到我的域的别名,现在我想在我的服务器上配置实际的邮箱支持。我遵循了 dovecot 2 wiki ( http://wiki.dovecot.org/AuthDatabase/SQL )上数据库支持的配置选项,dovecot 启动时没有错误,但在第一次尝试通过 IMAP 连接时,dovecot 在邮件日志上抱怨:

auth: Fatal: Unknown database driver 'pgsql'
Run Code Online (Sandbox Code Playgroud)

我确定 dovecot 有 postgres 支持,这里是 dovecot --build-options 的输出:

Build options: ioloop=epoll notify=inotify ipv6 openssl io_block_size=8192
Mail storages: cydir dbox maildir mbox mdbox raw shared
SQL driver plugins: mysql postgresql sqlite
Passdb: checkpassword ldap pam passwd passwd-file shadow sql
Userdb: checkpassword ldap(plugin) nss passwd prefetch passwd-file sql
Run Code Online (Sandbox Code Playgroud)

附加信息:

/etc/dovecot/conf.d/auth-sql.conf.ext

passdb {
  driver = pgsql
  # …
Run Code Online (Sandbox Code Playgroud)

postgresql postfix dovecot

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

Cron 作业无法备份 Postgres 数据库

我不确定这里发生了什么:

我有一个在 root 下运行良好的备份脚本。它会在正确的目录中生成一个 >300kb 的数据库转储。

但是,当使用完全相同的命令将其作为 cron 作业运行时,会出现一个空的 gzip 文件,其中没有任何内容。

cron 日志显示没有错误,只是命令已运行。

这是脚本:

#! /bin/bash

DIR="/opt/backup"
YMD=$(date "+%Y-%m-%d")
su -c "pg_dump -U postgres mydatabasename | gzip -6 > "$DIR/database_backup.$YMD.gz" " postgres

# delete backup files older than 60 days
OLD=$(find $DIR -type d -mtime +60)
if [ -n "$OLD" ] ; then
    echo deleting old backup files: $OLD
    echo $OLD | xargs rm -rfv
fi
Run Code Online (Sandbox Code Playgroud)

当改为:

 pg_dump -U postgres mydatabasename | gzip -6 > "$DIR/database_backup.$YMD.gz"
Run Code Online (Sandbox Code Playgroud)

同样的事情发生。

和 cron 工作: …

postgresql backup cron

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

可存储 10 亿条记录的快速数据库

我正在编写代码来存储数据,并希望存储 10 亿到 100 亿条记录,甚至更多。最重要的是速度(接近 10000 - 20000 / 每秒记录)、空间使用和防碰撞。现在我一直在玩 MySQL 的 MyISAM,它的运行速度非常快,并且与我们所需的速度相匹配。MyISAM 也有最佳的空间使用率,MySQL 数据文件夹中的数据库文件几乎等于我插入的数据量,例如,对于 100000 条记录,每条记录 30 个字符,只占用了 3 MB。但唯一的问题是它不是 ACID 并且会在崩溃时导致数据丢失。

所以我想知道任何替代方案(我什至不介意将数据库软件更改为其他任何东西)可以帮助我们存储如此多的数据并快速存储它们。

我已经尝试过 MySQL INNODB,它的插入非常慢。我每秒只能达到 800 - 1000 / 条记录。此外,在 INNODB 中存储数据的空间量非常大。存储相同的 100000 条记录(每条 30 个字符)需要将近 8 MB。

我也尝试过使用 MongoDB 作为替代方案,但它再次需要太多空间来存储相同的数据。

甚至 SQLITE3 DB 写入 100000 条记录也非常慢。我在 for 循环中用 PHP 尝试了这个。它还漏掉了大约 20 条记录,并给出了数据库不可用的错误。

所以我想知道任何可以满足我要求的开源数据库软件。我听说 MariaDBs ARIA 符合 ACID。这是真的吗?或者 PostgreSQL 也是一个很好的快速选择,具有最佳空间利用率。

我对任何快速、利用最佳空间且防 CRASH 的解决方案持开放态度。期待回复。

=== MariaDB Aria 的更新 === 在插入速度和空间方面,它甚至比 InnoDB 还要糟糕。插入相同数据所需的时间是 InnoDB 的 1.5 倍,而 MyISAM 使用的空间是其近 2.5 …

mysql postgresql database mongodb mariadb

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

无法在全新的 Debian 6.0 上安装 Postgres 9.1

我有一个全新的 Debian 6.0 安装。我已经安装了 build-essential 并添加了:

deb http://backports.debian.org/debian-backports squeeze-backports main
Run Code Online (Sandbox Code Playgroud)

在 /etc/apt/sources.list

我现在尝试安装 Postgres 9.1,但出现以下错误:

The following packages have unmet dependencies:
 postgresql-9.1 : Depends: libpq5 (>= 9.1~) but 8.4.12-0squeeze1 is to be installed
                  Depends: postgresql-client-9.1 but it is not going to be installed
                  Depends: postgresql-common (>= 115~) but 113 is to be installed
Run Code Online (Sandbox Code Playgroud)

在安装 postgres 之前是否还有其他东西要安装?

postgresql debian

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

PostgreSQL 服务器:10k RPM SAS 或 Intel 520 系列 SSD 驱动器?

我们将扩展 PostgreSQL 服务器的存储,我们正在考虑的一件事是使用 SSD(英特尔 520 系列)而不是旋转磁盘(10k RPM)。每 GB 的价格是可比的,我们期望提高性能,但是我们担心使用寿命,因为我们的数据库使用模式非常注重写入。我们还担心断电情况下的数据损坏(由于 SSD 写入缓存未正确刷新)。

我们目前使用 RAID10,在控制器中配置了 4 个活动硬盘 (10k 146GB) 和 1 个备用硬盘。它是带有 P410 智能阵列控制器和 BBWC 的 HP DL380 G6 服务器。

什么更有意义:将驱动器升级到 300GB 10k RPM 还是使用 Intel 520 系列 SSD (240GB)?

postgresql ssd hp sas

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

在 debian 服务器中安装 pgadmin

我从官网得到了 pgAdminIII-1.14 源代码。

现在我正在尝试在 Debian Squeeze 机器上编译它。

起初我是这样做的:

./configure
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

configure: error: you must specify a valid PostgreSQL 8.4+ installation with --with-pgsql=DIR
Run Code Online (Sandbox Code Playgroud)

我不知道它需要哪个目录,我试过:

/usr/lib/postgresql/9.1/bin
Run Code Online (Sandbox Code Playgroud)

这是我有“psql”的目录,但它不是好的目录。

我该如何解决?

postgresql debian

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

了解 pg_hba.conf 中 postgreSQL 的 ident、md5、密码

如果我有以下内容 pg_hba.conf

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
local   all         all                               trust
local   all         all                               ident
host    rt4         rt_user     127.0.0.1/32          md5
host    rt4         rt_user     127.0.0.1/32          password
Run Code Online (Sandbox Code Playgroud)

当我没有任何东西时pg_ident.conf,第二条local规则就过时了吗?

第一host行是否被第二行推翻?

由于客户端(Web 应用程序)将使用 连接到数据库localhost,那么我选择md5还是 有关系password吗?我的意思是,身份验证方法是一个抽象层,所以客户端不知道密码是如何检查的?

postgresql linux ubuntu database centos

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

PostgreSQL 上的仅文件系统备份有任何问题吗?

我在亚马逊云中运行我的数据库服务器,并且我在单独的 EBS 卷上有数据库文件。在备份/恢复操作方面,我发现只进行文件系统级别的备份而不是 sql 转储要简单得多,因为我几乎可以立即创建备份并从中恢复。

如果我坚持只使用文件系统级备份,是否有任何我可能会忽略的问题?

在 Ubuntu 12.04 上运行 PostgreSQL 9.1(今年晚些时候更新到 9.3)

postgresql amazon-ebs amazon-web-services database-backup

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

停止 postgresql 容器

我有一个关于停止数据库容器的问题。

  • 我有一个运行 postgresql的docker 镜像。当我使用此图像创建容器时:

sudo docker run --name db -d asg1612/postgresql

  • 它运行命令:

/usr/lib/postgresql/9.3/bin/postgres -D /var/lib/postgresql/9.3/main -c config_file=/etc/postgresql/9.3/main/postgresql.conf

  • 并且目录/var/lib/pgdata被创建为容器卷

  • 我停止容器:

须藤泊坞窗停止数据库

数据库会正常停止吗?

我会有损坏的数据吗?

postgresql docker

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