CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): swhan (foo bar)
날 짜 (Date): 2002년 7월 19일 금요일 오후 03시 09분 44초
제 목(Title): Re: [Q]MySQL DB 백업 방법??



n개를 하나로 모은다.. -.-a DB명 바꾸는게 관건이겠네요. 

주변에 제가 권한이 있는 mysql이 없어서 대충 찍어봅니다.

1.일단 데이터 양을 살펴봐야겠는데.. 데이터 양이 수메가 이내고 로컬 
넷이라면 
풀 백업이 어떨까 합니다. 
-일단 DB를  lock하고 
-data directory를 local에 copy 합니다. 
-unlock후 
-rsync로 remote push후 
-remote에 ssh로 update script실행.
    - backup서버에서는 받은 file의 dbname(directory name? -.-a 주변에 
MySQL이 없어서 확인 불가인데 directory이름하고 파일명ㅂ만 바꾸면 db명이 바뀌지 
않나요? 아님 말구 )을 바꾸고 
    - db stop
    - old files backup
    - new files push, 
    - db start

2. DB의 ISAM파일들 받은거로 DB명 바꾸는게 어렵다면..
-mysqldump로 통으로 dump,
-rsync/scp로 push
-ssh로 remote update script실행
   - dump된 sql문에서 DB명 일괄 변경.
   - old data삭제
   - dump파일 삽입. 

@ 위에 둘중에 어니쪽인지는 몰라도 mysqlhotcopy같은 명령도 있네요 :)

3.data양이 많다면.. 통 백업은 네떡 부하가 넘 많이 드니까..
incremental backup을 해야 할텐데.. table별로 script를 짤 순 없죠.
- 대신 각 DB를 log mode로 돌립니다.(sql update는 sql문으로 log를 남겨주는 
옵션도 있을겁니다.  없음 말구 -.-a : 찾아봤는데 있다는군요)
- 이걸 일별로 만들어서(mysql지원이든.. cron으로 돌리든) 
- rsync로 backup서버로 이전.  (scp도 좋지만.. 이건 혹시 하루치를 건너 뛸 
                               가능성도 있으니까. rsync가 더 좋겠네요.)
- backup 서버에서 새로운 log파일이 발견되면 
- (sed등 script로) db-name수정한 copy본 만들어서  
- db update. :)

4.상용 제품으로 incremental backup을 지원하는ㄱ 있긴 한데. 여러 서버의 
db를 
하나로 모아주는 기능이 있는지는 모르겠군요. :(
5.ABCD시스템의 DB명을 unique하게 쓰도록 모두 수정해두고, 
  replication기능으로 받는 방법 시도
6.replication기능 부분을 좀 수정해서 n개 master를 1개 slave에서 백업하도록  
받는 방법도 :p

저는 번호순으로 선호 :) (한두가지는 불가능한 방법일지도 모르지만.. ^^)
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.