數(shù)據(jù)庫是以一定方式儲存在一起、能與多個(gè)用戶共享、具有盡可能小的冗余度、與應(yīng)用程序彼此獨(dú)立的數(shù)據(jù)集合。為提升數(shù)據(jù)庫安全性,數(shù)據(jù)庫管理員應(yīng)針對具體的業(yè)務(wù)要求制定詳細(xì)的數(shù)據(jù)庫備份與災(zāi)難恢復(fù)策略,并通過模擬故障對每種可能的情況進(jìn)行嚴(yán)格測試,只有這樣才能保證數(shù)據(jù)的高可用性。
主要介紹docker環(huán)境下數(shù)據(jù)庫的備份(postgresql, mysql),需要的朋友可以參考下
posgresql 備份/恢復(fù)
1.備份
date=`date +%y%m%d-%h%m`
back_data=xxapp-data-${date}.out # 這里設(shè)置備份文件的名字, 加入日期是為了防止重復(fù)
docker exec pg-db pg_dumpall -u postgres > ${back_data} # pg-db 是數(shù)據(jù)庫的 docker 名稱2.恢復(fù)
docker cp ${back_data} pg-db:/tmp
docker exec pg-db psql -u postgres -f /tmp/${back_data} postgresmysql 備份/恢復(fù)
1.備份
date=`date +%y%m%d-%h%m`
back_data=xxapp-data-${date}.sql
# mysql-db 是數(shù)據(jù)庫的 docker 名稱, xxxpwd 是 root 用戶密碼, app-db 是要備份的數(shù)據(jù)名稱
docker exec mysql-db mysqldump -uroot -pxxxpwd --databases app-db > ${back_data}2.恢復(fù) 下面的 ${back_data} 要替換成實(shí)際生成的文件名稱
docker cp ${back_data} mysql-db:/tmp
docker exec -it mysql-db mysql -uroot -pxxxpwd
mysql> source /tmp/${back_data}.sql
mysql> \q
bye補(bǔ)充
postgresql 是備份所有數(shù)據(jù)庫的, mysql 是備份某一個(gè)數(shù)據(jù)庫.