SQL Server™ 2000: DBA의 역할과 책임 하 성희.

Slides:



Advertisements
Similar presentations
하나포스닷컴에서 SQL Server 의 역할 서명옥
Advertisements

CUBRID 소개 (Object 개념) 서비스 사업부 / 기술지원팀. 목차 구조 일반적 특징 객체지향 특징 ORDB 개념을 이용한 스키마 ORDB 개념을 이용한 질의.
SQL Server 2000 트랜잭션과 잠금 데브피아 세미나
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
강사: 이종인 다우 교육원 전임강사 / 온디멘드 수석 컨설턴트 / FMG 수석 컨설턴트
소리가 작으면 이어폰 사용 권장!.
김 상 국, 김 기 훈 한남대학교 컴퓨터공학과 데이터베이스 실험실
DRIMS-Cloud 소개.
SQL Server 개요 SQL Server의 역사를 파악한다. SQL Server 2008의 특징을 이해한다.
데이터베이스 시스템.
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
관계 대수와 SQL.
Database & Internet Computing Laboratory 한 양 대 학 교
C#에서 데이터베이스 연동 방법.
제 5 장 인덱스 생성 및 관리.
Section II. 웹 취약점의 공격과 방어 3. 웹 취약점 분류 4. SQL Injection 5. XSS
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
Chapter 05 SQL 인젝션 공격.
JDBC 프로그래밍 이수지 이동주 1.
You YoungSEok 고급 SQL You YoungSEok
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
17장. 데이터를 안전하게 보관하자. (백업, 복원, 스냅숏)
10장. 데이터베이스 보안과 권한 관리 데이터베이스 보안과 권한 관리
뇌를 자극하는 SQL Server 장. 서버 자동화.
SQL Server 2005 데이터베이스 가용성 강화 측면에서 본 데이터베이스 미러링과 스냅샷, 복제
데이터베이스 담당교수 신정식 Chapter 4 SQL(1).
Toad for Oracle 설치 방법.
Toad for SQL Server 제품 소개서 – 프로넷소프트㈜.
데이터베이스 와 JDBC 1.데이터베이스와 데이터베이스 관리 시스템은? 2.데이터베이스 장점?
Chapter 01 데이터베이스 시스템.
11장. 데이터베이스 서버 구축과 운영.
오라클 데이터베이스 성능 튜닝.
2007. Database Term Project Team 2 윤형석, 김희용, 최현대 우경남, 이상제
기초 T-SQL.
SQL Server 2000 보안 정원혁 이사 DB 사업부 필라넷 [제목과 문서속성 값을 입력해 주세요.
트랜잭션과 잠금 트랜잭션 처리 메커니즘을 자세히 이해한다. 트랜잭션의 종류를 파악한다.
4.2 SQL 개요 SQL 개요 SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로, 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 1986년에 ANSI(미국 표준 기구)에서 SQL.
SQL Server 2000 세미나 Profiler를 이용한 문제해결
차례 튜닝 - 프로필러를 이용한 튜닝 프로필러 친해지기 프로필러 결과 테이블로 만들기 프로필러 결과 분석하기
ASP를 이용한 전자상거래 사이트 구축 지도교수님: 이형원 컴퓨터응용과학부 박정선.
1장. 데이터베이스 시스템 컴퓨터를 사용하여 정보를 수집하고 분석하는데 데이터베이스 기술이 활용되고 있음
시스템 보안 정보 보안 개론 9장.
YOU Youngseok 트랜잭션(Transaction) YOU Youngseok
01 데이터베이스 개론 데이터베이스의 등장 배경 데이터베이스의 발전 과정 데이터베이스의 정의 데이터베이스의 특징
목차 회사소개 회사현황 시스템 구성도 SQL Server 사용 로드맵 프로젝트 개요 DB 마이그레이션
강사: 이종인 다우 교육원 전임강사 / 온디멘드 수석 컨설턴트 / FMG 수석 컨설턴트
SQL Server 7.0 세미나 (Performance Tuning)
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
SQL (structured query language)
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
고급 T-SQL.
CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
정보처리기사 8조 신원철 양진원 유민호 이기목 김다연 윤현경 임수빈 조현진.
하성희 복제 구축 예제 하성희
SQL Query in the SSMS : DB, Table
JSP 게시판 구현.
View(뷰) 1 가상 테이블(Virtual Relation)
하성희 스냅샷 복제 하성희
Part 5. MS-SQL Server Basic
제11회 SQL 고급과정 세미나 SQL Server 보안 핵심만 알면 확 달라진다
3장. SQL Server 2008전체 운영 실습 및 DB와 프로그램의 연동
15 사용자 권한 제어 데이터베이스 보안 권한 롤 동의어.
MS-SQL7.0 Implementation 강의 노트
06. SQL 명지대학교 ICT 융합대학 김정호.
테이블 관리 테이블 생성,수정,삭제 데이터 입력 수정, 삭제 2010학년도 2학기.
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
데이터 베이스의 내부 구조.
Stored program 장종원
제 5 장 MariaDB인덱스 생성 및 관리.
강사: 이종인 다우 교육원 전임강사 / 온디멘드 수석 컨설턴트 / FMG 수석 컨설턴트
Presentation transcript:

SQL Server™ 2000: DBA의 역할과 책임 하 성희

DBA의 임무와 책임 설치 및 환경 설정 보안 운영 업무 적절한 서비스 레벨 제공 시스템 가동 시간 극대화 문서화 작업 설계 및 개발 참여 또는 지원 기타

설치 및 환경 설정 DBA가 충분히 참여 문서화 작업 및 활용 목표 : 시스템을 SQL Server에 최적으로 구성 재작업 시 시간과 노력 절감 실수 최소화 일관된 환경 구성 (다중 서버 환경)

설치 DBA가 하드웨어, SQL Server 이외의 소프트웨어 설치에도 참여 설치 전 계획 수립 테스트용 시스템에 사전 설치 테스트 설치 후 설치 과정 문서화

환경 설정 하드웨어 예: RAID 소프트웨어 네트워크 구성 (Configuration) 관리

구성(Configuration) 관리 설정 방법 옵션 계층 설정 내용 및 변경 이력 문서화 요망 sp_configure / RECONFIGURE 엔터프라이즈 관리자 옵션 계층 서버 옵션 < 데이터베이스 옵션 < SET 옵션 < 참고(hint) 설정 내용 및 변경 이력 문서화 요망 하드웨어를 충분히 활용하도록 설정

보안 사용자 관리 시스템 감사 (Audit) 네트워크

사용자 관리 사용자 로그인 관리 데이터베이스 사용자 관리 권한(Permission) 관리 역할(Role) 관리

(데이터베이스 내의 모든 작업에 대해 권한 검증) SQL Server 보안 모델 SQL Server 컴퓨터에 연결 SQL Server에게 로그인 인증 요청 SQL Server에 연결 원하는 데이터베이스로 연결 및 액세스 인가 데이터베이스 컨텍스트 설정 원하는 작업 수행 작업 권한 검증 (데이터베이스 내의 모든 작업에 대해 권한 검증)

사용자 로그인 관리 인증 모드 SQL Server 로그인 등록 Windows 통합 인증 / 혼합 모드 인증 엔터프라이즈 관리자 : [SQL Server 속성(구성)]  [보안] 탭 SQL Server 로그인 등록 sp_addlogin / sp_grantlogin 엔터프라이즈 관리자 : [보안]  [로그인] BUILTIN\Administrators 그룹의 구성원인 Windows NT 사용자는 자동으로 sysadmin 서버 역할의 구성원이 됨

사용자 로그인 관리 로그인 삭제 데이터베이스 사용자 삭제 후 작업 sp_droplogin sp_revokelogin : Windows NT 사용자/그룹 로그인 제거 데이터베이스 사용자 삭제 후 작업 만들 때와 역순

데이터베이스 사용자 관리 SQL Server 로그인 등록 후 작업 등록 방법 sp_adduser / sp_grantdbaccess 엔터프라이즈 관리자 : 데이터베이스  [사용자]

권한 관리 - + GRANT - 권한 부여 REVOKE - GRANT 또는 DENY 취소 DENY - 권한 부여 금지 REVOKE [DENY] REVOKE - + DENY GRANT DENY

역할 관리 역할 로그인을 고정 서버 역할의 구성원으로 등록 : sp_addsrvrolemember 고정 서버 역할 / 고정 데이터베이스 역할 사용자 정의 데이터베이스 역할 로그인을 고정 서버 역할의 구성원으로 등록 : sp_addsrvrolemember 데이터베이스 사용자를 고정 데이터베이스 역할의 구성원으로 등록 : sp_addrolemember 역할을 만들고, 역할에 권한을 설정하고, 역할에 사용자를 추가

운영 서비스 관리 백업과 복원 사용자 및 권한 관리 시스템 데이터베이스 관리 사용자 데이터베이스 생성 및 관리 데이터베이스 여유 공간 점검 데이터베이스 일관성 (Consistency) 점검 인덱스 관리 통계 관리 점검 및 모니터링 장애 대처

서비스 관리 서비스 시작 시작 옵션 지정 서비스 중지

서비스 시작 필요한 서비스 시작 서비스 로그온 계정 적절하게 설정 시작 유형 설정 (필요한 경우) SQL Server SQL Server Agent Distributed Transaction Coordinator Microsoft Search Microsoft Message Queuing 서비스 로그온 계정 적절하게 설정 시작 유형 설정 (필요한 경우)

시작 옵션 지정 서비스 시작 매개 변수 설정 -m : 단일 사용자 모드 -Ttrace# : 추적 플래그 지정 엔터프라이즈 관리자 : [SQL Server 속성(구성)]  [일반] 탭  [시작 매개 변수] -m : 단일 사용자 모드 참고 : ALTER DATABASE <DB명> SET SINGLE_USER WITH ROLLBACK -Ttrace# : 추적 플래그 지정 예 : -T1204, -T3605

서비스 중지 중지 방법 일시 중지  중지 SHUTDOWN SQL Server 엔터프라이즈 관리자 쿼리 분석기 또는 osql 유틸리티 사용 자동 복구 작업량 (Automatic recovery) 최소화 SQL Server 엔터프라이즈 관리자 SQL Server 서비스 관리자 관리 도구의 [서비스] net stop mssqlserver 일시 중지  중지 SHUTDOWN 제외

백업과 복원 백업 복원 * 백업과 복원은 두 번째 세션에서 다루어지므로 세부 내용 생략 * 적절한 백업 전략 수립 주기적인 백업 체계 수립 주기적인 백업본 원복 테스트 복원 장애 발생 시 복원 시나리오 수립 및 테스트 * 백업과 복원은 두 번째 세션에서 다루어지므로 세부 내용 생략 *

넓은 의미의 백업 데이터베이스 백업 로그 백업 데이터 백업 (텍스트 파일) 스크립트 백업 데이터베이스 스크립트 백업 작업(Job) 스크립트 백업 복제 스크립트 백업

데이터베이스 스크립트 백업 주기적으로 데이터베이스 스크립트 저장 작업 방법 엔터프라이즈 관리자에서 [데이터베이스]  데이터베이스 선택  [도구]  [SQL 스크립트 생성]

작업(Job) 스크립트 백업 작업 스크립트 파일로 받아 내기 작업 목록 파일로 받아 내기 msdb 백업 [관리]  [SQL Server 에이전트]  [작업]  작업 선택  [모든 작업]  [SQL 스크립트 생성] 작업 목록 파일로 받아 내기 [관리]  [SQL Server 에이전트]  [작업]  [목록 내보내기] 파일 형식 지정 가능 msdb 백업

시스템 데이터베이스 관리 시스템 데이터베이스 주기적으로 백업 tempdb 크기 확장 / tempdb 이동 master, tempdb, model, msdb 주기적으로 백업 master msdb model (수정한 경우) disribution (서버를 복제 배포자로 구성한 경우) tempdb 크기 확장 / tempdb 이동

사용자 데이터베이스 생성 및 관리 CREATE DATABASE ALTER DATABASE DROP DATABASE 충분한 공간 할당 최대 크기 지정 ALTER DATABASE 복구 모델 변경 공간 추가 및 제거 크기, 최대 크기, 증가량 변경 등등등 DROP DATABASE

데이터베이스 축소 축소 방법 트랜잭션 로그 축소 DBCC SHRINKDATABASE DBCC SHRINKFILE 데이터베이스 옵션 ‘autoshrink’ 을 true로 설정 트랜잭션 로그 축소 로그 파일 크기가 커진 경우 로그 백업 또는 삭제  DBCC SHRINKFILE

데이터베이스 이동 이동 방법 테스트 환경 구축 서버 이전 sp_attach_db & sp_detach_db BACKUP & RECOVERY 로그 전달 (Log-shipping) 테스트 환경 구축 서버 이전

데이터베이스 여유 공간 점검 주기적으로 DB별로 free space를 점검하여 충분한 space 미리 확보 성능 측면 & 장애 예방 측면 sp_spaceused sysindexes 테이블의 부정확성 정정 @updateusage = 'TRUE' DBCC UPDATEUSAGE

데이터베이스 일관성 점검 DBCC CHECKDB DBCC CHECKTABLE 지정한 데이터베이스 내 모든 오브젝트들의 할당과 구조적 무결성 검사 DBCC CHECKTABLE 테이블이나 인덱스된 뷰에 대하여 데이터, 인덱스, text, ntext, image 페이지의 무결성 검사

DBCC CHECKDB - 점검 데이터베이스 무결성 검사 유의 사항 사용 시 권장 사항 테이블 검사 중 DDL 문 블로킹 발생 시스템 사용이 적을 때 실행 디스크 백업 등의 다른 디스크 I/O를 수행하지 않아야 함 수행에 필요한 tempdb 공간 확인 ESTIMATEONLY 옵션

DBCC CHECKDB – 오류 복구 오류 복구 작업 방법 REPAIR_ALLOW_DATA_LOSS REPAIR_FAST REPAIR_REBUILD 작업 방법 EXEC sp_dboption ‘<DB명>', 'single', true DBCC CHECKDB (‘<DB명>', ‘<복구 옵션>')

인덱스 관리 인덱스 만들기 인덱스 삭제 인덱스 조각화 제거

인덱스 만들기 효율적인 인덱스 디자인 쿼리를 충분히 분석 인덱스 튜닝 마법사 활용 시스템을 사용하는 동안 지속적인 인덱스 관리 성능에 필수 쿼리를 충분히 분석 인덱스 튜닝 마법사 활용 시스템을 사용하는 동안 지속적인 인덱스 관리 인덱스 별로 적절한 fillfactor 설정 CREATE INDEX CREATE TABLE / ALTER TABLE (primary key, unique 제약 조건)

인덱스 만들기 tempdb 선택적 사용 복구 모델 내림차순 지원 SORT_IN_TEMPDB 대량 로그 복구 (Bulk_Logged) 사용 고려 내림차순 지원 SELECT col1, col2 FROM t … ORDER BY col1 ASC, col2 DESC CREATE INDEX Idx1 on t (col1 ASC, col2 DESC)

CREATE INDEX가 쿼리처럼 실행됨 예 테이블 T에 인덱스 i1 on (a,b,c) 이 존재 CREATE INDEX i2 on T (b,c)  전체 테이블 대신 인덱스 i1 을 스캔 CREATE INDEX i3 on T (a,b)  인덱스 i1 을 스캔 (정렬 작업은 수행되지 않음)  인덱스 생성 순서 결정 시 고려

인덱스 삭제 불필요한 인덱스 삭제 DROP INDEX ALTER TABLE (primary key, unique 제약 조건)

인덱스 조각화 제거 목적 : 성능 향상 조각화 상태 확인 인덱스 조각 모으기 인덱스 재구성 분석 후 재구성 여부 결정 인덱스 조각 모으기 DBCC INDEXDEFRAG 인덱스 재구성 DBCC DBREINDEX 클러스터된 인덱스 삭제 후 다시 생성 CREATE INDEX … DROP_EXISTING

조각화 상태 확인 DBCC SHOWCONTIG 테이블의 데이터와 인덱스 조각화 정보 제공 INSERT, UPDATE, DELETE 시 조각화 발생

인덱스 조각 모으기 DBCC INDEXDEFRAG 온라인 인덱스 재구성  명령 실행 중에도 인덱스 사용 가능 성능 영향 적음 최소의 데이터 공간 사용 중지 가능 및 재시작 가능 재구성보다 느림 로그 백업이 커짐 조각화가 완전하게 제거되지 않음

온라인 인덱스 재구성 DBCC INDEXDEFRAG 인덱스의 잎 레벨(leaf level) 순서 재정렬 Fillfactor 재설정 페이지들은 작업전과 동일한 파일에 남아 있음 1 2 3 5 4 6 7 60%

인덱스 재구성 DBCC DBREINDEX 블로킹 유발  가능한 한 서비스 중단 후 수행 제약 조건 삭제하고 다시 만들 필요 없음 DBCC DBREINDEX (‘<테이블명>’,’’,<fillfactor>) 테이블의 모든 인덱스를 다시 작성 DBCC DBREINDEX (‘<테이블명>’,’<인덱스명>’,<fillfactor>) 테이블의 해당 인덱스를 다시 작성

통계 (Statistics) 관리 통계 만들기 통계 조회 통계 갱신

통계 만들기 인덱스가 있는 컬럼에는 통계가 자동으로 만들어짐 데이터베이스 옵션 ‘auto create statistics’가 true  인덱스 없는 컬럼이 조건절이나 조인에 사용되면 자동으로 통계 만들어짐 수동으로 통계 만들기 CREATE STATISTICS

통계 조회 sp_helpstats DBCC SHOW_STATISTICS STATS_DATE

통계 갱신 UPDATE STATISTICS sp_updatestats 데이터베이스 옵션 ‘auto update statistics’ 데이터가 많이 추가되거나 변경되거나 제거되는 경우  통계 갱신 쿼리 계획이 부적절한 경우 통계에 문제가 있을 가능성 있음  통계 갱신

점검 및 모니터링 SQL Server 오류 로그 프로세스 성능 모니터링

SQL Server 오류 로그 주기적으로 errorlog 파일 점검 요망 확인 방법 xp_readerrorlog 사용 EXEC master..xp_readerrorlog EXEC master..xp_readerrorlog 3 엔터프라이즈 관리자 [관리]  [SQL Server 로그] 텍스트 에디터 Program Files\Microsoft SQL Server \Mssql\Log\Errorlog

오류 로그 구성 관리 오류 로그 파일 수 변경 오류 로그 파일 Cycle 엔터프라이즈 관리자 : [관리]  [SQL Server 로그]  [구성] 레지스트리 키 : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\NumErrorLogs 오류 로그 파일 Cycle sp_cycle_errorlog / DBCC ERRORLOG AV 발생 등으로 인해 파일 크기가 비정상적으로 커진 경우 수행

프로세스 sp_who sp_lock DBCC INPUTBUFFER DBCC OPENTRAN SQL Server 프로세스에 대한 정보 제공 sp_lock 잠금 관련 정보 제공 DBCC INPUTBUFFER DBCC INPUTBUFFER (<spid>) 클라이언트에서 마지막으로 보낸 명령문 확인 DBCC OPENTRAN DBCC OPENTRAN (‘<DB명>’)

프로세스 강제 종료 - KILL 강제 종료 대상 KILL 권한 Processadmin 역할에 등록 예 운영에 지장을 주는 연결(Connection) 예: 잠금으로 다른 중요 프로세스 수행을 차단하는 프로세스 Orphaned session KILL 권한 sysadmin, processadmin 역할 Processadmin 역할에 등록 예 EXEC sp_addsrvrolemember ‘operator', 'processadmin' EXEC sp_helpsrvrolemember

성능 모니터링 시스템 모니터 활용 엔터프라이즈 관리자 활용 sp_who

성능 문제 해결 점검/모니터링  문제점 감지  성능 병목 원인 확인  튜닝  효과 분석  문서화 튜닝 시스템 튜닝 인덱스 튜닝 응용 프로그램 튜닝 지원

장애 대처 요령 당황하지 않는다 DBA가 직접 확인한다. 성급하게 결론을 내리지 않는다 신중하게 대처한다 문제를 더 악화시키지 않아야 한다 직접 처리하기 어려운 경우에는 지원을 요청한다 Sqldiag 유틸리티

기타 관리 요소 클러스터링 (Clustering) 복제 (Replication) 전체 텍스트 검색 엔진 (Full-Text Search) * 각각 별도의 지식을 필요로 함 *

Syhshh@hotmail.com