OGG 상태확인 및 문제 해결
- 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