Managed Instance 링크 개요

적용 대상:Azure SQL Managed Instance

이 문서에서는 SQL Server와 Azure SQL Managed Instance 간에 거의 실시간으로 데이터를 복제할 수 있는 Managed Instance 링크 기능에 대한 개요를 제공합니다. 이 링크는 읽기 전용 워크로드 스케일링, Azure에 분석 및 보고 오프로드, Azure로 마이그레이션 등의 여러 가지 시나리오를 활용하므로 하이브리드 유연성과 데이터베이스 이동성을 제공합니다. 또한 SQL Server 2022를 사용하면 SQL Server로의 장애 복구(현재 미리 보기 상태)와 SQL Managed Instance에서 SQL Server 2022로의 링크 구성(미리 보기)을 통해 온라인 재해 복구가 가능합니다.

제품 개선 제안 사항 또는 의견이 있거나 문제를 보고하려는 경우 Managed Instance 링크 사용자 피드백을 통해 제품 그룹에 문의하세요.

개요

Managed Instance 링크는 분산 가용성 그룹을 사용하여 어디서나 호스트되는 SQL Server에서 Azure SQL Managed Instance로 또는 Azure SQL Managed Instance에서 어디서나 호스트되는 SQL Server 2022로 데이터를 거의 실시간으로 복제하여 안전한 방식으로 데이터 자산을 확장합니다.

이 링크는 기존 가용성 그룹이 있거나 없는 단일 노드 및 다중 노드 SQL Server 인스턴스를 지원합니다. 링크를 통해 SQL Server 데이터 자산을 클라우드로 마이그레이션하지 않고도 Azure의 이점을 사용할 수 있습니다.

링크는 링크당 하나의 데이터베이스 복제를 지원하지만 여러 링크(관리되는 인스턴스 쌍에 대한 각 데이터베이스에 대해 하나의 링크)를 구성하여 SQL Server의 단일 인스턴스에서 하나 이상의 SQL 관리형 인스턴스로 여러 데이터베이스를 복제하거나 동일한 데이터베이스를 여러 SQL 관리형 인스턴스로 복제할 수 있습니다.

링크 기능은 현재 다음과 같은 기능을 제공합니다.

  • SQL Server 버전 2016 및 2019의 단방향 복제: 링크 기능을 사용하여 SQL 인스턴스에서 Azure SQL Managed Instance로 데이터를 한 방향으로 복제합니다. 재해가 발생한 경우 관리되는 인스턴스로 수동으로 장애 조치(failover)할 수 있지만 이렇게 하면 연결이 끊어지며 장애 복구가 지원되지 않습니다.
  • 재해 복구(SQL Server 2022): 링크 기능을 사용하여 SQL Server 2022 및 Azure SQL Managed Instance 간 데이터를 복제하고 재해 중에 보조 인스턴스로 수동으로 장애 조치(failover)하고 재해를 완화한 후 기본 인스턴스로 장애 복구합니다. SQL Server 또는 SQL Managed Instance는 초기 기본 인스턴스가 될 수 있습니다. 이 기능은 현지 미리 보기로 제공됩니다.

필요한 만큼, 한 번에 몇 달, 심지어 몇 년 동안 링크를 계속 실행할 수 있습니다. 또한 현대화 경험을 위해 Azure로 마이그레이션할 준비가 된 경우 또는 되었을 때 이 링크는 상당히 향상된 마이그레이션 환경을 가능하게 합니다. 링크를 통한 마이그레이션은 사용 가능한 다른 모든 마이그레이션 옵션에 비해 가동 중지 시간을 최소화하여 SQL Managed Instance로의 진정한 온라인 마이그레이션을 제공합니다.

SQL Server와 Azure SQL Managed Instance 간의 링크를 통해 복제되는 데이터베이스는 다음과 같은 여러 시나리오에 사용될 수 있습니다.

  • 재해 복구
  • 클라우드로 마이그레이션하지 않고 Azure 서비스 사용
  • Azure에 읽기 전용 워크로드 오프로드
  • Azure로 마이그레이션
  • 온-프레미스 데이터 복사

Diagram that illustrates the main Managed Instance link scenario.

버전 지원 가능성

Managed Instance 링크는 Azure SQL Managed Instance의 범용 및 중요 비즈니스용 서비스 계층 모두에서 지원됩니다. 링크 기능은 SQL Server의 Enterprise, Developer 및 Standard 버전에서 작동합니다.

다음 표에서는 링크 기능 및 지원되는 최소 SQL Server 버전을 나열합니다.

초기 기본 버전 OS(운영 체제) 단방향 복제 재해 복구 옵션 업데이트 요구 사항 서비스
Azure SQL Managed Instance Windows Server 및 Linux 프리뷰 양방향 미리 보기 SQL Server 2022 CU10(KB5031778)1
SQL Server 2022(16.x) Windows Server 및 Linux 일반 공급 양방향:
오프라인(일반 공급)
온라인(미리 보기)
SQL Server 2022 RTM
SQL Server 2019 (15.x) Windows Server만 해당 일반적으로 사용 가능 SQL Server에서 SQL MI로만 SQL Server 2019 CU20(KB5024276)
SQL Server 2017(14.x) 해당 없음 해당 없음 해당 없음 해당 없음
SQL Server 2016(13.x) Windows Server만 해당 일반적으로 사용 가능 SQL Server에서 SQL MI로만 SQL Server 2016 SP3(KB 5003279)SQL Server 2016 Azure Connect 팩(KB 5014242)

1 SQL Server 2022를 초기기본 인스턴스로 사용하여 링크를 만드는 것은 SQL Server 2022의 RTM 버전부터 지원되지만 Azure SQL Managed Instance를 초기 기본 인스턴스로 사용하여 링크를 만드는 것은 SQL Server 2022 CU10부터 지원됩니다. SQL Managed Instance 초기 기본 인스턴스에서 링크를 만드는 경우 링크가 활성 상태인 동안 CU10 아래의 SQL Server 다운그레이드는 지원되지 않습니다. 이는 어느 방향으로든 장애 조치(failover) 후 문제가 발생할 수 있기 때문입니다.

링크 기능은 SQL Server 2016에 도입된 분산 가용성 그룹 기술을 사용하므로 SQL Server 2016(SQL Server 2008~2014) 이전의 SQL Server 버전은 지원되지 않습니다.

지원되는 SQL Server 버전 외에도 다음이 필요합니다.

  • SQL Server 인스턴스와 관리되는 인스턴스 간 네트워크 연결. SQL Server가 온-프레미스에서 실행 중인 경우 VPN 링크 또는 ExpressRoute를 사용합니다. SQL Server가 Azure VM(가상 머신)에서 실행되는 경우 관리되는 인스턴스와 동일한 가상 네트워크에 VM을 배포하거나 가상 네트워크 피어링을 사용하여 두 개의 별도 서브넷을 연결합니다.
  • 서비스 계층에 프로비저닝된 Azure SQL Managed Instance 배포.

다음 도구도 필요합니다.

도구 주의
SSMS 19.2 이상 SSMS(SQL Server Management Studio)는 링크 설정을 자동화하는 마법사를 지원하므로 Managed Instance 링크를 사용하는 가장 쉬운 방법입니다.
Az.SQL 3.9.0 이상 수동 구성 단계에는 PowerShell 모듈이 필요합니다.

참고 항목

Managed Instance 링크 기능은 모든 퍼블릭 Azure 지역과 국가 또는 정부 클라우드에서 사용할 수 있습니다.

SQL Managed Instance 링크 기능에 사용되는 기본 기술은 SQL Server와 Azure SQL Managed Instance 간의 분산 가용성 그룹 생성을 기반으로 합니다. 이 솔루션은 기존 가용성 그룹이 있거나 없는 단일 노드 시스템 또는 기존 가용성 그룹이 있는 다중 노드 시스템을 지원합니다.

Diagram showing how the link feature for SQL Managed Instance works using distributed availability group technology.

VPN 또는 Azure ExpressRoute와 같은 프라이빗 연결은 온-프레미스 네트워크와 Azure 간에 사용됩니다. SQL Server가 Azure VM에서 호스트되는 경우 VM과 관리되는 인스턴스(예: 가상 네트워크 피어링) 간에 내부 Azure 백본을 사용할 수 있습니다. 두 시스템 간의 신뢰는 SQL Server와 SQL Managed Instance가 해당 인증서의 공개 키를 교환하는 인증서 기반 인증을 사용하여 설정됩니다.

동일하거나 다양한 SQL Server 원본에서 단일 Azure SQL Managed Instance에 대한 링크가 최대 100개 있을 수 있습니다. 이 제한은 동시에 관리되는 인스턴스에서 호스트할 수 있는 데이터베이스 수에 따라 결정됩니다. 마찬가지로 단일 SQL Server 인스턴스는 데이터베이스와 관리되는 인스턴스 간의 일대일 관계에서 서로 다른 Azure 지역의 여러 관리되는 인스턴스와 여러 병렬 데이터베이스 동기화 링크를 설정할 수 있습니다.

초기 환경을 설정하는 데 도움이 되도록 가이드를 검토하여 SQL Managed Instance와 연결 기능을 사용하도록 SQL Server 환경을 준비합니다.

초기 환경 요구 사항이 충족되었는지 확인한 후 SSMS(SQL Server Management Studio)의 자동화된 마법사를 사용하여 링크를 만들거나 스크립트를 사용하여 수동으로 링크를 설정하도록 선택할 수 있습니다.

링크를 만든 후에는 링크를 유지 관리하기 위한 모범 사례를 따릅니다.

재해 복구

Managed Instance 링크를 사용하면 재해 복구가 가능하며 재해 발생 시 워크로드를 기본에서 보조로 수동으로 장애 조치(failover)할 수 있습니다. 시작하려면 Managed Instance 링크를 사용하여 재해 복구를 검토합니다.

SQL Server 2016 및 SQL Server 2019에서 기본은 항상 SQL Server이고 보조 관리되는 인스턴스로의 장애 조치(failover)는 단방향입니다. SQL Server로 장애 복구(failback)는 지원되지 않습니다. 그러나 트랜잭션 복제 또는 bacpac 내보내기와 같은 데이터 이동 옵션을 사용하여 SQL Server로 데이터를 복구할 수 있습니다.

SQL Server 2022를 사용하면 SQL Server 또는 SQL Managed Instance가 초기 기본이 될 수 있으며 SQL Server 또는 SQL Managed Instance에서 링크를 설정할 수 있습니다. 기본 및 보조 간에 워크로드를 장애 복구하여 진정한 양방향 재해 복구를 달성할 수 있습니다.

SQL Server로 장애 복구(failback)할 때 다음에서 장애 복구(failback)를 선택할 수 있습니다.

  • Managed Instance 링크를 직접 사용하여 온라인 이 옵션은 현재 미리 보기로 제공됩니다.
  • SQL Managed Instance에서 데이터베이스의 백업을 가져와서 SQL Server 2022 인스턴스로 복원하여 오프라인 이 옵션은 일반 공급됩니다.

Diagram showing the disaster recovery scenario.

Azure 서비스 사용

링크 기능을 사용하면 클라우드로 마이그레이션하지 않고 SQL Server 데이터를 사용하여 Azure 서비스를 활용할 수 있습니다. 보고, 분석, 백업, 기계 학습 및 Azure로 데이터를 보내는 기타 작업이 포함된 예입니다.

Azure로 워크로드 오프로드

링크 기능을 사용하여 워크로드를 Azure로 오프로드할 수도 있습니다. 예를 들어 애플리케이션은 읽기/쓰기 워크로드에 SQL Server를 사용할 수 있지만 전 세계의 Azure 지역에 있는 SQL Managed Instance 배포에 읽기 전용 워크로드를 오프로드합니다. 링크가 설정된 후 SQL Server의 주 데이터베이스는 읽기/쓰기 액세스가 가능하지만 Azure의 관리되는 인스턴스로 복제된 데이터는 읽기 전용으로 액세스할 수 있습니다. 이 정렬을 통해 관리되는 인스턴스의 복제된 데이터베이스를 읽기 스케일 아웃 및 Azure로의 읽기 전용 워크로드 오프로드에 사용할 수 있는 다양한 시나리오가 가능합니다. 관리되는 인스턴스는 병렬로 독립적인 읽기/쓰기 데이터베이스를 호스트할 수도 있습니다. 이렇게 하면 추가 데이터 처리를 위해 동일한 관리되는 인스턴스의 다른 읽기/쓰기 데이터베이스에 복제된 데이터베이스를 복사할 수 있습니다.

링크는 데이터베이스 범위(데이터베이스당 하나의 링크)로 Azure에서 워크로드의 통합 및 분리를 허용합니다. 예를 들어 여러 SQL Server 인스턴스의 데이터베이스를 Azure의 단일 SQL Managed Instance 배포로 복제하거나(통합), 데이터베이스와 관리되는 인스턴스 간의 일대일 관계를 통해 단일 SQL Server에서 여러 관리되는 인스턴스로 데이터베이스를 전 세계 Azure 지역으로 복제할 수 있습니다(분리). 후자 옵션은 읽기 전용 복제본으로 사용할 수 있는 전 세계 모든 지역의 고객에게 더 가까운 워크로드를 신속하게 가져올 수 있는 효율적인 방법을 제공합니다.

Azure로 마이그레이션

링크 기능은 또한 SQL Server에서 SQL Managed Instance로의 마이그레이션을 용이하게 하여 다음을 가능하게 합니다.

  • 현재 사용 가능한 다른 모든 솔루션에 비해 가장 성능이 뛰어난 최소 가동 중지 시간 마이그레이션.
  • 모든 서비스 계층에서 SQL Managed Instance로의 진정한 온라인 마이그레이션.

링크 기능을 사용하면 가동 중지 시간을 최소화할 수 있으므로 기본 워크로드를 온라인으로 유지하면서 관리되는 인스턴스로 마이그레이션할 수 있습니다. 현재 다른 솔루션을 사용하여 범용 서비스 계층으로 온라인 마이그레이션을 수행할 수 있지만 링크 기능은 중요 비즈니스용 계층으로 진정한 온라인 마이그레이션을 허용하는 유일한 솔루션입니다.

온-프레미스 데이터 복사

SQL Server 2022를 사용하면 SQL Managed Instance에서 SQL Server로의 링크를 설정하여 Azure 외부에서 거의 실시간 데이터베이스 복제본을 만들고 비즈니스 연속성 계획을 테스트하고 규정 준수 요구 사항을 충족하는 등의 추가 시나리오를 잠금 해제할 수 있습니다. SQL Managed Instance에서 SQL Server 2022로의 링크 설정은 현재 미리 보기로 제공됩니다.

자동화된 백업

데이터베이스는 Azure SQL Managed Instance에 복제된 후 Azure 스토리지에 자동으로 백업됩니다. 복제된 데이터베이스에 대한 Azure 백업 안정성을 활용하면서 온-프레미스 관리 및 운영 비용을 줄일 수 있습니다. 그런 다음, 다른 자동화된 백업과 마찬가지로 복제된 데이터베이스를 동일한 지역의 모든 SQL Managed Instance 배포로 특정 시점 복원할 수 있습니다.

라이선스 없는 수동 DR 복제본

워크로드가 없는 SQL 관리되는 인스턴스만 보조 수동 재해 복구에 대한 하이브리드 장애 조치(failover) 혜택을 활성화하는 경우 vCore 라이선스 비용을 절감할 수 있습니다.

시작하려면 라이선스 없는 수동 복제본을 검토합니다.

비용 혜택

재해 복구 전용으로 관리되는 인스턴스 복제본을 지정하는 경우 Microsoft는 보조 인스턴스가 사용하는 vCore에 대해 SQL Server 라이선스 비용을 청구하지 않습니다. 인스턴스는 1시간 단위로 청구되며 시간 동안 라이선스 혜택을 업데이트하는 경우 전체 시간 동안 라이선스 비용이 청구될 수 있습니다.

이 혜택은 종량제 청구 모델 및 Azure 하이브리드 혜택에 대해 다르게 반영됩니다. 종량제 청구 모델의 경우 vCore는 청구서에서 비용이 할인됩니다. 수동 복제본에 대해 Azure 하이브리드 혜택을 사용하는 경우 보조 복제본이 사용하는 vCore 수가 라이선스 풀에 반환됩니다.

예를 들어 종량제 고객으로서 보조 인스턴스에 16개의 vCore가 할당되어 있는 경우 하이브리드 장애 조치(failover)를 위해 보조 인스턴스를 지정하면 청구서에 16개의 vCore에 대한 할인이 표시됩니다.

또 다른 예제에서는 16개의 Azure 하이브리드 혜택 라이선스가 있고 보조 SQL 관리되는 인스턴스가 8개의 vCore를 사용하는 경우 하이브리드 장애 조치(failover)를 위한 보조 인스턴스를 지정한 후 다른 Azure SQL 배포에 사용할 수 있도록 8개의 vCore가 라이선스 풀로 반환됩니다.

하이브리드 장애 조치(failover) 권한 혜택의 정확한 계약조건은 "SQL Server – 장애 조치(failover) 권한" 섹션에서 온라인으로 SQL Server 라이선스 조건을 참조하세요.

제한 사항

링크를 사용하는 경우 다음과 같은 제한 사항을 고려합니다.

버전 지원 가능성 제한 사항은 다음과 같습니다.

  • 링크에 필요한 Always On 가용성 그룹 기능을 사용하도록 설정할 수 없으므로 Windows 10 및 11 클라이언트를 사용하여 SQL Server 인스턴스를 호스트할 수 없습니다. SQL Server 인스턴스는 Windows Server 2012 이상에서 호스트해야 합니다.
  • 이러한 릴리스의 SQL 엔진에는 링크에 필요한 분산 가용성 그룹에 대한 기본 제공 지원이 없으므로 링크 기능은 SQL Server 버전 2008~2014를 지원하지 않습니다. 링크를 사용하려면 최신 버전의 SQL Server로 업그레이드합니다.
  • SQL Managed Instance에서 SQL Server로의 링크 설정은 SQL Server 2022에서만 지원됩니다.

데이터 복제 제한 사항은 다음과 같습니다.

  • 사용자 데이터베이스만 복제할 수 있습니다. 시스템 데이터베이스의 복제는 지원되지 않습니다.
  • 이 솔루션은 서버 수준 개체, 에이전트 작업 또는 사용자 로그인을 SQL Server에서 SQL Managed Instance로 복제하지 않습니다.
  • SQL Server 버전 2016 및 2019의 경우 SQL Server 인스턴스에서 SQL Managed Instance 배포로 사용자 데이터베이스를 복제하는 것이 한 가지 방법입니다. SQL Managed Instance 배포의 사용자 데이터베이스는 SQL Server 인스턴스로 다시 복제할 수 없습니다. SQL Server 인스턴스에 대한 장애 복구를 사용하는 양방향 복제는 SQL Server 2022에만 사용할 수 있습니다.
  • SQL Managed Instance에서 데이터베이스의 SQL Server로의 링크 구성은 이미 연결된 SQL Managed Instance 데이터베이스에 대해 지원되지 않습니다.

구성 제한 사항은 다음과 같습니다.

  • 서버에 SQL Server 인스턴스가 여러 개 있는 경우 각 인스턴스에 대한 링크를 구성할 수 있지만 각 인스턴스는 인스턴스당 하나의 전용 포트와 함께 별도의 데이터베이스 미러링 엔드포인트를 사용하도록 구성해야 합니다. 기본 인스턴스만 데이터베이스 미러링 엔드포인트에 대해 포트 5022를 사용해야 합니다.
  • 하나의 Managed Instance 링크에 대해 하나의 데이터베이스만 단일 가용성 그룹에 배치할 수 있습니다. 그러나 여러 링크를 설정하여 단일 SQL Server 인스턴스에 여러 데이터베이스를 복제할 수는 있습니다.
  • 단일 관리되는 인스턴스는 여러 SQL Server 인스턴스에서 최대 100개의 링크를 지원합니다.
  • Managed Instance 링크는 대상 SQL Managed Instance 배포의 선택된 스토리지 크기에 맞는 경우 모든 크기의 데이터베이스를 복제할 수 있습니다.
  • SQL Server와 SQL Managed Instance 간의 Managed Instance 링크 인증은 인증서 기반이며 인증서 교환을 통해서만 사용할 수 있습니다. Windows 인증을 사용하여 SQL Server 인스턴스와 관리되는 인스턴스 간 링크를 설정하는 것은 지원되지 않습니다.
  • VNet 로컬 엔드포인트만 SQL Managed Instance에 대한 연결을 설정할 수 있습니다.
  • 관리되는 인스턴스에 대한 링크를 설정하는 데는 공용 엔드포인트 또는 프라이빗 엔드포인트를 사용할 수 없습니다.
  • 여러 로그 파일이 있는 데이터베이스는 SQL Managed Instance가 여러 로그 파일을 지원하지 않으므로 복제될 수 없습니다.

기능 제한 사항은 다음과 같습니다.

  • 장애 조치(failover) 그룹은 링크 기능을 사용하는 인스턴스에서 지원되지 않습니다. 장애 조치(failover) 그룹의 일부인 관리되는 인스턴스에는 링크를 설정할 수 없으며, 반대로 링크가 설정된 인스턴스에서는 장애 조치(failover) 그룹을 구성할 수 없습니다.
  • CDC(변경 데이터 캡처), 로그 전달 또는 서비스 브로커가 SQL Server 인스턴스에서 복제된 데이터베이스와 함께 사용되는 경우 데이터베이스를 SQL Managed Instance 배포로 마이그레이션할 때 Azure로 장애 조치하는 동안 클라이언트는 현재 전역 주 복제본의 인스턴스 이름을 사용하여 연결해야 합니다. 이러한 설정은 수동으로 다시 구성해야 합니다.
  • 마이그레이션 시나리오에서 SQL Server 인스턴스의 데이터베이스와 함께 트랜잭션 복제를 사용하는 경우 Azure로 장애 조치(failover)하는 동안 SQL Managed Instance 배포의 트랜잭션 복제는 실패하고 수동으로 다시 구성해야 합니다.
  • SQL Server 인스턴스에서 복제된 데이터베이스와 함께 분산 트랜잭션을 사용하는 경우 마이그레이션 시나리오에서 클라우드로 전환할 때 분산 트랜잭션 코디네이터 기능이 전송되지 않습니다. SQL Managed Instance 배포는 현재 SQL Server에서 분산 트랜잭션을 지원하지 않으므로 마이그레이션된 데이터베이스가 SQL Server 인스턴스에 대한 분산 트랜잭션에 포함될 가능성은 없습니다. 참고로 SQL Managed Instance는 현재 다른 관리되는 인스턴스 간의 분산 트랜잭션만 지원합니다. 자세한 내용은 클라우드 데이터베이스의 분산 트랜잭션을 참조하세요.
  • TDE(투명한 데이터 암호화)를 사용하여 SQL Server 데이터베이스를 암호화하는 경우 SQL Server의 데이터베이스 암호화 키를 내보내고 Azure Key Vault로 업로드해야 하며 링크를 만들기 전에 SQL Managed Instance에서 BYOK TDE 옵션도 구성해야 합니다.
  • 서비스 관리 TDE 키로 암호화된 SQL Managed Instance 데이터베이스는 SQL Server로 연결할 수 없습니다. 암호화된 데이터베이스가 고객 관리형 키로 암호화되고 대상 서버가 데이터베이스를 암호화하는 데 사용되는 것과 동일한 키에 액세스할 수 있는 경우에만 암호화된 데이터베이스를 SQL Server로 연결할 수 있습니다. 자세한 내용은 Azure Key Vault를 사용하여 SQL Server TDE 설정을 참조하세요.
  • SQL Server 인스턴스에서 사용되는 기능이 관리되는 인스턴스에서 지원되지 않는 경우 SQL Server와 SQL Managed Instance 간에 링크를 설정할 수 없습니다. 예:
    • SQL Managed Instance가 파일 테이블 또는 파일 스트림을 지원하지 않으므로 파일 테이블 및 파일 스트림이 있는 데이터베이스는 복제할 수 없습니다.
    • 범용 서비스 계층은 메모리 내 OLTP를 지원하지 않기 때문에 메모리 내 OLTP를 사용하는 데이터베이스는 중요 비즈니스용 서비스 계층의 SQL Managed Instance에만 복제될 수 있습니다. 메모리 내 OLTP 파일이 여러 개 있는 데이터베이스는 SQL Managed Instance에서 지원되지 않으며 복제될 수 없습니다.

지원되지 않는 기능을 복제된 데이터베이스에 추가하려고 합니다.

  • SQL Server 2019 및 2022는 오류와 함께 실패합니다.
  • SQL Server 2016에서는 링크가 끊어지며 링크를 삭제하고 다시 만들어야 합니다.

SQL Server와 SQL Managed Instance 간 차이점의 전체 목록은 SQL Server와 Azure SQL Managed Instance 간의 T-SQL 차이점을 참조하세요.

다른 복제 및 마이그레이션 시나리오의 경우 다음을 고려합니다.