Replication Snapshot Agent
적용 대상: SQL Server Azure SQL Database
복제 스냅샷 에이전트는 게시된 테이블 및 데이터베이스 개체의 스키마 및 데이터를 포함하는 스냅샷 파일을 준비하는 실행 파일로, 스냅샷 폴더에 저장하고 배포 데이터베이스에 동기화 작업을 기록합니다.
참고 항목
- 매개 변수는 순서에 따라 지정할 수 있습니다.
참고 항목
Azure SQL Managed Instance는 스냅샷 및 트랜잭션 복제를 위한 게시자, 배포자 및 구독자일 수 있습니다. Azure SQL Database의 데이터베이스는 스냅샷과 트랜잭션 복제를 위한 밀어넣기 구독자만 될 수 있습니다. 자세한 내용은 Azure SQL 데이터베이스 및 Azure SQL Managed Instance를 사용하는 트랜잭션 복제를 참조하세요.
구문
snapshot [ -?]
-Publisher server_name[\instance_name]
-Publication publication_name
[-70Subscribers]
[-BcpBatchSize bcp_batch_size]
[-DefinitionFile def_path_and_file_name]
[-Distributor server_name[\instance_name]]
[-DistributorDeadlockPriority [-1|0|1] ]
[-DistributorLogin distributor_login]
[-DistributorPassword distributor_password]
[-DistributorSecurityMode [0|1] ]
[-DynamicFilterHostName dynamic_filter_host_name]
[-DynamicFilterLogin dynamic_filter_login]
[-DynamicSnapshotLocation dynamic_snapshot_location]
[-EncryptionLevel [0|1|2]]
[-FieldDelimiter field_delimiter]
[-HistoryVerboseLevel [0|1|2|3] ]
[-HRBcpBlocks number_of_blocks ]
[-HRBcpBlockSize block_size ]
[-HRBcpDynamicBlocks ]
[-KeepAliveMessageInterval keep_alive_interval]
[-LoginTimeOut login_time_out_seconds]
[-MaxBcpThreads number_of_threads ]
[-MaxNetworkOptimization [0|1]]
[-Output output_path_and_file_name]
[-OutputVerboseLevel [0|1|2] ]
[-PacketSize packet_size]
[-PrefetchTables [0|1] ]
[-ProfileName profile_name]
[-PublisherDB publisher_database]
[-PublisherDeadlockPriority [-1|0|1] ]
[-PublisherFailoverPartner server_name[\instance_name] ]
[-PublisherLogin publisher_login]
[-PublisherPassword publisher_password]
[-PublisherSecurityMode [0|1] ]
[-QueryTimeOut query_time_out_seconds]
[-ReplicationType [1|2] ]
[-RowDelimiter row_delimiter]
[-StartQueueTimeout start_queue_timeout_seconds]
[-UsePerArticleContentsView use_per_article_contents_view]
인수
-?
사용 가능한 모든 매개 변수를 인쇄합니다.
-Publisher server_name[\instance_name]
게시자의 이름입니다. 해당 서버에서 Microsoft SQL Server의 기본 인스턴스에 대한 server_name 지정합니다. \해당 서버의 명명된 SQL Server 인스턴스에 대한 server_name instance_name 지정합니다.
-Publication publication
게시의 이름입니다. 이 매개 변수는 게시가 항상 새 구독 또는 다시 초기화된 구독에 대해 스냅샷을 사용할 수 있도록 설정된 경우에만 유효합니다.
-70Subscribers
구독자가 SQL Server 버전 7.0을 실행하는 경우 사용해야 합니다.
-BcpBatchSize bcp_ batch_ size
대량 복사 작업에서 보낼 행 수입니다. bcp 작업을 수행할 때 일괄 처리 크기는 서버에 하나의 트랜잭션으로 보낼 행 수와 배포 에이전트 bcp 진행률 메시지를 기록하기 전에 전송해야 하는 행의 수입니다. bcp out 작업을 수행할 때 1000의 고정 일괄 처리 크기가 사용됩니다. 값이 0이면 메시지 로깅이 없음을 나타냅니다.
-DefinitionFile def_path_and_file_name
에이전트 정의 파일의 경로입니다. 에이전트 정의 파일에는 에이전트에 대한 명령줄 인수가 포함되어 있습니다. 파일 내용은 실행 파일로 구문 분석됩니다. 큰따옴표(")를 사용하여 임의의 문자가 포함된 인수 값을 지정합니다.
-Distributor server_name[\instance_name]
배포자 이름입니다. 해당 서버에서 SQL Server의 기본 인스턴스에 대한 server_name 지정합니다. \해당 서버의 명명된 SQL Server 인스턴스에 대한 server_name instance_name 지정합니다.
-DistributorDeadlockPriority [-1|0|1]
교착 상태가 발생할 때 배포자에 대한 스냅샷 에이전트 연결의 우선 순위입니다. 이 매개 변수는 스냅샷 생성 중에 스냅샷 에이전트 사용자 애플리케이션 간에 발생할 수 있는 교착 상태를 해결하기 위해 지정됩니다.
DistributorDeadlockPriority 값 | 설명 |
---|---|
-1 | 배포자에서 교착 상태가 발생하면 스냅샷 에이전트 이외의 애플리케이션이 우선 순위를 갖습니다. |
0 (기본값) | 우선 순위가 할당되지 않았습니다. |
1 | 배포자에서 교착 상태가 발생하면 스냅샷 에이전트 우선 순위가 지정됩니다. |
-DistributorLogin distributor_login
SQL Server 인증을 사용하여 배포자에 연결할 때 사용되는 로그인입니다.
-DistributorPassword distributor_password
SQL Server 인증을 사용하여 배포자에 연결할 때 사용되는 암호입니다. .
-DistributorSecurityMode [ 0| 1]
배포자의 보안 모드를 지정합니다. 값 0은 SQL Server 인증 모드(기본값)를 나타내고 값 1은 Windows 인증 모드를 나타냅니다.
-DynamicFilterHostName dynamic_filter_host_name
동적 스냅샷을 만들 때 필터링할 때 HOST_NAME(Transact-SQL)에 대한 값을 설정하는 데 사용됩니다. 예를 들어 아티클에 대해 하위 집합 필터 절 rep_id = HOST_NAME()
이 지정된 경우 병합 에이전트를 호출하기 전에 DynamicFilterHostName 속성을 "FBJones"로 설정하면 rep_id 열에 "FBJones"가 있는 행만 복제됩니다.
-DynamicFilterLogin dynamic_filter_login
동적 스냅샷을 만들 때 필터링할 때 SUSER_SNAME(Transact-SQL)에 대한 값을 설정하는 데 사용됩니다. 예를 들어 아티클에 하위 집합 필터 절 user_id = SUSER_SNAME()
을 지정하고 SQLSnapshot 개체의 Run 메서드를 호출하기 전에 DynamicFilterLogin 속성을 "rsmith"로 설정하면 user_id 열에 "rsmith"가 있는 행만 스냅샷에 포함됩니다.
-DynamicSnapshotLocation dynamic_snapshot_location
동적 스냅샷을 생성해야 하는 위치입니다.
-EncryptionLevel [ 0 | 1 | 2 ]
연결을 만들 때 스냅샷 에이전트에서 사용하는 이전에 SSL(Secure Sockets Layer)로 알려진 TLS(전송 계층 보안) 암호화의 수준입니다.
EncryptionLevel 값 | 설명 |
---|---|
0 | TLS가 사용되지 않도록 지정합니다. |
1 | TLS가 사용되도록 지정하지만 에이전트는 TLS/SSL 서버 인증서가 신뢰할 수 있는 발급자에서 서명되었는지 확인하지 않습니다. |
2 | TLS가 사용되고 인증서가 확인되도록 지정합니다. |
참고 항목
유효한 TLS/SSL 인증서는 SQL Server의 정규화된 도메인 이름으로 정의됩니다. -EncryptionLevel을 2로 설정할 때 에이전트가 성공적으로 연결되도록 하려면 로컬 SQL Server에서 별칭을 만듭니다. 'Alias Name' 매개 변수는 서버 이름이어야 하며 'Server' 매개 변수는 SQL Server의 정규화된 이름으로 설정해야 합니다.
자세한 내용은 복제 보안 설정 보기 및 수정을 참조하세요.
-FieldDelimiter field_delimiter
SQL Server 대량 복사 데이터 파일에서 필드의 끝을 표시하는 문자 또는 문자 시퀀스입니다. 기본값은 \n<x$3>\n입니다.
-HistoryVerboseLevel [ 1| 2| 3]
스냅샷 작업 중에 기록된 기록의 양을 지정합니다. 1을 선택하여 기록 로깅이 성능에 미치는 영향을 최소화할 수 있습니다.
HistoryVerboseLevel 값 | 설명 |
---|---|
0 | 진행 메시지를 콘솔이나 출력 파일에 씁니다. 기록 레코드는 배포 데이터베이스에 기록되지 않습니다. |
1 | 항상 동일한 상태(시작, 진행률, 성공 등)의 이전 기록 메시지를 업데이트합니다. 상태가 같은 이전 레코드가 없으면 새 레코드를 삽입합니다. |
2 (기본값) | 레코드가 유휴 메시지 또는 장기 실행 작업 메시지와 같은 항목에 대한 레코드가 아니면 새 기록 레코드를 삽입합니다. 이 경우 이전 레코드를 업데이트합니다. |
3 | 유휴 메시지용이 아니면 항상 새 레코드를 삽입합니다. |
-HRBcpBlocks number_of_blocks
기록기와 판독기 스레드 간에 큐에 대기 중인 bcp 데이터 블록의 수입니다. 기본값은 50입니다. HRBcpBlocks 는 Oracle 게시에서만 사용됩니다.
참고 항목
이 매개 변수는 Oracle 게시자에서 bcp 성능의 성능 튜닝에 사용됩니다.
-HRBcpBlockSizeblock_size
각 bcp 데이터 블록의 크기(KB)입니다. 기본값은 64KB입니다. HRBcpBlocks 는 Oracle 게시에서만 사용됩니다.
참고 항목
이 매개 변수는 Oracle 게시자에서 bcp 성능의 성능 튜닝에 사용됩니다.
-HRBcpDynamicBlocks
각 bcp 데이터 블록의 크기가 동적으로 증가할 수 있는지 여부입니다. HRBcpBlocks 는 Oracle 게시에서만 사용됩니다.
참고 항목
이 매개 변수는 Oracle 게시자에서 bcp 성능의 성능 튜닝에 사용됩니다.
-KeepAliveMessageInterval keep_alive_interval
MSsnapshot_history 테이블에 "백 엔드 메시지 대기"를 로깅하기 전에 스냅샷 에이전트 대기하는 시간(초)입니다. 기본값은 300초입니다.
-LoginTimeOut login_time_out_seconds
로그인 시간이 초과되기 전의 시간(초)입니다. 기본값은 15초입니다.
-MaxBcpThreads number_of_threads
병렬로 수행할 수 있는 대량 복사 작업의 수를 지정합니다. 동시에 존재하는 최대 스레드 수 및 ODBC 연결 수는 MaxBcpThreads보다 작거나 배포 데이터베이스의 동기화 트랜잭션에 표시되는 대량 복사 요청 수입니다. MaxBcpThreads 값은 0 보다 크고 하드 코딩된 상한값이 없어야 합니다. 기본값은 프로세서 수의 두 배입니다.
참고 항목
복제된 개체에 필터가 있는 경우 스냅샷 에이전트는 여러 BCP 파일을 생성하는 대신 해당 아티클에 대해 하나의 BCP 파일만 생성합니다.
- MaxNetworkOptimization [ 0| 1]
관련이 없는 삭제 작업을 구독자에 보낼지 여부를 나타냅니다. 관련이 없는 삭제는 구독자의 파티션에 속하지 않는 행에 대해 구독자에게 전송되는 DELETE 명령입니다. 관련이 없는 삭제 작업은 데이터 무결성 또는 일치성에 영향을 주지 않지만 불필요한 네트워크 트래픽을 초래할 수 있습니다. MaxNetworkOptimization의 기본값은 0입니다. MaxNetworkOptimization을 1로 설정하면 관련이 없는 삭제 가능성이 최소화되어 네트워크 트래픽이 줄어들고 네트워크 최적화가 극대화됩니다. 이 매개 변수를 1로 설정하면 메타데이터 스토리지가 증가하고 여러 수준의 조인 필터 및 복잡한 하위 집합 필터가 있는 경우 게시자에서 성능이 저하될 수 있습니다. 복제 토폴로지를 신중하게 평가하고 관련이 없는 삭제의 네트워크 트래픽이 허용할 수 없을 정도로 높은 경우에만 MaxNetworkOptimization을 1로 설정해야 합니다.
참고 항목
이 매개 변수를 1로 설정하는 것은 병합 게시의 동기화 최적화 옵션이 true(sp_addmergepublication 매개 변수(@keep_partition_changes**
Transact-SQL)로 설정된 경우에만 유용합니다.
-Output output_path_and_file_name
에이전트 출력 파일의 경로입니다. 파일 이름이 제공되지 않으면 출력이 콘솔로 전송됩니다. 지정된 파일 이름이 있으면 출력이 파일에 추가됩니다.
-OutputVerboseLevel [ 0| 1| 2]
출력이 자세해야 하는지 여부를 지정합니다.
OutputVerboseLevel 값 | 설명 |
---|---|
0 | 오류 메시지만 인쇄됩니다. |
1(기본값) | 모든 진행률 보고서 메시지가 인쇄됩니다(기본값). |
2 | 모든 오류 메시지 및 진행률 보고서 메시지가 인쇄되므로 디버깅에 유용합니다. |
-PacketSize packet_size
SQL Server에 연결할 때 스냅샷 에이전트 사용하는 패킷 크기(바이트)입니다. 기본값은 8192,536바이트입니다.
참고 항목
성능이 향상될 것이라는 확신이 없으면 패킷 크기를 변경하지 마세요. 대부분의 애플리케이션에는 기본 패킷 크기가 제일 좋습니다.
-PrefetchTables [ 0| 1]
테이블 개체가 프리페치되고 캐시되는지를 지정하는 선택적 매개 변수입니다. 기본 동작은 내부 계산에 따라 SMO 구성 요소를 사용하여 특정 테이블 속성을 프리페치하는 것입니다. 이 매개 변수는 SMO 프리페치 작업이 실행하는 데 상당히 오래 걸리는 시나리오에 유용할 수 있습니다. 이 매개 변수를 사용하지 않는 경우 게시에 아티클로 추가된 테이블의 백분율에 따라 런타임에 이 결정을 내립니다.
OutputVerboseLevel 값 | 설명 |
---|---|
0 | SMO 구성 요소의 프리페치 메서드 호출을 사용할 수 없습니다. |
1 | 스냅샷 에이전트 Prefetch 메서드를 호출하여 SMO를 사용하여 일부 테이블 속성을 캐시합니다. |
-ProfileName profile_name
에이전트 매개 변수에 사용할 에이전트 프로필을 지정합니다. ProfileName이 NULL이면 에이전트 프로필이 비활성화됩니다. ProfileName을 지정하지 않으면 에이전트 형식의 기본 프로필이 사용됩니다. 자세한 내용은 복제 에이전트 프로필을 참조 하세요.
-PublisherDB publisher_database
게시 데이터베이스의 이름입니다. 이 매개 변수는 Oracle 게시자에 대해 지원되지 않습니다.
-PublisherDeadlockPriority [-1|0|1]
교착 상태가 발생할 경우 게시자에 대한 스냅샷 에이전트 연결의 우선 순위입니다. 이 매개 변수는 스냅샷 생성 중에 스냅샷 에이전트 사용자 애플리케이션 간에 발생할 수 있는 교착 상태를 해결하기 위해 지정됩니다.
PublisherDeadlockPriority 값 | 설명 |
---|---|
-1 | 게시자에서 교착 상태가 발생할 경우 스냅샷 에이전트 이외의 애플리케이션이 우선 순위를 갖습니다. |
0 (기본값) | 우선 순위가 할당되지 않았습니다. |
1 | 스냅샷 에이전트 게시자에서 교착 상태가 발생할 때 우선 순위가 있습니다. |
-PublisherFailoverPartner server_name[\instance_name]
게시 데이터베이스와 함께 데이터베이스 미러링 세션에 참여하는 SQL Server의 장애 조치(failover) 파트너 인스턴스를 지정합니다. 자세한 내용은 데이터베이스 미러링 및 복제(SQL Server)를 참조하세요.
-PublisherLogin publisher_login
SQL Server 인증을 사용하여 게시자에 연결할 때 사용되는 로그인입니다.
-PublisherPassword publisher_password
SQL Server 인증을 사용하여 게시자에 연결할 때 사용되는 암호입니다. .
-PublisherSecurityMode [ 0| 1]
게시자의 보안 모드를 지정합니다. 값 0은 SQL Server 인증(기본값)을 나타내고 값 1은 Windows 인증 모드를 나타냅니다.
-QueryTimeOut query_time_out_seconds
쿼리 시간이 초과되기 전의 시간(초)입니다. 기본값은 1800초입니다.
-ReplicationType [ 1| 2]
복제 유형을 지정합니다. 값 1은 트랜잭션 복제를 나타내고 값 2는 병합 복제를 나타냅니다.
-RowDelimiter row_delimiter
SQL Server 대량 복사 데이터 파일에서 행의 끝을 표시하는 문자 또는 문자 시퀀스입니다. 기본값은 \n<,@g>\n입니다.
-StartQueueTimeout start_queue_timeout_seconds
실행 중인 동시 동적 스냅샷 프로세스 수가 sp_addmergepublication(Transact-SQL)의 속성으로 @max_concurrent_dynamic_snapshots
설정된 제한에 있을 때 스냅샷 에이전트 대기하는 최대 시간(초)입니다. 최대 시간(초)에 도달하고 스냅샷 에이전트 계속 대기 중인 경우 종료됩니다. 값이 0이면 에이전트가 무기한 대기하지만 취소할 수 있습니다.
- UsePerArticleContentsView use_per_article_contents_view
이 매개 변수는 더 이상 사용되지 않으며 이전 버전과의 호환성에서만 지원됩니다.
설명
Important
도메인 사용자 계정(기본값)이 아닌 로컬 시스템 계정으로 실행할 SQL Server 에이전트 설치한 경우 서비스는 로컬 컴퓨터에만 액세스할 수 있습니다. SQL SERVER 에이전트 실행되는 스냅샷 에이전트 SQL Server에 로그인할 때 Windows 인증 모드를 사용하도록 구성된 경우 스냅샷 에이전트 실패합니다. 기본 설정은 SQL Server 인증입니다.
스냅샷 에이전트 시작하려면 명령 프롬프트에서 snapshot.exe 실행합니다. 자세한 내용은 복제 에이전트 실행 파일을 참조 하세요.