11장 HA Always on
지난 단원 리뷰
클러스터 인덱스 : (non-clustered를 만들어도 leaf node는 클러스터인덱스로 잡힌다.) 인덱스 크기가 900kb 넘으면 안된다라는게 있대…왜인지는 되게 뭉뚱그려서 말함…
Max degree of parallelism : 한 쿼리에 의해 쓰레드가 고갈되는 거 방지하기 위해서.
Min/max server memory : 2012 이전까지는 8kb 이상 할당시 multi page allocator를 통해서 memtoleave 라는 영역으로 넣고 갔기 때문에 …. 무슨 말인지 모르겠닼ㅋ
2012 이후에는 single page, multi page allocator가 아닌 any page allocator 라고 해서…..음
OS(3GB) + 스택영역(…) + 다른 APP 영역 이렇게 빼줘야 한다 가용공간을
Adhoc 같은 경우 들어오는 파라미터에 따라 캐쉬에 있는 플랜을 재사용하지 못하는 경우가 많다.
@sql해서 varchar로 잡아서 더해서…
들어오는 파라미터도 concate를 시키면 상수로 치환되기 때문에 매번 상수마다 플랜이 생겨…
그런걸 완화시켜주기 위한 파라미터.
Optimize for adhoc workloads를 통해서 재사용 되지 않는 애들…을 줄여주는 효과?
Failover 클러스터 대비 장점 :
로컬디스크에 DB를 가지고 있다.
디스크 장애에 더 용이하다.
Failover는 san에 둬서 공유디스크 해야 한다.
2014에서는 replica 8개 가져갈 수 있다.
하나는 sync, 하나는 async 이렇게 가져가는게 좋다.
Read-intent : connection string에 내가 얘를 readonly로 읽겠다고 셋팅을 하고 들어온 애만 읽을 수 있게 하겠다라고 조건을 붙인 구성
Replica : 노드
AG : 거기에 있는 failover 단위가 되는 데이터베이스 그룹
SQL FCI to SQL FCI 구성은 한번도 본 적이 없다.
Always on 구성순서
FC 서비스 설치 + 쿼럼 구성(shared disk 없을 시 fileshare로 쿼럼 구성)
AG DB가 full mode만 가능하다. (단순,벌크 불가능)
FULL, TR -> 참석하는 DB(secondary)에 모두 restore (no recovery 모드로)
AG enable (sql 서버 재시작 필요)
AG 구성 (mgmt. studio)
리스너 구성
접속테스트
Readable secondary 구성
Read url, 라우팅 잡을거다. (readonly 라우팅)
Readonly 쿼리 왔을 때 라우팅을 어디서 먼저 수행할래 할 때
Second1 -> Second2 -> Primary 이렇게 라우팅 잡아준다.
Backup reference (백업을 어디서 수행할래 이런거 구성)
Scheduled job (잡은 어디서 할랭. 프라이머리?세컨더리?)
페일오버 클러스터 동작 구성
Looksalive : 서비스가 살아있는지 체크함. (5초단위)
Isalive : 실제 sql서버쪽으로 쿼리를 날려본다. 정상적으로 수행되는지(60초단위)
Looksalive가 실패하면 바로 isalive 수행함.
실패하면 자기 노드에서 서비스를 재시작해본다.
정상화되면 failover시키진 않다.
그래도 온라인이 안 된다 하면 상대편으로 failover시킨다.
CNO를 ad에 만들기 위해서는 컴퓨터 객체 만드는 권한이 있어야 한다.
Cluadmin : 로컬어드민에는 포함되어 있다.
Dynamic quorum
Dynamic witness 개념 확인하기
ALWAYSON 만들기 실습
Failover 클러스터 만들기
계정에 객체만들기 권한 추가
Advanced 클릭
Permissions에 추가
해당 클러스터 로컬컴퓨터에서는 로컬어드민 권한 필요
지정한 OU에 생성하기
Dynamicweight 확인
N3를 다운시키면 N1의 current vote값이 0으로 바뀜을 확인할 수 있다.
N2까지 다운시키면 N1의 current vote가 1임을 확인할 수 있다.
이렇게 dynamicweight를 통하여 홀수개로 유지시킨다.
쿼럼디스크 (fileshare)로 생성
저 FS의 securiy탭에서 CNO(AlwaysonCLUSTER 컴퓨터객체)를 추가시키고 Full control을 선택한다.
이렇게 sharing을 하면 CNO가 추가되어 있음을 확인 가능하다.
AG
엔터프라이즈 에디션만 된다.
Master DB는 옮겨지지 않는다. 로그인정보 같은 거 수동으로 옮겨줘야 한다.
(contained DB 이런걸 구성해야 한다…???)
AlwaysOn 구성하기
SQLCMD 모드로 해야 cmd 모드로 실행된다.
AVAILABILITY GROUP 만들기
AG를 만들어 보자.
AG를 만들 DB를 선택한다. (해당 DB들은 모두 FULL RECOVERY MODE여야 한다.)
우린 이미 NODE2,3번에 FULL모드로 한 애들을 NORECOVERY로 복구해놓은 상태 (위에 보면 RESTORING 상태)
그래서 JOIN onLY 옵션을 선택한다.
만약 복구를 나중에 하고 AG에 추가하는 경우라면, 아래처럼 해당 DB 선택하고
JOIN TO AVAILABILITY GROUP 선택하면 된다.
그럼 이렇게 다 RESTORING 상태에서 모두 플레이 모드로 정상적으로 올라온 걸 확인할 수 있다.
AG LISTENER 추가
해당 CNO에도 컴퓨터 객체 생성 권한을 또 줘야 한다.
아니면 아래와 같이 에러가 뜬다.
(아까는 유저에만 컴퓨터 객체 생성 권한을 준것.)
ALWAYSONOU 에서 우클릭하고 SECURITY 탭에서 ADD해서 컴퓨터개체인 ALWAYSONCLUSTER CNO 개체 추가
아래 두가지 권한 추가
그렇게 권한 추가하고 다시 FINISH 누르면 아래와 같이 리스너가 생성된 걸 확인할 수 있다.
아래와 같이 해당 OU에서도 AGCORPLISTEN 객체가 생성됨을 알 수 있다.
AG
엔터프라이즈 에디션만 된다.
Master DB는 옮겨지지 않는다. 로그인정보 같은 거 수동으로 옮겨줘야 한다.
(contained DB 이런걸 구성해야 한다…???)
DEMO 10 – contained db
SSIS, SQL Agent job들은 안 넘어가서 별도로 만들어 줘야 한다.
BACKUP JOB ; SYS.FN_HADR_BACKUP_IS_PREFERRED_REPILICA
FOR OTHER JOB ; SYS.FN_HADR_......
MSDB 같은 시스템디비는 안 옮겨지기 때문에
CONTAINED DB 기능을 사용하면 로그인 정보 같은 거 같이 넘어온당 헤헤
'Database > MS-SQL' 카테고리의 다른 글
sql 전문가 과정 9장 (0) | 2016.10.20 |
---|---|
sql 전문가 7일차 (0) | 2016.10.18 |
SQL 전문가과정 5일차 (0) | 2016.10.14 |
SQL 전문가 과정 3일차 (0) | 2016.10.13 |
sql전문가 과정 3일차 (0) | 2016.10.12 |