주:
- 이 사용지침서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 예제 값을 사용합니다. 실습을 완료할 때 이러한 값을 클라우드 환경과 관련된 값으로 대체하십시오.
OCI Object Storage 및 Rclone을 사용하여 PostgreSQL를 통해 Oracle Cloud Infrastructure Database로 마이그레이션
소개
Oracle Cloud Infrastructure Database with PostgreSQL(OCI Database with PostgreSQL)는 패치, 백업 및 스토리지 관리와 같은 일상적인 작업에 소요되는 시간을 줄이는 완전 관리형 서비스입니다. 주요 기능으로는 스토리지 계층에서 SQL 트랜잭션 처리 엔진을 분리하는 데이터베이스에 최적화된 스토리지 아키텍처, 사용자 작업 향상을 위한 여러 복제본, 지역 간 백업 복사본, 오픈 소스 PostgreSQL 데이터베이스와의 완벽한 호환성이 있습니다.
주: PostgreSQL 버전 14 및 15가 지원됩니다(2025년 6월 기준).
OCI Object Storage는 모든 유형의 데이터에 대해 확장 가능하고 내구성이 뛰어난 저비용 스토리지를 제공합니다. 이 자습서에서는 PostgreSQL 덤프 파일을 저장하는 데 사용됩니다.
Rclone은 클라우드 저장소에서 파일을 관리하거나 전송하는 오픈 소스 명령줄 프로그램입니다.
이 사용지침서에서는 온프레미스 PostgreSQL 데이터베이스에서 PostgreSQL를 사용하여 OCI 데이터베이스로 데이터를 효과적으로 마이그레이션하는 방법에 대해 설명합니다. 빠른 멀티파트 업로드 및 마운트 기능을 위해 비용 효율적인 OCI Object Storage 및 Rclone을 활용하는 pg_dump
및 pg_restore
유틸리티를 사용할 것입니다.
목표
-
pg_dump
를 사용하여 PostgreSQL 데이터베이스를 익스포트합니다. -
rclone을 사용하여 익스포트된 데이터 파일을 OCI Object Storage로 복사합니다.
-
rclone으로 OCI Object Storage를 OCI Compute에 마운트합니다.
-
pg_restore
를 사용하여 OCI Object Storage에서 직접 데이터를 가져옵니다.
필수 조건
-
OCI 계정에 액세스합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
-
공용 및 전용 서브넷이 있는 VCN은 전용 서브넷의 OCI 보안 목록에서
5432
포트가 열려 있는지 확인합니다. -
Rclone 및 PostgreSQL 클라이언트 툴이 설치된 공용 서브넷의 OCI 컴퓨트 인스턴스(이 자습서에서는 배스천이라고 하며 OCI 배스천 서비스와 혼합하지 않음)
-
이 자습서는 Oracle Linux 8을 기반으로 하며 다른 운영 체제에 따라 명령이 다를 수 있습니다.
-
프라이빗 서브넷에서 PostgreSQL를 사용하여 OCI 데이터베이스를 프로비전했습니다. 자세한 내용은 PostgreSQL를 사용하여 OCI 데이터베이스 배포를 참조하십시오.
-
PostgreSQL 클라이언트 툴이 설치된 로컬 PostgreSQL 온프레미스 인스턴스입니다.
참고 OCI Database with PostgreSQL는 OCI Always Free Tier에서 사용할 수 없습니다.
작업 1: OCI API 키 사용자 인증서 생성
-
OCI 콘솔에 로그인하고 프로파일 메뉴
을 누른 다음 내 프로파일을 선택합니다.
-
리소스에서 API 키를 누릅니다.
-
API 키 목록의 왼쪽 위에 있는 API 키 추가를 누릅니다.
-
Private Key 다운로드를 누르고 키를
.oci
디렉토리에 저장합니다. 대부분의 경우 공개 키를 다운로드할 필요가 없습니다. -
추가를 누릅니다.
키가 추가되고 구성 파일 미리보기가 표시됩니다. 파일 조각에는 구성 파일을 만드는 데 필요한 필수 매개변수와 값이 포함되어 있습니다.
user
: 키 쌍이 추가되고 있는 사용자의 OCID(Oracle Cloud Identifier)입니다.fingerprint
: 방금 추가된 키의 지문이다.tenancy
: 테넌시의 OCID입니다.region
: OCI 콘솔에서 현재 선택된 영역입니다.key_file
: 다운로드한 개인 키 파일의 경로입니다. 이 값은 프라이빗 키 파일을 저장한 파일 시스템의 경로로 업데이트해야 합니다.
자세한 내용은 필수 키 및 OCID를 참조하십시오.
작업 2: pg_dump
를 사용하여 PostgreSQL 데이터 익스포트
온프레미스 호스트에서 pg_dump
를 사용하여 PostgreSQL 데이터베이스를 익스포트합니다.
pg_dump -U your_username -h your_host -p your_port -F c -f /path/to/output.dump your-database-name
-U your_username
: 데이터베이스 사용자 이름입니다.-h your_host
: 데이터베이스가 실행 중인 호스트(예:localhost
)입니다.-p your_port
: 포트 번호입니다(기본값은 대개5432
).-F c
: 출력의 형식입니다(c는pg_restore
를 통해 유연하고 복원할 수 있는 사용자정의용).-f /path/to/output.dump
: 덤프가 저장될 파일 경로입니다.
your-database-name: 덤프할 데이터베이스의 이름입니다.
작업 3: Rclone으로 데이터 설치, 구성 및 전송
-
온프레미스 호스트에서 rclone을 설치합니다.
sudo -v ; curl https://rclone.org/install.sh | sudo bash
-
다음 명령을 실행하여 rclone을 구성합니다.
rclone config
OCI Object Storage 연결 구성에 대한 자세한 내용은 복제 설명서를 참조하십시오. 옵션 2: OCI 사용자 및 API 키를 인증에 사용합니다(태스크 1에서 생성됨).
-
rclone 멀티파트 업로드를 사용하여 익스포트된 데이터베이스를 OCI Object Storage 버킷으로 복사합니다. 예:
rclone --progress --oos-no-check-bucket --fast-list --no-traverse --transfers 8 --oos-chunk-size 10M --oos-upload-concurrency 10 --checkers 10 copy <source> <dest>
예제 명령 및 출력:
rclone --progress --oos-no-check-bucket --fast-list --no-traverse --transfers 8 --oos-chunk-size 10M --oos-upload-concurrency 10 --checkers 10 copy output.dump OCI:bucket_db-dump Transferred: 4.500 KiB / 4.500 KiB, 100%, 0 B/s, ETA - Transferred: 1 / 1, 100% Elapsed time: 0.0s
자세한 내용은 Rclone을 사용하여 Oracle Analytics Cloud에서 인사이트를 빌드하는 Oracle Cloud에 데이터 복사를 참조하십시오.
작업 4: Rclone을 사용하여 OCI Object Storage 마운트
-
OCI 컴퓨트 배스천 호스트에 PostgreSQL 툴을 설치합니다.
dnf install postgresql
PostgreSQL를 사용하는 OCI 데이터베이스는 버전 14 및 15를 지원하므로 이에 따라 PostgreSQL 툴을 설치합니다.
sudo dnf module reset postgresql sudo dnf module enable postgresql:15 sudo dnf install postgresql
-
배스천 호스트에서 rclone 설치 및 구성 - 작업 3, 단계 2를 반복합니다.
-
작업 3에 복사된 데이터로 버킷을 마운트합니다. 예:
/mnt/oci
.rclone mount OCI:bucket_db-dump /mnt/oci --vfs-cache-mode full --log-file /home/opc/rclone.log --config ~/.config/rclone/rclone.conf --log-level DEBUG --daemon --attr-timeout 1s
-
마운트된 OCI Object Storage에서 파일을 확인합니다.
ls /mnt/oci
작업 5: pg_restore
를 사용하여 PostgreSQL로 OCI 데이터베이스 복원
마운트된 파일 시스템을 사용하여 PostgreSQL 데이터베이스에서 병렬 작업을 백그라운드에서 데몬 프로세스로 사용하여 OCI 데이터베이스를 복원합니다.
nohup pg_restore -d test -h <OCI PostgreSQL hostname or IP> -p 5432 -U <dbuser> -v -c -j 10 -F c /mnt/oci/output.dump >import.log 2>&1
pg_restore를 실행하기 전에 대상 데이터베이스(이 예의 경우 test)가 존재해야 합니다. 데이터베이스를 미리 생성하려면 다음과 같이 하십시오.
createdb -U postgres -h localhost -p 5432 test
진행률 세부정보를 보려면 –verbose를 추가하고, 객체를 재생성하기 전에 삭제하려면 –clean을 추가할 수도 있습니다.
작업 6: 복원된 데이터베이스 확인
psql
를 사용하여 PostgreSQL로 OCI 데이터베이스에 로그인하고 복원된 데이터의 완전성을 확인합니다.
psql -h <OCI PostgreSQL hostname or IP> -p 5432 -U <dbuser> -d test
이제 SQL select 문을 사용하여 테이블의 행 수를 확인할 수 있습니다.
관련 링크
승인
- 작성자 - Sylwester Dec(OCI 오픈 소스 데이터 블랙 벨트)
추가 학습 자원
docs.oracle.com/learn에서 다른 랩을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Migrate to Oracle Cloud Infrastructure Database with PostgreSQL using OCI Object Storage and Rclone
G37265-01
Copyright ©2025, Oracle and/or its affiliates.