Database_이중화를_위한_Log_Shipping.ppt

Download Report

Transcript Database_이중화를_위한_Log_Shipping.ppt

SQL Server Log
Shipping
Jung Suk Han
Technical Account Manager
Premier Team
Microsoft Korea
개요



SQL Server 2000 로그 전달 이해
로그 전달 설정
로그 전달의 관리 및 유지
로그 전달의 이해


로그 전달은 무엇인가?
로그 전달 구성요소




하드웨어 구성요소
소프트웨어 구성요소
로그 전달 작동 방법
클라이언트와 어플리케이션의 역할 변경을
어떻게 하나?
로그 전달은 무엇인가
Database
Primary
Server
Transaction Log 복사
Database
Secondary
Server
로그 전달 구성요소

하드웨어 구성요소



Primary server
Secondary server
Monitoring server
Log Shipping 구성요소

Software 구성요소




Stored procedures
Tables
로그 전달 모니터
작업(Job)
로그 전달 작동 방법
Monitoring Server
Secondary Server(s)
Primary Server
1. Transaction
log backed up
Log
Backup
2. Transaction
log 복사
Logins 전송
3. Transaction log
restored
Log
Backup
클라이언트와 어플리케이션 역할
변경을 어떻게 하나 (1 / 3)

클러스터링 서비스와는 다르게, 다른 서버로의 역할
변경을 최종 사용자들이 완전히 모르게 하기는 힘들다.



다른 서버로 변경을 한다면, 클라이언트 와 어플리케이션은
새로운 서버에 접근하는 방법에 대해 생각해야 한다.
서비스 장애를 큰 중단 없이 진행되도록 해야 한다.
트랜잭션 측면에서는, 다음과 같다.




Primary에서 마지막 트랜잭션이 완료된다.
Primary에서 log 백업을 한다.
Primary로 부터 log 백업을 복사한다.
복사된 log를 secondary에 적용된다.
클라이언트와 어플리케이션 역할
변경을 어떻게 하나 (2 / 3)

로그 전달을 위한 어플리케이션 고려사항




트랜잭션을 새로 일으키는 작업을 하지 말자.
모든 오브젝트(사용자, 작업, 사용자정의 메세지등)가
데이터베이스 내에서 유일하도록 하여 다른
데이터베이스 또는 어플리케이션과 충돌하지 않도록
한다.
가능한 모든 트랜잭션을 작게 하여 로그 전달을
원활히 하도록 하자.
가능한 서비스팩과 연관이 있는 프로그램 코딩을
하지 말자.
클라이언트와 어플리케이션 역할
변경을 어떻게 하나 (3 / 3)

로그 전달을 위한 어플리케이션 고려사항




서버명,인스턴스명,IP주소를 어플리케이션 소스에
포함되지 않도록 한다.
테이블과 저장프로시저에 전체 이름을 사용하자.
가능하다면 코드에서 로직을 재수행 하도록하자.
역할 변경 프로세스동안 트랜잭션을 큐에 넣을 수 있는
미들웨어 도입을 고려하자.
로그 전달 구성


문의 사항
Setup 시 고려사항







Hardware
SQL Server
로그전달의 설치 및 구성
서비스팩과 로그 전달
SQL Server 7.0 부터 SQL Server 2000의 로그전달 구성
로그전달을 통한 고가용성
고가용성의 예
문의사항

비지니스 문의사항





시간당 몇 건의 트랜잭션이 발생하는가?
얼마간의 다운타임 시간이 허용되나?
얼마의 데이터를 잃어도 되나?
프로젝트에 얼마가 할당되어 있나?
기술적 문의사항





네트워크 연결은 어떻게 되어있나?
트랜잭션로그 백업 파일의 사이즈는 얼마인가?
트랜잭션 로그를 복사하는 시간과 복원하는 시간은
얼마나 소요되나?
Secondary의 용량은 얼마나 되나?
Primary로 다시 복귀할 것인가?
하드웨어 고려사항

서버 위치


메모리/프로세서


Secondary의 메모리/프로세서는 primary과 반드시
같아야 한다.
네트워킹



Primary/secondary 반드시 같은 도메인에 있어야 한다.
대역폭
Network Interface card
디스크


트랜잭션로그 백업 위치
디스크 공간
소프트웨어 고려사항

추천


SQL Server 2000 Enterprise Edition
Operating systems:




Windows NT 4.0 Enterprise Edition (Service
Pack 5)
Windows 2000 Advanced Server
Windows 2000 Datacenter Server
사용자 직접

모든 SQL Server 2000 가능
SQL Server 고려사항

복원 모델



Security




Full
Bulk-Logged
윈도우 통합 인증
Primary/secondary는 monitor 서버의 쓰기 이벤트에 접근 가능
Fulltext
여러 곳의 데이터베이스로부터 한대의 secondary로 로그
전달 시


Secondary 용량
어플리케이션 고려 사항
로그 전달 구성을 위한 마법사
사용하기(1/3)


데이터베이스 유지관리마법사를 통하여
초기 설정
직접 초기 백업,복사와 복구를 하도록
한다.


특히 대용량 데이터베이스
데이터베이스 복구는 with WITH
NORECOVERY 또는 WITH STANDBY
옵션으로
로그 전달 구성을 위한 마법사
사용하기(2/3)


백업 디렉토리를 위한 네트워크 공유명이 백업 파일을
저장하는 디렉토리명과 같도록 한다.
각각의 데이터베이스를 위하여 UNC 아래에 서브디렉토리를
생성한다.


백업 파일을 얼마나 오래 동안 유지할 것인가?


관리와 문제해결을 용이하게 한다.
계획을 가지자.
데이터베이스의 사용자 연결을 종료
트랜잭션 로그를 복구시에 배타적인 데이터베이스 접근이
필요하다.

수작업으로는 다음과 같이 한다.
ALTER DATABASE databasename SET SINGLE_USER WITH
termination options (then SET MULTI_USER)

로그 전달 구성을 위한 마법사
사용하기(3/3)

secondary 가 primary가 될 것인가?


트랜잭션 로그 백업 스케쥴


가용성을 높이기 위하여 처리가 가능한 낮은 숫자로
세팅한다.
Copy/Load frequency



Primary Role 허용
가용성을 높이기 위해 낮은 숫자로 세팅
복사 시에 압축이 되지 않는다는 것을 명심하자.
Backup alert threshold

Adjust for large files to avoid false errors
구성 후의 작업

Login(계정)의 전송

데이터베이스와 서버 레벨 로그인 필요



DTS 작업을 생성하고 스케쥴링한다.
BCP를 통하여 syslogins를 백업하는 스케쥴 필요
역할 변경 저장 프로시저를 실행하도록
primary 와 secondary에 Job을 생성한다.

역할 변경 시 에러가 발생하는 것을 방지
사용자 로그 전달

기본단계






초기 백업,복사,복원을 수행한다
트랜잭션 백업을 위한 스케쥴을 생성한다
Secondary에 트랜잭션 로그를 push 및 pull을
하도록 작업을 생성한다
트랜잭션로그를 적용하는 작업을 생성한다
로그인 전송을 한다
별도의 모니터링 방법을 만들자
로그전달을 통한 고가용성


Primary/Secondary를 활용한 고가용성
계획된 다운타임





Primary 에서 주기적인 유지관리계획 수행
어플리케이션 업그레이드
서버 이전/업그레이드
운영 데이터베이스서버를 점검시
SQL Server 7.0 에서 SQL Server
2000으로 업그레이드 시
관리작업을 위한 최선의 실행



역할 변경 수행
로그전달 모니터링
일반적인 문제점 해결방법
역할 변경 수행




역할 변경의 타입
로그전달 역할 변경
역할 변경 고려사항
로그 전달과 복제
역할 변경의 타입

계획된 경우


유지관리를 위한 다운타임 시간
절차:





Primary에서 최종 트랜잭션을 확보
Secondary에 복사
Login,모든 트랜잭션이 적용되었는지 점검
Database online
클라이언트 재접속
역할 변경의 타입

계획되지 않은 경우


장애 발생 시
절차:




Primary에서 최대 로그 확보
Secondary에 최대한 로그 적용
Database online
클라이언트 재접속
클라이언트 재접속


역할 변경 후, 어플리케이션과 클라이언트는
새로운 primary에 접속해야 함
가능한 방법



ODBC DSN
Network Load Balancing
SQL Server 이름 변경 (오직 non-clustered)
예전의 Primary로 전환

예전 primary가 사용가능 할 때 전환할
것인가?



Secondary가 가용한 용량을 가진 한, 예전
primary로 복귀하지 말자. 왜냐하면 새로운
장애가 일어날 수도 있기 때문이다.
꼭 필요하다면, 운영시간이 아닐 때 전환
제일 먼저 예전 primary를 재초기화해야 한다.
로그전달 시 Network Load
Balancing 이용


가상 IP 주소
로그 전달을 위한 NLB세팅
Network Load Balancing 을
통한 역할 변경
Client
VIP
DIP1
DIP1
NLB Cluster
DIP2
DIP2
Primary
SQL Server
Log Shipping
Secondary
SQL Server
포트규칙 구성
요청시 한개의
호스트만 서비스
Primary = 5
Warm standby = 10
Primary = 15
(복구 시)
로그 전달 모니터링 방법





로그 전달 모니터
Job
데이터베이스 유지 관리 계획
테이블 쿼리
이벤트 뷰어
로그전달 모니터 사용
알아야 할 사항





시스템 데이터베이스 백업
서비스팩과 로그 전달
로그 전달 모니터 장애 시 복구
마법사를 이용하여 로그 전달 구성 시 파일
전송은 FTP사용 불가
로그 전달 설치는 스크립트화 될 수 없다.
일반적인 장애 문제





SQL Server Agent가 실행되어야 로그 전달 가능
Error 3101 – 만일 적용되어야 할 트랜잭션 로그가
있다면 역할 변경 실패 Q294397 참조
Error 4306 – 데이터베이스 잘못 복구
Error 4305 – 로그의 순서가 잘못됨
Standard Edition에서 Enterprise Edition으로
후 로그 전달 구성요소가 없으면 Q295306 참조
일반적인 장애 문제





DTS 복사 개체 작업은 트랜잭션 백업을
불가능하게 한다.
Secondary에 SQL Server Service Pack 1
적용 시 실패
데이터베이스 명이 다르면 역할 변경을 할
수가 없다.
Database in STANDBY 마법사에서
NORECOVERY 옵션 선택 시 STANDBY
데이터베이스로 탑재 Q301049
로그전달 모니터가 업데이트 되지 않는다.
Q292586참조
로그전달 기술과 특징
High-Availability Feature
Log Shipping
Standby type
Warm
Failure detection
No, but with NLB …
Automatic failover
No, but with NLB …
Protects against failed
server process
Yes, but …
Protects against failed disk
Yes, but …
Metadata support
Some system, all user
schema and data for select
databases
Transactionally consistent
Yes
Transactionally current
No, since last transactionlog backup
Performance impact
File copying on primary
Time to failover
Seconds, more to recover
more thoroughly
Locations
Dispersed
Complexity
Some
Multiple standby and/or
backup nodes
32 with NLB, otherwise no
limit
Standby available for
reporting, etc.
Yes. Read-only access
when logs are not being
© 2001 Microsoft Corporation. All rights reserved.