postgresql 下载安装

news/2025/1/23 4:01:45/文章来源:https://www.cnblogs.com/sunjiwei/p/18451350
一、postgresql 下载
pg官网:postgres.org

一般推荐用源码安装,下载 .tar.gz 包

二、安装
本文以12.6版本安装为例:
2.1、安装前要求和环境配置
# 1、要求GNU make版本3.80或以上(GNU make有时以名字gmake安装),要测试make版本可以使用以下命令(如果是安装其他版本的pg具体要求make的版本详情见官网对应版本的安装文档):
[root@xl001 ~]# make --version
GNU Make 3.82# 2、安装依赖包
yum install -y gcc gcc-c++ epel-release llvm5.0 llvm5.0-devel clang libicu-devel perl-ExtUtils-Embed readline readline-devel zlib zlib-devel openssl openssl-devel pam-devel libxml2-devel libxslt-devel openldap-devel systemd-devel tcl-devel python-devel正常情况下,OS已经帮我们把一些包已经装好了,只需要安装以下三个包就好
yum -y install readline-devel zlib-devel gcc# 3、关闭防火墙
systemctl disable firewalld
systemctl stop firewalld# 4、创建postgres用户
useradd postgres -m
passwd postgres  # 设置密码# 5、系统参数调优
# 5.1、修改系统内核参数
vi /etc/sysctl.conf
# 主要是修改三个参数
kernel.shmall=expr `free |grep Mem|awk '{print $2 *1024}'` / `getconf PAGE_SIZE`
kernel.shmmax=free |grep Mem|awk '{print $2 *1024}'
vm.nr_hugepages参数解释:
kernel.shmall 表示内核可以为共享内存分配的最大页数(pages),这里的“页”是指内核的页面大小,默认通常是 4KB。
kernel.shmmax 设置了单个共享内存段的最大最大字节数
vm.nr_hugepages 参数用于指定系统中可以分配的大页数量# 其他参数
fs.file-max = 6815744                      
kernel.sem = 10000  10240000 10000 1024   
kernel.shmmni = 819200                                      
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576
fs.aio-max-nr = 40960000
vm.dirty_ratio=20
vm.dirty_background_ratio=3
vm.dirty_writeback_centisecs=3000
vm.dirty_expire_centisecs=500
vm.swappiness=10
vm.min_free_kbytes=524288sysctl -p  #即时生效# 修改最大进程数和文件句柄数
vim /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535postgres soft nofile 65535
postgres  hard nofile 65535
postgres  soft nproc 65535
postgres  hard nproc 65535# 6、创建目录
mkdir -p /opt/pgsql-12.6
mkdir -p /opt/pgdata/data
mkdir -p /opt/pgdata/wal
mkdir -p /opt/pgdata/archive
mkdir -p /opt/pgdata/logs
chown -R postgres:postgres /opt/pgsql-12.6/ /opt/pgdata# 7、配置postgres环境变量
su - postgres
vim .bash_profile
 
export PGHOME=/opt/pgsql-12.6
export PGDATA=/opt/pgdata/data
export PGHOST=/opt/pgdata/data
export PGUSER=postgres
export PGPORT=5432
export PATH=$HOME/bin:$PGHOME/bin:$PATH
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
 
source .bash_profile
2.2、安装
# 1、上传安装包并解压
tar -zxvf postgresql-12.6.tar.gz
cd postgresql-12.6
./configure --prefix=/opt/pgsql-12.6 --with-pgport=5432   # 设置安装目录和端口# 解释
./configure 这一步可以设置一些参数,具体可./configure -h 查看# 2、安装
gmake world                  #这个命令是全部功能安装,也可以精细化部署,具体可以参考官网
gmake install-world
chown -R postgres:postgres /opt/pgsql-12.6# 3、初始化数据库
/opt/pgsql-12.6/bin/initdb -D /opt/pgdata/data# 4、编辑配置文件pg_hba.conf
vim /opt/pgdata/data/pg_hba.conf
# 此配置文件中配置的才可以连接,没配置的表示都不能连接# TYPE  DATABASE        USER            ADDRESS                 METHOD# "local" is for Unix domain socket connections onlylocal   all             all                                     trust                        # 此行ADDRESS没有值,代表是socket连接# IPv4 local connections:host    all             all             127.0.0.1/32            trust                        #若这一行没有,则表示在本地不能用tcp/ip方式连接host    all             all             0.0.0.0/0               trust ###如果出现两个相同的配置,则下面的不起作用,比如host    all             all             192.168.225.0/24        reject host    all             all             192.168.225.201/24      MD5               #例如这两个配置,比如有个连接从客户端192.168.225.201过来,读到上面的配置,#因为192.168.225.201满足192.168.225.0/24,所以连接被拒绝,即使在读到下面一条可以连接,也不会生效了,最终就是连接被拒绝# IPv6 local connections:host    all             all             ::1/128                 trust# Allow replication connections from localhost, by a user with the# replication privilege.local   replication     all                                     trusthost    replication     all             127.0.0.1/32            trusthost    replication     all             ::1/128                 trust# 5、修改配置文件postgresql.conf
vim /opt/pgdata/dataa/postgresql.con
listen_addresses = 'localhost'      #把localhost改为*,默认是只能本地连接# 6、启动数据库
pg_ctl -D /opt/pgdata start    # pg修改配置文件后可以动态加载,不用重启数据库
pg_ctl -D /opt/pgdata/data reload# 7、关闭数据库
pg_ctl -D /opt/pgdata stop -m smart|fast|immediate   #smart,会等到所有客户端连接都断开始之后才关闭,fast会kill掉所有连接回滚所有还未完成的事务然后关闭(默认方式),immediate相当于直接kill -9进程,不建议
pg_ctl -D /opt/pgdata/data stop -mf# 8、设置密码
[postgres@xl001 data]$ psql -Upostgres -h127.0.0.1 -dpostgres -p5432 -W 
psql (12.6)
Type "help" for help.postgres=# \password
Enter new password: 
Enter it again: 
postgres=# 
2.3、附一份常用的postgresql.conf
点击查看代码
listen_addresses = '0.0.0.0'
port = 5432
max_connections = 8000
unix_socket_directories ='/opt/pgdata/data'                      
unix_socket_group = 'postgres'
unix_socket_permissions = 0700
shared_buffers = 32GB
dynamic_shared_memory_type = posix
wal_level = logical
max_wal_size = 10GB
min_wal_size = 1GB
archive_mode = always
archive_command = 'cp %p /opt/pgdata/mytest/archive/%f'
max_wal_senders = 10
wal_keep_segments = 5120
wal_buffers = -1
wal_log_hints = on
temp_buffers = 8GB
work_mem = 32MB
maintenance_work_mem = 8GB
effective_io_concurrency = 200
max_worker_processes = 16
max_parallel_workers = 16
max_replication_slots = 8
hot_standby = on
synchronous_commit = on
logging_collector = on
checkpoint_completion_target = 0.9
checkpoint_timeout = 15min
log_destination = csvlog
log_directory = '/opt/pgdata/logs'
log_filename = 'postgresql-%Y-%m-%d.log'
log_file_mode = 0600
log_truncate_on_rotation = on
log_rotation_age = 1d
log_min_messages = warning
log_min_duration_statement = 30s
log_checkpoints = on
log_duration = off
log_lock_waits = on
log_statement = 'ddl'
log_timezone = 'PRC'
track_activities = on
track_counts = on
track_io_timing = on
track_functions = all
datestyle = 'iso, mdy'
timezone = 'PRC'
lc_messages = 'en_US.utf8'
lc_monetary = 'en_US.utf8'
lc_numeric = 'en_US.utf8'
lc_time = 'en_US.utf8'
random_page_cost = 1.1
autovacuum = on
log_autovacuum_min_duration = 0
autovacuum_vacuum_cost_delay = 0
autovacuum_max_workers = 4
autovacuum_naptime = 15
default_text_search_config = 'pg_catalog.english'
shared_preload_libraries = 'pg_stat_statements,pgstattuple,pg_buffercache,postgres_fdw'

至此,postgresql 安装完毕

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/823243.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“药品追溯到客户管理:数字化转型下的药企发展之路”

随着科技进步和市场环境的变化,医药企业面临着前所未有的机遇和挑战。数字化转型已成为药企创新管理模式、提升市场竞争力的关键举措。在这一过程中,药品追溯和客户管理作为重要环节,通过数字化手段可以实现信息的高效流通和透明管理。以下将从药品追溯、客户管理以及未来发…

sgx模拟执行,不需要sgx硬件---sgx executed in simulation,No need to support hardware for SGX

sgx executed in simulation 使用项目:https://github.com/intel/linux-sgx.git前言:目前国内和国外互联网上关于使用模拟模式来完成sgx的博客我是真的一点没有找到,因此自己写一份博客来完成记录 环境:Ubuntu22.04不支持sgx,没有硬件存在(mac也可以按照本教程来完成工作…

算法定制视频分析网关拍照检测工业园区/厂区/工厂智慧安监方案

一、方案背景 随着工业化进程的加速,特别是制造业、建筑业、化工等高风险行业,生产安全事故频发,对人们的生命安全和健康构成了严重威胁。为了有效预防和减少重大事故的发生,提高安全管理水平,智慧安监方案应运而生。 二、方案内容 智慧安监方案的核心在于利用物联网、大数…

IIC通信协议详解 PCF8591应用(Verilog实现)

详细介绍了IIC通信协议并给出如何使用PCF8591,用verilog实现.该文章结合PCF8591 8-bit AD/DA 模数/数模转换器来详细介绍IIC通信协议,尽量做到条理清晰,通俗易懂。该文图片均从PCF8591手册中截取,一定程度上引导读者学习阅读data sheet。 1. PCF8591引脚2. 功能介绍 2.1 地…

GaussDB 数据库实验环境搭建指导

@目录简介内容描述实验环境说明1 GaussDB数据库购买1.1 实验介绍1.1.1 关于本实验1.1.2 实验目的1.2 购买GaussDB数据库1.2.1 登录华为云1.2.2 购买华为云GaussDB数据库 简介 本指导书适用于在华为云部署购买GaussDB数据库,通过该指导书可以顺利完成GaussDB数据库在华为云的购…

Python 学习记录(3)

数据Pandas对数据帧各列的运算 import seaborn as sns import pandas as pd #从Seaborn 当中导入鸢尾花数据帧,并处理 iris_df=sns.load_dataset("iris") X_df=iris_df.copy() X_df.rename(columns={sepal_length:X1,sepal_width:X2},inplace=True) X_df_=X_df[[X1,…

Qt gridLayout布局占两格或两列在ui文件中实现

在Qt gridLayou布局里添加一个控件如何设置其占两格或多格如下图: 一 、如果是纯代码编写的界面 (大多是这个方式)在纯代码编写的界面应用中,可以使用函数QGridLayout::addWidget(QWidget *w, int row, int column, int rowSpan, int columnSpan, Qt::Alignment =…

GaussDB火焰图分析

问题描述 CPU利用率是衡量系统负载和健康度的重要指标之一,系统在运行过程中时常发生CPU利用率高的情况。在分析性能问题时,可通过火焰图查看CPU耗时,了解瓶颈在哪里。 问题现象 部分sql执行速度不符合预期。 告警慢sql告警。 cpu使用率高告警。 数据库整体运行慢。业务影响…

为什么MySQL单表不能超过2000万行? (1)

​ 最近看到一篇《我说MySQL每张表最好不要超过2000万数据,面试官让我回去等通知》的文章,非常有趣。 文中提到,他朋友在面试的过程中说,自己的工作就是把用户操作信息存到MySQL里,因为数据量超大(5000万条左右),需要每天定时生成3张表,然后将数据取模分别存到这三张表…

js逆向笔记

Cookie 和 Session: 服务器和客户端的交互仅限于请求/响应过程,结束之后便断开,在下一次请求时,服务器会认为新的客户端。 为了维护他们之间的链接,让服务器知道这是前一个用户发送的请求,必须在一个地方保存客户端的信息。 Cookie:通过在 客户端 记录的信息确定用户的身…

修改博客园主题

修改博客园主题 参考模板为:本博客皮肤 - 张贺贺呀 - 博客园 1.账号设置在账号设置中 1.选择博客皮肤为SimpleMemory,因为博客皮肤的修改是基于该皮肤 2.申请JS权限,一般申请后1-2h会通过 3.将参考模板中的代码分别粘贴到侧边栏、CSS等对应框中 2.个性化设置 完全照搬博主代…

【Java】若以框架(ruoyi-master)——10.BaseController源码了解

BaseController通用方法 Web层的通用数据。所有接口继承此方法。里面有一些各个接口会用到的通用方法。比如分页、返回消息、设置或获取一些登录信息,某些操作的时候,将日志写入或返回。方法归类 方法名称 说明请求参数预处理 initBinder() 将前台传递过来的日期格式的字符串…