데이터베이스 미러링 솔루션은 매우 간단하고 중간 규모 및 하위 수준 데이터베이스에 적합한 고가용성 데이터베이스 관리 시스템을 SQL Server에 구축하는 데 도움이 됩니다.
고가용성 데이터베이스 관리 시스템에 대한 요구 사항은 점점 더 긴급해지고 있으며, 때로는 조직과 회사에 필수적인 요소가 됩니다. 그러나 하드웨어 문제, 네트워크 인프라, 오류 운영 체제, 응용 프로그램 소프트웨어 오류, 바이러스 등 시스템 성능에 영향을 미치는 많은 요소가 항상 있기 때문에 고가용성(거의 항상 활성)을 달성하는 것은 간단한 일이 아닙니다. 이 기사에서는 현재 사용되는 데이터베이스 관리 시스템인 SQL Server에서 고가용성(HA - High Availability)을 달성하는 데 도움이 되는 솔루션을 소개합니다. .
SQL Server의 HA 솔루션
장애 조치 클러스터
이 솔루션은 공유 하드 드라이브(일반적으로 SAN)를 사용합니다. 데이터베이스를 보유합니다. '인스턴스가 많습니다. ' 설치된 SQL Server의 경우 각 인스턴스는 노드이지만 한 번에 하나의 노드만 데이터베이스를 제어할 수 있습니다. 이 노드에 문제가 발생하면 다른 노드가 이를 교체하여 데이터베이스를 관리합니다.
로그 전달
미러(복사본)로서의 데이터베이스의 추가 구조입니다. 기본 데이터베이스에 변경 사항이나 업데이트가 있으면 이러한 변경 사항을 기록하는 로그 파일이 미러 서버 인스턴스로 전송됩니다. 이러한 방식으로 데이터베이스의 업데이트된 복사본이 유지됩니다. 만일의 사태가 발생할 경우, 복사 데이터베이스는 짧은 시간 안에 메인 데이터베이스로 전환됩니다.
이미지 1 :SQL Server 설정은 항상 사용 가능
복제
장애 조치 클러스터인 경우 및 로그 전달 고가용성을 보장하는 두 가지 솔루션이 있습니다. 데이터베이스 수준에서 복제 테이블, 뷰 등 데이터베이스의 개체 수준에서만 고가용성을 보장합니다. 이러한 개체는 저장을 위해 SQL Server의 두 번째 인스턴스 하나에 복사됩니다.
SQL Server의 데이터 미러링
데이터베이스 미러링 (DM)은 SQL Server에서 고가용성 데이터베이스를 구축하기 위한 새로운 솔루션입니다. DM은 다음과 같은 이전 솔루션의 단점을 극복합니다:
• 장애 조치 클러스터와 비교 DM에는 SAN과 같은 특수 하드웨어가 필요하지 않으므로 구성 비용이 절감됩니다.
• 로그 전달과 비교 DM은 관리자가 조치를 취하지 않고도 오류가 발생하면 자동으로 미러 시스템으로 전환할 수 있습니다. 로그 전달에는 T-SQL을 통한 수동 구성이 필요합니다. 따라서 DM은 중단 시간(다운타임)을 초 단위로 계산할 수 있으므로 '핫 대기'라고 하고, 중단 시간이 분 이상일 수 있으므로 로그 전달을 '웜 대기'라고 합니다.
• 복제와 비교 , DM은 전체 데이터베이스를 보호하고 복제는 마스터와 같은 테이블과 같은 데이터베이스의 일부만 보호하므로 우수합니다.
단, DM은 기업/개발자에서만 가능합니다. SQL Server 2005 SP1/2008 버전
1. SQL Server의 DM 구조
SQL Server의 DM에는 3개의 기본 인스턴스가 필요합니다. 데이터베이스를 관리하기 위한 인스턴스 1개(주 역할), 데이터베이스 백업을 보장하기 위한 추가 인스턴스(미러) 1개. 감시 인스턴스는 두 개의 기본 및 하위 인스턴스와 연결되어 데이터베이스의 가용성을 모니터링하고 보장합니다.
증인 얼굴이 있는 경우: 감시 서버는 주 서버와 미러 서버 모두에 연결됩니다. 이제 전체 시스템은 3개 구성 요소 중 2개가 결정권을 갖는 정족수가 됩니다. 주 서버에 문제가 있는 경우 감시 서버는 자동으로 미러 서버를 주 서버로 전환합니다. 그러면 메인 서버가 다시 작동하면 관리자가 개입할 때까지 메인 서버는 미러 서버 역할을 맡게 됩니다(이제 두 서버는 서로 역할을 바꿉니다)( 그림 1). ).
이미지 2 :SQL Server 설정은 항상 사용 가능
감시 서버가 없는 경우: 자동 변환 프로세스는 관리자의 영향 없이는 작동하지 않습니다.
SQL Server에는 'endPoint'라는 개념이 있습니다. '는 '연결 지점'으로 해석될 수 있으며, 이를 통해 SQL Server 인스턴스는 TCP를 통해 서로 통신할 수 있습니다( 다이어그램 2 ).
각 끝점은 해당 주소와 포트로 식별됩니다. 이론적으로 주소는 전체 도메인 주소여야 하지만 실제로는 다음 네 가지 방법 중 하나로 사용될 수 있습니다.
- 서버 이름을 통해 결정합니다. 예:TCP:// 주체:7024.
- 도메인 이름을 통해 결정합니다. 예:TCP://PRINCIPAL.DELTAX.COM:7024.
- IPv4를 통해 결정합니다. 예:TCP://192.168.1.3:7024.
- IPv6를 통해 결정합니다.
참고: SQL Server 인스턴스가 동일한 시스템에서 실행되는 경우 TCP 포트는 달라야 합니다.
2. 주 서버와 보조 서버 간의 정보 교환
이미지 3 :SQL Server 설정은 항상 사용 가능
고속 모드(고성능):
고성능 모드는 비동기 복사본 생성에 해당합니다. 주 서버는 미러 서버에 업데이트를 보내고 미러 서버가 성공적으로 업데이트될 필요 없이 계속해서 다른 변경 작업을 수행합니다.
미러 서버가 변경 사항을 업데이트할 때까지 기다리지 않음으로써 메인 서버의 액세스 속도가 빨라지고 불필요한 로딩을 방지할 수 있습니다.
이 프로세스는 다음 구성표로 설명할 수 있습니다.
고속 모드의 경우 미러 서버는 항상 메인 서버보다 느리게 업데이트되며, 아직 서버에 데이터를 전송하지 않고 메인 서버가 작업을 중단하는 경우 데이터 손실이 발생할 수 있습니다. 거울. 그러나 이 다른 데이터베이스 부분은 상대적으로 작고 수용 가능합니다. 고성능 모드 - 고성능 모드는 감시 서버가 필요하지 않습니다.
높은 안전 모드(높은 안전):
고속 모드와 달리 높은 안전 모드에서는 동기식 메커니즘을 사용합니다. 애플리케이션이나 사용자가 업데이트되면 메인 서버와 미러 서버 모두에서 거의 동시에 업데이트됩니다. 이렇게 하면 주 서버에 문제가 있을 때 미러 서버가 완전하고 완전한 데이터베이스 복사본을 갖게 되어 높은 데이터 보안이 보장됩니다.
높은 보안 모드에서는 상시 대기 - 상시 대기를 보장하기 위해 감시 서버가 필요합니다.
3. DM 구성:
SQL Server에서 DM 구성은 3가지 기본 단계로 구성됩니다.
- 전체 데이터베이스를 메인 서버에 백업(백업)한 후 미러 서버에 복원(복원)합니다.
- 메인 서버, 미러, 증인이 함께 작동하도록 해당 엔드포인트를 생성하세요.
- 세션 생성(데이터베이스 미러링 세션)
이미지 4 :SQL Server 설정은 항상 사용 가능
DM 구성은 SSMS(SQL Server Management Studio)의 인터페이스를 사용하여 수행하거나 T-SQL을 사용하여 구성할 수 있습니다.
SQL Server Management Studio의 인터페이스 구성은 매우 간단합니다. 미러 서버에서 데이터를 성공적으로 복원한 후 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 '미러링을 선택하기만 하면 됩니다. ' 그런 다음 단계를 따르세요.
그 결과 DM 세션이 초기화됩니다.
SSMS 구성을 사용하면 T-SQL을 사용하여 완료할 때 대부분의 작업을 제거할 수 있지만 원하는 경우 여전히 T-SQL을 사용하여 최고의 유연성을 얻을 수 있습니다.
T-SQL의 구성은 두 가지 방법을 사용하여 서로 끝점을 인증할 수 있습니다. 즉, 로그인으로 확인하거나 인증서로 인증할 수 있습니다. T-SQL 코드가 완성되어 DM 구성이 꽤 길어서 일반적인 단계만 소개합니다.
로그인을 통한 구성
SQL Server 계정을 동일한 방식으로 사용하는 경우 Windows 계정을 사용하여 SQL Server에 로그인한다고 가정해 보겠습니다.
로그인 생성 [PRICIPAL-SRVAdministrator]
Windows에서
GO
엔드포인트 생성:
엔드포인트 파트너 생성
상태 =시작됨
AS TCP(LISTENER_PORT =5022)
DATABASE_MIRRORING의 경우(
인증 =WINDOWS 협상,
암호화 =지원됨,
역할 =전체)
GO
ROLE =ALL로 엔드포인트를 생성한다는 점에 유의하세요. 주 서버와 미러 서버 모두에서 수행해야 하며 감시 서버에서는 ROLE =WITNESS로 바꿉니다. .
이미지 5 :SQL Server 설정은 항상 사용 가능
인증서로 구성:
각 엔드포인트가 서로를 식별할 수 있도록 로그인 계정을 사용하는 대신 대체 솔루션인 인증서를 생성하는 것이 가능합니다.
- 마스터 키 암호화 생성(인증서 내보내기에 필요):
tạo nguaời dùng key xác thực từ mật khẩu ='abc123 !!';
- 인증서 만들기:
인증서 PRINCIPAL_cert 생성
제목 ='PRINCIPAL 인증서',
start_date ='2007/11/01',
만료_날짜 ='2020/11/01';
이미지 6 :SQL Server 설정은 항상 사용 가능 - 인증서에 해당하는 엔드포인트를 생성합니다:
엔드포인트 생성 끝점_미러링 상태 =시작됨
tcp로(listener_port =7024, Listener_ip =모두)
데이터베이스_미러링(인증 =인증서 PRINCIPAL_cert, 암호화 =비활성화, 역할 =모두);
- 인증서를 별도의 파일로 내보내기:
인증서 PRINCIPAL_cert를 파일로 백업 ='c:PRINCIPAL_cert.cer';
미러 서버 및 감시에서도 동일한 작업을 수행하고 필요할 때 역할 =감시를 변경하는 데 주의를 기울이십시오. 엔드포인트를 생성하고 3개 인스턴스 모두에서 인증서를 내보낸 후 주 서버로 돌아갑니다.
- 미러 서버에 대한 로그인 생성:
PASSWORD ='abc123 !!'로 로그인 MIRROR_login을 생성합니다.
GO
- 해당 로그인에 해당하는 사용자를 생성합니다
로그인 MIRROR_login에서 사용자 MIRROR_user를 생성합니다.
GO
- 서버의 .cer 파일에서 인증서를 생성합니다:
MIRROR_cert 인증서 생성
승인 MIRROR_user
파일에서 ='c:MIRROR_cert.cer';
GO
- 서버의 로그인 미러에 대한 엔드포인트 연결 권한 부여:
CONNECT ON Endpoint ::엔드포인트_미러링을 [MIRROR_login]에 부여합니다.
GO
이미지 7 :SQL Server 설정은 항상 사용 가능 세 대의 컴퓨터가 서로를 식별하고 인증할 수 있도록 미러 서버와 감시 서버뿐만 아니라 감시 서버 인증서에도 동일한 작업을 수행합니다.
엔드포인트를 생성한 후 다음 쿼리로 확인할 수 있습니다:
SELECT 이름, state_desc, role_desc
sys.database_mirroring_endpoint에서
마지막 작업은 DM에 대한 세션을 시작하는 것입니다:
* 주 서버에서:
ALTER 데이터베이스 AdventureWorks
SET PARTNER ='TCP://mirror-srv.deltax.com:5022'
GO
* 미러 서버에서:
ALTER 데이터베이스 AdventureWorks
SET PARTNER ='TCP://pricipal-srv.deltax.com:5022'
GO
* 주 서버에서 감시 서버를 설정합니다:
ALTER 데이터베이스 AdventureWorks
SET WITNESS ='TCP://witness-srv.deltax.com:5022'
GO
시스템 가동 후 데이터베이스 미러링 모니터를 통해 모니터링 가능 도구 :
이미지 8 :SQL Server 설정은 항상 사용 가능
4. 프로그래밍 미들웨어:
DM의 사용은 미들웨어 측면에서 데이터베이스 연결이 거의 투명하다고 합니다. ADO.NET 라이브러리를 사용하는 경우 ConnectionString을 수정하면 됩니다. '장애 조치 파트너를 추가하려면 ' 필드를 미러 서버에 추가합니다. 예:
데이터 소스 =pricipal.database.com; 장애 조치 파트너 =mirror.database.com; 초기 카탈로그 =AdventureWorks;
통합 보안 =True;
또한 ADO.NET은 ' 연결 풀을 생성합니다. '는 시작된 연결에 대한 캐싱을 허용하므로 서버 전환으로 이어지는 문제가 발생할 경우 추가 작업을 적극적으로 구현해야 합니다. 이 캐시를 삭제하세요.
SqlConnection.ClearPool(conn);
에필로그
이미지 9 :SQL Server 설정은 항상 사용 가능 SQL Server의 DM은 매우 간단하고 구성, 사용 및 모니터링이 쉽지만 기능이 상대적으로 제한됩니다. 중형 및 하위 수준 데이터베이스에만 적합하며 연속성에 대한 엄격한 요구 사항이 있는 대규모 데이터베이스의 경우 제안된 접근 방식이 충족되지 않았지만 전반적인 운영 체제 솔루션이 필요합니다. 하드웨어 시스템, 네트워크.
이 기사는 SQL Server에서 고가용성 데이터베이스 관리 시스템을 구축하는 방법에 대한 개요를 얻는 데 도움이 되기를 바랍니다.
참조:http://technet.microsoft.com/en-us/library/cc917680.aspx
행운을 빌어요.
방금 "SQL Server 설정은 항상 사용 가능"이라는 기사를 읽었습니다. "는 TipsMake에 의해 편집되었습니다. 팀. 이 기사가 귀하에게 많은 유용한 기술 팁과 요령을 제공하였기를 바랍니다. 팁과 가이드에서 유사한 기사를 검색할 수 있습니다. 읽어주시고 정기적으로 팔로우해주셔서 감사합니다.