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

docker運行PostgreSQL數(shù)據(jù)庫維護執(zhí)行腳本備份數(shù)據(jù)庫與更新表結構的方法

 更新時間:2023年05月04日 17:16:38   作者:堅持是一種態(tài)度  
這篇文章主要介紹了docker運行PostgreSQL數(shù)據(jù)庫維護,執(zhí)行腳本備份數(shù)據(jù)庫與更新表結構,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

PostgreSQL簡介

  • PostgreSQL是一種開源的關系型數(shù)據(jù)庫管理系統(tǒng),它是一個功能強大、高度可定制化和支持復雜應用的數(shù)據(jù)庫。它支持廣泛的數(shù)據(jù)類型,包括數(shù)值、文字、二進制、地理空間等多種類型,同時還擁有高級數(shù)據(jù)建模和表連接等功能。PostgreSQL是使用ANSI SQL標準的一種數(shù)據(jù)庫,也支持JSON、XML等多種數(shù)據(jù)格式。
  • PostgreSQL 是一個功能強大、可靠性高、豐富性強的數(shù)據(jù)庫管理系統(tǒng),廣泛應用于大型企業(yè)和各類應用程序。
  • 在開源界,PostgreSQL得到了廣泛的認可和支持,并且在全球范圍內有著龐大的社區(qū)和開發(fā)者團隊。它是一種成熟的數(shù)據(jù)庫技術,也是當今最具活力和發(fā)展?jié)摿Φ拈_源數(shù)據(jù)庫之一。

業(yè)務場景

  • 我們有一小部分客戶,項目涉及路口較少,本身對平臺的需求較少,對平臺并發(fā)量也沒啥要求
  • 另一方面,也是比較重要的原因,他們沒有買新服務器的預算,只會提供給我們一臺比較老的windows server服務器,用來部署平臺
  • 為了部署和運維方便,我們會將所有微服務和中間件,使用docker部署,使用docker-compose統(tǒng)一管理配置文件
  • 在windows機器上安裝virtualBox,在里面安裝CentOS7虛擬機,在虛擬機里部署平臺(數(shù)據(jù)庫也使用了docker部署)
  • 客戶是內網(wǎng)環(huán)境,后續(xù)更新部署時,主要是整理好部署包和更新腳本,當?shù)鼐S保配合更新。這時出現(xiàn)了一個問題,有時候需要修改表結構,當?shù)鼐S保人員不會操作(其實他們主要是使用平臺幫客戶干活,不是專業(yè)運維)
  • 現(xiàn)在需要在原有的程序更新腳本里,把數(shù)據(jù)庫結構更新過程放進去,使維保人員只需要執(zhí)行一個腳本即可完成更新
  • 對于一個生產(chǎn)環(huán)境,數(shù)據(jù)庫的備份策略是必要的,至少要做到每天備份一次。由于我們只有業(yè)務數(shù)據(jù)存儲在PostgreSQL,整體數(shù)據(jù)量不大,所以采用全量備份

數(shù)據(jù)庫維護

docker-compose配置

  • 首先放一下我們的PostgreSQL的docker-compose配置
  # 數(shù)據(jù)庫服務
  postgresql:
    image: postgres:14.2
    container_name: postgres
    ports:
      - 5432:5432
    volumes:
      - ./volumes/postgresql/:/var/lib/postgresql/data/
      - /etc/localtime:/etc/localtime
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=xxxxxxxx
      - POSTGRES_HOST_AUTH_METHOD=md5
      - TZ=Asia/Shanghai
    restart: always

  • 主要是需要把PostgreSQL數(shù)據(jù)庫存放數(shù)據(jù)的data目錄映射出來,其他都是通用配置,用戶名、密碼、密碼訪問、時區(qū)等
  • 數(shù)據(jù)目錄映射出來,也方便做數(shù)據(jù)的全量備份與恢復。

備份腳本

  • 可以使用定時任務,在每天凌晨直接對映射出來的文件夾,進行壓縮備份到其他目錄
  • 下面是備份腳本pg-backup.sh,只保留10天的備份,循環(huán)刪除最早的一天
#!/bin/bash
echo "======== start backup pg data ========"
# pg 數(shù)據(jù)目錄
pgdata=/home/signal/instance/volumes
target=/home/bak/pgbak
if [ ! -d $target ];then
    mkdir -p $target
else
    echo "文件夾已經(jīng)存在"
fi
# 當前日期
curDay=$(date "+%Y-%m-%d")
echo ${curDay}
# 保留文件數(shù)
ReservedNum=10
# 去pg 數(shù)據(jù)目錄,按日期壓縮到備份文件夾
cd $pgdata
tar -zcvf $target/postgresql-$curDay.tgz postgresql
# 刪除多余天數(shù)的壓縮文件
#*.tgz表示篩選文件類型,去掉則針對整個目錄的文件
cd $target
FileNum=$(ls -l  ./*.tgz |grep ^- |wc -l)
while(( FileNum > $ReservedNum))
do
	OldFile=$(ls -rt  ./*.tgz| head -1)
	rm -f $OldFile
	let "FileNum--"
done
echo "======== bakup pg data end ========"
  • 然后將腳本加入服務器定時執(zhí)行即可,可以直接使用crontab

更新表結構腳本

  • docker是可以執(zhí)行sh腳本的,使用docker exec 容器name/id /bin/sh -c "命令"即可
  • 在原有的程序更新腳本里,加入數(shù)據(jù)庫更新命令即可,具體命令如下:
echo "更新postgresql表結構"
docker exec postgres /bin/sh -c "sh /var/lib/postgresql/data/db_update.sh"
  • 其中/var/lib/postgresql/data/db_update.sh是數(shù)據(jù)庫更新腳本,使用psql 命令執(zhí)行SQL文件,具體如下:
#!/bin/bash
# 以postgres用戶 執(zhí)行此腳本 更新數(shù)據(jù)庫
echo 'update database'
psql -d core -U postgres -f /var/lib/postgresql/data/core_update.sql
sleep 1s
echo 'create update end'
exit
  • 其中/var/lib/postgresql/data/core_update.sql為具體的SQL文件
  • 由于/var/lib/postgresql/data文件夾已經(jīng)映射出來了,更新部署程序時,順便更新core_update.sql即可

到此這篇關于docker運行PostgreSQL數(shù)據(jù)庫維護執(zhí)行腳本備份數(shù)據(jù)庫與更新表結構的文章就介紹到這了,更多相關docker運行PostgreSQL數(shù)據(jù)庫內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 使用docker-compose,如何調整JVM參數(shù)

    使用docker-compose,如何調整JVM參數(shù)

    這篇文章主要介紹了使用docker-compose,如何調整JVM參數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Docker掛載/etc/timezone報錯問題

    Docker掛載/etc/timezone報錯問題

    這篇文章主要介紹了Docker掛載/etc/timezone報錯問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 優(yōu)化docker鏡像體積的方法詳解

    優(yōu)化docker鏡像體積的方法詳解

    鏡像的本質是鏡像層和運行配置文件組成的壓縮包,構建鏡像是通過運行 Dockerfile 中的 RUN 、COPY 和 ADD 等指令生成鏡像層和配置文件的過程,本文給大家介紹了如何優(yōu)化 docker 鏡像體積,需要的朋友可以參考下
    2025-03-03
  • 教你在docker?中搭建?PHP8?+?Apache?環(huán)境的過程

    教你在docker?中搭建?PHP8?+?Apache?環(huán)境的過程

    這篇文章主要介紹了docker中搭建?PHP8?+?Apache?環(huán)境,文章以安裝?pdo-mysql?擴展為例介紹php安裝擴展的詳細過程,需要的朋友可以參考下
    2022-03-03
  • 本地使用docker打包部署鏡像的方法

    本地使用docker打包部署鏡像的方法

    這篇文章主要介紹了本地使用docker打包部署鏡像的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Docker中搭建FastDFS文件系統(tǒng)(多圖教程)

    Docker中搭建FastDFS文件系統(tǒng)(多圖教程)

    這篇文章主要介紹了Docker中搭建FastDFS文件系統(tǒng)(多圖教程),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • 在docker中搭建部署clickhouse過程

    在docker中搭建部署clickhouse過程

    文章介紹了在Docker中部署ClickHouse并進行網(wǎng)關日志存儲的步驟,包括創(chuàng)建ClickHouse容器、修改用戶配置、使用DBeaver連接以及在Spring?Boot中集成ClickHouse進行讀寫操作
    2024-11-11
  • Docker 教程之鏡像創(chuàng)建及修改詳細介紹

    Docker 教程之鏡像創(chuàng)建及修改詳細介紹

    這篇文章主要介紹了Docker 教程之鏡像創(chuàng)建及修改詳細介紹的相關資料,需要的朋友可以參考下
    2016-12-12
  • 詳解mac下通過docker搭建LEMP環(huán)境

    詳解mac下通過docker搭建LEMP環(huán)境

    本篇文章主要介紹了詳解mac下通過docker搭建LEMP環(huán)境,詳細介紹了nginx,mysql,php的安裝配置,有興趣的可以來了解一下。
    2017-03-03
  • Dockerfile 中 VOLUME 與 docker -v 的區(qū)別說明

    Dockerfile 中 VOLUME 與 docker -v 的區(qū)別說明

    這篇文章主要介紹了Dockerfile 中 VOLUME 與 docker -v 的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03

最新評論

图木舒克市| 改则县| 千阳县| 鹿邑县| 金塔县| 成武县| 洞头县| 襄汾县| 盐池县| 玉龙| 莫力| 拉萨市| 连城县| 棋牌| 白水县| 固始县| 建德市| 嘉义市| 于田县| 浙江省| 固阳县| 通城县| 南投市| 南昌市| 志丹县| 兴隆县| 连州市| 玛沁县| 平陆县| 宜兴市| 义马市| 旌德县| 饶河县| 丰台区| 阳原县| 交城县| 广宗县| 清水县| 民勤县| 柳州市| 张家港市|