本文共 4470 字,大约阅读时间需要 14 分钟。
服务器的硬件配置
服务器硬件配置表
机型 | 组件 | 型号 | 数量 |
服务器机型 | CPU |
|
|
内存 |
| ||
硬盘 |
| ||
网卡 |
|
Linux系统为 neokylin7.6(中标麒麟7.6)
中标麒麟光盘镜像nsV7Update6-adv-lic-build4-x86_64.iso
安装时,服务器的安装软件选项为:
基本环境:带GUI的服务器
已选环境的附加选项:FTP服务器+Java平台+大系统性能+兼容性程序库+开发工具
两台服务器都要关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld
推荐使用yum进行卸载
yum list installed | grep postgres
卸载postgresql
yum remove postgresql*
不推荐使用rpm来卸载
rpm -qa | grep postgres检查是否存在已经安装的pg数据库
若有结果请删除
rpm-e包名
如果存在被依赖,则增加 --nodeps参数强制卸载
adduser postgres
passwd postgres
密码
若之前安装过可能已经存在用户postgres
userdel-rpostgres
删除用户并删除/home/postgres目录
或者
userdelpostgres
仅删除用户
配置主机到从机的免密登陆
切换用户为postgres用户,生成密钥文件
su postgres
ssh-keygen -t rsa -P ''
ssh-copy-id -i /home/postgres/.ssh/id_rsa.pub postgres@192.168.247.128
配置从机到主机的免密登陆
切换用户为postgres用户,生成密钥文件
supostgres
ssh-keygen -t rsa -P ''
ssh-copy-id -i /home/postgres/.ssh/id_rsa.pub postgres@192.168.37.202
上传安装用文件PGinstall.tar.gz及安装脚本PGinstall.sh到/root/目录下
此脚本自动安装主机和从机的pg数据库,自动安装插件pg_cron,pg_stat_statement,repmgr
自动配置主从之间的流复制。
[root@localhost ~]# sed -i 's/\r//' PGinstall.sh
通过
shPGinstall.sh确认阅读过使用手册并开始安装 192.168.37.172 1 192.168.37.171
第一个参数是确认阅读过使用手册并开始安装
第二个参数是从机的ip地址
第三个参数是从机的root用户的密码
第四个参数是主机的ip地址
1.检查repmgrd的日志是否有持续产生日志内容是否报错
正常的日志内容
主机
从机
2.检查流复制是否正常
检查主从ip等信息是否错误
su postgres -c "repmgr cluster show "
3.通过sql比对主从lsn的信息是否相同
从库进入psql
su postgres -c "psql"
从库内psql
select case when pg_last_wal_receive_lsn() = pg_last_wal_replay_lsn() then 0 else EXTRACT(EPOCH FROM now() - pg_last_xact_replay_timestamp()) end as replication_lag,pg_last_wal_receive_lsn(),pg_last_wal_replay_lsn() ,now(),pg_last_xact_replay_timestamp();
检查第一个数值是不是为0
针对服务器的不同配置对PG数据库进行参数配置
修改方式
vi /usr/local/pgsql/data/postgresql.conf
shift+G走到末尾
i进入编辑模式
ctrl+C退出编辑模式
shift+Q进入命令行模式
命令行模式wq enter 保存退出
主要修改以下参数
修改
1.archive_command
这个参数配置的是事务日志归档的地址
该目录要给postgres用户所有和700权限
archive_command = '/bin/true'#修改为'cp %p /home/archives/%f'
/home/archives/是阵列的地址
2.shared_buffers
共享内存配置为1/4到1/2的服务器内存
shared_buffers = 64GB #1/4到一半的服务器内存
3.max_worker_processes
最大worker数量保持和cpu的核心数量相同
Cpu核心数量等于cpu个数
max_worker_processes = 96 #和cpu核心数量相同
4.max_connections
最大连接数
max_connections=4000 #32g内存 1000 64g内存2000 128g 4000
待确定调用方式,存储位置对脚本进行修改
#! /bin/bash
#V2.1
#xht
#wht
#20191017
# 预计需要加入功能 检查目录下是否有文件,在主从下都通过定时任务调用此脚本
# 都检测目录下是否有文件主机定时任务比从机提早6个小时
PGDATA=/usr/local/pgsql/data
PGHOME=/usr/local/pgsql
PATH=$PATH:$HOME/bin:$PGHOME/bin
CDATE=`date "+%Y%m%d-%H%M%S"`
iparray=(192.168.56.201 192.168.56.202)
DIR=/tmp/pgsql_backup/${CDATE}
for var in ${iparray[@]}
do
master=`psql -h $var -U repmgr -c "select pg_is_in_recovery();" | awk 'NR>2 && NR<4'`
if [ $master = "f" ];then
echo $master
echo "主ip $var"
#对主ip进行basebackup
if [ ! -d $DIR ]; then
mkdir -p $DIR
fi
pg_basebackup -h $var -p 5432 -U repmgr -D $DIR -Ft -R -z -v --checkpoint=fast
echo "备份成功$DIR"
else
echo "此ip不是主ip:$var"
fi
done
考虑使用linu内置定时任务调度此脚本
crontab -e添加定时任务
30 23 * * 1sh /脚本路径/脚本名.sh
每周一23:30执行一次全量备份
crontab -l 查看正在运行的定时任务
通过archive_command进行增量备份
验证
手动切换wal,然后checkpoint看指向的阵列目录上是否有数据文件。
发现错误需要立即暂停
检查并改正错误
1.删除/usr/local/pgsql文件夹
rm -rf /usr/local/pgsql
2.检查/etc/profile是否已存在环境变量的配置
删除这4行
vi /etc/profile
SHIFT + G 走到行尾
i进行编辑
删除最后4行内容
CTRL+C退出编辑模式
SHIFT+Q进入命令行模式
wq保存
立即停止检查ip是否配置正确
3 主机关机以后别启动postgresql,先执行以下语句。
把归档日志从服务器上面copy到主机,在执行以下语句。
[postgres@localhost ~]$ repmgr node rejoin -d 'host=10.11.141.9 user=repmgr dbname=repmgr connect_timeout=2' --force-rewind --config-files=postgresql.conf
系统环境:
worksation15.5
中标麒麟高级服务器操作系统软件V7.0U6
1、新建虚拟机
2、点击下一步
3、选择系统映像文件
4、选择操作系统类型,中标麒麟是基于redhat版本
mkdir -p /app/iso7.6
cp -rpv /run/media/root/nsV7Update6-x86_64/* /app/iso7.6/
cd /etc/yum.repos.d/
vim iso.repo
[name] #括号中的名称为仓库源名称,通常为字母和数字,必须填写
name=my new repo #对yum的描述,可写可不写
baseurl=file:///mnt/cdrom #baseurl表示声明yum可以管理并使用的rpm包路径,必须填写
enabled=1 #enabled表示当前仓库是否开启,1为开启,0为关闭,此项不写默认为开启
gpgcheck=0 #gpgcheck表示安装rpm包时,是否基于公私钥对匹配包的安全信息,1表示开启,
[root@DBZ yum.repos.d]# cat iso.repo
[iso7.6]
name=iso
baseurl=file:///app/iso7.6
enabled=1
gpgcheck=0
yum clean all
yum list
国内可用的互联网时间对时地址
[root@DBZ ~]# ntpdate ntp1.aliyun.com
15 Dec 15:28:58 ntpdate[19563]: step time server 120.25.115.20 offset 15465.254618 sec
crontab –e
*/10 * * * * /usr/sbin/ntpdate ntp1.aliyun.com
转载地址:http://oabai.baihongyu.com/