본문 바로가기

데이터베이스3

MySQL(MariaDB) Replication with JPA summary 개요 복제(Replication)는 한 서버에서 다른 서버로 데이터가 동기화 되는 것을 말하며, 원본 데이터를 가진 서버를 소스(Source/Master) 서버, 복제된 데이터를 가지는 서버를 레플리카(Replica/Slave) 서버라고 부른다. 소스 서버에서 데이터 및 스키마에 대한 변경이 최초로 발생하며, 레플리카 서버에서는 이러한 변경 내역을 소스 서버로부터 전달 받아 자기 데이터에 반영한다. 복제에는 여러가지 목적이 존재한다. 스케일 아웃: 서버 분리로 트래픽도 분산 시킨다. 데이터 백업: 레플리카 서버를 이용해 백업한다. 데이터 분석: 분석용 쿼리만 별도로 실행되는 서버(DB) 구축이 가능하다. 데이터의 지리적(물리적) 분산: 물리적 거리만큼의 통신속도를 개선할 수 있다. 복제 아.. 2021. 10. 23.
도커 위의 DBMS를 로컬로 마이그레이션 하기 이전에 로컬에서 잘 돌아가고 있는 데이터베이스를 굳이 도커 위로 마이그레이션 시킨 경험이 있었다. 그 후로 큰 이슈 없이 서비스가 잘 동작했기 때문에 도커 위에 데이터베이스를 운영하는 것에 만족하고 있었는데, 얼마전 브라운이 초청해주신 홍정민 DBA님의 특별 강연에서 DBA님이 도커 위에 데이터베이스를 운영하는 것에 대해 부정적인 말씀을 하셔서, 질문을 드리고 답변을 받게 되었다. 그리고 답변 받은 내용을 베이스로 확신을 얻어서 도커 위에 올렸던 데이터베이스를 다시 로컬로 내려보았다! 도커에서 사용중인 데이터베이스 덤프 백업하기 도커에서 동작하고 있는 데이터베이스를 덤프로 추출하여 백업한다. 도커 컨테이너의 bash로 접속한 다음, mysqldump 명령어를 통해 덤핑한다. $ sudo docker ex.. 2021. 10. 6.
로컬 DB 도커로 마이그레이션 하기 summary "영속성을 가져야할 클라이언 데이터를 도커 위에서 관리한다고?" 라는 생각 때문에 데이터베이스만큼은 절대로 도커 위에 올려선 안되고, EC2 인스턴스 로컬에 설치해서 관리해야한다는 일종의 신념을 가지고 있었다. 그런데 얼마 전 다라쓰 팀이 디비를 도커 위에 올린 것을 보고 '왜 저런 선택을 했을까?' 생각하면서 도커 위의 데이터베이스가 어떻게 동작되는지를 찾아보았다. 도커 컨테이너에서 동작하는 데이터베이스는 클라이언트의 데이터까지 컨테이너 위에서 보관하는 것이 아니라, 볼륨을 이용해서 로컬에 클라이언트의 데이터를 저장하고, DBMS 관련 설정 값들만 컨테이너에서 관리하고 있었다. 이렇게 동작하는 경우 클라이언트 데이터의 영속성은 로컬 DB를 사용하는 것과 동일하게 지킬 수 있고, 오히려 D.. 2021. 7. 26.