SQL Server 이외 구독자에 대한 구독 만들기

적용 대상:SQL Server

이 항목에서는 SQL Server Management Studio 또는 Transact-SQL을 사용하여 SQL Server에서 SQL Server가 아닌 구독자에 대한 구독을 만드는 방법을 설명합니다. 트랜잭션 및 스냅샷 복제본(replica)은 SQL Server가 아닌 구독자에게 데이터를 게시할 수 있도록 지원합니다. 지원되는 구독자 플랫폼에 대한 자세한 내용은 SQL Server 이외 구독자를 참조 하세요.

항목 내용

SQL Server Management Studio 사용

SQL Server 이외 구독자에 대한 구독을 만들려면 다음을 수행합니다.

  1. SQL Server 배포자에 적절한 클라이언트 소프트웨어 및 OLE DB 공급자를 설치하고 구성합니다. 자세한 내용은 Oracle 구독자IBM DB2 구독자를 참조하세요.

  2. 새 게시 마법사를 사용하여 게시를 만듭니다. 게시를 만드는 방법에 대한 자세한 내용은 게시 만들기Oracle 데이터베이스에서 게시 만들기를 참조하세요. 새 게시 마법사에서 다음 옵션을 지정합니다.

    • 게시 유형 페이지에서 스냅샷 게시 또는 트랜잭션 게시를 선택합니다.

    • 스냅샷 에이전트 페이지에서 즉시 스냅샷 만들기를 취소합니다.

      SQL Server 이외 구독자에 대해 게시를 사용하도록 설정한 후 스냅샷 만들어 스냅샷 에이전트 SQL Server 이외 구독자에 적합한 스냅샷 및 초기화 스크립트를 생성하도록 합니다.

  3. 게시 속성 - <PublicationName> 대화 상자를 사용하여 SQL Server 이외 구독자에 대해 게시를 사용하도록 설정합니다. 이 단계에 대한 자세한 내용은 게시 속성, 구독 옵션을 참조하세요.

  4. 새 구독 마법사를 사용하여 구독을 만듭니다. 이 항목에서는 이 단계에 대한 자세한 정보를 제공합니다.

  5. (선택 사항) 구독자에서 테이블을 유지하도록 pre_creation_cmd 아티클 속성을 변경합니다. 이 항목에서는 이 단계에 대한 자세한 정보를 제공합니다.

  6. 게시에 대한 스냅샷을 생성합니다. 이 항목에서는 이 단계에 대한 자세한 정보를 제공합니다.

  7. 구독을 동기화합니다. 자세한 내용은 밀어넣기 구독 동기화를 참조 하세요.

SQL Server 이외 구독자에 게시를 사용하도록 설정하려면

  1. SQL Server Management Studio에서 게시자에 커넥트 서버 노드를 확장합니다.

  2. 복제 폴더를 확장한 다음 로컬 게시 폴더를 확장합니다.

  3. 게시를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.

  4. 구독 옵션 페이지에서 SQL Server 이외 구독자 허용 옵션에 대해 True값을 선택합니다. 이 옵션을 선택하면 게시가 SQL Server 이외 구독자와 호환되도록 여러 속성이 변경됩니다.

    참고 항목

    True 를 선택하면 pre_creation_cmd 아티클 속성 값이 'drop'으로 설정됩니다. 이 설정은 복제본(replica) 아티클의 테이블 이름과 일치하는 경우 테이블을 구독자에 삭제해야 하며, 유지하려는 구독자에 기존 테이블이 있는 경우 각 아티클에 대한 sp_changearticle 저장 프로시저를 사용합니다. pre_creation_cmd sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'대한 값 'none'을 지정합니다.

  5. 확인을 선택합니다. 게시에 대한 새 스냅샷 만들라는 메시지가 표시됩니다. 이때 만들지 않으려면 나중에 다음 "방법" 프로시저에 설명된 단계를 사용합니다.

SQL Server 이외 구독자에 대한 구독을 만들려면

  1. 복제 폴더를 확장한 다음 로컬 게시 폴더를 확장합니다.

  2. 적절한 게시를 마우스 오른쪽 단추로 클릭한 다음 새 구독을 클릭합니다.

  3. 배포 에이전트 위치 페이지에서 배포자에서 모든 에이전트 실행 을 선택합니다. SQL Server 이외 구독자는 구독자에서 에이전트 실행을 지원하지 않습니다.

  4. 구독자 페이지에서 구독 추가를 클릭한 다음 SQL Server 이외 구독자 추가를 클릭합니다.

  5. SQL Server 이외 구독자 추가 대화 상자에서 구독자 유형을 선택합니다.

  6. 데이터 원본 이름값을 입력합니다.

    • Oracle의 경우 구성한 TNS(Transparent Network Substrate) 이름을 입력합니다.

    • IBM의 경우 아무 이름이나 입력할 수 있습니다. 일반적으로 구독자의 네트워크 주소를 지정합니다.

    이 단계에서 입력한 데이터 원본 이름과 9단계에서 지정한 자격 증명은 이 마법사에서 확인하지 않고 구독에 대해 배포 에이전트 실행될 때까지는 복제본(replica)tion에서 사용되지 않습니다. 클라이언트 도구(예: Oracle용 sqlplus )를 사용하여 구독자에 연결하여 모든 값이 테스트되었는지 확인합니다. 자세한 내용은 Oracle 구독자IBM DB2 구독자를 참조하세요.

  7. 확인을 선택합니다. 마법사의 구독자 페이지에서 이제 구독자가 구독자 열에 표시되며 구독 데이터베이스 열에서는 읽기 전용 (기본 대상) 입니다.

    • Oracle의 경우 한 대의 서버에 데이터베이스가 하나만 있으므로 데이터베이스를 지정할 필요가 없습니다.

    • IBM DB2의 경우 데이터베이스는 DB2 연결 문자열 초기 카탈로그 속성에 지정되며, 이 속성은 이 프로세스의 뒷부분에 설명된 추가 연결 옵션 필드에 입력할 수 있습니다.

  8. 배포 에이전트 보안 페이지에서 구독자 옆에 있는 속성 단추(...)를 클릭하여 배포 에이전트 보안 대화 상자에 액세스합니다.

  9. 배포 에이전트 보안 대화 상자에서 다음을 수행합니다.

    • 프로세스 계정, 암호암호 확인 필드에서 배포 에이전트 실행할 Microsoft Windows 계정 및 암호를 입력하고 배포자에 로컬로 연결합니다.

      계정에는 배포 데이터베이스에서 db_owner 고정 데이터베이스 역할의 멤버, PAL(게시 액세스 목록)의 멤버, 스냅샷 공유에 대한 읽기 권한 및 OLE DB 공급자의 설치 디렉터리에 대한 읽기 권한과 같은 최소 권한이 필요합니다. PAL에 대한 자세한 내용은 게시자 보안 설정을 참조하세요.

    • 구독자에 대한 커넥트 로그인, 암호암호 확인 필드에 구독자에 연결하는 데 사용해야 하는 로그인 및 암호를 입력합니다. 이 로그인은 이미 구성되어 있어야 하며 구독 데이터베이스에서 개체를 만들 수 있는 충분한 권한을 갖고 있어야 합니다.

    • 추가 연결 옵션 필드에서 연결 문자열의 형식으로 구독자에 대한 연결 옵션을 지정합니다. Oracle에서는 추가 옵션이 필요하지 않습니다. 각 옵션은 세미콜론으로 구분해야 합니다. 다음은 DB2 연결 문자열 예입니다(줄 바꿈은 가독성을 위한 것입니다.)

      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;Units of Work=RUW;DBMS Platform=DB2/NT;  
      Persist Security Info=False;Connection Pooling=True;  
      

      문자열의 대부분의 옵션은 구성 중인 DB2 서버와 관련이 있지만 이진 파일을 문자로 처리 옵션은 항상 False설정해야 합니다. 구독 데이터베이스를 식별하려면 초기 카탈로그 옵션에 값이 필요합니다.

  10. 동기화 일정 페이지의 에이전트 일정 메뉴에서 배포 에이전트 대한 일정을 선택합니다(일정은 일반적으로 지속적으로 실행됨).

  11. 구독 초기화 페이지에서 구독을 초기화해야 하는지 여부와 초기화해야 하는 경우 다음을 지정합니다.

    • 모든 개체를 만들고 구독 데이터베이스에 필요한 모든 데이터를 추가한 경우에만 초기화 지우기를 취소합니다.

    • 이 마법사가 완료된 다음 배포 에이전트가 스냅샷 파일을 구독자에게 전송하게 하려면 초기화 시기 열의 드롭다운 목록에서 즉시 를 선택합니다. 에이전트가 다음에 실행되도록 예약될 때 파일을 전송하도록 하려면 첫 번째 동기화 시를 선택합니다.

  12. 마법사 작업 페이지에서 필요에 따라 구독을 스크립션합니다. 자세한 내용은 복제 스크립팅을 참조 하세요.

구독자에서 테이블을 유지하려면

  • 기본적으로 SQL Server 이외 구독자에 게시를 사용하도록 설정하면 pre_creation_cmd 아티클 속성의 값이 'drop'으로 설정됩니다. 이 설정은 복제본(replica) 아티클의 테이블 이름과 일치하는 경우 테이블을 구독자에 삭제해야 하며, 구독자에서 기존 테이블을 계속 유지하려는 경우 각 아티클에 대해 sp_changearticle 저장 프로시저를 사용하고 pre_creation_cmd에 'none' 값을 지정합니다. sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'.

게시에 대한 스냅샷 생성하려면

  1. 복제 폴더를 확장한 다음 로컬 게시 폴더를 확장합니다.

  2. 게시를 마우스 오른쪽 단추로 클릭한 다음 스냅샷 에이전트 상태 보기를 클릭합니다.

  3. 보기 스냅샷 에이전트 상태 - <게시> 대화 상자에서 시작을 클릭합니다.

스냅샷 에이전트 스냅샷 생성을 마치면 "[100%] 17개 아티클 중 스냅샷 생성되었습니다."와 같은 메시지가 표시됩니다.

Transact-SQL 사용

복제본(replica)tion 저장 프로시저를 사용하여 프로그래밍 방식으로 SQL Server 이외 구독자에 대한 밀어넣기 구독을 만들 수 있습니다.

Important

가능한 경우 런타임 시 사용자에게 보안 자격 증명을 입력하라는 메시지가 표시됩니다. 스크립트 파일에 자격 증명을 저장해야 하는 경우 무단 액세스를 방지하기 위해 파일을 보호해야 합니다.

SQL Server 이외 구독자에 대한 트랜잭션 또는 스냅샷 게시에 대한 밀어넣기 구독을 만들려면

  1. 게시자와 배포자 모두에서 SQL Server 이외 구독자에 대한 최신 OLE DB 공급자를 설치합니다. OLE DB 공급자에 대한 복제본(replica) 요구 사항은 SQL Server 이외 구독자, Oracle 구독자, IBM DB2 구독자를 참조하세요.

  2. 게시 데이터베이스의 게시자에서 게시가 sp_helppublication(Transact-SQL)를 실행하여 SQL Server 이외 구독자를 지원하는지 확인합니다.

    • enabled_for_het_sub이 1이면 SQL Server 이외 구독자가 지원됩니다.

    • enabled_for_het_sub 값이 0이면 sp_changepublication(Transact-SQL)를 실행하여 enabled_for_het_sub 및 true@property@value지정합니다.

      참고 항목

      enabled_for_het_sub true변경하기 전에 기존 구독을 게시에 삭제해야 합니다. 게시에서 구독 업데이트도 지원하는 경우 enabled_for_het_sub true로 설정할 수 없습니다. enabled_for_het_sub 변경하면 다른 게시 속성에 영향을 미칩니다. 자세한 내용은 SQL Server 이외 구독자를 참조 하세요.

  3. 게시 데이터베이스의 게시자에서 sp_addsubscription(Transact-SQL)를 실행합니다. OLE DB 공급자를 @destination_db(default destination) 지정하는 경우 , @subscriber값, 밀어넣@subscription_type기 값, 값 3 @subscriber_type 을 지정@publication합니다.

  4. 게시 데이터베이스의 게시자에서 sp_addpushsubscription_agent(Transact-SQL)를 실행합니다. 다음 사항을 지정합니다.

    • @subscriber@publication 매개 변수

    • @subscriber_db(기본 대상)

    • , , 및 에 대한 SQL Server가 아닌 데이터 원본의 @subscriber_datasrc@subscriber_provider@subscriber_location속성입니다.@subscriber_catalog@subscriber_provider_string

    • 배포자에서 배포 에이전트 실행되는 @job_login Microsoft Windows 자격 증명입니다@job_password.

    참고 항목

    Windows 통합 인증을 사용하여 만든 커넥트 항상 지정된 @job_login Windows 자격 증명을 사용합니다.@job_password 배포 에이전트는 항상 Windows 통합 인증을 사용하여 배포자에 대한 로컬 연결을 만듭니다. 기본적으로 에이전트는 Windows 통합 인증을 사용하여 구독자에 연결합니다.

    • @subscriber_security_mode0 값, @subscriber_login@subscriber_password에 OLE DB 공급자 로그인 정보

    • 이 구독의 배포 에이전트 작업에 대한 일정입니다. 자세한 내용은 Specify Synchronization Schedules을 참조하세요.

    Important

    게시자에서 원격 배포자를 사용하여 밀어넣기 구독을 만드는 경우 job_loginjob_password를 비롯한 모든 매개 변수에 제공된 값이 일반 텍스트로 배포자에게 보내집니다. 이 저장 프로시저를 실행하기 전에 게시자와 해당 원격 배포자 간의 연결을 암호화해야 합니다. 자세한 내용은 데이터베이스 엔진(SQL Server 구성 관리자)에 대한 암호화된 커넥트온을 사용하도록 설정하세요.

참고 항목

IBM DB2 구독자
Oracle 구독자
기타 SQL Server 이외 구독자
Replication System Stored Procedures Concepts
복제 보안을 위한 최선의 구현 방법