Patroni安装部署指南.pdf

所需积分/C币:7 2019-08-29 03:19:43 1.05MB .PDF

本资料为王健老师Patroni系列课程第1讲:安装部署的讲义资料第二部分安装部署指南 点击观看视频课程 课程介绍:主讲人:王健,社区昵称canno目前在神州飞象做pg相关的运维工作,热爱pg,正在学习pg内核的相关的代码,欢迎大家和我讨论,一起共同成长。 直播内容:Patroni系列课程第1讲:安装部署直播时间:每周四20:00直播地址:PostgreSQL技术进阶群扫码进群
目录 安装环境说明… 运行环境搭建 21安装 openssl-deve、 pytho ibnl、jq、 libnfnetlink- devel、 hapro watchdog (root )... 22 Python2.7的搭建(root) 23pip的安装(root) 6 24创建系统用广(以下的普通用广均为这个用户)(root) 6 25建立日志目录(普通用户) 6 3安装 zookeeper 31解压(root)… 32安装(root)… 4 patroni安装与配置… 41安装 python模块包(root) 42安装 patroni(普通用户) 43配置 patroni参数文件(普通用户) ·:·:t 5更改数据库参数 6加入自动中间件和复制程序的切换 .14 7集群的启停 14 7.1关闭现有流复制集群主备库(普通用户) 7.2修改 pg hba文件(普通用户) 7.3启动 14 74修改 pg hba文件(普通用户).14 75启动z0 keeper(root) 14 7.6启动 Patroni(普通用户) 15 patronI安装部署指南 第3页,共15页 Patroni安装 1安装环境说明 本例中安装 patronI开源软件和 patroni运行所需的中间什和数据库 zookeeper、 patroni、 postgresql软件版本信息如下: 软件 版本 patron patroni-1.4.3 zookeeper zookeeper-3.3.6 postgresql postgresql-10.1 Python,pip版本 Python Python 2.7.5 pIp pip 9.0. 1(python 2.7) 主机信息如下 系统非最小化安装,默认安装 P地址 主机名 操作系统 198.168.191.140 test2 Centos Linux release 7.4.1708(Core) 198.168.191.143 test3 CentOS Linux release 7.4. 1708(Core) 198.168.191.142 test1 Centos Linux release 7.4.1708(Core) 所有用到的包均在百度云盘的压缩包中( patroni安装部署需要的包),请解压并按照步骤 使用里面的各个包 下载地址:htts:/ pan. baidu. com/s/1nKT5mb180 WlEdufj3pKS5Q提取密码:ws‖ 2运行环境搭建 21安装 openssl- devel、 python- devel、 libnl、j libnfnetlink- devel、 haproxy、 watchdog(root) 三个节点均需执行 patronI安装部署指南 第4页,共15页 解压 car -xvf package. tar. gz cd.package/package 分别进入 openssl- devel、 python-devel、ibnl、j、 libnfnetlink- devel、 watchdog目录, 用yum安装6个目录中的包 yun install ./x 22 Python27的搭建(root) test3,test1节点执行 运行 patron需要 python27以上版本。 查看 python版本信息命令 python --version 在 centos74下, python的版本是275,不需要进行这一步! 这里用的是 python271版本,下载地址 Python-2.7.1F#x:https://www.python.org/ftp/python/2.7.1/python-2.7.1.tar.bz2 安装27.1替换掉26.6 解压 car -ivf Python-27i. tar. bz2 进入目录: cd python-2.7.1 安装: /configure make all make install make clean make distclean 查看版本信息 usr/local/bin/python.7-v 建立软连接,使系统默认的 python指向 py thon2.7: mv /usr/bin/ python /usr/bin/python.6.6 In -s /usr/lccal/bin/python.7 /usr/bin/python 重新检验 Py thon版木 python -V patronI安装部署指南 第5页,共15页 解决系统 Python软链接指向 Python2.7版本后,因为yum是不兼容 Python2.7的,所 以yum不能正常工作,我们需要指定yum的 Python版本 vi /usr/bin/yum 将文件头部的 #! /usr/bin/python 改成 #!/usr/bin/python 2.6.6 保存&退出! 23pip的安装(root) test3test1执行 安装 setuptools: cd/home /poscgres/package/setuptools python . /setup. py install 安装pip: cd /home/poscgres/package/pip chmod +x setup. py python ./setup oy install plp -verslon pip 9.0. 1 from /usr/lib/python27/site-packages/pip-90.1-py27 egg (python 2.7) 24创建系统用户(以下的普通用户均为这个用户)(root) 三个节点均需执行 创建系统普通用户(后文标注的普通用户均为这个用户),定义密码: useradd postgres passwd postgres 25建立日志目录(普通用户) 个节点均需创建 mkdir -p /home/postgres/logfile/ mkdir -p home/postgres/etcd 3安装z0 keeper 3.1解压(root) 三个节点均需执行 解压安装文件 patronI安装部署指南 第6页,共15页 -ar -xzv zookeeper-3.3.6. tar. gz 32安装(root) 三个节点均需执行 修改 ZooKeeper配置文件 在其中一台机器上192.168.0.2,解压缩 zookeeper-3.3.4.tar,gz,把cof日录下的 zoo sample,cfg复制成z.cfg文件,修改配置文件cnf/z0.cfg,内容如下所示: cickrime=2000 dataDir=/roo=/ zookeeper datalogDir-/home/postgres/logfile lientport=2181 initlimit=5 syncLimit= server,1=192.168.0.2:2888:3888 server.2=192.168.0.3:2888:3898 server,3=192.168.0.4:2888:3888 init. mi t:这个配置项是用来配置。○ keeper接受客户端(这里所说的客户端不是用户 连接 Zookeeper服务尜的客户端,而是 Zookeeper服务器集群中连接到 Leader的 Eo11°wer服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过10个心 跳的时问(也就是 tickTime)长度后2 ockeeper服务器还没有收到客户端的返回信息, 那么表明这个客户端连接失败。总的时间长度就是52000=10秒 syncLlmit:这个配置项标识 Leader与Fo11ower之间发送消息,请求和应答时间长 度,最长不能超过多少个 tickTime的时间长度,总的时间长度就是2*2000=4秒 server,Δ-B:C:L:其中A是一个数字,表示这个是第几号服务器;B是这个服务器的 ip地址;C表示的是这个服务器与集群中的 Leader服务器交换信息的端口;D表示的是万 集群中的 Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader 而这个端口就是用来扶行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于B 都是一样,所以不同的乙 keeper实例通信端口号不能一样,所以要给它们分配不同的端 第二步:远程复制分发安装文件 上面已经在一台机器192.168.0.2上配置完成2 Keeper,现在可以将该配置好的安装文 件远程拷贝到集群中的各个结点对应的日录下 第三步:设冒myid 在我们配置的 datadir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来 标识当前主机,conf/zoo,cfg文件中配置的 server,x中x为什么数字,则myia文件中就 输入这个数字 第四步:启动 ZooKeeper集群 在名节点的bin目录下执行:/ zkServer. sh start tails zookeeper.cut可能发现如下异常 ARN WorkerSender Thread: Quorum CnxManager @384]-Cannot open channel to 2 t election address slave-02/192.168.0.178: 3888 patronI安装部署指南 第7页,共15页 java. net. ConnectException: Connection refused at. sun nio ch. SocketChanne l Tmpl. checkConnect(Native Methcc) at sun nio ch. Socke-ChannelImpl, finishConnect(SocketChannelImpliava: 567 at sun nio ch, SocketAdaptor connect (SocketAdaptor java: 100) at org. apache zookeeper. server. quorum. QuorumCnxManager connecton(Quorum CnxManager. java: 371) a t org. apache. zookeeper. server. quorum. QuorumCnxManager toSend(QuorunmCnxM anager. java: 340) org. apache zookeeper. server, quorum. FastLeaderElectionSMessengersWorke render process(FastLeaderElection java: 360) Lt apache zookeeper. server. quorum. FastLeaderElection sMessengersWorke render run(Fast.leaderElection java: 333) at java. lang. Threac. run(Thread. java: 662) 2012-01-0806:51:19,420-WARN[ Worker Sende Thread: QuorumCnxManager@384- Cannot open channel to 3 at election address slave-03/192.168.0.177:3888 java. net. ConnectException: Connection refused at sun nio ch. SocketChannelImpl. checkConnec=(Native Methca) 七 sun nioch. Socke-ChannelImpl finishConnect(Socket ChannelImpl.ava: 567 at sun nio ch. SocketAdaptor connect ( SocketAdaptor java: 100) at org. apache zookeeper. server, quorum. QuorumCnxManager connecton(Quorum CnxManager. java: 371) at org. apache zookeeper. server. quorum. QuorumCnxManager tosen(QuorummCnxM anager. java: 340) at org. apache zookeeper. server. quorum. Fastheaderl ection SMessengerswor ke sEnder process(FastLeaderElection java: 360) a七 org. apache zookeeper. server. quorum. FastLeaderElectionSMessengerSWorke sender run(fastleaderElection. java: 333) t java. lang. Thread. run(Thread :662) 由于 Zookeeper集群启动的时候,每个结点都试图去连接集群中的其它结点,先启动的肯定连 不上后面还没启动的,所以上面日志前面部分的异常是可以忽略的。通过后面部分可以看到 集群在选出一个 eader后,最后稳定了 patronI安装部署指南 第8页,共15页 其他结点可能也出现类似问题,属于正常 第扛步:安裝验证 可以通过 ZooKeeper的脚本来查看启动状态,包括集群中各个结点的角色(或是 Leader,或 是Fo1ower),如下所示,是在2 crEeper集群中的每个结点上查询的结果: /bin/zkserver sh status 另外,可以通过客户端脚本,连接到2 zookeeper集群上。对于客户端来说,z。 keeper 个整伓(enseπble),连接到 ZOOKeeper集群实际上感觉在独享整个集群的服务,所以,你 可以在任何一个结点上建立到服务集群的连接,例如 /bin/zkclish -server 192.168.0.2: 2181 4 patroni安装与配置 41安装 python模块包(root) test3,test1节点进行 cd/ home/postgres/package/python package source/home/posτgres/. bash profile# Source数据库环境变量 pip install ./x 42安装 patroni(普通用户) test3,test1节点进行 这里只需要解压文件 unzip patroni-1.4.3.zip 43配置 patroni参数文件(普通用户) /home/postgres/patroni-1.4.3/postgreso xml /home/postgres/patroni-1.4.3/postgres1. xml /home/postgres/patroni-1.4.3/postgres2. xml 三个模板参数文件中各项参数的意义: score: atman#集群名,二级目录名stcd:/< namespace>/< scope>/ config # namespace:/ servlce/##一级目录名Etcd:/< name space>/< scope>/c○nfig name: postgresql10## patroni节点名 restart:## haproxy的监听端口,8008,8009,8010. lister:192.168.191.143:80 connect address:192.168.191.143:8008 t certfile: /etc/ssl/certs/ssl-cert-snakeoil perm t keyfile: /etc/ssl/privare/ssl-cert-snakeoil key t authentication username: username patronI安装部署指南 第9页,共15页 password: password etcd:##本数据库节点指向的etcd节点的位置 host:_92.168.191.143:2379 bootstrap f this section will be writte espace>/<scope>/conf after initializing new cluster and all other cluster members will use it as a global confi guration dcs: tt1:30#当一段时间内没有人更新dcs中1 eader key,则视作到期,删除并重新选举 新的主节点。默认30 seconds t:10## Patrons多久循环一次HA 默认10 seconds retry timeout:10##如果更新dcs中1 eader key失败, Patron将在这段时间内尝 试再更新。默认10 seconds maxlmum1 ag on failover:1048576#每一次的A1ooP,主节点把 wal position写入到acs中,而从属于这个主的每个从节点将会用自己的最后一个 wal position与主节点的进行对比。如果主从的差距大于 maximum lag on failover, patroni使不会再让这个差距变的更大。默认1048576bit # master start timeout:300#主节点启动超时。默认300 seconds synchronous mode: false##同步流复制配置选项。默认fa1se postgresql use pg rewind:true## og rewind开关 use slots: true parameters:##pg参数文件配置 wal level: hot standb hot standby: on wal keep segments: 8 max wal senders: 5 max replication slots: 5 wal log hints: on archive mode:"on”#若要开启归档,归档参数默认不写入数据目录里面的参 数文件,要取消注释 archive timeout:180Cs#若要开启归档,归档参数默认不写入数据目录里面 的参数文件,要取消注释 archive command: m<dir -p /wal archive && test ../wa1 archive/f&&cp3p.,/ wal archive/%f#若要开启归档,归档参数默认 不写入数据目录里面的参数文件,要取消注释 recovery conf: restore command:cp../wa1 archive/号f3P#恢复参数默认不会写入 recovery conf,要取消注释 patronI安装部署指南 第10页,共15页

...展开详情
img
  • 至尊王者

    成功上传501个资源即可获取

关注 私信 TA的资源

上传资源赚积分,得勋章
相关内容推荐
  • 下载 -

    -