PostgreSQL에서 자율운영 AI 트랜잭션 처리(ATP)로 데이터 복제
OCI GoldenGate를 사용하여 PostgreSQL 서버 데이터베이스에서 자율운영 AI 트랜잭션 처리(ATP)로 데이터를 복제하는 방법을 알아봅니다.
시작하기 전에
이 빠른 시작을 성공적으로 완료하려면 다음이 있어야 합니다.
-
소스 데이터베이스로 사용할 PostgreSQL 설치(환경 설정 참조)
-
VCN 보안 목록에서 포트 5432를 엽니다.
-
대상 데이터베이스 역할을 하는 자율운영 AI 트랜잭션 처리(ATP) 인스턴스
환경 설정: PostgreSQL
이 Quickstart에 대한 환경을 설정하려면 다음을 수행합니다.
-
다음 명령을 실행하여 PostgreSQL 설치를 수행합니다.
-
PostgreSQL 서버 설치:
sudo yum install postgresql-server -
이 SQL 예외를 방지하기 위해 postgresql-contrib 모듈을 설치합니다.
sudo yum install postgresql-contrib -
새 PostgreSQL 데이터베이스 클러스터 생성:
sudo postgresql-setup --initdb -
postgresql.service를 활성화합니다.
sudo systemctl enable postgresql.service -
postgresql.service를 시작합니다.
sudo systemctl start postgresql.service
-
-
기본적으로 PostgreSQL은 로컬 연결만 허용합니다. PostgreSQL에 대한 원격 연결 허용.
-
/var/lib/pgsql/data/postgresql.conf에서 복제용으로 데이터베이스 준비를 수행합니다. -
listen_addresses = 'localhost'를 찾아 주석 처리를 해제하고 localhost를 별표(`)로 변경합니다.listen_addresses = '*' -
다음 매개변수를 다음과 같이 설정합니다.
-
wal_level = logical -
max_replication_slots = 1 -
max_wal_senders = 1 -
track_commit_timestamp = on
참고:
Oracle GoldenGate 호스트에서의 접속을 허용하도록 클라이언트 인증이 설정되도록
/var/lib/pgsql/data/pg_hba.conf를 구성합니다. 예를 들어, 다음을 추가합니다.#Allow connections from remote hosts host all all 0.0.0.0/0 md5자세한 내용은 The pg_hba.conf File을 참조하십시오.
- PostgreSQL 서버 다시 시작:
sudo systemctl restart postgresql.service- Oracle Cloud Compute를 사용하여 PostgreSQL을 호스트하는 경우 포트 5432를 엽니다.
sudo firewall-cmd --permanent --add-port=5432/tcp sudo firewall-cmd --reload sudo firewall-cmd --list-all -
-
VCN의 보안 목록에서 포트 5432를 엽니다.
-
> sudo su - postgres > psql주: 또는 위의 예가 작동하지 않을 경우
sudo su - postgres psql를 입력할 수 있습니다. -
PostgreSQL을 설정합니다.
-
seedSRCOCIGGLL_PostgreSQL.sql을 다운로드 및 실행하여 데이터베이스를 설정하고 샘플 데이터를 로드합니다.
-
다음 명령을 실행하여 사용자를 설정합니다.
<password>를 실제 비밀번호로 바꾸십시오.
create user ggadmin with password '<password>'; alter user ggadmin with SUPERUSER; GRANT ALL PRIVILEGES ON DATABASE ociggll TO ggadmin; -
-
환경 설정: 자율운영 AI 트랜잭션 처리(ATP)
-
샘플 데이터베이스 스키마를 다운로드하고 압축을 풉니다.
-
GGADMIN 유저의 잠금을 해제합니다.
-
Oracle Cloud 콘솔의 자율운영 AI 데이터베이스 페이지에서 ATP 인스턴스를 선택하여 세부정보를 확인하고 Database Actions에 액세스합니다.
-
데이터베이스 작업을 선택한 다음 데이터베이스 사용자를 선택합니다.
-
GGADMIN을 찾은 다음 줄임표 메뉴(점 3개)를 선택하고 편집을 선택합니다.
-
Edit User 패널에서 GGADMIN 암호를 입력하고 암호를 확인한 다음 Account is Locked의 선택을 해제합니다.
-
변경 사항 적용을 선택합니다.
-
-
대상 샘플 스키마 및 데이터를 로드합니다.
-
Database Actions 메뉴에서 SQL을 선택합니다.
-
OCIGGLL_OCIGGS_SETUP_USERS_ADW.sql에서 스크립트를 복사하여 SQL 워크시트에 붙여 넣습니다.
-
스크립트 실행을 선택합니다. Script Output 탭에 확인 메시지가 표시됩니다.
-
SQL 워크시트를 지운 다음 OCIGGLL_OCIGGS_SRC_MIRROR_USER_SEED_DATA.sql에서 SQL을 복사하여 붙여넣습니다.
-
테이블이 성공적으로 생성되었는지 확인하려면 SQL window를 닫고 다시 여십시오. Navigator 탭에서 SRC_OCIGGLL 스키마를 찾은 다음 해당 드롭다운에서 테이블을 선택합니다.
-
작업 1: OCI GoldenGate 리소스 생성
이 빠른 시작 예에서는 소스 및 대상에 대한 배치 및 접속이 필요합니다.
-
소스 PostgreSQL 데이터베이스에 대한 배포를 생성합니다.
-
대상 자율운영 AI 트랜잭션 처리(ATP) 인스턴스에 대한 배포를 생성합니다.
-
소스 PostgreSQL 데이터베이스에 대한 접속을 생성합니다.
-
유형의 경우 PostgreSQL Server를 선택해야 합니다.
-
데이터베이스 이름에
ociggll을 입력합니다. -
호스트의 경우 PostgreSQL이 실행되는 컴퓨트 인스턴스의 퍼블릭 IP를 입력합니다.
-
포트에
5432을 입력합니다. -
사용자 이름에
ggadmin을 입력합니다. -
Password(비밀번호)에 비밀번호를 입력합니다.
-
보안 프로토콜에 대해 일반을 선택합니다.
-
작업 2: 보완 로깅 활성화
보완 로깅을 사용으로 설정하려면 다음과 같이 하십시오.
-
PostgreSQL GoldenGate 배치 콘솔을 실행합니다.
-
[배치] 페이지에서 PostgreSQL 배치를 선택하여 세부정보를 봅니다.
-
PostgreSQL 배치 세부정보 페이지에서 콘솔 실행을 선택합니다.
-
배치 콘솔 사인인 페이지에서 작업 1, 단계 1에 제공된 GoldenGate 관리 인증서를 입력합니다.
주: 배치를 생성할 때 IAM이 인증서 저장소로 선택되지 않은 경우 사인인이 필요합니다.
-
-
배치 콘솔의 왼쪽 탐색에서 DB 접속, 소스 PostgreSQL 데이터베이스, Trandata 순으로 선택합니다.
-
TRANDATA 페이지의 TRANDATA 정보 옆에 있는 트랜다타 추가(더하기 아이콘)를 선택합니다.
-
Trandata 패널에서 스키마 이름에 대해
src_ociggll을 입력한 다음 제출을 선택합니다.주: 검색 필드를 사용하여
src_ociggll을 검색하고 테이블이 추가되었는지 확인하십시오.
작업 3: 추출 생성
-
변경 데이터 캡처 Extract 추가:
-
왼쪽 탐색에서 추출을 선택합니다.
-
추출 페이지에서 추출 추가(더하기 아이콘)를 선택한 후 다음과 같이 필드에 정보를 입력합니다.
-
정보 추출 페이지에서 다음을 수행합니다.
-
추출 유형에 대해 데이터 캡처 추출 변경을 선택합니다.
-
프로세스 이름에 추출 이름(예:
ECDC)을 입력합니다. -
다음을 선택합니다.
-
-
추출 옵션 페이지에서 다음을 수행합니다.
-
소스 인증서의 경우 도메인 드롭다운에서 Oracle GoldenGate를 선택합니다.
-
별칭 드롭다운에서 소스 PostgreSQL 데이터베이스를 선택합니다.
-
추출 추적 이름에
C1와 같은 2자의 추적 이름을 입력합니다. -
다음을 선택합니다.
-
-
추출 매개변수 페이지에서
MAP *.*, TARGET *.*;를 다음으로 바꿉니다.TABLE SRC_OCIGGLL.*;
-
-
생성 및 실행을 선택합니다.
-
-
초기 로드 추출 추가:
-
추출 페이지에서 추출 추가를 선택한 후 다음과 같이 추출 추가 양식을 완료합니다.
-
정보 추출 페이지에서 다음을 수행합니다.
-
추출 유형의 경우 초기 로드 추출을 선택합니다.
-
프로세스 이름에
EIL과 같은 이름을 입력합니다. -
다음을 선택합니다.
-
-
추출 옵션 페이지에서 다음을 수행합니다.
-
소스 인증서의 경우 도메인 드롭다운에서 Oracle GoldenGate를 선택합니다.
-
별칭 드롭다운에서 PostgreSQL 데이터베이스를 선택합니다.
-
추출 추적 이름에 2자 추적 이름(예:
I1)을 입력합니다. -
다음을 선택합니다.
-
-
추출 매개변수 페이지에서 텍스트 영역의 내용을 다음으로 바꿉니다.
EXTRACT EIL USERIDALIAS PostgreSQL_Compute, DOMAIN OracleGoldenGate EXTFILE I1, PURGE TABLE src_ociggll.*;주: 계속하기 전에
USERIDALIAS앞에 있는SOURCEDB매개변수를 제거해야 합니다.
-
-
생성 및 실행을 선택합니다.
-
Extracts 페이지로 돌아가서 Extract 시작을 확인할 수 있습니다.
작업 4: 초기 로드 추출에 대한 분배 경로 생성
-
[배치] 페이지에서 대상 Oracle 배치를 선택합니다.
-
배치 세부정보 페이지에서 콘솔 실행을 선택한 다음 관리 사용자로 로그인합니다.
-
IAM 인증서 저장소를 사용하는 경우 배포 경로 생성 단계를 진행합니다. GoldenGate 인증서 저장소를 사용하는 경우 소스 GoldenGate가 대상 GoldenGate에 접속하는 데 사용하는 사용자를 생성합니다.
-
탐색 메뉴에서 User Administration을 선택합니다.
-
새 사용자 추가(더하기 아이콘)를 선택하고 다음과 같이 필드에 정보를 입력한 다음 제출을 선택합니다.
-
사용자 이름에
ggsnet을 입력합니다. -
역할에 대해 연산자를 선택합니다.
-
확인을 위해 암호를 두 번 입력합니다.
-
-
-
소스 PostgreSQL 배치 콘솔에서 이전 단계에서 생성한 사용자에 대한 경로 접속을 생성합니다.
-
탐색 메뉴에서 경로 접속을 선택합니다.
-
경로 접속 추가(더하기 아이콘)를 선택하고 다음과 같이 필드에 정보를 입력한 다음 제출을 선택합니다.
-
Credential Alias에
dpuser를 입력합니다. -
사용자 ID에
ggsnet를 입력합니다. -
암호에 이전 단계에서 사용한 것과 동일한 암호를 입력합니다.
-
-
-
배포 경로를 만듭니다.
-
서비스 메뉴 표시줄에서 경로를 선택한 다음 배포 경로 추가(더하기 아이콘)를 선택합니다.
-
Add Path Form을 다음과 같이 완성합니다.
-
Path Information 페이지에서 다음을 수행합니다.
-
경로 이름에 이 경로의 이름을 입력합니다.
-
다음을 선택합니다.
-
-
Source Options 페이지에서 다음을 수행합니다.
-
소스 추출의 경우 비워 둡니다.
-
트레일 이름에 초기 로드 추출 추적 이름(
I1)을 입력합니다. -
다음을 선택합니다.
-
-
Target Options 페이지에서 다음을 수행하십시오.
-
대상에서 wss를 선택합니다.
-
대상 호스트의 경우 https:// 또는 후행 슬래시 없이 대상 배치 URL을 입력합니다.
-
포트 번호에서
443을 입력합니다. -
트레일 이름에
I1을 입력합니다. -
대상 인증 방법의 경우 UserID 별칭을 선택합니다.
-
도메인에 대해 이전 단계에서 생성한 도메인 이름을 입력합니다.
-
별칭에 대해 이전 단계(
dpuser)에서 생성된 별칭을 입력합니다. -
다음을 선택합니다.
-
-
-
생성 및 실행을 선택합니다.
생성된 경로를 검토할 수 있는 배포 서비스 페이지로 돌아갑니다.
-
-
대상 배치 콘솔에서 배포 경로의 결과로 생성된 수신기 경로를 검토합니다.
-
경로를 선택합니다.
-
Path 세부 정보를 검토합니다.
-
작업 5: 초기 로드에 대한 Replicat 추가
-
대상 Oracle 배치에서 체크포인트 테이블을 추가합니다.
-
탐색 메뉴에서 DB 접속을 선택합니다.
-
대상 자율운영 AI 데이터베이스 인스턴스, 체크포인트를 차례로 선택합니다.
-
체크포인트 페이지에서 체크포인트 추가(더하기 아이콘)를 선택합니다.
-
체크포인트 패널에서 스키마 테이블에 대해
SRCMIRROR_OCIGGLL.CHECKTABLE을 입력합니다. -
제출을 선택합니다.
-
-
Replicat를 추가합니다.
-
탐색 메뉴에서 Replicats를 선택합니다.
-
[복제] 페이지에서 복제 추가(더하기 아이콘)를 선택한 후 다음과 같이 [복제 추가] 필드에 정보를 입력합니다.
-
Replicat Information 페이지에서 다음을 수행합니다.
-
복제 유형에 대해 비통합 복제를 선택합니다.
-
프로세스 이름에
RIL과 같은 이름을 입력합니다. -
다음을 선택합니다.
-
- Replicat Options 페이지에서 다음을 수행합니다.
-
복제 추적 이름에 태스크 2의 추적 이름(
I1)을 입력합니다. -
대상 인증서의 경우 자율운영 AI 데이터베이스 접속에 대한 도메인 및 별칭을 선택합니다.
-
체크포인트 테이블의 경우 1단계에서 생성한 체크포인트 테이블을 선택합니다.
-
다음을 선택합니다.
-
-
매개변수 파일 페이지에서
MAP *.*, TARGET *.*;를 다음으로 바꿉니다.MAP SRC_OCIGGLL.*, TARGET SRCMIRROR_OCIGGLL.*;
-
-
생성 및 실행을 선택합니다.
Replicat 세부 정보를 검토할 수 있는 Replicats 페이지로 돌아갑니다.
-
-
Replicat(RIL)를 선택하고 해당 세부정보를 확인합니다.
-
통계를 선택하고 삽입 수를 검토합니다. 페이지를 새로고침하십시오.
-
삽입 수가 변경되지 않으면 초기 로드의 모든 레코드가 로드되어 Replicat를 중지할 수 있습니다(RIL).
-
삽입 수가 계속 증가하면 계속하기 전에 초기 로드 레코드가 모두 로드될 때까지 페이지 새로고침을 계속합니다.
-
-
초기 로드를 확인합니다.
-
Oracle Cloud 콘솔의 자율운영 AI 데이터베이스 세부정보 페이지에서 데이터베이스 작업을 선택한 다음 SQL을 선택합니다.
-
SQL 도구에서 워크시트에 다음 명령문을 각각 입력하고 명령문 실행을 선택합니다.
SELECT * FROM SRCMIRROR_OCIGGLL.SRC_CITY; SELECT * FROM SRCMIRROR_OCIGGLL.SRC_CUSTOMER;출력은 초기 로드의 결과로 대상 데이터베이스 테이블에 로드된 데이터를 반환해야 합니다.
-
태스크 6: 변경 데이터 수집 추출에 대한 분배 경로 생성
-
소스 PostgreSQL 배포 콘솔에서 배포 서비스를 선택합니다.
-
배포 경로 추가를 선택합니다.
-
Add Path Form을 다음과 같이 완성합니다.
-
Path Information 페이지에서 다음을 수행합니다.
-
경로 이름에 이름을 입력합니다.
-
다음을 선택합니다.
-
-
Source Options 페이지에서 다음을 수행합니다.
-
소스 추출의 경우 변경 데이터 캡처 추출(
ECDC)을 선택합니다. -
트레일 이름에 대해 변경 데이터 캡처 추적 파일(
C1)을 선택합니다. -
다음을 선택합니다.
-
-
Target Options 페이지에서 다음을 수행하십시오.
-
대상에서 wss를 선택합니다.
-
대상 호스트의 경우 대상 배치 콘솔 URL을 입력합니다. 이 URL은 배치 세부정보 페이지에서 https:// 또는 후행 슬래시 없이 찾을 수 있습니다.
-
포트 번호에서
443을 입력합니다. -
트레일 이름에
C1을 입력합니다. -
대상 인증 방법의 경우 UserID 별칭을 선택합니다.
-
Domain(도메인)에 도메인 이름을 입력하십시오.
-
별칭에 대해 별칭을 입력합니다
-
-
경로 생성 및 실행을 선택합니다.
-
-
대상 Oracle 배치 콘솔에서 수신기 서비스를 선택한 다음 생성된 수신기 경로를 검토합니다.
작업 7: 변경 데이터 캡처에 대한 Replicat 추가
-
대상 Oracle 배치 콘솔에서 Replicat를 추가합니다.
-
Administration Service 탐색 메뉴에서 Replicats를 선택합니다.
-
Replicats 페이지에서 Add Replicat(더하기 아이콘)를 선택한 후 다음과 같이 Add Replicat 폼을 완성합니다.
-
Replicat Information 페이지에서 다음을 수행합니다.
-
복제 유형에 대해 비통합 복제를 선택합니다.
-
프로세스 이름에
RCDC과 같은 이름을 입력합니다. -
다음을 선택합니다.
-
-
Replicat Options 페이지에서 다음을 수행합니다.
-
복제 추적 이름에 태스크 3의 추적 이름(
C1)을 입력합니다. -
대상 인증서의 경우 자율운영 AI 데이터베이스 접속에 대한 도메인 및 별칭을 선택합니다.
-
체크포인트 테이블에 대해 체크포인트 테이블을 선택합니다.
-
-
Replicat Parameters 페이지에서
MAP *.*, TARGET *.*;를 다음 매핑으로 바꿉니다.MAP SRC_OCIGGLL.*, TARGET SRCMIRROR_OCIGGLL.*;
-
-
생성을 선택합니다. Replicat를 실행하지 마십시오.
-
-
Replicats 페이지에서 초기 로드를 위한 Replicat(RIL)를 선택하고 해당 세부정보를 확인합니다.
-
통계를 선택하고 삽입 수를 검토합니다. 페이지를 새로고침하십시오.
-
삽입 수가 변경되지 않으면 초기 로드의 모든 레코드가 로드되고 RIL(Replicat)을 중지할 수 있습니다.
-
삽입 수가 계속 증가하면 계속하기 전에 초기 로드 레코드가 모두 로드될 때까지 페이지를 계속 새로 고칩니다.
주: 삽입이 표시되지 않는 경우 성능 측정항목 서비스를 선택하고 추출을 선택한 다음 데이터베이스 통계를 선택합니다.
-
-
Replicats 페이지로 돌아가서 RCDC(변경 데이터 캡처용 Replicat)를 시작합니다.
-
변경 데이터 캡처에 대한 복제를 시작한 후 해당 세부정보 및 통계를 검토하여 삽입 수를 확인합니다.
-
복제를 확인합니다.
-
다음 스크립트를 실행하여 PostgreSQL 데이터베이스에 삽입합니다.
Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1000,'Houston',20,743113); Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1001,'Dallas',20,822416); Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1002,'San Francisco',21,157574); Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1003,'Los Angeles',21,743878); Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1004,'San Diego',21,840689); Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1005,'Chicago',23,616472); Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1006,'Memphis',23,580075); Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1007,'New York City',22,124434); Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1008,'Boston',22,275581); Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1009,'Washington D.C.',22,688002); -
소스 PostgreSQL 배치 콘솔에서 변경 데이터 캡처 추출(
ECDC)을 선택한 다음 통계를 선택합니다. src_ociggll.src_city에 10개의 삽입이 있는지 확인합니다.주: Extract가 삽입을 캡처하지 않은 경우
ECDCExtract를 재시작합니다. -
대상 Oracle 배치 콘솔에서 Replicat 이름(
RCDC)을 선택하고 해당 세부정보를 확인한 다음 통계를 확인합니다.SRCMIRROR_OCIGGLL.SRC_CITY에 10개의 삽입이 있는지 확인합니다.
-