1 / 34

SQL 문제해결 방법론 및 사례

SQL 문제해결 방법론 및 사례. 고객 기술 지원부 김 종구. 목 차. 문제 해결 방법론 사례 연구 … - 장애 복구와 관련된 KB 기사들 - DB 에 문제가 발생한 경우 - 백업 및 복원 - MDAC 설치 및 제거 - Oracle 과의 연동 - MSDTC 재설치 - 로그 파일 줄이기 기술 자료들. 문제 해결 방법론. 문제를 구체적으로 정의 한다 . - 가능한 모든 데이터 ( 로그 ) 를 수집한다 . - 문제 발생지가 어디인가 ?

ewan
Download Presentation

SQL 문제해결 방법론 및 사례

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SQL 문제해결 방법론 및 사례 고객 기술 지원부 김 종구

  2. 목 차 • 문제 해결 방법론 • 사례 연구… - 장애 복구와 관련된 KB 기사들 - DB에 문제가 발생한 경우 - 백업 및 복원 - MDAC 설치 및 제거 - Oracle과의 연동 - MSDTC 재설치 - 로그 파일 줄이기 • 기술 자료들

  3. 문제 해결 방법론 • 문제를 구체적으로 정의 한다. - 가능한 모든 데이터(로그)를 수집한다. - 문제 발생지가 어디인가? - 발생 빈도를 확인한다. - 특정 작업 이후에 발생한 것인가? • 구체화된 문제를 바탕으로 해결책 모색. - 설정 및 구현이 잘못된 경우. - corruption으로 인해 발생된 문제.

  4. 모든 데이터(로그) 수집 • 이벤트 로그 (시스템, 응용 프로그램) • Sqldiag log - Clustering의 경우 (Q233332 참조) • Sqlstp.log (setup 실패 시) • Sqlsp.log (ServicePack 설치 실패 시) • Profiler log • Performance log

  5. 문제 발생지 및 발생 빈도 확인 DB 자체의 문제인지 Component 또는 Client 상의 문제인지를 확인한다. Query Analyzer에서 수행하여 정상적으로 수행이 되는가를 확인한다. 문제 발생이 규칙적인가 불규칙적 인가? 다른 머신에서도 재현 가능한가?

  6. 사례 연구… • 장애 복구와 관련된 KB 기사들 • DB에 문제가 발생한 경우 • 백업 및 복원 • MDAC 설치 및 제거 • Oracle과의 연동 • MSDTC 재설치 • 로그 파일 줄이기

  7. 장애 복구와 관련된 KB 기사들 • Q307775 INF: Disaster Recovery Articles for Microsoft SQL Server DB 운영 및 이전 작업 중 발생할 수 있는 여러 가지 상황에 대한 KB 기사들을 모아 놓은 자료.

  8. DB에 문제가 발생한 경우 • DB 파일에 물리적으로 문제가 발생 Ex) Err. 823 Torn Page detected • SQL 서버가 시작 시 DB에 대해 복구가 완료되었다는 확신을 못 가진 경우 Ex) Suspect

  9. Err. 823 Torn Page Detected • 하드웨어 장애로 인해 발생하며 물리적으로 consistency에 문제가 생긴 경우. - 오류: 823, 심각도: 24, 상태: 2 spid51 I/O error (torn page) detected during read at offset 0x0000000040e000 in file 'F:\EDMSDB\EDMS_Data.MDF'..

  10. 해결 방법 [Best Practice] 1. BACKUP으로부터 Restore가 Best. [Backup이 없는 경우] 1. DBCC CHECKDB 수행. - 문제가 발생한 object를 찾는다. 또는 select * from tbl이 되지 않는 tbl을 찾는다. 2. Select * from tbl with (index = 0|1|2…)를 이용하여 접근가능한 data의 개수를 찾음. 3. DB schema를 scripting하여 다른 DB를 생성. 4. DTS를 이용하여 정상적인 object를 이동.

  11. 5. 문제가 발생한 tbl은 insert into new_tbl select * from DB..tbl with (index=1) where ‘indexed_column_name’ <= ‘condition’ 와 같은 형식으로 데이터를 저장함. 6. 문제가 있는 DB를 Detach하고 새로 만든 DB를 기존 DB의 이름으로 attach함. 7. 기존 사용자를 DB_Owner로 설정 8. DBCC CHECKDB를 다시 수행.

  12. [DBCC CHECKDB Repair_Allow_Data_loss 이용] 1. 문제가 발생한 DB에 대하여 DBCC CHECKDB를 수행하면 결과 창에서 위 옵션을 권장하는 경우가 있음. 2. 위 명령을 여러 번 수행하면 문제가 해결되는 경우도 있음. 3. 위 옵션 외에도 repair_fast repair_rebuild 옵션도 있음. (BOL 참조)

  13. 5. 다음과 같은 구문을 수행. DBCC TRACEON (3604) Go sp_dboption, ‘DB_name’, ‘single user’, True Go DBCC CHECKDB (‘DB_Name’, Repair_Allow_Data_Loss) Go

  14. Suspect 1. 원인 - 다양함. (root cause를 찾는다.) - 시작 시 다른 process가 파일을 사용하 고 있는 경우. - mdf나 ldf 파일에 손상이 간 경우 등등. 2. 해결 방법 - sp_resetstatus 이용 - Emergency Mode로 변경하여 DB 접근 - DBCC Rebuild_log 명령 이용 (sql magazine 9월호 기사 참조)

  15. Sp_configure ‘allow updates’, 1 reconfigure with override • Select * from sysdatabases where name = ‘<db_name>’ update sysdatabases set status = 32768 where name = ‘<db_name>’ • Restart the SQL Server • DBCC REBUILD_LOG(‘<db_name>’, ‘<log_filename>’

  16. 백업 및 복원 • 복구 모델 (전체, 대량 로그, 단순) • 백업 종류 (전체, 차등, 트랜잭션 로그) • 기본 복구 시나리오 - 전체 백업에서 복원 - 차등 백업에서 복원 - 트랜잭션 로그 백업에서 복원 4. 고급 복구 시나리오 - 파일 그룹 백업 및 복원 - 특정 시점으로 복원하기(stopat, stopatmark) - 데이터 파일로 부터 복원 (sp_attach_db, sp_attach_single_file_db 등 5. Striped backup.(7.0 vs 2000)

  17. MDAC 1. MDAC Version Check Component Checker를 이용. http://www.microsoft.com/data 2. Windows 2K부터 system component로 통합됨. 3. MDAC 제거 및 Uninstall - 제거 : comcheck.exe /d - uninstall : dasetup.exe /u (MDAC 2.6 이후부터 가능) 4. 특정 파일만 바꾸기 불가(SFP 기능 때문)

  18. MDAC Release 정보 • MDAC 2.1 – SQL 7.0 • MDAC 2.5 - Windows 2000 • MDAC 2.5 SP1 – Windows 2000 SP1 • MDAC 2.5 SP2 – Windows 2000 SP2 • MDAC 2.6 - SQL Server 2000 • MDAC 2.6 SP1 – SQL Server 2000 SP1 • MDAC 2.6 SP2 – SQL Server 2000 SP2 • MDAC 2.7 – Windows XP

  19. 5. Upgrade 문제. 6. 설치 실패 문제 해결 1) stop all services that uses MDAC components including the following services. - Certificate Server - Exchange Server - Internet Explorer - Internet Information Server - Microsoft Office (All Office Applications) - Outlook and Outlook Express - SNA Server - SMS Server - SQL Server - Visual Studio (All Development Products)

  20. 2) odbc32.dll, oledb32.dll, msado15.dll이 사용 중인지 확인 (ListDll utility이용) http://www.sysinternals.com에서 다운. 3) 권한 확인 4) 백신 프로그램, Disk Security 프로그램 종료. 5) 디스크 여유 공간 (40MB) 확인 6) Temp 폴더 설정 확인. 7) 7.0 Cluster에는 MDAC 2.6 설치 안됨.

  21. 7. 그래도 실패하면… 1) Full installation – MDAC 압축 해제 후 설치 (c:\mdacsetup 폴더로 해제) c:\mdac_typ.exe /c /t:c:\mdacsetup 2) log 남기기 c:\mdacsetup\setup.exe /gc c:\mlog.txt c:\mdac_typ.exe /c:\”setup /gc c:\mlog.txt MDAC 2.6 이후에는 %system root%에 dasetup.log가 있음.

  22. Oracle과의 연동 • 권장 기사 : Using Oracle with Microsoft Transaction server and COM+ http://support.microsoft.com/support/complus/mtsandoracle.asp • Linked Server 연결 시 Oracle에서 제공하는 ODBC 드라이버 사용을 권장. • 분산 트랜잭션을 위해서는 XA와 DTC간의 통신이 필요. 에러 발생 시, “OLE/DB 공급자 'MSDAORA'이(가) 분산 트랜잭션을 시작할 수 없으므로 작업을 수행할 수 없습니다” 메시지 Ex) insert into #test6 exec(select * from openquery (OraSrv, ‘select * from test’))

  23. 최신의 Oracle Client 설치 • 최신의 Oracle Net8 설치 • MDAC 2.6 SP1이상 설치 • Client software registry key값을 변경. • Oracle XA Transaction을 지원하도록 설정. 두 개의 view, V$XATRANS$ DBA_PENDING_TRANSACTIONS 가 Oracle에 생성되어 있어야 함. 또한 select 권한이 있어야 함. • MSDTCORA.EXE를 이용하여 확인.

  24. MSDTC 재설치 • KB Q279786 참조 • 필수 서비스 외 나머지 멈춤 & set manually start. • 서버 재시작 • Msdtc –uninstall • 다음 registry key 제거. HKEY_CLASSES_ROOT\CID HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MSDTC HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\MSDTC HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC

  25. 5. %system root%\system32에서 Dtcsetup.exe 실행 6. 설치가 끝난 후 서비스를 원래대로 재설정. 7. Msdtc –resetlog 수행.

  26. 로그 줄이기 • Transaction log의 작동 방법. - 초기 공간은 Virtual Log로 나눠진다. - MinLSN으로 표시된 부분은 truncate 시 지워지지 않는다. - 로그가 파일의 마지막 부분까지 기록되고 나면, wrap around 방식을 이용하여 로그의 앞부분으로 이동, 이 작업 후에야 truncate가 가능.

  27. Log File VLF VLF VLF VLF 8 KB Header Transaction LogVirtual Log File • Log files are divided into virtual log files • The number of VLFs varies; at least two VLFs in a file

  28. Technical Resources • BOL (updated version) http://www.microsoft.com/sql/techinfo/productdoc/2000/books.asp • SQL Server 홈페이지 http://www.microsoft.com/korea/sql http://www.microsoft.com/sql • 기술지원 홈페이지 http://support.microsoft.com

  29. White Paper - For SQL 2000 HTTP://support.microsoft.com/support/search/canned.asp?R=d&H=SQL Server 2000 White Papers&LL=kbSQLServ2000Search&Sz=kbwhitepaper&CDID=EN-US-KB&LCID=1033 - For SQL 7.0 & SQL 6.5 http://support.microsoft.com/default.aspx?scid=/support/sql/papers.asp

  30. Newsgroup http://www.microsoft.com/korea/sql/support/newsgroups/default.asp http://support.microsoft.com/newsgroups/default.aspx?ICP=GSS3&NewsGroup=microsoft.public.kr.sql&SLCID=kr&sd=GN&id=fh;KO;NEWSGROUPS

  31. MSDN & TechNet http://support.microsoft.com/default.aspx?SD=msdn&pr=sql (SQL Portal) http://msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp?contentid=28000409 (SQL Product Technical Information) http://msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp?contentid=28001300 (SQLXML) http://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/sql/default.asp

  32. WebCast http://support.microsoft.com/default.aspx?scid=fh;RID;webcst&style=toc&sd=gn • Online Seminar http://www.microsoft.com/seminar/ • Online chat http://msdn.microsoft.com/chats/ • Newsletter http://www.microsoft.com/misc/subscribe.htm

  33. Summary • 문제 해결 방법론 • 사례 연구… - 장애 복구와 관련된 KB 기사들 - DB에 문제가 발생한 경우 - 백업 및 복원 - MDAC 설치 및 제거 - Oracle과의 연동 - MSDTC 재설치 - 로그 파일 줄이기 • 기술 자료들

More Related