소개
이 문서에서는 Cisco UCCE(Unified Contact Center Enterprise) OHA(Outbound Option High Availability)를 구성하고 문제를 해결하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- UCCE 아웃바운드 옵션
- Microsoft SQL 트랜잭션 복제
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- Cisco UCCE 11.6
- MS SQL Server 2014
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 이해해야 합니다.
배경 정보
아키텍처
OHA(Outbound Option High-Availability) 기능은 UCCE 11.6 버전에서 도입되었습니다. OHA는 선택적 기능입니다.UCCE 11.6 버전 Campaign Manager 프로세스는 Active-StandBy 장애 조치 모델을 사용하여 중복될 수 있습니다. WebSetup에서 OHA를 사용하도록 설정하면 BA_A와 BA_B 데이터베이스 간에 SQL 양방향 트랜잭션 복제가 자동으로 수행됩니다.
이러한 테이블은 복제됩니다.
- 연락처
- 전화 걸기_목록
- PCB
- 통화 안 함(_T)
UCCE 11.6 OHA 아키텍처
페일오버 모델 개요
캠페인 관리자 활성 - 대기
- Active Campaign Manager 프로세스는 기본적으로 60초 이상 다이얼러 연결이 없는 경우 장애 조치를 시작합니다.이 타이머는 Logger/BlendedAgent/CurrentVersion/ 레지스트리 경로 아래에 dword EMTClientTimeoutToFailover를 추가하여 변경할 수 있습니다.값은 전화 걸기 연결을 위한 대기 시간(초)이어야 합니다.
- 다이얼러가 연결을 설정할 수 없는 경우 Campaign Manager 프로세스가 A에서 B로 계속 바운스하고 그 반대의 경우도 마찬가지입니다.
- BA 데이터베이스 간에 대규모 복제 대기열이 있는 경우 Campaign Manager 페일오버는 최대 4,5분 정도 걸릴 수 있습니다.4,5분은 하드코딩된 타이머이며 변경할 수 없습니다.
다이얼러 활성 - 스탠바이
- 이전 버전에서 변경된 내용이 없습니다.다이얼러 장애 조치 모델은 동일한 상태로 유지되며 한 번에 하나의 다이얼러만 활성 상태입니다.
BaImport - 장애 조치 없음
- BaImport는 로컬 Campaign Manager 프로세스에서만 작동하며 상태를 복제합니다.BaImport 프로세스가 충돌할 경우 Campaign Manager 레벨의 장애 조치가 트리거됩니다.
구성
예비 단계
1단계. SQL Server 복제 기능이 사용하도록 설정되었는지 확인합니다.
- SQL을 설치하는 동안 기능으로 복제를 선택해야 합니다.로거 서버에서 복제 기능을 사용하도록 설정하려면 SQL 디스크 드라이브>setup.exe > 도구로 이동하여 보고서 설치된 SQL 검색 보고서를 실행합니다.
- 이 기능이 보고서에 나열되지 않으면 Windows CMD 도구에서 이 명령을 실행하고 각 명령 매개 변수에 SQL Server 인스턴스 이름을 제공합니다
setup.exe /q /Features=Replication /InstanceName=
/ACTION=INSTALL /IAcceptSQLServerLicenseTerms
2단계. SQL Server 사용자 계정이 구성되어 있는지 확인합니다.
- 사용자 이름과 비밀번호는 로거측 A와 로거측 B에서 동일해야 합니다.
- 사용자에게 SQL Server 시스템 관리 권한이 있어야 합니다.
- WebSetup을 실행하여 아웃바운드 옵션을 구성하고 아웃바운드 옵션 고가용성을 활성화할 때 이 사용자 이름과 비밀번호를 사용합니다.
- 사용자가 SQL sa 사용자가 아니어도 됩니다.다른 사용자일 수 있지만 sysadmin 권한이 있어야 하며 활성화된 상태로 유지됩니다.
3단계. SQL 사용자 NT AUTHORITY\SYSTEM에서 sysadmin 역할이 있어야 합니다.
4단계. 로거 서버 호스트 이름과 SQL Server 서버 이름(@@servername)은 동일해야 합니다.
새 설치 구성
1단계. 두 로거 서버에 BA 데이터베이스를 생성합니다.
2단계. 두 로거에 대해 sysadmin 역할을 가진 동일한 로컬 SQL 사용자를 구성합니다.
3단계. 로거에서 WebSetup을 시작하고 로거 구성 요소를 편집하고 아웃바운드 옵션 및 아웃바운드 고가용성을 활성화합니다.
참고:로거 공용 인터페이스 필드에 로거 호스트 이름을 제공해야 합니다.이 값은 각 로거의 SQL 서버 이름과 일치해야 합니다.
WebSetup이 성공적으로 완료되면 LoggerB에서 게시 생성 및 로거A SQL 서버 및 가입이 표시되어야 합니다.
Replication(복제) > Local Publications on LoggerA(로거A) 및 LoggerB의 Local Subscriptions(로컬 게시) 아래의 SQL Server Management Studio(SSMS)에서 확인합니다.
LoggerB에서 WebSetup을 실행하고, 로거 구성 요소를 편집하고, 아웃바운드 옵션과 아웃바운드 고가용성을 활성화합니다.
게시는 로거B 및 LoggerA의 서브스크립션에 만들어야 합니다.
이 그림에서는 LoggerB 서버에서 만든 게시 및 구독을 보여 줍니다.
이 그림에서는 LoggerA 서버에서 만든 게시 및 구독을 보여 줍니다.
문제 해결
SQL 복제 상태 확인
복제 상태를 확인하려면 SSMS에서 복제 모니터 툴 실행을 선택합니다.
복제 상태는 OK여야 합니다.
게시자를 확장하여 성능 및 대기 시간에 대한 자세한 정보를 얻습니다.
두 번째 탭 Tracer Tokens로 이동하고 Insert Tracer를 선택합니다.게시자와 총판사 간, 총판사와 가입자 간의 레이턴시를 테스트합니다.
두 로거 모두에서 이 확인란을 선택해야 합니다.
SQL 서버 이름 변경
SSMS를 열고 이 SQL 쿼리를 실행합니다.
SELECT @@servername
쿼리의 출력을 Windows 서버 호스트 이름과 비교합니다.반드시 일치해야 합니다.
이 그림에서는 LoggerA 및 SQL 서버 이름의 호스트 이름이 일치하지 않는 경우 문제 시나리오를 보여 줍니다.OO HA 설정 전에 문제를 해결해야 합니다.
SQL 서버 이름을 삭제하려면 마스터 DB에 대해 SSMS에서 이 명령을 실행합니다.
EXEC sp_dropserver @server=
새 SQL 서버 이름을 추가하려면 이 명령을 실행합니다.
EXEC sp_addserver @server=
, @local=LOCAL
Windows 서비스에서 SQL Server 및 SQL Server 에이전트를 다시 시작하고 @@servername 선택 SQL 쿼리
수동으로 SQL 복제 사용
주의:WebSetup에서 복제를 설정할 수 없고 오류가 명확하지 않은 경우에만 이 절차를 사용합니다.
각 변수 값이 있는 두 로거의 BA 데이터베이스에 대해 이 저장 프로시저를 실행합니다.
EXEC sp_ba_create_replication
@instance=
,
@publisher=
,
@subscriber=
,
@working_directory =
,
@login =
,
@pwd =
"CREATE DATABASE failed" 오류가 발생하면 MSSQLSERVER 계정에 SQL 작업 디렉터리에 대한 전체 액세스 권한이 있는지 확인합니다.
이 이미지는 SQL Server 로그에 대한 각 오류를 표시합니다.
MSSQLSERVER 계정에 SQL 작업 디렉터리에 대한 모든 액세스 권한이 있는지 확인하십시오.
각 로거 SQL 서버에 게시 및 구독이 생성되었는지 확인합니다.
수동으로 SQL 복제 사용 안 함
주의:WebSetup에서 복제를 설정할 수 없고 오류가 명확하지 않은 경우에만 이 절차를 사용합니다.
각 변수 값이 있는 두 로거의 BA 데이터베이스에 대해 이 절차를 실행합니다.
EXEC sp_ba_remove_replication
@instance =
, @subscriber =
게시가 두 로거 SQL 서버에서 모두 제거되었는지 확인합니다.
복제 구성에서 완전히 SQL 서버를 지우려면 수동으로 등록을 삭제하고 로거 SQL 서버 모두에서 배포 데이터베이스를 삭제해야 합니다.
USE master
EXEC sp_dropdistpublisher @publisher=
; EXEC sp_dropdistributiondb @database=distribution; EXEC sp_dropdistributor; GO
경우에 따라 마지막 명령이 실패할 수 있습니다. "해당 서버에서 복제를 위한 데이터베이스가 있으므로 서버 이름을 Distributor Publisher로 삭제할 수 없습니다."라는 오류 메시지가 표시됩니다.
EXEC sp_dropdistributor @no_checks = 1, @ignore_distributor =1
관련 정보