MsSQL 에서는 Cluster 이중화 방식을 지원합니다.
여기에서 모든 Cluster 노드는 하나의 디스크를 공유하는 방식으로 구성됩니다.
주 노드를 사용하고 있을 때는 보조 노드는 읽기만 가능합니다.
만약 주 노드에 장애가 발생하는 경우 보조 노드가 주 노드로 바뀌면서 읽기/쓰기가 가능해집니다.
그럼 구성해보겠습니다.
본 장비에서 VirtualBox 로 가상화 4대의 장비를 구성했습니다.
따라서 본 장비가 어느정도 스펙이 따라주어야... 합니다ㅎ
구성할 VirtualBox 4대의 정보를 먼저 표로 보여드립니다.
구성/장비 |
DC (Domain Controller) |
SQL01 (main) |
SQL02 (sub) |
SQLApp (App) |
IP |
192.168.56.101 |
192.168.56.102 |
192.168.56.103 |
192.168.56.104 |
Subnet |
255.255.255.0 |
|||
DNS |
192.168.56.1 |
192.168.56.101 |
||
Core |
4 |
4 |
4 |
4 |
Memory |
3G |
3G |
3G |
3G |
Storage |
32G 1G (Quorum) 10G (Data) 5G (MSDTC) |
32G |
32G |
32G |
Network | HOST + NAT | HOST + NAT | HOST + NAT | HOST + NAT |
사진이 추가되면 너무 길어져서 사진없이 글로만 설명하는 단계들이 많이 있습니다.
궁금하신 분은 댓글로 문의주시면 아는 부분에 대해 성의껏 답변드릴게요~
구성할 가상화 장비 아이피 확인
1. 본 장비에서 cmd창을 연 후에 ipconfig로 가상화 아이피를 확인합니다.
IPv4 주소가 DC 장비의 DNS 이며 192.168.56.x 로 모든 장비의 아이피들이 구성됩니다.
이는 각 사용자의 환경별로 다를 수 있습니다.
VirtualBox 가상화 장비 구성하기
1. 새로만들기를 선택합니다.
2. Name 란에 Domain Controller 를 입력합니다. (SQL01, SQL02, SQLApp을 구성할 때도 같은 방식으로 진행합니다.)
3. 메모리는 3G를 설정합니다.
4. 지금 새 가상 하드 디스크 만들기를 선택합니다.
5. VDI 를 선택합니다.
6. 고정 크기를 선택합니다.
7. 32G를 설정합니다.
8. 가상화 디스크가 생성되었습니다. 설정으로 들어갑니다.
9. 일반 - 고급을 누른 후 클립보드와 드래그 앤 드롭을 활성화 시켜줍니다.
10. 시스템 - 프로세서 - 프로세서 개수를 4로 변경합니다.
11. 네트워크 - 어댑터1에 호스트 전용 어댑터로 설정합니다. 이는 외부와 통신이 가능하게 하는 어댑터 입니다.
12. 네트워크 - 어댑터2에 NAT 설정합니다. 이는 가상화장비끼리 통신하는 어댑터 입니다.
13. 가상화 구성에서 13번 부터는 Domain Controller 설정할 때만 진행합니다. 저장소에서 디스크 추가하기를 선택합니다.
14. 새 디스크 만들기를 선택합니다.
15. 가상 하드 디스크를 선택합니다.
16. 고정크기를 선택합니다.
17. Quorum 을 입력한 뒤 1G를 설정합니다.
( Data는 10G, MSDTC는 5G를 입력합니다.) 따라서 저장소 추가를 총 3번 해야 합니다.
이와 같은 방식으로 SQL01, SQL02, SQLApp 도 만듭니다.
가상화 장비 Windows Server Standard 2016 설치
1. 4대의 가상화 장비에 Windows Server Standard 2016을 설치합니다.
설치경험이 없으신 분들은 https://mozi.tistory.com/264 를 참고해주세요.
설치 후 한글팩 설치 방법은 https://mozi.tistory.com/265 를 참고해주세요.
가상화 장비 컴퓨터 명 설정
1. 가상화 장비 컴퓨터 명을 설정합니다.
-> 내PC 우클릭 - 속성으로 들어갑니다.
-> 컴퓨터 이름, 도메인 및 작업 그룹 설정에서 설정 변경을 선택합니다.
-> 컴퓨터 이름에서 변경을 선택합니다.
-> 컴퓨터 이름에 장비역할에 맞게 DC, SQL01, SQL02, SQLApp 을 입력합니다.
DC 장비 도메인 컨트롤러 구성
1. NAT 네트워크 어댑터의 IP를 설정합니다.
2. 도메인 서비스 역할을 추가합니다.
-> 서버 관리자를 실행합니다.
-> 대시보드 - 이 로컬 서버 구성 - 역할 및 기능 추가를 선택합니다.
-> 서버 역할에서 Active Directory 도메인 서비스와 DNS 서버에 체크합니다. (관리 도구 포함(해당되는 경우) 체크합니다.)
-> 기능에서 장애 조치(Failover) 클러스터링에 체크합니다. (관리 도구 포함(해당되는 경우) 체크합니다.)
-> 다시 시작하지 않음으로 두고 진행 및 설치를 완료합니다.
3. 도메인 컨트롤러로 승격합니다.
-> 플래그 - 이 서버를 도메인 컨트롤러로 승격을 클릭합니다.
-> 새 포리스트를 추가 - 루트 도메인에 mscs.com 을 입력합니다.
-> 배포 구성이 완료되면 암호를 입력 후 재부팅합니다.
-> 경고가 나오나 무시하고 진행/완료 및 재부팅을 합니다.
-> mscs.com 도메인으로 로그인합니다.
4. 도메인 방화벽을 해제합니다.
SQL01, SQL02, SQLApp 도메인 가입
1. 위의 표를 참조하여 NAT 어댑터의 IPv4네트워크에 주소값을 설정합니다.
2. 각 장비에서 DC장비의 도메인에 가입합니다.
-> 내PC 우클릭 - 속성으로 들어갑니다.
-> 컴퓨터 이름, 도메인 및 작업 그룹 설정에서 설정 변경을 선택합니다.
-> 컴퓨터 이름에서 변경을 선택합니다.
-> 소속그룹 - 도메인에 mscs.com을 입력합니다.
-> DC장비에서 구성 시 등록한 암호를 입력합니다.
-> 컴퓨터를 재부팅한 뒤 mscs 도메인으로 로그인 합니다.
3. SQL Server패키지, SSMS 등을 서버로 전송합니다.
4. HOST 아이피를 비활성화 합니다. (장애 클러스터 유효성 검사시 활성화 되어있으면 네트워크 충돌로 실패됩니다.)
5. DC 도메인 컨트롤 구성시 진행했던 장애 조치 클러스터 기능만을 활성화 합니다.
6. 도메인 방화벽을 해제합니다.
DC 장비 AVAILABILITY DIRECTORY (AD) 구성
1. 디스크 관리에서 추가한 3개의 가상 하드디스크를 마운트합니다.
-> 각각의 디스크에 대해서 단순 볼륨을 생성합니다.
-> E: (Quorum), F: (Data), G: (MSDTC)
2. Quorum용 iSCSI 가상 디스크를 등록합니다.
-> 서버 관리자 - 파일 및 저장소 서비스 - iSCSI 로 들어갑니다.
-> 'iSCSI 대상 서버를 설치하려면 역할 및 기능 추가 마법사를 시작합니다' 를 클릭합니다.
-> 우측 상단의 작업 - 새 iSCSI 가상 디스크 선택을 클릭합니다.
-> iSCSI 가상 디스크 위치에서 E:를 선택 후 다음으로 넘어갑니다.
-> iSCSI 가상 디스크 이름에서 이름란에 QuorumDisk 를 입력합니다.
-> iSCSI 가상 디스크 크기에서 크기에 700 입력 후 고정크기를 선택합니다.
-> iSCSI 대상에서 '새 iSCSI 대상'을 선택합니다.
-> 대상 이름 및 액세스에서 원하는 이름 입력을 mscs로 입력합니다.
-> 액세스 서버에서 추가 - 찾아보기 - 고급 - 지금찾기 - SQL01을 추가합니다. (SQL02도 동일한 방식으로 추가합니다.)
-> 디스크를 생성합니다.
3. Data용 iSCSI 가상 디스크를 2번을 참조하여 등록합니다.
-> iSCSI 가상 디스크 위치에서 F:를 선택 후 다음으로 넘어갑니다.
-> iSCSI 가상 디스크 위치에서 DataDisk 를 입력합니다.
-> iSCSI 가상 디스크 크기에서 크기에 8 입력 후 고정크기를 선택합니다.
-> iSCSI 대상에서 '기존 iSCSI 대상'을 선택합니다. 이후 작업은 필요치 않습니다.
4. MSDTC용 iSCSI 가상 디스크를 2번을 참조하여 등록합니다.
-> iSCSI 가상 디스크 위치에서 G:를 선택 후 다음으로 넘어갑니다.
-> iSCSI 가상 디스크 위치에서 MSDTCDisk 를 입력합니다.
-> iSCSI 가상 디스크 크기에서 크기에 4 입력 후 고정크기를 선택합니다.
-> iSCSI 대상에서 '기존 iSCSI 대상'을 선택합니다. 이후 작업은 필요치 않습니다.
SQL01, SQL02 장비에서 iSCSI 디스크 등록
SQL01 장비에서 먼저 진행합니다.
1. iSCSI 초기자 속성을 설정합니다.
-> 서버 관리자 - 도구 - iSCSI 초기자를 선택합니다.
-> 검색 - 포털 검색 - IP 주소 또는 DNS 이름에 DC 장비의 IP를 입력합니다.
-> 대상 - 연결 - 확인을 선택하여 해당 target의 상태가 연결됨으로 변경되는 것을 확인합니다.
2. 디스크 관리에서 해당 디스크를 등록합니다. (SQL02는 이미 마운트 되어있고 오프라인 상태라면 진행하지 않아도 됩니다.)
-> 디스크 관리를 실행합니다.
-> 오프라인 된 디스크를 온라인으로 변경합니다.
-> 세 개의 디스크 초기화를 진행합니다.
-> 세 개의 디스크 단순 볼륨으로 마운트를 진행합니다.
-> 세 개의 디스크를 오프라인으로 변경합니다.
DC 장비에서 SQL01, SQL02 장애 클러스터 등록
1. 장애 조치 클러스터에서 SQL01, SQL02에 구성 유효성 검사를 진행합니다.
-> 서버 관리자 - 도구 - 장애 조치 클러스터 관리자를 선택합니다.
-> 구성의 유효성을 검사를 선택합니다.
-> 서버 또는 클러스터 선택 - 찾아보기 - 고급 - 지금 찾기에서 SQL01, SQL02를 선택합니다.
-> 테스트 옵션에서 모든 테스트 실행(권장)을 선택합니다.
-> 유효성 검사가 정상적으로 통과되면 마법사를 종료합니다. 이 때 검사된 노드를 사용하여 클러스터 만들기 체크를 비활성합니다.
2. 장애 조치 클러스터에서 SQL01, SQL02에 대해 클러스터를 구성합니다.
-> 서버 관리자 - 도구 - 장애 조치 클러스터 관리자를 선택합니다.
-> 클러스터 만들기를 선택합니다.
-> 서버 선택에서 찾아보기 - 고급 - 지금찾기 - SQL01, SQL02를 추가합니다.
-> 클러스터 관리 액세스 지점에서 클러스터 이름을 mscsn 으로 입력합니다.
-> 클러스터 관리 액세스 지점에서 주소를 192.168.56.105 로 입력합니다.
-> 확인에서 '클러스터에 사용할 수 있는 모든 저장소를 추가하세요' 선택 해제합니다.
-> 마법사를 종료하면 SQL01, SQL02가 노드로 묶여있는 것을 확인할 수 있습니다.
SQL01, SQL02 장비에서 DC 장비의 AD 공유 디스크 추가
1. SQL01에서 공유 디스크를 추가합니다.
-> 서버 관리자 - 도구 - 장애 조치 클러스터 관리자를 선택합니다.
-> mscsn.mscs.com - 저장소 - 디스크를 선택합니다.
-> 디스크 추가 선택 - 모두 선택 후 확인을 선택합니다.
2. SQL02에서 저장소 - 디스크로 들어가면 자동으로 추가되어 있는 것을 확인할 수 있습니다.
3. SQL01에서 Quorum 디스크를 설정합니다.
-> mscsn.mscs.com 우클릭 - 추가작업 - 클러스터 쿼럼 설정 구성을 선택합니다.
-> 쿼럼 구성 옵션에서 고급 쿼럼 구성을 선택합니다.
-> 응답 구성 선택에서 모든 노드를 선택합니다.
-> 쿼럼 감시 선택에서 디스크 감시 구성을 선택합니다.
-> 저장소 감시 구성에서 쿼럼용으로 생성한 디스크를 선택합니다.
-> 마법사를 종료합니다.
SQL01, SQL02에서 장애조치 클러스터 설치
1. SQL01에서 SQL Server를 설치합니다.
-> SQL Server 설치 응용프로그램을 실행합니다.
-> 설치 - SQL Server 장애 조치(Failover) 클러스터 새로 설치를 선택합니다.
-> 장애 조치 클러스터 설치 규칙에서 오류가 있으면 안됩니다.
-> 기능 선택에서 데이터베이스 엔진 서비스를 체크합니다.
-> 인스턴스 구성에서 SQL Server 네트워크 이름에 mscsnt를 입력합니다.
-> 클러스터 디스크 선택에서는 DataDisk(명칭이 다르게 표시될 수 있으나 DataDisk를 선택해야함)를 선택합니다.
-> 클러스터 네트워크 구성에서 IP주소를 입력합니다.
-> 서버 구성에서 서비스 계정 - 에이전트/엔진은 공통 계정으로 등록합니다.
-> 데이터베이스 엔진 구성에서 서버 구성 - 혼합 모드 선택 암호 설정 후 현재 사용자 추가를 선택합니다.
-> 설치를 완료합니다.
2. SQL02에서는 SQL01에서 설치한 장애조치 클러스터에 노드를 추가합니다.
-> SQL Server 설치 응용프로그램을 실행합니다.
-> 설치 - SQL Server 장애 조치 클러스터에 노드 추가를 선택합니다.
-> 노드 추가 규칙에서 오류가 있다면 해결 후 진행을 선택합니다.
-> 클러스터 노드 구성에서 SQL01에서 설정한 인스턴스를 선택합니다. (기본으로 잡혀있습니다.)
-> 클러스터 네트워크 구성에서 SQL01에서 설정한 IP를 선택합니다. (DHCP 체크해제 합니다.)
-> 서비스 계정에서 에이전트/엔진의 암호를 입력합니다.
-> 설치 및 노드 추가를 완료합니다.
SQLApp에서 클러스터 IP로 접속
1. SSMS를 실행합니다.
2. SQL01 클러스터 설치 시 입력한 SQL Server네트워크 이름 mscsnt를 서비스 이름에 입력합니다.
3. 연결된 것을 확인합니다.
4. 현재 어느 노드를 사용하는지는 DC장비에서 디스크의 소유자 노드를 확인하여 알 수 있습니다.
5. SQL01 노드가 정상인 경우 SQL02는 읽기작업만 가능합니다.
6. SQL01 노드가 비정상으로 종료한다면 소유자 노드가 SQL02로 바뀌고 SQL02는 읽기/쓰기 작업이 가능합니다.
'SQL Server > SQL Server 이중화_백업' 카테고리의 다른 글
[MsSQL] 데이터베이스 전체 복구, 차등 복구, 로그 복구 알아보기 (0) | 2019.03.20 |
---|---|
[MsSQL] 데이터베이스 모델과 백업, 스냅샷 방법 및 종류 알아보기 (0) | 2019.03.19 |
[MsSQL] 이중화 로그 전달 Log Shipping 방식 설정하기 (1) | 2019.01.22 |
[MsSQL] 이중화 복제 Replication 방식 설정하기 (2) | 2019.01.22 |
[MsSQL] 이중화 Replication, Log shipping, Mirroring, Cluster, Always On 알아보기 (6) | 2019.01.20 |