본문 바로가기

아키텍쳐34

InnoDB Doublewrite Buffer ▶ doublewrite buffer란? InnoDB의 데이터 파일에 쓰기 전에 버퍼 풀로부터 flush된 페이지를 쓰는 저장영역입니다. 만약, 페이지 쓰기 도중 갑작스런 mysqld 프로세스의 정지나 OS 이슈 등일때 Crash Recovery 를 시도하고 InnoDB는 doublewrite buffer로부터 페이지의 복사본을 찾아 복구를 수행할 수 있습니다. 비록 데이터는 doublewrite buffer에 두번 쓰여지지만, I/O 오버헤드나 I/O작업이 두배나 필요하지는 않습니다. 데이터는 doublewrite buffer에 OS에서 단일 fsync()라고 불리는 기능으로 큰 덩어리(large chunk) 순서로 쓰여집니다. (innodb_flush_method가 O_DIRECT_NO_FSYNC로 .. 2021. 1. 14.
InnoDB IN-MEMORY Structures Mysql의 InnoDB는 In-Memory 구조와 On-Disk 구조로 이루어져 있습니다. In-Memory 구조 ▶ Buffer Pool InnoDB가 액세스할 때 테이블 과 인덱스 데이터를 캐시하는 메인 메모리영역입니다. 해당 영역은 메모리로부터 데이터를 직접 처리할 수 있게하여 처리속도를 향상시킵니다. dedicated server의 경우, 물리 메모리의 최대 80%까지 버퍼풀이 할당됩니다. 효과적으로 읽기 작업을 하기 위해서 버퍼 풀은 여러 행을 보유할 수 있는 페이지들로 나눠집니다. 효과적으로 캐시 관리를 하기위해 버퍼 풀은 링크된 페이지들의 목록으로 구현됩니다. LRU알고리즘으로 관리되어 자주 사용하지 않는 데이터는 age out(삭제) 됩니다. - LRU 알고리즘 버퍼 풀은 LRU(leat.. 2021. 1. 12.
Tibero to Oracle DBLINK 아키텍쳐(Oracle 리스너 방식) 이번에는 오라클 리스너를 활용한 티베로에서 DBLINK를 이용하여 Oracle의 정보를 주고 받는 방식에 대한 그림입니다. 마찬가지로 Oracle GateWay프로그램이 가장 중요합니다. 1.SQL 실행 - 티베로DB에서 DBLINK문 쿼리를 실행합니다(ex select sysdate from dual@XE;) 2.쿼리전달 - 티베로 프로그램 중하나인 gw4orcl을 이용하여 쿼리를 전달합니다. tbdsn.tbr에는 tbgw의 port번호와 oracleGateWay listener의 tnsnames.ora의 alias명이 입력되어야 합니다 3.쿼리수행 - Oracle DB접속하여 쿼리를 수행합니다. 4.결과 전달 5.결과 확인 서버간의 통신과 port 설정, 방화벽 등 고려해야할 사항이 많습니다. 하지만.. 2021. 1. 11.
Oracle to Tibero DB LINK 아키텍쳐(GateWay 방식) 제가 테스트 후 정리하면서 만든 그림입니다. Oracle에서 이기종의 DB에 접근하여 데이터를 DB Link로 가져오는 방식은 티베로 뿐만 아니라 다른 DB들도 비슷한 원리로 작동된다고 할 수 있을것 같습니다. 그래서 원리 이해만 잘하면 다른 DB에서도 적용할 수 있을것 같습니다. 핵심은 Oracle GateWay프로그램입니다. GateWay 프로그램을 통해서 Oracle 서버와 통신을 하며 DB link를 수행하기 때문입니다. 제가 그림에서 화살표로 접근하는 파일은 수정이 필요한 파일들이며, 각 파일들이 그다음 화살표로 가는 파일(or DB)에 대한 정보가 제대로 입력이 되어 있어야합니다. 순서를 설명하면 1.SQL 실행 - Client단에서 쿼리를 실행합니다 (ex select sysdate from.. 2021. 1. 10.