OGG는 Source 시스템의 Database(Oracle, DB2, MSSQL, Sybase ASE, MySQL 등) Redo/Archive Log 파일에 직접 접근하여 변경된 데이터만 추출, Target 시스템의 Database에 데이터를 동기화
=> OGG를 이용하여 실시간으로 운영시스템과 동일한 데이터를 가진 쌍둥이 시스템을 만들 수 있다..?
조회로 인한 부하가 Source 시스템에 많은 영향을 주고 있는 경우에 보다 효율적
아래는 예시
Mysql
Mysql 은 Replication을 통해 DB 이중화가 가능하다.
- Master : 웹서버로 부터 데이터 등록/수정/삭제 요청시 바이너리로그(Binarylog)를 생성하여 Slave 서버로 전달
- Slave : Master DBMS로 부터 전달받은 바이너리로그(Binarylog)를 데이터로 반영
master에서 query 실행
dml 의 경우 binary log 에 기록
mysql query 실행
slave는 binary log 를 감시하다가, 새로운 query가 들어오게 되면 이를 - slave의 relay log 로 가져오기 위해, master 에게 새로운 query 요청
master는 slave의 요청을 받아 binary log 에 적힌 쿼리를 slave로 전달하면서 전달되었다는 것을 보장받기 위해 응답을 기다린다.
slave는 master 로부터 query를 잘 받았다는 ack를 보낸다.
master는 slave로부터 ack를 받으면 client에게 ok를 보낸다.
slave의 mysql 에서 query 실행, master의 데이터가 slave에도 적용되도록 한다.