在前面的章节中,我们已经能够深入地理解了pgbouncer,同时也学会了如何使用它来尽可能地优化复制设置。在本章我们将了解一个经常被称作与pgbouncer相对应的工具。尽管pgpool的思想与pgbouncer有许多相似地方,它已经被设计为比pgbouncer多好多的特性。虽然做一件事pgbouncer更轻盈和优化过的。pgpool提供了更多的特点和承诺了附加的功能。

根据您的需求,您可以自由决定对于您的特殊设置来说哪个工具较好。

9.1 安装pgpool

正如我们已经看到的PostgreSQL,pgbouncer和包含在本书中的大多数其他工具,我们可以从源代码安装pgpool或者使用二进制包来安装。我们将再次描述如何从源代码进行编译。

要安装pgpool,我们首先必须下载它:

http://www.pgpool.net/mediawiki/images/pgpool-II-3.2.4.tar.gz

一旦下载完成,我们就可以提取代码:

$ tar xvfz pgpool-II-3.2.4.tar.gz

安装过程就像我们已经看到的。我们要做的第一件事是和一些参数来调用configure。在我们的例子中,主要的参数是—with-pgsql,它告诉构建过程在哪里可以找到我们的PostgreSQL安装。

$ ./configure --with-pgsql=/usr/local/pgsql/

现在我们可以容易地编译和安装软件了:

make

make install

9.1.1 安装pgpool-regclass和insert_lock

您刚才看到的是一个基本的pgpool安装。但是,为了是系统真正的动作,安装额外的模块是非常有帮助的,例如pgpool-regclass和insert_lock。,安装pgpool-regclass对于处理DDL复制来说是非常重要的。对于insert_lock处理分布式写是非常重要的。强烈推荐安装这个模块,因为不这样的话DDLs操作将无法工作。到现在为止,我们还没有看到实际的安装中,这个模块没有任何意义的情况。

首先让我们来安装pgpool-regclass:

cd sql/pgpool-regclass/

make

make install

为了使那个模块工作,我们必须部署pgpool-regclass文件。那个模块必须出现自所有我们将要使用的数据库当中。实现这个操作的最简单的方法是简单地把SQL文件加载到template1当中。每当有新的数据库被创建,template1将被克隆,以便所有新的数据库自动获得这个模块。

这同样适用于insert_lock.sql,它可以在pgpool的源代码的sql目录中找到。最简单的方法是直接把它加载到template1:

psql -f insert_lock.sql template1

一旦代码被安装,我们可以继续看看如何使用pgpool。

PostgreSQL Replication之第九章 与pgpool一起工作(1)的更多相关文章

  1. PostgreSQL Replication之第九章 与pgpool一起工作(7)

    9.7 处理故障转移和高可用 可以使用pgpool来解决的一些明显的问题是高可用性和故障转移.一般来讲,有使用pgpool或者不使用pgpool可以用来处理这些问题的各种方法. 9.7.1 使用Pos ...

  2. PostgreSQL Replication之第九章 与pgpool一起工作(4)

    9.4 设置复制和负载均衡 要配置pgpool,我们可以简单地使用一个包含一种典型的配置信息的已经存在的样本文件,将它拷贝到我们的配置目录并修改之: $ cp /usr/local/etc/pgpoo ...

  3. PostgreSQL Replication之第九章 与pgpool一起工作(6)

    9.6 运行pgpool和流复制 pgpool也可以和除了语句级别的复制之外的流复制一起使用.一个完美的方案是使用PostgreSQL的板载复制和仅仅使用pgpool的负载均衡与连接池. 实际上,这样 ...

  4. PostgreSQL Replication之第九章 与pgpool一起工作(3)

    9.3 理解pgpool的架构 一旦我们安装了pgpool,是时候来讨论软件架构了.从一个用户的角度看,pgpool就像一个 正常的数据库服务器,您可以想连接任何其他服务器一样连接到它: pgpool ...

  5. PostgreSQL Replication之第九章 与pgpool一起工作(2)

    9.2 理解pgpool的功能 pgpool提供了如下功能: •连接池 •语句级别的复制 •负载均衡 •限制连接 •内存缓存 •并行查询 [当决定使用那些功能的时候,记住并非所有的功能可以在同一时间使 ...

  6. PostgreSQL Replication之第九章 与pgpool一起工作(5)

    9.5 检查复制 如果所有的节点都处于开机并运行的状态.我们就可以在集群上运行我们的第一个操作了.在我们的例子中,我们将简单地连接到pgpool并创建一个新的数据库.createdb 是一个命令行工具 ...

  7. PostgreSQL Replication之第一章 理解复制概念(1)

    PostgreSQL Replication系列翻译自PostgreSQL Replication一书 在本章中,将会介绍不同的复制概念,您会了解哪些类型的复制对哪一种实用场景是最合适的. 在本章的最 ...

  8. PostgreSQL Replication之第二章 理解PostgreSQL的事务日志(5)

    2.5 XLOG的内部结构 我们将使用事务贯穿本书,并让您在技术层面上更深地洞察事情是如果工作的,我们已经增加了这部分专门处理XLOG的内部工作机制.我们会尽量避免前往下降到C级,因为这将超出本书的范 ...

  9. PostgreSQL Replication之第二章 理解PostgreSQL的事务日志(4)

    2.4 调整检查点和XLOG 目前为止,这一章已经提供深入洞察PostgreSQL如何写入数据,一般来说,XLOG是用来干什么的.考虑到这方面的知识,我们现在可以继续并学习我们能做些什么来使我们的数据 ...

随机推荐

  1. 30个php操作redis经常用法代码样例

    这篇文章主要介绍了30个php操作redis经常用法代码样例,本文事实上不止30个方法,能够操作string类型.list类型和set类型的数据,须要的朋友能够參考下 redis的操作非常多的,曾经看 ...

  2. Educational Codeforces Round 6 B. Grandfather Dovlet’s calculator 暴力

    B. Grandfather Dovlet’s calculator   Once Max found an electronic calculator from his grandfather Do ...

  3. RSA in .net and dotnet core

    dotnet RSAParameters Struct https://docs.microsoft.com/zh-cn/dotnet/api/system.security.cryptography ...

  4. hdoj--4501--小明系列故事——买年货(三维背包)

    小明系列故事--买年货 Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Tota ...

  5. [Codeforces 1051F] The Shortest Statement 解题报告(树+最短路)

    题目链接: https://codeforces.com/contest/1051/problem/F 题目大意: 给出一张$n$个点,$m$条边的带权无向图,多次询问,每次给出$u,v$,要求输出$ ...

  6. Sql Server 2012数据库的安装【自己一点一点敲的】

    Sql Server 2012数据库的安装 1.到微软官网上下载 下载链接为:https://www.microsoft.com/zh-cn/download/details.aspx?id=2906 ...

  7. AbstractQueuedSynchronizer中CAS的疑惑

    这段代码是AQS框架中将当前节点入队的操作. Node pred = tail; if (pred != null) { node.prev = pred; if (compareAndSetTail ...

  8. 使用python绘制词云

    最近在忙考试的事情,没什么时间敲代码,一个月也没几天看代码,最近看到可视化的词云,看到网上也很多这样的工具, 但是都不怎么完美,有些不支持中文,有的中文词频统计得莫名其妙.有的不支持自定义形状.所有的 ...

  9. ActiveMQ学习笔记(22)----ActiveMQ的优化和使用建议

    1. 什么时候使用ActiveMQ 1. 异步通信 2. 一对多通信 3. 做个系统的集成,同构,异构 4. 作为RPC的替代 5. 多个应用相互解耦 6. 作为事件驱动架构的幕后支撑 7. 为了提高 ...

  10. 队列(Queue)-c实现

    相对而言,队列是比较简单的. 代码还有些warning,我改不动,要找gz帮忙. #include <stdio.h> typedef struct node { int data; st ...