Amazon RDS for SQL Server의 Oracle OLEDB 포함 연결된 서버 지원 - Amazon Relational Database Service

Amazon RDS for SQL Server의 Oracle OLEDB 포함 연결된 서버 지원

RDS for SQL Server의 OLEDB에 대한 Oracle Provider를 지원하는 연결된 서버를 사용하면 Oracle 데이터베이스의 외부 데이터 소스에 액세스할 수 있습니다. 원격 Oracle 데이터 소스의 데이터를 읽고 RDS for SQL Server DB 인스턴스 외부에 있는 원격 Oracle 데이터베이스 서버를 상대로 명령을 실행할 수 있습니다. Oracle OLEDB 포함 연결된 서버를 사용하면 다음을 수행할 수 있습니다.

  • SQL Server 이외의 데이터 소스에 바로 액세스

  • 데이터를 옮기지 않고도 동일한 쿼리를 이용해 다양한 Oracle 데이터 소스를 쿼리

  • 엔터프라이즈 에코시스템 전반의 데이터 소스에 대한 분산 쿼리, 업데이트, 명령 및 트랜잭션 실행

  • Microsoft 비즈니스 인텔리전스 제품군(SSIS, SSRS, SSAS) 내에서 Oracle 데이터베이스로의 연결 통합

  • Oracle 데이터베이스에서 RDS for SQL Server로의 마이그레이션

기존 또는 새 RDS for SQL Server DB 인스턴스에서 Oracle용 연결된 서버를 하나 이상 활성화할 수 있습니다. 그런 다음 외부 Oracle 데이터 소스를 DB 인스턴스와 통합할 수 있습니다.

지원되는 버전 및 리전

RDS for SQL Server는 다음 버전의 SQL Server Standard 및 Enterprise Edition에 대해 모든 리전에서 Oracle OLEDB가 포함된 연결된 서버를 지원합니다.

  • SQL Server 2022, 모든 버전

  • SQL Server 2019, 모든 버전

  • SQL Server 2017, 모든 버전

Oracle OLEDB가 포함된 연결된 서버는 다음 Oracle Database 버전에서 지원됩니다.

  • Oracle Database 21c, 모든 버전

  • Oracle Database 19c, 모든 버전

  • Oracle Database 18c, 모든 버전

제한 및 권장 사항

Oracle OLEDB가 포함된 연결된 서버에 적용되는 다음과 같은 제한 및 권장 사항을 염두에 두십시오.

  • 각 RDS for SQL Server DB인스턴스의 보안 그룹에 적절한 TCP 포트를 추가하여 네트워크 트래픽을 허용하십시오. 예를 들어 EC2 Oracle DB 인스턴스와 RDS for SQL Server DB 인스턴스 간에 연결된 서버를 구성하는 경우, EC2 Oracle DB 인스턴스의 IP 주소에서 오는 트래픽을 허용해야 합니다. 또한 SQL Server가 데이터베이스 통신을 수신하는 데 사용하는 포트에서 트래픽을 허용해야 합니다. 보안 그룹에 대한 자세한 정보는 보안 그룹을 통한 액세스 제어 단원을 참조하십시오.

  • 옵션 그룹에서 OLEDB_ORACLE 옵션을 켜거나, 해제하거나, 수정한 후에는 RDS for SQL Server DB 인스턴스를 재부팅합니다. 옵션 그룹 상태에 이러한 이벤트의 pending_reboot와 필수 여부가 표시됩니다.

  • Oracle 데이터 소스의 사용자 이름과 암호를 사용한 단순 인증만 지원됩니다.

  • Open Database Connectivity(ODBC) 드라이버는 지원되지 않습니다. OLEDB 드라이버 최신 버전만 지원됩니다.

  • 분산 트랜잭션(XA)은 지원됩니다. 분산 트랜잭션을 활성화하려면 DB 인스턴스의 Option Group(옵션 그룹)에서 MSDTC 옵션을 켜고 XA 트랜잭션이 켜져 있는지 확인합니다. 자세한 내용은 RDS for SQL Server에서 Microsoft Distributed Transaction Coordinator 지원 섹션을 참조하세요.

  • 연결 문자열의 바로가기로 사용할 데이터 소스 이름(DSN) 생성은 지원되지 않습니다.

  • OLEDB 드라이버 추적은 지원되지 않습니다. SQL Server 확장 이벤트를 사용하여 OLEDB 이벤트를 추적할 수 있습니다. 자세한 내용은 RDS for SQL Server에서 확장 이벤트 설정 섹션을 참조하세요.

  • SQL Server Management Studio(SSMS) 를 사용하여 Oracle 연결된 서버의 카탈로그 폴터에 액세스하는 작업은 지원되지 않습니다.

Oracle이 포함된 연결된 서버 활성화

OLEDB_ORACLE 옵션을 RDS for SQL Server DB 인스턴스에 추가하여 Oracle이 포함된 연결된 서버를 활성화합니다. 다음 프로세스를 사용합니다.

  1. 새 옵션 그룹을 생성하거나 기존 옵션 그룹을 선택합니다.

  2. [OLEDB_ORACLE] 옵션을 옵션 그룹에 추가합니다.

  3. 사용할 OLEDB 드라이버 버전을 선택합니다.

  4. 옵션 그룹을 DB 인스턴스에 연결합니다.

  5. DB 인스턴스를 재부팅합니다.

OLEDB_ORACLE용 옵션 그룹 생성

Oracle이 포함된 연결된 서버를 사용하려면 사용할 DB 인스턴스의 SQL Server 에디션 및 버전에 해당하는 옵션 그룹을 생성하거나 수정합니다. 이 절차를 완료하려면 AWS Management Console 또는 AWS CLI를 사용합니다.

다음 절차에서는 SQL Server Standard Edition 2019에 대한 옵션 그룹을 생성합니다.

옵션 그룹을 생성하려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 옵션 그룹을 선택합니다.

  3. 그룹 생성을 선택합니다.

  4. 보안 그룹 생성 창에서 다음과 같이 합니다.

    1. [이름(Name)]에 AWS 계정 내에서 쉽게 식별할 수 있는 옵션 그룹 이름을 입력합니다(예: oracle-oledb-se-2019). 이름은 글자, 숫자 및 하이픈만 사용 가능합니다.

    2. 설명에 옵션 그룹에 대한 간단한 설명을 입력합니다(예: OLEDB_ORACLE option group for SQL Server SE 2019). 이 설명은 표시 용도로만 사용됩니다.

    3. 엔진에 대해 sqlserver-se를 선택합니다.

    4. Major engine version(메이저 엔진 버전)에 15.00을 선택합니다.

  5. 생성을 선택합니다.

다음 절차에서는 SQL Server Standard Edition 2019에 대한 옵션 그룹을 생성합니다.

옵션 그룹을 생성하려면
  • 다음 명령 중 하나를 실행합니다.

    Linux, macOS, Unix:

    aws rds create-option-group \ --option-group-name oracle-oledb-se-2019 \ --engine-name sqlserver-se \ --major-engine-version 15.00 \ --option-group-description "OLEDB_ORACLE option group for SQL Server SE 2019"

    Windows의 경우:

    aws rds create-option-group ^ --option-group-name oracle-oledb-se-2019 ^ --engine-name sqlserver-se ^ --major-engine-version 15.00 ^ --option-group-description "OLEDB_ORACLE option group for SQL Server SE 2019"

옵션 그룹에 OLEDB_ORACLE 옵션 추가

그런 다음 AWS Management Console 또는 AWS CLI를 사용하여 OLEDB_ORACLE 옵션을 옵션 그룹에 추가합니다.

OLEDB_ORACLE 옵션을 추가하려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 옵션 그룹을 선택합니다.

  3. 이 예제에서는 방금 생성한 옵션 그룹인 oracle-oledb-se-2019를 선택합니다.

  4. 옵션 추가를 선택합니다.

  5. Option details(옵션 세부 정보)에서 Option name(옵션 이름)으로 OLEDB_ORACL를 선택합니다.

  6. 예약에서 옵션을 즉시 추가할지 또는 다음 유지 관리 기간에 추가할지를 선택합니다.

  7. 옵션 추가를 선택합니다.

OLEDB_ORACLE 옵션을 추가하려면
  • [OLEDB_ORACLE] 옵션을 옵션 그룹에 추가합니다.

    Linux, macOS, Unix:

    aws rds add-option-to-option-group \ --option-group-name oracle-oledb-se-2019 \ --options OptionName=OLEDB_ORACLE \ --apply-immediately

    Windows의 경우:

    aws rds add-option-to-option-group ^ --option-group-name oracle-oledb-se-2019 ^ --options OptionName=OLEDB_ORACLE ^ --apply-immediately

옵션 그룹을 DB 인스턴스와 연결

OLEDB_ORACLE 옵션 그룹 및 파라미터 그룹을 DB 인스턴스와 연결하려면 AWS Management Console 또는 AWS CLI를 사용합니다.

Oracle용 연결된 서버 활성화를 완료하려면 OLEDB_ORACLE 옵션 그룹을 새 DB 인스턴스 또는 기존 DB 인스턴스와 연결합니다.

  • 새 DB 인스턴스의 경우 인스턴스를 시작할 때 이러한 그룹을 연결합니다. 자세한 내용은 Amazon RDS DB 인스턴스 생성 섹션을 참조하세요.

  • 기존 DB 인스턴스의 경우 인스턴스를 수정하여 그룹을 연결합니다. 자세한 내용은 Amazon RDS DB 인스턴스 수정 섹션을 참조하세요.

OLEDB_ORACLE 옵션 그룹 및 파라미터 그룹을 새 DB 인스턴스 또는 기존 DB 인스턴스와 연결할 수 있습니다.

OLEDB_ORACLE 옵션 그룹 및 파라미터 그룹을 사용하여 인스턴스를 생성하려면
  • 옵션 그룹을 생성할 때 사용한 것과 동일한 DB 엔진 유형과 메이저 버전을 지정합니다.

    Linux, macOS, Unix:

    aws rds create-db-instance \ --db-instance-identifier mytestsqlserveroracleoledbinstance \ --db-instance-class db.m5.2xlarge \ --engine sqlserver-se \ --engine-version 15.0.4236.7.v1 \ --allocated-storage 100 \ --manage-master-user-password \ --master-username admin \ --storage-type gp2 \ --license-model li \ --domain-iam-role-name my-directory-iam-role \ --domain my-domain-id \ --option-group-name oracle-oledb-se-2019 \ --db-parameter-group-name my-parameter-group-name

    Windows의 경우:

    aws rds create-db-instance ^ --db-instance-identifier mytestsqlserveroracleoledbinstance ^ --db-instance-class db.m5.2xlarge ^ --engine sqlserver-se ^ --engine-version 15.0.4236.7.v1 ^ --allocated-storage 100 ^ --manage-master-user-password ^ --master-username admin ^ --storage-type gp2 ^ --license-model li ^ --domain-iam-role-name my-directory-iam-role ^ --domain my-domain-id ^ --option-group-name oracle-oledb-se-2019 ^ --db-parameter-group-name my-parameter-group-name
인스턴스를 수정하여 OLEDB_ORACLE 옵션 그룹을 연결하려면
  • 다음 명령 중 하나를 실행합니다.

    Linux, macOS, Unix:

    aws rds modify-db-instance \ --db-instance-identifier mytestsqlserveroracleoledbinstance \ --option-group-name oracle-oledb-se-2019 \ --db-parameter-group-name my-parameter-group-name \ --apply-immediately

    Windows의 경우:

    aws rds modify-db-instance ^ --db-instance-identifier mytestsqlserveroracleoledbinstance ^ --option-group-name oracle-oledb-se-2019 ^ --db-parameter-group-name my-parameter-group-name ^ --apply-immediately

OLEDB 제공자 속성 수정

OLEDB 공급자의 속성을 보고 변경할 수 있습니다. 이 작업은 master 사용자만 수행할 수 있습니다. DB 인스턴스에서 생성한 모든 Oracle용 연결 서버는 관련 OLEDB 공급자와 동일한 속성을 사용합니다. sp_MSset_oledb_prop 저장 프로시저를 호출하여 OLEDB 공급자의 속성을 변경합니다.

OLEDB 공급자 속성을 변경하려면

USE [master] GO EXEC sp_MSset_oledb_prop N'OraOLEDB.Oracle', N'AllowInProcess', 1 EXEC sp_MSset_oledb_prop N'OraOLEDB.Oracle', N'DynamicParameters', 0 GO

다음 속성을 수정할 수 있습니다.

속성 이름 권장 값(1 = 켜기, 0 = 해제) 설명

Dynamic parameter

1

파라미터화된 쿼리에서 ('? '로 표시하는) SQL 플레이스홀더 허용

Nested queries

1

FROM 절에 중첩된 SELECT 문(예: 하위 쿼리)을 허용합니다.

Level zero only

0

기본 수준 OLEDB 인터페이스만 공급자에 대해 호출됩니다.

Allow inprocess

1

이 기능을 켜면 Microsoft SQL Server는 공급자를 진행 중 서버로 인스턴스화할 수 있습니다. Oracle 연결된 서버를 사용하려면 이 속성을 1로 설정합니다.

Non transacted updates

0

0이 아닌 경우 SQL Server는 업데이트를 허용합니다.

Index as access path

False

0이 아닌 경우 SQL Server는 공급자의 인덱스를 사용하여 데이터를 가져옵니다.

Disallow adhoc access

False

설정하면 SQL Server는 OLEDB 공급자를 대상으로 한 패스스루 쿼리 실행을 허용하지 않습니다. 이 옵션을 선택해도 되지만, 패스스루 쿼리를 실행하는 것이 적절할 때도 있습니다.

Supports LIKE operator

1

공급자가 LIKE 키워드를 사용하는 쿼리를 지원한다는 뜻입니다.

OLEDB 드라이버 속성 수정

Oracle용 연결된 서버를 만들 때 OLEDB 드라이버의 속성을 보고 변경할 수 있습니다. 이 작업은 master 사용자만 수행할 수 있습니다. 드라이버 속성은 원격 Oracle 데이터 소스를 작업할 때 OLEDB 드라이버가 데이터를 처리하는 방법을 정의합니다. 드라이버 속성은 DB 인스턴스에서 생성한 각 Oracle 연결된 서버에만 적용됩니다. master.dbo.sp_addlinkedserver 저장 프로시저를 호출하여 OLEDB 드라이버의 속성을 변경합니다.

예: 연결된 서버를 만들고 OLEDB 드라이버 FetchSize 속성을 변경하려면

EXEC master.dbo.sp_addlinkedserver @server = N'Oracle_link2', @srvproduct=N'Oracle', @provider=N'OraOLEDB.Oracle', @datasrc=N'my-oracle-test.cnetsipka.us-west-2.rds.amazonaws.com:1521/ORCL, @provstr='FetchSize=200' GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'Oracle_link2', @useself=N'False', @locallogin=NULL, @rmtuser=N'master', @rmtpassword='Test#1234' GO
참고

보안 모범 사례로 여기에 표시된 프롬프트 이외의 암호를 지정하는 것이 좋습니다.

Oracl이 포함된 연결된 서버 비활성화

Oracle이 포함된 연결된 서버를 비활성화하려면 해당 옵션 그룹에서 OLEDB_ORACLE 옵션을 제거합니다.

중요

옵션을 제거해도 DB 인스턴스의 기존 연결된 서버 구성은 삭제되지 않습니다. DB 인스턴스에서 제거하려면 수동으로 삭제해야 합니다.

제거 후 OLEDB_ORACLE 옵션을 다시 활성화하여 DB 인스턴스에서 이전에 구성한 연결된 서버 구성을 재사용할 수 있습니다.

다음 절차에서는 OLEDB_ORACLE 옵션을 제거합니다.

옵션 그룹에서 OLEDB_ORACLE 옵션을 제거하려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 옵션 그룹을 선택합니다.

  3. OLEDB_ORACLE 옵션이 있는 옵션 그룹을 선택합니다(이전 예제의 경우 oracle-oledb-se-2019).

  4. 옵션 삭제를 선택합니다.

  5. Deletion options(옵션 삭제)에서 Options to delete(삭제할 옵션)에 OLEDB_ORACLE를 선택합니다.

  6. Apply immediately(즉시 적용)에서 Yes(예)를 선택하여 옵션을 즉시 삭제하거나 No(아니오)를 선택하여 다음 유지 관리 기간에 삭제합니다.

  7. Delete을 선택합니다.

다음 절차에서는 OLEDB_ORACLE 옵션을 제거합니다.

옵션 그룹에서 OLEDB_ORACLE 옵션을 제거하려면
  • 다음 명령 중 하나를 실행합니다.

    Linux, macOS, Unix:

    aws rds remove-option-from-option-group \ --option-group-name oracle-oledb-se-2019 \ --options OLEDB_ORACLE \ --apply-immediately

    Windows의 경우:

    aws rds remove-option-from-option-group ^ --option-group-name oracle-oledb-se-2019 ^ --options OLEDB_ORACLE ^ --apply-immediately