IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> PostgreSql数据库主备安装 -> 正文阅读

[系统运维]PostgreSql数据库主备安装

一、环境准备:

两台服务器,操作系统Centos7

主服务器IP:192.168.11.6

备服务器IP:192.168.11.7

我们这里使用rpm的方式安装,可以根据操作系统下载对应的安装包

RPM resourceicon-default.png?t=M3C8http://www.rpmfind.net/linux/rpm2html/search.php?query=telnet&submit=Search+...&system=&arch=我下载的rpm包如下:

二、PostgreSql安装(两台服务器执行步骤相同)

1、连接上服务器,将安装包拷贝到/u01目录下,然后执行语句进行安装。

rpm -ivh postgresql10-10.7-2PGDG.rhel7.x86_64.rpm postgresql10-contrib-10.7-2PGDG.rhel7.x86_64.rpm postgresql10-libs-10.7-2PGDG.rhel7.x86_64.rpm postgresql10-server-10.7-2PGDG.rhel7.x86_64.rpm

2、data初始化。

切换用户
su - postgres

初始化data
/usr/pgsql-10/bin/initdb -D /u01/pgsql/10/data

3、修改配置文件。

重新指定环境变量,将/var/lib修改为/opt
vi .bash_profile

编辑完环境变量文件后,运行如下命令使环境变量生效
. .bash_profile

修改配置文件
vi /u01/pgsql/10/data/postgresql.conf
将synchronous_standby_names的值改为备服务器的主机名,如备服务器上配置为主服务器的主机名

4、数据库配置。

切换到root用户后编辑postgresql-10.service
vi /lib/systemd/system/postgresql-10.service
将Environment指定到/u01/pgsql/10/data目录

让服务生效
systemctl daemon-reload

设置开机自启
systemctl enable postgresql-10

设置权限
chown -R postgres:root /u01/pgsql/10/data

启动数据库
systemctl start postgresql-10

修改postgres数据库密码
su -u postgres psql
ALTER USER postgres WITH PASSWORD 'postgresPassword!';

如果防火墙是开启的,就需要开放端口
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload

?三、主备同步配置

1、主服务器(192.168.11.6)

a、在主服务器上创建用户replicator属于replication组。

create user replicator replication login connection limit 5 password 'password';

b、修改pg_hba.conf。

#在最后新增
host ? ?replication ? ? ?replicator ? ? ?192.168.11.7/32 ? ? ? ? ?trust

2、备服务器(192.168.11.7)

pg_basebackup -h 192.168.11.6 -U replicator -F p -P -D /u01/pgsql/data -R

3、主备服务器:postgresql.conf配置文件中synchronous_commit值更新为local,synchronous_standby_names值更新为对方计算机名。

四、定时整理归档

主备服务器都可以进行定时归档处理。

1、创建备份脚本db_backup.sh

#!/bin/bash
cur_time=$(date '+%Y-%m-%d')
sevendays_time=$(date -d -7days '+%Y-%m-%d')
echo "Starting Backup PostgreSQL ..."
rm -rf "/u01/pgsql/10/backups/pgsql-backup.$sevendays_time.tar.gz"
PGPASSWORD="postgresPassword" /usr/pgsql-10/bin/pg_dump -h localhost -p 5432 -U postgres postgres > "/u01/pgsql/10/backups/postgres-$cur_time.bak"
tar zcvf "/u01/pgsql/10/backups/pgsql-backup.$cur_time.tar.gz" "/u01/pgsql/10/backups/postgres-$cur_time.bak"
echo "Rmove Backup *.bak..."
rm -rf "/u01/pgsql/10/backups/postgres-$cur_time.bak"
echo "Finish Backup ..."

创建后可以执行测试,执行成功后会在/u01/pgsql/10/backups下生成如下格式的文件:

pgsql-backup.2022-04-20.tar.gz

注:以上脚本是保留7天的数据,如果需要保留更久的数据可以更改第三行中的时间。第六行PGPASSWORD中是数据库密码,5432是端口,postgres是数据名。


2、新增定时任务

a、更新crontab

vi /etc/crontab

在文件最后新增信息:
# 每天凌晨三点整执行一次数据库备份命令脚本
0 3 * * * root /u01/pgsql/10/scripts/db_backup.sh

b、修改crontab的配置后需要重启crontab,使配置生效

/bin/systemctl restart crond.service

?


大功告成!

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 19:19:35  更:2022-04-22 19:22:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:42:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码