Core_Skill_for_DBA

Download Report

Transcript Core_Skill_for_DBA

DBA를 위한 SQL 핵심 기술
Microsoft Technet Advisor Group
MCSE/MCDBA/MCT
유 형 욱 ([email protected])
순서

Session 1 : DB 유지 관리를 위한 핵심 기술


14:00 ~ 15:30 (90 min.)
Session 2 : DB의 고가용성을 위한 핵심 기술

15:50 ~ 17:20 (90 min.)
Session 1

DBA’s Role?

SQL 백업과 복원

로그 삭제와 성능

저장 프로시저의 Recompile & Performance
Session 1

DBA’s Role?

SQL 백업과 복원

로그 삭제와 성능

저장 프로시저의 Recompile & Performance
DBA’s Role?

SQL Server Installation



운영체제의 필수요소만 사용
SQL Server without IIS, DHCP……
SQL Server Security



SQL 인증에 대한 고려
로그인, 사용자를 사용한 보안 향상
디폴트 포트를 사용하지 말 것




TCP 1433 (디폴트)
UDP 1434 (변경 불가)
Firewall 구성을 통한 보안 향상
복잡한 패스워드 사용
DBA’s Role?

SQL Server Management



Backup & Restore
최신 SP 및 Patch 적용
DB Size 모니터링


데이터베이스 및 로그의 Size 감시
색인 재생성 (Index Rebuild) – fill factor
Session 1

DBA’s Role?

SQL 백업과 복원

로그 삭제와 성능

저장 프로시저의 Recompile & Performance
SQL 백업과 복원

SQL Server 2000 백업의 특징


암호설정
트랜잭션을 존중하지 않는 백업


But, 진행중인 트랜잭션의 일부 로그를 함께 백업
복구모델 (Recovery Model)



전체 복구 모델 (Full)
대량 로그 복구 모델 (Bulk Logged)
단순 모델 (Simple)
SQL 백업과 복원

백업의 유형

전체 백업



한 번은 반드시 수행
전체 데이터페이지와 일부 로그가 백업
트랜잭션 로그 백업



로그 정보를 백업
백업 수행시 로그는 삭제됨
백업없이 삭제만 하고 싶다면
with no_log | truncate_only
SQL 백업과 복원

백업의 유형

차등 백업


마지막 전체 백업 이후 변경된 모든 데이터페이지 백업
파일/파일 그룹 백업

백업과 복원시 유리
SQL 백업과 복원

복원 옵션





RESTORE FILELISTONLY
RESTORE HEADERONLY
RESTORE LABELONLY
RESTORE VERIFY ONLY
STOPAT을 사용한 특정 시점으로의 복원

Stopat | Stopatmark | Stopbeforemark
SQL 백업과 복원

대기 중인 서버 (Standby Server)



저렴한 MSCS
로그 적재 마법사 구현 (SQL Enterprise Edt.)
데이터 파일로부터 복원



sp_attach_db
sp_attach_single_file_db
sp_detach_db
Session 1

DBA’s Role?

SQL 백업과 복원

로그 삭제와 성능

저장 프로시저의 Recompile & Performance
로그 삭제와 성능

관리자는 주기적으로 로그를 비워주어야 한다.

Log Size 확인



로그 삭제



DBCC SQLPERF (LOGSPACE)
EM에서의 로그 정보 확인
BACKUP LOG database to disk = ‘location’ with
option, option, …
BACKUP LOG database with no_log | truncate_only
로그 삭제시는 해당 로그의 백업 유무를 반드시 확인

복구 모델에 따른 점검
Session 1

DBA’s Role?

SQL 백업과 복원

로그 삭제와 성능

저장 프로시저의 Recompile & Performance
저장 프로시저의
Recompile & Performance

Stored Procedure 는 SQL 성능 향상에
긍적적 영향

Create Proc | Alter Proc | Drop Proc

저장 프로시저는 반복적으로 수행될 때 캐시에
저장된 실행 계획을 그대로 사용 (Recompile
하지 않음)
저장 프로시저의
Recompile & Performance

저장 프로시저를 이용한 보안 관리

매개변수 사용 가능

저장 프로시저의 종류



시스템 저장 프로시저 (sp_help,
sp_addlinkedserver…)
사용자 저장 프로시저 (Technet_1….)
확장 저장 프로시저 (xp_cmdshell….)
저장 프로시저의
Recompile & Performance

With Recompile 과 Performance




저장 프로시저는 반복적으로 수행시 캐시 정보를
사용
테이블에 NC Index가 구성되어 있고 범위안에
속해 있는 데이터가 유동적으로 변할 때
ID < 2, ID < 100, ID < 1000 보다 작은 데이터를
가져와라?
NC Index는 범위를 주고 찾는 작업에 불리
저장 프로시저의
Recompile & Performance

With Recompile 사용 방법

CREATE PROC p_test
WITH RECOMPILE
AS…

EXEC p_test WITH RECOMPILE
Session 1 Summary

DBA’s Role?




SQL 백업과 복원





백업 및 복원 스케쥴에 따라 중요한 데이터에 대해 주기적으로 백업
장애 발생시에 신속하게 상황을 판단
복구 모델에 따른 복원 전략 설정
한번쯤은 장애 Simulation 수행
로그 삭제와 성능



주기적인 작업에 대해 매뉴얼을 만든다
정보에 민감!!
최신 SP 및 Patch 적용
로그의 범람을 주의!
경고(Alerts)를 사용하여 로그 범람을 모니터링
저장 프로시저의 Recompile & Performance


저장 프로시저의 이점
예외적인 경우에서 재 컴파일과 성능 사항을 고려
Session 2

자동화 작업

경고 (Alerts)

SQL 유지관리 마법사

DTS Designer를 활용한 데이터 전송

복제 (Replication)
Session 2

자동화 작업

경고 (Alerts)

SQL 유지관리 마법사

DTS Designer를 활용한 데이터 전송

복제 (Replication)
자동화 작업

자동화는 msdb를 사용한다.

자동화의 필수 : SQLAgent 서비스


해당 서비스를 시작하는 계정은 반드시
관리권한을 갖고 있어야 함
Exchange Server 를 통한 상호 연동


경고 메일
성능 메일
자동화 작업

자동화를 수행하기 위한 작업(Tasks)



자동화 작업에 따른 Notification



단계 설정 (Step)
스케쥴링 (Schedule)
운영자 등록 필요
메일, Net Send, 호출기 등
다중 서버 작업

ex) 10대의 SQL 서버에서 Master DB 백업을 수행하려고
한다.
자동화 작업

백업 자동화 수행


로그 삭제 자동화 수행


백업 작업(Tasks)를 만들어서 스케쥴링
특정 값을 초과했을 시 삭제
Web 데이터의 Publishing

데이터가 변경될 때 업데이트 가능

ex) 은행의 환율 데이터
Session 2

자동화 작업

경고 (Alerts)

SQL 유지관리 마법사

DTS Designer를 활용한 데이터 전송

복제 (Replication)
경고 (Alerts)

Error message 경고


특정 데이터가 삭제 되었을 때
Performance 경고

‘로그가 가득찼습니다!’
Session 2

자동화 작업

경고 (Alerts)

SQL 유지관리 마법사

DTS Designer를 활용한 데이터 전송

복제 (Replication)
SQL 유지관리 마법사

데이터베이스 관리를 효율적으로!

주기적, 반복적인 작업들을 스케쥴링!

관리자가 주기적으로 수행하는 일반적 작업





백업
인덱스 재생성
데이터베이스 공간 증가 및 축소
로그파일 삭제
오래된 파일 삭제
Session 2

자동화 작업

경고 (Alerts)

SQL 유지관리 마법사

DTS Designer를 활용한 데이터 전송

복제 (Replication)
DTS Designer를 활용한 데이터 전송

DTS (Data Transformation Service)


데이터 전송을 위해 사용할 수 있는 편리한 도구
DTS 구현 방식





가져오기 / 내보내기 마법사 사용
DTS Transfer
DTS Designer
DTS Bulk Insert
Bulk Copy (CUI)
DTS Designer를 활용한 데이터 전송

DTS는 내부적으로 패키지를 만든다.





SQL Server (msdb)
Microsoft Repository (메타데이터)
COM
Visual Basic
DTS Designer


패키지를 임의대로 구성하여 활용
ex) SQL 데이터를 정렬해서 다른 DB로 넘기고 그
후에 ……
Session 2

자동화 작업

경고 (Alerts)

SQL 유지관리 마법사

DTS Designer를 활용한 데이터 전송

복제 (Replication)
복제 (Replication)

다른 서버에게 데이터를 복제

복제의 종류


2 Phase Commit (Distributed Transaction)
트랜잭션 복제


스냅샷 복제



변경된 데이터만 상대방에게 전송
전체 데이터 페이지를 복제
모든 복제의 초기 동기화 작업에는 스냅샷 복제 사용
병합 복제

양쪽 서버의 데이터를 서로 합쳐서 복제

But, 데이터 충돌의 위험 (rowguid, uniqueidentifier)
복제 (Replication)

복제의 구성 요소

게시자


배포자


실제 복제 데이터를 배포하는 개체
구독자


Article을 사용해 복제의 데이터를 만드는 개체
배포자로부터 복제를 받아오는 개체
Updating Subscriber



데이터를 받는 쪽에서도 수정 가능
이때는 분산 트랜잭션이 사용
DTC 서비스
복제 (Replication)

복제의 에이전트

스냅샷 에이전트


로그 판독기 에이전트


로그 판독기 에이전트가 읽어온 로그를 실제로 배포
병합 에이전트


트랜잭션 복제에서 변경된 로그를 판독
배포 에이전트


데이터를 동기화!
병합 복제에서 게시자, 구독자의 데이터 변경을
모니터링
기타 에이전트
Session 2 Summary

자동화 작업



경고 (Alerts)




여러 작업을 동시에 만들어줄 수 있는 기능
복잡한 과정을 하나의 인터페이스에서 구성할 수 있으나 때로는 관리자가 수동으로
작업을 해줘야 함
DTS Designer를 활용한 데이터 전송


시스템 감시를 보다 효율적으로!
메일 시스템과의 연동
SQL 유지관리 마법사


관리자가 해야하는 작업들을 스케쥴링
스케쥴된 작업들의 내용을 주기적으로 점검
Designer를 이용한 패키지 구성
복제 (Replication)


각 복제 유형의 차이점
사내 DB의 특성을 고려한 복제 구성
Reference Sites

Technet Web site at
http://www.microsoft.com/korea/technet

Microsoft SQL Home at
http://www.microsoft.com/korea/sql

Microsoft SQL Newsgroups at
http://support.microsoft.com/newsgroups

Many scripts at
http://www.swynk.com/
감사합니다.