'복구'에 해당되는 글 74건

  1. 2008.11.25 windows 2000을 포맷하지 않고 초기화는 방법
  2. 2008.11.25 윈도우2000에서 137기가 바이트 이상의 고용량 하드 사용하기
  3. 2008.11.25 부팅시 ntdetect.com 에러가 발생해서 부팅이 멈추는 현상
  4. 2008.11.25 MBR 에러와 부트섹터 에러의 해결 방법
  5. 2008.11.25 페이징 파일 에러로 부팅이 되지 않을 때, 페이징 파일 삭제방법
  6. 2008.11.25 부팅시 ntoskrnl.exe 에러 메시지가 발생을 했을 때 해결 방안
  7. 2008.11.25 NTLDR is Missing 에러가 발생 해서 부팅이 되지 않을 경우 1
  8. 2008.07.30 Windows Server DNS백업을 위한 레지스트리의 DNS Zones 위치정보
  9. 2008.07.30 Windows 2003 메모리 3G이상 사용시
  10. 2008.07.30 IIS재설치후 백업된 메타데이터로 복원시 IUSR 계정 패스워드가 변경되어 발생하는 에러 해결방안 1
  11. 2008.07.16 윈도우서버 널세션 차단
  12. 2007.09.26 도메인의 웹(Web) 서버 종류 알아내기
  13. 2007.09.26 Win2000 회사이름과 사용자 이름 바꾸기
  14. 2007.09.26 Netscreen을 공장초기값(Factory Default)으로 초기화시키기
  15. 2007.09.26 Netscreen의 관리자 암호를 잊었을 경우 복구하는 법
  16. 2007.09.23 각 나라의 whois 서버 찾기
  17. 2007.09.23 ftp 접속모드에서 active 와 passive모드의 차이점
  18. 2007.09.23 윈도우에서 리눅스 파티션 데이타 읽기
  19. 2007.09.22 터미널 서비스의 포트를 변경하는 방법
  20. 2007.09.22 Windows2000 설치시 생성되는 IUSER_computername과 IWAM_computername 계정에 대한 암호 알아내기
  21. 2007.09.22 Windows 자동종료 예약하기
  22. 2007.09.22 Access DB 및 엑셀 파일을 SQL DB로 변환하기
  23. 2007.09.22 터미날서비스가 정상적으로 돌아가는데 접속이 안되는 경우
  24. 2007.09.22 Windows 2000에서의 "NTLDR Is Missing" 에러 메세지 복구 콘솔 사용해서 해결
  25. 2007.09.22 중복되는 MAC 주소의 충돌 문제를 해결하는 방법
  26. 2007.09.22 오류 메시지: 내부 DNS 오류 때문에 원격 서버를 찾을 수 없습니다(SMTPSVC)
  27. 2007.09.22 Windows 메모리 덤프가 뜰때 점검방법
  28. 2007.09.22 ASP 속도 개선법
  29. 2007.09.22 Ms-Sql DB연결방법(ODBC,OLEDB) 1
  30. 2007.09.22 Ms-Sql 특정 시점으로 데이터베이스 복구하기
윈2000 재설치하지 않고 초기화시키는 방법!!!

재설치를 하지 않고 윈2000의 셋팅을 초기화시키는 방법은 winnt - system32 - config 폴더안의 파일을 winnt - repair 폴더안의 파일들로 대치를 시키는것입니다

물론 윈2000부팅 된 상태에서는 접근이 안됩니다.. 즉,,도스부팅디스켓으로 또는 윈98로 부팅후 winnt - repair 폴더안의 파일들을 winnt - system32 - config 폴더안으로 복사 해넣으시면 되지요 .
이 파일들은 숨김.시스템속성이 있으므로 당연히 속성을 확인하셔야 겠지요..

멀티부팅 해서 쓰시는 분은 다른 OS로 부팅하셔서 작업하시면 편하실겁니다..

그런후에 재부팅하 시면 윈2000이 초기화 즉,,첨 설치시의 환경으로 돌아갑니다. 이 경우레지스트리 시스템 장치 보안정보등이 초기화가 되지요..

물론 응용프로그램도 설치가 안된 상태로 됩니다..

윈2000을 재설치 안하고 파일들을 복사해 넣음으로 초기상태로 돌아가서 사용하게 됩니다.

보조프로그램의 백업 응급복구디스켓을 시스템이 가장 안정화 되어있을때 만드시면 winnt - repair - regback 라는 폴더가 생기고 그 아래에 파일들이 생깁 니다.. 윈2000에 이상이 있을 시에 위에서 처럼 winnt - repair 안의 파일들 대신 winnt - repair - regback

파일들을 이용해서 작업하시면 됩니다

Posted by 시스템매니아
,
1.윈도가 반드시 137기가 보다 적은 파티션에 먼저 설치되어야 합니다.
2.메인보드 바이오스에서 48-bit LBA 모드를 지원해야 합니다.
3.당연하지만 137기가 이상의 하드 디스크가 있어야 합니다.
4.레지스트리에서 다음 값을 설정하여야 합니다.
-시작-실행-regedit 엔터
-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Atapi\Parameters
를 찾아갑니다.
-Parameters 에서 마우스 오른쪽 클릭하여 `새로만들기-DWORD`로
`EnableBigLba` 를 만들고 값은 십진수로 `1`을 설정하고
윈도우를 재부팅합니다.
5.48-bit LBA 모드는 서비스 팩 2 이상에서 지원되며,
서비스 팩 3 혹은 그 이후버전의 서비스팩을 설치하였다 하더라도
여전이 위의 레지스트리 값을 수정해 주어야 합니다.

-주의사항-
1.만약 137기가 이상이 정상적으로 지원되는 상태에서 위의 레지스트리
값이 삭제되면 하드 디스크의 데이터가 깨어질 수 있습니다.
2.137기가 이상을 지원하는 시스템에서 미리 포맷되어 데이터가
저장된 하드디스크를 새로운 시스템에서 정상 사용하기 위해서도
위의 레지스트리 수정이 필요합니다.

Posted by 시스템매니아
,

에러 메시지 :
NTDETECT
가 하드웨어를 잘 점검하지 못했습니다
.
ntdetect.com
는 운영체제를 선택 후 바로 나타나거나 다음 화면으로 넘어 갈 때 이러한 에러 메시지를 나타내는 경우가 많으며, 주로 파일 손상으로 발생을 하게 된다

복원 방법은 복구 콘솔을 작업을 통해서 가능 하며 ntdetect.com의 경우 원본 파일을 윈도우 2000 CD에서 복사해 주면 복원이 가능하며 결국 처음 설치 작업 시에 해 주었던 것과 동일한 방법처럼 말이다. 실제 윈도우 2000 CD에서도 ntdetect.com와 동일한 원본 파일이 존재 할 것이다.


부팅 도중 NTDETECT 에러 메시지 화면

복원 방법은 단순히 ntdetect.com 파일을 시스템에 복사해 주면 된다. 윈도우를 처음 설치할 때도 이런 방법을 사용한다.

복구 콘솔에서 ntdetect.com C 디렉터리에 복사 하는 화면

Posted by 시스템매니아
,

MBR이나 부트 섹터에서 에러가 발생하게 되면 부팅 작업이 수행되지 않는다. 또한 MBR이나 부트 섹터 역시 바이러스가 감염될 수 있다.(대표적인 예가 CIH 바이러스이다.)
보통 이러한 문제가 발생한 경우, 정확히 무엇이 그 원인이 되는지 알아내기가 쉽지 않다. MBR이나 부트섹터에 관한 문제는 FIXMBR, FIXBOOT 명령어를 사용하여 복구할 수 있다. 

복구 콘솔의 FIXMBR 실행 화면

복구 콘솔의 FIXBOOT 실행 화면


Posted by 시스템매니아
,

간혹 페이징 파일 문제로 부팅이 되지 않는 경우가 발생한다. 많은 경우 부팅이 되지 않아 결국 재설치 작업까지 가는 경우가 많다. 그러나, 복구 콘솔을 통해 페이징 파일을 삭제하여 이러한 문제를 해결할 수 있다.

복구
콘솔에서는 pagefile.sys 파일이 나타나지 않는다. 따라서, 일반적인 방법으로는 지워지지 않는다. 따라서, 아래와 같은 방법을 사용하여 파일을 지우도록 한다.
1. 복구 콘솔로 부팅을 한다.
2.  페이지 파일이 존재하는 디렉터리로 이동한다.
3. 임의의 파일을 pagefile.sys라는 이름으로 복사한다.
예) copy c:\boot.ini pagefile.sys
4. 이제 “del pagefile.sys” 명령어를 사용하여 페이지 파일을 삭제한다.
페이지 파일에서 생긴 문제를 해결하기 이러한 방법은 다음 MS 기술 문서에도 소개되어 있다.

Posted by 시스템매니아
,

에러 메시지 내용 :
다음 파일이 없거나 손상되어 윈도우 2000을 시작 할 수 없습니다. :

%systemroot%\system32\ntoskrnl.exe.
위 파일의 복사본을 다시 설치 하십시오

부팅 시 제공되는 Ntoskrnl.exe 에러 메시지 화면

이런 에러 메시지는 실제로 ntoskrnl.exe이 없거나 손상되어서 발생 할 수도 있고 또는 이 파일과 관련된 hal.dll 파일이 없거나 손상되어서 발생 할 수 있다.
아래 그림을 통해서 보면 ntoskrnl.exe HAL과 연결되어 있고 또한 그 역으로도 연결이 되어 있다는
것을 볼 수 있다.

Depends.exe을 통해서 Ntoskrnl의 종속성을 본 화면

해결 방법:
복구 콘솔에서 위와 같이 복사를 통해 해결 할 수 있으며, 실제 자체 파일 손상이 아니라, HAL.DLL 파일의 손상 때문에 문제가 발생할 수도 있다. 아래 그림은 복구 콘솔에서 복원을 하는 작업 방법을 그림으로 제공한 것이다. 또한 복원 후 문제가 발을 하게 될 경우는 HAL에 대해서도 같은 작업을 진행 하기를 바란다.

복구 콘솔의 expand을 통해서 ntoskrnl.ex_을 확장 하는 방법

주의 할 것은 무조건 HAL.DLL 복구 시 현재의 시스템에 새로운 하드웨어 정보로 구성 된다는 것이다. 현재의 구성 된 네트워크 및 VGA..등등 말이다이와 같이 HAL.DLL은 주의 해서 사용 하기를 바란다. 그래서 결국 새로운 하드웨어 프로필이 생성이 될 것이다. 꼭 필요 시에만 적용 하기를 바란다.
Posted by 시스템매니아
,

NTLDR is Missing 에러가 발생 해서 부팅이 되지 않을 경우는 종종 발생하게 된다.
그럴경우 관리자는 매우 당혹케 할 수 있는데 아래와 같은 순서대로 하나씩 진행 해보시길 바랍니다
.
단지 파일이 없을 뿐이라고 생각 하시면 됩니다.

NTLDR 에러로 부팅이 되지 않는 화면

우선 NTLDR이라는 것은 무엇을 하는지를 알고 있다면 쉽게 해결을 할 수 있다.

NTLDR의 역할
  • 사용자가 시작할 운영체제를 선택 할 수 있게 해주는 역할
  • 부트 파티션에 있는 운영 체제 파일들을 로드 하는 역할
  • 운영체제 선택 과정을 제어하고, 윈도우 2000 커널 초기화가 이루어지기 전에 하드웨어 검색을 수행 하는 역할

이와 연관될 파일들은 아래와 같은 파일들이다. 각 파일들에서 오류가 발생한 경우 비슷한 메시지가 나타나며, 해당 파일이 없다는 에러가 발생하게 된다. 복원 방법은 약간의 차이가 있지만 거의 비슷하다.

  • Boot.ini
  • Ntdetect.com
  • Bootsect.dos (이 파일은 컴퓨터에 하나 이상의 운영체제로 부팅 하려고 한다면 존재한다. 특히 Win XP/Vistar의 경우)

포맷 방식별로 에러 메시지가 다소 차이가 있다.

  • FAT 일 경우 – "Boot: Couldn’t find NTLDR "

·      NTFS 일 경우 – "NTLDR is missing"

이렇게 하신후 다시 fixboot 명령어로 부팅섹터를 재설정하시기바랍니다

C:\Windows>fixboot C:

             

 

여기까지 하신후 c:\>EXIT 재부팅을 합니다

이 문제의 또 다른 해결방법은 응급복구 디스크와 복구 콘솔을 사용하는 것이다. 또한 근본적인 해결은
아니지만 시동디스크를 통해서 이러한 에러메시지를 나타나지 않게 부팅을 할 수 있다.
Posted by 시스템매니아
,
DNS백업시 %SystemRoot%\system32\dns폴더와 레지스트리의 DNS Zones을 백업하게 되는데

Windows2000과 Windows2003의 레지스트리의 DNS Zones 위치가 다릅니다.

Windows2000 :

[\HERY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Zones]

Windows2003 :

[\HERY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\DNSServer\Zones]
Posted by 시스템매니아
,

C:\boot.ini파일 수정

/fastdetect /3GB /Userva=3030

Posted by 시스템매니아
,
Windows2000의 IIS5.0에서 TEST되었음.

브라우저의 오류 메시지:
HTTP 500 - 내부 서버 오류
또는
Server Application Error
The server has encountered an error while loading an application during the processing of your request. Please refer to the event log for more detail information. Please contact the server administrator for assistance.

시스템 이벤트 로그의 오류 메시지:
원본: DCOM
오류: DCOM에 "로그온 실패: 알 수 없는 사용자 이름이거나 암호가 틀립니다." 오류가 발생했으며 서버를 실행하기 위해 .\IWAM_SERVERNAME에 로그온하지 못했습니다.

원본: W3SVC
오류: 서버가 '/LM/W3SVC/1/Root/op' 응용 프로그램을 로드하지 못했습니다. 오류는 '구성된 식별자가 올바르지 않아 서버 프로세스를 시작하지 못했습니다. 사용자 이름과 암호를 점검하십시오.'입니다.
또는
원본: W3SVC 오류: "서버가 '/LM/W3SVC/4/Root/' 응용 프로그램을 로드하지 못했습니다. 오류는 'c000003b'입니다."

원본: W3SVC 오류: "COM 응용 프로그램 '{3D14228D-FBE1-11d0-995D-00C04FD919C1}'('/LM/W3SVC/4/Root')이(가) Out of Process를 활성화하지 못했습니다."

1. C:\Inetpub\AdminScripts\Adsutil.vbs파일을 Notepad로 엽니다.
2. 편집 메뉴에서 찾기를 누르고 IsSecureProperty = True를 입력한 후 다음 찾기를 누릅니다.
3. "IsSecureProperty = True"를 "IsSecureProperty = False"로 변경합니다. 저장후 닫음
4. 도스창에서 IUSR 계정 암호 알아내기 cscript.exe adsutil.vbs get w3svc/anonymoususerpass
5. 도스창에서 IWAM 계정 암호 알아내기 cscript.exe adsutil.vbs get w3svc/wamuserpass
6. 내컴퓨터-관리-시스템도구-로컬사용자 및 그룹 - 사용자로 이동
7. IUSR계정과 IWAM계정의 패스워드를 위에서 확인한 패스워드로 수정하여줍니다.
8. 서비스에서 IIS Admin Service 재시작합니다
Posted by 시스템매니아
,
1. 널 세션(익명사용자 접속 차단)을 시킵니다.

HKEY_Local_Machine -> System -> CurrentControlSet -> Control -> LSA 이동 후,
RestrictAnonymous 값을 REG_DWORD 형식으로 하여 0 에서 "1" 로 변경

2. 널 세션으로 공유 자원에 접근 할 수 없도록 윈도우 관리목적의 기본 공유 폴더 제거HKEY_Local_Machine -> System -> CurrentControlSet -> Services -> LanmanServer -> Parameters 항목에 AutoShareServer (win2k의 경우 AutoShareWks) 항목을 REG_DWORD 형식으로 값 추가 후 1에서 "0" 으로 변경 설정

3. 관리목적의 공유폴더를 통해 외부에서 악의적 사용자나 악성코드 차단하기 (2번과 동일)
HKEY_Local_Machine -> System -> CurrentControlSet -> Services -> LanmanServer -> Parameters 항목에 AutoShareServer (win2k의 경우 AutoShareWks) 항목을 값 데이터를 1에서 " 0 "으로 변경

*REG_DWORD 형식으로 값 추가 후 관리자를 위한 숨겨진 공유가 필요없다면 disable 하는 기능

4. 공유 폴더 암호 설정 및 권한을 “읽기” 속성으로 변경 (필수)
외부 접근자는 내용을 읽을 수만 있도록 설정된다면, 바이러스 조차도 이 폴더에 "기록이나 쓰기"가 되지 않기 때문에 바이러스 감염을 막을 수 있습니다.
Posted by 시스템매니아
,
Netcraft - Web Server Query Site
: 해당 도메인 혹은 IP 주소가 어떤 O/S 혹은 어떤 웹서버 종류와 버전을 사용 중인지 체크해주는 사이트이다.

메인페이지 상단의 Whats that site running? 뒤에 도메인을 적고 찾기버튼을 누르면됩니다.

http://uptime.netcraft.com/up/graph/

Posted by 시스템매니아
,
[시작]-[실행]-[regedit 입력]-[엔터]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]
들어가 보면 RegisteredOrganization과 RegisteredOwner라는 값이 있을 것이다.
이 값의 RegisteredOrganization은 회사 이름이고 RegisteredOwner는 사용자 이름 이다.
이 두 값의 데이터를 수정해 준 후, 로그오프나 시스템 다시 시작을 하면 변경 사항이 적용 된다.
Posted by 시스템매니아
,
하이퍼터미널과 같은 터미널에뮬레이터로 접속한뒤, 아래와 같이 한다.
ns100-> unset all
Erase all system config, are you sure y/[n]? y

ns100-> reset
Configuration modified, save? [y]/n? n
System reset, are you sure? y/[n]? y
In reset...

[생략]

login: netscreen
password: netscreen
ns100->
Posted by 시스템매니아
,
Netscreen 의 ScreenOS 2.6.1r1.1 이상의 버젼에 해당됩니다.
Factory Defaults 상태로 초기화 시키는 방법입니다.
1. Netscreen 보안장비에 콘솔 접속을 합니다.
2. 보안장비를 재시동하고, 사용자 아이디와 비밀번호를 물을 때,
보안장비의 Serial 번호를 입력합니다 (장비 뒷편에 부착되어 있음)

다음과 같은 메세지가 나타나게 됩니다 :
It will give you warnings that it will completely reset the box,
and any configurations you have on the box will be lost.

보안장비가 재시동된 후에는 netscreen/netscreen 기본 인증정보로 접속이 가능해집니다.
Posted by 시스템매니아
,
주어진 도메인이 어떤 정보를 갖고 있는지 알아내기 위해
whois 서버를 이용합니다. 적절한 whois 서버를 찾는 가장
첫걸음은
http://www.allwhois.com을 방문 하는 것입니다.
이 사이트는 최상위 레벨 도메인 목록과 html 기반의 인터
페이스를 통해 whois를 질의할 수 있는 whois 페이지 URL
을 가지고 있습니다.
Posted by 시스템매니아
,
출처: 한국 FTP 사용자 모임 (http://www.kfug.net)

ISP가 KT의 경우는 기본포트 사용에 제약이 없으므로 웹서버와 FTP서버를 사용할수 있으며, 임의의 포트(CODNS사용시 9000번)도 사용이 가능합니다.
두루넷, 하나로등 케이블 모뎀방식의 경우는 임의의 포트(Codns의 9000번)로 포트포워딩을 사용해서 WEB서버로는 사용 가능하지만, FTP서버에서는 기본포트, 포트포워딩을 하실 수 없습니다.
임의의 포트로 FTP를 사용하시기 위해서는 DNS가 아닌 IP로 입력을 하셔야 합니다.

IIS 를 사용하는 경우 빈번하게 발생하는 문제는 포트를 표준 포트인 21번 포트를 사용하지 않았을때 발생합니다.
FTP 의 경우는 21번 포트가 표준이나 사용하시는 인터넷 서비스에따라 포트가 막혀 서비스가 되지 않는 경우가 있습니다. 이때에는 어쩔수 없이 임의의 포트를 사용하게 되는데 이경우 FTP 서비스에 문제가 있다고 합니다. 외부에서는 접근 가능하며 서비스 가능하지만 IP 공유기에 연결된 내부 컴퓨터로는 도메인이나 공인 IP 로 접속이 안되는 문제가 발생합니다.
IIS에서의 셋팅시 ,공인 IP 가 아닌, 서버의 내부 주소로 설정되어 있어야 합니다
단순히 포트포워딩만으로는 해결되지 않습니다.
둘넷에서는 8080번까지 막혀 있을껍니다.. 9xxx 대역의 포트를 포워딩 하십시요. 내부 포트로 말입니다.
그리고 (설정뒤 포트가 막혀있는지 확인은 필수!)
패시브를 위한 포트까지 추가적으로 2개정도 생성하시고
PASV port 에다가 패시브를 위한 2개포트를 입력합니다.
그리고 다음의 Allow passive mode data transfers, use IP
란에다가 동적으로 할당받은 리얼아이피(IP 공유기의 상태란에
나오는 211.x.x.x나 61.x.x.x등등등의 주소를 확인하여 입력해 줍니다). <- 이것을 대부분 안하여 접속까지는 잘 되나 폴더 리스트가 뜨질 않고 바로 끊기곤 하지요.
IP 공유기에 연결된 내부의 다른 컴에서 ftp 서버 접속이 가능하면 ftp 내부 설정은 제대로 되어 있는데 서브유론 안되고 알ftp론 접속된다면 외부에서 해당 포트를 제한한 것은 아니기 때문에 pasv를 설정해서 접속이 되는지는 확인해 주십시오.
각 ftp 클라이언트 프로그램은 pasv 설정 유무에 따라서 ftp 서버 접속이 안 될 수도 있습니다.
그리고 접속하실때 passive모드를 사용하신것 같네여. passive 모드를 끄십시오
FTP연결에는 크게 두가지가 있습니다.
- Active Mode
- Passive Mode
말그대로 연결요청을 누가 할것인가 인데요.
간단히 말해서 인터넷상에서 다른 누군가와 연결을 할때
필요한것이 자신과 상대방의 IP와 포트번호인데 , 그럼
두쌍의 아이피와 포트번호가 필요하겠지요?
흔히 말하는 프로그램에서 소켓이라고 표현하죠...
그런데 자신이 공인아이피를 쓰면서 상대방의 FTP에 접속을 시도할때
연결을 열어달라고 요청을 해야 합니다.
이때 자신의 아이피와 포트번호를 상대방에게 알리는데(Active Mode)
만일 자신이 사설아이피라면 상대서버는 당연히 제컴을 찾지 못해
연결에 실패할겁니다.
그래서 연결요청을 서버쪽에서 하도록 한것이 패시브모드입니다.
그러면 서버쪽에서 자신의 아이피와 포트번호로 요청을 하게 되는데
아래 192.x.x.x 1,12 같은 경우지여..매 접속요청마다 포트번호는
랜덤하게 바뀌게 되어 있습니다.
Serv-U 같은 경우는 일정 범위를 지정할 수 있더군여 ...
그래서 대개 공유기를 쓰면 FTP클라이언트 프로그램에서 패시브모드를
체크해야 연결이 수월하게 되는 경우가 많습니다.
근데 이것이 서버쪽에서도 지원을 해야하는데 그렇지 않으곳은
연결이 안되더군여..제가 잘가는 FTP서버도 그중 하나인데
이곳에 연결할때는 어쩔수 없이 공유기를 떼고 한답니다.

표준 포트가 아닌 다른 포트로 설정하신 경우엔 외부의 클라이언트 컴퓨터들이 passive 모드로 설정되어 있어야 하며 passive 모드 설정은 다음과 같습니다.

. AL_FTP : 사이트 맵 - 사이트 선택 - 사이트 정보 - 고급 - passive 설정

. cute FTP : edit - setting - connection - firewall - pasv mode

. leap FTP : Options - preferences - General - proxy - use pasv mode

. WS_FTP : connect - connection - passive mode

양쪽의 컴퓨터들 중 한쪽에서만 IP가 공유된 환경이라면 FTP 클라이언트 프로그램의 PASV 모드를 설정하시어 접속 할 수 있습니다.
이는 양쪽의 방화벽에 의해 서버의 패킷전달이 원할치 않기 때문에 발생하는 장애로 이해하셔야 할 것 같습니다.

FTP 서버에서 표준포트(21)가 아닌 다른 포트를 이용할때 클라이언트 컴퓨터들이 접속하기 위해선 각 클라이언트 프로그램에서의 패시브 모드(passive mode)로 설정해 주어야만 접속하실 수 있습니다.

아래의 점검 사항이 필요 합니다.

1)어드미니스트레이터로 로그인을 하시기 바랍니다.
2)접속할 ftp주소뒤에 " :21 " 추가 하여 주시기 바랍니다.,아이디,패스워드.패시브모드 체크를 합니다.
3) win 2000에서 방화벽 해제가 되어 있으면 해제를 하시기 바랍니다.
다음의 사항을 점검 하시기 바랍니다.
윈도우 2000서버로 를 운용 하시기 전에 다음과 같은 사항을 점검 하셔야 합니다..
1)게스트 허가 설정 확인(바탕화면 - 내컴퓨터 더블클릭 - 관리도구 더블클릭 - 컴퓨터 관리 더블클릭 - 로컬사용자 및 그룹 - 사용자 - Guest 더블클릭 - 계정사용 안함 의 V 표시 제거 - 확인
내 네트워크 환경의 마우스 우측버튼 > 속성 > 로컬영영 연결 더블클릭 > 속성 > 고급 > 인터넷 연결
방화벽에 V 체크가 되어 있다면, 해제 하셔야 합니다. )

2) 시작 -> 관리 도구 -> 인터넷 정보 서비스 -> 기본 웹 사이트 -> 등록 정보 -> 디렉터리 보안 탭 -> 익명 엑세스에 체크 표시

3)IIS 에서 암호를 제한 할수 있음 체크표시 없음

4)IIS의 인증방법 중 익명 엑세스 및 인증 컨트럴이 '익명 엑세스 허용' 으로 되어 있다면 클라이언트에서 서버로의 접속시, 별도의 인증없이 접속되는것이 일반적인데 , 만일 위와 같이 설정하셨음에도 클라이언트 접속에서 인증암호를 요구한다면 '익명 엑세스 허용' 항목의 '편집' 버튼을 눌러 별도로 설정된 내용이 있는지를 확인해 보시고, 잘 이해가 안되신다면 기본값으로 설정해 보십시오.

5)외부 DNS 설정에서는 서버에서 운용되는 실제 공인 IP 주소를 넣어주시면 됩니다.
내부 서버프로그램인 IIS 에서는 서버의 내부 IP 주소인 192.168.1.X 으로 셋팅을 해 주시면 됩니다.
Posted by 시스템매니아
,
리눅스 하드를 윈도우에 연결해서 리눅스의 파티션의 데이타를 읽을수 있는
프로그램입니다.
설치 과정 없이 바로 사용할 수 있고 탐색기와 동일해 쉽게 사용 하실 수 있습니다.
Posted by 시스템매니아
,
Regedit 실행

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\Wds
\Repwd\Tds\Tcp

PortNumber 더블클릭후

10진수를 선택하고 기본포트(3389) 다른 포트번호(1234)를 입력


HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp

PortNumber 더블클릭후

10진수를 선택하고 기본포트(3389) 다른 포트번호(1234)를 입력
Posted by 시스템매니아
,
이들 계정의 암호는 Windows 2000 사용자 계정 데이타베이스(SAM)에 들어 있습니다.
이들 데이터 저장소에서 암호를 얻는 것은 심각한 보안 위반이 됩니다. 몇 가지 툴을 이용하여 이들 암호를 얻을 수는 있으나,
이 암호는 메타베이스에도 있기 때문에 다음과 같은 스크립트를 Notepad같은 문자 편집기에 입력하고,
스크립트를 getpass.vbs(.vbs로 끝나기만 하면 아무 이름을 써도 됨)로 저장합니다.

------------------------------------------------------------------------
Dim IIsObject
Set IIsObject = GetObject ("IIS://localhost/w3svc")
WScript.Echo "According to the metabase, the anonymous credentials are:"
WScript.Echo " AnonymousUserName = " & _
IIsObject.Get("AnonymousUserName")
WScript.Echo " AnonymousUserPass = " & _
IIsObject.Get("AnonymousUserPass")
WScript.Echo " WAMUserName = " & IIsObject.Get("WAMUserName")
WScript.Echo " WAMUserPass = " & IIsObject.Get("WAMUserPass")
Set IIsObject = Nothing
------------------------------------------------------------------------

스크립트를 실행하면, 디폴트 IUSER_computername과 IWAM_computername 계정에 대한 암호를 볼수 있습니다.

Posted by 시스템매니아
,
바탕화면에 아무 단축 아이콘 하나를 만들고
아래와 같이 입력합니다.

대상 : C:\WINDOWS\system32\tsshutdn.exe 1800 /powerdown

그리고 시작위치에는 다음과 같이 넣으십시요..

시작위치 : C:\WINDOWS\system32

그러시고 적용하시면 됩니다.

위의 글에 보면 1800이라는 숫자가 있는데..
이숫자의 의미는 1800초 후에 꺼진다는 의미입니다.
1800초면 30분이 되죠. 만약 한시간 뒤에 꺼지게 하고 싶다면
1800이란 숫자대신에 3600이라고 쓰시면 됩니다.
Posted by 시스템매니아
,
1. SQL의 DTS WIzzard(데이타 가져오기/내보내기)를 실행합니다.

2. 데이타 원본선택란을 클릭하여 변환을 원하는 소스타입을 선택한다.
ex) Micosoft Access,Microsoft Excel등을 선택

3. 소스 타입 선택후 버튼을 클릭하여 변경을 원하는 파일을 선택한다.

4. 변환할 파일 선택 합니다.

5. 선택후 다음을 클릭합니다. Access DB의 경우 사용자 ID와 암호가 있을 경우 입력합니다 .

6. Transfer할 대상을 선택합니다. (다이렉트 웹 호스팅 DB 서버)
서버와 사용자 이름,암호 입력후 데이타 베이스를 선택합니다.
데이타 베이스선택 완료후 다음을 클릭합니다.

7. Transfer할 방법을 선택합니다.
* DB서버에 테이블로 변환시 첫번째 '원본 데이터 베이스에서 테이블 및 뷰 복사'를 선택합니다.

8. 변환할 테이블을 선택합니다. 특별한 경우 외에는 기본 옵션을 사용십시요.

9. 실행 시기를 결정합니다. 기본값은 즉시 실행입니다.

10. 확인을 눌러 변환을 실행합니다.

11. Transfer중 진행률과 현재 상태가 표시 됩니다.

12. 정상적으로 완료될 경우 이와 같은 메시지를 확인할 수 있습니다.
ex)새창에 1개의 테이블을 Microsoft Access에서 Microsoft SQL Server(으)로 복사했습니다.

13. 변환 완료 후 해당 DB서버에 접속하여 정상적으로 테이블이 생성되었는지 확인합니다.
Posted by 시스템매니아
,
터미날서비스가 정상적으로 작동중인데 접속을 하려고 하면 "접속자가 많아 접속할수 없습니다" 라는
메세지 창이 뜨는 경우가 있습니다. 이런 경우 계속 접속이 안되어 터미날서비스를 언인스톨 한 다음
다시 인스톨해도 접속이 안되는 경우가 있습니다.
"접속자가 많아 접속할수 없습니다"라는 메세지 창과 함께 계속 접속이 안될경우
터미날서비스를 언인스톨하지 말고

시작->프로그램->관리도구->터미날서비스구성에서 연결을 보시면 RDP-Tcp 연결이 있을것입니다.
이 연결을 삭제하시고 새로 생성하면 터미날서비스가 다시 작동 합니다.
Posted by 시스템매니아
,
1. Windows 2000 셋업 디스켓 또는 Windows 2000 CD-ROM으로 컴퓨터를 restart 합니다.

2. 셋업 화면이 나오면 Windows 2000 복구를 위해 <R> 키를 누릅니다.

3. Windows 2000 복구 옵션에서 복구 콘솔을 사용하여 Windows 2000 설치를 복구하기 위해 <C> 키를 누르십시오.

4. 복구를 위한 윈도우 2000 설치 영역의 선택과 관리자 패스워드 요구가 나타납니다.

5. 관리자 패스워드 입력 후 에는 바로 기본 루트인 c:\winnt 폴더로 넘어 갑니다.

6. Windows 2000 CD-ROM에 할당된 드라이브로 들어 갑니다.

7. 다음과 같이 command를 입력하고 enter 키를 누릅니다.
copy drive:\i386\ntldr c:\

copy drive:\i386\ntdetect.com c:\

만약 파일을 overwrite할것인지 물어보면 y를 입력하고 enter를 누릅니다.

8. 다음과 같이 command를 입력하고 enter 키를 누릅니다.
type c:\Boot.ini

다음과 같은 화면이 나타 납니다 :

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT

[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Server" /fastdetect

만약 The system cannot find the file or directory specified. 라는 메세지가 나오면 Boot.ini파일이 없거나 손상된겁니다.

9. 만약 Boot.ini파일 없거나 손상됐다면 다음의 순서로 Boot.ini 파일을 새로 만듭니다.

a. Notepad를 이용하여 다음과 같은 입력하여 새로운 boot loader파일을 만듭니다.

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT

[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Server" /fastdetect

b. 플로피 디스크에 저장하고 파일명을 Boot.ini로 합니다.

c. 복구 콘솔에서 다음과 같이 command를 입력합니다. 플로피에 저장한 Boot.ini파일을 컴퓨터로 복사 합니다.
copy a:\Boot.ini c:\

10.복구콘솔에서 exit를 입력하고 컴퓨터를 restart 합니다.

Posted by 시스템매니아
,
Windows가 네트워크에서 중복되는 MAC(Media Access Control) 주소를 감지하면 시스템 이벤트 로그에 다음 메시지 중 하나가 나타납니다.

Event ID: 4198
Source : TCP/IP
Description: 시스템에서 네트워크 하드웨어 주소 02:AD:8C:DE:00:FD을(를) 가진 시스템과 IP 주소 129.0.0.1의 주소 충돌이 발견되었습니다. 로컬 인터페이스를 사용할 수 없습니다.


-또는-

Event ID : 4199
Source : TCP/IP
Description: IP 주소 0.0.0.0과(와) 네트워크 하드웨어 주소 xx:xx:xx:xx:xx:xx을(를) 가진 시스템과 주소 충돌이 있습니다. 따라서 이 시스템에서 네트워크 작동이 제대로 되지 않을 수도 있습니다.

충돌 문제를 해결하고 시스템을 다시 시작할 때까지 이 컴퓨터의 TCP/IP를 통한 모든 네트워크 연결이 중단됩니다.


이 문제를 해결하려면 해당 네트워크의 다른 컴퓨터가 같은 MAC(Media Access Control) 주소를 사용하고 있는지 확인해야 합니다. Microsoft TCP/IP 스택과 함께 제공되는 몇 가지 도구를 사용하면 중복된 주소를 가진 컴퓨터를 찾을 수 있습니다.

중복된 MAC(Media Access Control) 주소를 분리하려면 다음과 같이 하십시오.

작업 중인 TPC/IP 기반 클라이언트에서:

1. 명령 프롬프트에서 아래와 같이 입력하여 이벤트 로그 항목에 나와 있는 TCP/IP 주소를 Ping합니다.

PING 129.0.0.1

중복된 주소를 가진 컴퓨터에서 다음과 비슷한 응답을 받습니다.

Pinging 129.0.0.1 with 32 bytes of data:

Reply from 129.0.0.1: bytes=32 time=10ms ttl=128
Reply from 129.0.0.1: bytes=32 time=<10ms ttl=128
Reply from 129.0.0.1: bytes=32 time=<10ms ttl=128
Reply from 129.0.0.1: bytes=32 time=<10ms ttl=128


2. 해당 컴퓨터의 MAC(Media Access Control) 주소가 중복되었는지 확인하려면 명령 프롬프트에서 아래와 같이 입력합니다.

ARP -a 129.0.0.1

다음과 같은 응답을 받습니다.

Internet Address Physical Address
129.0.0.1 02:A0:8C:DE:00:FD <-- matches the event log entry

3. 이제 명령 프롬프트에서 아래와 같이 NBTSTAT 명령을 사용하여 중복 컴퓨터의 익숙한 NetBIOS 이름을 가져올 수 있습니다.
NBTSTAT -A 129.0.0.1

해당 컴퓨터의 NetBIOS 이름과 함께 아래와 같은 응답을 받습니다. 네트워크에서 해당 컴퓨터를 찾을 수 있도록 해당 컴퓨터의 소유자를 확인하려면 이 NetBIOS 이름을 사용합니다.

NAME TYPE STATUS
-----------------------------------------------
NTSERVER1 <00> Unique
DOMAN-NAME <00> GROUP
NTSERVER1 <03> Unique

Media access control address = 02-A0-8C-DE-00-FD

다음 메시지가 나타나면,

HOST NOT FOUND.
이 메시지는 해당 중복 컴퓨터가 Novell 서버, Unix 서버, Router 또는 Jet Direct Printer처럼 NetBIOS를 사용하지 않는 컴퓨터임을 나타냅니다.
중복된 주소를 가진 컴퓨터를 찾은 후에 해당 네트워크 카드를 대체하거나, 로컬로 관리되는 MAC(Media Access Control) 주소로 변경된 경우 해당 네트워크에서 고유한 주소를 갖도록 변경합니다.
Posted by 시스템매니아
,
이벤트 뷰어에 다음과 같은 오류 메세지를 종 종 볼수 있습니다.

Windows 2000 인터넷 프로토콜(IP) 스택이 여러 네트워크 카드(IP)에 바인딩되어 있을 때 다음 이벤트가 발생할 수 있습니다.
이벤트 ID: 4000
원본: SMTPSVC
종류: 경고
설명: Message delivery to the remote domain "your.domain.com" failed. 내부 DNS 오류 때문에 원격 서버를 찾을 수 없습니다.
0000: c00402e7

원인은 SMTP 서비스는 메일을 배달하려고 할 때 DNS(도메인 이름 서비스) 서버를 검색하여 DNS 조회를 수행합니다. TCP/IP가 여러 IP에 바인딩되어 있으면 바인딩 순서에 따라 첫번째 IP 주소에 연결하려고 합니다. 이 IP가 DNS가 반환한 MX 레코드에 전달할 수 있는 IP가 아니면 연결이 실패하고 이벤트 4000이 로깅됩니다. 메시지가 재시도 상태에 들어가고 그 결과 시간이 초과되기 때문에 배달 못 함 보고서(NDR)가 생성됩니다.


이 문제를 해결하려면 다음과 같이 하세요.

1. 바탕 화면에서 네트워크 환경을 마우스 오른쪽 단추로 누릅니다.

2. 등록 정보를 누릅니다.

3. 고급 메뉴에서 고급 설정을 누른 다음 인터넷 IP의 바인딩 순서를 내부 IP보다 앞쪽으로 변경합니다. 이렇게 하면 DNS 쿼리가 조회를 수행하려고 할 때 정확한 네트워크 연결을 찾습니다.

Posted by 시스템매니아
,
원인을 보면
90%이상은 실제로 메인보드나 CPU, 램의 에러에서 기인하고
소프트웨어에서 기인하는 경우는 그 소프트웨어가 시스템의 과도하고 정밀한
성능을 요구하는 경우나 링 0 영역을 건들다 오류가 난 경우이다

첫번째

내컴퓨터] → [등록정보] → [시작및복구] → [디버깅정보쓰기]

이곳에서 "전체메모리덤프라고 되어 있는 것을 "작은 메모리 덤프(64KB)"변경 하는방법이 있다
그리고 가상램도 물리적사용램의 2배정도 잡아준다

두번째

메모리슬롯을 변경한다

세번째

VIA 보드의 경우는 될 수 있으면 초기 윈도우 설치 시에 4in1 최상버
전을 설치해 준 후 그래픽카드를 다시 잡아주면 효과적이라고 한다

네번째

이벤트 로그 저장을 2~3일 정도로 낮추는 방법도 메모리 덤프를 예방하는 방법이라고한다

다섯번째

메모리 덤프를 사용하지 않는다. 디버깅정보쓰기에 없음으로 한다
윈도우를 표준PC로 해서 IRQ의 공유를 좀 더 원할히 한다

여섯번째

종료시 그러면 자기의 다이렉트버전을 8.1버전이상으로 설치한다

일곱번째

그래픽이나 사운드, 수신카드등 드라이버 설치시는 최신버전보단 ms에서 공인된 드라이버 버전을 사용한다

여덜번째

쿨러는 시원한걸 사용한다 시스템(메인보드 시피유 램..)
열받어면 자주 뜬다

아홉번째

컴에 정전기를 될수잇는한 적게흐러게한다

열번째
irq를 분산해 사용한다
Posted by 시스템매니아
,

ASP 속도 개선법

Windows2003 2007. 9. 22. 14:15
*Response.Redirect 대신 Sever.Transfer를 사용하라

Response.Redirect는 Sever에서 브라우저에 요청 후 Sever로 돌아오나. Sever.Transfer는 Server내부에서 처리됩니다.

*Directory URL에 후행 슬러시 사용

후행 슬래시를 생략하면 브라우저는 서버에 요청하여 디렉터리를 요구하고 있다는 응답을 받습니다. 그러면 브라우저는 URL에 슬래시를 첨가하여 두번째 요청을 하며 이때서야 서버가 그 디렉터리에 대한 기본 문서로 응답합니다.

*Sever 변수사용금지

서버 변수에 액세스하면 웹 사이트가 서버에 특별한 요청을 하게 되어 요청한 것만이 아니라 모든 서버 변수를 수집하게 됩니다. 속도가 저하됨
ex : < Response.Write(“Data”)>

*< OBJECT> Tag를 사용하라

Server.CreateObject는 즉시 개체를 만듭니다. 이 개체를 나중에 사용하지 않는다면 결국 리소스를 낭비하는 것입니다. < object id=objname> 태그는 objname을 선언하지만 이 개체의 메서드 또는 속성 중 하나가 처음 사용될 때까지 objname은 실제로 만들어지지 않습니다.
Ex : < OBJECT runat=server progid=ADODB.Connection id=dbcon> < /OBJECT>

*일괄 처리 인라인 스크립트 및 Response.Write 문

응답버퍼링을 켜지 않으면 이 문(statement)이 여러 작은 패킷으로 네트워크를 통해 브라우저로 데이터를 쓰게 됩니다. 이 과정은 매우 느립니다. 작은 양의 스크립트 및 HTML을 여기 저기 배치하면 스크립트 엔진과 HTML간의 전환이 일어나서 성능이 떨어집니다. 가깝게 모여있는 인라인 식(expression)을 Response.Write를 한 번 호출하는 것으로 교체합니다. 특히 게시판과 같이 Until 문을 사용할 때 사용하시면 좋은 효과를 보것입니다.
Ex)
< table>
< % For Each fld in rs.Fields %>
< th>< % = fld.Name %>< /th>
< %
Next
While Not rs.EOF
%>
< tr>
< % For Each fld in rs.Fields %>
< td>< % = fld.Value %>< /td>
< % Next
< /tr>
< % rs.MoveNext
Wend %>
< /table>
아래에 있는 더 효율적인 코드는 행마다 응답 스트림에 쓰기가 하나 있습니다. 모든 코드는 하나의 VBScript 블록에 포함됩니다.
< table>
< %
For each fld in rs.Fields
Response.Write ("< th>" & fld.Name & "< /th>" & vbCrLf)
Next
While Not rs.EOF
Response.Write ("< tr>")
For Each fld in rs.Fields %>
Response.Write("< td>" & fld.Value & "< /td>" & vbCrLf)
Next
Response.Write "< /tr>"
End
%>< /table>


*세션 개체의 현명한 사용

ASP는 자동으로 웹 서버에 접근하는 모든 사용자를 위한 세션을 작성합니다. 각 세션은 약 10 KB의 메모리 오버헤드(세션에 저장된 모든 데이터의 상단에 있는)를 갖고 있어서 모든 요청을 약간 늦춥니다. 세션은 구성할 수 있는 시간 제한 기간동안 유효하며 이 제한 시간은 일반적으로 20분입니다.
세션이 필요하지 않은 컨텐츠(도움말 화면, 방문자 영역 등)를 세션이 꺼진 별도의 ASP 응용 프로그램으로 옮길 수 있습니다. 각 페이지를 기초로 해당 페이지에 세션 개체가 필요 없다는 것을 알리기 위해 다음과 같은 지시어를 ASP 페이지 상단에 놓을 수 있습니다.
< % @EnableSessionState=False %>
이 지시어를 사용하게 되는 이유 중 하나는 세션이 프레임셋과 관심있는 문제를 만드는 것입니다. ASP는 언제나 한번에 한 세션에서 하나의 요청만이 실행되도록 보장합니다. 따라서 브라우저가 한 사용자를 위해 여러 페이지를 요청하면 한번에 단지 하나의 ASP 요청만이 세션에 전달되기 때문에 세션 개체에 액세스할 때 멀티스레딩 문제를 방지하지만 모든 페이지는 동시에 페인트되지 않고 차례로 순차적 방법으로 페인트됩니다. 어떤 프레임셋 페이지가 세션에 의지하지 않는 다면 ASP가 @EnableSessionState=False 지시어를 사용하도록 하십시오

Posted by 시스템매니아
,
출처 : http://www.taeyo.pe.kr

★가정을 하자!!

하야시의 컴퓨터는 다음과 같다.

컴퓨터이름 : waglnet

IP :123.123.123.123 (<--IP가 참 특이하죠 ^^; )

OS : WIN2000

DATABASE : SQL2000

DB : blood (sql서버안의 계정. master, model, pubs...등과같은)

SQL ODBC연결명 : bloodwar

사용자 계정 : hahaysh

비밀번호 : 123

CNU(클라이언트유틸러티셋팅) : starcraft

엑세스 파일명 : asp.mdb

엑세스파일경로 : c:\asp\asp.mdb

엑세스파일 ODBC연결명 : asp




▷ SQL서버 : ODBC 연결방법

이방법은 ODBC 설정없이도 ODBC를 통한 접근을 가능하게 만들어준다.

Driver= {SQL Server}; Server=(컴퓨터이름)혹은(IP)혹은(CNU셋팅명);Database=디비이름; UID=아이디; PWD=비밀번호

※위의 CNU는 클라이언트 네트워크 유틸리티의 약자이다.

예)

첫 번째 : ODBC이용

Driver={SQL Server}; Server=bloodwar;Database=blood; UID=hahaysh; PWD=123

두 번째 : 컴퓨터이름이용

Driver={SQL Server}; Server=waglnet;Database=blood; UID=hahaysh; PWD=123

세 번째 : IP이용

Driver={SQL Server}; Server=123.123.123.123;Database=blood; UID=hahaysh; PWD=123

네 번째 : CNU셋팅이용

Driver={SQL Server}; Server=starcraft;Database=blood; UID=hahaysh; PWD=123

예제:

아래의 예제가 실제 사용할 수 있는 예제인데... 우리는 디비연결하는 부분만 알아보기로 했기 때문에... 잡다한(?)것들은 뺀상태로 디비연결하는 부분만 따로 그밑에 소스에서 정리를 하였다. 혼동하지 않도록 하자.

<object runat=server progid=adodb.command id=cm></object>
<object runat=server progid=adodb.connection id=db></object>
<object runat=server progid=adodb.recordset id=rs></object>
<% '이소스가 실제를 쓰는 소스일 것이다.
db.open "Driver={SQL Server}; Server=waglnet;Database=blood; UID=zerg; PWD=zerg"
function nullcheck(a)
if trim(a)="" then
%>
<script language="javascript">
alert("\n빈값이 있습니다.!!")
history.back();
</script>
<% response.end
else
nullcheck=replace(trim(a),"'","''")
end if
end function
function htmlcheck(b)
htmlcheck=server.htmlencode(b)
end function
%>


원래 하야시는 디비연결을 해주는 인클루드파일에 recordset개체와 command개체를 생성시켜두는 방법을 쓴다. 하지만 밑의 예제에서 뺐다. 이점도 유의 하기 바란다.

DNS이용 ODBC연결법 첫번째

<object runat=server progid=adodb.connection id=db></object>

<% 'ODBC설정이 선수되어야 한다. ODBC연결명으로

db.open "dsn=bloodwar;uid=hahaysh;pwd=123"

%>


DNS없이 ODBC연결법 두번째

<object runat=server progid=adodb.connection id=db></object>

<% 'ODBC설정이 필요없다. IP로

db.open "Driver={SQL Server}; Server=123.123.123.123;Database=blood; UID=hahaysh; PWD=123"

%>


DNS없이 ODBC연결법 세번째

<object runat=server progid=adodb.connection id=db></object>

<% 'ODBC설정이 필요없다. 컴퓨터이름으로

db.open "Driver={SQL Server}; Server=waglnet;Database=blood; UID=hahaysh; PWD=123"

%>


DNS없이 ODBC연결법 네번째

<object runat=server progid=adodb.connection id=db></object>

<% 'ODBC설정이 필요없다. CNU설정으로

db.open "Driver={SQL Server}; Server=starcraft;Database=blood; UID=hahaysh; PWD=123"

%>






▷ SQL서버 : OLE DB 접근 방법

Provider=SQLOLEDB; Data Source=컴퓨터이름혹은IP혹은CNU설정명;Initial Catalog= ;디비이름; User id= 아이디;password= 비밀번호

예:

첫 번째: 컴퓨터이름으로

Provider= SQLOLEDB;Data Source=waglnet;Initial Catalog= blood;User id= hahaysh; password=123

두 번째: IP이름으로

Provider= SQLOLEDB;Data Source=123.123.123.123;Initial Catalog= blood;User id= hahaysh; password=123

세 번째: CNU셋팅으로

Provider= SQLOLEDB;Data Source=starcraft;Initial Catalog= blood;User id= hahaysh; password=123



OLE DB 직접 접근 방법 첫번째

<object runat=server progid=adodb.connection id=db></object>

<% '컴퓨터이름으로

db.open "Provider= SQLOLEDB;Data Source=waglnet;”&_
“Initial Catalog= blood;User id= hahaysh; password=123"

%>


OLE DB 직접 접근 방법 두번째

<object runat=server progid=adodb.connection id=db></object>

<% ' IP로

db.open "Provider= SQLOLEDB;Data Source=123.123.123.123;”&_
”Initial Catalog= blood;User id= hahaysh; password=123"

%>


OLE DB 직접 접근 방법 세번째

<object runat=server progid=adodb.connection id=db></object>

<% 'CNU연결명으로

db.open "Provider= SQLOLEDB;Data Source=starcraft;”&_
”Initial Catalog= blood;User id= hahaysh; password=123"

%>




▷ Ms-Access OLE DB 직접접근 방법

Provider=Microsoft.Jet.OLEDB.4.0;Data Source= 엑세스파일의 물리경로

예:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\asp\asp.mdb

OLE DB 직접 접근 방법

<object runat=server progid=adodb.connection id=db></object>

<% 'CNU연결명으로

db.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\asp\asp.mdb"

%>




위의 내용을 하나의 파일로 정리를 해보았다. 참고하도록 하자.

별로 의미가 없는거기는 하지만... 한번 봐두록 하자.

도움이 되리라 생각을 한다.

<object runat=server progid=adodb.connection id=db></object>

<%

밑에꺼 중에서 하나를 쓰면 될것이다.!!

db.open "dsn=bloodwar;uid=hahaysh;pwd=123"

db.open "Driver={SQL Server}; Server=123.123.123.123;Database=blood; UID=hahaysh; PWD=123"

db.open "Driver={SQL Server}; Server=waglnet;Database=blood; UID=hahaysh; PWD=123"

db.open "Driver={SQL Server}; Server=starcraft;Database=blood; UID=hahaysh; PWD=123"

db.open "Provider=SQLOLEDB;Data Source=waglnet;Initial Catalog=blood;User id=hahaysh; password=123"

db.open "Provider=SQLOLEDB;Data Source=123.123.123.123;Initial Catalog=blood;User id=hahaysh; password=123"

db.open "Provider=SQLOLEDB;Data Source=starcraft;Initial Catalog=blood;User id=hahaysh; password=123"

db.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\asp\asp.mdb

db.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\asp\asp.mdb"

%>




※아래의 OLEDB에대해 너무나 깜찍하게 정리를 해주신 태오님의 멘트를 같이 올린다.

더욱 자세한 사항은 태오님의 사이트를 방문해서 자세히 보도록 하자.

그럴리는 없겠지만, 혹시나해서 태오님의 사이트주소를 같이 올린다.

자주 들러 태오님의 내공을 흡입해보도록 하자.!!

http://www.taeyo.pe.kr

잠깐 !! 잘 모르겠는디요. ADO, ODBC, OLEDB 뭐가 무엇을 하는것이죠?

그렇습니다. 분명 혼란함을 느끼시는 분들이 있을 것입니다.
이 즈음에서 간단하게만 정리하고 계속나아가고자 하는데요.
ADO는 데이터를 다루는 개체이며, ODBC, OLEDB는 데이터의 제공자격입니다.
무슨 말인지 잘 이해가 안 된다면 다음 예를 보도록 하세요. (이것은 단지 예일 뿐이기는 합니다)

우리에게는 동시통역기가 하나있다고 가정해 봅시다요.
이를 동작시키면 외국말들이 자동으로 알아들을 수 있게 나온다고 가정합니다.
또한, 우리가 이야기하면 자동으로 번역해서 말을 전해주기도 하고 말이죠.
대신에 그러한 기능을 사용하기 위해서는 그 통역기에는 통역하고픈 각각의 나라용 칩을
기계에 추가해 주어야 합니다.

기본적으로 미국, 러시아, 일본의 칩은 제공된다고 가정합시다.
이제 외국사람들을 만나는 것은 겁나지 않을 것입니다.
만나면 즉시 이 자동통역기를 동작시키면 되니 말이죠. 하하.. 이젠 외제를 만나도 걱정없을 검다...
그런데, 갑작스럽게 남아프리카 사람을 만나게 되었습니다. 이 때도 걱정이 없슴다.
남아프리카용 통역 칩을 사서 기계에 장착하면 되니 말이죠. 돈만 있으면... 하하

이 동시통역기가 바로 ADO라고 볼 수 있으며, 각 나라용 칩은 ODBC 라고 볼 수 있습니다.
그리고 각각의 외국인들은 데이터베이스들이라고 볼 수 있고 말이죠. 이해가 가시죠?

그런 어느날, 기존의 통역기능을 좀 더 효과적으로 사용할 수 있으면서도,
동물의 언어까지도 통역이 가능한 기술이 개발되었으니 그것이 바로 OLEDB 기술이라
하더라는 말씀입니다.

주의할 것은 이렇게 원본 데이터를 우리가 사용할 수 있게 제공해주는 역할을 하는 것이
ODBC, OLEDB 기술이구요. 이렇게 제공받은 데이터를 처리하는 기술이 ADO라는 것.

어때요? 쏙쏙 들어오죠???

Posted by 시스템매니아
,
출처 : http://www.sqlworld.pe.kr

데이터베이스를 사용하다보면 잘못된 트랙젠션으로 인하여 그 이전의 상태로 복구해야 하는 필요성을 느끼게 되는 경우가 있습니다. 예를 들어 잘못해서 테이블을 전부 지워버린 경우 그 이전 상태로 복구하거나 아니면 수작업으로 입력해야 합니다.

로그 백업을 이용하여 특정 시점으로 데이터베이스를 복구하는 방법을 살펴보도록 하겠습니다.


가끔 이런 질문을 받습니다.

"큰일 났어요. 잘못해서 테이블을 다 지워버렸거든요. 이거 복구하지 못하면 저 짤려요. 제발 살려주세요.."

저도 위와 같은 경우를 경험한 적이 있었습니다. 분명히 SELECT를 하려는 생각으로 쿼리문을 날렸는데 아뿔사, 제가 수행한 쿼리문은 SELECT 문이 아니고 DELETE 문이었습니다. 참으로 황당하더군요.

SQL 서버에서는 트랜잭션 로그 백업을 이용하여 특정 시점으로 데이터베이스를 복구하는 방법이 있습니다. 위와 같이 테이블을 전부 지워버렸으면 지우기 바로 이전 상태로 복구하면 모든 문제는 해결이 됩니다. 물론 이와 같은 복구 작업이 항상 가능한 것은 아닙니다. 다음과 같은 조건이 만족된 상태여야 합니다.

① 데이터베이스 백업모델이 "최대" 여야 합니다.
② 전체 백업을 받은 상태여야 합니다.
③ 이전의 로그백업이 있다면 안전하게 보관된 상태여야 합니다.

지금 부터의 복구 예제는 다음과 같은 순서로 이루어 집니다.

o 예제 테이블 만들기
o 테이블에 5개의 레코드 추가
o 데이터베이스 전체 백업
o 테이블에 5개의 레코드 추가
o 데이터베이스 로그 백업
o 테이블에 5개의 레코드 추가
o 테이블 삭제 (문제발생)
o 현 시점의 로그 백업
o 전체백업 Restore
o 기존 로그 백업 Restore
o 문제 발생후 백업 받은 로그 Restore(테이블을 지우기 전까지만)

단, 예제에 사용되는 sqlworld 데이터베이스의 복구모델은 "최대" 입니다.

1) 데이터베이스 전체 백업

우선 Test1 이라는 예제 테이블을 만들고 레코드 5개를 추가하도록 하겠습니다.


CREATE TABLE Test1
(
col1 int,
col2 char(05)
)
GO
INSERT INTO Test1 VALUES(1,'AAAAA')
INSERT INTO Test1 VALUES(2,'BBBBB')
INSERT INTO Test1 VALUES(3,'CCCCC')
INSERT INTO Test1 VALUES(4,'DDDDD')
INSERT INTO Test1 VALUES(5,'EEEEE')


이제 지금 상태의 sqlworld 데이터베이스를 전체 백업 받도록 하겠습니다.


BACKUP DATABASE sqlworld TO DISK = 'D:\sqlworld.bak'

위 전체 백업으로 인해 우리는 어떤 사태가 발생하더라도 Test1 테이블에 5개의 레코드가 추가된 상태로 복구를 할 수 있습니다.(당연하죠)

2) 로그백업

이제Test1 테이블에 레코드를 5개 더 추가하도록 하겠습니다.


INSERT INTO Test1 VALUES(6,'FFFFF')
INSERT INTO Test1 VALUES(7,'GGGGG')
INSERT INTO Test1 VALUES(8,'HHHHH')
INSERT INTO Test1 VALUES(9,'IIIII')
INSERT INTO Test1 VALUES(10,'JJJJJ')

앞에서 전체 백업을 받은 상태이므로 이제는 방금 작업한(5개의 레코드 추가) 트랜잭션만을 보관하도록 로그 백업을 받도록 하겠습니다. (물론 지금 같은 경우는 예제이므로 데이터량이 많지 않아 전체 백업을 다시 받아도 되지만 실무에서는 전체 데이터베이스 양이 엄청 큰 경우라면 로그 백업을 받는게 더 효율적일 수 있습니다.)


BACKUP LOG sqlworld TO DIsk = 'D:\sqlworld_log.bak'

만일 이 상태에서 데이터베이스에 문제가 발생하여 복구를 해야 하는 경우는 처음에 받은 전체 백업을 Restore 한 후에 뒤에 받은 로그 백업을 Restore 하면 됩니다. 여기 까지는 누구나 다 아는 사실입니다.

3) 사태발생

이제Test1 테이블에 레코드를 5개 더 추가하도록 하겠습니다.


INSERT INTO Test1 VALUES(11,'KKKKK')
INSERT INTO Test1 VALUES(12,'LLLLL')
INSERT INTO Test1 VALUES(13,'MMMMM')
INSERT INTO Test1 VALUES(14,'NNNNN')
INSERT INTO Test1 VALUES(15,'OOOOO')

자! 지금까지는 일반적인 작업이 순조롭게 진행이 되고 있는 상태임을 볼 수 있습니다.

그런데 제가 잘못해서 이 상태에서 다음과 같은 퀴리문을 이용하여 Test1 테이블을 전부 삭제 해 버렸습니다. 이 때의 시간이 2001-11-19 1:10AM 입니다.


DELETE FROM Test1

큰일 났습니다!
엄청난(?) 양의 Test1 테이블이 전부 지워져 버렸습니다!

4) 복구하기

이제 해야 할 일은 Test1 테이블을 지우기전 즉 15개의 레코드가 존재하는 상태로 복구하는 것입니다. 다음의 순서를 정확히 기억하시기 바랍니다.

1) 현재 시점의 로그를 NO_TRUNCATE 옵션을 이용하여 백업받기

다음과 같이 NO_TRUNCATE 옵션을 이용하여 현재 상태의 로그를 백업 받습니다.(실무에서는 "모두 작업을 멈추시오!" 라고 외치고 백업 받아야 합니다)


BACKUP LOG sqlworld TO DISK = 'D:\Check.bak' WITH NO_TRUNCATE

2) 전체 백업 Restore

우선 제일 먼저 백업 받은 전체 백업을 Restore해야 합니다. 단 계속해서 추가적인 Restore 작업이 수행되어야 하므로 WITH NORECOVERY 옵션을 이용해야 합니다.


RESTORE DATABASE sqlworld FROM DISK = 'D:\sqlworld.bak' WITH NORECOVERY

이제 처음 레코드 5개가 추가된 상태로는 복구가 되었습니다. 하지만 WITH NORECOVERY를 사용했으므로 아직은 접근할 수 없는 상태입니다.

3) 로그 백업 Restore

전체 백업 후에 5개의 레코드를 추가하고 백업받은 로그가 있습니다. 이것을 WITH NORECOVERY 옵션으로 계속해서 Restore 해야 합니다.


RESTORE LOG sqlworld FROM DISK = 'D:\sqlworld_log.bak' WITH NORECOVERY

이제 처음 레코드 5개를 포함해서 새로 추가된 5개의 레코드 까지는 복구가 된 셈입니다. 하지만 WITH NORECOVERY를 사용했으므로 여전히 접근할 수 없는 상태입니다

4) STOPAT을 이용한 특정 시점까지의 로그 백업 Restore

문제 발생후 백업받은 로그 안에는 새롭게 추가된 5개의 레코드에 대한 작업과 함께 테이블 전체를 지운 작업이 포함되어 있습니다. 여기서 우리는 테이블 전체를 지운 작업 바로 이전까지만 Restore를 하면 됩니다. 이때 사용되는 것이 STOPAT 이라는 옵션입니다.

이 옵션을 이용하여 다음과 같이 테이블 전체를 지웠던 2001-11-19 1:10AM 이전 까지만 Restore 하면 됩니다. 그래서 2001-11-19 01:09 까지만 Restore 하겠습니다.


RESTORE LOG sqlworld FROM DISK = 'D:\Check.bak'
WITH RECOVERY, STOPAT = '2001-11-19 01:09'

그리고 WITH RECOVERY 옵션을 사용한 이유는 Restore가 다 끝났으므로 사용자가 접근 할 수 있게 하기 위함 입니다.

이렇게 해서 우리는 완벽하게 테이블이 지워지기 바로 전까지를 복구 할 수 있었습니다.

5) 정리

위 내용을 직접 수행해서 결과를 확인해보시기 바랍니다. 그렇지 않고 실제 문제가 발생한 경우에 복구 작업을 하려고 하면 안절부절 하게되기 때문입니다. 많은 분들이 백업은 받을 줄 아는데 정작 중요한 복구는 못하는 경우가 있습니다.

물론 복구할 일이 없는데 제일 좋지만 만일의 경우에 대비해서 연습해 두는 것이 좋습니다. 그리고 백업받은 데이터는 안전하게 보관을 하고 있어야 합니다. 아무리 복구 방법을 잘 안다고 해도 백업받은 데이터가 손상이 된 상태라면 아무 의미가 없기 때문입니다.
Posted by 시스템매니아
,