本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • PostgreSQL
  • PostgreSQL教程(1)PostgreSQL基本知识与安装部署

PostgreSQL教程(1)PostgreSQL基本知识与安装部署

发布:TangLu2020-8-27 14:25分类: PostgreSQL 标签: 数据库 PostgreSQL

一、PostgreSQL介绍

PostgreSQL(PGSQL)是一款开源免费的关系型数据库管理系统。进过10多年的开发,其功能已经非常强大,(PostgreSQL从2016年9.3版本后开始每年都发布了一个大版本,现在主要版本是12)也开始慢慢流行,主要优点如下:

・价格便宜,对个人用户免费

・多进程工作,对于复杂场景的处理速度比MySQL更快

・简单易用,可移植,可在不同系统中运行

・为不同开发语言提供了丰富的API接口

・支持标准的查询语言

・有很多高品质图形化管理工具以及开源软件配合使用,对于实现分布式、读写分离、数据水平拆分等都有很多选择

・安全性较高

 

二、PostgreSQL进程与数据结构

1、PostgreSQL进程结构

PostgreSQL进程分为主进程和辅助进程,主进程用来控制整个实例,比如启动关闭服务;辅助进程则分为了以下几个:

系统日志进程(SysLogger):需在postgres.conf中将logging_collection设置为on,此时主进程才启动SysLogger进程

后台写进程(BgWriter):把共享内存中的脏页写到磁盘的过程,提高性能

预写日志进程(WALWrite):在修改数据之前把操作记录写入磁盘,后面更新实时数据时就不需要数据持久化到文件中

归档进程(PgArch):WAL日志循环使用时,通过PgArch把需要被覆盖的日志进行归档,通过全备+归档数据可以实现数据恢复。

系统自动清理进程(AutoVacuum):在PGSQL中将表中数据进行删除后只是标记为删除状态,当没有其他事务读到这些数据时才会由AutoVacuum进行清理。

统计收集进程(PgStat):数据统计收集工作,比如一个表和索引进行了多少次的插入、更新等信息都会记录。

 · 检查点进程(CheckPoint):数据库发生宕机重启后,会以最近的检查点为参考,然后将未完成的事务前滚,再重放检查点之后的WAL日志保证数据一致。


2、PostgreSQL数据结构

在PostgreSQL中,数据结构分为数据库(database)、模式(schema)、表(relation)、行(tuple),相比MySQL来说多了一个模式的层级,这个模式属于某个数据库,一个数据库可以有多个模式,每个模式下可以有自己的表、函数等数据库对象,所以这个模式的概念和MySQL中的database是一样的(访问的访问也是schema_name.table_name的形式)。如果在创建和访问表时不指定模式,那么操作的对象都是PUBLIC模式,这是在建库时自动创建的一个模式。在PUBLIC模式下所有用户都有CREATE和USAGE权限,所以建议创建一个自定义模式然后让模式所有者来进行授权。

PostgreSQL数据文件和MySQL所不同的地方在于它并不是直接直观的存放在指定路径下以表名作为文件名,而是有一个OID的概念,每一个表都会生成一个OID,然后以OID作为文件名。要查询表的OID与存放路径可以运行以下SQL

select sys_relation_filepath('table_name');


三、PostgreSQL安装——YUM安装,优点是简单,但无法自定义一些配置

1、使用Yum安装PGSQL

#配置yum仓库
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
#安装pgsql
yum install -y postgresql12-server
#初始化数据库
/usr/pgsql-12/bin/postgresql-12-setup initdb
#启动服务,默认监听5432端口
systemctl enable postgresql-12
systemctl start postgresql-12

2、安装完成后会创建一个postgres用户,因为root用户是无法连接PGSQL的,所以需要先切到该用户再进行连接

su - postgres
psql  #运行该命令进入pgsql交互界面
\l  #查询所有库


四、PostgreSQL安装——编译安装,需要安装依赖,但是最为灵活

1、安装编译工具和依赖

yum install cmake gcc zlib zlib-devel gcc-c++ perl readline readline-devel ncurses-devel


2、为PGSQL创建用户以及相关目录

useradd postgres
mkdir /data/postgresql/
chown -R postgres.postgres /data/postgresql


3、下载PGSQL源码包并上传解压到服务器

postgrel.png


4、编译安装

./configure --prefix=/usr/local/postgresql --without-readline  #readline用于显示历史命令,不想要的话可以without取消
make
make install


5、初始化PGSQL数据库集群,初始化完成后会创建template0、template1、postgres三个默认数据库,2个template数据库包含了系统的元数据表,用户在创建数据库时会以template1里的数据进行克隆,如果修改了template1里的信息,那新建的数据库就会继承这些设置。除此还会创建pg_default和pg_global两个表空间,pg_default存放于$pgdata/base目录,pg_global存放于$pgdata/global目录

su - postgrels
/usr/local/postgresql/bin/initdb-D /data/postgrelsql/ -U postgres -X /data/postgresql/logs


6、有2个配置文件是PGSQL在编译完成后自动创建的,这里暂时先不做配置

/data/postgresql/data/postgresql.conf
/data/postgresql/data/pg_hba.conf


7、启动PGSQL

/usr/local/postgresql/bin/pg_ctl -D /data/postgresql/data/  start
# 方法2
# nohup /usr/local/postgresql/bin/postgres -D //data/postgresql/data &

8、连接PGSQL。在初始化时会自动创建一个管理员用户,用哪个系统用户进行的初始化就会创建对应的用户为PGSQL的管理员,且账号有本地管理权限,所以不用输入任何信息就可以直接登录
/usr/local/postgresql/bin/psql
\l
温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《PostgreSQL教程(1)PostgreSQL基本知识与安装部署
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-611.html  [生成短网址]

已有 0/414 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~