'백업'에 해당하는 글 2건

기존 네이버 Sync App이라고 해서 후딱 만들어서 내 놓았던 서비스가 업그레이드 되어서 나왔다.
기존 관련된 포스팅은 아래 포스팅을 참고하면 된다.
2010/03/12 - [Program?/News] - 네이버 주소록 iPhone용 Sync 어플리케이션이 나왔습니다.

사실 기존 App은 아주 많이 부족한 점이 많아서 사람들로부터 욕도 많이 들어먹었지만...
이번에는 정말 아주 많은 부분을 보완해서 출시하였다.
뭐 그래도 아직 부족한 점도 많고, 그래도 사람들이 많이 욕하고 할테지만 ^^
어째든 기존에 지원 안되는 필드들도 대부분 지원된다는 것 하나만으로도 만족한다.

하지만 중요한건 이번에도 그리 개발기간이 넉넉하지 않았다는 거 ㅎㅎ

어째거나 저째거나... 사람들이 쓰면서 만족하면서 사용하고 소중한 주소록 정보가 날라가는 일이 없길 바래 본다. ^^

아래는 App Store에 올라온 주소록 백업 App 스냅샷!!!



신고

WRITTEN BY
체리필터
프로그램 그리고 인생...

받은 트랙백이 없고 , 댓글  2개가 달렸습니다.
  1. 앗 저도 이 어플을 사용하고 있는데 네이버에서 제공되는 어플들이 전반적으로 유용한게 많은거 같아요 최근 엔드라이브도 사용하기 시작했는데 오오오 좋더라구요 [참고로 네이버 어플 홍보 알바 아닙니다]
    • 아 넵 ^^
      사실 전 어플이 아니라 서버쪽 담당했었거든요.
      그리고 iPhone 아직도 없습니다. ㅎㅎ
      4G 지금 예약들어가 있는데 4G 쓸려고 3GS 안쓰고 기다렸다는 ㅎㅎ
      App 잘 쓰시고 도움 많이 되시길 바랄께요 ㅎㅎ
secret
요즘은 MySQL Replication 기능을 이용해서 DB System을 구축하는 경우가 많다. 또한 MySQL DB를 사용하면서 백업은 보통 Replication Slave 단에 있는 백업 Server에서 별도로 받게 된다.
백업 서버에서 Dump로 받게 된 Data는 DML 쿼리로 된 text data이며, 이 데이터를 이용해서 신규 장비를 설치하던가, 아니면 기존 장비에 문제가 생겼을 시 복구를 하게 된다.

보통의 MySQL Replication 구성

보통의 MySQL Replication 구성


그런데 복구를 하더라도 Replication이란 문제로 인해 Master DB와 싱크를 맞추는 문제가 발생하게 된다.
따라서 백업 서버에서 백업을 받게 되는 경우, Master DB의 binary log의 포지션을 알아야지만 된다.
이럴 경우에는 다음과 같은 절차를 따라서 Dump를 받으면 된다.

/usr/local/mysql/bin/mysqldump -uroot -p --master-data=2  > /data/…/backup.sql

이 명령어 중에서 "--master-data=2" 옵션을 주게 되면 덤프 시점의 binary log의 포지션 정보가 같이 Dump 되게 된다.
Dump된 파일을 에디터로 열어보면 다음과 같은 내용이 나온다.

CHANGE MASTER TO MASTER_LOG_FILE='binary파일', MASTER_LOG_POS=포지션번호;

위 말은 binary파일의 포지션 번호 시점에서 백입이 이루어 졌다는 의미이다.
물론 binary 파일과 포지션은 복구하기 위한 중요한 내용이 되겠지만, 위와 같은 구성에서 복구를 하기 위해서는 조금 애매 보호한 감이 있다.
가령, Backup DB에서 Dump받은 파일을 Slave DB를 복구하기 위해 사용한다던가, 아니면 신규 Slave 장비가 와서 새로운 시스템을 구축할 시에는 Backup DB의 binary 파일명과 포지션은 별로 소용이 없기 때문이다.
따라서 이럴 때에는 다음과 같은 절차로 Master DB의 binary 파일과 포지션을 알아낼 수 있다.

1. Backup DB에서 포지션이 속한 바이너리 로그를 sql 파일로 export 한다. 사용 툴은 mysqlbinlog이다.

/usr/local/mysql/bin/mysqlbinlog --start-datetime="2008-12-15 02:00:00" --stop-datetime='2008-12-15 02:30:00' /data/mysql_data/binary파일 > binlog.sql

2. Master DB에서도 위 방법대로 바이너리 로그를 sql 파일로 export 한다.

/usr/local/mysql/bin/mysqlbinlog --start-datetime="2008-12-15 02:00:00" --stop-datetime='2008-12-15 02:30:00' /data/mysql_data/binary파일 > binlog.sql

3. Backup DB에서 export한 sql 파일을 에디터로 열어서 확인해 본다.

# at 576856551
#060824  2:18:30 server id 1  log_pos 576856551     Intvar
SET INSERT_ID=136;
# at 576856579
#060824  2:18:30 server id 1  log_pos 576856579     Query   thread_id=16587969  exec_time=16157 error_code=0
SET TIMESTAMP=1156353510;

...

# at 576856919

최초에 Backup DB에서 Dump받은 파일에 기록된 포지션 정보를 찾는다.

4. Master DB에서 export 한 sql 파일을 에디터로 열어서 동일한 포지션을 찾는다.

# at 576375776
#060824  2:18:30 server id 1  log_pos 576375776         Intvar
SET INSERT_ID=136;
# at 576375804
#060824  2:18:30 server id 1  log_pos 576375804         Query   thread_id=16587969      exec_time=0     error_code=0
SET TIMESTAMP=1156353510;


Backup DB에서 해당 포지션에 기록된 TIMESTAMP값과 동일한 정보를 Master DB에서 export한 sql 파일에서 찾는다.
위의 경우에는 576375776이 포지션 번호가 된다.

5. 최초에 Dump 받은 Dump Data의 바이너리 파일과 포지션을 수정해 준다.

CHANGE MASTER TO MASTER_LOG_FILE='마스터DB의 binary파일', MASTER_LOG_POS=576375776;

위와 같이 되었다면, Dump 받은 파일은 언제라도 Master DB에 붙여서 replication을 동기화 시킬 수 있는 준비가 된 상태이다.
만일 새로운 장비를 들여와서 Dump Data로 복구를 했다면, 위 명령어를 내린 후 slave를 start 시키면, Master DB의 해당 포지션 부터 sync를 맞춰가기 시작한다.
Master DB의 포지션을 모두 다 따라갔다고 판단되면 Slave DB를 서비스에 투입시키면 끝이다.




신고

'Server > DB' 카테고리의 다른 글

MySQL Replication  (0) 2013.05.15
MySQL Erro Code 28이 리턴되는 경우  (2) 2009.04.08
MySQL의 백업 및 복구  (2) 2008.12.15
MySQL에서 대소문자 구별해서 쿼리하기  (0) 2007.05.15
Z와 S의 차이...  (2) 2007.02.14
MySQL에서 변수의 사용...  (2) 2006.12.18

WRITTEN BY
체리필터
프로그램 그리고 인생...

받은 트랙백이 없고 , 댓글  2개가 달렸습니다.
  1. 좋은글 출처를 표시하고 블로그에 담아갑니다. ^^
  2. 좋은글 잘 보고 갑니다. ^^
    블로그에 퍼가겠습니다. 당연히 출처도 표시합니다.
    감사합니다.
secret