> For the complete documentation index, see [llms.txt](https://docs.tibero.com/prosync/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tibero.com/prosync/administration/extract/extract-process.md).

# Extract Process

## Process 설명

Extract 프로세스는 Source DB의 변경 로그를 추출하여 Apply 프로세스로 전달하는 동작을 수행한다.

Source DB가 Tibero 또는 Oracle인 경우, redo log를 읽어 변경 로그를 추출하므로 반드시 redo log에 접근 가능한 위치(일반적으로 Source DB가 존재하는 장비)에서 기동되어야 한다.

변경의 최소 단위는 **LCR**로, 레코드 단위의 변경을 의미하며 네트워크 부하를 고려하여 여러 **LCR**을 ***Chunk***&#xB85C; 만들어 Apply 프로세스에 전달한다.

<figure><img src="https://content.gitbook.com/content/67c6iXuWlq8gXQ7kiTCO/blobs/EUsQOjfh09wCLQGcH6h4/image.png" alt=""><figcaption><p>그림 1. Extract Process</p></figcaption></figure>

***

## Threads

### Control Thread

기동 시 다른 Thread 시작, 메시지 수신 및 전송 등의 작업을 수행한다.

### Resource Thread

프로세스의 CPU/Memory 사용량을 수집한다. ProSync 매니저 사용 시, Agent 프로세스를 통해 수집한 값을 프로싱크 매니저로 전송한다.

### Worker Thread

동기화 테이블 추가, 동기화 할 테이블 및 컬럼들의 정보인 DD image 조회, DB의 상태 파악을 위한 dummy tx 생성 등 변경 데이터 추출과는 상관없는 메타데이터 조회나 수정과 같은 작업을 수행한다.

### Sam Thread

추출한 변경을 Text 파일로 출력하는 SAM 기능을 수행한다.

### Read Thread

변경 데이터를 추출하고 이를 ***Chunk***&#xD615;태로 만든 뒤 Control 스레드를 통해 Apply 프로세스에 전달한다.

Log Reader 라이브러리를 사용해 redo log에 접근하며 비정상 종료, Apply 프로세스 재연결 등의 장애 상황 발생 시, 마지막으로 읽고 있던 redo를 처음부터 다시 읽기 시작한다.

추출 시작 지점은 Apply 프로세스에 저장되어 있기 때문에, Apply 프로세스와 연결 전까지는 추출을 시작하지 않는다.

###


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.tibero.com/prosync/administration/extract/extract-process.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
