RedHat Openstack 13/16 에서 컨테이너로 동작중인 Database의 백업하는 방법에 대해 설명한다.
아래 작업은 컨트롤러 노드
에 접속해서 수행한다.
$ galera_id=$(sudo docker ps --filter name=galera --format="{{.ID}}") $ sudo docker exec ${galera_id} mysqldump --all-databases --single-transaction --extended-insert=FALSE | gzip -9 > mysql-all-$HOSTNAME-$(date +%F_%H%M%S).sql.gz
sudo podman exec $(sudo podman ps -f name=galera -q) mysqldump --all-databases --single-transaction --extended-insert=FALSE | gzip -9 > mysql-all-$HOSTNAME-$(date +%F_%H%M%S).sql.gz
백업파일은 컨트롤러 노드에 생성됨
특정 테이블만 백업받는 경우
$ galera_id=$(sudo docker ps | grep galera | awk '{ print $1 }') $ sudo docker exec ${galera_id} mysqldump --single-transaction --extended-insert=FALSE nova > nova-$HOSTNAME-$(date +%F_%H%M%S).sql.gz $ sudo docker exec ${galera_id} mysqldump --single-transaction --extended-insert=FALSE nova_api > nova_api-$HOSTNAME-$(date +%F_%H%M%S).sql.gz