"미러사이트"의 두 판 사이의 차이
(→구성) |
(→구성) |
||
32번째 줄: | 32번째 줄: | ||
#'''감시 서버를 포함한 동기화 미러링'''(Synchronous mirroring) : 데이터의 손실이 없고 자동으로 장애 조치를 지원한다. 주 서버에서 일어난 트랜잭션이 미러 서버에 기록이 정확하게 이루어져야만 주 서버에 커밋이 된다. 데이터의 손실이 없는 장점에 비해 성능에 영향을 줄 수 있다. | #'''감시 서버를 포함한 동기화 미러링'''(Synchronous mirroring) : 데이터의 손실이 없고 자동으로 장애 조치를 지원한다. 주 서버에서 일어난 트랜잭션이 미러 서버에 기록이 정확하게 이루어져야만 주 서버에 커밋이 된다. 데이터의 손실이 없는 장점에 비해 성능에 영향을 줄 수 있다. | ||
#'''감시 서버를 포함한 비동기화 미러링 방식'''(Asynchronous mirroring) : 동기화 미러링 방식과는 달리 주 서버에서 트랜잭션이 바로 커밋 된다. 이런 이유로 동기화 방식에 비해 성능이 좋다. 이 방식은 주 서버와 미러 서버 간의 거리가 멀리 떨어지거나 서버 간의 지연이 있는 경우 고려할 수 있는 방식이다. | #'''감시 서버를 포함한 비동기화 미러링 방식'''(Asynchronous mirroring) : 동기화 미러링 방식과는 달리 주 서버에서 트랜잭션이 바로 커밋 된다. 이런 이유로 동기화 방식에 비해 성능이 좋다. 이 방식은 주 서버와 미러 서버 간의 거리가 멀리 떨어지거나 서버 간의 지연이 있는 경우 고려할 수 있는 방식이다. | ||
− | #감시 서버를 포함하지 않은 동기 미러링 : 이 구성은 데이터의 정확성을 우선으로 하며 서버의 서비스 중지 시간을 어느 정도 인정하며 잠재적인 성능 이슈를 견딜 수 있는 상황에서 유용하다. 이 구성은 자동 장애 조치 기능이 구현되지 않는다.<ref name="디비가이드넷></ref> | + | #'''감시 서버를 포함하지 않은 동기 미러링''' : 이 구성은 데이터의 정확성을 우선으로 하며 서버의 서비스 중지 시간을 어느 정도 인정하며 잠재적인 성능 이슈를 견딜 수 있는 상황에서 유용하다. 이 구성은 자동 장애 조치 기능이 구현되지 않는다.<ref name="디비가이드넷></ref> |
;미러 서버 구성하기 | ;미러 서버 구성하기 |
2020년 8월 10일 (월) 15:22 판
미러사이트(mirror site)란 여러 사이트를 간접적으로 찾아갈 수 있게 홈페이지에 구축된 웹 주소이다. 자신이 제공하는 정보가 아니더라도 다른 사이트에 필요한 정보가 있다면 자신의 홈페이지를 찾는 사용자들에게 그 주소를 연결시켜 줌으로써 정보를 제공할 수 있다.
개요
다른 웹사이트의 콘텐츠를 그대로 복사하여 갖고 있는 사이트를 말한다. 이런 식으로 웹사이트의 파일을 동기화하는 것을 미러링이라고 부른다. 미러링의 목적은 데이터의 안정적 보존 및 본 서버에 문제가 생겼을 경우에 대한 대비이다. 미러링을 함으로써 엔하위키 미러, 나무위키 미러처럼 본 서버의 접속자를 분산하거나 해당 웹페이지를 빠르고 가볍게 접속할 수 있다. 본래 트래픽 감당과 빠른 접속을 위해 코드나 디자인이 간결하게 만들어지는 것이 특징이며, 그 기반을 둔 사이트를 본관이라고 지칭하기도 한다. 시스템에 의해 전자동으로 저장되는지, 사람이 직접 저장하는지에 따라 미러링과 아카이브로 나뉘기도 한다. 사람이 수동으로 하는 아카이브로 박제하는 것은 위법이 아니다. 다만 본관 사이트의 허가를 받지 않은 무단 불법 미러링은 위법이라고 판결이 났다. 대표적인 예시로서 엔하위키 미러가 있다. 주요 소프트웨어 개발사들은 대체로 사용자들의 다운로드 편의를 제공하기 위해 전 세계적으로 여러 개의 미러 사이트들을 운영한다.[1]
특징
대기 서버에 완벽한 데이터베이스 복사본을 이용하여 데이터베이스의 이중화를 유지한다. 또한 클러스터링에 비해 약 3초 미만의 시간 내에 서비스가 이어진다. 그리고, 특별한 장비의 요구 사항이 없다. 그렇기 때문에 네트워크에 연결되어 있는 일반적인 저 사양의 장비로 훌륭하게 데이터가 용성을 구현할 수 있다. 또한 구현도 쉽다. 그리고, 문제가 발생하면 자동으로 서버의 역할을 교대하여 서비스를 유지한다. 이럴 때 데이터베이스 서버에 연결된 클라이언트 측에서는 어떤 서버를 사용하는지 모르는 상태에서 서버의 변경이 가능하다.
- 서버역할
자동적인 데이터베이스 미러링을 구현하기 위해서는 다음과 같은 역할을 가진 서버가 있어야 한다.
역할 설명 Principal Server (주 서버) 데이터베이스를 가지고 서비스를 운영하는 서버 Mirror Server(미러서버) 주 서버의 데이터베이스의 복사본을 유지하는 서버 Witness Server(감시서버) 서버간의 연결과 주 서버의 문제 발생시 자동적으로 문제점을 해결하는 서버
구성
데이터베이스 미러링은 상황에 맞게 3가지 구성 방법이 있다.
- 감시 서버를 포함한 동기화 미러링(Synchronous mirroring) : 데이터의 손실이 없고 자동으로 장애 조치를 지원한다. 주 서버에서 일어난 트랜잭션이 미러 서버에 기록이 정확하게 이루어져야만 주 서버에 커밋이 된다. 데이터의 손실이 없는 장점에 비해 성능에 영향을 줄 수 있다.
- 감시 서버를 포함한 비동기화 미러링 방식(Asynchronous mirroring) : 동기화 미러링 방식과는 달리 주 서버에서 트랜잭션이 바로 커밋 된다. 이런 이유로 동기화 방식에 비해 성능이 좋다. 이 방식은 주 서버와 미러 서버 간의 거리가 멀리 떨어지거나 서버 간의 지연이 있는 경우 고려할 수 있는 방식이다.
- 감시 서버를 포함하지 않은 동기 미러링 : 이 구성은 데이터의 정확성을 우선으로 하며 서버의 서비스 중지 시간을 어느 정도 인정하며 잠재적인 성능 이슈를 견딜 수 있는 상황에서 유용하다. 이 구성은 자동 장애 조치 기능이 구현되지 않는다.[2]
- 미러 서버 구성하기
주 서버가 미러 서버에 접속 가능해야 하며 트러스터 된 상태이어야 한다. 권장하는 것은 같은 도메인상에 속해있는 것이다. 한 서버에 여러 인스턴스를 이용하여 구성이 가능하다. 하지만 이렇게 하면 성능상의 문제가 있기에 권장하지 않는다.[2]
- 미러 데이터베이스 구성하기
미러 데이터베이스는 자동이 아닌 수동으로 구성된다. 두 데이터베이스(주 서버, 미러 서버)는 같은 파일 구조를 가져야 한다. 또한 전체 복구 모델로 선택되어 있어야 한다. 미러 데이터베이스 생성 즉시 주 데이터베이스의 전체 백업본을 미러 서버에 With NORECOVERY 절을 이용하여 복원해야 한다.[2]
- 미러링 구성을 위한 끝점(Endpoints) 구성하기
- 미러 서버에 파트너 끝점(Partner Endpoint) 구성하기
- 주 서버와의 통신을 위해 주 서버와 사용할 파트너 끝점이 필요하다. 아래의 예제 코드를 이용하면 Mirror_EndP라는 파트너 끝점을 만든다. STATE 파라미터를 STARTED로 지정하게 되면 바로 활성화된다. TCP 포트 5022는 미러링에서 기본적으로 사용하는 포트 번호이다.
CREATE ENDPOINT Mirror_EndP STATE=STARTED AS TCP(LISTENER_PORT=5022) FOR DATABASE_MIRRORING (ROLE=PARTNER)
- 주 서버에 파트너 끝점 구성하기
- 미러 서버에서 보여준 것처럼, 주 서버는 미러링 서비스를 제공하는 SQL 서버 인스턴스와 통신을 할 파트너 끝점이 필요하다.
CREATE ENDPOINT Mirror_EndP STATE=STARTED AS TCP (LISTENER_PORT=5022) FOR DATABASE_MIRRORING (ROLE=WITNESS)
- 목격자 서버에 목격자 끝점 구성하기
- 시나리오에 미러링 끝점이 포함되어 있으면 목격자 서비스를 제공하는 SQL 서버 인스턴스 상에 끝점이 필요하다.
CREATE ENDPOINT Mirror_EndP STATE=STARTED AS TCP (LISTENER_PORT=5022) FOR DATABASE_MIRRORING (ROLE=WITNESS)
- 미러 세션 설정하기
위에서 미러 서버와 데이터베이스 준비되고 각 서버에 Endpoint가 생성이 되면 다음과 같이 미러 세션을 설정한다.
- 미러 서버에서 파트너십 생성하기
- 우선 미러 서버에서 ALTER DATBASE 명령어를 수행한다.
ALTER DATABASE AdventureWorks SET PARTNER =‘ TCP://Seoul:5022’
- 주 서버에서 파트너십 생성하기
ALTER DATABASE AdventureWorks SET PARTNER =‘ TCP://Busan:5022’
- 감시 서버 구성하기
자동 장애 조치를 구성하려면 목적 서버를 구성해야 한다. 목적 서버는 주 서버 및 미러 서버와는 다른 서버에 구성이 되어야 한다. 그렇지만 하나의 목적 서버는 여러 개의 미러 세션을 담당할 수 있다.
ALTER DATABASE AdventureWorks SET WITNESS =‘ TCP://DAEGU:5022’
- 감시 서버 제거하기
미러 서버가 제거되어도 미러링 세션은 유지된다. 다만, 자동 장애 조치는 불가능하다. 감시 서버를 제거하는 방법은 다음과 같다.
ALTER DATABASE AdventureWorks SET WITNESS OFF
각주
참고자료
- 미러 사이트 나무위키 - https://namu.wiki/w/%EB%AF%B8%EB%9F%AC%20%EC%82%AC%EC%9D%B4%ED%8A%B8
- 〈데이터베이스 미러링〉, 《디비가이드넷》