搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
weixin_40725706
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
mysql卸载后重装不_mysql卸载后无法重装
2
Python的http模块requests
3
【jQuery学习】jQuery内容文本值_jquery 定位元素内容
4
计算image1和image2之间的LPIPS指标的python代码_计算两个数据集的lpips
5
乐鑫 SoC 内存映射入门_soc中内存访问客户端
6
docker 容器防火墙设置_容器内部防火墙
7
Windows10 下使用 telnet 命令_win telnet返回结果
8
[Ansible系列]ansible JinJia2过滤器_ansible jinja2 filter
9
Win10 远程连接 MySQL 防火墙阻止访问的解决办法_客户端访问mssql 被防火墙拦截
10
C++实现YOLO目标识别图像预处理、后处理_yolo后处理
当前位置:
article
> 正文
postgresql使用RHCS套件搭建HA高可用集群_postgresql+rhcs
作者:weixin_40725706 | 2024-03-01 11:09:57
赞
踩
postgresql+rhcs
环境:
数据库服务器 2台
服务器一 操作系统:CentOS 6.8 x86_64
IP(eth0):192.168.11.61
主机名:node1
服务器二 操作系统:CentOS 6.8 x86_64
IP_1(eth0):192.168.11.62
主机名:node2
存储服务器 操作系统:CentOS 6.8 x86_64
IP_1(eth0):192.168.11.63
主机名:disk
共享盘:/dev/sdb(30G、LVM)
虚拟IP 192.168.11.69
1、共享磁盘的设置
[root@disk ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xa5927bb4.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +10G
Command (m for help): w
The partition table has been altered!
[root@node1 /]# fdisk -l
Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0007f236
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 6528 51915776 8e Linux LVM
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2eb7246b
Device Boot Start End Blocks Id System
/dev/sdb1 1 1305 10482381 83 Linux
Disk /dev/mapper/VolGroup-lv_root: 51.1 GB, 51078234112 bytes
255 heads, 63 sectors/track, 6209 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/VolGroup-lv_swap: 2080 MB, 2080374784 bytes
255 heads, 63 sectors/track, 252 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
格式化磁盘
[root@node1 ~]# mkfs.ext3 /dev/sdb
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2620506 blocks
131025 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 39 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
2、用户及目录(两台数据库服务上都执行):
创建 postgres用户
[root@node1 ~]# useradd postgres
创建数据库的data目录,并配置目录的权限
[root@node1 ~]# mkdir -p /home/postgres/pgsql9.6
[root@node1 ~]# mkdir -p /home/postgres/data
[root@node1 ~]# chown -R postgres:postgres /home/postgres
在postgres 用户下设置环境变量
export PATH=/home/postgres/pgsql9.6/bin:$PATH
export PGDATA=/home/postgres/data
export LD_LIBRARY_PATH=/home/postgres/pgsql9.6/lib
3、网络配置(三台机器都执行):
root用户配置/etc/hosts文件,最终内容如下:
127.0.0.1 localhost.localdomain localhost.localdomain localhost4 localhost4.localdomain4 localhost
::1 localhost.localdomain localhost.localdomain localhost6 localhost6.localdomain6 localhost
192.168.11.61 node1
192.168.11.62 node2
192.168.11.63 disk
root用户关闭防火墙,命令如下:
[root@node1 ~]# chkconfig iptables off
[root@node1 ~]# service iptables stop
root用户编辑文件/etc/sysconfig/selinux,关闭selinux,命令如下:
[root@node1 ~]# vi /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=
disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
4、SSH互信
root用户互信
[root@node1 ~]# ssh-keygen -t rsa -P ' '
[root@node1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1
[root@node1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2
[root@node1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@disk
postgres用户互信
[root@node1 ~]# su - postgres
[postgres@node1 ~]$ ssh-keygen -t rsa -P ' '
[postgres@node1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub postgres@node1
[postgres@node1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub postgres@node2
[postgres@node1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub
postgres@disk
root用户与postgres用户互信
[root@node1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub postgres@node1
[root@node1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub postgres@node2
[root@node1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub postgres@disk
[postgres@node1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1
[postgres@node1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2
[postgres@node1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@disk
5、安装共享存储
共享存储采用icsci + multipath的形式。
ISCSI
存储服务器
服务器端安装scsi-target-utils包。
编辑/etc/tgt/targets.conf文件添加存储分区,添加内容如下:
<target iqn.2017-04-05.dev:server.target1>
backing-store /dev/sdb1
</target>
配置服务,命令如下:
[root@disk ~]# service tgtd start
[root@disk ~]# chkconfig tgtd on
节点服务器(两台都安装)
客户端安装iscsi-initiator-utils包。
编辑/etc/iscsi/initiatorname.iscsi文件添加存储目标,文件内容如下:
InitiatorName=iqn.2017-04-05.dev:server.target1
配置服务:
[root@node1 ~]# chkconfig iscsi on
[root@node1 ~]# chkconfig iscsid on
[root@node1 ~]# service iscsi restart
[root@node1 ~]# service iscsid restart
创建目录,联机iscsi共享盘,命令如下:
[root@node1 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.11.63:3260
[root@node1 ~]# iscsiadm -m node -T iqn.2017-04-05.dev:server.target1 -l
[root@node1 ~]# mount /dev/sdb /home/postgres/data
[root@node1 ~]# chown -R postgres:postgres /home/postgres/data
6、安装postgresql数据库
安装过程:
节点一
[postgres@node1 ~]$ tar -xvf postgresql-9.6.1.tar.bz2
[postgres@node1 ~]$ cd postgresql-9.6.1
[postgres@node1 postgresql-9.6.1]$ ./configure --prefix=/home/postgres/pgsql9.6/
[postgres@node1 postgresql-9.6.1]$ make
[postgres@node1 postgresql-9.6.1]$ make install
[postgres@node1 postgresql-9.6.1]$ /home/postgres/pgsql9.6/initdb -D /home/postgres/data (注意要确保你的/dev/sdb /挂载到了/home/postgres/data 可以df -h查看一下)
节点一关闭数据库服务,umount共享盘
在节点二安装数据库,将共享盘至/home/postgres/data目录下,删除data目录下的所有文件,之后安装数据库(重复节点一安装数据库的过程)。
节点二关闭数据库服务,umount共享盘
将共享盘挂载至节点一,重启数据库服务,进行检查
7、HA软件安装配置
安装事项
存储服务器:yum安装luci
节点服务器:yum安装ricci、cman、rgmanager
这四个软件均设置为开机自启
[root@disk ~]# chkconfig luci on
[root@node1 ~]# chkconfig ricci on
[root@node1 ~]# chkconfig cman on
[root@node1 ~]# chkconfig
rgmanager
on
所有服务器关闭NetworkManager服务并设置为开机不启动(否则无法启动cman)
[root@node1 ~]# service
NetworkManager
stop
[root@node1 ~]# chkconfig
NetworkManager
off
节点服务器:passwd ricci设置密码
存储服务器以操作系统root用户及其密码登录web管理界面:
https://localhost:8084
1.登陆
2.创建集群
点击面板左侧的“Manage Clusters”
点击“Create”
3.、添加失效域
添加完集群之后,会自动重启节点服务器。
重新登录管理界面,点击刚创建的集群
点击“Failover Domains”,添加失效域
4.添加资源
点击“Resource”,添加资源
在下拉菜单中选择“Fielsystem”,添加共享盘资源(data)
在下拉菜单中选择“Ip Addres”,添加虚拟ip
在下拉菜单中选择“Script”,添加数据库服务脚本,注意脚本的可执行权限
5.集群状态
6.数据库服务脚本(注意脚本权限)
[root@node1 postgres]# cat service.sh
#!/bin/bash
# environment.
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
export PGDATA=/home/postgres/data
export PGUSER=postgres
export PGDATABASE=postgres
export PGHOST=localhost
export PGPORT=5432
export PATH=$PATH:$HOME/bin:/home/postgres/pgsql9.6/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/postgres/pgsql9.6/lib
function start {
su - ${PGUSER} -c "pg_ctl start"
return 0
}
function stop {
su - ${PGUSER} -c "pg_ctl stop -m fast"
return 0
}
function reload {
su - ${PGUSER} -c "pg_ctl reload"
return 0
}
function status {
su - ${PGUSER} -c "pg_ctl status"
return $?
}
# See how we were called.
case "$1" in
"start")
start
exit $?
;;
"stop")
stop
exit $?
;;
"restart")
stop
start
exit $?
;;
"reload")
reload
exit $?
;;
"status")
status
exit $?
;;
*)
echo $"Usage: $prog {start|stop|restart|reload|status}"
exit 0
esac
7.服务器切换测试
将阶段一的服务器关闭,查看是否能切换到节点二上
[root@node2 postgres]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_node1-lv_root
37G 4.6G 31G 14% /
tmpfs 491M 26M 466M 6% /dev/shm
/dev/sda1 477M 35M 418M 8% /boot
/dev/sdb 20G 83M 19G 1% /home/postgres/data
[root@node2 postgres]# su - postgres
[postgres@node2 ~]$ psql
psql (9.6.1)
Type "help" for help.
postgres=#
服务器正常切换,数据库能正常使用
可以看出节点一掉了 ,服务运行中在节点二上
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/weixin_40725706/article/detail/173436?site
推荐阅读
article
【
postgre
sql】查看
数据
中表
的
信息
_
postgre
查询
数据
库表名及
注释
...
名字空间是 SQL 模式下层
的
结构:每个名字空间有独立
的
关系, 类型等集合但并不会相互冲突。切换到
postgre
sql数...
赞
踩
article
干货分享!
CynosDB
for
PostgreSQL
架构
浅析...
导语
CynosDB
是新一代高性能高可用的企业级分布式云数据库,采用共享存储
架构
,作为腾讯云NewSQL数据库家族成员之一...
赞
踩
article
p
s
ql
:
错误
:
连接到套接字“/
var
/
run
/
po
s
tgre
s
ql
/.
s
.PGSQL.5432...
kali Po
s
tgre
s
ql报错_p
s
ql
:
错误
:
连接到套接字
"
/
var
/
run
/
po
s
tgre
s
ql
/.
s
.pg...
赞
踩
article
【
Linux
— 安装
PostgreSQL
】
Linux
系统
CentOS
7 版本安装 Post...
在
Linux
系统中安装
PostgreSQL
以及安装成功后在 Windows 环境下使用 Navicat 远程连接...
赞
踩
article
【
postgresql
】
数据表
id
自增
与
python
sqlachemy
结合实例...
需求:
postgresql
实现一个建表语句,表名:student,字段
id
,name,age,要求:每次添加一个数据
id
...
赞
踩
article
【
postgresql
基础入门】
多表
联合
查询
join
与
union
并
,
交
,
差等集合操作
,
两者的区...
postgresql
数据库是一款通用的关系型数据
,
在开源数据库中能与商业数据媲美
,
在业界也越来越流行。因为是开源数据库...
赞
踩
article
Longhorn
+
K8S
+
KubeSphere
云端
数据管理
,实战
Sentry
PostgreSQL
...
云端实验环境配置VKE
K8S
ClusterVultr 托管集群https://vultr.com/3 个 worke...
赞
踩
article
Postgre
SQL
SQL
语言:全文
搜索
...
本文档为
Postgre
SQL
9.6.0文档,本转载已得到原译者彭煜玮授权。1. 介绍全文
搜索
(或者文本
搜索
)提供了确定...
赞
踩
article
PostgreSQL
中强大的
全文
搜索_
postgresql
全文
检索...
这篇博文将引导您了解使用
PostgreSQL
实现足够好的
全文
搜索所需的基本部分。剧透警告:对于那些寻找“好的,只需向我展...
赞
踩
article
Centos7.6部署
postgresql
15
主从_
centos7
postgresql
15
...
Centos7.6部署
postgresql
15
主从_
centos7
postgresql
15
centos7
postg...
赞
踩
article
postgresql
-15
数据库
基于
centos
7
安装_
centos
postgresql
15
...
该脚本将运行一些测试来决定一些系统相关的变量, 并检测你的操作系统的特殊设置,并且最后将在编译树中创建一些文件以记录它找...
赞
踩
article
postgresql
高
可用
集群
搭建资料
_
postgresql
+
pgpool
构建容灾
高
可用
集群
...
多种方案,含zookeeper方案 :PostgreSQL 流行 HA 方案1. 自己实现
高
可用
集群
有实例有讲解!pos...
赞
踩
article
PostgreSQL
15
版本
新特性一览_
postgresql
15
...
PostgreSQL
15
版本
保持我们一贯以来的标准,即提供稳定、可靠的世界上功能最为强大的开源的关系数据库系统。_po...
赞
踩
article
PostgreSQL
HA
集群
高
可用
方案
介绍 &
pgpool
-II+
PostgreSQL
HA
方案
...
PostgreSQL
HA
集群
高
可用
方案
介绍 &
pgpool
-II+
PostgreSQL
HA
方案
部署一、Postgr...
赞
踩
article
PostgreSQL
安装部署_
postgre
数据库
安装...
输入管理密码,如果之前没有,可以点击下方 Reset Master Password 进行重设。(如果下载超时,会返回到...
赞
踩
article
PostgreSQL
学习总结(11)——
PostgreSQL
常用的高
可用
集群
方案
_postgre...
PostgreSQL
本身不支持任何多主群集解决
方案
,例如MySQL或Oracle。尽管如此,仍有许多商业和社区产品提供此...
赞
踩
article
数据库 - PostgreSql - 双机热备技术:使用
pgpool
搭建高可用
PostgreSQL
...
https
:
//blog.csdn.net/zhousenshan/article/details/52084097?u...
赞
踩
article
【
PostgreSQL
】系列之 一
CentOS
7
安装
PGSQL15
版本(一)_
centos7
如何...
PostgreSQL
是以加州大学伯克利分校计算机系开发的POSTGRES, 版本 4.2为基础的对象关系型数据库管理系...
赞
踩
article
【
入门教程
】
PostgreSQL
+
SequoiaDB
HA 实践_
sequoiadb
是用
pgsql
写...
【
入门教程
】
PostgreSQL
+
SequoiaDB
HA 实践前言
SequoiaDB
作为分布式数据库,从设计之初就已经支...
赞
踩
article
Postgresql HA(PG-
POOL
)安装_
postgresql
13.13
disable
_...
一、服务器配置服务器IP CPU 内存 磁盘 备注 172.18.2.18 16核 64G ...
赞
踩
相关标签
postgresql
数据库
服务器
linux
centos
python
kubernetes
sentry
docker
容器
云原生
人工智能
运维
elasticsearch