[原创]PostgreSQL Plus Advince Server在 HA环境中一对多的Stream Replication配置(三)
五、准备HA环境
1、准备yum源
a、安装vsftp服务,将光盘镜像copy到本地ftp目录作为yum源。
[root@s1 ~]# mount
可以看到cdrom已经挂载了,首先安装vsftp服务
[root@s1 ~]# cd /media/RHEL_6.3\ x86_64\ Disc\ 1/Packages/
[root@s1 Packages]# rpm -ivh vsftpd-2.2.2-11.el6.x86_64.rpm
[root@s1 Packages]# rpm -ivh ftp*
b、启动vsftp服务
[root@s1 Packages]# /etc/init.d/vsftpd start
设置vsftpd服务开机启动
[root@s1 ~]# chkconfig vsftpd on
c、将光盘镜像copy到vsftp的目录
ftp安装完成后,默认创建/var/ftp/pub目录,我们就把RHEL的ISO中所有文件copy到这个目录:
[root@s1 pub]# cp -a /media/RHEL_6.3\ x86_64\ Disc\ 1/* /var/ftp/pub/
2、配置s1的yum源
[root@s1 ~]# vim /etc/yum.repos.d/rhel-source.repo
#-------------------------yum源的内容 begin--------------------
[rhel-main]
name=Red Hat Enterprise Linux $Main
baseurl=ftp://192.168.1.221/pub/
enabled=1
gpgcheck=0
[rhel-Server]
name=Server
baseurl=ftp://192.168.1.221/pub/Server
enabled=1
gpgcheck=0
[HighAvailability]
name=HighAvailability
baseurl=ftp://192.168.1.221/pub/HighAvailability
enabled=1
gpgcheck=0
[LoadBalancer]
name=LoadBalancer
baseurl=ftp://192.168.1.221/pub/LoadBalancer
enabled=1
gpgcheck=0
[ScalableFileSystem]
name=ScalableFileSystem
baseurl=ftp://192.168.1.221/pub/ScalableFileSystem
enabled=1
gpgcheck=0
[ResilientStorage]
name=ResilientStorage
baseurl=ftp://192.168.1.221/pub/ResilientStorage
enabled=1
gpgcheck=0
#-------------------------yum源的内容 end--------------------
关闭selinux
[root@s2 ~]# setenforce 0
禁用selinux,编辑selinux配置文件
[root@s2 ~]# vim /etc/selinux/config
设置SELINUX=disabled。
停止iptables服务,禁止iptables开机启动
[root@s2 ~]# /etc/init.d/iptables stop
[root@s2 ~]# chkconfig iptables off
更新yum源
[root@s1 ~]# yum clean all
[root@s1 ~]# yum update
2、配置s2的yum源
将s1的yum源配置文件copy到s2即可。
[root@s2 ~]# scp root@192.168.1.221:/etc/yum.repos.d/rhel-source.repo /etc/yum.repos.d/
同样的,关闭selinux,设置SELINUX=disabled,停止iptables服务,禁止iptables开机启动,之后更新yum源。
3、编辑s1和s2的hosts文件
[root@s1 ~]# vim /etc/hosts
增加以下内容,IP地址均为心跳线IP地址
192.168.0.221 s1 s1
192.168.0.222 s2 s2
4、安装iscsi组件,挂载存储设备
a、安装iscsi组件
[root@s1 ~]# yum install iscsi*
b、扫描和连接iscsi设备
扫描iscsi设备
[root@s1 ~]# iscsiadm -m discovery -t st -p 192.168.0.100 -discovery
连接iscsi设备
[root@s1 ~]# iscsiadm -m node -p 192.168.0.100 -l
fdisk -l查看分区情况
/dev/sdf就是存储上我需要挂载的盘符
这里把s1重启,验证iscsi设备是否可以开机自动连接。启动之后fdisk -l查看分区情况,看到/dev/sdf仍然可以连接,继续下一步。SUSE中可能还需要修改iscsi的配置文件,暂时跳过不做验证了。
c、创建挂载目录,挂载iscsi盘
首先格式化
[root@s1 /]# mkfs.ext3 /dev/sdf
再挂载
[root@s1 ~]# mkdir /mnt/iscsi
[root@s1 ~]# mount /dev/sdf /mnt/iscsi
d、umount之后,在s2上重复上面的步骤4
[root@s1 mnt]# umount /dev/sdf
5、停止Network NetworkManager服务,设为开机不自动启动
[root@s1 ~]# /etc/init.d/ NetworkManager stop
[root@s1 ~]# chkconfig NetworkManager off
六、迁移EDB的data目录到iscsi存储设备
1、停止ppas服务
[root@s1 edbdata]# /etc/init.d/ppas-9.2 stop
2、修改/etc/init.d/ppas-9.2启动脚本中的data目录指向
[root@s1 ~]# vim /etc/init.d/ppas-9.2
在文件中修改data路径和日志路径为iscsi设备在本地挂载的路径,我这里修改为/mnt/iscsi/edb/data和/mnt/iscsi/edb/data/pg_log
3、将原来的data目录完整copy到iscsi设备
[root@s1 ~]# cp -rcp /opt/PostgresPlus/9.2AS/data /mnt/iscsi/edb/
这里的权限需要与默认安装时的一样
4、在s1上删除旧有的data目录,尝试启动data目录迁移后的ppas服务
[root@s1 ~]# mv /opt/PostgresPlus/9.2AS/data /opt/PostgresPlus/9.2AS/data_bak
[root@s1 ~]# /etc/init.d/ppas-9.2 start
在s1上的ppas服务成功启动,说明edb的data目录迁移成功!
5、设置s1和s2的ppas服务不要开机启动
[root@s1 ~]# chkconfig ppas-9.2 off
[root@s2 ~]# chkconfig ppas-9.2 off
6、在s2上重复步骤1、步骤2、步骤4。
修改/etc/init.d/ppas-9.2文件时,直接从s1上scp到s2即可。另外需要注意的是,在s2上安装edb时,应该将s1的数据目录清空后再安装。因为我之前在s1上做了s1到s3的Stream Replication的配置,在s2安装完后,应当将数据目录情况,再次还原一次s1的数据目录,否则会造成s1无法启动。
七、安装HA包和配置HA的准备工作
1、安装HA所需的包
该操作需要在s1和s2上都做一遍。
[root@s1 ~]# yum groupinstall –y High*
安装过程很快,立等可取。
2、启动ricci服务,并设为开机启动
该操作需要在s1和s2上都做一遍。
[root@s1 ~]# /etc/init.d/ricci start & chkconfig ricci on
3、设置用户ricci的密码
[root@s1 ~]# passwd ricci //6个0
4、在s1上配置HA
a、创建集群名称
[root@s1 ~]# ccs -h s1 --createcluster edb_cluster
这里我创建的集群名称为edb_cluster
b、添加集群节点
[root@s1 ~]# ccs -h s1 --addnode s1
[root@s1 ~]# ccs -h s1 --addnode s2
查看节点
[root@s1 ~]# ccs -h s1 --lsnodes
c、添加fence设备
添加s1上的fence设备:
[root@s1 /]# ccs -h s1 --addfencedev fence_01 agent=fence_ipmilan ipaddr=192.168.0.200 login=USERID passwd=PASSW0RD
添加s2上的fence设备:
[root@s1 /]# ccs -h s1 --addfencedev fence_02 agent=fence_ipmilan ipaddr=192.168.0.201 login=USERID passwd=PASSW0RD
为s1节点添加fence设备
[root@s1 /]# ccs -h s1 --addmethod fence_s1 s1
为s1节点添加fence设备
[root@s1 /]# ccs -h s1 --addmethod fence_s2 s2
关联s1节点fence
[root@s1 /]# ccs -h s1 --addfenceinst fence_01 s1 fence_s1
关联s2节点fence
[root@s1 /]# ccs -h s1 --addfenceinst fence_02 s2 fence_s2
查看刚刚创建的fence设备
[root@s1 ~]# ccs -h s1 --lsfenceinst
d、创建故障域
创建故障域edb_ domain,有限制无序,且失效节点重新加入集群后服务无需返回该节点
[root@s1 ~]# ccs -h s1 --addfailoverdomain edb_domain restricted ordered=0 nofailback
[root@s1 ~]# ccs -h s1 --addfailoverdomainnode edb_domain s1 1
[root@s1 ~]# ccs -h s1 --addfailoverdomainnode edb_domain s2 1
查看故障域
e、创建资源与服务
创建VIP资源,并且监控资源
[root@s1 /]# ccs -h s1 --addresource ip address=192.168.1.228 monitor_link=1
[root@s1 /]# ccs -h s1 --addresource fs name=edb_share fstype=ext4 device=/dev/sdf mountpoint=/mnt/iscsi force_unmount=1 self_fence=1
// force_unmount表示节点失效后强制卸载,self_fence表示强制卸载无效后对该节点做fence动作
创建edb服务启动脚本
[root@s1 /]# ccs -h s1 --addresource script name=edb_script file=/etc/init.d/ppas-9.2
f、创建服务
[root@s1 /]# ccs -h s1 --addservice edb_service domain=edb_domain recovery=relocate
//edb_service表示服务名称,relocate表示若节点失效先尝试在该节点重启服务再切换节点重启服务
[root@s1 /]# ccs -h s1 --addsubservice edb_service ip ref=192.168.1.228
//添加服务的子服务VIP
[root@s1 /]# ccs -h s1 --addsubservice edb_service ip:fs ref=edb_share
//添加子服务的下级子服务
[root@s1 /]# ccs -h s1 --addsubservice edb_service ip:fs:script ref=edb_script
//同上
最后的结构是edb_service服务先启VIP,再挂载iscsi,最后启动edb
查看创建的所有服务与资源
[root@s1 /]# ccs -h s1 --lsservices
还要告诉集群是双节点
[root@s1 /]# ccs –h s1 two_node=1 expected_votes=1
5、将HA的配置文件同步到集群的每个节点
[root@s1 /]# ccs -h s1 --sync --activate
最好是将配置文件手动copy到其他节点!
s1与s2同步开启cman服务,分别开启rgmanager服务,并将cman和rgmanager服务都设为开机自启。
[root@s1 /]# /etc/init.d/cman start
[root@s1 ~]# /etc/init.d/rgmanager start
[root@s1 ~]# chkconfig cman on
[root@s1 ~]# chkconfig rgmanager on
至此,RHEL HA搭建完毕,但是还要做一件事情:为edb做一次归档
[root@s1 ~]# mkdir /mnt/iscsi/archivedir/
[root@s1 ~]# chown enterprisedb.enterprisedb /mnt/iscsi/archivedir/
修改配置文件:
[root@s8 ~]# vim /mnt/iscsi/edb/data/postgresql.conf
postgresql.conf:
wal_level = archive
archive_mode = on
archive_command = 'cp -i %p /mnt/iscsi/archivedir/%f < /dev/null'
[root@s8 ~]# /etc/init.d/ppas-9.2 restart
6、集群测试
[root@s1 ~]# clustat
使用watch命令可以更方便的以固定间隔时间查看
[root@s1 ~]# watch -n1 clustat
其中,n后的时间单位为秒。
使用fence命令,手动fense节点s2
[root@s1 ~]# fence_node s2
节点s2重启。
拔业务线,其他节点可以接管服务。
手动切换节点:
[root@s2 ~]# clusvcadm -r edb_service -m s1
HA配置完成。
[原创]PostgreSQL Plus Advince Server在 HA环境中一对多的Stream Replication配置(三)的更多相关文章
- [原创]PostgreSQL Plus Advince Server在 HA环境中一对多的Stream Replication配置(四)
八.HA环境下配置多节点的sshVIP(s1):[root@s1 ~]# mkdir /opt/PostgresPlus/9.2AS/.ssh[root@s1 ~]# chown enterprise ...
- [原创]PostgreSQL Plus Advince Server在 HA环境中一对多的Stream Replication配置(一)
内容较多,开篇作为说明和目录. 实验环境规划:服务器:IBM x3500 m3三台其中两台用作HA,另外一台安装VMware ESXi安装两个虚机做Stream Replication.NAS存储IP ...
- [原创]PostgreSQL Plus Advince Server在 HA环境中一对多的Stream Replication配置(二)
三.配置主机与备机的ssh无密码登录1.主机s1到备机s3的无密码登录a.创建ssh目录[root@s1 ~]# mkdir /opt/PostgresPlus/9.2AS/.sshb.修改ssh目录 ...
- 在 SharePoint Server 2016 本地环境中设置 OneDrive for Business
建议补丁 建议在sharepoint2016打上KB3127940补丁,补丁下载地址 https://support.microsoft.com/zh-cn/kb/3127940 当然不打,也可以用O ...
- [原创] PostgreSQL Plus Advanced Server在Windows中配置双机热备流复制
一.系统环境 操作系统:Windows Server 2003/2008 两个节点分别为master与slave. 主节点master:172.27.19.28 备机点slave:172.27.19. ...
- [原创]PostgreSQL Plus Advanced Server配合crontab实现定时维护工作
本文要实现的目标1.PostgreSQL定时全备2.定时删除归档WAL文件3.定时删除全备文件4.删除n天之前的数据库日志文件 实验环境操作系统:RHEL 6.3数据库:PostgreSQL Plus ...
- [原创]PostgreSQL Plus Advanced Server监控工具PEM(四)
四.PEM管理工具 1.编辑配置 选择进行管理的目标服务器,点击菜单Tools->Server Configuration->postgresql.conf管理服务器配置,可以看到我们经常 ...
- [原创]PostgreSQL Plus Advanced Server监控工具PEM(一)
一.概述 PEM是为数据库管理员.系统架构师和性能分析师为管理.监控和优化 PostgreSQL 和 EnterpriseDB 数据库服务器设计的图形化管理工具.旨在解决大量数据库服务器跨地域.精细化 ...
- [原创]PostgreSQL Plus Advanced Server批量创建分区表写入亿级别数据实例
当前情况:大表的数据量已接近2亿条我的解决思路:为它创建n*100个分区表,将各个分区表放在不同的tablespace上这样做的优点:1.首先是对这个级别的数据表的性能会有所提升2.数据管理更科学3. ...
随机推荐
- DATASNAP REST WEBSERVICES中间件如何跨平台使用
DATASNAP REST WEBSERVICES中间件如何跨平台使用 准备使用DELPHI开发移动设备开发的朋友对DATASNAP REST中间件不可不了解. DATASNAP REST新型WE ...
- Http error code
概要 当用户试图通过HTTP或文件传输协议(FTP)访问一台正在运行Internet信息服务(IIS)的服务器上的内容时,IIS返回一个表示该请求的状态的数字代码.该状态代码记录在IIS日志中,同时也 ...
- Auto Layout 在iOS屏幕适配中的使用
前几天在做iOS屏幕的适配,也就是让同样的UI控件的布局在不同屏幕的iOS设备上面都正确显示,storyBoard就无可避免的用到了Auto Layout.在这个过程中,我发现要熟练掌握Auto La ...
- 全新jquery多点滑动幻灯片——全屏动画animateSlide
首页banner的酷炫效果多来自全屏大图的幻灯片动画,下面提供一种完美兼容的jquery动画特效:全新jquery多点滑动幻灯片——全屏动画animateSlide(代码完全原创). 直接上代码,把h ...
- 绝对好评的淘宝购物导航:baiso.uz.taobao.com
绝对好评的淘宝购物导航:baiso.uz.taobao.com 绝对好评的淘宝购物导航--百搜:http://baiso.uz.taobao.com
- JavaScript引用类型(二)
Date类型 Javascript中的Date类型是采用Java中的java.util.Date类基础上构建的,使用UTC时间来保存数据,可以精确到1970年1月1日之前或之后的285616年 创建一 ...
- (火炬)MS SQL Server数据库案例教程
(火炬)MS SQL Server数据库案例教程 创建数据库: CREATE DATABASE TDB //数据库名称 ON ( NAME=TDB_dat,//逻辑文件名 在创建数据库完成之后语句中引 ...
- Android里viewpager切换页面存在页面不相邻的页面被销毁的问题
我之前一直因为viewpager+fragment时,所有页面的状态都会被自动保存 这次自己做了一个添加了5跟fragment的viewpager 测试时发现当从第一个切换到第四个页面时,再回到第一个 ...
- Exchange之三合一部署
1. 前期准备条件之安装filter包 2. 前期准备之安装组件,命令如下 Add-WindowsFeature NET-Framework,RSAT- ...
- C++ Double Ended Queues(双向队列)
双向队列和向量很相似,但是它允许在容器头部快速插入和删除(就像在尾部一样). Constructors 创建一个新双向队列 Operators 比较和赋值双向队列 assign() 设置双向队列的值 ...