PostgreSQL学习01-简介、安装


最近一段时间应客户要求需要用到PostgreSQL数据库,虽然自己搞Oracle已经很久了,但也对其他的数据库非常感兴趣,那么就开始吧。

1 . 简介

  1. PostgreSQL是一个对象关系型数据库管理系统,其代码完全开源.用户可以对其进行二次开发,并根据需要以开源或闭源的形式发布。
  2. PostgreSQL的功能非常强大,深受数据库开发者和使用者喜爱。
  3. PostgreSQL于2017年、2018年连续两年被DB一Engines评选为[年度数据库」。
  4. 截止到目前PostgreSQL已经12.1版本。
  5. 拥有一系列插件:空间数据库扩展插件PostGIS,外部表访问插件postgres_fdw, oracle_fdw。
  6. 两个网址:
    官方地址:www.postgresql.org
    中文社区:www.postgres.cn

1.1 一些概念

1) 元组Tuple = 行Row
2) 域Field = 字段Column
3) 数据库簇? =
4) 表空间:是一个存储位置,表空间允许数据库管理员定义一个文件系统位置。代表数据库对象(表、索引等)的文件可以存储在该文件目录下。
5) 数据段(segment)和数据页(Page)
a.数据段 = 每个表和索引都保存在一个单独的文件中,每个文件就是一个数据段。默认表或者索引超过1G,会被拆分成另外一个数据段。命名规则:filenode(段1)filenode.1(段2)b.数据页 = 默认8K,最大32K,大小是编译时确定的。

1.2 存储结构

所有ORACLE的童鞋都知道数据库体系架构是学习数据库非常重要的知识点,也是作为DBA最初需要学习的。那么Postgresql的体系架构如何呢?

1) 一个数据库簇(database cluster)包含多个database
2) 在一个database下有多个table
3) 在database和table之间根据需要可以引入一层逻辑schema
PostgreSQL的逻辑存储结构
4) 表空间对应文件系统中的一颗目录树,每个数据库在表空间目录下有一个对应的子目录(以数据库OID命名)
5) 每个表和索引都可以创建单独的数据文件,它们以表或索引的filenode命名,filenode可以在系统表pg_class中查询到。表还可以创建其他辅助文件,如_fsm和_vm为后缀的文件。
默认表空间$PGDATA/base的目录结构

1.3 进程体系架构

1) 当接收客户端连接请求后,Postmaster会创建一个新的postgres进程,并让该进程专门服务新的客户端连接,直到该连接关闭为止。
2) 后台管理进程:bgWriter,WAL Writer,CheckPointer,AutoVacuum,实现刷写脏页,记录WAL日志,空间回收等功能。
进程体系架构

1.4 PostgreSQL 10新特性

  1. 逻辑复制:用于分发数据的订阅/发布框架
  2. 声明式表分区:便于用户划分数据
  3. 提高查询并行性:攻克用户的分析难题
  4. 同步复制的法定副本数提交:有信心地发布数据
  5. 安全性加强:SCRAM-SHA-256身份验证:保障数据访问安全

2. 安装

2.1 Window安装

2.2 Linux安装

这里主要描述下在Centos7下的安装步骤,官网上有相关的安装介绍比较详细。具体如下:

1、安装rpm文件
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
2、安装客户端
yum install postgresql10
3、安装服务端
该步骤执行后,会自动创建postgres用户。
yum install postgresql10-server
4、初始化
/usr/pgsql-10/bin/postgresql-10-setup initdb
5、设置自动启动并且启动postgresql服务
systemctl enable postgresql-10
systemctl start postgresql-10

启动postgre之后,可以看到如下进程:在这里插入图片描述
postgresql的安装比较简单,官网上有明确的操作步骤
在这里插入图片描述
安装后,就可以用root切换postgres 进入数据库
su - postgres
在postgres用户下直接命令psql就可以进入postgres数据库了

注意:

  1. 需要说明的是,安装完成后,自动为操作系统建立了一个名为postgres的用户,密码为空;同时也自动为数据库建立了一个postgres的用户,密码也为空。
  2. rpm包安装的PostgreSQL的数据目录,默认在/var/lib/pgsql/data

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/coolhe21cn/article/details/107022746