最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PostgreSQL云服務(wù)器安裝配置指南

 更新時(shí)間:2026年05月07日 10:08:41   作者:日取其半萬世不竭  
這篇文章主要介紹了PostgreSQL的相關(guān)配置,包括安裝、基本配置、安全加固等,重點(diǎn)介紹了配置文件調(diào)整、遠(yuǎn)程訪問配置、訪問控制配置等內(nèi)容,并強(qiáng)調(diào)了連接池和索引優(yōu)化的重要性,需要的朋友可以參考下

MySQL 是 PHP 項(xiàng)目的默認(rèn)選擇,但越來越多的框架(Django、Ruby on Rails、Laravel 等)在認(rèn)真的項(xiàng)目上推薦用 PostgreSQL——對(duì) JSON、全文搜索、窗口函數(shù)、復(fù)雜查詢的支持更完善,加上嚴(yán)格的數(shù)據(jù)類型和約束執(zhí)行,寫起代碼來更放心。這篇文章從安裝開始,覆蓋生產(chǎn)環(huán)境需要的基本配置和安全加固。

服務(wù)器配置建議

PostgreSQL 的內(nèi)存需求取決于連接數(shù)和數(shù)據(jù)量:

場(chǎng)景CPU內(nèi)存硬盤
個(gè)人項(xiàng)目 / 小型應(yīng)用1 核1G20GB
中型業(yè)務(wù)應(yīng)用2–4 核4–8G100GB
大數(shù)據(jù)量 / 高并發(fā)8 核+16G+SSD 500GB+

我在雨云的服務(wù)器上跑 PostgreSQL,2 核 4G 的配置跑幾個(gè)中小型應(yīng)用完全沒問題。新用戶注冊(cè)填優(yōu)惠碼 2026off 能領(lǐng) 5 折優(yōu)惠券。

安裝 PostgreSQL

# 添加官方源(獲取最新版本,Ubuntu 22.04 自帶的版本較舊)
sudo apt install -y curl ca-certificates
sudo install -d /usr/share/postgresql-common/pgdg
curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail \
  https://www.postgresql.org/media/keys/ACCC4CF8.asc
sh -c 'echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] \
  https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > \
  /etc/apt/sources.list.d/pgdg.list'
sudo apt update
sudo apt install -y postgresql-16    # 安裝 PostgreSQL 16
# 檢查狀態(tài)
sudo systemctl status postgresql

基本配置

安裝完成后用 postgres 系統(tǒng)用戶登錄:

sudo -u postgres psql

創(chuàng)建數(shù)據(jù)庫用戶和數(shù)據(jù)庫

-- 創(chuàng)建應(yīng)用用戶(不要直接用 postgres 超級(jí)用戶)
CREATE USER myapp WITH PASSWORD '強(qiáng)密碼在這里';

-- 創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE myapp_db OWNER myapp;

-- 如果需要超級(jí)用戶權(quán)限(不推薦)
-- CREATE USER admin WITH SUPERUSER PASSWORD '密碼';

-- 退出
\q

創(chuàng)建只讀用戶(適合查詢分析)

CREATE USER readonly WITH PASSWORD '只讀用戶密碼';
GRANT CONNECT ON DATABASE myapp_db TO readonly;
GRANT USAGE ON SCHEMA public TO readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonly;

配置文件調(diào)整

主配置文件在 /etc/postgresql/16/main/postgresql.conf

sudo nano /etc/postgresql/16/main/postgresql.conf

重要參數(shù)調(diào)整:

# 連接設(shè)置
listen_addresses = 'localhost'   # 只監(jiān)聽本地(如需遠(yuǎn)程訪問改為 '*')
max_connections = 100            # 最大連接數(shù)(根據(jù)內(nèi)存調(diào)整)

# 內(nèi)存設(shè)置(根據(jù)服務(wù)器內(nèi)存調(diào)整)
shared_buffers = 256MB           # 建議內(nèi)存的 25%
effective_cache_size = 768MB     # 建議內(nèi)存的 75%
work_mem = 4MB                   # 每個(gè)排序操作的內(nèi)存
maintenance_work_mem = 64MB      # VACUUM、CREATE INDEX 的內(nèi)存

# 日志
log_destination = 'stderr'
logging_collector = on
log_directory = 'log'
log_filename = 'postgresql-%Y-%m-%d.log'
log_min_duration_statement = 1000  # 記錄超過 1 秒的慢查詢

# 檢查點(diǎn)
checkpoint_completion_target = 0.9
wal_buffers = 16MB

遠(yuǎn)程訪問配置

如果應(yīng)用程序在另一臺(tái)服務(wù)器上,需要開啟遠(yuǎn)程訪問:

# 修改 listen_addresses
sudo sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/" \
  /etc/postgresql/16/main/postgresql.conf

配置訪問控制(pg_hba.conf):

sudo nano /etc/postgresql/16/main/pg_hba.conf

在文件末尾添加(只允許特定 IP 訪問特定數(shù)據(jù)庫):

# 格式:類型 數(shù)據(jù)庫 用戶 地址 認(rèn)證方式
host    myapp_db    myapp    應(yīng)用服務(wù)器IP/32    scram-sha-256

重啟 PostgreSQL:

sudo systemctl restart postgresql

在云控制臺(tái)安全組放行 TCP 5432(只允許應(yīng)用服務(wù)器 IP,不要對(duì)公網(wǎng)全開)。

連接測(cè)試

# 從應(yīng)用服務(wù)器測(cè)試連接
psql -h 數(shù)據(jù)庫服務(wù)器IP -U myapp -d myapp_db
# 或者用 Python
python3 -c "import psycopg2; conn = psycopg2.connect('host=數(shù)據(jù)庫IP dbname=myapp_db user=myapp password=密碼'); print('連接成功')"

常用管理命令

-- 列出所有數(shù)據(jù)庫
\l
-- 切換數(shù)據(jù)庫
\c myapp_db
-- 列出所有表
\dt
-- 查看表結(jié)構(gòu)
\d 表名
-- 查看當(dāng)前連接
SELECT * FROM pg_stat_activity;
-- 查看表大小
SELECT pg_size_pretty(pg_total_relation_size('表名'));
-- 查看數(shù)據(jù)庫大小
SELECT pg_size_pretty(pg_database_size('myapp_db'));

備份與恢復(fù)

# 備份單個(gè)數(shù)據(jù)庫(推薦格式:custom,支持并行恢復(fù))
pg_dump -U postgres -Fc myapp_db > /backup/myapp-$(date +%Y%m%d).dump
# 備份所有數(shù)據(jù)庫
pg_dumpall -U postgres | gzip > /backup/all-$(date +%Y%m%d).sql.gz
# 恢復(fù)
pg_restore -U postgres -d myapp_db /backup/myapp-20260427.dump
# 自動(dòng)備份(加入 cron)
echo "0 2 * * * pg_dump -U postgres -Fc myapp_db | gzip > /backup/myapp-\$(date +\%Y\%m\%d).dump.gz" | sudo -u postgres crontab -

監(jiān)控慢查詢

-- 查看正在執(zhí)行的慢查詢
SELECT pid, now() - pg_stat_activity.query_start AS duration, query
FROM pg_stat_activity
WHERE state = 'active'
  AND now() - pg_stat_activity.query_start > interval '5 seconds'
ORDER BY duration DESC;

-- 找出需要添加索引的表
SELECT schemaname, tablename, seq_scan, idx_scan,
       n_live_tup, n_dead_tup
FROM pg_stat_user_tables
ORDER BY seq_scan DESC
LIMIT 10;

定期維護(hù)

# 手動(dòng)執(zhí)行 VACUUM(清理死元組,更新統(tǒng)計(jì)信息)
sudo -u postgres vacuumdb --all --analyze
# PostgreSQL 有 autovacuum 自動(dòng)維護(hù),通常不需要手動(dòng)執(zhí)行
# 查看 autovacuum 狀態(tài)
sudo -u postgres psql -c "SELECT * FROM pg_stat_bgwriter;"

PostgreSQL 配置好之后,最值得花時(shí)間的是連接池(推薦 PgBouncer)和索引優(yōu)化——連接數(shù)過多和缺少索引是絕大多數(shù)性能問題的根源。監(jiān)控慢查詢?nèi)罩臼钦页鰞?yōu)化點(diǎn)最直接的方式。

以上就是PostgreSQL云服務(wù)器安裝配置指南的詳細(xì)內(nèi)容,更多關(guān)于PostgreSQL云服務(wù)器安裝配置的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Postgresql ALTER語句常用操作小結(jié)

    Postgresql ALTER語句常用操作小結(jié)

    這篇文章主要介紹了Postgresql ALTER語句常用操作小結(jié),本文講解了增加一列、刪除一列、更改列的數(shù)據(jù)類型、表的重命名、更改列的名字、字段的not null設(shè)置等常用操作的代碼示例,需要的朋友可以參考下
    2015-06-06
  • Postgresql源碼分析returns?setof函數(shù)oracle管道pipelined

    Postgresql源碼分析returns?setof函數(shù)oracle管道pipelined

    這篇文章主要為大家介紹了Postgresql源碼分析returns?setof函數(shù)oracle管道pipelined,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • PostgreSQL分區(qū)表的實(shí)現(xiàn)示例

    PostgreSQL分區(qū)表的實(shí)現(xiàn)示例

    分區(qū)表是一種數(shù)據(jù)庫優(yōu)化技術(shù),本文主要介紹了PostgreSQL分區(qū)表的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-07-07
  • PostgreSQL管理工具phpPgAdmin入門指南

    PostgreSQL管理工具phpPgAdmin入門指南

    phpPgAdmin是用PHP開發(fā)的一個(gè)基于web的PostgreSQL數(shù)據(jù)庫管理工具。和MySql時(shí)代的PHPMyAdmin類似。本文介紹了phpPgAdmin安裝和使用方法,需要的朋友可以參考下
    2014-03-03
  • PostgreSQL設(shè)置時(shí)區(qū)、時(shí)間/日期函數(shù)匯總大全

    PostgreSQL設(shè)置時(shí)區(qū)、時(shí)間/日期函數(shù)匯總大全

    PostgreSQL是一款簡(jiǎn)介而又性能強(qiáng)大的數(shù)據(jù)庫應(yīng)用程序,其在日期時(shí)間數(shù)據(jù)方面所支持的功能也都非常給力,這篇文章主要給大家介紹了關(guān)于PostgreSQL設(shè)置時(shí)區(qū)、時(shí)間/日期函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2023-09-09
  • PostgreSQL創(chuàng)建新用戶所遇見的權(quán)限問題以及解決辦法

    PostgreSQL創(chuàng)建新用戶所遇見的權(quán)限問題以及解決辦法

    這篇文章主要給大家介紹了關(guān)于PostgreSQL創(chuàng)建新用戶所遇見的權(quán)限問題以及解決辦法, 在PostgreSQL中創(chuàng)建一個(gè)新用戶非常簡(jiǎn)單,但可能會(huì)遇到權(quán)限問題,需要的朋友可以參考下
    2023-09-09
  • postgreSql分組統(tǒng)計(jì)數(shù)據(jù)的實(shí)現(xiàn)代碼

    postgreSql分組統(tǒng)計(jì)數(shù)據(jù)的實(shí)現(xiàn)代碼

    這篇文章給大家介紹postgreSql的監(jiān)控記錄表里多條不同時(shí)間的數(shù)據(jù),只取最新的數(shù)據(jù),并分組統(tǒng)計(jì),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-12-12
  • PostgreSQL中使用dblink實(shí)現(xiàn)跨庫查詢的方法

    PostgreSQL中使用dblink實(shí)現(xiàn)跨庫查詢的方法

    這篇文章主要介紹了PostgreSQL中使用dblink實(shí)現(xiàn)跨庫查詢的方法,需要的朋友可以參考下
    2017-05-05
  • PgSQl臨時(shí)表創(chuàng)建及應(yīng)用實(shí)例解析

    PgSQl臨時(shí)表創(chuàng)建及應(yīng)用實(shí)例解析

    這篇文章主要介紹了PgSQl臨時(shí)表創(chuàng)建及應(yīng)用實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • PostgreSQL 刪除check約束的實(shí)現(xiàn)

    PostgreSQL 刪除check約束的實(shí)現(xiàn)

    這篇文章主要介紹了PostgreSQL 刪除check約束的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02

最新評(píng)論

吉林市| 库车县| 乌鲁木齐县| 新野县| 田林县| 萍乡市| 德钦县| 昌图县| 定西市| 合水县| 松溪县| 民县| 岳西县| 华安县| 安化县| 通化县| 瑞昌市| 定西市| 崇州市| 东乌珠穆沁旗| 上犹县| 天等县| 玉环县| 长丰县| 浦城县| 随州市| 石林| 建宁县| 滕州市| 蓬安县| 甘南县| 临澧县| 廉江市| 雷波县| 岗巴县| 左云县| 东乌| 江源县| 石台县| 义马市| 穆棱市|