"posgresql 備份/恢復" "mysql 備份/恢復" "補充" posgresql 備份/恢復 1. 備份 bash DATE= BACK_DATA=xxapp data ${DATE}.out 這裡設置備份文件的名字, 加入日期是為了防止重覆 docker exec pg db pg_d ...
posgresql 備份/恢復
備份
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 名稱
恢復
docker cp ${BACK_DATA} pg-db:/tmp docker exec pg-db psql -U postgres -f /tmp/${BACK_DATA} postgres
mysql 備份/恢復
備份
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}
恢復 下麵的 ${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 是備份某一個資料庫.