[포스팅큐레이션, 개발이야기#065] MySQL 데이터베이스를 이관해보자. - 이관 전략
안녕하세요 가야태자 @talkit 입니다.
지난 번 글까지 해서 Ubuntu를 설치한 IaaS에서 MySQLIaaS로 접속이 가능하도록 했습니다.
관련글
[포스팅큐레이션, 클라우드이야기#008] Oracle 클라우드 - 데이터베이스에 접속해보자. — Steemit
데이버베이스 이관
데이터베이스 이관 업무는 DB 서버가 고장나거나 확장이 필요할 때 데이터베이스를 다른 서버로 옮기는 것을 말 합니다.
우선 첫번째로 고장났을 경우는 백업데이터를 이관하는 방법 밖에는 방법이 없습니다.
그리고, 프로그램을 사용해야 하는 이관은 이관용 프로그램을 작성해야한다는 문제가 있습니다.
서버 중단 없이 이관하기도 있습니다. 두번째 방법을 사용하면 서버 중단 없이 관이 가능 합니다.
하지만, 어플리케이션을 붙일때는 어쩔 수 없이 새 DB서버로 변환해야해서 약간이라도 순단이 발생할 수 밖에 없습니다.
이관 방법
데이터 백업 후 이관
데이버베이스 백업 명령어를 이용해서 데이터베이슬 백업하고 해당 백업 파일을 Oracle IaaS에 올린 다음에 다시 실행하는 방법입니다.
mysqldump
위 명령어를 이용해서 기존 서버의 MySQL의 데이터를 전부 백업 합니다.
mysql
위 명령어를 이용해서 새로운 서버에서 데이터를 로드 합니다.
이 방법으로 진행하려고 합니다. 그래서 상세 내용은 다음 글에서 실제로 해보면서 알려 드리겠습니다.
기존 서버와 방화벽을 연결하고 프로그램을 통해서 이관
IaaS 서버에 새 MySQL 서버와 기존 MySQL 서버에 방화벽을 해제 해 줍니다.
그리고 그야말로 개발자가 작성한 프로그램을 이용해서 이관을 수행 합니다.
범주를 조금 나누면 비실시간 이관 방법과 준실시간 이관 방법이 있씁니다.
비실시간 이관
python, Java, node js 같은 프로그램으로 실제로 프로그램을 작성 합니다. ^^
기존 서버를 읽어서 새 서버에 인서트를 진행 합니다.
이때 한번에 실행 합니다.
준실시간 이관
Oracle은 OGG라는 준실시간 백업 프로그램이 있습니다. Oracle Golden Gate라고 부릅니다. ^^
MySQL은 제가 상용제품을 잘 안써서 잘 모르겠습니다만, Kafka라는 소프트웨어를 이용하면 OGG같이 구현 할 수 있습니다.
Kafka의 Source Connector와 Sink Connector를 이용해서 비슷하게 구현 가능 합니다.
맺음말
오늘은 이관을 어떻게 할건지를 고민 해봤습니다.
Kafka를 이용한 준실시간 백업은 반대로 사용해볼 생각입니다.
제 프로그램의 특성상 글 수집하고 수집한 글을 분석해서 모음글을 발행하고, 보팅을 수행하는 프로그램이 주인데
글을 수집하고 분석하는 분석기야 스팀이라는 메인 시스템이 그대로 살아 있어서 ^^ 상관이 없습니다. 하지만, 보팅을 했다 안했다 표시하는 테이블이 있는데 이 테이블은 백업이 필요 합니다. ^^
그래서 Kafka를 저부분에 활용해볼 계획입니다.
조금 다른 곳으로 갔다가 왔는데 ^^
이번에 MySQL 백업 방법은
수집프로그램 보팅 프로그램을 하루 종료 합니다.
그리고, 기존 MySQL서버에서 백업을 진행하고 해당 파일을 신규 서버로 이전 후 로드하는 전통적인 방법으로 진행 하겠습니다.
감사합니다.
Posted through the ECblog app (https://blog.etain.club)
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.
Upvoted! Thank you for supporting witness @jswit.