sql server 2005 데이터베이스 읽 기와 쓰기 분리 소개 실현

인터넷 의 규 모 는 100 일 마다 배로 늘 어 나 고 고객 은 7 일 을 얻 기 를 희망 한다.×24 시간의 끊 임 없 는 가용성 과 빠 른 시스템 반응 시간 은 특정한 사이트 의'Server Too Busy'와 빈번 한 시스템 고장 을 자주 보지 않 는 다.업 무량 이 높 아 지고 방 문 량 과 데이터 트 래 픽 이 신속히 증가 함 에 따라 네트워크 각 핵심 부분의 처리 성능 과 계산 강도 도 상응 하 게 커지 면서 단일 설비 가 부담 할 수 없 게 되 었 다.이런 상황 에서 기 존 설 비 를 버 리 고 대량의 하드웨어 업 그 레이 드 를 하면 기 존 자원 의 낭 비 를 초래 할 것 이 고 다음 업 무량 의 향상 은 다시 한 번 하드웨어 업그레이드 의 고액 의 원가 투입 을 초래 할 것 이다.그래서 부하 균형 메커니즘 이 생 겨 났 다.부하 균형 에 대해 필자 가 자주 접 하 는 것 은 바로 Oracle 의 부하 균형 체제 이다.다음은 Oracle 의 부하 균형 실현 방안 을 간단히 알 아 보 겠 습 니 다.Real Application Clusters 는 듀 플 렉 스 병렬 서버(8i 및 이전 버 전 은 Oracle Parallel Server,OPS)로 클 러 스 터 환경 에서 다 중 컴퓨터 공유 데이터 베 이 스 를 실현 하여 응용의 높 은 가용성 을 확보 하 는 동시에 병렬 처리 와 평균 부하 도 자동 으로 실현 할 수 있 고 데이터 베이스 가 고장 났 을 때의 오류 와 중단 없 는 회복 도 실현 할 수 있다.높 은 가용성 응용 프로그램 을 지원 하기 위해 부하 균형,고장 복구,정지 시간 을 자동 으로 계획 할 수 있다.병렬 서버 의 한 노드 가 효력 을 잃 으 면 투명 한 응용 프로그램 이 잘못 사용 하면 사용 자 를 다른 노드 로 자동 으로 연결 하여 계속 실행 할 수 있 습 니 다.응용 프로그램 은 사용자 가 눈치 채 지 못 한 상태 에서 계속 실 행 됩 니 다.이 는 주기 적 이 고 비 주기 적 으로 고장 이 나 는 시스템 으로 하여 금 연속 적 인 가용성 을 증대 시 켰 다.프로 세 스 의 실 효 는 완전히 투명 하 게 다른 노드 로 옮 길 수 있 습 니 다.적당 한 설정 을 통 해 모든 조 회 를 클 라 이언 트 에 캐 시 할 수 있 습 니 다.그러면 이전 후의 노드 에 다시 설정 할 수 있 습 니 다.Sql Server 2005 가 부하 균형 을 어떻게 실현 하 는 지 에 중점 을 두 고 소개 한다.Sql Server 2005 의 새로운 기능 인 엔 드 토폴로지 의 사무 적 복사 SQL Server 2005 는 엔 드 토폴로지 구조 상의 사무 적 복사 에 대한 지원 을 강화 했다.P2P 의 토폴로지 구 조 는 무한 한 게시 서버 를 지원 하 며 서로 사 무 를 교환 할 수 있 습 니 다.P2P 토폴로지 는 SQL Server 의 큰 발전 이다.현재 다 중 서버 는 데 이 터 를 변경 하고 다른 게시 자 에 게 업 무 를 복사 할 수 있 습 니 다.구독 서버 가 주요 보고 환경 에 제한 되 지 않 고 전 세계 공 유 를 사무 적 으로 부하 하 는 방식 으로 서버 를 분포 할 수 있다 는 것 이다.사용자 수가 증가 할 때 이 그룹 에 서버 를 간단하게 추가 하면 됩 니 다.부하 분 포 를 제외 하고 이 토폴로지 구 조 는 가용성 을 증가 시 켰 다.모든 서버 에 다른 모든 서버 에서 얻 을 수 있 는 모든 데이터 집합 이 있 기 때문에 모든 지점 의 서버 가 이 부 하 를 공유 합 니 다.데이터베이스 미 러 와 스냅숏 SQL Server 2005 는 데이터베이스 미 러 의 개념 을 도입 하여 높 은 가용성 을 얻 도록 도 왔 다.특히 공식 적 으로 발표 되면 데이터베이스 미 러 는 SQL Server 2005 에서 사용 할 수 있다 는 점 을 일 깨 워 준다.그러나 SQL Server 2005 Service Pack 1 이 되 어야 미 러 를 지원 합 니 다.데이터베이스 스냅 샷 은 SQL Server 2005 에 도 입 된 또 다른 특성 입 니 다.스냅 샷 은 어느 시점 의 데이터베이스 복제 이다.미 러 데이터베이스 에 스냅 샷 만 찍 으 면 스냅 샷 을 조회 할 수 있다.스냅 샷 의 생 성 은 보통 몇 초 밖 에 걸 리 지 않 는 다.실제로 이 과정 에서 데 이 터 를 복사 하지 않 았 기 때문이다.따라서 메 인 서버 와 예비 서버 에 부 하 를 분포 하려 면 데이터 베 이 스 를 미 러 링 한 다음 단계적으로 백업 서버 를 스냅 샷 할 수 있다.홈 서버 에 스냅 샷 으로 보고 할 수도 있다.소프트웨어 는 SQL Server 2005 의 부하 균형 중간층 이 데이터 베 이 스 를 실현 하 는 부하 균형 기술 을 실현 하려 면 먼저 데이터 베 이 스 를 연결 하 는 제어 단 이 있어 야 한다.여기 서 데이터베이스 와 프로그램의 직접 연결 을 차단 하고 모든 프로그램 이 이 중간 층 에 접근 한 다음 중간 층 에서 데이터 베 이 스 를 방문 합 니 다.이렇게 하면 우 리 는 특정한 데이터 베 이 스 를 방문 하 는 것 을 구체 적 으로 통제 할 수 있 고 데이터 뱅 크 의 현재 부하 에 따라 매번 어느 데이터 베 이 스 를 연결 하 는 지 조정 할 수 있다.장점 은 두 가지 측면 에 있다.우선,데이터 베 이 스 를 내부 네트워크 에 성공 적 으로 넣 어서 데이터 뱅 크 의 안전성 을 더욱 잘 보호 했다.데이터베이스 도 공공 네트워크 에 있 으 면 1433 포트 가 공격 당 하기 쉬 우 므 로 데이터베이스 와 의 연결 을 보호 하려 면 중간 층 을 사용 합 니 다.그것 은 데이터 베 이 스 를 내부 망 에 더욱 잘 보호 할 수 있다.그 다음으로 데이터 베 이 스 를 연결 하 는 모든 연결 을 제어 할 수 있 고 DBA 가 데이터 에 대한 관 리 를 더욱 편리 하 게 할 수 있 으 며 어떤 연결 이 데이터 베이스 자원 을 더 소모 하 는 지 보고 코드 를 최적화 할 수 있다.그러나 주의해 야 할 두 가지 가 있다.첫째,윈도 서비스 프로그램 을 만들어 야 한다.윈도 우 는 오늘날 까지 통합 적 인 큰 시스템 으로 서비스 프로그램 을 만 드 는 것 이 더욱 안정 적 이 고 안전 하 다.이렇게 하면 사용자 가 기계 에 로그 인하 지 않 아 도 사용 할 수 있다.둘째,여러 개의 중간 층 을 사용 해 야 한다.중간 층 의 역할 을 통 해 알 수 있 듯 이 데이터 뱅 크 의 모든 연결 을 이 어 받 았 기 때문에 문제 가 생기 면 전체 시스템 이 마비 된다.그래서 여러 개의 중간 층 을 만 드 는 것 이 필요 하 다.그러면 하나 가 고장 나 면 다른 곳 에 로그 인 할 수 있다.다 중 라 이브 러 리 데이터 동기 화 중간 층 을 실현 합 니 다.다음 작업 은 데이터베이스 클 러 스 터 를 구축 하 는 것 입 니 다.부하 균형 에 있어 서 가장 중요 한 것 은 모든 서버 의 데이터 가 동기 화 되 는 것 이다.데이터 가 동기 화 되 지 않 으 면 사용자 가 한 서버 에서 읽 은 데 이 터 는 다른 서버 에서 읽 은 데이터 와 다 르 기 때문에 허용 할 수 없습니다.따라서 데이터베이스 데이터 동기 화 를 실현 해 야 합 니 다.여기에 쓰기 위 한 데이터 베 이 스 를 설정 하고 읽 기 위 한 데이터 베 이 스 를 두 개 설정 합 니 다.통계 에 따 르 면 일반적으로 70%의 데이터 베 이 스 는 읽 기 작업 이기 때 문 입 니 다.우선,데이터 베 이 스 를 기록 하 는 데 발표 서버 를 만 듭 니 다.주로 SQL Server 2005 의 복사 기술 을 바탕 으로 사용 할 시 계 를 모두 선택 합 니 다.연결 에 있어 서 아 날로 그 사용 자 를 선택 하고 공유 할 때 sa 사용 자 를 선택 하면 데 이 터 를 공유 할 수 있 습 니 다.그 다음으로 두 개의 읽 기 서버 에서 구독 서 비 스 를 할 때 같은 사항 에 주의해 야 한다.이런'1 쓰기 2 독'의 데이터 베이스 클 러 스 터 가 완성 된다.데이터 베 이 스 를 안전하게 백업 하 는 것 은 큰 시스템 에서 시스템 의 무 고장 성 이 매우 중요 하지만 방금 시스템 에서 쓰 는 서버 가 갑자기 고장 나 면 전체 시스템 에 문제 가 생 길 수 있 기 때문에 백업 을 다시 하 는 것 이 필요 하 다.데이터베이스 미 러 는 SQL Server 2005 에서 대대적으로 출시 된 것 으로 데이터베이스 의 안전 한 이전 을 실현 하기 위해 기 계 를 따로 꺼 내 백업 서버 를 만 들 고 전체 미 러 를 이 서버 에 기록 해 야 합 니 다.그러면 기록 서버 가 고장 나 도 자동 으로 백업 서버 로 옮 겨 사용자 에 게 영향 을 주지 않도록 해 야 합 니 다.이 는 사실상 서버 에 대한 용재 관 리 를 실현 한 셈 이지 만,한 가지 주의 가 필요 하 다.이 미 러 시스템 에 서 는 어느 서버 가 고장 났 는 지 감시 서버 로 서 기계 가 잘못 되 었 을 때 신속하게 조정 할 수 있 도록 서버 가 있어 야 한다.데이터 베 이 스 를 전송 하 는 상태 데이터 베이스 서버 가 모두 배치 되 었 고 전체적인 기계 클 러 스 터 구조 가 구축 되 었 으 며 다음 작업 은 설정 프로그램 입 니 다.우선,읽 기와 쓰 기 를 하 는 서버 에 모니터링 프로그램 을 놓 습 니 다.이것 은 윈도 우즈 의 서비스 여야 합 니 다.이렇게 하면 더욱 안정 적 입 니 다.그 다음 에 30 초 또는 일정 시간 간격 으로 설정 하여 서버 의 CPU,메모리,네트워크 카드 트 래 픽 과 현재 데이터베이스 상태 등 정 보 를 보 낼 수 있 습 니 다.CPU,메모리 이 용 률 등 정보의 각 비율 을 평가 하기 위해 서 는 권한 값 을 설정 해 야 합 니 다.이 시스템 에 서 는 CPU 이 용 률 을 기준 으로 하 는 것 을 권장 합 니 다.중간 층 이 실현 하 는 부하 균형 은 여기까지 입 니 다.모든 준비 작업 이 완료 되 었 습 니 다.데이터 뱅 크 의 구축 과 배치,중간 층 의 위 치 를 포함 하고 아래 에 하 는 것 은 소프트웨어 로 이 부하 균형 을 실현 하 는 것 입 니 다.우선,한 사용자 가 데이터베이스 요청 이 있 을 때 읽 을 지 쓸 지 판단 하고,쓰 는 것 이 라면 바로 기록 서버 로 돌아 가 서버 에 데 이 터 를 쓴 후,거의 3 초 안에 다른 두 대의 기 계 를 되 돌 릴 수 있다.그 다음 에 읽 기 요청 을 받 았 을 때 모니터링 에 따라 돌아 온 데이터 판단 에 따라 아까 의 가중치 에 따라 현재 가장 남 은 기 계 를 되 돌려 줍 니 다.주의해 야 할 것 은 이때 기록 기 를 만들어 서 한 동안 의 수 치 를 유지 하면 관리자 가 스스로 설정 하고 몇 대의 데이터 뱅 크 의 압력 균형 을 잘 맞 출 수 있다 는 것 이다.마지막 으로 메 인 기록 서버 가 갑자기 고장 나 면 프로그램 은 자동 으로 백업 서버 를 전환 시 켜 방금 백업 서버 를 쓰기 서버 로 한 다음 에 경보 시스템 을 만들어 관리자 에 게 알 릴 수 있 습 니 다.마찬가지 로 감시 서버 가 다른 두 대의 읽 기 서버 가 고장 난 것 을 발견 하면 관리자 에 게 자동 으로 알 리 고 서버 의 이상 상황 을 처리 하면 시스템 의 안정 적 인 운행 을 확보 할 수 있 고 관리 와 유지 가 용이 하 다.한 마디 로 하면 소프트웨어 와 마이크로소프트 SQL Server 2005 의 일부 신기 술 로 부하 균형 을 쉽게 실현 할 수 있다.그러면 하드웨어 를 사용 하지 않 고 관리자 의 조작 을 편리 하 게 할 수 있 을 뿐만 아니 라 DBA 가 데이터 베 이 스 를 관리 하고 문 제 를 신속하게 발견 하 는 데 유리 하 다

좋은 웹페이지 즐겨찾기