SQL Server 2017 향상된 복제 기능  복제에이전트 프로필 매개변수의 동적 새로 고침

 

·      Version : SQL 2017

 

SQL Server 2017 CU3부터 SQL Server 복제 기능 향상으로 에이전트를 다시 시작하지 않고도 복제 에이전트 매개 변수의 변경 내용을 동적으로 다시 로드할  있다 개선 사항은 향후 SQL Server 2016  2014에도 적용될 예정이다.

 

복제는 에이전트 추적이라는  가지 독립실행형 프로그램을 사용하여 변경 내용을 추적  데이터 배포와 관련된 작업을 수행 한다예를 들어 트랜잭션 복제와 함께 사용되는 로그 판독기 에이전트는 게시자의 트랜잭션 로그에서 복제용으로 표시된 트랜잭션을 배포 데이터베이스로 이동한다트랜젝션 복제를 사용하여 게시된  데이터베이스에는 배포자에서 실행되고 게시자에 연결하는 자체 로그 판독기 에이전트가 있다.


 

많은 양의 DML 작업이 포함된 트래픽이 많은 시스템에서 복제를 사용하는 경우 고객은 들어오는 로드를 처리하기 위해 복제 에이전트의 처리량을 높이기 위해 기본 에이전트 프로파일을 조정해야하는 경우가 있다이러한 변경 사항을 적용하려면 다음 단계를 수행해야한다.

1.     변경  해당 작업이 필요한 에이전트 찾기 (여러 발행물  구독이 있는 경우 매우 복잡하고 시간이 오래 걸림)

2.     에이전트에 해당하는 작업 비활성화

3.     에이전트 중지

4.     프로파일 설정 변경

5.     에이전트와 관련된 작업을 다시 사용가능하도록 변경

6.     에이전트 시작

 

향상된 복제 기능에서는 에이전트를 다시 시작하지 않고도 프로파일의 매개변수를 동적으로 변경할  있다 에이전트 마다 아래에 명시된 파라메터를 동적으로 로드할  있다.

·       Log Reader Agent - Output, OutputVerboseLevel, PollingInterval, ReadBatchSize, ReadBatchThreshold

·       Distribution Agent - CommitBatchSize, CommitBatchThreshold, MaxDeliveredTransactions, PollingInterval, Output, OutputVerboseLevel, SubscriptionStreams

 

 에이전트 사용자 프로필이 만들어져 에이전트에 할당되면 관련 항목이 배포자 서버의 MSDB 데이터베이스에 있는 dbo.Msagent_profiles  dbo.MSagent_parameters테이블에 추가된다이러한 값은 replication agent 다시 시작될때마다 테이블에서 다시 로드된다 또한 프로파일에  프로파일 매개변수 “ProfileReloadInterval” 기본값 300초로 추가되었다 매개 변수는 에이전트가 테이블에서값을 다시 로드하는 간격으로 기본값을 사용하는 경우 에이전트는 5분마다 MSDB 테이블에서 값을 다시 로드한다위에서 언급한 매개변수   하나라도 변경되면 에이전트는 새로운 값을 사용한다.

 

프로필 매개변수  수정은 SQL Server Management Studio 사용하거나 저장프로시저 sp_change_agent_parameters 사용하여 변경할  있다. SSMS 18.0 버전부터는 에이전트 프로필 UI 해당 매개 변수를 동적으로 다시 로드할  있는지 나타내는 “Reloadable”이라는 추가 열을 확인할  있다.


 

매개 변수가 변경되고 동적으로 다시 로드되면 관련 정보가 Replication Agent로그에 추가된다예를 들어 아래 스니펫에서 에이전트를 다시 시작하지 않고도 “ReadBatchSize”값이 5000에서 500으로 변경되었음을   있다.

2018-02-24 07:45:30.213 Publisher: {call sp_replcmds (5000, 0, 0, , 5047, 500000)}

2018-02-24 07:45:35.264 Publisher: {call sp_replcmds (5000, 0, 0, , 5047, 500000)}

2018-02-24 07:45:39.939 OLE DB DistLog 'CAPTAINAMERICA': exec sp_MShelp_logreader_agentid 2, N'WideWorldImporters'

2018-02-24 07:45:40.020 OLE DB DistLog 'CAPTAINAMERICA': exec sp_MShelp_profile 2, 2, N'testProfile'

2018-02-24 07:45:40.324 Status: 4, code: 20085, text: 'The agent parameter '-ReadBatchSize' with value 500 is taking effect.'.

2018-02-24 07:45:40.507 Publisher: {call sp_replcmds (500, 0, 0, , 5250, 500000)}

2018-02-24 07:45:45.566 Publisher: {call sp_replcmds (500, 0, 0, , 5234, 500000)}

 

 

[참고자료]

https://blogs.msdn.microsoft.com/sql_server_team/sql-server-replication-enhancement-dynamic-reloading-of-agent-profile-parameters/

 

 

2018-06-06 / 강성욱 / http://sqlmvp.kr / http://sqlangeles.com

 

SQL Server, MS SQL, SQL replication, Replication Enhancement, SQL 복제복제 에이전트복제 기능 향상, replication agent



출처: https://sqlmvp.tistory.com/1248?category=618825 [Database Lab]
No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 33870
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 17092
2134 Azure SQL에서 네트워크를 구성하는 방법 jevida(강성욱) 2019.03.25 296
2133 SQL Server 네이티브 컴파일된 저장 프로시저 성능 모니터링 jevida(강성욱) 2019.03.25 579
2132 SQL Server 2017 소규모 시스템에서 향상된 리소스 사용 jevida(강성욱) 2019.03.25 320
2131 클러스터 컬럼스토어 인덱스(Clusterd Columnstore Index)에서 대량 인서트 작업시 발생하는 래치 경합 최소화 트릭 jevida(강성욱) 2019.03.25 467
2130 클러스터 컬럼스토어 인덱스(Clusterd Columnstore Index)에서 대량 인서트 작업시 발생하는 래치 경합 최소화 트릭 jevida(강성욱) 2019.03.25 467
2129 SQL Server 2016 향상된 복제 기능 – 배포 데이터베이스 클린업 향상 jevida(강성욱) 2019.03.25 367
2128 SQL Server 2017향상된 복제 기능 – 배포 데이터베이스의 AG 지원 jevida(강성욱) 2019.03.25 517
» SQL Server 2017 향상된 복제 기능 - 복제에이전트 프로필 매개변수의 동적 새로 고침 jevida(강성욱) 2019.03.25 553
2126 SQL Server update on Docker jevida(강성욱) 2019.03.25 453
2125 SQL Server 2017에서 향상된 UDF 실행 계획 jevida(강성욱) 2019.03.25 419
2124 ETL data error with MariaDB ODBC 3.0 (from Aurora to MS SQL) jevida(강성욱) 2019.03.25 607
2123 Run the SQL Server 2017 with Docker jevida(강성욱) 2019.03.25 518
2122 SQL Server Configuration Manager 실행 오류 (WMI 공급자 연결 오류) jevida(강성욱) 2019.03.25 637
2121 BULK INSERT 동시에 여러개 실행 향지 2019.01.30 1086
2120 대용량 데이터 조인에 대한 고민 ( Hash Join VS Nested Loop Join ) 향지 2018.04.04 4536
2119 How to check if Azure SQL is using In-Memory jevida(강성욱) 2018.03.31 3318
2118 MSSQL-CLI를 활용한 크로스플랫폼에서 SQL Server 관리하기 jevida(강성욱) 2018.03.31 3729
2117 SSMS – Search for execution plan jevida(강성욱) 2018.03.31 3809
2116 SQL Server Parallelism and Wait change (CXAPCKET, CXCONSUMER) jevida(강성욱) 2018.03.31 4107
2115 SQL Server Statistics Update row sampling rate and histogram step jevida(강성욱) 2018.03.31 3748





XE Login