IBM DB2 구독자IBM DB2 Subscribers

이 항목은 다음에 적용됩니다.예SQL Server(2008부터)아니요Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

SQL ServerSQL ServerMicrosoftMicrosoft Host Integration Server와 함께 제공되는 OLE DB 공급자를 통해 IBM DB2/AS 400, DB2/MVS 및 DB2/Universal Database에 대한 밀어넣기 구독을 지원합니다. Host Integration Server.

IBM DB2 구독자 구성Configuring an IBM DB2 Subscriber

IBM DB2 구독자를 구성하려면 다음 단계를 따르십시오.To configure an IBM DB2 Subscriber, follow these steps:

  1. 배포자에 최신 버전의 MicrosoftMicrosoft OLE DB Provider for DB2를 설치합니다.Install the latest version of the MicrosoftMicrosoft OLE DB Provider for DB2 on the Distributor:

    • SQL ServerSQL Server Enterprise Edition을 사용하는 경우 [SQL Server 다운로드](http://go.microsoft.com/fwlink/?LinkId=149256) 웹 페이지의 관련 다운로드 섹션에서 Microsoft SQL Server Feature Pack의 최신 버전에 대한 링크를 클릭합니다.If you are using SQL ServerSQL Server Enterprise Edition, on the SQL Server Downloads Web page, in the Related Downloads section, click the link to the latest version of the Microsoft SQL Server Feature Pack. Microsoft SQL Server Feature Pack 웹 페이지에서 Microsoft OLE DB Provider for DB2를 검색합니다.On the Microsoft SQL Server Feature Pack Web page, search for Microsoft OLE DB Provider for DB2.

    • SQL ServerSQL Server Standard Edition을 사용하는 경우 해당 공급자가 포함된 MicrosoftMicrosoft HIS(Host Integration ServicesIntegration Services) 서버의 최신 버전을 설치합니다.If you are using SQL ServerSQL Server Standard Edition, install the latest version of the MicrosoftMicrosoft Host Integration ServicesIntegration Services (HIS) server, which includes the provider.

      공급자 설치 외에 다음 단계에서 사용되는 데이터 액세스 도구도 설치하는 것이 좋습니다. 이 도구는 SQL ServerSQL Server Enterprise Edition 다운로드 시 기본적으로 설치됩니다.In addition to installing the provider, we recommend that you install the Data Access Tool, which is used in the next step (it is installed by default with the download for SQL ServerSQL Server Enterprise Edition. 데이터 액세스 도구 설치 및 사용 방법은 공급자 설명서나 HIS 설명서를 참조하십시오.For more information about installing and using the Data Access Tool, see the provider documentation or the HIS documentation.

  2. 구독자에 대한 연결 문자열을 만듭니다.Create a connection string for the Subscriber. 연결 문자열은 일반적인 텍스트 편집기로 만들 수 있지만 데이터 액세스 도구를 사용하는 것이 좋습니다.The connection string can be created in any text editor, but we recommend that you use the Data Access Tool. 데이터 액세스 도구에서 문자열을 만들려면 다음 작업을 수행하십시오.To create the string in the Data Access Tool:

    1. 시작, 프로그램, Microsoft OLE DB Provider for DB2를 클릭한 다음 데이터 액세스 도구를 클릭합니다.Click Start, Programs, Microsoft OLE DB Provider for DB2, and then Data Access Tool.

    2. 데이터 액세스 도구의 단계에 따라 DB2 서버에 대한 정보를 제공합니다.In the Data Access Tool, follow the steps to provide information about the DB2 server. 도구의 단계를 모두 완료하면 관련 연결 문자열을 사용하여 유니버설 데이터 링크(UDL)가 생성됩니다. 실제로 복제에서는 UDL이 아닌 연결 문자열을 사용합니다.When you complete the tool, a universal data link (UDL) is created with an associated connection string (the UDL is not actually used by replication, but the connection string is).

    3. 연결 문자열에 액세스합니다. 데이터 액세스 도구에서 UDL을 마우스 오른쪽 단추로 클릭하고 연결 문자열 표시를 선택합니다.Access the connection string: right-click the UDL in the Data Access Tool and select Display Connection String.

      다음은 연결 문자열의 예입니다. 이 예에서는 읽기 쉽도록 줄 바꿈을 넣었습니다.The connection string will be similar to (line breaks are for readability):

    Provider=DB2OLEDB;Initial Catalog=MY_SUBSCRIBER_DB;Network Transport Library=TCP;Host CCSID=1252;  
    PC Code Page=1252;Network Address=MY_SUBSCRIBER;Network Port=50000;Package Collection=MY_PKGCOL;  
    Default Schema=MY_SCHEMA;Process Binary as Character=False;Derive Parameters=False;Units of Work=RUW;DBMS Platform=DB2/NT;  
    Persist Security Info=False;Connection Pooling=True;  
    

    이 문자열의 옵션 대부분은 구성 중인 DB2 서버와만 관련이 있지만 Process Binary as CharacterDerive Parameters 옵션은 항상 False로 설정해야 합니다.Most of the options in the string are specific to the DB2 server you are configuring, but the Process Binary as Character and Derive Parameters options should always be set to False. 구독 데이터베이스를 식별하려면 Initial Catalog 옵션 값을 지정해야 합니다.A value is required for the Initial Catalog option to identify the subscription database. 연결 문자열은 구독을 만들 때 새 구독 마법사에서 입력합니다.The connection string will be entered in the New Subscription Wizard when you create the subscription.

  3. 스냅숏 또는 트랜잭션 게시를 만든 후 SQL ServerSQL Server 이외 구독자에 대해 설정한 다음 구독자에 대한 밀어넣기 구독을 만듭니다.Create a snapshot or transactional publication, enable it for non- SQL ServerSQL Server Subscribers, and then create a push subscription for the Subscriber. 자세한 내용은 Create a Subscription for a Non-SQL Server Subscriber을 참조하세요.For more information, see Create a Subscription for a Non-SQL Server Subscriber.

  4. 필요에 따라 하나 이상의 아티클에 대해 사용자 지정 생성 스크립트를 지정할 수 있습니다.Optionally, specify a custom creation script for one or more articles. 테이블이 게시되면 해당 테이블에 대한 CREATE TABLE 스크립트가 생성됩니다.When a table is published, a CREATE TABLE script is created for that table. SQL ServerSQL Server 이외 구독자의 경우 이 스크립트는 Transact-SQLTransact-SQL 언어로 생성된 다음 구독자에서 적용되기 전에 배포 에이전트에서 보다 일반적인 SQL 언어로 번역됩니다.For non- SQL ServerSQL Server Subscribers, the script is created in the Transact-SQLTransact-SQL dialect, and it is then translated to a more generic SQL dialect by the Distribution Agent before being applied at the Subscriber. 사용자 지정 생성 스크립트를 지정하려면 기존 Transact-SQLTransact-SQL 스크립트를 수정하거나 DB2 SQL 언어를 사용하는 완전한 스크립트를 만듭니다. DB2 스크립트를 만드는 경우에는 bypass_translation 지시어를 사용하여 배포 에이전트가 구독자에서 번역 과정 없이 스크립트를 적용하도록 합니다.To specify a custom creation script, either modify the existing Transact-SQLTransact-SQL script or create a complete script that uses the DB2 SQL dialect; if a DB2 script is created, use the bypass_translation directive so that the Distribution Agent will apply the script at the Subscriber without translation.

    여러 가지 이유로 스크립트를 수정할 수 있지만 가장 일반적인 이유는 데이터 형식 매핑을 변경하기 위해 수정합니다.Scripts can be modified for a number of reasons, but the most common reason is to alter data type mappings. 자세한 내용은 이 항목의 "데이터 형식 매핑 고려 사항" 섹션을 참조하십시오.For more information, see the "Data Type Mapping Considerations" section in this topic. Transact-SQLTransact-SQL 스크립트를 수정하는 경우에는 데이터 형식 매핑 변경 시에만 스크립트를 변경해야 합니다. 그리고 스크립트에 주석이 포함되어서는 안 됩니다.If you modify the Transact-SQLTransact-SQL script, changes should be restricted to data type mapping changes (and the script should not contain any comments). 더 많은 변경이 필요하면 DB2 스크립트를 만듭니다.If more substantial changes are required, create a DB2 script.

    아티클 스크립트를 수정하고 사용자 지정 생성 스크립트로 제공하려면To modify an article script and supply it as a custom creation script

    1. 게시에 대해 스냅숏을 생성한 후 게시에 대한 스냅숏 폴더로 이동합니다.After the snapshot has been generated for the publication, navigate to the snapshot folder for the publication.

    2. MyArticle.sch 등 아티클과 같은 이름의 .sch 파일을 찾습니다.Locate the .sch file with the same name as the article, such as MyArticle.sch.

    3. 메모장 또는 다른 텍스트 편집기를 사용하여 이 파일을 엽니다.Open this file using Notepad or another text editor.

    4. 파일을 수정하고 다른 디렉터리에 저장합니다.Modify the file and save it to a different directory.

    5. creation_script 속성에 파일 경로 및 이름을 지정하여 sp_changearticle을 실행합니다.Execute sp_changearticle, specifying the file path and name for the creation_script property. 자세한 내용은 sp_changearticle(Transact-SQL)을 참조하세요.For more information, see sp_changearticle (Transact-SQL).

      아티클 스크립트를 만들어서 사용자 지정 생성 스크립트로 제공하려면To create an article script and supply it as a custom creation script

    6. DB2 SQL 언어를 사용하여 아티클 스크립트를 만듭니다.Create an article script using the DB2 SQL dialect. 파일의 첫 줄에는 bypass_translation만 있어야 합니다.Ensure the first line of the file is bypass_translation, with nothing else on the line.

    7. creation_script 속성에 파일 경로 및 이름을 지정하여 sp_changearticle을 실행합니다.Execute sp_changearticle, specifying the file path and name for the creation_script property.

IBM DB2 구독자에 대한 고려 사항Considerations for IBM DB2 Subscribers

DB2 구독자로 복제할 때 Non-SQL Server Subscribers항목에서 다룬 고려 사항은 물론 다음 사항도 고려해야 합니다.In addition to the considerations covered in the topic Non-SQL Server Subscribers, consider the following issues when replicating to DB2 Subscribers:

  • 복제된 각 테이블의 데이터 및 인덱스는 DB2 테이블스페이스에 할당됩니다.The data and indexes for each replicated table are assigned to a DB2 tablespace. DB2 테이블스페이스의 페이지 크기는 테이블스페이스에 속하는 테이블의 최대 열 개수와 최대 행 크기를 제어합니다.The page size of a DB2 tablespace controls the maximum number of columns and the maximum row size of the tables belonging to the tablespace. 복제된 테이블과 연결된 테이블스페이스가 복제된 열의 개수 및 테이블의 최대 행 크기에 따라 적절한지 확인합니다.Ensure that the tablespace associated with replicated tables is appropriate based on the number of replicated columns and the maximum row size of the tables.

  • 테이블에 있는 하나 이상의 기본 키 열이 DECIMAL(32-38, 0-38) 또는 NUMERIC(32-38, 0-38) 데이터 형식이면 트랜잭션 복제를 사용하여 테이블을 DB2 구독자로 게시해서는 안 됩니다.Do not publish tables to DB2 Subscribers using transactional replication if one or more primary key columns in the table is of data type DECIMAL(32-38, 0-38) or NUMERIC(32-38, 0-38). 트랜잭션 복제에서는 기본 키를 사용하여 행을 식별하는데 이 데이터 형식은 구독자에서 VARCHAR(41)로 매핑되므로 오류가 발생할 수 있습니다.Transactional replication identifies rows using the primary key; this can result in failures because these data types are mapped to VARCHAR(41) at the Subscriber. 기본 키에서 이러한 데이터 형식을 사용하는 테이블은 스냅숏 복제를 사용하여 게시할 수 있습니다.Tables with primary keys that use these data types can be published using snapshot replication.

  • 복제에서 테이블을 만드는 대신 구독자에서 테이블을 미리 만들려면 replication support only 옵션을 사용합니다.If you want to pre-create tables at the Subscriber, rather than having replication create them, use the replication support only option. 자세한 내용은 스냅숏 없이 트랜잭션 구독 초기화를 참조하세요.For more information, see Initialize a Transactional Subscription Without a Snapshot.

  • SQL ServerSQL Server 에서는 DB2에서 지원되는 길이보다 긴 테이블 이름과 열 이름을 사용할 수 있습니다. allows longer table names and column names than DB2:

    • 게시 데이터베이스에 있는 테이블의 이름이 DB2 구독자에서 지원되는 이름보다 긴 경우에는 destination_table 아티클 속성에 대체 이름을 지정합니다.If the publication database includes tables with names longer than those supported on the DB2 version at the Subscriber, specify an alternative name for the destination_table article property. 게시 생성 시 속성을 설정하는 방법은 게시 만들기아티클 정의를 참조하세요.For more information about setting properties when creating a publication, see Create a Publication and Define an Article.

    • 대체 열 이름은 지정할 수 없습니다.It is not possible to specify alternative column names. DB2 구독자에서 지원되는 이름의 길이보다 긴 이름의 열이 게시된 테이블에 포함되어 있는지 확인해야 합니다.You must ensure that published tables do not include column names longer than those supported on the DB2 version at the Subscriber.

SQL Server에서 IBM DB2로 데이터 형식 매핑Mapping Data Types from SQL Server to IBM DB2

다음 표에서는 IBM DB2를 실행하는 구독자로 데이터를 복제할 때 사용되는 데이터 형식 매핑을 보여 줍니다.The following table shows the data type mappings that are used when data is replicated to a Subscriber running IBM DB2.

SQL Server 데이터 형식SQL Server data type IBM DB2 데이터 형식IBM DB2 data type
bigintbigint DECIMAL(19,0)DECIMAL(19,0)
binary(1-254)binary(1-254) CHAR(1-254) FOR BIT DATACHAR(1-254) FOR BIT DATA
binary(255-8000)binary(255-8000) VARCHAR(255-8000) FOR BIT DATAVARCHAR(255-8000) FOR BIT DATA
bitbit SMALLINTSMALLINT
char(1-254)char(1-254) CHAR(1-254)CHAR(1-254)
char(255-8000)char(255-8000) VARCHAR(255-8000)VARCHAR(255-8000)
datedate DATEDATE
datetimedatetime TIMESTAMPTIMESTAMP
datetime2(0-7)datetime2(0-7) VARCHAR(27)VARCHAR(27)
datetimeoffset(0-7)datetimeoffset(0-7) VARCHAR(34)VARCHAR(34)
decimal(1-31, 0-31)decimal(1-31, 0-31) DECIMAL(1-31, 0-31)DECIMAL(1-31, 0-31)
decimal(32-38, 0-38)decimal(32-38, 0-38) VARCHAR(41)VARCHAR(41)
float(53)float(53) DOUBLEDOUBLE
floatfloat FLOATFLOAT
geographygeography IMAGEIMAGE
geometrygeometry IMAGEIMAGE
hierarchyidhierarchyid IMAGEIMAGE
imageimage VARCHAR(0) FOR BIT DATAVARCHAR(0) FOR BIT DATA
intointo INTINT
moneymoney DECIMAL(19,4)DECIMAL(19,4)
nchar(1-4000)nchar(1-4000) VARCHAR(1-4000)VARCHAR(1-4000)
ntextntext VARCHAR(0)VARCHAR(0)
numeric(1-31, 0-31)numeric(1-31, 0-31) DECIMAL(1-31,0-31)DECIMAL(1-31,0-31)
numeric(32-38, 0-38)numeric(32-38, 0-38) VARCHAR(41)VARCHAR(41)
nvarchar(1-4000)nvarchar(1-4000) VARCHAR(1-4000)VARCHAR(1-4000)
nvarchar(max)nvarchar(max) VARCHAR(0)VARCHAR(0)
realreal REALREAL
smalldatetimesmalldatetime TIMESTAMPTIMESTAMP
smallintsmallint SMALLINTSMALLINT
smallmoneysmallmoney DECIMAL(10,4)DECIMAL(10,4)
sql_variantsql_variant 해당 사항 없음N/A
sysnamesysname VARCHAR(128)VARCHAR(128)
texttext VARCHAR(0)VARCHAR(0)
time(0-7)time(0-7) VARCHAR(16)VARCHAR(16)
timestamptimestamp CHAR(8) FOR BIT DATACHAR(8) FOR BIT DATA
tinyinttinyint SMALLINTSMALLINT
uniqueidentifieruniqueidentifier CHAR (38)CHAR(38)
varbinary(1-8000)varbinary(1-8000) VARCHAR(1-8000) FOR BIT DATAVARCHAR(1-8000) FOR BIT DATA
varchar(1-8000)varchar(1-8000) VARCHAR(1-8000)VARCHAR(1-8000)
varbinary(max)varbinary(max) VARCHAR(0) FOR BIT DATAVARCHAR(0) FOR BIT DATA
varchar(max)varchar(max) VARCHAR(0)VARCHAR(0)
xmlxml VARCHAR(0)VARCHAR(0)
  • VARCHAR(0)로의 매핑에 대한 자세한 내용은 다음 섹션을 참조하세요.See the next section for more information about mappings to VARCHAR(0).

데이터 형식 매핑 고려 사항Data Type Mapping Considerations

DB2 구독자로 복제 시 데이터 형식 매핑과 관련된 다음 사항을 고려해야 합니다.Consider the following data type mapping issues when replicating to DB2 Subscribers:

  • SQL ServerSQL Serverchar, varchar, binaryvarbinary를 각각 DB2의 CHAR, VARCHAR, CHAR FOR BIT DATA 및 VARCHAR FOR BIT DATA에 매핑하면 복제에서 DB2 데이터 형식의 길이를 해당 SQL ServerSQL Server 데이터 형식의 길이와 같게 설정합니다.When mapping SQL ServerSQL Server char, varchar, binary and varbinary to DB2 CHAR, VARCHAR, CHAR FOR BIT DATA, and VARCHAR FOR BIT DATA, respectively, replication sets the length of the DB2 data type to be the same as that of the SQL ServerSQL Server type.

    이렇게 하면 DB2의 페이지 크기를 최대 행 크기를 수용할 수 있을 정도로 늘릴 수 있는 한 생성된 테이블을 구독자에서 성공적으로 만들 수 있습니다.This allows the generated table to be successfully created at the Subscriber, as long as the DB2 page size constraint is large enough to accommodate the maximum size of the row. DB2 데이터베이스에 액세스하는 데 사용되는 로그인은 테이블을 DB2로 복제할 수 있는 충분한 크기의 테이블 공간에 액세스할 수 있어야 합니다.Ensure that the login used to access the DB2 database has permissions to access table spaces of a sufficient size for the tables being replicated to DB2.

  • DB2는 최대 32KB의 VARCHAR 열을 지원할 수 있으므로 SQL ServerSQL Server 의 일부 큰 개체 열을 DB2 VARCHAR 열로 적절하게 매핑할 수 있습니다.DB2 can support VARCHAR columns as large as 32 kilobytes (KB); therefore it is possible that some SQL ServerSQL Server large object columns can be appropriately mapped to DB2 VARCHAR columns. 그러나 복제에서 사용하는 DB2용 OLE DB 공급자에서는 SQL ServerSQL Server 의 큰 개체를 DB2의 큰 개체로 매핑할 수 없습니다.However, the OLE DB provider that replication uses for DB2 does not support mapping SQL ServerSQL Server large objects to DB2 large objects. 따라서 SQL ServerSQL Server text, varchar(max), ntextnvarchar(max) 열은 생성된 생성 스크립트에서 VARCHAR(0)에 매핑됩니다.For this reason, SQL ServerSQL Server text, varchar(max), ntext, and nvarchar(max) columns are mapped to VARCHAR(0) in the generated create scripts. 길이 값 0은 스크립트를 구독자에 적용하기 전에 적절한 값으로 바꾸어야 합니다.The length value of 0 must be changed to an appropriate value prior to applying the script to the Subscriber. 데이터 형식의 길이를 변경하지 않으면 DB2 구독자에서 테이블을 만들려고 할 때 DB2에서 오류 604가 발생합니다. 오류 604는 데이터 형식의 전체 자릿수나 길이 특성이 유효하지 않음을 나타냅니다.If the data type length is not changed, DB2 will raise error 604 when the table create is attempted at the DB2 Subscriber (error 604 indicates that the precision or length attribute of a data type is not valid).

    복제하는 원본 테이블에 대한 지식을 바탕으로 SQL ServerSQL Server 의 큰 개체를 가변 길이의 DB2 항목에 매핑하는 것이 적절한지 결정하고 사용자 지정 생성 스크립트에 적절한 최대 길이를 지정합니다.Based upon your knowledge of the source table that you are replicating, determine whether it is appropriate to map a SQL ServerSQL Server large object to a variable length DB2 item, and specify an appropriate maximum length in a custom creation script. 사용자 지정 생성 스크립트 지정 방법은 이 항목의 "IBM DB2 구독자 구성" 섹션에서 5단계를 참조하십시오.For information about specifying a custom creation script, see step 5 in the section "Configuring an IBM DB2 Subscriber" in this topic.

    참고

    DB2 형식에 지정한 길이와 다른 열 길이를 더한 값은 테이블 데이터가 할당되는 DB2 테이블 공간을 기준으로 설정되는 최대 행 크기를 초과할 수 없습니다.The specified length for the DB2 type, when combined with other column lengths, cannot exceed the maximum row size based upon the DB2 table space that the table data is assigned to.

    큰 개체 열에 대한 적절한 매핑이 없으면 열이 복제되지 않도록 아티클에 대해 열 필터링을 사용해 보십시오.If there is no appropriate mapping for a large object column, consider using column filtering on the article so that the column is not replicated. 자세한 내용은 게시된 데이터 필터링을 참조하세요.For more information, see Filter Published Data.

  • SQL ServerSQL Serverncharnvarchar를 DB2의 CHAR 및 VARCHAR로 복제하는 경우 SQL ServerSQL Server 형식과 DB2 형식에 같은 길이 지정자가 사용됩니다.When replicating SQL ServerSQL Server nchar and nvarchar to DB2 CHAR and VARCHAR, replication uses the same length-specifier for the DB2 type as for the SQL ServerSQL Server type. 그러나 데이터 형식의 길이가 생성된 DB2 테이블에 비해 너무 작을 수도 있습니다.However, the data type length might too small for the generated DB2 table.

    일부 DB2 환경에서는 SQL ServerSQL Server char 데이터 항목의 문자가 싱글바이트로 제한되지는 않으므로 CHAR 또는 VARCHAR 항목의 길이를 정할 때 이를 고려해야 합니다.In some DB2 environments, a SQL ServerSQL Server char data item is not restricted to single-byte characters; the length of a CHAR or VARCHAR item must take this into account. 또한 필요한 경우 시프트 인시프트 아웃 문자를 사용해 볼 수 있습니다.You must also take into account shift in and shift out characters if they are needed. nchar 열과 nvarchar 열이 있는 테이블을 복제하는 경우 사용자 지정 생성 스크립트로 해당 데이터 형식에 보다 큰 최대 길이를 지정할 수도 있습니다.If you are replicating tables with nchar and nvarchar columns, you might need to specify a larger maximum length for the data type in a custom creation script. 사용자 지정 생성 스크립트 지정 방법은 이 항목의 "IBM DB2 구독자 구성" 섹션에서 5단계를 참조하십시오.For information about specifying a custom creation script, see step 5 in the section "Configuring an IBM DB2 Subscriber" in this topic.

참고 항목See Also

Non-SQL Server Subscribers Non-SQL Server Subscribers
게시 구독 Subscribe to Publications