주:
- 이 자습서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 자격 증명, 테넌시 및 구획에 예제 값을 사용합니다. 실습을 완료했으면 이러한 값을 자신의 클라우드 환경과 관련된 값으로 대체하십시오.
OCI를 사용하여 PostgreSQL를 통해 온프레미스 PostgreSQL 데이터베이스를 OCI 데이터베이스로 마이그레이션 GoldenGate
소개
PostgreSQL가 포함된 Oracle Cloud Infrastructure Database(OCI Database with PostgreSQL)는 데이터베이스 테이블이 생성되거나 삭제될 때 스토리지를 자동으로 확장하는 완전 관리형 서비스입니다. 이렇게 하면 관리를 간소화하고 스토리지 비용을 최적화할 수 있습니다. 전송 중이거나 유휴 상태인 데이터는 암호화됩니다.
OCI GoldenGate은 논리적 온라인 마이그레이션을 지원하여 원활한 전환과 PostgreSQL 서비스 데이터베이스를 갖춘 OCI Database의 거의 제로 다운타임 마이그레이션을 지원합니다. 이 기능은 VM의 온프레미스 PostgreSQL 데이터베이스를 PostgreSQL 서비스 버전 14, 15 데이터베이스 및 이후 릴리스가 포함된 OCI 데이터베이스로 마이그레이션할 수 있도록 지원합니다.
이 사용지침서에서는 OCI GoldenGate를 통해 VM 버전 14의 온프레미스 PostgreSQL 데이터베이스를 PostgreSQL 서비스 데이터베이스 버전 14의 OCI 데이터베이스로 마이그레이션하는 방법을 설명합니다. 초기 로드는 pg_dump
(pg_dumpall
)/pg_restore
백업 유틸리티를 사용하여 수행됩니다. 소스 데이터베이스의 백업 또는 스냅샷이 생성됩니다. 소스(온프레미스 VM PostgreSQL 데이터베이스) 및 대상(OCI 데이터베이스와 PostgreSQL 서비스)을 동기화하기 위해 대상 시스템에서 복원된 후 OCI GoldenGate CDC(Change Data Capture) 복제가 수행됩니다.
다음 이미지는 VM의 온프레미스 PostgreSQL 데이터베이스를 OCI GoldenGate을 사용하여 PostgreSQL 서비스를 사용하는 OCI 데이터베이스로 이전하기 위한 구조를 보여줍니다.
목표
- OCI GoldenGate을 사용하여 PostgreSQL 서비스를 통해 OCI 데이터베이스로 마이그레이션합니다.
필요 조건
주: 이러한 필요 조건은 VM의 온프레미스 PostgreSQL 데이터베이스(소스)에 대한 것입니다.
-
test_decoding
플러그인: OCI GoldenGate를 사용하려면 PostgreSQL 데이터베이스에test_decoding
데이터베이스 플러그인을 설치해야 합니다. 이 플러그인은 기본적으로 설치할 수 없습니다. -
PostgreSQL 제공 패키지:
postgresqlversion#-contrib
패키지가 데이터베이스 서버에 설치되어 있는지 확인합니다. -
클라이언트 라이브러리 호환성: PostgreSQL 클라이언트 라이브러리는 데이터베이스 버전과 일치해야 합니다. 10 미만의 클라이언트 버전은 지원되지 않습니다.
sudo yum install postgresql14-contrib (our database is version 14)
작업 1: 소스 데이터베이스 환경 준비
-
다음 질의를 실행하여 복제 사용자를 생성합니다. 이 사용자는 OCI 콘솔에서 접속을 생성하는 동안 사용되어야 합니다.
create user ggadmin with password ‘<<password>>’; GRANT ALL PRIVILEGES ON DATABASE campaign TO ggadmin; alter user ggadmin replication; alter user ggadmin with superuser;
-
수정하려면
wal_level
에 대해 다음 매개변수를 변경하고 데이터베이스 시스템을 재시작해야 합니다.ALTER SYSTEM SET wal_level = logical; ALTER SYSTEM SET track_commit_timestamp = on;
작업 2: OCI GoldenGate 프로비전 및 접속 구성
-
OCI 콘솔에 로그인하여 PostgreSQL 데이터베이스에 대한 OCI GoldenGate 배치를 생성합니다.
-
OCI PostgreSQL에 대한 OCI GoldenGate 접속을 생성합니다.
-
소스 접속 세부정보를 입력하고 생성을 누릅니다.
-
대상 접속 세부정보를 입력하고 생성을 누릅니다.
주: VM에 대한 접속이 생성된 경우 SSL 프로토콜은 일반이어야 하고 PostgreSQL 서비스가 포함된 OCI 데이터베이스의 경우 SSL 프로토콜은 요구 사항이어야 합니다.
-
-
생성을 눌러 연결을 만듭니다.
작업 3: 소스 데이터베이스 복제 설정
-
OCI GoldenGate에서 추출을 생성합니다.
주: 모든 적격 스키마에 대해 소스 데이터베이스에 스키마 trandata를 추가하고 제출을 누릅니다.
주: 생성을 누르고 생성 및 실행을 누르지 마십시오.
-
소스 데이터베이스에서 Extract 프로세스의 시작점을 생성하고 PostgreSQL 스냅샷을 배치하는 데 사용할 임시 복제 슬롯을 생성합니다. 이 작업은
CREATE_REPLICATION_SLOT
명령을 사용하여 수행할 수 있습니다. 단계에 따라 임시 복제 슬롯을 구성합니다.-
postgres
또는ggadmin
사용자와 같이 복제 롤을 가진 사용자로psql
를 사용하여 PostgreSQL 데이터베이스에 로그인합니다. -
replication=database
옵션을 사용합니다.psql "dbname=pgsource replication=database user=postgres" CREATE_REPLICATION_SLOT tslot TEMPORARY LOGICAL test_decoding EXPORT_SNAPSHOT; slot_name | consistent_point | snapshot_name | output_plugin ----------+------------------+---------------+--------------------- tslot | 1/4232A6B0 | 00000007-00001142-1 | test_decoding
-
snapshot_name
및consistent_point
세부 정보를 확인합니다.참고:
consistent_point
는 OCI GoldenGate Extract의 위치를 지정하고 Extract를 시작하여 CDC 트랜잭션을 캡처하는 데 사용되어야 합니다.snapshot_name
는pg_dump
및pg_restore
를 사용하여 소스에서 대상 데이터베이스로 초기 로드하는 데 사용해야 합니다.
-
-
OCI Goldengate Extract를
consistent_point
LSN(로그 시퀀스 번호)에 배치합니다.생성된 CDC 추출이 중지됨 상태입니다.
작업에서 ... 아이콘을 누르고 변경을 선택합니다.
LSN의 위치를 작업 3.2에서 캡처된
consistent_point
로 변경합니다. -
제출을 누르고 추출 프로세스를 시작합니다.
Extract가 실행 중 상태가 되며 변경된 위치에서 CDC 캡처가 시작됩니다.
작업 4: 소스 및 대상 데이터베이스에서 백업 및 복원 실행
-
다음 명령을 실행하여 소스 primary database를 백업합니다.
nohup /u01/pgsql-14/bin/pg_dump -h <<Sourceip>> -p 5432 -U <<superuser/ggadmin user>> –snapshot=00000007-00001142-1 -F c -b -v -f latestdump.db pgsource &
-
다음 명령을 실행하여 덤프를 Target Database로 복원합니다.
nohup /u01/pgsql-14/bin/pg_restore -h <<Targetip>> -p 5432 -U admin -d pgtarget -v latestdump.db &
작업 5: Target Database 복제 설정
-
OCI GoldenGate 대상 데이터베이스의 사용 가능한 스키마에 체크포인트 테이블을 생성하고 제출을 누릅니다.
-
대상 데이터베이스에 CDC 데이터를 적용하려면 대상 데이터베이스 접속을 사용하여 복제 프로세스를 생성합니다.
-
submit을 누르고 Replicat를 시작합니다. 동기화 할 수 있게 합니다.
작업 6: 실제 이전 수행
PostgreSQL 서비스를 통해 온프레미스 VM PostgreSQL 데이터베이스에서 OCI Database로 컷오버합니다.
-
소스 VM 데이터베이스에 접속된 애플리케이션 경사로를 수행합니다.
-
소스 VM 데이터베이스에 대한 데이터베이스 접속이 없는지 확인합니다.
-
Extract/Replicat 프로세스에 지연이 없는지 확인하고, Extract/Replicat 프로세스를 정지하는 PostgreSQL 서비스를 통해 애플리케이션을 대상 OCI 데이터베이스로 가리키는 컷오버를 수행합니다.
작업 7: 이전 검증
PostgreSQL를 사용하여 OCI Database의 대상 데이터베이스 시스템에서 전송된 데이터베이스 객체 및 데이터를 확인하여 마이그레이션이 성공했으며 이슈나 불일치가 없는지 확인합니다.
관련 링크
- OCI GoldenGate를 사용하여 PostgreSQL를 통해 온프레미스 PostgreSQL 데이터베이스를 OCI 데이터베이스로 원활하게 마이그레이션
- 데이터베이스 임포트, 익스포트 및 이전
- pg_dump를 사용하여 PostgreSQL 환경 간의 정확한 인스턴스화
확인
- 작성자 - Saravanadurai Rajendran(리프트 구현 전문가 - 데이터베이스)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Migrate an On-Premises PostgreSQL Database to OCI Database with PostgreSQL using OCI GoldenGate
G29129-01
Copyright ©2025, Oracle and/or its affiliates.