postgresql基本介绍以及部署使用

  • 1. 基本介绍
    • 1.1 基本信息
    • 1.2 优势
  • 2. 对比mysql和oracle
    • 2.1 Postgresql VS Oracle
    • 2.2 Postgresql VS Mysql
  • 3. 安装部署
    • 3.1 安装环境
    • 3.2 安装步骤
  • 4. 开机自启
  • 5. pgadmin客户端
  • 6. 参考资料

对于数据库,作为IT技术人员都不陌生,本人直接使用过mysql和sqlserver数据库,也系统的学习过oracle数据库,而对于postgresql数据库,也仅仅在gis领域和外企中有所耳闻,也因此产生兴趣。
通过整理线上相关学习资料进行学习,并于本地构建环境进行postgresql实际搭建部署以及简要使用,于此进行记录,以便后续持续深入学习,也为后来者提供参考借鉴,文中不免疏漏之处,望读者给予指正,不胜感激!

1. 基本介绍

1.1 基本信息

PostgreSQL是一个功能强大的开源数据库系统。经过长达15年以上的积极开发和不断改进,PostgreSQL已在可靠性、稳定性、数据一致性等获得了业内极高的声誉。目前PostgreSQL可以运行在所有主流操作系统上,包括Linux、Unix和Windows。
PostgreSQL是完全的事务安全性数据库,支持丰富的数据类型(如JSON和JSONB类型、数组类型)和自定义类型。PostgreSQL数据库提供了丰富的接口,可以很方便地扩展它的功能,如可以在GiST框架下实现自己的索引类型,支持使用C语言写自定义函数、触发器,也支持使用流行的编程语言写自定义函数。PL/Perl提供了使用Perl语言写自定义函数的功能,当然还有PL/Python、PL/Java、PL/Tcl等。

作为一种企业级数据库,PostgreSQL以它所具有的各种高级功能而自豪,像多版本并发控制(MVCC)、按时间点恢复(PITR)、表空间、异步复制、嵌套事务、在线热备、复杂查询的规划和优化以及为容错而进行的预写日志等。它支持国际字符集、多字节编码并支持使用当地语言进行排序、大小写处理和格式化等操作。它也在所能管理的大数据量和所允许的大用户量并发访问时间具有完全的高伸缩性。

1.2 优势

PostgreSQL数据库具有以下优势:
PostgreSQL数据库是目前功能最强大的开源数据库,它是最接近工业标准SQL92的查询语言,至少实现了SQL:2011标准中要求的179项主要功能中的160项(注:目前没有哪个数据库管理系统能完全实现SQL:2011标准中的所有主要功能)。
稳定可靠:PostgreSQL是唯一能做到数据零丢失的开源数据库。目前有报道称国内外有部分银行使用PostgreSQL数据库。
开源省钱: PostgreSQL数据库是开源的、免费的,而且使用的是类BSD协议,在使用和二次开发上基本没有限制。
支持广泛:PostgreSQL 数据库支持大量的主流开发语言,包括C、C++、Perl、Python、Java、Tcl以及PHP等。
PostgreSQL社区活跃:PostgreSQL基本上每3个月推出一个补丁版本,这意味着已知的Bug很快会被修复,有应用场景的需求也会及时得到响应。

2. 对比mysql和oracle

2.1 Postgresql VS Oracle

Oracle数据库是目前功能最强大的商业数据库,PostgreSQL则是功能最强大的开源数据库。
PostgreSQL与Oracle的不同之处在于,PostgreSQL有更多支持互联网特征的功能。如PostgreSQL数据类型支持网络地址类型、XML类型、JSON类型、UUID类型以及数组类型,且有强大的正则表达式函数,如where条件中可以使用正则表达式匹配,也可以使用Python、Perl等语言写存储过程等。另外,PostgreSQL更小巧。PostgreSQL可以在内存很小的机器上完美运行起来,如在512MB的云主机中,而Oracle数据库基本要在数GB的云主机中才可以运行起来。Oracle安装包动辄几个GB以上级别,而PostgreSQL的安装包只有几十MB大小。PostgreSQL在任何一个环境都可以轻松地安装。Oracle数据库安装花费的时间是在小时级别,而PostgreSQL在分钟级别就可以完成安装。

2.2 Postgresql VS Mysql

Postgresql和Mysql都是开源数据库。
PostgreSQL有以下几个优点。
功能强大:支持所有主流的多表连接查询的方式,如“Hash JOIN”“Sort Merge JOIN”等;字段类型还支持数组类型,甚至有一些业务功能都不再需要写代码来实现了,直接使用数据库的功能即可解决问题。
性能优化工具与度量信息丰富:PostgreSQL数据库中有大量的性能视图,可以方便地定位问题(比如可以看到正在执行的SQL,可以通过锁视图看到谁在等待,以及哪条记录被锁定等)。PostgreSQL中设计了专门架构和进程用于收集性能数据,既有物理I/O方面的统计,也有表扫描及索引扫描方面的性能数据。
在线操作功能好:PostgreSQL增加空值列时,本质上只是在系统表上把列定义上,无须对物理结构做更新,这就让PostgreSQL在加列时可以做到瞬间完成。PostgreSQL还支持在线建索引的功能,在创建索引的过程可以不锁更新操作。
从PostgreSQL9.1开始,支持同步复制(synchronous replication)功能,通过Master和Slave之间的复制可以实现零数据丢失的高可用方案。
可以方便地写插件来扩展PostgreSQL数据库的功能:支持移动互联网的新功能,如空间索引
如果应用的数据访问很简单,那么后端使用MySQL也是很合适的。但是如果应用复杂,而且不想消耗太多的开发资源,那么PostgreSQL是一个很明智的选择。

3. 安装部署

3.1 安装环境

服务器环境:centos7
postgresql版本:postgresql-14.0

3.2 安装步骤

  1. 下载安装包
  2. 解压编译
yum -y install gcc gcc-c++ readline-devel zlib-devel
tar -zvxf postgresql-14.0.tar.gz
cd postgresql-14.0
./configure
make && make install
/usr/local/目录下会生产pgsql目录
  1. 用户以及权限
useradd postgres
chown -R postgres:postgres pgsql/
  1. 初始化数据库
进入bin目录
su postgres
./initdb /usr/local/pgsql/data
  1. 启动
./pg_ctl -D /usr/local/pgsql/data -l logfile start
#开启
/home/postgres/pgsql/bin/pg_ctl  -D /home/postgres/data/ -l logfile start
#查看状态
/home/postgres/pgsql/bin/pg_ctl -D /home/postgres/data/ -l logfile status
#停止
/home/postgres/pgsql/bin/pg_ctl -D /home/postgres/data/ -l logfile stop


  1. 修改配置
    初始化后在postgresql的目录可以看到生成的数据目录data以及该目录的相关数据和配置文件,pg_hba.conf和postgresql.conf,
    一个是访问控制配置(127.0.0.1改为信任的客户端ip网段使其可以远程访问),
    一个是postgresql主配置文件(listen_address=localhost改为星号使其监听整个网络)

pg_hba.conf中配置服务端允许的认证方式,添加下面一行。

TYPE DATABASE USER CIDR-ADDRESS METHOD
host all all 0.0.0.0/0 password

postgresql.conf编辑或添加下面一行,使PostgreSQL可以接受来自任意IP的连接请求,把端口开放,原来是 注释的

listen_addresses = '*'
port = 5432
  1. 重启pgsql
./pg_ctl -D /usr/local/pgsql/data/ -l logfile restart

  1. 登录以及修改密码
./psql
ALTER USER postgres WITH PASSWORD '123456';
psql -d postgres -p 5432 -U postgres -h Localhost
  1. navicat远程连接成功

4. 开机自启

  1. 找到安装包下启动脚本
postgresql-14.0/contrib/start-scripts/linux
  1. 复制启动脚本
cp postgresql-14.0/contrib/start-scripts/linux /etc/init.d/postgresql
  1. 修改脚本配置
# Installation prefix
prefix=/usr/local/pgsql
# Data directory
PGDATA="/usr/local/pgsql/data"
# Who to run the postmaster as, usually "postgres".  (NOT "root")
PGUSER=postgres
# Where to keep a log file
PGLOG="$PGDATA/serverlog"
  1. 增加执行权限
chmod a+x /etc/init.d/postgresql
  1. 注册开机自启
chkconfig命令将该脚本注册为开机启动便可:
chkconfig --add postgresql

重启验证

ps -ef|grep postgresql


5. pgadmin客户端

https://www.pgadmin.org/download/

6. 参考资料

https://www.postgresql.org/
https://www.pgadmin.org/
https://blog.51cto.com/u_15289334/3321664
https://blog.csdn.net/Victory_Lei/article/details/121414749

postgresql基本介绍以及部署使用相关推荐

  1. PostgreSQL on Linux 最佳部署指南

    PostgreSQL on Linux 最佳部署手册 作者 digoal 日期 2016-11-21 标签 Linux , PostgreSQL , Install , 最佳部署 背景 数据库的安装一 ...

  2. PostgreSQL on Linux 最佳部署手册

    PostgreSQL on Linux 最佳部署手册 TAG 24 作者 digoal 日期 2016-11-21 标签 Linux , PostgreSQL , Install , 最佳部署 背景 ...

  3. Redis介绍及部署在CentOS7上(一)

    0.Redis目录结构 1)Redis介绍及部署在CentOS7上(一) 2)Redis指令与数据结构(二) 3)Redis客户端连接以及持久化数据(三) 4)Redis高可用之主从复制实践(四) 5 ...

  4. Redis介绍及部署在CentOS7上(一) 1

    0.Redis目录结构 1)Redis介绍及部署在CentOS7上(一) 2)Redis指令与数据结构(二) 3)Redis客户端连接以及持久化数据(三) 4)Redis高可用之主从复制实践(四) 5 ...

  5. Rsync下行同步+inotify实时同步介绍和部署

    Rsync下行同步+inotify实时同步介绍和部署 一.Rsync 1.Rsync同步源 2.Rsync服务器 3.同步方式 二.配置rsync源 三.rsync命令 四.配置源的两种表示方法 1. ...

  6. 再不了解PostgreSQL,你就晚了之PostgreSQL主从流复制部署...

    再不了解PostgreSQL,你就晚了之PostgreSQL主从流复制部署 前言 在MySQL被收购之后,虽然有其替代品为: MariaDB,但是总感觉心里有点膈应.大家发现了另一款开源的数据库: P ...

  7. docker原理介绍以及部署使用

    docker原理介绍以及部署使用 1. docker简介 2. docker架构概念 3. docker安装部署 3.1 安装环境 3.2 安装步骤 4. docker使用 4.1 镜像管理 4.2 ...

  8. PostgreSQL索引介绍

    梦中彩虹 博客园 首页 新随笔 联系 管理 随笔 - 131  文章 - 1  评论 - 14 PostgreSQL索引介绍 INDEX 索引是增强数据库性能的常用方法.索引使得数据库在查找和检索数据 ...

  9. PostgreSQL 分区表, pg_pathman ,PostgreSQL 10介绍及性能对比(转载)

    转载自:https://my.oschina.net/yonj1e/blog/868402 PostgreSQL 分区表, pg_pathman ,PostgreSQL 10介绍及性能对比 原 yon ...

最新文章

  1. 形象的列举-C# 枚举
  2. 16位无符号比较器设计
  3. 【渝粤教育】广东开放大学 中国法律史 形成性考核 (31)
  4. Bitmap Font生成
  5. 一套完整的用户增长系统架构
  6. 背景和弹出 Panel 都带有动画效果的 modal 效果
  7. 美女学霸直博中科院,本科武大王者全国16强,妥妥现实版“爽文女主”!
  8. win2003 apache php5.4 mysql_【php】在Windows2003下配置Apache2.4与php5.4
  9. python历史5分钟数据_python每5分钟从kafka中提取数据的例子
  10. python 爬虫代码实例
  11. 2021年第十八届五一数学建模竞赛题目 C题 数据驱动的异常检测与预警问题 解题论文完整版
  12. 什么是盒子模型,盒子模型,标准盒模型,怪异盒模型,两种盒模型的区别,box-sizing属性
  13. Python 招聘信息爬取及可视化
  14. 使用Filler4提取微信小程序中的视频
  15. NETDMIS5.0手动测量——智能识别2023
  16. Hadoop2.x与3.x的区别:
  17. cJSON 使用详解
  18. 火狐浏览器Firefox上DownThemAll插件
  19. 灰色关联分析(系统分析+综合评价)
  20. php任意文件删除漏洞,phpyun二次任意文件删除漏洞

热门文章

  1. 【电脑自动重启,电脑自动重启的原因】
  2. Derek Sivers:记日记和专题记录的收获(译)
  3. 从键盘输入一句英文,实现把这句英文的单词按照字典顺序排序输出。
  4. 利用Python轻松实现视频合成!
  5. sun服务器系统日志,Solaris简单系统巡检,日志查看
  6. 华为手机预防丢失和丢失后怎么办?
  7. 中国唯一,本源量子晋级空客量子计算全球挑战赛决赛
  8. 8g内存和16g内存区别 mac_苹果8g和16g的区别大盘点
  9. 基于Canvas 六边形能力图(含动画)-干货满满~拿来就用!
  10. 怎么开分屏_ios14分屏功能怎么开 苹果ios14系统有分屏功能吗