当前位置: 首页 > news >正文

Linux安装单机PostgreSQL15.4

1. 联网rpm安装

1.1.关闭服务

## 关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
## 关闭 selinux
cat /etc/selinux/config
SELINUX=disabled

1.2.安装yum源

yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

1.3.安装PostgreSQL

yum install -y postgresql15-server

1.4.初始化数据库

/usr/pgsql-15/bin/postgresql-15-setup initdb

1.5.启动数据库

systemctl enable postgresql-15
systemctl start postgresql-15

1.6.查看PostgreSQL是否安装

## 检查 PostgreSQL 是否已安装
rpm -qa | grep postgres## 查看 PostgreSQL 安装位置
rpm -qal | grep postgres

2. 离线rpm安装

2.1.下载rpm安装包

## 下载地址
https://yum.postgresql.org/15/redhat/rhel-7-x86_64/repoview/## 例如下载postgreSQL 15.4
libzstd-1.5.5-1.el7.x86_64.rpm
postgresql15-libs-15.4-1PGDG.rhel7.x86_64.rpm
postgresql15-15.4-1PGDG.rhel7.x86_64.rpm
postgresql15-server-15.4-1PGDG.rhel7.x86_64.rpm

2.2.初始化数据库

/usr/pgsql-15/bin/postgresql-15-setup initdb

2.3.启动数据库

systemctl enable postgresql-15.service
systemctl start postgresql-15.service
systemctl status postgresql-15.service

2.4.rpm安装注意事项

## 默认情况下,数据目录位置:/var/lib/pgsql/<version>/data## 默认创建 postgres 的 Linux 登录用户,用于连接数据库
[root@pg01 ~]# su - postgres
-bash-4.2$ psql
psql (15.4)
Type "help" for help.postgres=# \q  --退出

3. 源码编译安装

源码编译总体分为三个过程:配置(configure)、编译(make)、安装(make install)。

3.1.下载源码包

## 下载地址
https://www.postgresql.org/ftp/source/v15.4/## 例如下载PostgreSQL 15.4
postgresql-15.4.tar.gz## 解压源码包
tar -zxvf postgresql-15.4.tar.gz

3.2.配置(configure)

## 先安装依赖包,在进行配置操作,不然后面检查会报错
yum install readline-devel zlib-devel -y## 开始配置
cd /tmp/pg_soft/postgresql-15.4
./configure --prefix=/pgsql15.4## 解释
--prefix:指定安装路径,将所有文件放置到该路径下

3.3.编译(make)

## make命令版本需要在gmake v3.8以上
make --version## 开始编译
cd /tmp/pg_soft/postgresql-15.4
make

3.4.安装(make install)

cd /tmp/pg_soft/postgresql-15.4
make install

3.5.创建数据目录和用户

## 用户
groupadd -g 1500 postgres
useradd -g 1500 -u 1501 postgres## 数据目录
mkdir -p /pgsql15.4/data
chown postgres:postgres -R /pgsql15.4

3.6.配置环境变量

vi /etc/profile
## 可执行文件位置
export PATH=/pgsql15.4/bin:$PATH
## 共享库位置
export LD_LIBRARY_PATH=/pgsql15.4/lib
## 数据目录
export PGDATA=/pgsql15.4/data

3.7.初始化数据库

注:必须使用非特权用户进行初始化。

su - postgres
cd /pgsql15.4/bin
initdb

3.8.启动/停止数据库

## 启动
pg_ctl -D /pgsql15.4/data start## 关闭
pg_ctl -D /pgsql15.4/data stop -m fast## 三种关闭模式
smart:等所有连接中止后,关闭数据库。如果客户端连接不终止,则无法关闭数据库。
fast:快速关闭数据库,断开客户端的连接,让已有的事务回滚,然后正常关闭数据库。相当于Oracle的imediate。
mmediate:立即关闭数据库,相当于数据库进程立即停止,直接退出,下次启动数据库需要进行恢复。相当于Oracle的abort。

3.9.安装contrib目录下的工具

## 以 basic_archive 归档模块为例
[root@postgresql postgresql-15.4]# ./configure
[root@postgresql postgresql-15.4]# cd contrib/basic_archive/
[root@postgresql basic_archive]# make
[root@postgresql basic_archive]# make install## 或手动将生成的.so文件复制到lib目录下
[root@postgresql basic_archive]# ll
total 48
-rw-r--r-- 1 1107 1107 10145 Aug  8 04:08 basic_archive.c
-rw-r--r-- 1 1107 1107   110 Aug  8 04:08 basic_archive.conf
-rw-r--r-- 1 root root 10528 Sep 26 13:32 basic_archive.o
-rwxr-xr-x 1 root root 14328 Sep 26 13:32 basic_archive.so
drwxrwxrwx 2 1107 1107    31 Aug  8 04:23 expected
-rw-r--r-- 1 1107 1107   639 Aug  8 04:08 Makefile
drwxrwxrwx 2 1107 1107    31 Aug  8 04:23 sql
[root@postgresql basic_archive]# cp basic_archive.so /pgsql15.4/lib/
[root@postgresql lib]# chown postgres:postgres basic_archive.so

4.安装后的配置

4.1.pg_hba.conf的配置

默认创建的数据库无法接受远程连接,因为默认情况下,pg_hba.conf中没有相应的配置项。

cd /pgsql15.4/data
vi pg_hba.conf
# IPv4 local connections:
host    all             all             0/0                     md5pg_hba.conf文件是一个黑白名单的访问控制文件,可以控制允许哪些IP地址的机器访问数据库。

4.2.修改监听的IP和端口

cd /pgsql15.4/data
vi postgresql.conf
#listen_addresses = 'localhost'
listen_addresses = '*'
#port = 5432## 解释
listen_addresses = 'localhost' 为本地监听,也就是127.0.0.1,会造成远程主机无法登录数据库。
port = 5432 默认的数据库端口,如果一台机器安装了多个实例,就可以设置不同的端口。以上两个参数,需要重启数据库才能生效

4.3.数据库日志相关参数

## 打开日志收集(默认off)
logging_collector = on
## 日志目录
log_directory = 'log'
## 参数修改方式(alter system set或postgresql.conf)
alter system set logging_collector = on;
alter system set log_truncate_on_rotation = on;vi postgresql.conf
logging_collector = on
log_directory = 'log'## 日志切换和是否覆盖的三种方案
(1)每天生成一个新的日志文件
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_truncate_on_rotation = off
log_rotation_age = 1d
log_rotation_size = 0(2)每当日志写满一定的大小(如10M),则切换一个日志
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_truncate_on_rotation = off
log_rotation_age = 0
log_rotation_size = 10M(3)只保留最近7天的日志,进行循环覆盖
log_filename = 'postgresql-%a.log'
log_truncate_on_rotation = on
log_rotation_age = 1d
log_rotation_size = 0

4.4. 内存参数

PostgreSQL安装完成后,可以修改以下主要的内存参数:

shared_buffer:共享内存的大小,主要用于共享数据块。默认值为32M。如果有足够的内存,可以设置为物理内存大小的四分之一。

work_mem:单个SQL执行时,以及排序、Hash Join时使用的内存,SQL运行完后,该内存就会被释放,默认为4M,work_mem设置大一些,会使排序操作效率更高。

对于一个复杂查询,可能会并行运行好几个排序或哈希操作,每个操作都会被允许使用这个参数指定的内存量,然后才会开始写数据到临时文件。

4.5.数据库状态查询

## 服务的运行状态和启动路径
pg_ctl status## 数据库运行状态
select state from pg_stat_activity where datname='postgres';

5.其他功能配置

5.1.如何使用较大的数据块(可选,一般默认即可)

如果要使用较大的数据块来提高I/O性能,只能在源码编译安装时,执行./configure脚本指定数据块的大小。

## 如指定32KB的数据块、WAL日志、64MB WAL日志文件大小
./configure --with-blocksize=32 --with-wal-blocksize=32 --with-wal-segsize=64

注:对于此时编译出来的PostgreSQL程序创建的PostgreSQL数据库,不能使用其他块大小的PostgreSQL程序启动。

5.2.Checksum功能(可选)

对于一些数据可靠性要求较高的场景,建议打开数据块的checksum校验功能。

通常用于校验数据在传输或存取过程中是否发生错误,以发现数据因磁盘、I/O损坏等原因造成的数据库异常。

开启checksum可能会对系统性能造成一定的影响。将为数据库中的所有对象计算校验和。

所有校验和失败都将在pg_stat_database视图中报告。

如果数据库较大,转换成checksum功能的数据库就需要比较长的一段时间,需要安排合理的停机时间。

## 检查是否打开checksum功能
此命令需要数据库处于关闭状态:
pg_checksums -c此命令在数据库开启状态可执行,0关闭,1打开:
pg_controldata -D /pgsql15.4/data |grep checksum## 打开checksum功能
初始化时:
initdb -k创建数据库后,先关闭数据库,然后打开该功能:
pg_checksums -e -P## 禁用checksum功能
pg_checksums -d

相关文章:

Linux安装单机PostgreSQL15.4

1. 联网rpm安装 1.1.关闭服务 ## 关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.service ## 关闭 selinux cat /etc/selinux/config SELINUXdisabled1.2.安装yum源 yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-…...

最新 SpringCloud微服务技术栈实战教程 微服务保护 分布式事务 课后练习等

SpringCloud微服务技术栈实战教程&#xff0c;涵盖springcloud微服务架构Nacos配置中心分布式服务等 SpringCloud及SpringCloudAlibaba是目前最流行的微服务技术栈。但大家学习起来的感受就是组件很多&#xff0c;不知道该如何应用。这套《微服务实战课》从一个单体项目入手&am…...

Docker搭建MySQL8.0主从复制(一主一从)

0. 配置说明 宿主机使用的版本为19045的win10专业版&#xff0c;MySQL使用的是8.0&#xff0c;Docker容器使用Linux。 1. 安装Docker Desktop 略 修改Docker默认安装路径 安装包自己就提供了修改安装路径的功能&#xff0c;CMD中运行&#xff1a; “Docker Desktop Installe…...

40V汽车级P沟道MOSFET SQ4401EY-T1_GE3 工作原理、特性参数、封装形式—节省PCB空间,更可靠

AEC-Q101车规认证是一种基于失效机制的分立半导体应用测试认证规范。它是为了确保在汽车领域使用的分立半导体器件能够在严苛的环境条件下正常运行和长期可靠性而制定的。AEC-Q101认证包括一系列的失效机制和应力测试&#xff0c;以验证器件在高温、湿度、振动等恶劣条件下的可…...

记录在搭建Jenkins时,所遇到的坑,以及解决方案

项目场景&#xff1a; 记录在搭建Jenkins时,所遇到的坑,以及解决方案.问题描述1 在使用Jenkins构建时,报错如下&#xff1a; cp: cannot stat /project/xx/xxxx/dist/: No such file or directory Build step Execute shell marked build as failure Finished: FAILURE解决方…...

二极管“天马行空”的作用,你知道吗?

网友&#xff1a;二极管怎么有这么多种类呀&#xff1f; 工程师&#xff1a;二极管可以说除了电阻电容外用的比较多的一种元器件&#xff0c;起到的作用多着呢 那么二极管都可以起到哪些作用呢&#xff1a; 一、防反作用&#xff0c;主回路中串联一个二极管&#xff0c;是利用…...

鼎盛合:adc芯片的五种结构

随着国内消费电子产品、通信、工业自动化、汽车电子等行业的快速发展&#xff0c;对ADC芯片的需求不断增加&#xff0c;国内ADC芯片近年也在持续稳定地发展着。ADC种类多样&#xff0c;可分为单通道ADC、多通道ADC、高速ADC、精密ADC和集成ADC等&#xff0c;主要应用于医疗仪器…...

CTF 全讲解:[SWPUCTF 2021 新生赛]Do_you_know_http

文章目录 参考环境题目hello.php雾现User-Agent伪造 User-AgentHackBarHackBar 插件的获取修改请求头信息 雾散 a.php雾现本地回环地址与客户端 IP 相关的 HTTP 请求头X-Forwarded-For 雾散 参考 项目描述搜索引擎Bing、GoogleAI 大模型文心一言、通义千问、讯飞星火认知大模型…...

物联网AI MicroPython传感器学习 之 4路电容式触摸开关

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; 一、产品简介 板载TTP224电容式4键触摸感应IC&#xff0c;开发者通过触摸该电容模块获取对应的高低电平状态&#xff0c;可以广泛应用于灯光控制、玩具、家用电器等产品中。 引脚定义&#xff1a; VCC&…...

头戴式耳机什么牌子最好?头戴式耳机推荐性价比高

脖子上挎个头戴式作为随身装备&#xff0c;不仅给服装配饰添加了潮流感&#xff0c;还可以可以随时聆听音乐&#xff0c;随着广大消费者的生活水平不断提高&#xff0c;市面上的头戴式耳机越来越多。 选择头戴式耳机时无非就是听音质、看外观、舒适度等等&#xff0c;那么头戴…...

第 366 场周赛 LeetCode 周赛题解

A 分类求和并作差 模拟 class Solution { public:int differenceOfSums(int n, int m) {int res 0;for (int i 1; i < n; i)res i % m ! 0 ? i : -i;return res;} };B 最小处理时间 排序&#xff1a;设四个 p r o c e s s o r T i m e processorTime processorTime 的元…...

Linux: tcpdump抓包示例

文章目录 1. 前言2. TCP 状态机3. tcpdump 抓包示例3.1 抓连接握手包&#xff1a;三次握手3.2 抓数据包示例3.3 抓终结连接&#xff1a;四次挥手 4. 参考资料 1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者带来的损失&#xff0c;作者不做任…...

seafile server10.0.1 onlyoffice

目标&#xff1a;解决seafile server无法查看office相关文档问题 seafile server 已安装完成 安装onlyoffice 一、Install Docker Engine on Ubuntu 20.04 验证是否安装成功 sudo docker run hello-world 二、拉取onlyoffice/documentserver 镜像及安装 docker network cre…...

商城系统选型:Java商城系统还是PHP商城系统好?

电子商务的不断发展&#xff0c;商城系统成为了企业建设在线销售平台的重要组成部分。 可是在选择合适的商城系统时&#xff0c;许多企业面临着一个重要的决策&#xff1a;是选择Java商城系统还是PHP商城系统呢&#xff1f;下面就对这两种常见的商城系统进行比较&#xff0c;并…...

【多线程进阶】线程安全的集合类

文章目录 前言1. 多线程环境使用 ArrayList2. 多线程环境使用队列3. 多线程环境使用哈希表3.1 HashTable3.2 ConcurrentHashMap 总结 前言 本文主要讲解 Java 线程安全的集合类, 在之前学习过的集合类中, 只有 Vector, Stack, HashTable, 是线程安全的, 因为在他们的关键方法中…...

016 Spring Boot + Vue 图书管理系统

Spring Boot Vue 图书馆管理系统&#xff08;library-system&#xff09; 本地快捷预览项目 第一步&#xff1a;运行 db 文件夹下的springboot-vue.sql(询问作者获取)&#xff0c;创建springboot-vue数据库 第二步&#xff1a;修改后端数据库配置文件&#xff0c;启动后端 …...

C语言中volatile/register/const/static/extern/auto关键字的作用

目录 一、volatile 二、register详解 三、const详解 四、static详解 五、extern详解 语法 作用 六、auto详解 突然想总结一下这些关键字的作用&#xff0c;灵活使用这些对程序的可靠性和速率都有提高 一、volatile volatile是防止编译器优化&#xff0c;如果是高频繁…...

docker compose的安装和使用

docker-copose 介绍 docker-compose 是一个容器编排工具&#xff08;自动化部署、管理&#xff09;; 它用来在单台 Linux 服务器上运行多个 Docker 容器; docker-compose 使用YAML文件来配置所有需要运行的 Docker 容器&#xff0c;该 YAML 文件的默认名称为 docker-compose.…...

/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21‘ not found (required by

在某项目中遇到下面的错误&#xff0c; ./model2trt_v2: /lib64/libstdc.so.6: version GLIBCXX_3.4.21 not found (required by ./model2trt_v2) ./model2trt_v2: /lib64/libstdc.so.6: version GLIBCXX_3.4.21 not found (required by ../../../lib/linux_lib/libcuda_utils…...

数字化转型的必备工具:智能呼叫中心系统的应用

数字化转型已经成为企业发展的必然趋势&#xff0c;在这个过程中&#xff0c;智能呼叫中心系统成为了一个不可或缺的工具。智能呼叫中心系统通过整合各种通信渠道和自动化技术&#xff0c;为企业提供了高效、智能的客户服务解决方案。 首先&#xff0c;系统能够集成多种通信渠…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为&#xff1a;一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...