Articles of postgresql

postgresql从属到主表复制

我目前有几十个站点通过rsyslog将数据推送到中央数据库。 所有这些logging都将放入一张表格中(每个站点每秒插入大约20-30个)。 因此,一张桌子上有大约3000万条logging,而且增长很快。 数据库devise是一个独立的问题,待以后处理。 我的目标是在每个站点设置一个本地数据库,这个表收集syslog并将其复制到我们的中央数据库(希望同步)到以该设施命名的新表(而不是一个大表收集所有17个设施数据)。 我曾经看过Bucardo,Slony和SymmetricDS,但它们都是冗余/备份解决scheme,但我真正需要的是从每个站点到中央数据库的基本单表复制。 我对Bucardo的最初印象是,我需要将它安装在每个站点来完成这一点。 如果有人能提供一些build议,我正在寻找一些指导。 我相信我已经死了,但我希望被certificate是错误的。

PostgreSQL故障转移与Kubernetes

我有主从复制与Kubernetes合作,但现在想实现故障转移。 我有运行与service = postgresql和angular色=主或angular色=奴隶angular色的豆荚。 当主服务器出现故障时,我想select另一个主服务器并将其angular色标签更改为主服务器,所以postgresql-master服务指向新的主服务器。 两个问题: 我可以从一个吊舱连接到Kubernetes API,在船长死亡的时候得到通知,看看哪一个吊舱成为了新的主人? 当我尝试通过说'kubectl label pod postgresql-slave role = master'来更改标签时,我收到消息说我只能更改正在运行的pod的图像,虽然我从命令帮助中获得了印象,但我应该可以改变豆荚的标签。 我究竟做错了什么? 更新:更新标签时的确切错误 $ ./kubectl get pod -l type=postgresql POD IP CONTAINER(S) IMAGE(S) HOST LABELS STATUS CREATED MESSAGE postgresql-master-y868v 172.17.0.2 127.0.0.1/127.0.0.1 role=master,type=postgresql Running 3 minutes postgresql genericsites/postgresql:0.1 Running 3 minutes vincent@vincent-netbook-e11:~/Documents/Develop/Web/websites-system/installation/kubernetes$ ./kubectl label pod postgresql-master-y868v test=foo Error from server: Pod "postgresql-master-y868v" […]

使用pgpool或pgbouncer进行Postgresql复制

我正在寻找一个良好的configurationpostgresql复制与强大的故障转移策略(自我托pipe)。 实际上,我使用repmgr在master / slave中configuration了两个postgresql实例。 现在,我不知道在这两个实例之前应该放置什么来实现良好的故障转移。 我希望当主人倒下时,奴隶会自动向新的主人升职,而不会为客户停工。 我认为我应该把pgbool(或pgbouncer?)放在主/从postgres之前,但是为了避免把它作为单点故障,我应该有两个这样的实例,对不对? (这是我想到的一个例子: http : //i.imgur.com/yqky2bl.png )。 我的根本问题是如何configuration两个不同的pgpool实例的自动故障转移。 我怎么能确定这两个改变内部主/从configuration? 应该使用pgpool来创build故障转移或repmgr(更改两个pgpool实例的configuration)? 我有一些怀疑,我是在正确的方式,基本上是因为我没有find关于这种types的configuration大量的文档,以及如果例如主人回来在网上可能会发生几分钟的networking问题(所以postgres不是真的下降,但它是无法由客户端)。 为了使事情更加复杂,我试图用dockerconfiguration这个基础设施(但也许可以更简单,因为我可以销毁一个pg实例,并用docker创build一个新实例)。

如何在采取LVM / ZFS快照之前暂停Postgres?

我如何指示Postgres完成所有“正在进行的”事务,但是直到我已经拍摄了一个ZFS或LVM快照(不到一秒钟的时间)之后,才能延迟启动新的事务。 例如 暂停Postgres,等待“正在进行”的交易完成 同步到磁盘 采取ZFS / LVM快照 恢复Postgres

使用PostGIS升级PostgreSQL 9.5到9.6 – pg_upgrade

我试图将9.5服务器升级到9.6,并且pg_upgrade给了我以下错误: Performing Consistency Checks —————————– Checking cluster versions ok Checking database user is the install user ok Checking database connection settings ok Checking for prepared transactions ok Checking for reg* system OID user data types ok Checking for contrib/isn with bigint-passing mismatch ok Checking for roles starting with 'pg_' ok Creating dump of global objects […]

PostgreSQL:我如何列出数据库的名称?

简单的问题。 我有权访问PostgreSQL。 如果我知道数据库的名字,我可以 psql -d dbname 但是如果我不知道dbname,我怎么能列出哪些数据库呢?

Postgres数据库是否支持差异备份

Postgres数据库是否支持差异备份

从MySQL迁移到PostgreSQL的最佳方式

我必须将MySQL数据库迁移到PostgreSQL。 我已经用–compatible = postresql试过了mysqldump。 我已经看到一些人使用Talend的ETL来进行迁移,但是你必须描述所有表的迁移……(我有39个表格……) 任何其他的想法? 提前致谢

Postgres备份

我有一个Bacula脚本,可以自动备份Postgres数据库。 该脚本使用数据库的(pg_dump)进行两个备份: 仅架构和数据只。 /usr/bin/pg_dump –format=c -s $dbname –file=$DUMPDIR/$dbname.schema.dump /usr/bin/pg_dump –format=c -a $dbname –file=$DUMPDIR/$dbname.data.dump 问题是,我不知道如何使用pg_restore来恢复它。 我是否需要先创build数据库和用户,然后再恢复架构,最后才能恢复数据。 我做了以下几点: pg_restore –format=c -s -C -d template1 xxx.schema.dump pg_restore –format=c -a -d xxx xxx.data.dump 这第一次还原创build数据库与表格,但第二个给出了许多错误,如下所示: pg_restore: [archiver (db)] COPY failed: ERROR: insert or update on table "Table1" violates foreign key constraint "fkf6977a478dd41734" DETAIL: Key (contentid)=(1474566) is not present in table […]

针对大型服务器和数据集的PostgreSQL调优build议

我正在使用64 GB RAM和快速RAID磁盘的专用计算机上运行PostgreSQL(8.1)服务器。 数据集本身非常庞大 – 我们有大约200GB的桌子,50-100GB的桌子,而且还在不断增长,真空在一夜之间发生,大型运营在凌晨的某个时间运行,需要一整天。 最近我们遇到了一些性能问题,比如在大型操作开始之前,真空没有及时完成,然后在今天的其余时间开始阻塞。 我们一直在试图调整我们的configuration以利用我们的资源,但是我们遇到了一些比较松散的参数,比如work_mem。 (一个实验是提高到512 MB,max_connections为150,这导致了一些问题。) 什么可能是一些很好的基准参数尝试? 一旦我们把configuration变成一个稳定的状态,我们总是可以开始尝试更多的微调个人价值观,但是我们不确定我们的需求与这种事情的标准build议有什么不同。 编辑:我在评论中回答了这个问题,但为了使之正式,我们正在制定一个更长远的计划,包括分区以及其他一些重构任务,但是现在我们正在尝试充分利用我们所拥有的东西。 我正在寻找更多的技巧,“32MB的work_mem设置可能会为你提供相当好的服务,但是你可能看不到64MB以上的改进。”