我们之前的首席技术官(现在的“顾问”)在某种程度上警告他更换虚拟化数据库服务器,特别是我们的PgSQL数据库服务器,而是将它们作为实际的物理服务器运行。 问题在于,我们的机架中的物理空间和主数据库服务器的容量正在迅速耗尽。 他在I / O速度上提供的只是模糊的思考; 尽pipe我没有任何具体的理由怀疑他对这个问题的判断,但知道: 这个build议是否有真正的理由(如果是这样,是什么?),还是仅仅是他的迷信?
我们运行一个大约38GB的Postgres数据库,托pipe在一个68GB的EC2实例上。 它一直在嗡嗡作响,在大约16小时之前,CPU负载在0.7(8核心的机器上)和CPU使用率很小,当CPU使用率在几个小时的时间内增加了,现在比以前要高很多(大约20 %),平均负荷也相应增加(现在在5到8之间)。 根据pg_stat_activity,机器可以看到100到300个同时连接。 我们最大的表格大约有9.0GB,包括索引。 以下是我们排除的内容: pg_top表明总是有几个线程运行CPU百分比高,而其余线程下面的线程看起来很好。 那里没有什么特别的SELECT和INSERT。 IOWait一点也没有增加,而且似乎也不像我们经常使用磁盘 据我们所知,使用模式并没有改变, 事实上,周一比周末慢 我们增加了memcached实例的大小,无济于事 我们closures了synchronous_commit,但这也没有多大帮助 我们已经尝试了增加和减less共享缓冲区(目前设置为2GB)。 4GB和1GB都没有改善 重新启动postgres和我们所有的Apache服务器没有帮助 重新启动pgbouncer,我们的Apache / Django盒子用来与Postgres交谈,也被certificate是不成熟的 我们所有的主要查询都有正确的索引,我们已经validation了postgres正在使用它们。 为了安全起见,我们运行了一个VACUUM ANALYZE,查询计划员看起来是正确的 查询将罚款几秒钟,然后似乎locking; 通常需要200毫秒或更less的索引扫描则需要几秒钟的时间。 任何想法如何进行,或追踪这个问题?
我正在使用PostgreSQL(8.3)与多个数据库…我想知道是否有某种方式来logging查询只在一个数据库(不是所有的)。 或者每个数据库有一个日志文件… 我知道我可以使用log_line_prefix = "%d"来logging数据库的名称,然后过滤,但这不是问题。 我应该使用log_analyzer来解决这个问题吗? 你有什么build议 ? 谢谢
我想测量备份PostgresSql数据库所需的时间,我知道我可以做time pg_dump ….但是如果我已经启动了pg_dump命令呢? 这个过程已经花了半个多小时了,我不想把它弄明白。 我敢肯定,这将需要一个多小时(而我当时在家)。 我想知道明天花了多less时间。
我正在build立一个服务器与以下规格: * 4个处理器(每个12核的AMD Opteron) * 32 GB的内存 * 8 HDD(15K SAS双端口) * CentOS 5.5 * JBoss * PostgreSQL 很可能稍后我会将应用程序从数据库中分离出来,但是现在他们将会在同一台机器上。 我已经读过PostgreSQL的性能好处: * RAID 10 *独立的OS分区 *单独的xlog分区 *单独的pgdata分区 由于我的单个RAID 10卷似乎总共有559808 MB可用,这是当前的分区计划: *操作系统为337856 MB * 102400 MB为pgdata * xlog为51200 MB *交换68352 MB 这里有一些问题: *我的分区计划看起来如何? *安装CentOS时,当我进入磁盘设置步骤时,我需要定义挂载点 – 我应该为pgdata分区input什么内容? (例如参考这个例子setup mount points / pgdata1 ) *我应该input什么作为xlog分区的挂载点? *对于文件系统types,避免损坏比完美的性能更重要,因此计划是使用'noatime',但为分区挂载选项保留'data = ordered' – […]
我有一个连接到RDS实例(Postgresql)的AWS EC2实例。 当我创buildRDS实例时,我告诉它,数据库根目录的用户名是: my_user1 ,密码是password1 。 现在我试图创build一个angular色和一个超级用户。 但是它失败了: $ createuser -P -d -s -e my_user2 –host myhost.com -U my_user1 Enter password for new role: XXXYYYZZZ Enter it again: XXXYYYZZZ Password: password1 CREATE ROLE my_user2 PASSWORD 'md5999999c0101a1d64afd57575e06f999c' SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN; createuser: creation of new role failed: ERROR: must be superuser to create superusers $ […]
我知道我可以用\dft列出触发器。 但是我怎么能看到一个具体的触发器? 我想知道触发器执行哪个事件,执行哪个函数等细节。
在我们的年度安全审查中,我想起了今年早些时候发生的一个事件,那就是我们的组织Web服务器受到了威胁。 这是一个组织的政策,并威胁到DDoS我们的网站。 幸运的是,这并没有什么不好,事实certificate这是一个空洞的威胁。 但是,我们仍然立即通知了CIO,CSO,首席执行官和我们的托pipe服务提供商,他们为我们的答复鼓掌。 由于我们组织(教育)的性质,先发制人的响应涉及许多人,包括与当地执法机构的协调。 尽pipe我们的回应足以应付一个空洞的威胁,但这让我意识到,如何规划networking应用程序的攻击已经发生了。 现在的设置是: 不在企业防火墙之后的Linode VPS(背后有一个很长的故事,不值得解释) 一个只允许本地连接的同一台服务器上的PostgreSQL数据库 一个Nginx服务器,我们目前正在遵循最佳实践来保证[ 1 ] 我们正在迁移到证书authentication的SSH访问 备份VPS,具有所有最新的服务器设置,只需要最新版本的代码推送和数据库设置迁移(现在用作testing服务器,但也设想为georedundancy选项) 我想我的问题可能可以归结为我应该采取什么其他步骤来locking我的服务器,以及防止DDoS? 我们很乐意使用Cloudflare业务,提供DDoS防护,但我们并不总是需要它,每个月200美元对于组织来说有点陡峭。 我甚至需要这个吗? 是否有解决scheme,允许临时DDoS保护? 如果不是,在攻击期间/之后维持稳定的最好方法是什么? 最后,应该执行什么样的日志logging,以便在发生攻击时协助执法工作?
我在Box A上有一个PostgreSQL服务器设置。我想使用psql从Box B连接到服务器。 我需要在Box B上安装什么? 我找不到PostgreSQL的客户端安装二进制文件。 还是必须安装整个PostgreSQL发行版?
我正在使用以下服务来监视我们从Nagios的postgres数据库: define service{ use test-service ; Name of servi$ host_name DEMOCGN002 service_description Postgres State check_command check_nrpe!check_pgsql!192.168.1.135!test!test!test notifications_enabled 1 } 在远程机器上,我configuration了这个命令: command[check_pgsql]=/usr/lib/nagios/plugins/check_pgsql -H $ARG1$ -d $ARG2$ -l $ARG3$ -p $ARG4$ 在syslog中,我可以看到该命令被执行,但只有一个参数被传送: Oct 20 13:18:43 DEMOSRV01 nrpe[1033]: Running command: /usr/lib/nagios/plugins/check_pgsql -H 192.168.1.134 -d -l -p Oct 20 13:18:43 DEMOSRV01 nrpe[1033]: Command completed with return code 3 and […]