database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Tutorials 12749 게시물 읽기
No. 12749
MySQL 에서 Replication 이용하기
작성자
정재익(advance)
작성일
2001-10-06 22:56
조회수
10,925

MySQL 실시간 복제[Replication기능] V.0.1

 

원본 출처 : http://www.apmtim.com

 

이글은 장성윤님 홈페이지에서 소리 소문없이 훔쳐 온 것입니다. 많은 분들께 도움이 될 것 같아서 올려 둡니다. 물론 비슷한 글이 QnA 게시판에 보시면 있습니다만 따로 정리된 것이 좋겠지요. :-)

 

 

MySQL 실시간 복제[Replication기능] V.0.1

 

글쓴날 : 2001년 9월 12일

글쓴이 : 장성윤

( http://www.apmtip.com http://www.techcenter.pe.kr )

최종수정 : 2001년 9월 17일

제목을 수정하였습니다.

Replication을 하기 위해서 항상 최신의 버젼을 유지할 것을 권고한다.

참고자료:

http://mysql.com/documentation/mysql/full/manual_toc.html#Replication

 

먼저 나의 테스트 환경은 이렇다

 

======================

master -- 와우 리눅스 7.1 paran

메모리 : 196

MySQL버젼 : 3.23.41

 

slave -- 원도2000

메모리 : 256

MySQL버젼 : 3.23.41

======================

master는 실제로 디비에 내용이 기록되는 호스트이고 , slave는 master 바이너리 로그를 사용해서

해당 디비를 갱신하게 된다.

테스트는 리눅스를 master로 하였고, 원도 mysql을 slave로 하였다.

 

 

먼저 호스트에 설치된 mysql의 디렉으로 가서 ./share/mysql방을 찾는다

======================================================================

-rw-r--r-- 1 root root 2538 Sep 11 14:47 my-huge.cnf

-rw-r--r-- 1 root root 2516 Sep 11 14:47 my-large.cnf

-rw-r--r-- 1 root root 2500 Sep 11 14:47 my-medium.cnf

-rw-r--r-- 1 root root 2215 Sep 11 14:47 my-small.cnf

======================================================================

위와 같은 파일이 있을 것이다.

해당 파일을 열어보면 맨 상단에 메모리사양이 나온다.하지만 나의 친절함으로 알아보자----(:

 

====================================================================

파일명 설명

my-huge.cnf 메모리가 1G-2G사이일때 사용한다.

my-large.cnf 메모리가 512M일때 사용한다.

my-medium.cnf 메모리가 64~256M사이일때 사용한다.(필자는 이것을 사용)

my-small.cnf 메모리가 64M 보다 작을때 사용한다.

====================================================================

위에서 설명은 필자의 생각인 것이다.자신의 메모리가 해당이 않되면 알아서 판단하길 바란다.

 

일단 my-medium.cnf를 사용하기로 판단을 하고 /etc/my.cnf파일로 복사를 한다.

현재상태는 mysql데몬이 떠있는 상태이며, master설정부분이다.

 

vi /etc/my.cnf해서 열어서 [mysqld]부분을 보자

 

==================================vi /etc/my.cnf==========================================

# Example mysql config file for medium systems.

#

# This is for a system with little memory (32M - 64M) where MySQL plays

# a important part and systems up to 128M very MySQL is used together with

# other programs (like a web server)

# The following options will be passed to all MySQL clients

 

중략......................

 

# The MySQL server

[mysqld]

port = 3306

socket = /tmp/mysql.sock

skip-locking

set-variable = key_buffer=16M

set-variable = max_allowed_packet=1M

set-variable = table_cache=64

set-variable = sort_buffer=512K

set-variable = net_buffer_length=8K

set-variable = myisam_sort_buffer_size=8M

>>>log-bin = /usr/local/mysql/logs/replication.log <--바이너리 로그파일

>>>binlog-do-db = test <---(디비명)

>>>binlog-do-db = edu <---(디비명)

>>>server-id = 1 <---Replication통신할 서버 아이디

 

이하 생략..................

==================================================================================

자세히 보면 자신의 my.cnf파일과 다른 부분이 >>>표시로 되어 있을 것이다.

그렇다. >>>부분의 설정으로 master부분은 끝난다.각각의 설정에 대해 알아보자

log-bin 이것은 바이너리 로그가 생성될 경로를 기록해 준다.

binlog-do-db 실시간 백업할 디비

server-id 서버 unique 한 번호(이것은 1 ~ 2^23-1까지 된다고 나와있다)

 

그리고 위에서 보듯이 binlog-do-db할 디비는 원하는만큼 설정이 가능하다.

 

그러면 slave인 원도에서 설정을 해 보자.(물론 다른 리눅스 박스를 slave로 설정하는 부분도 거의 동일하다

단지 원도와 리눅스라는 차이점이 있을 뿐이다)

mysql이 정상적으로 설치가 되었다면, WinMySQLadmin을 활성화 한다.

다음과 같이 한다.

시작 > 실행 > 찾아보기 > C:\ysql\in\inmysqladmin.exe 을 선택하고 실행하면 WinMySQLadmin이 활성화 된다.

 

그러면 오른쪽 아래 부분에 신호등 표시로 나타난다. 이것을 클릭해서 show me하게되면 WinMySQLadmin이 나타나는데

여러 탭이 있을 것인데 여기서 my.ini Setup 탭을 선택한다.

참고로 리눅스에선 my.cnf이지만 윈도 에서는 my.ini파일이다. 이것은 mysql을 설치하면 WINNT방에 생성된다.

그러면 아까 master설정하고 동인한 부분이 보일것이다.

 

===============================win my.ini설정파일================================

#This File was made using the WinMySQLAdmin 1.3 Tool

#2001-09-11 오후 12:37:06

 

#Uncomment or Add only the keys that you know how works.

#Read the MySQL Manual for instructions

 

[mysqld]

>>>master-host = 192.168.0.120

>>>master-user = mysql최상위 관리자나 그에 동등한 권한을 가진 유저

>>>master-password = 비밀번호

>>>master-port = 3306

>>>master-connect-retry = 60

>>>replicate-do-db= edu

>>>replicate-ignore-table=edu.zetyx_board_tunning

>>>replicate-do-db= test

>>>server-id = 2

basedir=C:/mysql

#bind-address=192.168.0.110

datadir=C:/mysql/data

#language=C:/mysql/share/your language directory

#slow query log#=

#tmpdir#=

#port=3306

#set-variable=key_buffer=16M

이하생략....

===============================win my.ini설정파일================================

마찬가지로 >>> 부분이 추가된 부분이다.

설명은 아래와 같다

 

master-host master호스트를 기록한다.

master-user master유저

master-password master유저 비밀번호

master-port master디비 포트

master-connect-retry master에 재 접속할 횟수

replicate-do-db replication할 디비명

replicate-ignore-table 이것은 하나의 디비에 여러 테이블이 있을 경우 특정 테이블은 replication을 하지 않게 지정하는데 사용된다.

server-id slave 아이디로 master이외의 unique한 다른 번호를 지정한다.

 

더 많은 옵션이있다. 하지만 여기서는 단지 Replication하는데 중점을 두도록 한다.

여기까지가 Replication을 하기위한 설정의 끝이다.

 

그러면 이제부터 실시간 백업이 되게 해보자

1.master디비를 재시동한다.

2.slave 디비를 재시동한다.(윈도에서는 관리도구에서 서비스를 선택하면 mysql데몬을 다시 올려주면된다.)

3.master디비에 입력한다.

4.slave디비에 갱신이 되는지 확인한다.

 

 

slave에 갱신이 되었다면 성공한 것이다.

물론 위의방법은 새로운 디비에서 실시간 백업이 되게 한 것이다

기존 디비도 같은 방법으로 가능하다.

그럼 행운을 빈다.

 

이 자료에 관한 질문은3jarea@dreamx.net 으로 문의 바라며, 버그에 대한 내용도 환영한다.

 

 

다음번에는 daisy-chain방식을 이용해서 병렬식 백업 방법에 대해 공부해서 올리도록 하겠다.

이 글에 대한 댓글이 총 2건 있습니다.

링크가 깨졌군여

급해맨님이 2001-10-11 17:06에 작성한 댓글입니다.

원본을 올린 사이트에서 그 소스를 없애 버리는 바람에 링크가 깨진 것입니다. 아예 링크 자체를 없앴습니다.

정재익(advance)님이 2002-01-09 15:35에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
13183mysql 3.23.42 이후 버젼 설치 Tip [2]
zzizzi
2001-10-23
7607
13127[팁] 에러발생시는 perror 프로그램사용하자
문태준
2001-10-20
6113
13100MySQL3.23.42버젼 설치시 주의사항 [3]
정재익
2001-10-19
6651
12749MySQL 에서 Replication 이용하기 [2]
정재익
2001-10-06
10925
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2022 DSN, All rights reserved.
작업시간: 0.036초, 이곳 서비스는
	PostgreSQL v14.2로 자료를 관리합니다