2. 미러링 구축하기


2.1 데이터베이스 백업


**주서버에서 작업해줘야하는 부분입니다. 예제에서는 192.168.10.207 서버의 데이터베이스에서 이를 진행합니다.


먼저 미러링을 할 데이터베이스를 백업해줍니다.

미러링을 하려는 주 서버의 데이터베이스를 우클릭후, 테스크>백업 버튼을 눌러 백업창으로 들어갈 수 있습니다.



데이터베이스와 백업 유형을 전체로 설정하고, 백업 구성 요소는 데이터베이스로 선택합니다.

그다음 디폴트값으로 설정되어있는 경로를 제거합니다.

제거한 뒤 추가를 눌러 경로를 재설정 해줍니다.




경로를 재 설정해줄 때, 백업 파일을 찾기 쉽게 하도록 경로를 C:\ 로 두었고, 파일명은 "백업파일명.bak" 로 백업파일을 만듭니다.

예시의 경우엔 test.bak 파일로 만들었습니다.


만약, 운영체제 접근 관련 문제가 발생하여 C:\ 의 경로에 백업파일이 생성되지 않는다면, C:\에 폴더를 하나 생성하고 그 폴더 안에 백업파일을 생성하면 문제가 해결될 것입니다.




2.2 데이터베이스 복원


** 이 작업은 미러서버에서 진행합니다. 예시의 경우엔 192.168.10.212 서버에서 진행합니다.


2.1 에서 했던 백업파일을 미러서버에 이동시켜 적용시킵니다.


미러서버의 데이터베이스에서 우 클릭 후 데이터베이스 복원을 클릭합니다.



주 서버에서 생성했던 백업파일을 미러서버에서 적용시켜줍니다.

적용 방법은 아래와 같습니다.


데이터베이스 복원 창에서 일반 > 원본 메뉴의 장치 라디오 버튼 클릭 후 오른쪽에 ... 버튼 클릭


백업 미디어 유형이 파일인지 확인한 후, 오른쪽에 추가 버튼 클릭


주 서버에서 만들어놓은 백업파일을 미러서버로 옮겨온 뒤 (물리적으로 옮겨옵니다.) 그 파일 적용합니다.


만약, 해당 위치에 파일이 없다면, 주 서버에서 미러서버로 백업파일을 옮겨왔는지 확인합니다.

주 서버에서 백업파일을 생성만 하면 미러서버에서 찾을 수 없습니다. 반드시 미러서버로 백업 파일을 옮겨주세요.

USB로 옮기든, 공유 폴더로 옮기든 미러서버로 가져오셔야 합니다.


다음으로, 파일>데이터베이스 파일 복원 메뉴에서

모든 파일을 폴더로 위치 변경 을 체크해주시는걸 권장 드립니다. (자동으로 미러 서버 경로로 변경되는 효과)


모든 파일을 폴더로 위치 변경을 체크하고 싶지 않다면(미러 서버에 특정 위치에 데이터베이스 파일을 놓아야 한다면), 아래 표의 4번째 셀인 "다음으로 복원" 의 경로를 미러서버에 존재하는 폴더로 경로를 변경해줘야 합니다. 경로를 변경하는 방법은 해당 표에서 더블클릭하면 경로를 변경할 수 있습니다.


위와 같은 방법으로 경로를 변경해줘야 하는 이유는 "다음으로 복원" 의 디폴트 위치가 주 서버의 위치로 되어있기 때문입니다. 주 서버에있는 경로를 미러서버에서 읽으려 하니 에러가 날 수 밖에 없기 때문입니다.


경로는 반드시 행 데이터 파일 형식과 로그 파일 형식 둘 다 변경해주어야 합니다. 마찬가지로 하나만 경로를 변경해주면 다른 하나는 주 서버의 경로로 되어있기 때문에 미러 서버가 경로를 찾지 못할 수 있기 때문입니다.


공교롭게도 미러서버와 주 서버의 위치가 같다면 위의 문제는 일어나지 않습니다.


옵션>복원 옵션 에서 

복구 상태는 반드시 RESTORE WITH NORECOVERY로 설정해줍니다.

이 모드가 가장 성능이 좋다고 합니다.


데이터베이스명 (복원 중...) 이라고 뜨는것이 정상이며, 복원중으로 계속 진행되고 있음이 정상입니다. (복원 완료라고 절대 뜨지 않습니다.)

미러서버의 데이터베이스는 복원 중... 이라고 나와야 합니다. 

(나중에 주서버와 미러서버가 변경되었을 경우에도, 주서버가 미러서버가 되었으면 이제 미러서버가 된 구 주 서버의 데이터베이스의 형태는 복원 중 ... 으로 바뀔 것입니다.)


2.3 미러링 연결 - 마법사

* 이 작업은 주 서버에서 진행됩니다.


주 서버의 데이터베이스 우클릭 후, 테스크 > 미러 로 들어갑니다.


미러링에 대해 찾아봤으면 알겠지만, 미러링 모니터 서버를 추가로 구성하려면 위의 예를 누르는게 맞습니다.

하지만 본 예제에선 미러링 모니터를 설정하지 않을 것이기 때문에 아니오로 진행됩니다.


만약, 여러분들 중, 미러링 모니터도 설정해야 한다면, 예를 눌러 미러링 모니터도 설정할 수 있습니다. 미러링 모니터는 연결해보지 않아서 정확하게 말씀드릴 수 없습니다.


주 서버 인스턴스는 미러링을 하기 위해 선택한 데이터베이스 (주 서버) 의 이름으로 적용됩니다. 

저는 IP로 인스턴스 이름을 설정하였지만, 서버 이름이 검색되면 서버 이름으로도 연결이 됨을 확인하였습니다.


포트 및 끝점 이름은 사용자에 의해 변경될 수 있습니다. 만약, 포트가 변경되었으면 "미러링 구축하기 1편의 1.5 방화벽 포트 확인" 및 나중에 연결할 "2.4 미러링 연결 - 파트너 연결" 시 변경된 포트로 적용해야 합니다.



미러서버 인스턴스는 미러링을 연결하기 위해 복원한 데이터베이스(미러 서버)가 있는 서버를 연결해줍니다.

주 서버와 마찬가지로 서버 이름으로 연결했을 시 연결됨을 확인하였습니다.


미러 서버 인스턴스를 보면 <더 찾아보기...>를 클릭하여 연결할 수 있는 창이 뜨고, 연결할 서버의 IP(미러서버) 주소를 입력한 뒤, SA 계정으로 로그인을 수행하면 됩니다.


포트 및 끝점은 사용자에 의해 변경될 수 있습니다.

만약 포트가 변경되었다면 주 서버와 마찬가지로 "미러링 구축하기 1편의 1.5 방화벽 포트 확인" 및 나중에 연결할 "2.4 미러링 연결 - 파트너 연결" 시 변경된 포트로 적용해야 합니다.


SQL Server 2016의 경우에는 미러링 GUI 설정 방법에 문제가 있기 때문에 T-SQL을 이용하여 연결해줘야 합니다..

SQL Server 2012 에서는 미러링 시작 버튼을 눌렀을 때 정상작동을 확인 했습니다. 

본 예제에서는 SQL Server 2016 에서 진행하기 때문에 T-SQL을 이용하여 미러링 연결을 시도합니다.


SQL Server 2016은 버그가 있기 때문에 T-SQL 연결로 시도해야 하는데

그 연결방법은 3편에서 진행됩니다.

+ Recent posts