II的集群搭建方案(Partition+LoadBalance+Replication)

II的集群搭建方案(Partition+LoadBalance+Replication)

时间:2015-06-09 12:12来源:网络整理 作者:KKWL 点击:
1. 下载安装 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_M

1.       下载安装

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

------分隔线----------------------------