posgresql 備份/恢復<a id="sec-1"></a>
-
備份mysql
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 名稱
-
恢復sql
docker cp ${BACK_DATA} pg-db:/tmp docker exec pg-db psql -U postgres -f /tmp/${BACK_DATA} postgres
mysql 備份/恢復<a id="sec-2"></a>
-
備份docker
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
補充<a id="sec-3"></a>
postgresql 是備份全部數據庫的, mysql 是備份某一個數據庫.bash