RDS for SQL Server에서 Microsoft Distributed Transaction Coordinator 지원 - Amazon Relational Database Service

RDS for SQL Server에서 Microsoft Distributed Transaction Coordinator 지원

분산 트랜잭션은 두 개 이상의 네트워크 호스트가 관련된 데이터베이스 트랜잭션입니다. RDS for SQL Server는 호스트 간의 분산 트랜잭션을 지원하며 여기서 단일 호스트는 다음 중 하나일 수 있습니다.

  • RDS for SQL Server DB 인스턴스

  • 온프레미스 SQL Server 호스트

  • SQL Server가 설치된 Amazon EC2 호스트

  • 분산 트랜잭션을 지원하는 데이터베이스 엔진이 있는 기타 EC2 호스트 또는 RDS DB 인스턴스

RDS에서는 SQL Server 2012(버전 11.00.5058.0.v1 이상)부터 모든 에디션의 RDS for SQL Server에서 분산 트랜잭션을 지원합니다. Microsoft Distributed Transaction Coordinator(MSDTC)를 사용하여 지원이 제공됩니다. MSDTC에 대한 자세한 내용은 Microsoft 설명서에서 Distributed Transaction Coordinator를 참조하십시오.

제한 사항

RDS for SQL Server에서 MSDTC를 사용하는 경우 다음과 같은 제한 사항이 적용됩니다.

  • SQL Server 데이터베이스 미러링을 사용하는 인스턴스에서는 MSDTC가 지원되지 않습니다. 자세한 내용은 트랜잭션 - 가용성 그룹 및 데이터베이스 미러링을 참조하십시오.

  • in-doubt xact resolution 파라미터를 1 또는 2로 설정해야 합니다. 자세한 정보는 MSDTC에 대한 파라미터 수정을 참조하십시오.

  • MSDTC에서는 분산 트랜잭션에 참여하는 모든 호스트를 호스트 이름을 사용하여 확인할 수 있어야 합니다. RDS는 도메인에 가입된 인스턴스에 대해 이 기능을 자동으로 유지 관리합니다. 그러나 독립 실행형 인스턴스의 경우 DNS 서버를 수동으로 구성해야 합니다.

  • Java Database Connectivity(JDBC) XA 트랜잭션은 SQL Server 2017 버전 14.00.3223.3 이상 및 SQL Server 2019에서 지원됩니다.

  • RDS 인스턴스의 클라이언트 동적 연결 라이브러리(DLL)를 사용하는 분산 트랜잭션은 지원되지 않습니다.

  • 사용자 지정 XA 동적 연결 라이브러리 사용은 지원되지 않습니다.

MSDTC 활성화

DB 인스턴스에 MSDTC를 활성화하려면 다음 프로세스를 사용합니다.

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

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

  3. 새 파라미터 그룹을 생성하거나 기존 파라미터 그룹을 선택합니다.

  4. 파라미터 그룹을 수정하여 in-doubt xact resolution 파라미터를 1 또는 2로 설정합니다.

  5. 옵션 그룹 및 파라미터 그룹을 DB 인스턴스와 연결합니다.

MSDTC용 옵션 그룹 생성

AWS Management Console 또는 AWS CLI를 사용하여 SQL Server 엔진과 DB 인스턴스 버전에 해당하는 옵션 그룹을 생성합니다.

참고

올바른 SQL Server 엔진 및 버전인 경우 기존 옵션 그룹을 사용할 수도 있습니다.

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

옵션 그룹을 생성하려면

  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

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

  3. 그룹 생성(Create group)을 선택합니다.

  4. 보안 그룹 생성 창에서 다음을 수행합니다.

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

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

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

    4. 메이저 엔진 버전13.00을 선택합니다.

  5. 생성(Create)을 선택합니다.

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

옵션 그룹을 생성하려면

  • 다음 명령 중 하나를 사용합니다.

    Linux, macOS 또는 Unix의 경우는 다음과 같습니다.

    aws rds create-option-group \ --option-group-name msdtc-se-2016 \ --engine-name sqlserver-se \ --major-engine-version 13.00 \ --option-group-description "MSDTC option group for SQL Server SE 2016"

    Windows의 경우:

    aws rds create-option-group ^ --option-group-name msdtc-se-2016 ^ --engine-name sqlserver-se ^ --major-engine-version 13.00 ^ --option-group-description "MSDTC option group for SQL Server SE 2016"

옵션 그룹에 MSDTC 옵션 추가

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

다음 옵션 설정이 필요합니다.

  • 포트 – MSDTC에 액세스하는 데 사용하는 포트입니다. 허용되는 값은 1150–49151(1234, 1434, 3260, 3343, 3389, 47001 제외)입니다. 기본값은 5000입니다.

    사용하려는 포트가 방화벽 규칙에서 활성화되어 있는지 확인합니다. 또한 필요에 따라 DB 인스턴스와 연결된 보안 그룹의 인바운드 및 아웃바운드 규칙에서 이 포트를 활성화해야 합니다. 자세한 내용은 Amazon RDS DB 인스턴스에 연결할 수 없음 섹션을 참조하세요.

  • 보안 그룹 – RDS DB 인스턴스에 대한 VPC 또는 DB 보안 그룹 멤버십입니다.

  • 인증 유형 – 호스트 간의 인증 모드입니다. 지원되는 인증 유형은 다음과 같습니다.

    • 상호 – RDS 인스턴스가 통합 인증을 사용하여 상호 인증됩니다. 이 옵션을 선택하는 경우 이 옵션 그룹과 연결된 모든 인스턴스가 도메인에 가입되어 있어야 합니다.

    • 없음 – 호스트 간에 인증이 수행되지 않습니다. 프로덕션 환경에서는 이 모드를 사용하지 않는 것이 좋습니다.

  • 트랜잭션 로그 크기 – MSDTC 트랜잭션 로그의 크기입니다. 허용되는 값은 4–1024MB입니다. 기본 크기는 4MB입니다.

다음 옵션 설정은 선택 사항입니다.

  • 인바운드 연결 활성화 – 이 옵션 그룹과 연결된 인스턴스로의 인바운드 MSDTC 연결을 허용할지 여부를 지정합니다.

  • 아웃바운드 연결 활성화 – 이 옵션 그룹과 연결된 인스턴스로부터의 아웃바운드 MSDTC 연결을 허용할지 여부를 지정합니다.

  • XA 활성화 – XA 트랜잭션을 허용할지 여부를 지정합니다 . XA 프로토콜에 대한 자세한 내용은 XA 사양을 참조하십시오.

  • SNA LU 활성화 – 분산 트랜잭션에 SNA LU 프로토콜을 사용하도록 허용할지 여부를 지정합니다. SNA LU 프로토콜 지원에 대한 자세한 내용은 Microsoft 설명서의 IBM CICS LU 6.2 트랜잭션 관리를 참조하십시오.

MSDTC 옵션을 추가하려면

  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

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

  3. 방금 생성한 옵션 그룹을 선택합니다.

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

  5. 옵션 세부 정보에서 옵션 이름으로 MSDTC를 선택합니다.

  6. 옵션 설정에서 다음을 수행합니다.

    1. 포트에 MSDTC에 액세스하는 데 사용할 포트 번호를 입력합니다. 기본값은 5000입니다.

    2. 보안 그룹의 경우 옵션과 연결할 VPC 또는 DB 보안 그룹을 선택합니다.

    3. 인증 유형에서 상호 또는 없음을 선택합니다.

    4. 트랜잭션 로그 크기에 4–1024 사이의 값을 입력합니다. 기본값은 4입니다.

  7. 추가 구성에서 다음을 수행합니다.

    1. 연결에서 필요에 따라 인바운드 연결 활성화아웃바운드 연결 활성화를 선택합니다.

    2. 허용된 프로토콜에서 필요에 따라 XA 활성화SNA LU 활성화를 선택합니다.

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

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

    이 옵션을 추가하는 데 재부팅은 필요하지 않습니다.

MSDTC 옵션을 추가하려면

  1. 다음 필수 파라미터를 사용하여 JSON 파일(예: msdtc-option.json)을 생성합니다.

    { "OptionGroupName":"msdtc-se-2016", "OptionsToInclude": [ { "OptionName":"MSDTC", "Port":5000, "VpcSecurityGroupMemberships":["sg-0abcdef123"], "OptionSettings":[{"Name":"AUTHENTICATION","Value":"MUTUAL"},{"Name":"TRANSACTION_LOG_SIZE","Value":"4"}] }], "ApplyImmediately": true }
  2. [MSDTC] 옵션을 옵션 그룹에 추가합니다.

    Linux, macOS 또는 Unix의 경우는 다음과 같습니다.

    aws rds add-option-to-option-group \ --cli-input-json file://msdtc-option.json \ --apply-immediately

    Windows의 경우:

    aws rds add-option-to-option-group ^ --cli-input-json file://msdtc-option.json ^ --apply-immediately

    재부팅이 필요하지 않습니다.

MSDTC용 파라미터 그룹 생성

DB 인스턴스의 SQL Server 에디션 및 버전에 해당하는 in-doubt xact resolution 파라미터의 파라미터 그룹을 생성하거나 수정합니다.

다음 예에서는 SQL Server Standard Edition 2016에 대한 파라미터 그룹을 생성합니다.

파라미터 그룹을 생성하려면

  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 파라미터 그룹을 선택합니다.

  3. [Create parameter group]을 선택합니다.

  4. 서브넷 그룹 생성 창에서 다음을 수행합니다.

    1. 파라미터 그룹 패밀리에서 sqlserver-se-13.0을 선택합니다.

    2. 그룹 이름에 파라미터 그룹의 식별자(예: msdtc-sqlserver-se-13)를 입력합니다.

    3. 설명in-doubt xact resolution를 입력합니다.

  5. 생성(Create)을 선택합니다.

다음 예에서는 SQL Server Standard Edition 2016에 대한 파라미터 그룹을 생성합니다.

파라미터 그룹을 생성하려면

  • 다음 명령 중 하나를 사용합니다.

    Linux, macOS 또는 Unix의 경우는 다음과 같습니다.

    aws rds create-db-parameter-group \ --db-parameter-group-name msdtc-sqlserver-se-13 \ --db-parameter-group-family "sqlserver-se-13.0" \ --description "in-doubt xact resolution"

    Windows의 경우:

    aws rds create-db-parameter-group ^ --db-parameter-group-name msdtc-sqlserver-se-13 ^ --db-parameter-group-family "sqlserver-se-13.0" ^ --description "in-doubt xact resolution"

MSDTC에 대한 파라미터 수정

SQL Server 에디션 및 DB 인스턴스의 버전에 해당하는 파라미터 그룹의 in-doubt xact resolution 파라미터를 수정합니다.

MSDTC에 대해 in-doubt xact resolution 파라미터를 다음 중 하나로 설정합니다.

  • 1 - Presume commit 모든 MSDTC 미결 트랜잭션을 커밋된 것으로 가정합니다.

  • 2 - Presume abort 모든 MSDTC 미결 트랜잭션을 중지된 것으로 가정합니다.

자세한 내용은 Microsoft 설명서의 in-doubt xact resolution 서버 구성 옵션을 참조하십시오.

다음 예에서는 SQL Server Standard Edition 2016에 대해 생성한 파라미터 그룹을 수정합니다.

파라미터 그룹을 수정하려면

  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 파라미터 그룹을 선택합니다.

  3. 파라미터 그룹(예: msdtc-sqlserver-se-13)을 선택합니다.

  4. 파라미터에서 파라미터 목록을 xact로 필터링합니다.

  5. in-doubt xact resolution을 선택합니다.

  6. 파라미터 편집을 선택합니다.

  7. 1 또는 2를 입력합니다.

  8. [Save changes]를 선택합니다.

다음 예에서는 SQL Server Standard Edition 2016에 대해 생성한 파라미터 그룹을 수정합니다.

파라미터 그룹을 수정하려면

  • 다음 명령 중 하나를 사용합니다.

    Linux, macOS 또는 Unix의 경우는 다음과 같습니다.

    aws rds modify-db-parameter-group \ --db-parameter-group-name msdtc-sqlserver-se-13 \ --parameters "ParameterName='in-doubt xact resolution',ParameterValue=1,ApplyMethod=immediate"

    Windows의 경우:

    aws rds modify-db-parameter-group ^ --db-parameter-group-name msdtc-sqlserver-se-13 ^ --parameters "ParameterName='in-doubt xact resolution',ParameterValue=1,ApplyMethod=immediate"

옵션 그룹 및 파라미터 그룹을 DB 인스턴스와 연결

AWS Management Console 또는 AWS CLI를 사용하여 MSDTC 옵션 그룹 및 파라미터 그룹을 DB 인스턴스와 연결할 수 있습니다.

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

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

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

    참고

    도메인에 가입된 기존 DB 인스턴스를 사용하는 경우 이미 Active Directory 도메인과 AWS Identity and Access Management(IAM) 역할이 연결되어 있어야 합니다. 도메인에 가입된 새 인스턴스를 생성하는 경우 기존 Active Directory 도메인 및 IAM 역할을 지정합니다. 자세한 정보는 Amazon RDS for SQL Server DB 인스턴스에 Windows 인증 사용을 참조하십시오.

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

참고

도메인에 가입된 기존 DB 인스턴스를 사용하는 경우 이미 Active Directory 도메인과 IAM 역할이 연결되어 있어야 합니다. 도메인에 가입된 새 인스턴스를 생성하는 경우 기존 Active Directory 도메인 및 IAM 역할을 지정합니다. 자세한 내용은 Amazon RDS for SQL Server DB 인스턴스에 Windows 인증 사용 섹션을 참조하세요.

MSDTC 옵션 그룹 및 파라미터 그룹과 함께 DB 인스턴스를 생성하려면

  • 옵션 그룹을 생성할 때 사용한 것과 동일한 DB 엔진 유형과 메이저 버전을 지정합니다.

    Linux, macOS 또는 Unix의 경우는 다음과 같습니다.

    aws rds create-db-instance \ --db-instance-identifier mydbinstance \ --db-instance-class db.m5.2xlarge \ --engine sqlserver-se \ --engine-version 13.00.5426.0.v1 \ --allocated-storage 100 \ --master-user-password secret123 \ --master-username admin \ --storage-type gp2 \ --license-model li \ --domain-iam-role-name my-directory-iam-role \ --domain my-domain-id \ --option-group-name msdtc-se-2016 \ --db-parameter-group-name msdtc-sqlserver-se-13

    Windows의 경우:

    aws rds create-db-instance ^ --db-instance-identifier mydbinstance ^ --db-instance-class db.m5.2xlarge ^ --engine sqlserver-se ^ --engine-version 13.00.5426.0.v1 ^ --allocated-storage 100 ^ --master-user-password secret123 ^ --master-username admin ^ --storage-type gp2 ^ --license-model li ^ --domain-iam-role-name my-directory-iam-role ^ --domain my-domain-id ^ --option-group-name msdtc-se-2016 ^ --db-parameter-group-name msdtc-sqlserver-se-13

DB 인스턴스를 수정하고 MSDTC 옵션 그룹 및 파라미터 그룹을 연결하려면

  • 다음 명령 중 하나를 사용합니다.

    Linux, macOS 또는 Unix의 경우는 다음과 같습니다.

    aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --option-group-name msdtc-se-2016 \ --db-parameter-group-name msdtc-sqlserver-se-13 \ --apply-immediately

    Windows의 경우:

    aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --option-group-name msdtc-se-2016 ^ --db-parameter-group-name msdtc-sqlserver-se-13 ^ --apply-immediately

분산 트랜잭션 사용

Amazon RDS for SQL Server에서는 온프레미스에서 실행되는 분산 트랜잭션과 동일한 방식으로 분산 트랜잭션을 실행합니다.

  • .NET Framework System.Transactions 승격 가능한 트랜잭션 사용. 이를 통해 필요할 때까지 생성을 연기함으로써 분산 트랜잭션을 최적화합니다.

    이 경우 승격이 자동으로 수행되므로 사용자가 개입할 필요가 없습니다. 트랜잭션 내에 하나의 리소스 관리자만 있는 경우 승격이 수행되지 않습니다. 암시적 트랜잭션 범위에 대한 자세한 내용은 Microsoft 설명서의 트랜잭션 범위를 사용하여 암시적 트랜잭션 구현을 참조하십시오.

    승격 가능 트랜잭션은 다음 .NET 구현에서 지원됩니다.

    • ADO.NET 2.0부터 System.Data.SqlClient는 SQL Server를 사용하여 승격 가능한 트랜잭션을 지원합니다. 자세한 내용은 Microsoft 설명서에서 SQL Server와의 System.Transactions 통합을 참조하십시오.

    • ODP.NET은 System.Transactions를 지원합니다. Oracle Database 11g 릴리스 1(버전 11.1) 이상에서 TransactionsScope 범위에서 열린 첫 번째 연결에 대해 로컬 트랜잭션이 생성됩니다. 두 번째 연결이 열리면 이 트랜잭션이 분산 트랜잭션으로 자동 승격됩니다. ODP.NET에서 분산 트랜잭션 지원에 대한 자세한 내용은 Microsoft 설명서의 Microsoft Distributed Transaction Coordinator 통합을 참조하십시오.

  • BEGIN DISTRIBUTED TRANSACTION 문 사용. 자세한 내용은 Microsoft 설명서의 BEGIN DISTRIBUTED TRANSACTION(Transact-SQL)을 참조하십시오.

XA 트랜잭션 사용

RDS for SQL Server 2017 버전 14.00.3223.3부터 JDBC를 사용하여 분산 트랜잭션을 제어할 수 있습니다. Enable XA 옵션 설정을 true 옵션의 MSDTC(으)로 설정하면 RDS가 자동으로 JDBC 트랜잭션을 활성화하고 SqlJDBCXAUser 역할을 guest 사용자에게 부여합니다. 이를 통해 JDBC를 통해 분산 트랜잭션을 실행할 수 있습니다. 코드 예제를 포함한 자세한 정보는 Microsoft 설명서의 XA 트랜잭션 이해를 참조하세요.

트랜잭션 추적 사용

RDS는 문제 해결을 위해 MSDTC 트랜잭션 추적을 제어하고 RDS DB 인스턴스에서 해당 추적을 다운로드할 수 있도록 지원합니다. 다음 RDS 저장 프로시저를 실행하여 트랜잭션 추적 세션을 제어할 수 있습니다.

exec msdb.dbo.rds_msdtc_transaction_tracing 'trace_action', [@traceall='0|1'], [@traceaborted='0|1'], [@tracelong='0|1'];

다음 파라미터는 필수입니다.

  • trace_action – 추적 작업입니다. START, STOP 또는 STATUS일 수 있습니다.

다음 파라미터는 선택적입니다.

  • @traceall – 모든 분산 트랜잭션을 추적하려면 1로 설정합니다. 기본값은 0입니다.

  • @traceaborted – 취소된 분산 트랜잭션을 추적하려면 1로 설정합니다. 기본값은 0입니다.

  • @tracelong – 장기 실행 분산 트랜잭션을 추적하려면 1로 설정합니다. 기본값은 0입니다.

예 START 추적 작업

새 트랜잭션 추적 세션을 시작하려면 다음 예에 나온 문을 실행합니다.

exec msdb.dbo.rds_msdtc_transaction_tracing 'START', @traceall='0', @traceaborted='1', @tracelong='1';
참고

한 번에 하나의 트랜잭션 추적 세션만 활성화할 수 있습니다. 추적 세션이 활성 상태일 때 새 추적 세션 START 명령이 실행되면 오류가 반환되고 활성 추적 세션이 변경되지 않습니다.

예 STOP 추적 작업

트랜잭션 추적 세션을 중지하려면 다음 문을 실행합니다.

exec msdb.dbo.rds_msdtc_transaction_tracing 'STOP'

이 문은 활성 트랜잭션 추적 세션을 중지하고 트랜잭션 추적 데이터를 RDS DB 인스턴스의 로그 디렉터리에 저장합니다. 출력의 첫 번째 행에는 전체 결과가 포함되며 다음 줄은 작업의 세부 정보를 나타냅니다.

다음은 성공적인 추적 세션 중지의 예입니다.

OK: Trace session has been successfully stopped. Setting log file to: D:\rdsdbdata\MSDTC\Trace\dtctrace.log Examining D:\rdsdbdata\MSDTC\Trace\msdtctr.mof for message formats, 8 found. Searching for TMF files on path: (null) Logfile D:\rdsdbdata\MSDTC\Trace\dtctrace.log: OS version 10.0.14393 (Currently running on 6.2.9200) Start Time <timestamp> End Time <timestamp> Timezone is @tzres.dll,-932 (Bias is 0mins) BufferSize 16384 B Maximum File Size 10 MB Buffers Written Not set (Logger may not have been stopped). Logger Mode Settings (11000002) ( circular paged ProcessorCount 1 Processing completed Buffers: 1, Events: 3, EventsLost: 0 :: Format Errors: 0, Unknowns: 3 Event traces dumped to d:\rdsdbdata\Log\msdtc_<timestamp>.log

세부 정보를 사용하여 생성된 로그 파일의 이름을 쿼리할 수 있습니다. RDS DB 인스턴스에서 로그 파일을 다운로드하는 방법에 대한 자세한 내용은 Amazon RDS 로그 파일 모니터링 단원을 참조하십시오.

추적 세션 로그는 35일 동안 인스턴스에 남아 있습니다. 이전 추적 세션 로그는 자동으로 삭제됩니다.

예 STATUS 추적 작업

트랜잭션 추적 세션의 상태를 추적하려면 다음 문을 실행합니다.

exec msdb.dbo.rds_msdtc_transaction_tracing 'STATUS'

이 문은 결과 집합의 별도 행으로 다음을 출력합니다.

OK SessionStatus: <Started|Stopped> TraceAll: <True|False> TraceAborted: <True|False> TraceLongLived: <True|False>

첫 번째 줄은 작업의 전체 결과(OK 또는 ERROR)와 함께 세부 정보(해당되는 경우)를 나타냅니다. 그 다음 줄에는 추적 세션 상태에 대한 세부 정보가 표시됩니다.

  • SessionStatus의 값은 다음 중 하나일 수 있습니다.

    • Started - 추적 세션이 실행 중인 경우.

    • Stopped - 실행 중인 추적 세션이 없는 경우.

  • 추적 세션 플래그는 True 명령에서 설정된 방법에 따라 False 또는 START일 수 있습니다.

MSDTC 옵션 수정

MSDTC 옵션을 활성화한 후 해당 설정을 수정할 수 있습니다. 옵션 설정을 변경하는 방법에 대한 자세한 내용은 옵션 설정 수정 단원을 참조하십시오.

참고

MSDTC 옵션 설정을 일부 변경하려면 MSDTC 서비스를 다시 시작해야 합니다. 이 요구 사항은 분산 트랜잭션 실행에 영향을 줄 수 있습니다.

MSDTC 비활성화

MSDTC를 비활성화하려면 해당 옵션 그룹에서 MSDTC 옵션을 제거합니다.

옵션 그룹에서 MSDTC 옵션을 제거하려면

  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

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

  3. MSDTC 옵션이 있는 옵션 그룹을 선택합니다(이전 예제의 경우 msdtc-se-2016).

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

  5. 옵션 삭제에서 MSDTC 또는 삭제할 옵션을 선택합니다.

  6. 즉시 적용에서 옵션을 즉시 삭제하려면 를 선택하고 다음 유지 관리 기간에 삭제하려면 아니오를 선택합니다.

  7. 삭제를 선택합니다.

옵션 그룹에서 MSDTC 옵션을 제거하려면

  • 다음 명령 중 하나를 사용합니다.

    Linux, macOS 또는 Unix의 경우는 다음과 같습니다.

    aws rds remove-option-from-option-group \ --option-group-name msdtc-se-2016 \ --options MSDTC \ --apply-immediately

    Windows의 경우:

    aws rds remove-option-from-option-group ^ --option-group-name msdtc-se-2016 ^ --options MSDTC ^ --apply-immediately

RDS for SQL Server에 대한 MSDTC 문제 해결

경우에 따라 클라이언트 컴퓨터에서 실행되는 MSDTC와 RDS for SQL Server DB 인스턴스에서 실행되는 MSDTC 서비스 간에 연결을 설정하는 데 문제가 있을 수 있습니다. 그 경우 다음을 확인하십시오.

  • DB 인스턴스와 연결된 보안 그룹의 인바운드 규칙이 올바르게 구성되어 있는지. 자세한 내용은 Amazon RDS DB 인스턴스에 연결할 수 없음 섹션을 참조하세요.

  • 클라이언트 컴퓨터가 올바르게 구성되어 있는지.

  • 클라이언트 컴퓨터에서 MSDTC 방화벽 규칙이 활성화되어 있는지.

클라이언트 컴퓨터를 구성하려면

  1. 구성 요소 서비스를 엽니다.

    또는 서버 관리자에서 도구를 선택한 다음 구성 요소 서비스를 선택합니다.

  2. 구성 요소 서비스, 컴퓨터, 내 컴퓨터, Distributed Transaction Coordinator를 차례로 확장합니다.

  3. 로컬 DTC에 대한 컨텍스트 메뉴를 열고(마우스 오른쪽 버튼 클릭) 속성을 선택합니다.

  4. 보안 탭을 선택합니다.

  5. 다음을 모두 선택합니다.

    • 네트워크 DTC 액세스

    • 인바운드 허용

    • 아웃바운드 허용

  6. 올바른 인증 모드가 선택되어 있는지 확인합니다.

    • 상호 인증 필요 – 클라이언트 시스템이 분산 트랜잭션에 참여하는 다른 노드와 동일한 도메인에 가입되었거나 도메인 간에 신뢰 관계가 구성되어 있습니다.

    • 인증 필요 없음 – 다른 모든 경우.

  7. 확인을 선택하여 변경 사항을 저장합니다.

  8. 서비스를 다시 시작하라는 메시지가 표시되면 를 선택합니다.

MSDTC 방화벽 규칙을 활성화하려면

  1. Windows 방화벽을 연 다음 고급 설정을 선택합니다.

    서버 관리자를 열고 도구, Windows Firewall with Advanced Security를 차례로 선택합니다.

    참고

    운영 체제에 따라 Windows 방화벽을 Windows Defender 방화벽이라고 할 수도 있습니다.

  2. 왼쪽 창에서 인바운드 규칙을 선택합니다.

  3. 다음 방화벽 규칙을 활성화합니다(아직 활성화되지 않은 경우).

    • DTC(Distributed Transaction Coordinator)(RPC)

    • DTC(Distributed Transaction Coordinator)(RPC)-EPMAP

    • DTC(Distributed Transaction Coordinator)(TCP-In)

  4. Windows 방화벽을 닫습니다.