• postgresql 和 mysql 数据库备份恢复以及时区问题


    概要

    postgresql 和 mysql 是最常用的 2 种开源关系数据库, 很多项目也会优先选用这 2 种数据库.

    通过 docker 来使用这 2 种数据库的时候, 部署非常方便, 没什么好说的. 这里简单总结下数据库的备份/恢复和时区设置问题.

    postgesql 12

    备份/恢复脚本

    1  DOCKER_CONTAINER=pg12
    2  DATE=`date +%Y%m%d-%H%M`
    3  BACK_DATA=${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=${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 数据库备份恢复以及时区问题

  • 相关阅读:
    Chrome扩展开发之一——Chrome扩展的文件结构
    Chrome扩展开发(Gmail附件管理助手)系列之〇——概述
    Springfox与swagger的整合使用
    Maven的简单使用
    关于接口功能自动化的思考
    发版流程优化备忘录
    Aho-Corasick 自动机 学习笔记
    Luogu P1495 曹冲养猪
    Luogu P2670 【扫雷游戏】
    1.1 整除
  • 原文地址:https://www.cnblogs.com/wang_yb/p/13524425.html
Copyright © 2020-2023  润新知