분산된 가용성그룹이 복잡하게 느껴질 것이다. 어찌 보면 단순하지만 복잡하다. 그럼 분산된 가용성그룹의 장애조치는 어떻게 할까? 주 가용성그룹(주 클러스터 환경)이 장애가 발생될 경우에 보조 가용성그룹(보조 클러스터환경)으로 장애조치를 해야 한다. 장애조치 하는 방법은 간단하다. T-SQL만 지원하는것 같다. /* 분산 가용성 그룹의 장애조치 하는 방법 */ -- 1. 보조 가용성 그룹에 대해 가용성 모드를 동기 커밋으로 설정합니다. -- 왜 ?? 생각해봐라. ALTER AVAILABILITY GROUP [distributedag] MODIFY AVAILABILITY GROUP ON 'AG-Seeding' WITH ( LISTENER_URL = 'tcp://AGSeedLsn:5022', AVAILABILI..
[참고문서] 분산된 가용성 그룹(Always On 가용성 그룹) https://msdn.microsoft.com/ko-kr/library/mt651673.aspx 분산된 가용성 그룹을 사용하면 서로 다른 Windows Server 장애 조치 클러스터(WSFC)에 있는 두 가용성 그룹을 연결할 수 있습니다. 분산된 가용성 그룹 배포의 주요 용도 중 하나는 기본 사이트가 DR 사이트로부터 지리적으로 분산된 곳의 문제 해결를 위한 것입니다. One of the main uses of Distributed Availability Groups is for disaster recovery where the primary site is geographically dispersed from the DR site. 원하..
SQL Server 업그레이드 관리자 (upgrade advisor)를 통해서 상위버전으로 업그레이드 할때 호환성 수준에 따른 지원하지 않는 기능등을 추출할 수 있는 툴이다. 아래 시나리오에서는 어떻게 툴을 수행할 수 있을까? [시나리오] A server : SQL Server 2000 B server : SQL Server 2008R2 위 두 서버에서 A Server 를 B Server 로 통합하는 작업이다. 이때 A Server 의 SQL 2000을 호환성 검사를 수행하고자 한다. [확인사항] #. CASE 1 SQL Server 2000을 2008R2로 이전하는 절차이므로 SQL 2008R2 UA 를 B 서버에 설치하고 A Server 의 데이터베이스를 모두 이관하고 호환성검사를 수행한다 ?? 같은..
SQL 의 암호화 솔루션등의 모듈이 추가할때 업체에서 프로시저들을 암호화하여 볼 수 없게 만든다. 사실 안 되는 것이 없는 세상이지. ㅋㅋ [LAB] 암호화된 프로시저를 만든다. CREATE PROCEDURE SPTEST_ENCRYPT WITH ENCRYPTION AS BEGIN SELECT 'SHOW ENCRYPTION' SELECT TOP 1 * FROM [AdventureWorks2014].[Person].[Address] END 실행하면 정상적으로 결과를 뿌린다. 개체탐색기에서 해당 개체를 스크립팅을 하려면 아래와 같이 오류가 발생한다. 암호화된 프로시저의 실행계획도 찾아 볼 수 없다. 실행계획 탭 자체가 안보인다. 암호화했으니 실행계획도 안 보이는 것이 맞다. 그럼 어떻게 소스를 볼까 [암호화된..
로드밸런싱 그룹핑을 통해서 부하분산 확장을 할 수 있다. 그룹핑을 수정을 하고 싶을 때 어떻게 할까? 간단하다. 기존 구성은 그대로 두고 그룹핑하는 쿼리만으로 수정이 가능하다. 현재구성은 아래와 같이 주서버 + 보조서버 3개를 모두 그룹핑 하였다. -- 보조 복제본 2,3,4를 모두 LB 구성, 3개 모두 복제복이 비정상일 경우에는 1번으로 연결한다는 정의 ALTER AVAILABILITY GROUP [AG-GroupNameTSQL] MODIFY REPLICA ON N'AG2016-S1\AG1' WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=(('AG2016-S4\AG4','AG2016-S3\AG3', 'AG2016-S2\AG2'), 'AG2016-S1\AG1'))); 아래..
SQL Server 2014 이하에서는 Read-Only Routing(읽기 전용 라우팅) 을 지원하고 있으며, 이 기능은 첫번째 설정한 보조복제본으로만 접근이 계속되는 문제가 있었다. 첫번째 설정한 보조복제본에 장애가 발생할 경우에만 두번째 설정한 보조복제본으로 접근이 가능하다. 이 기능을 개선한 SQL Server 2016에서는 Load Balanced Read-Only Routing으로 개선하였다. 일단, 해보자. (나의 이상이다) #. SQL Server 2016 Load Balanced Read-Only Routing(로드밸런싱 읽기전용 라우팅 ??) 설정하기 [환경설정] 2개의 가용성데이터베이스를 추가하여 그룹을 생성한다. 리스너를 생성해야 된다. 리스터 접속테스트 쿼리로만 구성이 가능하다. ..
SQL Server 2016 가용성그룹에서 향상된 기능 중에 자동장애조치 노드수가 늘어났다. 이전까지는 2개의 복제본까지만 구성 가능했으나, SQL Server 2016에서는 3개 복제본까지 구성이 가능하다. Bug 성 이슈 확인인가 ~~~~ SQL Server 2014 AG 에서 자동 장애조치 모드 변경했을 경우에 특이한 현상이 발생한다. 노드 4개 장애조치 모드가 모두 수동인 상태에서 3개를 자동으로 변경을 하면 오류 메시지를 뱉는다. 아래와 같이 3개를 자동으로 변경한다. 확인을 누르면 아래와 같이 자동장애조치는 최대 2개로 제한된다. 오류 메시지 창에서 확인을 누르고 변경창에서 취소를 누르고 다시 속성을 보면 희한한 일이 발생한다. AG1, AG3 번이 [자동]으로 변경이 되어 있다. 먼일이지 ?..
SQL Server 2016 가용성그룹에서 향상된 기능 중에 자동장애조치 노드수가 늘어났다. 이전까지는 2개의 복제본까지만 구성 가능했으나, SQL Server 2016에서는 3개 복제본까지 구성이 가능하다. 현재 복제본은 4개로 구성된 환경이다. 위 환경에서 AG2016-S4 복제본의 설정을 Failover Mode 자동으로 수정하게 되면 4개의 자동장애조치 설정이므로 아래와 같이 오류가 발생한다. [3개의 장애조치 동작 방식] 아래와 같이 자동장애조치 노드가 3개까지 설정이 가능하다. 위 환경에서 AG1 인스턴스를 중지해보자. 그럼 AG2016-S2, AG2016-S3 둘 중 한 개 복제본으로 Primary 역할이 자동장애조치가 된다. 수행하면 AG2016-S2 으로 역할이 이동 된다. 왜 3번으로 ..
2개의 복제본으로 운영하다가 1개이상의 복제본을 추가하고 싶을때 어떻게 할까? 기존 운영하는 데이터베이스에 영향이 없이 복제본 추가를 할 수 있을까? #. SQL Server 2016 가용성 그룹 복제본 추가하는 방법. 추가 복제본은 AG2, AG3 추가를 한다. 이미 구성된 복제본의 설정정보는 수정이 불가능하다. [결과] 이슈 없이 추가 된다. 추가 시 기존 SQL 서비스에는 영향이 없는 듯 싶다. 단. 데이터동기화 방식을 전체로 하면 주 복제본의 백업시 I/O성능이 약간 발생할 소지는 있을 것 같다. 그냥. 데이터동기화 방식을 전체(Full) 로 설정하게 되면 백업폴더에 백업파일이 생긴다. BackupLoc… 로 시작하는 파일은 뭐지 ???
SQL Server 2016 AG에 추가된 기능인 Database Level Health Detection(데이터베이스 수준 상태 검색)을 테스트를 해봤다. [테스트 결과] SQL Server 2016 AG에서는 가용성데이터베스가 Pending 상태가 되면 자동장애조치가 된다. 단, "가용성그룹의 모든 데이터베이스가 그 상태이어야 한다" 가정이었으나 테스트 결과 가용성그룹에 1개의 데이터베이스만 있을 경우에 자동장애조치가 발생하고, 다수 존재시 구동 되지 않았다. 2014AG는 자동장애조치가 발생하지 않는다. Database Level Health Detection 이란 기능에 대해서 좀 더 확인이 필요할 것 같다. 괜히 사용했다가 더 심각한 상황이 될 수도 있을 것 같다. 어떤 상황에 해당 기능이 구현..
윈도우 클러스터에 SQL 클러스터를 올려서 이중화 환경으로 많이 사용된다. SQL 의 리소스를 보면 아래와 같이 가상 서버이름, 저장소, 기타 리소스 로 구분되어 진다. 기타 리소스의 속성을 유심히 봐야 한다. 현재 구성중인 속성화면을 모두 캡쳐해 봤다. 위 옵션값들이 기본값이므로 추후에 장애 발생시 참고하면 좋을 것같다. 여기서, SQL Server Agent 를 실수로 리소스를 삭제하면 어떻게 될까? 클러스터 관리자에서 삭제를 해보자. 제거를 하게 되면 기타 리소스에서 삭제가 되며, SQL Server 구성관리자에서 확인하면 서비스도 중지가 된다. 실수이므로 다시 추가하는 작업을 해야한다. 클러스터 관리자에서 SQL Server 역할의 속성화면에서 [리소스 추가] [추가 리소스] 에서 SQL Serv..
- Total
- Today
- Yesterday