지금 똥밟은 일이 있는데..문제가 너무 많은데.. 그중 하나가 DB 동기화 문제..

컴퓨터 두대 (Master, Slave) 에 같은 DB가 깔려있어.. (oracle - oracle 혹은 mssql - mssql)

Master 컴퓨터에서 작업하는게 Master DB에 저장되는데,
이걸 Slave 컴퓨터의 DB에도 싱크를 해줘야하거든..
Sync 방식은 Master가 Slave로 TCP를 이용해서 query를 전달해주고..
받은 slave는 받은 쿼리를 실행해서, 동기화를 유지하도록 했음..

여기서 문제가 생겼음..
사람들이 Slave 컴퓨터를 꺼놓거나, TCP 오류가 생겨서 패킷손실이 발생하는 경우가 있어서..
동기가 안맞는거임..

또한 Master / Slave 역할은 아무때나 바꿀수있거든..
A라는 컴퓨터를 Master로 쓰다가, B라는 컴퓨터를 Master로 전환하면 A는 자동으로 Slave가 되..

하도 동기화가 안맞아서.. Master / Slave 전환을 할때마다, Slave DB를 지워버리고, Master DB를 복사해온후
Master로 전환해.. (처음에는 Data가 작아서..별 문제가 안됬는데.. 이제는 수백만건이 쌓여서..도저히 감당이 안됨..)
(좀 편법을 써서 한달 이전 데이타만 지우고 한달 이내의 데이타만 복사하도록 하고는 있음..)

두 컴퓨터의 DB를 동기화하는 좋은 방법이 없을까요?
(Master / Slave는 아무때나 바뀔 수 있음..)