`
mengqingyu
  • 浏览: 333830 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

(转载)PostgreSQL 利用Pgpool-II的集群搭建方案

阅读更多
1.       下载安装

在官网 http://pgfoundry.org/projects/pgpool 下载 pgpool-II 2.2.2.tar.gz ,执行以下命令安装:

#tar xvf pgpool-II 2.2.2.tar.gz 

#cd pgpool-II 2.2.2 

#./ configure; make; make install; 


2.       Parallel_Mode 配置

数据库的 Patition 可以利用 Pgpool-II 的 Parallel_Mode 来实现,在这种方式下,必须设置另外一个叫做 “System Database” 的数据库(我们称之为 SystemDB )。 SystemDB 保存决定数据如何在各节点中保存的用户定义规则,另一个用途是合并使用数据库链( dblink )从数据库节点返回的结果。

本文中的配置, Pgpool 和 SystemDB 都放在服务器 192.168.1.239 ,占用端口分别为: 9999 和 5444 。

配置文件的默认路径是: /usr/local/etc ,首先需要配置 pgpool.conf

#cd /usr/local/etc ; cp pgpool.conf.sample pgpool.conf; 


下面是具体的配置过程:

设置并发查询
将 pgpool.conf 文件中的 parallel_mode 参数设置为 true 开启数据库复制功能:
parallel_mode = true
这样并不能自动开始并发查询, pgpool-II 还需要 SystemDB 以及分布规则来知道如何在各节点中分布数据。

另外, SystemDB 使用数据库链连接 pgpool-II ,因此,需要设置 listen_addresses 参数好让 pgpool-II 接受这些连接请求:

listen_addresses = '*' 


注意:并发查询和复制是不能共存的,使用并发查询功能时, replication_mode 必须设置为 false 。此外,并发查询和复制采用不同的格式储存数据,这样前边我们创建的 “bench_replication” 数据库无法被重用( reuse )。

replication_mode = false 

load_balance_mode = false 


parallel_mod 设置为 true 、 listen_addresses 设置为 '*' 、 replication_mode 和 load_balance_mode 设置为 false 。

配置 SystemDB

SystemDB 仅仅是一个安装有数据库链的数据库,数据表 “dist_def” 被用来保存数据分布规则。可以在单独的电脑中放置 SystemDB ,也可以与数据库节点之一共存。

在服务器 192.168.1.121 上的 5444 端口上创建 SystemDB ,下边是 SystemDB 的参数设置列表:

system_db_hostname = '192.168.1.121' 

system_db_port = 5444 

system_db_dbname = 'pgpool' 

system_db_schema = 'pgpool_catalog' 

system_db_user = 'pgpool' 

system_db_password = '' 


事实上,这是 pgpool.conf 中的缺省设置。

然后创建叫做 “pgpool” 的用户,再创建所有者为 “pgpool” 的数据库 “pgpool” :

#createuser -p 5444 pgpool 

#createdb -p 5444 -O pgpool pgpool 


安装数据链

接下来,必须将数据库链安装到 “pgpool” 数据库,它是包含在 PostgreSQL 源代码 contrib 目录下的工具之一。

在“pgpool” 数据库中定义数据库链函数。PostgreSQL 安装在/opt/PostgresPlus/8.3AS ,dblink.sql (函数定义文件)会被放置在/opt/PostgresPlus/8.3AS/dbserver/share/contrib 中,运行如下命令创建函数:

# edb-psql -f /opt/PostgresPlus/8.3AS/dbserver/share/contribdblink.sql -p 5444 pgpool 


定义 dist_def 数据表

接下来,定义数据库表“dist_def” 存放数据分布规则。安装pgpool-II 时,system_db.sql 文件放置在/opt/PostgresPlus/8.3AS/dbserver/share /system_db.sql (这里我们使用缺省安装路径),它包括了一些包括“dist_def” 在内的特殊用途数据表,执行下边的命令创 建dist_def 数据表:

# edb-psql -f /opt/PostgresPlus/8.3AS/dbserver/share/system_db.sql -p 5444 -U pgpool pgpool 


定义数据分布节点

例子中的三个分布节点,分别为:192.168.1.239:5444 , 192.168.1.201:5444, 192.168.1.201:5443

在pgpool.conf 中定义这三个节点:

backend_hostname0 = '192.168.1.239' 

backend_port0 = 5444 

backend_weight0 = 1 

backend_data_directory0 = '/usr/postgresql/data' 

backend_hostname1 = '192.168.1.201' 

backend_port1 = 5444 

backend_weight1 = 1 

backend_data_directory1 = '/usr/postgresql/data' 

backend_hostname2 = '192.168.1.201' 

backend_port2 = 5443 

backend_weight2 = 1 

backend_data_directory2 = '/usr/postgresql/data2' 


检验并发查询

重新启动pgpool-II 载入pgpool.conf 的变化,然后我们来检验一下并发查询是否在正常运行。

首先,命名为“bench_parallel” 的分布数据库,通过pgpool-II 创建到每一个节点上:

$ createdb -p 9999 bench_parallel 


接下来,生成测试数据:

$ pgbench -i -s 3 -p 9999 bench_parallel 


这时可以用数据库工具分别查看各节点的数据来确认结果。也可以在 Pgpool 的服务端口进入 SQL 操作来查看数据:

#ebd-psql –p 9999 bench_parallel 

#select * from accounts; 


此时三个节点的数据可以通过一个共同的接口跟应用进行关联,该接口就是pgpool ,默认端口为9999 。

启动/关闭pgpool-II启动pgpool-II,在终端之上使用如下命令:
$ pgpool
这个命令会把日志输出在终端上,因此推荐使用如下选项:
$ pgpool -n -d > /tmp/pgpool.log 2>&1 &
使用-n选项,pgpool-II作为非deamon进程运行,不会与终端脱离,这个选项需要将日志信息重定向至某个文件中。选项-d指令生成debug信息。

停止pgpool-II,使用如下命令:
$ pgpool stop
如果有客户端正在连接,pgpool-II会等待他们断开,然后才停止。如果需要强制终止,使用下边的命令:
$ pgpool -m fast stop


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xtlog/archive/2009/05/27/4219353.aspx
http://blog.csdn.net/joliny/archive/2008/01/25/2065426.aspx
分享到:
评论

相关推荐

    PostgreSQL 利用Pgpool-II的集群搭建方案(Partition+LoadBalance+Replication).htm

    PostgreSQL 利用Pgpool-II的集群搭建方案(Partition+LoadBalance+Replication).htm

    pgpool-II\pgpool-II概述.doc

    【pgpool-II 概述】 pgpool-II 是一个专为 PostgreSQL 设计的连接池服务器,它的主要作用是在...通过合理配置和使用 pgpool-II,可以构建高效、可靠且可扩展的 PostgreSQL 集群环境,满足高并发和大数据量的业务需求。

    pgpool-II 入门教程

    【pgpool-II 入门教程】是一篇针对数据库管理和优化工具 pgpool-II 的教程,旨在指导用户如何安装、配置及利用 pgpool-II 进行并行查询和数据复制。pgpool-II 是一个开源软件,主要功能是提供 PostgreSQL 数据库的...

    bitnami-docker-pgpool:Bitnami Pgpool-II Docker映像

    什么是Pgpool-II? 是PostgreSQL代理。 它位于PostgreSQL服务器及其客户端之间,提供连接池,负载平衡,自动故障转移和复制。TL; DRDocker撰写$ curl -sSL ...

    pgpool-II 用户手册

    pgpool-II是一款中间件软件,其主要作用是搭建在PostgreSQL数据库服务器和客户端之间,提供多种数据库管理功能,包括连接池、复制、负载均衡和并行查询等。pgpool-II在操作过程中对客户端和服务器均保持透明,这意味...

    pgpool-II-pg11-debuginfo-4.0.9-1pgdg.rhel7.x86_64.rpm

    pgpool-II-pg11-debuginfo-4.0.9-1pgdg.rhel6.x86_64.rpm

    pgpool-II 入门教程.pdf

    欢迎阅读 pgpool-II 入门教程。从本教程中,你将学会如何安装,设置pgpool-II 以及使用 pgpool-II 运行并行查询和复制。我们假设你已经知道PostgreSQL的基础操作,所以如果有必要,请先参考 PostgreSQL的文档。

    pgpool-II-pg11 安装包

    pgpool-I 的安装包 pg11的版本

    PGConf.CN2019大会资料 培训PPT--Muhammad Usama--pgconf china talk

    Pgpool-II是一款专为PostgreSQL设计的集群管理工具,具有丰富的功能,如连接池、负载均衡、自动故障转移、查询缓存以及Watchdog等功能。它采用BSD许可证,是一款开源软件。 ##### 1. Pgpool-II优势 - **单一视图**...

    postgresql-13.3-2-windows-x64 windows安装器

    postgresql-13.3-2-windows-x64 windows安装器 postgresql-13.3-2-windows-x64 windows安装器 postgresql-13.3-2-windows-x64 windows安装器 postgresql-13.3-2-windows-x64 windows安装器 postgresql-13.3-2-...

    ansible-role-pgpool:为DebianUbuntu安装和配置PgPool-II

    PgPool 为Debian / Ubuntu安装和配置PgPool-II。 默认的运行模式是流复制模式。要求Python> = 3.6该角色与Ansible> = 2.10兼容,但尚未通过Ansible 3.x进行测试。 有关用于开发角色的详细依赖关系,请参见 。角色...

    PostgreSQL(postgresql-14.2-2-windows-x64.exe)

    PostgreSQL(postgresql-14.2-2-windows-x64.exe),适用于Windows系统:PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象...

    PostgreSQL(postgresql-13.5-1-windows-x64.exe)

    PostgreSQL(postgresql-13.5-1-windows-x64.exe)适用于Windows x86-64 PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的...

    pgpool简介

    **pgpool-II 简介** pgpool-II 是一款针对 PostgreSQL 数据库的中间件...无论是用于大型企业级应用还是需要高并发读取的场景,pgpool-II 都能提供有效的解决方案,帮助数据库管理员更好地管理和维护 PostgreSQL 集群。

    PostgreSQL(postgresql-13.5-1-osx.dmg)

    PostgreSQL(postgresql-13.5-1-osx.dmg)适用于Mac OS X PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库...

    docker-pgpool-II-pgpool_setup:pgpool_setup就绪环境的构建和环境

    docker-pgpool-II-pgpool_setup 构建pgpool-II + PostgreSQL流复制+ pgpoolAdmin演示容器。 pgpool-II,pcp,PostgreSQL所有端口都导出到容器外部。 因此,您可以像“ pgsql -h localhost -p 11000 -U postgres测试...

    PostgreSQL9.4.5使用pgpool实现读写分离和负载均衡

    `pgpool-II` 利用这一点,通过将 SELECT 查询分散到所有可用的服务器上执行来降低每个 PostgreSQL 服务器的负载,从而增强系统的整体吞吐量。在实际应用中,当系统面临大量并发的只读查询时,这一特性尤其有用。 - ...

    PostgreSQL(postgresql-14.1-1-windows-x64.exe)

    PostgreSQL(postgresql-14.1-1-windows-x64.exe)适用于Windows x86-64 PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的...

    PostgreSQL(postgresql-14.1-1-osx.dmg)

    PostgreSQL(postgresql-14.1-1-osx.dmg)适用于Mac OS X PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库...

Global site tag (gtag.js) - Google Analytics