주:

OCI Object Storage 및 Rclone을 사용하여 PostgreSQL를 통해 Oracle Cloud Infrastructure Database로 마이그레이션

소개

Oracle Cloud Infrastructure Database with PostgreSQL(OCI Database with PostgreSQL)는 패치, 백업 및 스토리지 관리와 같은 일상적인 작업에 소요되는 시간을 줄이는 완전 관리형 서비스입니다. 주요 기능으로는 스토리지 계층에서 SQL 트랜잭션 처리 엔진을 분리하는 데이터베이스에 최적화된 스토리지 아키텍처, 사용자 작업 향상을 위한 여러 복제본, 지역 간 백업 복사본, 오픈 소스 PostgreSQL 데이터베이스와의 완벽한 호환성이 있습니다.

PostgreSQL 아키텍처를 사용하는 OCI 데이터베이스

주: PostgreSQL 버전 14 및 15가 지원됩니다(2025년 6월 기준).

OCI Object Storage는 모든 유형의 데이터에 대해 확장 가능하고 내구성이 뛰어난 저비용 스토리지를 제공합니다. 이 자습서에서는 PostgreSQL 덤프 파일을 저장하는 데 사용됩니다.

Rclone은 클라우드 저장소에서 파일을 관리하거나 전송하는 오픈 소스 명령줄 프로그램입니다.

이 사용지침서에서는 온프레미스 PostgreSQL 데이터베이스에서 PostgreSQL를 사용하여 OCI 데이터베이스로 데이터를 효과적으로 마이그레이션하는 방법에 대해 설명합니다. 빠른 멀티파트 업로드 및 마운트 기능을 위해 비용 효율적인 OCI Object Storage 및 Rclone을 활용하는 pg_dumppg_restore 유틸리티를 사용할 것입니다.

목표

필수 조건

참고 OCI Database with PostgreSQL는 OCI Always Free Tier에서 사용할 수 없습니다.

간소화된 아키텍처

작업 1: OCI API 키 사용자 인증서 생성

  1. OCI 콘솔에 로그인하고 프로파일 메뉴 프로파일 메뉴 아이콘을 누른 다음 내 프로파일을 선택합니다.

  2. 리소스에서 API 키를 누릅니다.

  3. API 키 목록의 왼쪽 위에 있는 API 키 추가를 누릅니다.

  4. Private Key 다운로드를 누르고 키를 .oci 디렉토리에 저장합니다. 대부분의 경우 공개 키를 다운로드할 필요가 없습니다.

  5. 추가를 누릅니다.

키가 추가되고 구성 파일 미리보기가 표시됩니다. 파일 조각에는 구성 파일을 만드는 데 필요한 필수 매개변수와 값이 포함되어 있습니다.

자세한 내용은 필수 키 및 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

작업 3: Rclone으로 데이터 설치, 구성 및 전송

  1. 온프레미스 호스트에서 rclone을 설치합니다.

    sudo -v ; curl https://rclone.org/install.sh | sudo bash
    
  2. 다음 명령을 실행하여 rclone을 구성합니다.

    rclone config
    

    OCI Object Storage 연결 구성에 대한 자세한 내용은 복제 설명서를 참조하십시오. 옵션 2: OCI 사용자 및 API 키를 인증에 사용합니다(태스크 1에서 생성됨).

  3. 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 마운트

  1. 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
    
  2. 배스천 호스트에서 rclone 설치 및 구성 - 작업 3, 단계 2를 반복합니다.

  3. 작업 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
    
  4. 마운트된 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 문을 사용하여 테이블의 행 수를 확인할 수 있습니다.

승인

추가 학습 자원

docs.oracle.com/learn에서 다른 랩을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.