- 概要
- postgesql 12
- 備份/恢復腳本
- 時區設定
- mysql 5.6
- 備份/恢復腳本
- 時區設定
概要
postgresql 和 mysql 是最常用的 2 種開源關系資料庫, 很多專案也會優先選用這 2 種資料庫.
通過 docker 來使用這 2 種資料庫的時候, 部署非常方便, 沒什么好說的. 這里簡單總結下資料庫的備份/恢復和時區設定問題.
postgesql 12
備份/恢復腳本
1 DOCKER_CONTAINER=pg12
2 DATE=`date +%Y%m%d-%H%M`
3 BACK_DATA=https://www.cnblogs.com/wang_yb/p/${DOCKER_CONTAINER}-data-${DATE}.out
4 docker exec ${DOCKER_CONTAINER} pg_dumpall -U postgres > ${BACK_DATA}
5
6 echo "docker cp ${BACK_DATA} ${DOCKER_CONTAINER}:/tmp" > restore-data.sh
7 echo "docker exec ${DOCKER_CONTAINER} psql -U postgres -f /tmp/${BACK_DATA} postgres" >> restore-data.sh
其中 DOCKER_CONTAINER 可以配置成自己的資料庫 docker 的名稱 備份之后, 會生成對應的恢復腳本.
時區設定
docker 中的資料庫默認都是配置的 UTC 時區, 和中國差 8 個小時. 通過修改組態檔, 可以將默認時區改成中國的時區.
把 docker 中 /var/lib/postgresql/data/postgresql.conf 檔案拷貝出來, 并修改如下 2 條:
log_timezone = 'PRC'
timezone = 'PRC'
啟動的 docker-compose.yml 中, 加上對應 volume 配置:
services:
postgres:
image: postgres:12
restart: always
ports:
- "5432:5432"
volumes:
- db_data:/var/lib/postgresql/data
- ./postgresql.conf:/var/lib/postgresql/data/postgresql.conf
environment:
POSTGRES_PASSWORD: mypassword
mysql 5.6
備份/恢復腳本
1 DOCKER_CONTAINER=mysqldb
2 DB_NAME=db1
3 DATE=`date +%Y%m%d-%H%M`
4 BACK_DATA=https://www.cnblogs.com/wang_yb/p/${DOCKER_CONTAINER}-${DB_NAME}-${DATE}.sql
5 docker exec ${DOCKER_CONTAINER} mysqldump -uroot -pxxx --databases ${DB_NAME} > ${BACK_DATA}
6
7 echo "docker cp ${BACK_DATA} ${DOCKER_CONTAINER}:/tmp" > restore-data.sh
8 echo "docker exec ${DOCKER_CONTAINER} mysql -uroot -pxxx -D ${DB_NAME} < /tmp/${BACK_DATA}" >> restore-data.sh
其中 DOCKER_CONTAINER 可以配置成自己的資料庫 docker 的名稱 DB_NAME 可以配置需要備份的資料庫名稱 備份之后, 會生成對應的恢復腳本.
時區設定
mysql 的時區配置比較簡單, 可以不改組態檔, 在 docker-compose.yml 中做如下修改就行:
mysql-db:
image: mysql:5.7
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: mypassword
volumes:
- /usr/share/zoneinfo/Asia/Shanghai:/usr/share/zoneinfo/Asia/Shanghai
postgresql 和 mysql 資料庫備份恢復以及時區問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/1172.html
標籤:PostgreSQL
上一篇:postgresql中的咨詢鎖(advisory lock)
下一篇:PostgreSQL的資料型別
