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

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章