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
운영게시판
최근게시물
PostgreSQL Q&A 4779 게시물 읽기
No. 4779
mysql 리플리케이션을 postgresql 로 하는 방법이 있나요? ^^;;
작성자
신기배(nonun)
작성일
2003-07-03 11:13
조회수
1,516

안녕하세요~

간만에 질문을 -.-;

 

저희 회사에서는 mysql을 쓰고 있고 DB 교체를 고려하고 있습니다.

워낙에 데이터도 많고 연계된 서비스가 많다보니 한번에 싹 바꿀수가 없습니다 -.-

그래서 mysql을 다른 종류의 DB로 리플리케이션이 된다면 구성을 해놓고 서비스를 하나씩 새로운 DB로 옮겨 가려하는데요.

mysql의 리플리케이션을 다른 DB로 받는 미들웨어 같은게 없을까요?

 

예를 들면 mysql -> postgresql 로 리플리케이션을 받은 후 서비스 되고 있는 웹과 게임을 하나씩 mysql에서는 update,insert, postgresql에서 select를 하게 한 후 적절한 시기에 모든 작업을 postgresql로 하게 하고 mysql은 폐기! .. 뭐 이런 식을 생각하고 있습니다 =_=

좋은 미들웨어나 방식이 있다면 조언 부탁드립니다 ^^

그럼~

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

헉... 그런 툴은 아직 본적이 없습니다. ^^;

물론 사실 저 생각에 신기배님께서 더 잘 아실것 같은 생각이...

그런 연계는 결국은 직접 application 을 만들어서 해결할수 밖에 없는데, 두 DBMS 에 대해서 동시 interface 를 제공해 주는 언어를 이용해서 만드는 수 밖에 없을 것 같습니다.

 

저 생각에는 Python, PHP, Perl 같은 script 언어가 좋을 것 같은데 한번 만드시면 선을 뵈시면 좋을 듯 합니다. ^^;

 

사실 저 생각에 MySQL 이 빠르고 비교적 안정적이고 좋은 DBMS 임에는 틀림없지만, 그래도 모자라는 10%의 기능이 DBMS 를 사용하는 매니아들을 안타깝게 한다는 생각이 듭니다.

 

그런 면을 PostgreSQL 이 지원을 해주고 있으니 아마도 많은 사람들이 PostgreSQL 을 보다 좋아하는 것 같습니다.

정재익(advance)님이 2003-07-04 14:27에 작성한 댓글입니다.

이기종간의 데이터 동기화를 생각하신다면,

전제조건 첫번째가

 

마스터 RDBMS에서 트리거를 제공하느냐? 입니다.

트리거만 제공해준다면, 길은 있을 것같습니다.

 

replication의 가장 기본적인 생각은

Master 데이터의 조작이 일어나면 Slave 데이터 조작도 똑같이 그렇게 일어난다!

 

이것이니, 현재 RDBMS 개념으로는 이문제를 풀 열쇠는 트리거입니다.

 

요즘의 MySQL을 몰라서 PostgreSQL놈과 Oracle을 예로 생각해보면,

 

Master 데이터가 PostgreSQL에 있고, C로 트리거함수를 하나 만들때, 그곳에서는 Oracle RDBMS를 조작할 수 있는 루틴을 넣고, PostgreSQL 특정 테이블에 이 함수를 트리거로 걸어두면, 이론적으로는 이기종간의 replication을 구현할 수 있습니다.

물론 이때 풀어야할 숙제가 자료형 호환문제, 예외처리 문제 등 한두가지가 아니겠지만.

 

다시 원래 질문으로 돌아가서,

정녕코 이문제를 풀어야한다면, 먼저, 사용하고 있는 MySQL 서버에 트리거를 지원해 줄 수 있는가? 그리고, 그 트리거로 사용할 기능을 사용자가 C 같은 확장성이 용이한 언어로 만들어낼 수 있는가? 부터 살펴보시고, 이 두부분이 가능하다면, MySQL의 내부 자료형과 PostgreSQL의 내부 자료형을 공부하셔서 싱크시키면서 하나의 MySQL용 트리거를 하나 만드시면 될듯싶습니다.

 

결코 만만찮은 작업이 될 듯.

김상기(ioseph)님이 2003-07-04 17:26에 작성한 댓글입니다.

두분 답변 감사합니다 ^^;

그래서 새로 맹거볼라고 mysql 리플리케이션에 관련된 자료를 찾아봤는데 내부 구조에 대한 문서를 찾기가 힘드네요 =_=

슬레이브가 마스터로 어떻게 접속해 들어가는지, 어떤 종류의 로그를 받아오는지 등등. 그 구조만 안다면 새걸로 만들수 있을까 했는데.. 그런 자료가 제 눈에는 안보입니다 크흑..

mysql 소스를 디벼봐도 몇개의 파일 곳곳에 숨어 있어서 분석하는데 어려움이.. 포기해야 하는건가 ㅠ_ㅠ

신기배(nonun)님이 2003-07-05 09:16에 작성한 댓글입니다.

디비를 옮기는데, 트리거의 기능을 사용 한다는 것은

약간의 문제를 가질수 있다고 생각 합니다.

트리거의 특성은 DML이 일어날때 특정 작업을 연계 시키는 것은

가능 하지만 트리거가 실행할때 트리거 자체의 에러가 발생해도

리포팅 되지 않는다는 결점이 있습니다.

따라서 원본 디비는 계속 갱신되지만, 복사본 디비는 에러가 있을 경우

몇건의 데이타가 없을수도 있습니다.

 

원본 디비에 DML이 일어 날때 복사본 역시 동기화 되어야 한다면,

트랜잭션이 보장 되어야 합니다.

 

이러한 개념은 오라클 디비 역시 같습니다.

즉 원본 디비에 복사본 디비가 있어도 역시 동기화의 문제는

sql 문제, 디비 자체 문제, 네트웍문제 등 고려 사항이 많습니다.

 

그럼. 허접한 댓글 이었습니다. ^^;

BongBong님이 2004-04-23 12:41에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
4783M$ 동네에서 ODBC 없이 PostgreSQL 조작하기 [1]
김상기
2003-07-10
1434
4781db값이 공백도 아니고 null도 아니고... [1]
김지연
2003-07-09
1222
4780db , user 값 변경시. [1]
상배
2003-07-03
1098
4779mysql 리플리케이션을 postgresql 로 하는 방법이 있나요? ^^;; [4]
신기배
2003-07-03
1516
4778VACUUM 을 cron으로 돌리고 싶습니다. [1]
김일권
2003-06-30
1311
4777입력되는 날짜와 table에 저장되는 날짜가 차이가 있어요 [1]
강승규
2003-06-27
1187
4772postgreSQL쿼리문을 mySQL로바꾸려면...도와주세요 [1]
초보
2003-06-25
1259
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다