다음을 통해 공유


ID 열 관리

이 항목에서는 SQL Server Management Studio 또는 Transact-SQL을 사용하여 SQL Server 2014에서 ID 열을 관리하는 방법을 설명합니다. 구독자 삽입이 게시자에 다시 복제되는 경우 구독자와 게시자 모두에서 동일한 ID 값이 할당되지 않도록 ID 열을 관리해야 합니다. 복제는 ID 범위를 자동으로 관리하거나 ID 범위 관리를 수동으로 처리하도록 선택할 수 있습니다. 복제에서 제공하는 ID 범위 관리 옵션에 대한 자세한 내용은 ID 열 복제를 참조하세요.

시작하기 전에

권장 사항

  • 둘 이상의 게시에 테이블을 게시하는 경우 두 게시에 대해 동일한 ID 범위 관리 옵션을 지정해야 합니다. 자세한 내용은 데이터 및 데이터베이스 개체 게시의 "둘 이상의 게시에 테이블 게시"를 참조하세요.

  • 여러 테이블에서 사용할 수 있거나 테이블을 참조하지 않고 애플리케이션에서 호출할 수 있는 자동으로 증가하는 번호를 만들려면 시퀀스 번호를 참조하세요.

SQL Server Management Studio 사용

새 게시 마법사의 아티클 속성 -<아티클> 대화 상자의 속성 탭에서 ID 열 관리 옵션을 지정합니다. 이 마법사를 사용하는 방법에 대한 자세한 내용은 게시 만들기를 참조하세요. 새 게시 마법사에서:

  • 게시 유형 페이지에서 병합 게시 또는 구독을 업데이트하는 트랜잭션 게시를 선택하는 경우, 자동 또는 수동 ID 범위 관리(기본값인 자동이 추천됨)를 선택합니다. 테이블이 게시된 후에는 속성을 수정할 수 없지만 다른 관련 속성을 수정할 수 있습니다.

  • 다른 게시 유형을 선택하는 경우 ID 범위 관리를 수동으로 설정해야 합니다.

게시 속성 - <게시> 대화 상자의 아티클 속성 -<아티클> 탭에서 ID 범위 및 임계값을 수정합니다.속성 이 대화 상자에 액세스하는 방법에 대한 자세한 내용은 게시 속성 보기 및 수정을 참조하세요.

ID 열 관리 옵션을 지정하려면

  1. 게시자가 SQL Server 2005 이전 버전의 SQL Server를 실행하는 경우, 새 게시 마법사의 게시 유형 페이지에서 병합 게시 또는 업데이트 구독이 포함된 트랜잭션 게시를 선택합니다.

  2. 아티클 페이지에서 ID 열이 있는 테이블을 선택합니다.

  3. 아티클 속성을 클릭한 다음 선택한 테이블 아티클 속성 설정을 클릭합니다.

  4. 아티클 속성 - <아티클> 대화 상자의 속성 탭에서 ID 범위 관리 섹션에서 자동으로 관리 ID 범위 속성을 자동 또는 수동(SQL Server 2005 이상을 실행하는 게시자의 경우) 또는 True 또는 False(SQL Server 2005 이전 버전의 SQL Server를 실행하는 게시자의 경우)로 설정합니다.

  5. 4단계에서 자동 또는 True 를 선택한 경우 다음 표의 옵션 값을 입력합니다. 이러한 설정을 사용하는 방법에 대한 자세한 내용은 ID 열 복제의 "ID 범위 할당" 섹션을 참조하세요.

    옵션 가치 설명
    게시자 범위 크기 범위 크기에 대한 정수 값입니다(예: 20000). ID 열 복제의 "ID 범위 할당" 섹션을 참조하세요.
    구독자 범위 크기 범위 크기에 대한 정수 값입니다(예: 10000). ID 열 복제의 "ID 범위 할당" 섹션을 참조하세요.
    범위 임계값 백분율 백분율 임계값의 정수 값입니다(예: 90은 90%와 동일). 새 ID 범위가 할당되기 전에 노드에서 사용되는 총 ID 값의 백분율입니다.

    참고: 이 값은 지정해야 하지만 다음 경우에만 사용됩니다: 대기 업데이트 구독을 사용하는 구독자; SQL Server Compact 또는 이전 버전의 기타 SQL Server 에디션을 실행하는 병합 게시의 구독자. 자세한 내용은 ID 열 복제의 "ID 범위 할당" 섹션을 참조하세요.
    다음 범위 시작 값 정수 값입니다. 읽기 전용입니다. 다음 범위가 시작될 값입니다. 예를 들어 현재 범위가 5001-6000이면 이 값은 6001이 됩니다.
    최대 ID 값 정수 값입니다. 읽기 전용입니다. ID 열의 가장 큰 값입니다. 열의 기본 데이터 형식에 따라 결정됩니다.
    ID 증분 정수 값입니다. 읽기 전용입니다. ID 열의 숫자가 각 삽입에 대해 증가하거나 감소해야 하는 크기입니다. 일반적으로 1로 설정됩니다.
  6. OK를 클릭합니다.

테이블이 게시된 후 ID 범위 및 임계값을 수정하려면

  1. 게시 속성 - <게시> 대화 상자의 아티클 페이지에서 ID 열이 있는 테이블을 선택합니다.

  2. 아티클 속성을 클릭한 다음 선택한 테이블 아티클 속성 설정을 클릭합니다.

  3. 아티클 속성 - <아티클> 대화 상자의 속성 탭에 있는 ID 범위 관리 섹션에서 게시자 범위 크기, 구독자 범위 크기범위 임계값 백분율 속성 중 하나 이상의 값을 입력합니다.

  4. OK를 클릭합니다.

  5. 게시 속성 - <게시> 대화 상자에서 확인을 클릭합니다.

Transact-SQL 사용

복제 저장 프로시저를 사용하여 아티클을 만들 때 ID 범위 관리 옵션을 지정할 수 있습니다.

트랜잭션 게시에 대한 아티클을 정의할 때 자동 ID 범위 관리를 사용하도록 설정하려면

  1. 게시 데이터베이스의 게시자에서 sp_addarticle 실행합니다. 게시되는 원본 테이블에 ID 열이 있는 경우 auto값을 @identityrangemanagementoption으로 지정하고, @pub_identity_range는 게시자에게 할당된 ID 값의 범위를, @identity_range는 각 구독자에게 할당된 ID 값의 범위를 지정하며, @threshold는 새 ID 범위가 할당되기 전에 사용되는 총 ID 값의 백분율을 지정합니다. 아티클 정의에 대한 자세한 내용은 아티클 정의를 참조하세요.

    비고

    ID 열의 데이터 형식이 모든 구독자에게 할당되는 총 ID 범위를 지원할 만큼 충분히 큰지 확인합니다.

트랜잭션 게시에 대한 아티클을 정의할 때 자동 ID 범위 관리를 사용하지 않도록 설정하려면

  1. 게시 데이터베이스의 게시자에서 sp_addarticle 실행합니다. @identityrangemanagementoption에 대해 수동 값을 지정하십시오. 아티클 정의에 대한 자세한 내용은 아티클 정의를 참조하세요.

  2. 구독자 업데이트에 대한 충돌이 발생하지 않도록 구독자의 ID 아티클 열에 범위를 할당합니다. 자세한 내용은 ID 열 복제 항목에서 수동 ID 범위 관리를 위한 범위 할당에 대한 섹션을 참조하세요.

병합 게시에 대한 아티클을 정의할 때 자동 ID 범위 관리를 사용하도록 설정하려면

  1. 게시 데이터베이스의 게시자에서 sp_addmergearticle 실행합니다. 게시되는 원본 테이블에 ID 열이 있는 경우 @identityrangemanagementoption에 대한 값으로 자동을 지정하고, @pub_identity_range는 서버 구독에 할당된 ID 값 범위를, @identity_range는 게시자와 각 클라이언트 구독에 할당된 ID 값 범위를, @threshold은 새로운 ID 범위가 할당되기 전에 사용되는 총 ID 값의 백분율을 지정합니다. 새 ID 범위가 할당되는 시기에 대한 자세한 내용은 ID 열 복제 항목에서 ID 범위 할당을 참조하세요. 아티클 정의에 대한 자세한 내용은 아티클 정의를 참조하세요.

    비고

    ID 열의 데이터 형식이 모든 구독자, 특히 서버 구독이 있는 구독자에 할당되는 총 ID 범위를 지원할 만큼 충분히 큰지 확인합니다.

병합 게시에 대한 아티클을 정의할 때 자동 ID 범위 관리를 사용하지 않도록 설정하려면

  1. 게시 데이터베이스의 게시자에서 sp_addmergearticle 실행합니다. @identityrangemanagementoption 다음 값 중 하나를 지정합니다.

    • manual - 구독자를 업데이트하려면 ID 범위를 수동으로 할당해야 합니다.

    • none - 게시자의 ID 열은 구독자에서 ID 열로 정의되지 않습니다.

    아티클 정의에 대한 자세한 내용은 아티클 정의를 참조하세요.

  2. 구독자를 업데이트할 때 충돌이 발생하지 않도록 구독자의 ID 아티클 열에 범위를 할당합니다.

스냅샷 또는 트랜잭션 게시의 기존 아티클에 대한 자동 ID 범위 관리 설정을 변경하려면

  1. 게시 데이터베이스의 게시자에서 sp_helparticle 실행하고 결과 집합에서 identityrangemanagementoption 값을 기록해 둡다. 이 값이 0이면 자동 ID 범위 관리를 사용할 수 없습니다.

  2. 결과 집합의 identityrangemanagementoption 값이 1이면 다음과 같이 설정을 변경합니다.

    • 할당된 ID 범위를 변경하려면 게시 데이터베이스의 게시자에서 sp_changearticle 실행합니다. @property에 대해 identity_range 또는 pub_identity_range 값을 지정하고, 새로운 범위 값으로 @value 값을 입력하세요.

    • 새 범위가 할당되는 임계값을 변경하려면 게시 데이터베이스의 게시자에서 sp_changearticle 실행합니다. @property에 대한 임계값새 임계값@value로 지정합니다.

병합 게시의 기존 아티클에 대한 자동 ID 범위 관리 설정을 변경하려면

  1. 게시 데이터베이스의 게시자에서 sp_helpmergearticle 실행하고 결과 집합의 identity_support 값을 기록해 둡다. 이 값이 0이면 자동 ID 범위 관리를 사용할 수 없습니다.

  2. 결과 집합의 identity_support 값이 1이면 다음과 같이 설정을 변경합니다.

    • 할당된 ID 범위를 변경하려면 게시 데이터베이스의 게시자에서 sp_changemergearticle 실행합니다. identity_range 또는 pub_identity_range 값을 @property로, 새로운 범위 값을 @value로 지정합니다.

    • 새 범위가 할당되는 임계값을 변경하려면 게시 데이터베이스의 게시자에서 sp_changemergearticle 실행합니다. @property에 대한 임계값과 @value에 대한 새로운 임계값을 지정합니다. 새 ID 범위가 할당되는 시기에 대한 자세한 내용은 ID 열 복제 항목에서 ID 범위 할당을 참조하세요.

    • 자동 ID 범위 관리를 사용하지 않도록 설정하려면 게시 데이터베이스의 게시자에서 sp_changemergearticle 실행합니다. @property에 대해 identityrangemanagementoption 값을 지정하고, @value에 대해 수동 또는 없음을 지정합니다.

또한 참조하십시오

피어 투 피어 트랜잭션 복제
복제 시스템 저장 프로시저 개념
ID 열 복제