Maystyle :
Admin : New post
Guestbook
Local
media
Catergories
Recent Articles
Recent Comments
Recent Trackbacks
Calendar
Tag
Archive
Link
Search
 
해당되는 게시물 520건
  예외 디스패칭 
작성일시 : 2007. 11. 21. 14:11 | 분류 : Windows Server/Kernel

먼저 트랩 핸들러가 간단한 예외를 처리한다. 하지만 트랩 핸들러에 의해 처리 될 수 없는 경우 예외 디스패처라는 커널 모듈에 의해 처리 된다.

먼저 커널 예외는 간단하게 예외 디스패처가 해당 예외를 잡아 이전에 살펴본 인터럽트와 동일하게 IDT에 정의된 항목들을 실행하게 된다.


다음 으로 사용자 단에서 발생한 예외의 경우는 그림 3-8로 설명 할 수 있따.
Windows 서브 시스템은 디버거 포트 와 예외 포트를 가지고 예외를 통지 받는다. 사용자 모드의 예외일 경우
먼저 간단한 예외는 Trap handler가 처리한다. 그리고 처리가 않될 경우 먼저 해당 예외가 디버거 프로세스와 관련이 있는지 확인 하고 만약 관련이 있다면 처리하고 처리 못할 경우에는 해당 예외를 사용자 모드로 전환 하여 사용자 스택에 복사하고 프레임 기반 예외 핸들러를 찾기 위한 루틴을 호출 한다. 만약 예외를 처리 하지 못했다면 예외 디스패처는 다시 커널 모드로 전환하여 사용자에게 디버깅 기회를 준다. 만약 이도 않된다면 커널은 스레드의 프로세스와 관련된 예외 포트에 메세지를 보낸다. 만약 발견 된다면 이 예외 포트는 이 스레드를 제어하는 환경 시스템이 등록한 것이다. 그리고 만약 환경 시스템에 등록된 예외 포트도 없다면 커널은 스레드를 소유한 프로세스를 종료해 버린다.

만약 처리 못하는 예외에 대한 디버깅 여부는 다음 레지스트리 키에 정의되어 있다. "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug" 이 키에는 주요 값이 Auto 와 Debugger 가 있는데, Auto 의 값이 1일 경우 자동 디버거 를 실행하는 모드이다. 단 Virtual Studio 가 설치된 경우 0으로 변경 된다. Debugger 값은 처리 불가능 예외의 경우 실행 가능한 디버거의 경로를 가르키는 문자열이다. (Vista의 경우 Auto 키가 없다.)

|
  Structured Exception Dispatching 
작성일시 : 2007. 11. 21. 12:39 | 분류 : Windows Server/Kernel

예외 처리의 한 타입으로써 예외를 일으킨 Application이 예외의 Control 권한을 갇는 것을 말한다. 이렇게  Controll 권한을 갖은 Application은 예외를 고치거나 예외 스택을 이용 (예외를 일으킨 서브 루틴을 종료)하여 예외전 상황으로 복귀하게 한다. 물론 시스템이 인지 못하는 예외의 경우 시스템에 예외 발생을 알리고 예외 핸들러를 찾아 해당 예외를 처리한다.

|
  10004 번째 방문자! 
작성일시 : 2007. 11. 19. 14:33 | 분류 : Life Note/자유로운 이야기

아싸... 10004 번째 방문자는 제가 됐습니다...;;
외근 갔다 들어왔는데... ㅡㅜ

|
  tempdb가 최적화 되기를 원하신다면... 
작성일시 : 2007. 11. 18. 03:24 | 분류 : SQL Server/Administration

1. 먼저 CPU 숫자 만큼 Temp DB의 파일들을 만들어 줍니다.
2. 해당 Temp DB의 파일의 크기는 모두 동일하게 맞춰 줍니다.
3. CPU가 Temp DB를 잘 쓸 수 있도록 -T1118 옵션을 준다.
4. DISK 분산 효과를 위하여 서로 다른 DISK 파티션에 위치 시켜 줍니다.

의외로 1, 2, 3번은 잘 지켜 주시지만 4번은 잘 않지키는 곳이 상당히 있더군요...;;
관련 문서 : http://support.microsoft.com/kb/328551/ko

PS. 젠장... 오늘 잠은 다 잤넹... 종종 반말 했다가 존대말 했다가... 내가 왜이러는지... 참...

|
  tempdb의 ndf가 삭제가 되지 않는다. 
작성일시 : 2007. 11. 18. 03:14 | 분류 : SQL Server/Administration

[에러 메세지]
Server: Msg 5042, Level 16, State 1, Line 1
The file 'tempdev4' cannot be removed because it is not empty.
File 'E:\Microsoft SQL Server\MSSQL\data\tempdev4.ndf' modified in
sysaltfiles. Delete old file after restarting SQL Server.

tempdb의 ndf 파일이 삭제가 않된다는 애기를 듣는 경우가 있다.
원인은 해당 ndf에 table이 존제하기 때문인데, 간단한 쿼리를 통하여 해당 ndf를 삭제하는 방법을 공유하도록 하겠다.

[Action Item]
먼저  Tempdb의 file 구성을 확인 한다.
use tempdb
go
sp_helpfile

위의 커멘드를 통하여 Name 및 Filename을 확인 했으면 직접 삭제 해 보도록 하겠다.
dbcc shrinkfile(tempdev_1, emptfle) //  TempDB 내부 데이터를 삭제
go
alter database tempdb
remove file tempdev_1 // tempdb의 첫번째 ndf 삭제


이제 손쉽게 tempdb의 ndf를 삭제하도록 하자.

|
  tempdb 이동 하기 
작성일시 : 2007. 11. 18. 03:07 | 분류 : SQL Server/Administration

tempdb는 이동 시키기가 아주 쉽습니다.
masterdb 같은 경우에는 시작 파라미터에서 위치 바꿔주는 쌩~~~ 쇼를 해야 하지만
tempdb는 간단한 alter 구문으로 이동이 가능하죠...^^

[Action Item]

1. Query Analyzer를 구동하여 원하는 SQL Server에 Login합니다.

2. Tempdb 데이터베이스의 Logical File Name을 확인합니다.
Use tempdb
Go
Sp_helpfile
Go

위 문장을 수행하면 Tempdb가 사용 중인 파일에 대한 정보가 리턴되며 컬럼 이름 "Name"에 나타나는 내용이 Logical File Name에 대한 것입니다. 디폴트로 Tempdev와 Templog가 리턴됩니다.

3. Logical File Name의 물리적인 위치를 변경합니다. 즉, Logical File Name을 동일하게 유지하면서 물리적인 파일의 위치나 이름을 변경하는 것입니다.
Alter database tempdb modify file (name=tempdev, filename='e:\data\tempdata.mdf')
Go
Alter database tempdb modify file (name=templog, filename='e:\data\templog.ldf')
Go

4. 위 문장을 수행하면 다음의 메시지가 나타납니다.
" File 'tempdev' modified in sysaltfiles. Delete old file after restarting SQL Server. "
" File 'templog' modified in sysaltfiles. Delete old file after restarting SQL Server. "
즉, Alter Database 문장을 사용하여 Sysaltfiles 시스템 테이블에 정보를 갱신하였으나 SQL Server를 재시작 해야 이 정보가 반영되며 이전에 Tempdb가 사용했던 파일들은 수동으로 삭제해야 합니다.

5. SQL Server Service를 Stop한 후 Start합니다.

6. Tempdb가 지정한 폴더의 새로운 파일을 사용하는 지 확인합니다.
Use tempdb
Go
Sp_helpfile
Go

(결과)
Name  fileid  filename                                                                             
---------------------------------------------------------------
tempdev  1  e:\data\tempdata.mdf        
templog  2  e:\data\templog.mdf         
위 결과에서 filename 컬럼에 해당하는 값들을 보면 위치가 변경된 것을 알 수 있습니다.

7. 이전에 Tempdb가 사용했던 파일들을 Del 명령어나 탐색기를 이용하여 삭제합니다.

자세한 내용은 다음의 KB에서 확인 하시면 됩니다.
http://support.microsoft.com/kb/601429/ko

|
  Windows 부팅시 device 또는 Service 문제 발생 
작성일시 : 2007. 11. 17. 16:44 | 분류 : Windows Server/Kernel

종종 호환이 않되는 장치 드라이버나 서비스들 혹은 제거가 잘못된 녀석들로 인해 윈도우즈가 부팅하다가 심한 경우 크래쉬까지 일으키는 경우가 종종 있습니다.

운 좋게 Windows가 부팅되어 직접 삭제 하실 수 있다는 좋겠지만... Windows Server가 행에 걸려 멈춘다거나, 블루스크린을 띄우면 참 난감하기 짝이 없습니다. 오늘은 이런 녀석들을 제거 하는 방법을 알려드리겠습니다.

[Action Item]

1. Windows CD를 삽입한 후 재시작 합니다.
2. 설치 프로그램을 시작합니다. 대화 상자가 표시되면 복구를 위해 R 키를 누른 다음 C 키를 눌러 복구 콘솔을 시작합니다.
3. Windows를 설치하도록 선택하고 Administrator 계정을 사용하여 컴퓨터에 로그온합니다.
4.명령 프롬프트에서 %SystemRoot%\System32 폴더로 이동하고 listsvc를 입력한 다음 Enter 키를 누릅니다.
5. 제공된 목록에서 문제를 일으키는 서비스나 드라이버를 찾습니다.
참고: 잘못된 서비스나 장치를 선택하면 추가 문제가 발생할 수 있습니다.
6. disable servicename을 입력한 다음(여기에서 servicename은 서비스 이름) Enter 키를 누릅니다.
참고: disable 명령은 SERVICE_DISABLED로 재설정하기 이전의 서비스 start_type(시작 종류)을 출력합니다. 서비스를 다시 설정해야 할 경우에 대비하여 이전 start_type을 기록해 두어야 합니다.
7. exit를 입력하면 컴퓨터가 자동으로 다시 시작됩니다. 컴퓨터가 정상적으로 부팅되도록 합니다.

|
  Exchange 서버에서 POP3SVC 1023 0x7d6 오류가 발생한다. 
작성일시 : 2007. 11. 15. 15:11 | 분류 : Exchange Server

- 에러 메시지

원본 : POP3SVC
이벤트 ID : 1023
설명 : xxx@xxx.co.kr 사용자가 다운로드하도록 0001-0000001e87a2 메시지를 렌더링하는 동안 0x7d6 오류가 발생했습니다.

해당 메세지는 POP3 와 MAPI를 동시에 사용하는 경우 종종 발생 합니다.
이때는 보통 사용자로 하여금 MAPI만을 사용하게 하도록 해 주시면 됩니다.

참고 자료 : http://support.microsoft.com/kb/329168/en-us

|
 Prev   1   ···   52   53   54   55   56   57   58   ···   65   Next