글
데이터베이스 미러링
구성에 필요한 서버들
1) 주(Principal) 서버
주 서버가 장애가 발생했을 경우 주 서버의 역할을 담당할 서버, 즉 미러 서버를 두기 위해 미러링을 한다.
동기화 과정
처음 동기화 : 주 서버의 데이터베이스를 미러 서버에 백업을 받아 복원하는 과정으로 이루어진다
그 이후 : 이후의 데이터 변경은 트랜잭션 로그를 미러 서버로 전달해 복원하는 과정으로 동기화가 유지된다
2) 미러(Mirror) 서버
주 서버 데이터베이스와 동기화된 데이터베이스 복사본을 갖는다
평상시에는 미러 서버의 데이터베이스에 사용자가 접근 할 수 없다
3) 모니터링 서버
자동 복구 모드를 사용하기 위해 필요하다
데이터베이스 미러링 구성
사전준비
1) 로그인 계정과 끝점 생성
미러링에 사용될 끝점(End Point)를 각 서버에 생성 후 이 끝점에 대한 연결 권한이 미러링에 포함된 모든 서버의 SQL Server 서비스 계정에게 주어져야 한다. 마법사를 사용하면 쉽다
2) 데이터베이스 복구 모델 변경
복구모델 = 전체(Full)
3) 데이터베이스 백업과 복원
주 서버에서 전체 백업과 로그 백업을 받아 미러 서버에 마지막 NORECOVERY 옵션을 사용해 복원해서 데이터베이스를 복구 중 상태로 두어야 한다
DB를 새로 구축하는 단계에서 이중화 구성을 하는 거라면 DB구축을 스크립트로 2대 다 하고 주 서버에서 로그백업만 받아서 미러 서버로 NORECOVERY로 복구하여 복원 중... 상태로 놓으려고 했지만, 전체백업을 하지 않으면 로그백업이 안되기 때문에 이 방법은 나만의 상상으로 끝나게 되었다.
4) 서버 단위의 자원 복사
미러링은 DB만 미러링이 되기 때문에 그 이외의 자원은 별도로 복사해야 한다
EX> 로그인 계정
본격적인 구성
1) 주 서버의 데이터베이스 복구 모델 → 전체(Full) 로 변경
ALTER DATABASE AdventureWorks2008 SET RECOVERY FULL
2) 주 서버의 원본 데이터베이스 백업
-- 전체 백업 BACKUP DATABASE AdventureWorks2008 TO DISK = 'D:\BACKUP\AdventureWorks2008.bak' WITH INIT -- 백업할때마다 덮어쓰는 옵션 GO -- 로그 백업 BACKUP LOG AdventureWorks2008 TO DISK = 'D:\BACKUP\AdventureWorks2008_Log.bak' WITH INIT GO
3) 데이터베이스 복원 (미러 서버에서)
USE Master GO RESTORE DATABASE AdventureWorks2008 FROM DISK = 'D:\BACKUP\AdventureWorks2008.bak' WITH MOVE 'AdventureWorks2008_DATA' TO 'D:\SmartData\AdventureWorks2008.mdf', -- 본인은 한대의 컴퓨터에서 진행해서 경로가 겹쳐서 이동시킴 MOVE 'AdventureWorks2008_Log' TO 'D:\SmartLog\AdventureWorks2008_Log.ldf', NORECOVERY -- 복원 중이 되도록 하는 옵션 지정 GO RESTORE LOG AdventureWorks2008 FROM DISK = 'D:\BACKUP\AdventureWorks2008_Log.bak' WITH NORECOVERY -- 복원 중이 되도록 하는 옵션 지정 GO
이 과정을 마치면 본인계정\SMART 인스턴스에서 (복원 중...)인 상태의 미러링 된 DB가 보여진다.
4) 데이터베이스 미러링 구성
① 미러링 구성을 위해 미러링에 포함된 주 서버, 미러 서버, 모니터 서버에 끝점(End Point)을 만들고, 이들 SQL Servier의 서비스 계정(?)이 이 끝점을 사용할 수 있도록 권한을 설정해 주어야 한다.
주 서버의 AdventureWorks2008를 우클릭 후 [태스크] - [미러] 를 선택 - [보안구성] 선택
② 안내 페이지가 나오는데 다음
③ 미러링 모니터 서버 포함 여부 선택(자신에게 맞게 사용)
자동 장애조치를 원하는 경우에는 모니터 서버를 포함시켜야 한다. 예를 누르자. 당장 안써도 나중에 추가 가능.
④ 구성할 서버 선택
필요한 경우 미러링 모니터에 서버에 대한 구성은 이후에 추가로 마법사나 쿼리문을 사용해 진행할 수 도 있다.
본인은 미러링 모니터 서버 인스턴스를 체크 해제(인스턴스가 2개뿐이라서ㅋ)
⑤ 주 서버 인스턴스 설정
포트가 기본적으로 5022 / 끝점 이름이 기본적으로 Mirroring [다음]
끝점으로 보내는 데이터 암호화는 체크 되어 있는 채로
⑥ 미러 서버 인스턴스 설정
대역\SMART 인스턴스로 설정하고 [연결] 클릭하여 연결한다.
포트 5023 (한대의 컴퓨터로 연습하는 경우 주 서버와 다르게 설정 / 실제로는 2대이상의 서버 이기 때문에 같게 해도 상관없다)
끝점이름 Mirroring
⑦ 모니터링 서버 인스턴스 설정
한 컴퓨터로 연습할 경우 포트만 1 높여준다
⑧ 서비스 계정 지정
각 서버의 SQL Server 서비스 계정은 미러링에 포함된 모든 서버의 미러링 관련 끝점을 사용할 수 있어야 한다. 즉, 주 서버의 SQL Server 서비스 계정이 미러 서버와 모니터 서버의 로그인 계정으로 등록되고 이들 서버의 끝점에 대한 사용 권한을 가져야 한다.
도메인 계정 : [도메인\서비스계정] 의 형태로
로컬 계정 : [서버이름\서비스계정] 의 형태로
대역에서는 대역내에서 쓰여지는 서비스계정이 있지만, 대역이 아닌 곳에서 서비스 계정을 설정하는 방법은 좀 다르다.
⑨ 마법사 완료
[마침]
성공 성공 뜨면 [닫기]
⑩ 미러링 시작 여부 확인
[미러링 시작]
현재 미러링을 구성하는 환경이 도메인이 아니면 정규화된 도메인 이름이 없다고 나온다. 그래도 [예] 버튼을 누르면 시작된다
⑪ 미러링 구성 완료
설정이 성공적으로 끝나면 데이터베이스 속성 - 미러링 - 아래쪽에 동기화됨: 데이터베이스가 완전히 동기화되었습니다. 라고 나온다
⑫ 데이터베이스 상태 확인
개체 탐색기에서
주 서버 : (주 서버, 동기화됨)
미러 서버 : (미러 서버, 동기화 됨 / 복원 중...)
이라고 뜬다
여기도 봅시다 : http://blog.daum.net/partsofmemory/26
'MSSQL 2008 > 운영' 카테고리의 다른 글
데이터베이스 파일수정, 파일추가, 파일삭제, 파일확인 (0) | 2014.02.12 |
---|