标签: postgresql

SQL 数据库备份文件的典型压缩率是多少?

我的一位客户希望我们对压缩的 SQL 备份文件占用多少磁盘空间进行安全估计。他们需要相应地调整服务器硬盘的大小。

我们可以粗略地估计 SQL 数据库备份大小(基于估计的记录数等),但是压缩时呢?

我知道这很难回答,但根据您的经验,SQL 备份文件的典型压缩比是多少?

postgresql backup sql

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

pgAdmin 无法连接到 PostgreSQL 9.1

我正在尝试在 Windows 上使用 pgAdmin 连接到postgresql在 localhost 的 Ubuntu 12.04 VM 上运行的 9.1.8。主机的 5432 端口转发到 VM 的 5432 端口。

pgAdmin 错误:

Error connecting to the server: could not receive data from server: Software caused connection abortion (0x00002745/10053)

配置文件

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'
port = 5432 
Run Code Online (Sandbox Code Playgroud)

pg_hba.conf

local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

host    all             all             0.0.0.0/0               md5
host    all             all             127.0.0.1/32            md5
host    all             all …
Run Code Online (Sandbox Code Playgroud)

postgresql ubuntu database

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

如何配置 rsyslog 以在没有太多延迟的情况下登录 PostgreSQL?

我正在尝试在 Debian 机器上配置 RSyslog 以将所有内容都记录到 PostgreSQL,同时还像往常一样在磁盘上记录。

我正在使用一个非常普通的 Debian 配置,并在阅读了http://www.rsyslog.com/doc/rsyslog_pgsql.html和http://www.rsyslog.com/doc/rsyslog_high_database_rate 上的文档后激活了相关的配置指令html的。

它似乎工作,但只有当我停止 RSyslog 时,消息才会写入磁盘或发送到 PostgreSQL,就好像它缓冲了所有内容直到停止命令并在关闭之前将所有内容写入内存中。

虽然我可能不会丢失任何消息,但它不是很方便,因为它引入了很多延迟(我不知道它在关闭之前是否甚至转储了任何东西?),有没有办法减少它,所以我可以在正常情况(服务器不忙),几乎是实时日志记录?

这是我当前的配置文件:

$ModLoad imuxsock
$ModLoad imklog

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022

$WorkDirectory /var/spool/rsyslog
$IncludeConfig /etc/rsyslog.d/*.conf

auth,authpriv.*         /var/log/auth.log
*.*;auth,authpriv.none      -/var/log/syslog
daemon.*            -/var/log/daemon.log
kern.*              -/var/log/kern.log
lpr.*               -/var/log/lpr.log
mail.*              -/var/log/mail.log
user.*              -/var/log/user.log
mail.info           -/var/log/mail.info
mail.warn           -/var/log/mail.warn
mail.err            /var/log/mail.err
news.crit           /var/log/news/news.crit
news.err            /var/log/news/news.err
news.notice         -/var/log/news/news.notice
*.=debug;auth,authpriv.none;news.none;mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;auth,authpriv.none;cron,daemon.none;mail,news.none      -/var/log/messages
*.emerg             :omusrmsg:*
daemon.*;mail.*;news.err;*.=debug;*.=info;*.=notice;*.=warn   |/dev/xconsole

$ModLoad ompgsql
*.* :ompgsql:localhost,syslog,syslog,syslog …
Run Code Online (Sandbox Code Playgroud)

postgresql debian logging syslog rsyslog

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

使用 Bucardo 的 postgres 9.1 主-主设置

有没有人知道在 master-master 配置中设置 2 个 postgres 9.1 数据库的任何综合教程?需要哪些“附加组件”(例如 Bucardo 仍然是必需品吗?)。我试过谷歌搜索,但我发现很多帖子都可以追溯到几年前,所以我不确定它们是否仍然相关。让我更具体地说:

例如,以下方法可能有效: - 在 master1 上安装 bucardo - 设置复制如下: master1:master - master2:slave - 验证复制是否有效如果以上正确,则: - 在 master2 上安装 bucardo - 设置复制如下: master2:master - master1:slave - 验证复制工作 之前的就足够了还是我在这里缺少一个基本部分?

以下是我从 bucardo 邮件列表中得到的建议 - 也许这对某人有用:

“Bucardo 只需要安装在一台主机上,虽然很明显,这不会提供 HA 功能。通常,在主-主场景中,它安装在一个主服务器上。如果其中一个主服务器出现故障,无论如何,Bucardo 守护进程将无事可做,因此 HA 因为它非常没有实际意义。”

预先感谢您的任何答复

postgresql master-master

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

将 Postgres.app 9.1 升级到 9.2,获取 lc_collat​​e 值不匹配错误

我正在我的 Macbook Pro(我的开发机器)上升级 Postgres.app,运行时出现错误:

pg_upgrade -b /Users/foo/Library/PostgreSQL/9.1/bin/ 
           -B /Applications/Postgres.app/Contents/MacOS/bin/ 
           -d /Users/foo/Library/Application\ Support/Postgres/var-9.1/ 
           -D /Users/foo/Library/Application\ Support/Postgres/var
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

lc_collate cluster values do not match:  old "en_US", new "en_US.UTF-8"
Run Code Online (Sandbox Code Playgroud)

我该如何纠正?

注意:我曾经让Postgres.app运行 9.1,但我覆盖了它。我应该阅读/遵循的方向是:升级 Postgres.app。所以旧的bin不见了,但我还有数据目录。相反,我下载了 Postgres 9.1 并将其安装在其他地方,以使用 bin 目录升级并将我的数据移动到新的 Postgres。

postgresql upgrade

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

在预算内处理对 Web 服务器的安全威胁的正确方法

在我们的年度安全审查期间,我想起了今年早些时候发生的一起事件,我们在该事件中收到了对我们组织的 Web 服务器的威胁。它超出了组织政策,并威胁要对我们的网站进行 DDoS。幸运的是,它并没有发生什么不好的事情,结果证明它只是一个空洞的威胁。但是,我们仍然立即通知了 CIO、CSO 和 CEO 以及我们的托管服务提供商,他们对我们的回应表示赞赏。由于我们组织(教育)的性质,先发制人的反应涉及许多人,包括与当地执法部门的协调。

尽管我们的回应对于一个空洞的威胁来说已经足够了,但它让我意识到网络应用程序所经历的攻击计划是多么的少。现在的设置是:

  • 一个不在企业防火墙后面的 Linode VPS(这背后有一个很长的故事,不值得解释)
  • 同一台服务器上的 PostgreSQL 数据库,只允许本地连接
  • 我们目前正在遵循最佳实践来保护 Nginx 服务器 [ 1 ]
  • 我们正在迁移到证书身份验证的 SSH 访问
  • 具有所有最新服务器设置的备份 VPS,只需要推送最新版本的代码和迁移数据库设置(现在用作测试服务器,但也被设想为地理冗余选项)

我想我的问题可能可以归结为我应该采取哪些其他步骤来锁定我的服务器以及防止 DDoS?我们很想将Cloudflare Business与他们的 DDoS 保护一起使用,但我们并不总是需要它,而且每月 200 美元对组织来说有点贵。我还需要这个吗?是否有允许临时 DDoS 保护的解决方案?如果不是,在攻击期间/之后保持稳定性的最佳方法是什么?最后,应该实施哪些日志记录,以便在发生攻击时协助执法?

postgresql security vps nginx ddos

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

在 Ubuntu 12.04 LTS 上更改和初始化 Postgresql 9.3 默认数据和日志目录

在带有 Ubuntu 12.04 LTS 映像的 Azure 上,我们尝试更改 Postgres 9.3 默认数据和日志文件路径,并在辅助驱动器上首次初始化它们/mnt/pgdata。我们从 Postgres 9.3 是通过 apt-get 全新安装的那一点开始。

我们已经停止了 postgres: sudo service postgresql stop。

我们尝试运行 pg_createcluster

下面只显示帮助/手册页。可能是因为它缺少版本和名称参数。

pg_createcluster -d /mnt/pgdata/data -l /mnt/pgdata/log --start-conf auto

即使/mnt/pgdata.

pg_createcluster 9.3 main -d /mnt/pgdata/data -l /mnt/pgdata/log --start-conf auto

总的来说,我们对 Linux 还很陌生,所以请具体说明您的答案。

此外,我们还有以下问题:

  1. 可以使用直接挂载路径还是使用符号链接更好?
  2. 我们还需要做什么或更改以在默认端口上使用这些默认数据目录设置 Postgres 9.3 并自动启动服务器吗?
  3. 还有其他推荐吗?

postgresql azure ubuntu-12.04

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

Postgres 复制落后 - master -> slave, slave, slave

我目前有 1 个主服务器 (a) 和 3 个直接来自主服务器的复制服务器 (b, c, d),我使用的 archive_command 是以下脚本:https : //gist.github.com/Geesu/8640616

所有服务器都是运行 PostgreSQL 9.2.6 的 Ubuntu 12.04.4

这是每个复制服务器的 recovery.conf:https : //gist.github.com/Geesu/8640635

奇怪的是,在我启动复制服务器大约 6 小时后,其中 2 个立即落后,现在被困在试图追赶上,但他们一直落后。以下是他们与大师相比的差距:

a 20287.825072
b 2.521136
c 19994.51653
Run Code Online (Sandbox Code Playgroud)

有没有人知道为什么其中一台服务器几乎完全赶上,而其他服务器却一直落后?我已经验证 a 和 c 正在处理 WAL 段,只是它做的不够快。

来自 a 和 c 的一些日志示例:

cp: cannot stat `/var/lib/postgresql/9.2/archive/000000080000109E0000009A': No such file or directory
2014-01-26 23:02:14 GMT LOG:  record with zero length at 109E/9AE622D8
cp: cannot stat `/var/lib/postgresql/9.2/archive/000000080000109E0000009A': No such file or directory
2014-01-26 23:02:14 GMT …
Run Code Online (Sandbox Code Playgroud)

postgresql replication

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

RHEL SELinux 阻止 Apache 访问 PostgreSQL

我正在运行一个使用 PostgreSQL 的 Django 应用程序。服务器正在运行带有 SELinux 的 RHEL 6.5。我遇到了 Django 应用程序无法连接到数据库的问题,我认为这是因为 SELinux 阻止了它。这是我在 Django 中看到的错误:

could not connect to server: Permission denied Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

我怎样才能解决这个问题?我遇到了这篇文章,但我不确定如何将解决方案 ( chcon -t postgresql_exec_t /path/to/pgbouncer) 应用于我的问题。

谢谢!

[编辑]
这是/var/log/audit/audit.log我尝试访问该站点时的样子:

type=AVC msg=audit(1396289984.549:9245): avc:  denied  { write } for  pid=16975 comm="httpd" name=".s.PGSQL.5432" dev=sda1 ino=2359354 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:tmp_t:s0 tclass=sock_file
type=SYSCALL msg=audit(1396289984.549:9245): arch=c000003e syscall=42 success=no exit=-13 a0=10 a1=7fe625273aa0 a2=6e a3=0 items=0 ppid=16943 pid=16975 auid=22383 …
Run Code Online (Sandbox Code Playgroud)

postgresql redhat selinux django apache-2.2

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

Bugzilla 在 EC2、RDS PostgreSQL 上非常慢

问题

我在 EC2 实例上安装了 Bugzilla,使用 PostgreSQL RDS 作为我的数据库。在输入了几十个 bug 后,Bugzilla 变得难以置信的慢,我得到了很多超时。

在此处输入图片说明

服务器负载

机器很闲:

14:26:00 up 23 days,  4:40,  2 users,  load average: 0.15, 0.16, 0.25
%Cpu(s):  0.3 us,  0.3 sy,  0.1 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.2 st
Run Code Online (Sandbox Code Playgroud)

记录证据

来自 Nginx 日志的示例(为了安全而更改了主机名):

2014/07/16 14:18:32 [error] 6462#0: *5040 upstream timed out 
(110: Connection timed out) while reading response header from 
upstream, client: my.ip.my.ip, server: bugs.example.com, 
request: "POST /post_bug.cgi HTTP/1.1", 
upstream: "http://127.0.0.1:8081/post_bug.cgi", 
host: "bugs.example.com", referrer: "https://bugs.example.com/post_bug.cgi"
Run Code Online (Sandbox Code Playgroud)

数据库分析

自然,我怀疑数据库,所以我运行以下: …

postgresql bugzilla amazon-rds

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