데이터 마이그레이션

Oracle SQL Developer를 사용하여 데이터베이스를 이전하고 테이블을 Oracle로 복사합니다.

이전 스크립트 실행

Oracle Autonomous Database에서 master.sql 스크립트를 실행합니다.

  1. Oracle Autonomous Database에 연결합니다.
  2. SQL*Plus 또는 Oracle SQL Developer에서 master.sql를 실행합니다.
    master.sql를 실행하면 DB2INST1 사용자와 Emulate 사용자가 생성됩니다.

Emulate는 내장 프로시저 및 함수의 변환을 처리합니다.

DB2INST1은 자율 데이터베이스에 모든 테이블과 뷰를 생성합니다.

스토리지에 데이터 업로드

해당 지역의 Oracle Cloud Infrastructure Object Storage에 로컬 시스템의 데이터 파일을 업로드합니다.

데이터 파일이 2GB 이하인 경우 콘솔을 사용하여 파일을 업로드할 수 있습니다. 데이터 파일이 2GB를 초과하는 경우 OCI(Oracle Cloud Infrastructure) CLI(명령행 인터페이스)를 사용하여 수동으로 또는 자동으로 객체 스토리지에 업로드할 수 있습니다.

CLI를 사용하는 경우 선택한 부분 크기를 지정하고 Oracle Cloud Infrastructure Object Storage는 객체를 부분으로 분할하고 모든 부품을 자동으로 업로드합니다. 동시에 업로드할 수 있는 최대 부품 수를 설정하도록 선택할 수 있습니다. 기본적으로 CLI는 업로드 가능한 파트 수를 3개로 제한합니다. CLI를 사용할 때는 업로드가 완료될 때 커밋을 수행할 필요가 없습니다.

  1. 콘솔을 사용하여 파일을 업로드하려면 다음을 수행하십시오.
    1. OCI 콘솔을 열고 Object Storage Details로 이동한 다음 버킷 이름을 눌러 세부정보를 확인합니다.
    2. 객체 업로드를 누릅니다.
    3. 업로드할 객체를 선택합니다.

      업로드할 파일을 선택하면 파일이 스크롤 목록에 표시됩니다. 선택한 파일을 업로드하지 않으려면 파일 이름 오른쪽에 있는 X 아이콘을 누릅니다.

      업로드하도록 선택한 파일과 버킷에 이미 저장된 파일의 이름이 동일한 경우, 겹쳐쓰기 경고 메시지가 표시됩니다.

    4. (선택사항) 객체 이름 접두어 필드에서 업로드하도록 선택된 파일의 파일 이름 접두어를 지정합니다.
    5. 객체 업로드를 누릅니다.
      선택한 객체가 업로드되고 버킷의 객체 목록에 표시됩니다.
  2. CLI를 사용하여 로컬 시스템의 데이터 파일을 오브젝트 스토리지 버킷에 업로드하려면 다음과 같이 하십시오.
    1. 명령 프롬프트를 엽니다.
    2. 다음과 같은 명령을 입력합니다.
      oci os object put -ns object_storage_namespace -bn bucket_name --file file_path --name object_name --part-size upload_part_size_in_MiB --parallel-
      upload-count maximum_number_parallel_uploads 
      다음 변수를 사용자 환경에 대한 매개변수로 바꿉니다.
      • object_storage_namespace: 요청에 사용되는 최상위 네임스페이스입니다. 제공하지 않을 경우 oci os ns get에 대한 호출을 사용하여 이 매개변수를 가져올 수 있습니다.
      • bucket_name: 스토리지 버킷의 이름입니다.
      • file_path: 파일 이름을 포함한 전체 파일 경로입니다.
      • object_name: 객체의 이름입니다. 기본값은 경로를 제외한 파일 이름입니다.
      • upload_part_size_in_MiB: mibyte(MiB)의 각 멀티파트 크기
      • maximum_number_parallel_uploads: 동시에 업로드할 수 있는 최대 부품 수입니다. 기본값은 3입니다.

인증서 생성

인증서를 생성하여 Autonomous Data Warehouse에 액세스한 다음 데이터 웨어하우스에 객체 스토리지 인증서를 저장합니다.

SQL Developer는 클라이언트 인증서가 포함된 전자 지갑을 사용하여 Oracle Autonomous Data Warehouse에 액세스할 수 있습니다. 전자 지갑을 생성하려면 Oracle Autonomous Data Warehouse에 대한 관리자 계정이 있어야 합니다.

  1. Oracle Autonomous Data Warehouse용 서비스 콘솔로 이동합니다.
  2. 관리를 누릅니다.
  3. [관리] 페이지에서 클라이언트 인증서 다운로드를 누릅니다.
  4. 전자 지갑 비밀번호를 입력하고 클라이언트 인증서에서 비밀번호를 확인합니다.
  5. 클라이언트 보안 인증서 zip 파일을 저장하려면 다운로드를 누릅니다.
    무단 데이터베이스 액세스를 방지하려면 이 파일을 보호해야 합니다.
  6. Oracle Cloud Infrastructure 콘솔에 사인인하고, 사용자 아이콘을 누르고, 사용자 설정을 선택합니다.
  7. [리소스] 섹션에서 인증 토큰을 누른 다음 토큰 생성을 누릅니다.
  8. 인증 토큰에 대한 설명을 제공하고 토큰 생성을 누릅니다.
    토큰이 표시되면 복사합니다.
  9. 복사 링크를 누르고 토큰 정보를 보안 위치에 저장합니다.
    대화상자를 닫으면 콘솔에 토큰이 다시 표시되지 않습니다.
  10. 닫기를 누릅니다.

Autonomous Database로 데이터 이전

Oracle SQL Developer Web을 사용하여 Oracle Autonomous Data Warehouse에 데이터를 삽입합니다.

  1. Oracle Autonomous Data Warehouse의 서비스 콘솔로 이동합니다.
  2. 개발, SQL Developer Web을 차례로 누릅니다.
  3. Oracle Autonomous Data Warehouse 인스턴스에 대한 관리자 사용자 이름과 비밀번호를 입력한 다음 사인인을 누릅니다.
  4. 관리 사용자로 로그인하여 Oracle SQL Developer Web에서 Oracle Autonomous Data Warehouse로 연결합니다.
  5. Oracle SQL Developer 웹에서 다음 SQL 문을 실행하여 표시된 매개변수와 플래그를 대체하는 객체 저장소 인증서를 생성합니다.
    SET DEFINE OFF 
    BEGIN 
    DBMS_CLOUD.CREATE_CREDENTIAL( 
    credential_name => 'ADW_CREDENTIALS', 
    username => 'adwc_user@example.com', 
    password => 'auth token' 
    ); 
    END;
     /
    다음 변수를 사용자 환경에 대한 매개변수로 바꿉니다.
    • ADW_CREDENTIALS: 저장할 Autonomous Data Warehouse 인증서의 이름입니다.
    • adwc_user@example.com: 자율 데이터 웨어하우스 사용자의 사용자 이름입니다. 사용자 이름이 사용자 설정에 나타납니다. 통합 계정을 사용하는 경우 전체 사용자 이름(예: service_name/user_name>@example.com)을 제공해야 합니다.
    • auth token: 이전에 생성한 인증 토큰입니다.
  6. 객체 저장소 버킷에 파일을 나열하여 사용자 이름과 비밀번호를 검증합니다.
    select object_name, bytes from dbms_cloud.list_objects('Credential Name','https://objectstorage.region.oraclecloud.com/n/tenancy/b/Bucket name/');
    BE
    다음 변수를 사용자 환경에 대한 매개변수로 바꿉니다.
    • Credential Name
    • 오브젝트 스토리지 링크에 region, tenancyBucket name이 있습니다.
  7. Oracle SQL Developer 웹 또는 SQL Developer를 사용하여 방금 생성한 테이블로 데이터를 로드합니다.
    BEGIN   
          DBMS_CLOUD.COPY_DATA(     
    table_name =>'ARTIST', 
    schema_name => 'DB2INST1',
    credential_name => 'ADW_CREDENTIALS ',     
    file_uri_list =>object storage link,      
    format => json_object('delimiter' value '"#EOFD#"','escape' value true, 'recorddelimiter' value '"<EORD>\n"') );  
    END;
    /
    COMMIT;
    다음 변수를 사용자 환경에 대한 매개변수로 바꿉니다.
    • Table name
    • 스키마 이름
    • Credential Name
    • object storage link
    • EORD
  8. 데이터가 테이블에 로드되었는지 확인합니다.
    select * from DB2INST1.artist