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

docker安裝Postgresql數(shù)據(jù)庫(kù)及基本操作

 更新時(shí)間:2025年03月29日 13:59:10   作者:無(wú)區(qū)新手  
PostgreSQL是一個(gè)強(qiáng)大的開(kāi)源對(duì)象-關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),以其高可擴(kuò)展性和標(biāo)準(zhǔn)化而著稱(chēng),這篇文章主要介紹了docker安裝Postgresql數(shù)據(jù)庫(kù)及基本操作的相關(guān)資料,需要的朋友可以參考下

單機(jī)

# 創(chuàng)建映射目錄
mkdir /data/postgresql/data

# 啟動(dòng)容器
docker run -d -p 5432:5432 --restart=always -v /data/postgresql/data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 --name postgres postgres:14

# 修改配置文件/data/postgresql/data/postgresql.conf
# 設(shè)置時(shí)區(qū)
timezone = 'Asia/Shanghai'
# 連接數(shù)
max_connections = 1000

集群

主機(jī)

# 創(chuàng)建映射目錄
mkdir /data/postgresql/data

# 啟動(dòng)容器
docker run -d -p 5432:5432 -v /data/postgresql/data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 --name postgres_master postgres:14

# 修改vi /data/postgresql/data/pg_hba.conf,允許從機(jī)復(fù)制
host replication all 192.168.0.12/32 trust
host replication all 193.168.0.13/32 trust

# 修改vi /data/postgresql/data/postgresql.conf
# 啟用歸檔模式,允許數(shù)據(jù)庫(kù)將 WAL(Write-Ahead Logging)日志文件存檔。
archive_mode = on
# 連接數(shù)
max_connections = 500
# 設(shè)置時(shí)區(qū)
timezone = 'Asia/Shanghai'

# 重啟容器
docker restart postgres_master 

從機(jī)

# 啟動(dòng)容器,注意這里沒(méi)有進(jìn)行數(shù)據(jù)卷掛載,因?yàn)楹竺嬉獎(jiǎng)h除數(shù)據(jù)將主節(jié)點(diǎn)數(shù)據(jù)同步過(guò)來(lái)
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=123456 -v /data/postgresql/data:/var/lib/postgresql/data --name postgres_slave1 postgres:14

# 進(jìn)入容器
docker exec -it postgres_slave1 bash

# 刪除數(shù)據(jù),并將主節(jié)點(diǎn)數(shù)據(jù)同步過(guò)來(lái)(注意-h后面跟著的是主節(jié)點(diǎn)ip,-U后面是主節(jié)點(diǎn)創(chuàng)建的用于復(fù)制的用戶名,需要輸入密碼時(shí)就是用于復(fù)制的用戶名的密碼)
rm -rf /var/lib/postgresql/data/* && pg_basebackup -h 192.168.0.11 -p 5432 -U postgres -Fp -Xs -Pv -R -D /var/lib/postgresql/data

# 數(shù)據(jù)同步后容器會(huì)關(guān)閉。再啟動(dòng)即可
docker restart postgres_slave1

# 修改文件vi /data/postgresql/data/postgresql.conf
# 配置主庫(kù)ip地址以及端口號(hào),以及用于復(fù)制的用戶名和密碼        
primary_conninfo = 'host=192.168.0.11 port=5432 user=postgres password=123456'   
# 在恢復(fù)期間允許查詢(xún)。這是在流復(fù)制過(guò)程中,從庫(kù)在進(jìn)行 WAL 日志恢復(fù)的同時(shí)允許查詢(xún)讀取。
# 從機(jī)只讀
hot_standby = on
# 設(shè)置恢復(fù)的目標(biāo)時(shí)間線。在這里,設(shè)置為 latest 表示從庫(kù)將一直嘗試連接到主庫(kù)的最新時(shí)間線上。
recovery_target_timeline = latest
# 必須大于主節(jié)點(diǎn)的連接數(shù)。這確保從庫(kù)可以處理主庫(kù)發(fā)送的所有連接請(qǐng)求。
max_connections = 1000
# 設(shè)置時(shí)區(qū)
timezone = 'Asia/Shanghai'
                         
# 重啟從庫(kù)
docker restart postgres_slave1 

# 校驗(yàn),在主機(jī)執(zhí)行sql
select * from pg_stat_replication;

從機(jī)2

重復(fù)從機(jī)1的操作

Pgpool

負(fù)載均衡,讀寫(xiě)分離

docker run -d -p 9999:5432 --name pgpool \
--env PGPOOL_BACKEND_NODES=0:192.168.0.11:5432,1:192.168.0.12:5432,2:192.168.0.13:5432 \
--env PGPOOL_SR_CHECK_USER=postgres \
--env PGPOOL_SR_CHECK_PASSWORD=123456 \
--env PGPOOL_ENABLE_LDAP=no \
--env PGPOOL_POSTGRES_USERNAME=postgres \
--env PGPOOL_POSTGRES_PASSWORD=123456 \
--env PGPOOL_ADMIN_USERNAME=postgres \
--env PGPOOL_ADMIN_PASSWORD=123456 \
--env PGPOOL_USERNAME=postgres \
--env PGPOOL_PASSWORD=123456 \
--env PGPOOL_AUTHENTICATION_METHOD=scram-sha-256 \
pgpool

postgresql角色權(quán)限設(shè)置

-- 創(chuàng)建賬號(hào)
CREATE ROLE admin WITH LOGIN PASSWORD '123456' NOSUPERUSER NOCREATEDB NOCREATEROLE;

-- 給角色/賬號(hào)訪問(wèn)數(shù)據(jù)庫(kù)的權(quán)限
GRANT ALL PRIVILEGES ON DATABASE testDb TO admin;

-- 設(shè)置所有schema的訪問(wèn)權(quán)限
DO
$$
    DECLARE
        schema_name TEXT;
    BEGIN
        FOR schema_name IN
            SELECT nspname
            FROM pg_namespace
            WHERE nspname NOT IN ('pg_catalog', 'information_schema')
            LOOP
                EXECUTE format('GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA %I TO admin;', schema_name);
                EXECUTE format('GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA %I TO admin;', schema_name);
                EXECUTE format('GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA %I TO admin;', schema_name);
            END LOOP;
    END
$$;

-- 解綁所有schema的訪問(wèn)權(quán)限
DO
$$
    DECLARE
        schema_name TEXT;
    BEGIN
        FOR schema_name IN
            SELECT nspname
            FROM pg_namespace
            WHERE nspname NOT IN ('pg_catalog', 'information_schema')
            LOOP
                EXECUTE format('REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA %I FROM admin;', schema_name);
                EXECUTE format('REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA %I FROM admin;', schema_name);
                EXECUTE format('REVOKE ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA %I FROM admin;', schema_name);
            END LOOP;
    END
$$;


-- 設(shè)置默認(rèn)權(quán)限,新創(chuàng)建的表都屬于這個(gè)角色/賬號(hào)
DO
$$
    DECLARE
        schema_name TEXT;
    BEGIN
        FOR schema_name IN
            SELECT nspname
            FROM pg_namespace
            WHERE nspname NOT IN ('pg_catalog', 'information_schema')
            LOOP
                EXECUTE format('ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT ALL ON TABLES TO admin;',
                               schema_name);
                EXECUTE format('ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT ALL ON SEQUENCES TO admin',
                               schema_name);
                EXECUTE format('ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT ALL ON FUNCTIONS TO admin',
                               schema_name);
            END LOOP;
    END
$$;

-- 查詢(xún)角色/賬號(hào)可以連接的數(shù)據(jù)庫(kù)
SELECT datname
FROM pg_database
WHERE has_database_privilege('admin', datname, 'CONNECT');

-- 解綁連接其他數(shù)據(jù)庫(kù)
REVOKE CONNECT ON DATABASE postgres FROM PUBLIC;

-- 查詢(xún)數(shù)據(jù)庫(kù)所綁定的角色/用戶
SELECT datacl
FROM pg_database
WHERE datname = 'testDb';

-- 刪除角色/賬號(hào)
DROP OWNED BY admin;

總結(jié) 

到此這篇關(guān)于docker安裝Postgresql數(shù)據(jù)庫(kù)及基本操作的文章就介紹到這了,更多相關(guān)docker安裝pg數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Postgresql中xlog生成和清理邏輯操作

    Postgresql中xlog生成和清理邏輯操作

    這篇文章主要介紹了Postgresql中xlog生成和清理邏輯操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • PostgreSQL標(biāo)準(zhǔn)建表語(yǔ)句分享

    PostgreSQL標(biāo)準(zhǔn)建表語(yǔ)句分享

    這篇文章主要介紹了PostgreSQL標(biāo)準(zhǔn)建表語(yǔ)句分享,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • PostgreSQL常用字符串分割函數(shù)整理匯總

    PostgreSQL常用字符串分割函數(shù)整理匯總

    作為當(dāng)前最強(qiáng)大的開(kāi)源數(shù)據(jù)庫(kù),Postgresql(以下簡(jiǎn)稱(chēng)pg)對(duì)字符的處理也是最為強(qiáng)大的,下面這篇文章主要給大家介紹了關(guān)于PostgreSQL常用字符串分割函數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • postgreSQL 數(shù)字與字符串類(lèi)型轉(zhuǎn)換操作

    postgreSQL 數(shù)字與字符串類(lèi)型轉(zhuǎn)換操作

    這篇文章主要介紹了postgreSQL 數(shù)字與字符串類(lèi)型轉(zhuǎn)換操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • PostgreSQL分區(qū)表(partitioning)應(yīng)用實(shí)例詳解

    PostgreSQL分區(qū)表(partitioning)應(yīng)用實(shí)例詳解

    這篇文章主要為大家詳細(xì)介紹了PostgreSQL分區(qū)表(partitioning)應(yīng)用實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • PostgreSQL查詢(xún)和處理JSON數(shù)據(jù)

    PostgreSQL查詢(xún)和處理JSON數(shù)據(jù)

    這篇文章主要給大家介紹了關(guān)于PostgreSQL查詢(xún)和處理JSON數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • PostgreSQL timestamp踩坑記錄與填坑指南

    PostgreSQL timestamp踩坑記錄與填坑指南

    這篇文章主要介紹了PostgreSQL timestamp踩坑記錄與填坑指南,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • postgresql初始化之initdb的使用詳解

    postgresql初始化之initdb的使用詳解

    這篇文章主要介紹了postgresql初始化之initdb的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • PostgreSQL刪除更新優(yōu)化操作

    PostgreSQL刪除更新優(yōu)化操作

    這篇文章主要介紹了PostgreSQL刪除更新優(yōu)化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • PostgreSQL實(shí)現(xiàn)跨數(shù)據(jù)庫(kù)授權(quán)查詢(xún)的詳細(xì)步驟

    PostgreSQL實(shí)現(xiàn)跨數(shù)據(jù)庫(kù)授權(quán)查詢(xún)的詳細(xì)步驟

    在PostgreSQL中,由于一個(gè)數(shù)據(jù)庫(kù)實(shí)例下的不同數(shù)據(jù)庫(kù)在邏輯上是隔離的,你不能像在同一個(gè)數(shù)據(jù)庫(kù)內(nèi)跨模式那樣直接查詢(xún),因此,你需要分兩步走:先授權(quán),后查詢(xún),所以本文給大家介紹了PostgreSQL實(shí)現(xiàn)跨數(shù)據(jù)庫(kù)授權(quán)查詢(xún)的詳細(xì)步驟,需要的朋友可以參考下
    2025-10-10

最新評(píng)論

岑溪市| 崇信县| 许昌市| 华宁县| 修武县| 武城县| 遂昌县| 平罗县| 洞口县| 子洲县| 新巴尔虎左旗| 甘孜县| 房产| 闵行区| 黄冈市| 小金县| 泸西县| 肃北| 应城市| 兴文县| 延长县| 富平县| 阜城县| 中宁县| 元阳县| 横峰县| 安义县| 静安区| 邢台县| 贵南县| 仁化县| 南召县| 郯城县| 县级市| 板桥市| 广德县| 许昌市| 长岭县| 循化| 博湖县| 仁怀市|