Docker에서 복제를 사용하는 MariaDB

4857 단어 bashsqldockertutorial
이 블로그에서는 Docker 컨테이너에서 실행되는 MariaDB 데이터베이스를 복제하는 방법을 시연할 것입니다.

다음을 통해 환경을 자동으로 배포합니다.

이 저장소를 복제한 후 deploy_config.sh 실행


나방이 / MariaDB 인 도커


Docker에서 복제 모니터링을 사용하는 SQL Database 클러스터 배포





MariaDB 인 도커


상태 모니터링을 통한 mariadb 컨테이너 마스터-슬레이브 복제

다음을 통해 환경을 자동으로 배포합니다.


Repo를 서버에 복제한 후 deploy_config.sh를 실행합니다.

환경 준비 및 수동 배포


sudo apt update

아직 설치되지 않은 경우 Docker 엔진 설치


sudo apt-get remove docker docker-engine docker.io

sudo apt install docker.io

sudo systemctl start docker

sudo systemctl enable docker

즉시 적용되지 않는 경우 사용자 권한을 활성화하려면 로그아웃한 다음 다시 로그인하십시오.


sudo groupadd docker

sudo gpasswd -a "${USER}" docker

usermod -aG docker "${USER}"

마운트할 데이터베이스 영구 볼륨 생성


mkdir -p /opt/mariadb/master-data

권한 부여


sudo chown -R 1001:1001 /opt/mariadb/master-data/
분리 모드에서 컨테이너를 실행하지만 "-d"를 제거하면 컨테이너에서 실행 중인 구성을 디버깅하는 데 도움이 될 수 있습니다!
docker run -d or docker-compose up -d 

컨테이너에 로그인하려면


docker exec -it $container_id bash

마리아디비


$ mysql -u my_user -p
  #my_password

로그인 후 데이터베이스 확인




View on GitHub


환경 준비 및 수동 배포

sudo apt update


아직 설치되지 않은 경우 Docker 엔진 설치

sudo apt-get remove docker docker-engine docker.io

sudo apt install docker.io

sudo systemctl start docker

sudo systemctl enable docker


즉시 적용되지 않는 경우 사용자 권한을 활성화하려면 로그아웃한 다음 다시 로그인하십시오.

sudo groupadd docker

sudo gpasswd -a "${USER}" docker

usermod -aG docker "${USER}"


마운트할 데이터베이스 영구 볼륨 생성

mkdir -p /opt/mariadb/master-data


권한 부여

sudo chown -R 1001:1001 /opt/mariadb/master-data/


분리 모드에서 컨테이너를 실행하지만 "-d"를 제거하면 컨테이너에서 실행 중인 구성을 디버깅하는 데 도움이 될 수 있습니다!

docker run -d or docker-compose up -d 


컨테이너에 로그인하려면

docker exec -it $container_id bash


마리아드브

$ mysql -u my_user -p
  #my_password



로그인 후 데이터베이스 확인

show databases;
use my_databse;


그런 다음 거기에 테이블 양식을 만듭니다.

exit;


복제 확인 또는 구성

루트로 로그인

$ mysql -u root -p
  #master_root_password


그 다음에

show master status;


가져오려면:

docker exec -i adprcc3ms_mariadb-master_1 mysql -uroot -pmaster_root_password my_database < mariadb-master-dump.sql


내보내려면:

docker exec -i adprcc3ms_mariadb-master_1 mysqldump -uroot -pmaster_root_password my_database > mariadb-master-dump.sql



현재 실행 중인 컨테이너를 중지하고 백업합니다. 다음 줄의 주석을 제거합니다.

docker stop $container_id



rsync -a /opt/mariadb/master-data /opt/mariadb/master-data.bkp.$(date +%Y%m%d-%H.%M.%S)


슬레이브 수를 늘리거나 줄이려는 경우

docker-compose up --detach --scale mariadb-master=1 --scale mariadb-slave=3


청소하려면

docker stop $container_id

docker rm $container_id


다음을 사용하여 모든 이미지와 중지된 컨테이너를 제거할 수도 있습니다.

docker prune -a


다음을 실행하여 정의한 cronjob이 실제로 실행되는지 확인합니다.

sudo grep CRON /var/log/syslog


짜잔...!!!

좋은 웹페이지 즐겨찾기