SQL 성능 최적화 요약 (계속.) - 장 구조 조정

SQL 성능 최적화 요약 (계속.) - 구조 조정 기사

 

나는 마지막으로 중지하고 주제에, 속히, 오늘을 정리해 계속 관심이 매우 주제에 대한 여러 블로거를 참조하십시오.

 

SQL Server2005에서 SQL Server 2008 및 이제 SQL Server2012에, 마이크로 소프트는로드 균형을 달성 할 수없는 오라클 RAC 유사한 기술로로드 밸런싱 구성 요소의 소개가, 없었다 보인다. 때문에 높은 동시성 및 스케일 아웃 (scale-out) 데이터베이스에 자주 문제가 발생, 많은 사용자가 문제를 해결하기 위해 RAC를 사용하여 오라클 플랫폼으로 이식 할 때 프로그램이 같은 상황이 발생 고려한다. 이것은 매우 어려운 과정이다, 나는 비용이 엄청난 것입니다 생각합니다. 또한 일부 타사 프로그램을 고려하십시오. 예를 들면 : 등 뫼비우스, 많은 제한으로도 채택하지 못했습니다. MS는 종래 기술을 사용하여, 이전의 도입 짧게는 MS SQL 플랫폼에서 몇 가지 기술을 언급 :

 

장애 조치 클러스터링

Microsoft 클러스터 서버 (MSCS)는 서버가 다른 서버로 전환하는 시간 응용 프로그램 서비스를 계속 제공의 기간이 될 수 아래로 갈 때, 가용성을 향상시킬 수있는 기술입니다,로드 밸런싱을 달성 할 수 없습니다.

SQL Server 2005의 미러링 및 스냅 샷
기술은 스냅 샷 서비스를 사용하여 데이터 액세스 서비스를 제공하는 가용성을 개선하기 위해 거울을 사용합니다.

미러링은 우리 모두가 잘 알고있는 개념이다, SQL Server 2005에서 도입 된 새로운 기능의 스냅 샷입니다. 스냅 샷은 특정 시점에 복제 데이터베이스입니다. 스냅 샷은 일반적으로 단 몇 초, 사실, 데이터 복제 스냅 샷을 작성하지 않은이 필요합니다. 스냅 샷 미러 데이터베이스 DB를 만들려면 DB는 사용자에게 데이터 서버의 스냅 샷을 제공 할 수 있습니다. 그러나 일부 실시간 응용 프로그램의 적합성을 고려하는 데 사용 그렇게 할 때, 실제 가난의 스냅 샷이기 때문이다. 당신은 기본 데이터 서버와 미러 서버의 부하를 분산하려는 경우,이 단계의 스냅 샷을 생성하는 것이 필요하다.

복사, 구독
SQL 서버는 복제 기술 (복제)를 제공합니다, 당신은 지금 읽고 분리를 작성할 수 있습니다. 본원에서 반복되지 않는, 본 실시 예에서는 소용이 없으므로 스냅 샷에 기초하여 여러 가지 방법, 및 로그 계 복합 방법이있다.

 

데이터 서버 구조 조정 :

몇 년 전 회사가 점진적으로 증가 응용 프로그램 때문에 때문에 시스템의 지속적인 증가에 다음 데이터 서버 하드웨어가 한 번 업그레이드 된,하지만 최근 몇 년 동안을 시스템 성능 문제가 있었다, 다시 한번 중요한 지점에 도달하지만, 현재의 데이터 전형적인 엔터프라이즈 애플리케이션 서버의 기본 구성은 정상으로 간주하고 하드웨어 업그레이드, 우리는 확실히 비용 작은 재산을 필요로하고있다. 분석 후, 사실, 기존 시스템의 기능의 일부 데이터를 업데이트 할 필요가 없습니다, 당신은 단지 데이터 (보고서, 쿼리 등의 수)를 읽을 필요, 기존의 서버 아키텍처를 조정 읽고 분리의 쓰기로 결정 일부는 읽기 전용 기존 기본 데이터 서버에 대한 압력을 완화하기 위해, 다른 서버로 전송하는 기능을 충족 할 수 있습니다.

 

아래와 같이 원래 데이터 서버 아키텍처, 클라이언트는, 선형 연결 데이터 서버의 일반적인 해결책 :

 

조정 된 데이터 서버 아키텍처 :

 

사실,이 아키텍처는 현재 케이스에 있어야 복제 기술을 사용하는 동안에는 변경 데이터 연결이 현재의 결과를 얻을 수 있기 때문에, 시스템에 가장 적합한 먼저, 가장 작은 수정해야합니다, 현재 최선의 해결책이 아닙니다. 둘째, 현재 미러 복제 스냅 샷 + 프로그램에 비해이 기술은 상대적으로 성숙 사용하지만 장애로 인해 전에 한 번 등장, 그래서 프로그램이 지금까지 채택되지는 여전히 화가, (TMD 회사의 정치, 말을하지 않습니다 ), 클라이언트 읽기 전용 기능의 일부, 직접 미러 서버에 연결되어 있지만 미러링 할 수 있습니다에 데이터 서버 구조 조정은 미러 서버에 업데이트 된 데이터를 제공하는 경우, 예상치 못한는 (상황이 발생할 수 있습니다, 내결함성 데이터 솔루션입니다 특히이 더 테스트) 부적절한 발언을하지 않습니다, 우리는 어떻게 그것을 할 클라이언트에 데이터 서비스를 제공하려면? 수 추가 및 삭제는, 사실, 창조의 시작의 DB 스냅 샷 만 정보의 변경 사항을 기록 데이터, 특정 원칙의 DB 스냅 샷이 없으므로 SqlServer2005는, 원래의 DB DB 후 스냅 샷에 대한 액세스와 같은 스냅 샷 기능을 제공, 우리는 서로를 이해할 수 여기에서 논의되지.

이러한 접근 방식은 DB 스냅 샷 생성 단점이있다, 사용자는 타임 스냅 샷 DB에서 가리키는 원본 DB의 등가를 만들기 위해 스냅 샷 DB 접속에 액세스 할 수 있습니다.

예를 들어 데이터베이스 DB1의 원래 이름은 오전 10시 전체 데이터베이스의 스냅 샷을 생성 할 때, DB2의 이름은 DB2 사용자 액세스 액세스 10:00시 DB1에 해당하는 경우 이름에서 알 수 있듯이, 잘 스냅 샷.

 

다음과 같은 두 가지 이유를 들어, 우리는 지속적으로, 오래된 스냅 샷 DB를 삭제 데이터 액세스 서비스를 제공하는 새로운 스냅 샷 DB를 작성해야합니다.

 

  1. 사용자 클라이언트는 항상 가장 실시간 데이터를 방문하고 싶어
  2. 너무 많은 수의 DB 스냅 샷 때문에 스냅 샷 DB 서버의 부하가 증가의 증가 (그는 각 데이터 소스의 차이 DB 및 DB 스냅 샷을 동기화하고 싶어하기 때문에)

 

시차 원래 서버의 데이터 만 접근 할 사용자에 의해 제공된 스냅 샷 DB, 우리 10 분 것, 평균 사용자 응용 프로그램이 시간차를 허용한다.

 

일부 소모 서버 자원의 마이그레이션 후 효과적으로 기본 데이터 서버의 압력, 효과가 매우 분명 있다는 사실을 감소 미러 서버에 더 큰 보고서 또는 쿼리 (주로 논리적 읽기,이 병목 서버 작업입니다). 위의 노력 후, 다른 서버의 주요 데이터 서버의 압력의 합리적인 공유는 의미에서 부하 분산 효과를 달성하기 위해 매우 중요하지 않습니다. 데이터 서버 구조 조정에 관해서는 말에 와서 함께이, 이후 특정 SQL 최적화를 다시 소개합니다.

 

계속합니다.

 

HTTPS : //www.cnblogs.com/JerryTian/archive/2012/06/30/2558356.html 재현

추천

출처blog.csdn.net/weixin_34161083/article/details/93845188