SQL Server 2022 / Always On 가용성 그룹 만들기

Always On 가용성 그룹을 만들면 한 SQL Server에 장애가 생겼을 때 다른 SQL Server가 대신하도록 할 수 있다. Always On 가용성 그룹은 Windows Server의 장애 조치(Failover) 클러스터를 기반으로 하고, 장애 조치(Failover) 클러스터는 Active Directory 환경에서 사용할 수 있다.

즉, Always On 가용성 그룹을 만드는 것보다 그러한 환경을 구축하는 게 더 어려울 수 있다. Active Active Directory 환경, 장애 조치(Failover) 클러스터 만드는 방법은 아래 링크를 참고하고, 여기서는 Always On 구성에 대해서만 다룬다.

가정

  • MF-AD-01이 도메인 컨트롤러이다. 도메인은 mf.ad, NetBIOS는 MF이다.
  • MF-SQL-01과 MF-SQL-02는 MF-AD-01에 MF\Administrator로 조인되어 있다.
  • MF-SQL-01과 MF-SQL-02에 장애 조치 클러스터를 구성한다. 클러스터 이름은 SQL_Cluster, 클러스터 IP는 192.168.0.221이다.
  • MF-SQL-01과 MF-SQL-02에 MF\Administrator로 로그인하여 SQL Server를 설치한다.
  • 수신기 이름은 SQL_Listener, 수신기 IP는 192.168.222로 만들 것이다.

환경 설정

아래의 작업을 MF-SQL-01, MF-SQL-02에서 한다.

SQL Server

  • SQL Server 구성 관리자를 열고, SQL Server 서비스를 선택한다.
  • SQL Server와 SQL Server 에이전트의 상태가 실행 중, 시작 모드가 자동, 다음 계정으로 로그온이 MF\Administrator가 되도록 설정한다.

  • 설정은 속성으로 들어가서 한다.

  • SQL Server의 속성에서 [Always On 가용성 그룹] 탭을 클릭하고, [Always On 가용성 그룹 사용]에 체크한 후 [확인]을 클릭한다.

  • 서비스를 다시 시작해야 변경 내용이 적용된다는 안내 창이 나온다.

  • SQL Server를 선택하고 우클릭한 후 [다시 시작]을 클릭한다.

방화벽

MF-SQL-01, MF-SQL-02에서 1433, 5022 포트를 열어준다.

Always On 가용성 그룹 만들기

MF-SQL-01에서 다음 작업을 한다.

데이터베이스 만들고 백업하기

  • 데이터베이스를 만든다.

  • 데이터베이스 전체 백업을 한다. 전체 백업을 하지 않으면 가용성 그룹을 만들 수 없다.

가용성 그룹 만들기

  • [Always On 고가용성]을 선택하고 마우스 우클릭 후 [새 가용성 그룹 마법사]를 클릭한다.

  • [다음]을 클릭한다.

  • 적절히 이름을 정하고, 클러스터 유형이 [Windows Server 장애 조치(Failover) 클러스터]가 선택된 것을 확인하고 [다음]을 클릭한다.

  • 데이터베이스를 선택하고 [다음]을 클릭한다.

  • [복제본 추가]를 클릭한다.

  • MF-SQL-02를 입력하고 [연결]을 클릭한다.

  • 자동 장애 조치에 체크하고, 가용성 모드를 동기 커밋으로 설정 후 [다음]을 클릭한다.

  • [다음]을 클릭한다.

  • 가용성 그룹 유효성 검사를 한다. 오류가 없으면 다음 단계로 넘어갈 수 있다.

  • [마침]을 클릭하고 잠시 기다리면...

  • 구성이 완료된다.

  • 가용성 그룹을 확장하면 아래처럼 구성을 볼 수 있다.

  • [장애 조치 클러스터 관리자]을 열면, 아래처럼 역할에서 상태를 볼 수 있다.

테스트

  • MF-SQL-01을 종료한다.
  • MF-SQL-02에서 [장애 조치 클러스트 관리자]를 열어서 소유자 노드가 변경된 것을 확인한다.

  • SSMS에서 데이터베이스가 잘 동기화되었고, MF-SQL-02가 (주)가 되었는지 확인한다.

수신기 만들기

수신기는 SQL Server에 연결할 때 사용할 이름 또는 IP로 생각하면 된다. 수신기로 연결하면 주 서버로 연결을 해준다.

  • [가용성 그룹 수신기]를 선택하고 마우스 우클릭 후 [수신기 추가]를 클릭한다.

  • 이름을 적절히 정하고, 포트는 1433으로 한 후 [추가]를 클릭한다.

  • 수신기로 사용할 IP를 입력하고 [확인]을 클릭한다.

  • [확인]을 클릭하면 수신기가 만들어진다.

 

같은 카테고리의 다른 글

SQL Server / 스키마 / 만들기, 조회하기, 수정하기, 삭제하기

스키마(Schema)를 이용하여 테이블을 분류하고 권한 관리를 할 수 있다. 스키마 만들기 a라는 이름의 스키마를 만든다. create schema a; 스키마 조회하기 스키마 정보를 출력한다. select * from sys.schemas; 테이블 만들기 스키마 지정 없이 테이블을 만들면 dbo 스키마가 붙는다. create table client ( id int ); 스키마를 지정하고 만들면, 그 스키마에 테이블이 만들어진다. create table a.client ( id int ); dbo.client와 a.client는 테이블 이름은 ...

SQL Server / SSMS / 다이어그램 만드는 방법

SQL Server / SSMS / 다이어그램 만드는 방법

다이어그램 생성 시 아래와 같은 에러가 난다면 여기를 참고하여 해결할 수 있습니다. 보안 주체 "dbo"이(가) 없거나 이 유형의 보안 주체를 가장할 수 없거나 사용 권한이 없기 때문에 데이터베이스 보안 주체로 실행할 수 없습니다. (Microsoft SQL Server, 오류: 15517) 데이터베이스 하위에 있는 을 선택합니다. 마우스 우클릭 후 을 클릭합니다. 다이어그램에 포함될 테이블을 ...

SQL Server / 샘플 데이터베이스 AdventureWorks 설치하는 방법

SQL Server / 샘플 데이터베이스 AdventureWorks 설치하는 방법

만약 공부에 필요한 샘플 데이터베이스가 필요하다면 Micrososft에서 제공하는 AdventureWorks를 사용하자. AdventureWorks 샘플 데이터베이스 페이지에 접속하여 백업 파일을 다운로드한다. AdventureWorks는 OLTP 데이터베이스, AdventureWorksDW는 OLAP 데이터베이스, AdventureWorksLT는 AdventureWorks의 경량 및 축소 버전이다. 디스크 공간이 충분하다면 AdventureWorks와 AdventureWorksDW를 설치하자. SSMS에서 를 선택하고... 마우스 우클릭 후 을 클릭한다. 를 선택하고, 찾아보기 아이콘을 클릭한 후... 를 클릭하고... 다운로드한 파일을 선택하고 을 클릭한다. 을 ...

SQL Server / 데이터베이스 / 만들기, 삭제하기, 수정하기, 조회하기

데이터베이스 만들기 데이터베이스는 create database로 만든다. shop이라는 이름의 데이터베이스를 만든다. create database shop; 데이터베이스 이름에 띄어쓰기 또는 특수문자가 있는 경우 큰 따옴표 또는 대괄호로 감싼다. create database "shop.shop"; create database ; 데이터베이스 삭제하기 데이터베이스는 drop database로 삭제한다. drop database shop; 데이터베이스 이름에 띄어쓰기 또는 특수문자가 있는 경우 큰 따옴표 또는 대괄호로 감싼다. drop database "shop.shop"; drop database ; 데이터베이스 사용하기 작업 대상이 되는 데이터베이스를 ...

SQL Server / Agent XPs 구성 요소는 이 서버의 보안 구성에 따라 해제되었습니다.

SQL Server / Agent XPs 구성 요소는 이 서버의 보안 구성에 따라 해제되었습니다.

SSMS로 작업하다보면 다음과 같은 메시지를 만날 때가 있습니다. 이를 해결하는 방법은... SQL Server가 설치된 컴퓨터에서 SSMS를 실행한 후, 을 선택하고... 마우스 우클릭 한 후 을 클릭합니다. 를 클릭하고... 잠시 기다리면... 다음과 같이 메뉴가 바뀌면서 해결됩니다.

SQL Server / 테이블 / 만들기, 삭제하기, 수정하기, 조회하기

SQL Server / 테이블 / 만들기, 삭제하기, 수정하기, 조회하기

테이블 만들기 client 테이블을 만든다. 열이 하나도 없으면 만들어지지 않으므로, 적어도 하나의 열은 같이 만들어야 한다. create table client ( id int ); 테이블 삭제하기 client 테이블을 삭제한다. drop table client; 테이블 이름 변경하기 테이블 client의 이름을 account로 변경한다. sp_rename client, account; 테이블 목록 조회하기 방법 1 select * from information_schema.tables; 방법 2 execute sp_tables @table_type = "'table'"; SSMS 테이블 만들기 데이터베이스를 확장하고 을 선택한 다음 ...

SQL Server / 테이블 / 기본 키(PRIMARY KEY)

SQL Server / 테이블 / 기본 키(PRIMARY KEY)

기본 키(PRIMARY KEY) 테이블의 각 행을 고유하게 식별하는 값을 가진 열 또는 열 조합을 기본 키라 한다. 테이블은 하나의 기본 키만 가질 수 있다. 기본 키를 만들면 인덱스가 자동으로 생성되며, 쿼리에서 기본 키를 사용하는 경우 빠르게 액세스할 수 있다. 쿼리로 만들기 기본 키 만들기 테이블을 만들 때 기본 키 만들기     이미 만든 테이블에서 기본 키 만들기       자동으로 증가하는 ...

SQL Server / SSMS / 테이블을 다시 만들어야 하는 변경 내용 저장 사용 안 함 설정 변경하는 방법

SQL Server / SSMS / 테이블을 다시 만들어야 하는 변경 내용 저장 사용 안 함 설정 변경하는 방법

SSMS로 테이블 작업을 할 때 다음과 같은 메시지와 함께 저장이 되지 않는 경우가 있다. 변경 내용을 저장할 수 없습니다. 변경 내용을 적용하려면 다음 테이블을 삭제하고 다시 만들어야 합니다. 다시 만들 수 없는 테이블을 변경했거나 옵션을 설정했습니다. 테이블 열의 순서를 변경하는 등 특정 ...

SQL Server / 연산자 / 비교 연산자, 논리 연산자

예제로 사용한 데이터베이스는 AdventureWorks이다. 같다 HumanResources.Employee 테이블에서 BusinessEntityID가 10인 데이터를 출력한다. select * from HumanResources.Employee where BusinessEntityID = 10 ; 같지 않다 HumanResources.Employee 테이블에서 BusinessEntityID가 10보다 작거나 큰, 즉 같지 않은 데이터를 출력한다. select * from HumanResources.Employee where BusinessEntityID <> 10 ; <> 대신 !=를 사용해도 된다. select * from HumanResources.Employee where BusinessEntityID != 10 ; 크다 HumanResources.Employee 테이블에서 BusinessEntityID가 10보다 큰 데이터를 출력한다. select ...

SQL Server / 오류 22022 / SQLServerAgent가 현재 실행되고 있지 않으므로 이 동작을 알릴 수 없습니다.

SQL Server / 오류 22022 / SQLServerAgent가 현재 실행되고 있지 않으므로 이 동작을 알릴 수 없습니다.

SQL Server에 스케줄에 따라 자동 백업하는 작업을 추가할 때 다음과 같은 메시지가 나왔습니다. SQL Server Agent가 실행되고 있지 않아 작업을 추가할 수 없는 것입니다. SQL Server Agent가 실행 중이 아니어서 발생한 문제이므로, 실행시키면 해결되겠죠? SQL Server가 설치된 컴퓨터의 서비스를 엽니다. Windows Server라면 서버 관리자에서 를 클릭하면 됩니다. 아니면, 실행 창을 ...