docker環境下數據庫的備份(postgresql, mysql)

posgresql 備份/恢復<a id="sec-1"></a>

  1. 備份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 名稱
  2. 恢復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>

  1. 備份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}
  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

補充<a id="sec-3"></a>

postgresql 是備份全部數據庫的, mysql 是備份某一個數據庫.bash

相關文章
相關標籤/搜索