Docker安裝PostgreSQL及還原備份
安裝數據庫
#下載鏡像
docker pull postgres:9.6
##創建本地映射目錄
mkdir -p /mydata/postgresql/data
mkdir -p /mydata/postgresql14/data
#啟動
docker run --name postgres -e POSTGRES_PASSWORD=Ab@123456 -p 5432:5432 -v /mydata/postgresql/data:/var/lib/postgresql/data -d postgres:9.6
#啟動14.2版本
docker run --name postgres14 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=Ab@123456 -e POSTGRES_DB=postgres -p 54321:5432 -v /mydata/postgresql14/data:/var/lib/postgresql/data -d -it --privileged postgres:14
# 進入容器
docker exec -it postgres /bin/bash
# 進入文件夾
cd /usr/lib/postgresql/9.6/bin
# 進入postgresql,默認的postgres用戶
psql -Upostgres
數據庫備份還原
#備份,從其他服務器備份數據庫文件
pg_dump -h 172.22.24.139 -U postgres -p 5432 -F t -f /home/apiserver/postgres-data/ry-cloud20210601.tar ry-cloud
pg_dump -h 172.22.24.139 -U postgres -p 5432 -F t -f /home/apiserver/postgres-data/ry-config20210601.tar ry-config
#將數據文件放到待還原服務器的掛載目錄下
/mydata/postgresql/data/backupfile
#進入容器
docker exec -it postgres /bin/bash
#還原,首先創建空的待還原的數據庫,之后進行還原的操作,執行的目錄為容器內部的目錄
nohup pg_restore -h 192.168.80.77 -U postgres -d ry-cloud-test /var/lib/postgresql/data/backupfile/ry-cloud20210601.tar
nohup pg_restore -h 192.168.80.77 -U postgres -d ry-config-test /var/lib/postgresql/data/backupfile/ry-config20210601.tar
#查看還原信息
tail-f nohup.out
實例
#備份數據庫
pg_dump -h deviceon-2-dev-linux.southeastasia.cloudapp.azure.com -U postgres -p 5432 -F t -f /opt/deviceon/db/deviceon220220513.tar deviceon2
pg_dump -h deviceon-2-dev-linux.southeastasia.cloudapp.azure.com -U postgres -p 5432 -F t -f /opt/deviceon/db/nacos220220513.tar nacos
#安裝啟動數據庫
docker pull postgres:14.2
mkdir -p /mydata/postgresql14/data
docker run --name postgres14 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=Ab@123456 -e POSTGRES_DB=postgres -p 54321:5432 -v /mydata/postgresql14/data:/var/lib/postgresql/data -d -it --privileged postgres:14
#還原數據庫
將數據庫文件放到 /mydata/postgresql14/data/backupfile/下
docker exec -it postgres14 /bin/bash
nohup pg_restore -h 192.168.80.77 -U postgres -p 54321 -d deviceon2 /var/lib/postgresql/data/backupfile/deviceon220220513.tar
nohup pg_restore -h 192.168.80.77 -U postgres -p 54321 -d deviceon2-nacos /var/lib/postgresql/data/backupfile/nacos220220513.tar