제가 조사한 내용은
물리적구성은 redo의 정보를 블록단위로 동기화(MRP)시키고,
논리적구성은 redo의 정보를 sql로 변환하여 동기화(LSP) 시킨다고 하는데...
(논리적구성에서 궂이 sql로 변환하는 이유도 궁금하네요
이것도 추측인데 블록단위로 이동시키면 standby DB에 부하가 많이 가기 때문에
크기가 작은 sql로 변환하지 않을까....하는 추측을 해봅니다)
그렇다면 각각의 장단점은 무엇인가요?
위의 정보를 바탕으로 추측해 보자면
물리적인 방식은 블록단위로 동기화시키기 때문에 sql문에 비해
상대적으로 큰 데이터크기를 가지기 때문에 처리속도가 늦어질꺼 같은데 맞는건가요?
Oracle (Active) DataGuard 를 이용해서, 복제DB 를 physical standby database, Logical standby database 로 구성 시, (구성하는 방법에 따라, 여러 변수가 있습니다만) 일반적으로 physical standby database 이 더 빨리 반영됩니다. 블럭 단위로 동기화 할 때, 변경된 블럭 단위로 (근)실시간으로 Standby DB에 반영합니다.
복제 방식 | 특징 | |
physical standby database |
- Redo, Archive 의 변경된 Block 단위로 복사 - OS Block I/O 중심 |
- Primary 와 동일한 구조를 유지 ( file 구조, Object Layout 등) - Maximun Protection 지원 - Standby 를 보통 Read only 로 구성 |
Logical standby database |
- Redo, Archive 에서 SQL 을 추출해서 적용 - DB Block I/O 중심 |
- 따라서, Primary 와 다른 버전으로, 변경된 구조로도 운영 가능 - DB Open 상태로 운영하므로, Switch 및 Fail over 속도가 상대적으로 빠름 ( Standby Restart 불필요) - Standby 를 보통 Read Write 로 구성 |