ORACLE/이중화(HA)

OGG 상태확인 및 문제 해결

argoLee 2018. 12. 14. 17:58
  • Extract 문제 해결

오류가 있으면 Extract 프로세스가 STOPPED(정지됨)로 나타날 수 있다. 

이 경우 오류를 조사하기.


GGSCI (qasp-db) 6> info extract ebia detail


EXTRACT    EBIA      Last Started 2018-11-27 10:17   Status RUNNING

Checkpoint Lag       00:00:00 (updated 00:00:07 ago)

Log Read Checkpoint  Oracle Redo Logs

                     2018-12-14 17:35:45  Seqno 329593, RBA 261834448

                     SCN 3021.280829753 (12975377030969)


...

Current directory    /new_ogg/ggs


Report file          /new_ogg/ggs/dirrpt/EBIA.rpt

Parameter file       /new_ogg/ggs/dirprm/ebia.prm

Checkpoint file      /new_ogg/ggs/dirchk/EBIA.cpe

Process file         /new_ogg/ggs/dirpcs/EBIA.pce

Stdout file          /new_ogg/ggs/dirout/EBIA.out

Error log            /new_ogg/ggs/ggserr.log

..


자세 정보 보고서 파일 C:\OGG10G\dirrpt\EMP_EXT.rpt를 확인한다. 

그런 다음 C:\OGG10G 디렉터리에 있는 로그 파일 ggserr.log 및 sqlnet.log에서 관련 메시지가 있는지 확인한다.




# CASE ------------------------------------------------------------------------------------



sqlnet.log 파일에 다음과 같은 오류가 나타날 수 있다.


TNS-12557: TNS:protocol adapter not loadable

이 오류는 데이터베이스 연결 문제를 표시해 주므로 리스너를 점검해야 한다. 시작할 때 Path(경로)에 오라클 홈 bin 하위 디렉터리가 포함되어 있는지 확인한다. 다른 TNS 오류가 있을 수 있으며, 이 경우 다른 해결 방법이 표시될 수 있다.


▶EMP_EXT.rpt에 다음과 같은 오류가 표시될 수 있다.


2009-12-08 13:01:27 GGS ERROR 182 OCI Error beginning
session (status = 28009-ORA-28009: connection as SYS should be as
SYSDBA or SYSOPER).
2009-12-08 13:01:27 GGS ERROR 190 PROCESS ABENDING.

이것은 Extract 프로세스가 SYSDBA 없이 sys로 로그온하려 하고 있음을 나타낸다. Extract에 대한 매개변수 파일의 Login을 'system'으로 변경하면 된다. 여기서 Extract 매개변수 파일의 Login 줄 끝에 SYSDBA를 지정하는 방법은 통하지 않는다는 데 유의해야 한다(단, 다음에 보게 될 GGSCI의 DBLOGIN 명령에서는이 방법이 가능함).

ggserr.log 파일에 유사한 오류가 나타날 수 있다.


2009-12-03 00:43:16 GGS INFO 399 Oracle GoldenGate
Command Interpreter for Oracle: GGSCI command (HaviPoriH): start
manager.
2009-12-03 00:43:25 GGS ERROR 182 Oracle GoldenGate
Manager for Oracle, mgr.prm: OCI Error during OCIServerAttach
(status = 12154-ORA-12154: TNS:could not resolve the connect identifier
specified).
2009-12-03 00:43:25 GGS ERROR 190 Oracle GoldenGate
Manager for Oracle, mgr.prm: PROCESS ABENDING.


위의 오류는 Manager 매개변수 파일 mgr.prm에 제공한 로그인 자격 증명 문제를 나타낸다. 

따라서 Manager는 시작되지 않은 것이다. 

있을 수 있는 또 다른 오류는 Extract 보고서 파일에서 확인할 수 있다. 

예를 들어 EMP_EXT.rpt에는 다음 오류가 있을 수 있다.

2009-12-07 16:40:08 GGS ERROR 190 No minimum supplemental
logging is enabled. This may cause extract process to handle key
update incorrectly if key column is not in first row piece.
2009-12-07 16:40:08 GGS ERROR 190 PROCESS ABENDING.

이 오류에 대한 해결 방법은 데이터베이스의 Supplemental Logging을 활성화 하는 것이다. 

여기서는 이미 이 작업을 수행했으므로 오류가 나타나지 않는다.

 

HRPRD3에서 Replicat 프로세스 설정

이제 대상 데이터베이스 HRPRD3(이 경우 동일한 서버에 있음)로 이동한다. 

역시 Oracle 10g 데이터베이스이므로 하위 디렉터리 C:\OGG10G의 동일한 Oracle GoldenGate for Oracle 10g 및 동일한 Manager 서비스를 사용할 수 있다. 

데이터베이스가 다른 서버에 있는 경우 데이터베이스 버전에 맞는 Oracle GoldenGate 소프트웨어를 설치한 다음 해당 서버에서 새 Manager 서비스를 구성해야 한다. 

첫 단계는 데이터베이스 명령을 내릴 수 있도록 GGSCI 에서 DBLOGIN을 사용하여 데이터베이스에 연결하는 것이다.

DBLOGIN이 다음과 같이 제대로 작동하는지 확인한다.

GGSCI (HaviPori) 1>
DBLOGIN USERID system@localhost:1521/HRPRD3 PASSWORD
hrpassword1
Successfully logged into database.

DBLOGIN에는 다른 두 개의 매개변수 SOURCEDB와 TARGETDB가 있다. 이 매
개변수들은 Oracle 이외의 데이터베이스만를 위한 것이다.

이제 복제 중인 Employees 테이블에 대한 Checkpoint 테이블을 추가해야 한다.

GGSCI (HaviPori) 2> ADD CHECKPOINTTABLE HR.EMPLOYEES_CHKPT
Successfully created checkpoint table HR.EMPLOYEES_CHKPT.

이 테이블에 저장된 Checkpoint는 Replicat 프로세스의 현재 읽기, 쓰기 위치를 가리킨다. 이 과정은 프로세스를 다시 시작해야 하는 경우 또는 서버에 오류가 있거나 네트워크에 다른 방법으로 데이터 손실을 야기할 수 있는 일시적 장애가 있는 경우 데이터 손실을 방지하기 위해 사용된다. 다른 장점은 Checkpoint를 사용하여 동일한 trail을 복수의 Extract 또는 Replicat 프로세스에서 읽을 수 있다는 것이다.

Extract 및 Replicat 프로세스가 배치 모드로 실행될 때는 일반적으로 재시작을하기 때문에 Checkpoint가 필요하지 않으며, 따라서 Checkpoint는 선택사항이다. 그러나 Extract 및 Replicat 프로세스를 지속적으로 실행해야 하는 경우에는 Checkpoint가 필요하다. heckpoint는 보통 dirchk 하위 디렉터리에 파일로 유지되고 있지만, Replicat의 경우에는 데이터베이스의 Checkpoint 테이블에 저장할 수 있다. 

만약 GLOBALS 매개변수 파일에 Checkpoint 테이블을 지정하면 ADD CHECKPOINT 명령에 별도로 지정할 필요는 없다. 


다음과 같은 모습이 될 수 있다.


GGSCI (HaviPori) 3> ADD CHECKPOINTTABLE
No checkpoint table specified, using GLOBALS specification (hr.
employees_chkpt).
Successfully created checkpoint table HR.EMPLOYEES_CHKPT.


이제 다음과 같이 첫 번째 데이터베이스에서 Extract 그룹 설정에 사용했던 것과 같은 EXTTRAIL을 지정하여 Replicat 그룹을 추가할 수 있다. 그러면 Replicat 그룹이 Extract 그룹에서 만든 trail에 정보를 기록하거나 해당 trail을 사용하게 된다.


GGSCI (HaviPori) 4> ADD REPLICAT emp_rep, EXTTRAIL C:\OGG10G\
dirdat\et, CHECKPOINTTABLE hr.employees_chkpt,
REPLICAT added.


다음과 같이 매개변수 파일을 이 Replicat 그룹에 맞게 편집한다.


GGSCI (HaviPori) 5> EDIT PARAM emp_rep

새 파일에 다음 내용을 입력한다.

REPLICAT emp_rep
USERID system@localhost:1521/HRPRD3, PASSWORD hrpassword1
ASSUMETARGETDEFS
MAP hr.employees, TARGET hr.employees;


이 테이블은 똑같은 DDL 구조를 가지고 있기 때문에 ASSUMETARGETDEFS 매개변수를 사용한다.

이제 Replicat 그룹을 시작할 수 있다.


GGSCI (HaviPori) 6> start REPLICAT emp_rep
Sending START request to MANAGER ('GGSMGR') ...
REPLICAT EMP_REP starting


상태가 표시되려면 잠시 기다려야 하는데, 즉시 확인하려고 하면 상태가 'stopped(정지됨)'으로 나타날 수 있다. 상태가 'running(실행 중)'으로 표시되면 자세한 정보를 확인하고 info all 명령을 내려서 실행 중인 모든 프로세스를 표시할 수 있다.


GGSCI (HaviPori) 7> status REPLICAT emp_rep
REPLICAT EMP_REP: STOPPED
GGSCI (HaviPori) 8> status REPLICAT emp_rep
REPLICAT EMP_REP: RUNNING