postgresql 数据同步
1. 总体需求
1.1. 当前情况
随着软件系统复杂度的提高,分布式部署成为软件部署流行的方式。对于系统的结构,
程序和数据是支撑系统的两大要素。程序的分布式部署已经有很多很好的方案,在这里
我说一下数据的分布式部署。数据的分布式部署其实就是数据库的分布式部署。
1.2. 系统环境
在这里,我以下面的环境详细讲 部署的过程。
主数据库服务器 (master)
OS : SuSe linux 9.0 for X86
ip : 10.73.132.201
mask : 255.255.254.0
从数据库服务器 (slave)
OS : SuSe linux 9.0 for X86
ip : 10.73.133.222
mask : 255.255.254.0
需要保证两台机器互连互通.
请到指定目的地下载指定的软件包:
db : postgresql 8.1.2.tar.gz(http://www.postgresql.org/download/)
slony1 : slony1-1.1.5.tar(http://www.postgresql.org/download/)
以上的网址是一个入口地址,请选择合适的正确的源程序包。
使用 root 用户在两台主备机器上分别建立工作目录:
/home/hzh/share
并拷贝 postgresql 8.1.2.tar.gz 和 slony1-1.1.5.tar 到工组目录下。
以下如果没有明确的指定用户,一般都是 root 用户。
1.3. 系统安装
1.3.1 主数据库服务器
1.3.1.1 安装数据库
解压,命令 : tar -xvzf postgresql 8.1.2.tar.gz
进入对应的 postgresql-8.1.2 目录 ,命令 :cd postgresql-8.1.2
检查,命令 : ./configure
检查可能失败,一般是缺少相应的包,请自己安装。
gmake,命令: gmake
注意,是 gmake
安装,命令 : gmake install
以下对于没有 postgres 用户的操作系统适用
建立 postgres 组,命令: groupadd -g 26 postgres
建立 postgres 用户,命令 : useradd -c "postgressql admin user" -d /usr/loca/pgsql -g 26 -G root -u 26 -s /bn/bash
配置环境变量,修改 /etc/profile 文件
vi /etc/profile ,修改 INFODIR=/usr/local/info:/usr/share/info:/usr/info:。。。
为类似如下设置 INFODIR=/usr/local/info:/usr/share/info:/usr/info:。。。/usr/local/pgsql/man
使用 postgres/root 用户修改, /usr/local/pgsql/.bashrc 文件,为 postgres 用户增加环境参数如下:
PGLIB=/usr/local/pgsql/lib
PGDATA=/test/spescso/data
PATH=$PATH:/usr/local/pgsql/bin
MANPATH=$MANPATH:/usr/local/pgsql/man
export PGLIB PGDATA PATH MANPATH
使用 root 用户,建立数据库集群目录,命令如下(如由不明,请参考 linux online help 和 postgresql online help):
mkdir /test
mkdir /test/spescso/
mkdir /test/s