다음을 통해 공유


SQL Server 2008 Integration Services의 사용자 지정 개체 업그레이드

SQL Server 2008에서는 새로운 Integration Services 기능이 몇 가지 추가되어 SQL Server 2005 Integration Services에서 작성된 사용자 지정 개체에 영향을 주는 중대한 변화가 발생했습니다. SQL Server 2008 Integration Services 패키지에서 이러한 사용자 지정 개체를 사용하려면 해당 개체를 업그레이드해야 합니다.

이 항목에서는 사용자 지정 개체에 가장 적당한 업그레이드 옵션을 결정하는 방법과 사용자 지정 개체를 SQL Server 2005 Integration Services에서 SQL Server 2008 Integration Services로 업그레이드 및 배포하는 방법에 대해 설명합니다. 또한 자동 패키지 업그레이드 시 업데이트된 사용자 지정 개체를 찾을 수 있도록 하는 방법에 대해 설명합니다.

사용자 지정 개체를 업그레이드하는 방법 결정

사용자 지정 개체를 업그레이드하기만 하거나, 사용자 지정 개체를 업그레이드하고 버전을 변경할 수 있습니다.

  • 업그레이드만   이 방법을 사용할 경우 사용자 지정 개체를 SQL Server 2008 Integration Services와 호환되도록 변경합니다.

  • 업그레이드 및 버전 변경   이 방법을 사용할 경우에는 먼저 개체를 업그레이드합니다. 그런 다음 업그레이드된 개체에 새 어셈블리 버전을 할당하고 이러한 새 개체의 위치를 식별하는 매핑 파일을 만듭니다.

어떤 업그레이드 방법을 선택하든 개발자 본인 또는 개체 사용자가 사용자 지정 개체를 포함하는 패키지를 업그레이드하기 전에 사용자 지정 개체를 업그레이드해야 합니다. 패키지 업그레이드 엔진에서는 패키지 업그레이드를 시도할 때 해당 패키지의 사용자 지정 개체를 인스턴스화하려고 합니다. 그런데 컴퓨터에 해당 사용자 지정 개체의 업그레이드된 버전이 없으면 패키지 업그레이드 엔진에서는 개체를 인스턴스화할 수 없으며 이 때문에 패키지 업그레이드 엔진에서 패키지를 업그레이드할 수 없게 됩니다.

[!참고]

SQL Server 2008 버전의 BI Development Studio에서는 사용자가 개별 SQL Server 2005 패키지를 열면 패키지 업그레이드 엔진을 자동으로 시작합니다. 패키지 업그레이드 마법사에서도 여러 패키지를 일괄 업그레이드할 때와 동일한 패키지 업그레이드 엔진을 사용합니다.

다음 표에서는 업그레이드만 할지 아니면 업그레이드하고 버전을 변경할지를 결정하는 데 도움이 되도록 고려해야 할 다양한 요인을 설명합니다.

옵션

패키지 업그레이드에 미치는 영향

두 버전이 모두 있는 경우에 미치는 영향

사용자 지정 개체 업그레이드만 수행

추가 단계를 수행할 필요가 없습니다. 패키지 업그레이드 엔진에서 사용자 지정 개체가 포함된 패키지를 성공적으로 업그레이드할 수 있습니다.

한 컴퓨터에서는 SQL Server 2008 버전 또는 SQL Server 2005 버전의 사용자 지정 개체만 사용할 수 있습니다. 동일한 컴퓨터에서 SQL Server 2008 버전과 SQL Server 2005 버전의 사용자 지정 개체를 모두 사용할 수는 없습니다.

사용자 지정 개체 업그레이드 및 버전 변경

업그레이드된 개체와 함께 배포할 매핑 파일을 만들어야 합니다. 그러지 않으면 패키지 업그레이드 엔진에서 사용자 지정 개체가 포함된 패키지를 성공적으로 업그레이드할 수 없습니다.

SQL Server 2005 패키지에 있는 SQL Server 2005 버전의 사용자 지정 개체와 SQL Server 2008 패키지에 있는 SQL Server 2008 버전의 사용자 지정 개체를 동일한 컴퓨터에서 사용할 수 있습니다.

사용자 지정 개체 업그레이드

다음 절차에서는 사용자 지정 개체를 SQL Server 2008 Integration Services와 호환되도록 업그레이드하는 방법을 간략히 설명합니다.

사용자 지정 개체를 업그레이드하려면

  1. 버전 9.0의 Integration Services 어셈블리에 대한 참조를 제거하고 이를 동일한 어셈블리의 버전 10.0에 대한 참조로 바꿉니다.

  2. 코드에 있는 IDTSxxx90 개체를 해당되는 IDTSxxx100 개체로 이름을 바꿉니다.

  3. 사용되지 않거나 더 이상 사용할 수 없는 코드 멤버에 대한 경고를 찾아서 해당되는 새 멤버로 바꿉니다.

사용자 지정 개체를 업그레이드한 후 해당 개체의 버전도 변경할지 여부를 선택할 수 있습니다. 업그레이드된 사용자 지정 개체의 버전을 반드시 변경할 필요는 없습니다. 사용자 지정 개체의 버전을 변경하지 않을 경우에는 이 항목의 뒷부분에 설명된 대로 업그레이드된 사용자 지정 개체를 배포해야 합니다.

그러나 SQL Server 2005 Integration Services 패키지와 SQL Server 2008 Integration Services 패키지 모두에서 서로 다른 버전의 사용자 지정 개체를 함께 사용하려면 다음 섹션에 설명된 대로 업그레이드된 개체의 버전을 변경해야 합니다.

사용자 지정 개체 버전 변경

사용자 지정 개체의 버전을 변경하는 방법은 해당 개체를 관리 코드로 작성했는지 네이티브 코드로 작성했는지에 따라 달라집니다.

  • 관리 코드: 관리 코드로 작성된 사용자 지정 개체의 경우 버전을 변경하려면 어셈블리 버전 번호를 늘려야 합니다.

  • 네이티브 코드: 네이티브 코드로 작성된 사용자 지정 개체의 경우 버전을 변경하려면 ProgID 및 CLSID를 변경해야 합니다.

사용자 지정 개체의 버전을 변경한 후에는 이러한 개체에 대한 업그레이드 매핑 파일을 제공해야 합니다. 패키지를 업그레이드하는 동안 이러한 매핑 파일은 이전 버전의 사용자 지정 개체를 새 버전으로 바꾸는 방법을 패키지 업그레이드 엔진에 알려 줍니다.

업그레이드를 위해 사용자 지정 개체의 버전 매핑

SQL Server 2008 Integration Services에서는 %ProgramFiles%\Microsoft SQL Server\100\DTS 폴더에 UpgradeMappings라는 새 하위 폴더를 추가합니다. 이 하위 폴더에는 SQL Server 2005 Integration Services 개체를 해당되는 새 SQL Server 2008 개체에 매핑하는 방법을 패키지 업그레이드 엔진에 알려 주는 매핑 파일을 배포해야 합니다.

UpgradeMappings 하위 폴더에 매핑 파일을 배포하면 Integration Services에서 사용자 지정 개체가 포함된 패키지를 업그레이드할 수 있게 됩니다. 매핑 파일은 패키지를 업그레이드하는 동안에만 필요합니다. 따라서 모든 패키지를 업그레이드한 후에는 매핑 파일을 제거해도 됩니다. 자세한 내용은 Integration Services 패키지 업그레이드를 참조하십시오.

모든 매핑 파일은 다음 예제 매핑 파일과 같이 XML 형식이어야 합니다.

[!참고]

매핑 파일의 확장명 ".xml"이어야 합니다. 그렇지 않으면 패키지 업그레이드 엔진에서는 매핑 파일을 찾을 수 없습니다.

예제 매핑 파일

<?xml version="1.0" encoding="utf-8"?>
<Mappings xmlns="https://www.microsoft.com/SqlServer/Dts/UpgradeMapping.xsd">
  <!-- Connection Managers -->
  <ConnectionManagerMapping tag="MSOLAP - Analysis Services connections" 
                            oldValue="MSOLAP90"
                            newValue="MSOLAP100" />
  
  <!-- Extensions -->
  <ExtensionMapping tag="my custom object"
      oldAssemblyStrongName="MyCustomAssembly.MyCustomTask, MyCustomAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
      newAssemblyStrongName="MyCustomAssembly.MyCustomTask, MyCustomAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />

  <!-- Providers -->
  <ProviderMapping tag="SQL Server Native Client - Version dependent" 
                   oldValue="sqlncli.1"
                   newValue="sqlncli10.1" />
  <ProviderMapping tag="SQL Server Native Client - Version independent"
                   oldValue="sqlncli"
                   newValue="sqlncli10" />
  <ProviderMapping tag="MSOLAP - Analysis Services connections"
                   oldValue="msolap.3"
                   newValue="msolap.4" />
</Mappings>

개발자 고유의 <ExtensionMapping> 요소 만들기

위의 예제 매핑 파일에서 보여 준 것처럼 <ExtensionMapping> 요소는 SQL Server 2005 Integration Services 개체를 SQL Server 2008 Integration Services의 해당되는 새 개체에 매핑하는 요소입니다. 새 <ExtensionMapping> 요소를 만든 후에는 다음 표에 나오는 특성에 값을 지정해야 합니다.

특성

설명

tag

사용자 지정 개체를 설명하는 텍스트입니다. 이 설명은 로깅에 사용됩니다.

oldAssemblyStrongName

SQL Server 2005 Integration Services에서 사용자 지정 개체의 어셈블리에 사용되는 강력한 이름입니다.

newAssemblyStrongName

SQL Server 2008 Integration Services에서 사용자 지정 개체의 어셈블리에 사용되는 강력한 이름입니다.

어셈블리를 매핑할 때는 다음 방법을 사용할 수 있습니다.

  • 정규화된 클래스 이름(예: <assembly name>.<class name>, <assembly name>, Version=<version>, Culture=<culture>, PublicKeyToken=<key>)을 사용할 수 있습니다. 이 항목의 앞부분에 있는 예제 매핑 파일에서는 이 형식을 보여 줍니다.

  • 다음 예와 같이 클래스 이름을 사용하지 않고 어셈블리 자체의 강력한 이름을 제공할 수 있습니다.

    <ExtensionMapping tag="my custom object"
        oldAssemblyStrongName="MyCustomAssembly, 
    Version=1.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
        newAssemblyStrongName="MyCustomAssembly,
    Version=2.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    

    어셈블리 자체의 강력한 이름을 제공할 경우 이전 어셈블리의 모든 클래스가 새 어셈블리에 매핑됩니다.

업그레이드된 사용자 지정 개체 배포

업그레이드된 사용자 지정 개체를 배포하는 단계는 SQL Server 2005에서와 비슷합니다. 차이점은 사용자 지정 어셈블리를 %ProgramFiles%\Microsoft SQL Server\90\DTS 폴더 대신 %ProgramFiles%\Microsoft SQL Server\100\DTS 폴더의 하위 폴더에 복사한다는 것뿐입니다.

사용자 지정 개체의 버전을 변경할 경우에는 UpgradeMappings 폴더에 매핑 파일을 배포해야 버전이 변경된 해당 개체를 사용하는 패키지의 자동 업그레이드가 지원됩니다.

Integration Services 아이콘(작은 아이콘) Integration Services 관련 최신 정보 얻기

Microsoft의 최신 다운로드, 아티클, 예제 및 비디오와 커뮤니티의 정선된 솔루션을 보려면 MSDN 또는 TechNet의 Integration Services 페이지를 방문하십시오.

이러한 업데이트에 대한 자동 알림을 받으려면 해당 페이지에서 제공하는 RSS 피드를 구독하십시오.