Alwayson-읽기 전용 요청 구성

10267 단어 프로비저닝
장면: SQLNode131, SQLNode132, SQLNode133:
1) 세 서버가 도메인 DCDemo에 가입합니다.com
2) 서버 3대가 포트를 사용하여 데이터베이스에 액세스
3) 서버 3대가 장애 조치 클러스터 구축 SQLNode02
4) 서버 3대로 고가용성 그룹 구축 AGNode134
5) SQLNode12 및 SQLNode22를 통한 자동 장애 조치
대상: SQLNode12 및 SQLNode22에 대한 읽기 전용 요청 전송
SQLNode131의 IP: 192.168.25.131
SQLNode132 IP: 192.168.25.132
AGNode134의 IP: 192.168.25.134
 
읽기 전용 라우팅 구성
--=====================
-- 
USE master
GO
ALTER AVAILABILITY GROUP [AGNode134]
MODIFY REPLICA ON N'SQLNode131' WITH
(
    SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY)
);
GO
ALTER AVAILABILITY GROUP [AGNode134]
MODIFY REPLICA ON N'SQLNode131' WITH
(
    SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://192.168.25.131:1433')
);
GO
ALTER AVAILABILITY GROUP [AGNode134]
MODIFY REPLICA ON N'SQLNode132' WITH
(
    SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY)
);
GO
ALTER AVAILABILITY GROUP [AGNode134]
MODIFY REPLICA ON N'SQLNode132' WITH
(
    SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://192.168.25.132:1433')
);
GO
ALTER AVAILABILITY GROUP [AGNode134]
MODIFY REPLICA ON N'SQLNode131' WITH
(
    PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('SQLNode132','SQLNode131'))
);
GO
ALTER AVAILABILITY GROUP [AGNode134]
MODIFY REPLICA ON N'SQLNode132' WITH
(
    PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('SQLNode131','SQLNode132'))
);

GO

읽기 전용 라우팅 인증:
SELECT
g.name AS AGName,
ar1.replica_server_name AS ReplicaServerName,
ar2.replica_server_name AS RountingReplicaServerName,
ar1.endpoint_url AS ReplicaServerURL,
ar2.endpoint_url AS RountingReplicaServerURL
FROM sys.availability_read_only_routing_lists rl
INNER JOIN sys.availability_replicas ar1 
ON ar1.replica_id=rl.replica_id
INNER JOIN sys.availability_replicas ar2 
ON ar2.replica_id=rl.read_only_replica_id
INNER JOIN sys.availability_groups g 
ON ar1.group_id=g.group_id
WHERE rl.routing_priority=1

 
읽기 전용 라우팅 삭제
ALTER AVAILABILITY GROUP [AGNode134]
MODIFY REPLICA ON N'SQLNode132' WITH
(
    PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=NONE)
);
GO
ALTER AVAILABILITY GROUP [AGNode134]
MODIFY REPLICA ON N'SQLNode131' WITH
(
    PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=NONE)
);
GO

 
사용:
MSDN은 사용할 수 있음을 나타냅니다.NET Framework 4.0.2에서 액세스할 수 있습니다. 하지만.NET 4 정식 릴리즈는.0.3, 테스트를 통해 이 기능은.NET4.5S에서 정상적으로 작동 가능, 연결 문자열은
 
Server=tcp:192.168.25.123,1433;Database=DB1;ApplicationIntent=ReadOnly;MultiSubnetFailover=True;User Id=sa;Password=password;
ApplicationIntent에는 Readonly와 ReadWrite의 두 가지 구성 값이 있습니다. ApplicationIntent는 요청한 동작을 제한하지 않고 이 연결에서 발생해야 할 동작을 나타냅니다.
 
읽기 전용 라우팅이 설정된 요청의 경우 각 요청은 먼저 마스터 복사본으로 전달되며, 마스터 복사본을 통해 사용 가능한 복사본을 가져와 읽기 전용 요청을 처리할 수 있는 보조 복사본을 차례로 찾아서 해당 요청을 마스터 복사본으로 전달합니다.
보조 복사본에서 조회를 실행할 때, Alwayson은 데이터베이스의 차단 문제를 없애기 위해 행판을 사용합니다. 모든 조회는 다른 격리 단계나 잠금 알림을 표시하더라도 스냅샷 격리 단계에서 자동으로 실행됩니다.스냅샷 격리 수준은 데이터에 S 자물쇠를 추가하는 것을 피하지만 대상에 Sch-S 자물쇠를 추가하고 Sch-S 자물쇠는 DDL 문장을 막습니다.
보조 복사본에 색인을 따로 만들 수 없기 때문에 조회 성능을 향상시키기 위해 메인 복사본에 색인을 먼저 만들어야 합니다. 이로 인해 색인 유지보수는 대량의 색인 정리 데이터를 동기화합니다.
보조 복사본을 읽을 수 있도록 설정할 때 조회할 때 소모하는temp 공간 (임시 통계와 스냅샷 격리 단계의 행 버전 정보) 을 고려해야 합니다

좋은 웹페이지 즐겨찾기