在Debian 7服务器上,apt-get让我提供了以下两个包:postgresql-9.1和postgresql-client-9.1。 由于我不想重启数据库服务器,我决定只升级客户端并运行: sudo apt-get install –only-upgrade postgresql-client-9.1 但是这导致postgresql-9.1被删除。 我知道postgresql-9.1依赖于postgresql-client-9.1,但为什么要升级postgresql-client删除postgresql? apt-get upgrade输出看起来很好: ~$ sudo apt-get upgrade Reading package lists… Done Building dependency tree Reading state information… Done The following packages will be upgraded: postgresql-9.1 postgresql-client-9.1 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/4,307 kB of archives. […]
如果使用pg_xlog_replay_pause()或设置了max_standby_streaming_delay,那么存储在热备用数据库中的未应用WAL段? 我想清楚一个长时间运行的查询是否保持WAL段不被应用,如果热备份仍然能够在故障发生之前重播段接近主状态,或者如果更改从主服务器开始,长时间运行的查询将会丢失。
我们希望创build一个我们的开发人员可以写入的postgres RDS实例副本(不仅仅是AWS可以轻松提供的简单的只读副本)。 目前,我们每晚都运行一个脚本,将主实例的快照恢复为副本。 这种方法有两个主要问题。 第一个问题是主实例是多az,并提供了IOPS,而副本是单一磁盘IOPS,这导致复制到“可用”状态(长达16小时)的延迟很长。 我们这样做是因为我们希望副本尽可能便宜。 事实上,在“修改”状态下,副本实际上是可用的,但听起来我们正在为处于此状态的预置IOPS收取费用。 第二个问题是,当副本处于“修改”状态时,参数组保持默认状态。 我们必须等到它“可用”,然后才能进行此更改。 我不敢相信我找不到解决这个问题的办法。 这听起来像是一个普遍的要求。 我们是否以这种错误的方式去做? 应该如何保持一个单独的,最新的RDS实例副本?
我们有一个应用程序客户端(Android) – > API(PHP) – >数据库(PostgreSQL),控制人们在大型活动(俱乐部,婚礼派对,学术会议等)上的stream量。 但是有一些大客户即使在糟糕的networking连接上也需要“完全”的可靠性,所以他们要求一个不依赖于“永远在线”连接的自我基础设施。 由于我们的业务无法在没有互联网的情况下生存,我们正在考虑asynchronous数据库复制。 我们不关心: networking/主超载(他们会支付的) 服务器之间暂时性不一致 但是我们担心的是: 不会降低总体性能 不会过分降低当地的performance(自我架构) 我们正在调查Bucardo 。 我们正朝着正确的方向走吗? 有一些更好的[免费]替代scheme?
我已经在Ubuntu Trusty 64 Vagrant框中安装了PostgreSQL 9.4。 PostgreSQLconfiguration文件位于Windows主机上,通过Vagrantfile链接到Vagrant框中。 PostgreSQL的configuration文件都有stream浪汉:stream浪者作为stream浪者箱内的所有者。 这阻止PostgreSQL运行: root@internal:/etc/postgresql/9.4/main# service postgresql restart * Restarting PostgreSQL 9.4 database server * Error: Config owner (vagrant:1000) and data owner (postgres:112) do not match, and config owner is not root…fail! 我试图chown -h来更改符号链接的所有权(它确实发生了变化),但PostgreSQL足够聪明,可以查看原始文件而不是链接。 我应该能够更改Vagrantfile中的文件权限,但想知道任何人有更好的解决scheme吗?
我有一个大的postgresql表,我认为它已经开始变得臃肿了,我想解决这个问题。 通常我可以做一个VACUUM FULL或CLUSTER ,但我想知道如果我可以修复膨胀不影响读/写性能。 如果存在索引膨胀,我可以(手动)同时创build一个新的索引,索引与旧索引相同的东西,但名称不同,创build时可以删除旧的,臃肿的索引。 这使我可以修复索引膨胀,对生产使用的影响最小(因为总是有一个索引,读写不会被阻塞)。 有什么办法可以用于表格吗? 我可以CREATE TABLE newtable LIKE old_bloated_table INCLUDING … ,这将重新创build表。 然后下降并重命名。 但数据可能不同步。 无论如何要确保表格之间的数据是相同的吗? (在索引的情况下,索引将始终与表同步)。
我有一个postgres数据库,我想定期备份。 为此,我想在这里使用自动备份脚本 通常我要继续pipe理任务我使用这些命令: > sudo -i -u postgres > psql 没有要求密码,我可以手动转储我的数据库。 这不是太糟糕。 使用自动脚本我面临密码问题。 它要求我提供postgres密码。 我从来没有设置它,我认为我不应该像上面给出的例子那样设置它。 这里是如何configuration我的pg_hba.conf 。 # Database administrative login by Unix domain socket local all postgres peer 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 […]
我有一个网站在几个Linode虚拟机上运行,包括单独的虚拟机运行: Django(和apache) Django(用于运行内存密集型脚本) Postgres的 媒体服务器,在Django虚拟机上有专用的networking安装点。 它突然开始同时发展两个问题: 首先是postgres抱怨“抱歉,已经有太多客户了”。 其次是媒体服务器不再可以从django网站访问。 如果我尝试ping媒体服务器的本地IP,我得到一个“目的地不可达”。 如何解决(短期) closures第二台Django机器(用于内存密集型任务的机器)并不能解决问题。 问题通过重新启动postgres和媒体框来解决,但是在几天之后会重新出现。 其他信息 大部分但并非总是这两个问题似乎同时出现。 我一直没能find一种模式,当他们发生,有时在繁忙的时期,有时不是,虽然它似乎更有可能在一个密集的任务运行时。 这个网站已经运行了几年没有这个问题,只是刚刚开始发生。 我已经看了/var/log/syslog的不同的盒子,但没有什么看起来很有帮助。 这里是/etc/fstab用于在Django服务器上装载媒体虚拟机(匿名): 192.168.xxx.xxx:/path/to/mount /mnt/media nfs rsize=8192,wsize=8192,timeo=14,intr 我不确定下一步要解决这个问题 – 有没有人有想法? 先谢谢你!
我们正在运行PGSQL 9.2 ,以下是硬件规格 OS: CentOS7 64bit CPU: 24 Memory: 32GB Disk: SSD 我想计算shmmax / shmall值,那么最好的方法是什么? 我谷歌和人说50%的总内存。 但在我的箱子,我只有PGSQL运行,那么为什么不是总内存的80%? 我可以configurationkernel.shmmax 28GB吗? 并保持4G的Linux操作系统。 你有什么build议?
我在Windows 2008服务器上使用Postgres 9.4。 有三个这样的实例,我正在使用。 一个作为主,另外两个作为主/备用。 Postgres的版本在所有三个实例中都是9.4。 我已经使用物理插槽设置了复制。 但复制不起作用。 SELECT * from pg_stat_replication查询SELECT * from pg_stat_replication 返回0行,并在SELECT * from pg_replication_slots ; 该插槽显示它不活动(“活动”列中的'f')。 我有以下configuration: 在小学/大师: wal_level = hot_standby max_wal_senders = 2 max_replication_slots = 2 hot_standby =开 次要/待机: wal_level = hot_standby hot_standby =开 secondary / standby上的recovery.conf文件: standby_mode = on primary_conninfo ='host = 192.168.8.192 port = 5432 user = […]