欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

docker环境下数据库的备份(postgresql, mysql)

程序员文章站 2022-07-29 23:07:51
"posgresql 备份/恢复" "mysql 备份/恢复" "补充" posgresql 备份/恢复 1. 备份 bash DATE= BACK_DATA=xxapp data ${DATE}.out 这里设置备份文件的名字, 加入日期是为了防止重复 docker exec pg db pg_d ......

posgresql 备份/恢复

  1. 备份

    date=`date +%y%m%d-%h%m`
    back_data=xxapp-data-${date}.out  # 这里设置备份文件的名字, 加入日期是为了防止重复
    docker exec pg-db pg_dumpall -u postgres > ${back_data} # pg-db 是数据库的 docker 名称 
  2. 恢复

    docker cp ${back_data} pg-db:/tmp
    docker exec pg-db psql -u postgres -f /tmp/${back_data} postgres

mysql 备份/恢复

  1. 备份

    date=`date +%y%m%d-%h%m`
    back_data=xxapp-data-${date}.sql
    # mysql-db 是数据库的 docker 名称, xxxpwd 是 root 用户密码, app-db 是要备份的数据名称
    docker exec mysql-db mysqldump  -uroot -pxxxpwd --databases app-db > ${back_data}
  2. 恢复 下面的 ${back_data} 要替换成实际生成的文件名称

    docker cp ${back_data} mysql-db:/tmp 
    docker exec -it mysql-db mysql -uroot -pxxxpwd 
    mysql> source /tmp/${back_data}.sql
    mysql> \q
    bye

补充

postgresql 是备份所有数据库的, mysql 是备份某一个数据库.