前言
postgres-xl集群的各种安装部署文档网上有很多,但纵观各种手册和指南,尽然没有一个完全可靠的。趁着本次部署,完整记录了部署过程。
参考网上的资料非常多,百度搜索postgres-xl部署的前5页基本上都看过了,我会在文末做详细说明!
环境说明
本次部署环境一共使用了三台虚拟机。详细内容如下:
IP地址 | hostname | 角色 |
---|---|---|
172.20.5.99 | pg1 | gtmproxy,coordinator,datanode |
172.20.5.100 | pg2 | gtmproxy,coordinator,datanode |
172.20.5.101 | pg3 | gtm master |
###本来是要拿pg1做gtm master的,结果我先在172.20.5.101上做了各种准备工作,所以就拿pg3做gtm master了。
操作系统:CentOS 6.8;
CPU: 2个vCPU
内存:16GB
硬盘:200GB
###三个虚拟机硬件配置都一样。虚拟机不是运行在笔记本或台式机上的,是硬件服务器做了虚拟化之后新建的。
postgres-xl版本:postgres-xl-9.5r1.6.tar.bz2
linux远程连接工具:xshell 5
多说一句:9.5r1.6的发布时间是2017年8月24号,根据求稳定不追最新版的游戏规则。
格式约定:以3个###开头的句子,代表我的解释说明或者是注释。
正式开始部署
1,环境准备
1.1 操作系统准备
我的习惯,先改主机名。在linux和windows上都有这样的习惯。
0,登录虚拟机
使用自己熟悉的Linux远程连接工具登录服务器,这里我用的是xshell
1,修改主机名
#vi /etc/sysconfig/network
修改HOSTNAME所在行的内容
HOSTNAME=pg3
###pg3就是主机名,IP是172.20.5.99的服务器这里写的是pg1,IP是172.20.5.100的服务器这里写的是pg2
2,vi /etc/hosts文件,追加写入一下内容:
172.20.5.99 pg1
172.20.5.100 pg2
172.20.5.101 pg3
3,关闭selinux
#sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
###执行完之后先不重启。
4,关闭防火墙并且使防火墙开机也不启动
#service iptables stop
#chkconfig iptables off
5,现在重启系统
#reboot
###注意:第1-5步需要在3台服务器上都操作一遍。重启后可以用getenforce命令检查selinux的状态就已经变成disabled了
6,继续登录pg3的服务器,上传当前操作系统版本的ISO文件到服务器上,上传的目录是/mnt,上传过程略。这一步仅在pg3上操作。
7,将ISO文件利用scp命令拷贝到pg1和pg2的/mnt目录下。这一步仅在pg3上操作。
#scp -r /mnt/CentOS-6.5-x86_64-bin-DVD1.iso root@pg1:/mnt/
###敲下回车后会要求确认是否进行传输,输入yes;之后要输入pg1服务器的root用户密码,之后就开始复制了。
#scp -r /mnt/CentOS-6.8-x86_64-bin-DVD1.iso root@pg2:/mnt/
###敲下回车后会要求确认是否进行传输,输入yes;之后要输入pg2服务器的root用户密码,之后就开始复制了。
8,上传ISO文件的目的在于制作本地yum源。这一步需要在三台服务器都进行操作。
###注意:如果你的环境里可以直接使用互联网进行安装,可以忽略第7、8步。
#cd /mnt
#mv CentOS-6.8-x86_64-bin-DVD1.iso cent.iso
#mkdir /mnt/dvd
#vi /etc/fstab
提示:在这里可按下大写字母G,小写字母o,直接跳转至可编辑的最后一行,非常好用
/mnt/cent.iso /mnt/dvd iso9660 loop 0 0
提示:修改完之后保存退出
#mount -a
#df -Th
###这个命令可以查看iso是否挂载成功
#cd /etc/yum.repos.d/
#mv CentOS-Base.repo CentOS-Base.repo_bak
#mv CentOS-Debuginfo.repo CentOS-Debuginfo