作者longtime (longtime)
看板Database
标题Re: [SQL ] postgresql 8.1.4 cluster问题~
时间Mon May 25 17:48:31 2009
不太确定你所谓的 "负载量过大" 发生的瓶颈在那边
I/O 方面的还是 CPU, Memory 方面的
另外分散流量
第1种方式是使用 PGCluster
他是 Synchronous Replication 的方式, 可以有效增加 Query 的速度
但若你的 DB 型态是属於会有大量的写入, 这部份对效能的增加就很有限,
甚至会拖慢速度
而第2种方式仅是一台主机上跑多个 PostgreSQL, 并不是 Cluster
PostgreSQL 目前尚无完整的 Cluster 解决方案
大都是利用 Replication 的功能衍生出来 Pooling or LoadBalance
达成分散流量的需求
你可以比较一下 Oracle RAC (ShareDisk) 跟 PostgreSQL (ShareNothing)
这两种对於 Cluster 实作的方法,
就可以知道为何 PostgreSQL 大部份都是用 Replication 的概念去实作 Cluster
若使用 Synchronous Replication 这种方式 (ex: pgcluster or pgpool-II)
读取的效能可有效提升, 但写入的部份就......蛮惨的
若是选择 Asynchronous 的方法 (ex: Slony), 就会碰到资料不同步的状况
若你对资料同步的要求相当高, 这种方式就不适合, 仅能拿来当作备援方案
所以说穿了总归一句就是 -> 有一好就没有两好
建议你要先清楚定义你想要的东西,
并且确认你的 DB 属性是哪一类 (读取多还是写入多或是其他类别?)
才可以知道有没有适合的作法可以解决你的问题
另外推荐你两个文件
http://tinyurl.com/c2n984
http://tinyurl.com/3kj2kw
希望对你有帮助
以上如有错误请不吝赐教 :)
※ 引述《Creationary (想想~)》之铭言:
: 各位大大好~~~
: 因公司postgresql的负载量过大~~
: 必须分散流量~~
: 目前找到两种方式如下:
: 1.套件包
: http://www.betalog.com/read.php/423.htm
: 需要一部主机一个postgresql吗?
: 我configure 没问题,但是make时就不成功了~~
: 2.使用ubuntu 8.04原有套件
: http://blog.csdn.net/barfoo/archive/2008/10/29/3173693.aspx
: 公司目前可使用的linux伺服器主机分别为ubuntu 8.04 i386、ubuntu 8.04 amd64
: WINDOWS主机:windows 2008 Server
: 我有询问过~~
: 1.套件包方式的话~用一台主机装设多个postgresql来run cluster ,
: 得到的答覆是理论上不行~而且会增加cpu的负荷~~
: 但是~~第二种方法也是另建资料库呀~~
: 且~~第二种方法的原理跟第一种的不大一样的感觉~~
: 第一种是有建立Load Balancer和Replicator
: 而第二种~~就只是建cluster,是吗?
: 想要询问的是~~
: 哪种方式会能获得最大的效益?~~
: 小女子感激不尽~~XDXD~
--
Long。Time。No。See
因为有你,所以我存在。
My Blog:
http://longtime.pixnet.net/
Welcome!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.130.69.168
1F:推 alpe:pgclusterII 是用 shareDisk 作的.不过目前我只在文件上看过 05/27 01:04
2F:→ longtime:pgclusterII只有释出文件跟一个Demo版本(跑起来有问题) 05/27 12:28
3F:→ longtime:其他的已经停止一段时间了....尚未看到後续的状况 05/27 12:32
4F:→ longtime:只要能有效处理同步问题,sharenothing架构会是未来的走向 05/27 12:38
5F:推 Creationary:现阶段是写入量大,但是跑到一定程度後就会变慢~~ 06/03 09:57