# 롤백 가이드

백업이 존재하는 경우에만 롤백이 가능하다. 아래는 4.4.x로의 패치 이후 문제가 발생했을 때, 이전 버전으로 롤백하기 위한 단계다.&#x20;

### 1. 프로세스 강제 종료 (SRC / TAR)

```bash
ADMIN> shutd agent;
```

### 2. 디렉토리 복구

```bash
rm -rf prosync;
mv old_prosync prosync
```

{% hint style="info" %}
**참고**

**3단계(재설치 수행)**&#xBD80;터 **5단계(메타데이터 복구)**&#xAE4C;지의 과정은 메타 테이블 구조 변경으로 인해 필요한 절차이며, 해당 작업은 4.0, FS01, 4.2.x 버전에 한해 수행하면 된다.
{% endhint %}

### 3. 재설치 수행

```bash
$PRS_HOME/install/prs_install.sh -c prs_install.cfg
```

### 4. 기존 메타데이터 삭제&#x20;

#### SRC DB

```sql
TRUNCATE TABLE $PRS_USER.PRS_TXINFO;
TRUNCATE TABLE $PRS_USER.PRS_OBJ_LIST;
TRUNCATE TABLE $PRS_USER.PRS_DDL_HIST;
TRUNCATE TABLE $PRS_USER.PRS_DD_CON;
TRUNCATE TABLE $PRS_USER.PRS_DD_ENC;
TRUNCATE TABLE $PRS_USER.PRS_DUMMY_TBL;
TRUNCATE TABLE $PRS_USER.PRS_LOGMNR_INFO;
TRUNCATE TABLE $PRS_USER.PRS_IMPORTED_ARCHIVE_LOG;
TRUNCATE TABLE $PRS_USER.PRS_DD_ETL_HIST;
TRUNCATE TABLE $PRS_USER.PRS_DICT_HIST;
TRUNCATE TABLE $PRS_USER.PRS_DD_USR;
TRUNCATE TABLE $PRS_USER.PRS_DD_TBL;
TRUNCATE TABLE $PRS_USER.PRS_DD_SGMT;
TRUNCATE TABLE $PRS_USER.PRS_DD_COL;
TRUNCATE TABLE $PRS_USER.PRS_IPARAM;
```

#### TAR DB

```sql
TRUNCATE TABLE $PRS_USER.PRS_CONST_HIST;
TRUNCATE TABLE $PRS_USER.PRS_LCT;
TRUNCATE TABLE $PRS_USER.PRS_DUMMY_TBL;
TRUNCATE TABLE $PRS_USER.PRS_COMMITTED_TX_LIST;
TRUNCATE TABLE $PRS_USER.PRS_INSTALL_HIST;
```

### 5. 메타데이터 복구

#### SRC DB

```sql
INSERT INTO $PRS_USER.PRS_TXINFO SELECT * FROM prs_backup.PRS_TXINFO;
INSERT INTO $PRS_USER.PRS_OBJ_LIST SELECT * FROM prs_backup.PRS_OBJ_LIST;
INSERT INTO $PRS_USER.PRS_DDL_HIST SELECT * FROM prs_backup.PRS_DDL_HIST;
INSERT INTO $PRS_USER.PRS_DD_CON SELECT * FROM prs_backup.PRS_DD_CON;
INSERT INTO $PRS_USER.PRS_DD_ENC SELECT * FROM prs_backup.PRS_DD_ENC;
INSERT INTO $PRS_USER.PRS_LOGMNR_INFO SELECT * FROM prs_backup.PRS_LOGMNR_INFO;
INSERT INTO $PRS_USER.PRS_IMPORTED_ARCHIVE_LOG SELECT * FROM prs_backup.PRS_IMPORTED_ARCHIVE_LOG;
INSERT INTO $PRS_USER.PRS_DD_ETL_HIST SELECT * FROM prs_backup.PRS_DD_ETL_HIST;
INSERT INTO $PRS_USER.PRS_DICT_HIST SELECT * FROM prs_backup.PRS_DICT_HIST;
INSERT INTO $PRS_USER.PRS_DD_USR SELECT * FROM prs_backup.PRS_DD_USR;
INSERT INTO $PRS_USER.PRS_DD_TBL SELECT * FROM prs_backup.PRS_DD_TBL;
INSERT INTO $PRS_USER.PRS_DD_SGMT SELECT * FROM prs_backup.PRS_DD_SGMT;
INSERT INTO $PRS_USER.PRS_DD_COL SELECT * FROM prs_backup.PRS_DD_COL;
INSERT INTO $PRS_USER.PRS_IPARAM SELECT * FROM prs_backup.PRS_IPARAM;
```

#### TAR DB

```sql
INSERT INTO $PRS_USER.PRS_CONST_HIST SELECT * FROM prs_backup.PRS_CONST_HIST;
INSERT INTO $PRS_USER.PRS_LCT SELECT * FROM prs_backup.PRS_LCT;
INSERT INTO $PRS_USER.PRS_COMMITTED_TX_LIST SELECT * FROM prs_backup.PRS_COMMITTED_TX_LIST;
INSERT INTO $PRS_USER.PRS_INSTALL_HIST SELECT * FROM prs_backup.PRS_INSTALL_HIST;
```

{% hint style="warning" %}
**주의**

복구 후 반드시 COMMIT을 수행해야 한다.
{% endhint %}

{% hint style="info" %}
**참고**

`$PRS_USER.PRS_DUMMY_TBL`에 대해서는 INSERT 작업을 진행하지 않는다.
{% endhint %}

### 6. Config 파일 검토 및 수정

각 설정 파일의 파라미터를 기존 설정과 비교하여 알맞게 수정한다.

* `<$instance_ID>_ext#.cfg`
* `<$instance_ID>_apply1.cfg`
* `<$instance_ID>_llob1.cfg`
* `prs_agent_<$Agent_ID>.cfg` →`prs_mgr.cfg`&#x20;
* `prs_instance.map` → `prs_top.map`

### 7. Prosync 재기동

```bash
ADMIN> start man {AGENT_ID}
ADMIN> start {INSTANCE_ID}
```

###


---

# Agent Instructions: 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:

```
GET https://docs.tibero.com/prosync/rollback.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
