'mysql'에 해당되는 글 62건

  1. 2007.09.22 Ms-Sql mdf 화일과 ldf 파일의 분리와 연결 복구하기
  2. 2007.09.21 Ms-Sql SQL 서버간에 로그인 정보(사용자 정보) 옮기기
  3. 2007.09.21 Userdump.exe 도구를 사용하여 덤프 파일을 만드는 방법
  4. 2007.09.21 Ms-Sql 데드락(DeadLock)의 방지
  5. 2007.09.21 Ms-Sql 백업파일 안에 들어 있는 MDF, LDF 이상 확인법
  6. 2007.09.21 Windows 2000 레지스트리에서 이용자와 소속 바꾸기
  7. 2007.09.21 Windows 서비스에서 사용되는 TCP/IP 포트(Port)
  8. 2007.09.21 Windows 2000 예약 리부팅하기
  9. 2007.09.21 Ms-Sql SQL 서버 CPU 사용 모니터링 방법
  10. 2007.09.21 Windows 2000 명령창(cmd)에서 터미널서비스 접속자 연결끊기
  11. 2007.09.20 Windows 2003 "라이센스를 제공할 터미널서버 라이센스서버가 없으므로 원격 연결이 끊어졌습니다"
  12. 2007.09.20 Ms-Sql 웹서버를 독립서버로 이전후 OLEDB연결이 안될때
  13. 2007.09.20 Ms-Sql 정상적으로 분리되지않은 MDF파일만으로 DB복구하기
  14. 2007.09.20 도스창(MS-DOS)창에서 nslookup 이용하기
  15. 2007.09.20 윈도우 시스템에서 타임 서비스 설정하기
  16. 2007.09.20 Ms-sql EM에서 디비로그 삭제하기
  17. 2007.09.20 SQL Server의 보안을 개선하기 위해 수행할 수 있는 조치사항
  18. 2007.09.20 windows2003 iis6에서 첨부화일이 다운로드 않되는경우
  19. 2007.09.20 IIS에서 백업및 복원하기
  20. 2007.09.20 windows2003에서 IIS SMTP 메일보내기 소스
  21. 2007.09.20 SQL Server 연결시 named pipe를 이용하여 연결 확인하는 방법
  22. 2007.09.20 IIS FTP에 패시브모드 포트 범위 설정
  23. 2007.09.20 Command 창에서 네트워크를 설정하는 방법
  24. 2007.09.19 Server-U에서 패시브 모드 설정
  25. 2007.09.19 xml에서 추출한 한글값이 깨지는 현상 해결
  26. 2007.09.19 MS-SQL 데이터정렬 변경하기
  27. 2007.09.19 MS-SQL SUSPECT(주의 대상) 발생시 대처 방안
  28. 2007.09.19 MSSQL 에서 서비스팩 적용여부 확인
  29. 2007.09.19 SQL 2005 에서 dbcc 명령어를 사용하여 수동으로 무결성 검사
  30. 2007.09.19 BD 포트 링크스피트조절(Link Speed)
-EM(Enterprise Manager)를 이용한 데이터베이스 분리

1.데이터베이스 위에서 마우스 오른쪽 번튼을 눌러 나타나는 단축메뉴에서 [모든작업(K)] - [데이터베이스 분리(H)] 를 선택합니다.

2.[데이터베이스 분리] 대화창이 표시됩니다. 이 화면에서 "분리 전에 통계 먼저 업데이트[S]"를 선택하시고 [확인] 버튼을 누르시면 데이터베이스가 분리됩니다.

-sp_detach_db 시스템 저장프로시져를 이용한 데이터베이스 분리

1.다음과 같이 sp_detach_db 시스템 저장프로시져를 이용하여 간단하게 데이터베이스를 분리 할 수 있습니다.

USE master
GO
EXEC sp_detach_db test

-EM(Enterprise Manager)를 이용한 데이터베이스 연결

1. 우선 연결할 대상이 되는 *.mdf, *.ldf 파일을 특정한 디렉토리에 위치를 시킵니다. 예로 test.mdf, test_log.ldf 파일을 E:\Data 폴더에 있다고 가정합니다.

2. "데이터베이스" 위에서 마우스 오른쪽 버튼을 눌러 단축메뉴를 표시하면 [모든작업(K)] - [ 데이터베이스 연결(A)]을 선택할 수 있습니다.

3. 데이터베이스 연결을 위한 대화창이 표시됩니다.

4. 찾기 버튼 [...] 을 누르면 연결할 데이터베이스 파일의 위치를 쉽게 찾을 수 있는 탐색창이 뜹니다. 이 화면에서 연결하고자 하는 데이터베이스 파일 *.mdf 을 선택하면 됩니다.

5. 데이터베이스 파일을 선택한 후의 화면입니다. 원하는 경우 "다음 이름으로 연결(A)" 부분에 다른 이름을 주어 기존의 데이터베이스와는 다른 이름을 갖는 데이터베이스로 연결을 할 수 있습니다.

6. [확인] 버튼을 누르면 데이터베이스 연결이 완료됩니다.


-sp_attach_db 또는 sp_attach_single_file_db 시스템 저장프로시져를 이용한 데이터베이스 연결

sp_attach_db의 경우는 데이터베이스 파일이 여러개인 경우(한개의 *.mdf 파일과 여러개의 *.ndf 파일들)에 사용을 하게 되며, sp_attach_single_file_db의데이터베이스 파일이 한개(한개의 *.mdf 파일)인 경우 사용하면 됩니다. 데이터베이스 파일이 한개인 경우는 두가지 방법중 아무거나 사용하시면 됩니다. 그리고 sp_attach_db의 경우는 16개의 데이터베이스 파일까지 한번에 지정이 가능합니다.

만일 위에서 연결했던 test.mdf 파일을 sp_attach_db를 이용해서 연결한다면 다음과 같이 하시면 됩니다.

USE master
GO
EXEC sp_attach_db 'test', 'E:\Data\test.mdf', 'E:\Data\test_log.ldf'

위 연결 방법은 정확히 한다면 다음과 같은 문법에 따라 사용하셔야 합니다. 하지만 변수명 생략이 가능하기 때문에 위와 같이 사용한 것입니다.


USE master
GO
EXEC sp_attach_db @dbname = 'test', @filename1 = 'E:\Data\test.mdf', @filename2 = 'E:\Data\test_log.ldf'

test.mdf 파일을 sp_attach_single_file_db를 이용해서 연결한다면 다음과 같이 하시면 됩니다.

USE master
GO
EXEC sp_attach_single_file_db 'sqlworld', 'E:\Data\sqlworld.mdf'

-- 또는

EXEC sp_attach_single_file_db @dbname = 'test',
@physname = 'E:\Data\test.mdf'

-- 또는

이전 서버와 문자셋 정보(sp_helpsort 명령으로 보실수 있습니다.)가 같고

이전에 사용하던 SQL서버가 정상적인 상태로 종료 되었을때(엔터프라이즈 관리자에

서SQL서버를 스탑 시켰거나.. 정상적으로 윈도우 시스템을 종료시킨 경우 - 해당

mdf 화일과 ldf 화일이 정상적으로 닫혔을 경우) 복구가 가능하며 이때 사용하는 명령은

EXEC sp_attach_db 'pubs'

, 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'

, 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'


명령으로 복구할 수 있습니다.

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

SQL Server의 데이터베이스를 다른 서버로 옮기기는 쉽습니다. 항상 문제가 되는 것은 다른 서버 로그인 정보를 옮기는 것입니다.(물론 몇개 안되면 다시 만들면 되지만) Master 데이터베이스를 백업받아 다른 서버에 리스토어 하면 되지만 그리 쉬운 방법은 아닙니다. DTS를 이용해서 로그인 정보를 다른 서버로 옮길 수 있으나 SQL Server 7.0에서는 패스워드를 정확히 옮기지 못하는 걸로 압니다. SQL Server 2000에서는 정확하게 로그인 정보를 옮길 수 있습니다.

이런 이유로 MS에서 SQL Server 7.0 간의 로그인 정보 이동을 위하여 제공하는 스크립트가 있습니다. 이 스크립트를 소개하고자 합니다.


1. 아래 스크립트를 수행하여 시스템 저장프로시져 sp_hexadecimal를 만듭니다.

USE master
GO

IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL
DROP PROCEDURE sp_hexadecimal
GO

CREATE PROCEDURE sp_hexadecimal
@binvalue varbinary(256),
@hexvalue varchar(256) OUTPUT
AS
DECLARE @charvalue varchar(255)
DECLARE @i int
DECLARE @length int
DECLARE @hexstring char(16)
SELECT @charvalue = '0x'
SELECT @i = 1
SELECT @length = DATALENGTH (@binvalue)
SELECT @hexstring = '0123456789ABCDEF'

WHILE (@i <= @length)
BEGIN
DECLARE @tempint int
DECLARE @firstint int
DECLARE @secondint int
SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))
SELECT @firstint = FLOOR(@tempint/16)
SELECT @secondint = @tempint - (@firstint*16)
SELECT @charvalue = @charvalue +
SUBSTRING(@hexstring, @firstint+1, 1) +
SUBSTRING(@hexstring, @secondint+1, 1)
SELECT @i = @i + 1
END

SELECT @hexvalue = @charvalue
GO
IF OBJECT_ID ('sp_help_revlogin') IS NOT NULL
DROP PROCEDURE sp_help_revlogin
GO

CREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL AS
DECLARE @name sysname
DECLARE @xstatus int
DECLARE @binpwd varbinary (255)
DECLARE @txtpwd sysname
DECLARE @tmpstr varchar (255)

IF (@login_name IS NULL)
DECLARE login_curs CURSOR FOR
SELECT name, xstatus, password FROM master..sysxlogins
WHERE srvid IS NULL AND name <> 'sa'
ELSE
DECLARE login_curs CURSOR FOR
SELECT name, xstatus, password FROM master..sysxlogins
WHERE srvid IS NULL AND name = @login_name

OPEN login_curs
FETCH NEXT FROM login_curs INTO @name, @xstatus, @binpwd

IF (@@fetch_status = -1)
BEGIN
PRINT 'No login(s) found.'
CLOSE login_curs
DEALLOCATE login_curs
RETURN -1
END

SET @tmpstr = '/* sp_help_revlogin script '
PRINT @tmpstr
SET @tmpstr = '** Generated '
+ CONVERT (varchar, GETDATE()) + ' on ' + @@SERVERNAME + ' */'
PRINT @tmpstr
PRINT ''
PRINT 'DECLARE @pwd sysname'

WHILE (@@fetch_status <> -1)
BEGIN

IF (@@fetch_status <> -2)
BEGIN
PRINT ''
SET @tmpstr = '-- Login: ' + @name
PRINT @tmpstr

IF (@xstatus & 4) = 4
BEGIN -- NT authenticated account/group

IF (@xstatus & 1) = 1
BEGIN -- NT login is denied access
SET @tmpstr = 'EXEC master..sp_denylogin ''' + @name + ''''
PRINT @tmpstr
END

ELSE BEGIN -- NT login has access
SET @tmpstr = 'EXEC master..sp_grantlogin ''' + @name + ''''
PRINT @tmpstr
END

END

ELSE BEGIN -- SQL Server authentication
IF (@binpwd IS NOT NULL)
BEGIN -- Non-null password
EXEC sp_hexadecimal @binpwd, @txtpwd OUT
IF (@xstatus & 2048) = 2048
SET @tmpstr = 'SET @pwd = CONVERT (varchar, ' + @txtpwd + ')'
ELSE
SET @tmpstr = 'SET @pwd = CONVERT (varbinary, ' + @txtpwd + ')'
PRINT @tmpstr
SET @tmpstr = 'EXEC master..sp_addlogin ''' + @name
+ ''', @pwd, @encryptopt = '
END

ELSE BEGIN
-- Null password
SET @tmpstr = 'EXEC master..sp_addlogin ''' + @name
+ ''', NULL, @encryptopt = '
END

IF (@xstatus & 2048) = 2048
-- login upgraded from 6.5
SET @tmpstr = @tmpstr + '''skip_encryption_old'''
ELSE
SET @tmpstr = @tmpstr + '''skip_encryption'''
PRINT @tmpstr
END

END

FETCH NEXT FROM login_curs INTO @name, @xstatus, @binpwd
END

CLOSE login_curs
DEALLOCATE login_curs
RETURN 0
GO



2. EXEC master..sp_help_revlogin 를 수행하면 로그인 정보를 만드는 스크립트가 만들어집니다.

3. 이 스크립트를 복사하여 새로운 서버에서 수행합니다.

※ 이 내용는
http://support.microsoft.com/support/kb/articles/Q246/1/33.ASP의 내용을 참고한 것임을 알려드립니다.
Posted by 시스템매니아
,
* 예외가 발생하며 종료되는 프로세스의 .Dmp 파일을 만들려면 다음과 같이 한다.

1. Program Files\Debuggers\Userdump 폴더에서 Userdump 도구에 포함된 Setup.exe 프로그램을 실행한다.
이 프로그램은 커널 모드 드라이브인 Userdump.sys 파일을 설치하고 제어판에 Process Dump 아이콘도 만든다.
2. 제어판에서 Process Dump를 두 번 누른 다음 Exception Monitoring 탭에서 New를 눌러 Monitor 목록에 적절한 프로그램 이름(예: Mtx.exe 또는 Dllhost.exe)을 추가한다. OK를 누른다.
3. Monitor 상자에서 프로그램 이름을 누른 다음 Rules를 누릅니다. 이제 이 프로그램에 대해 Userdump.exe를 시작하는 "액세스 위반(c0000005)"과 같은 오류 유형을 선택할 수 있다.
Mtx.exe 또는 Dllhost.exe가 액세스 위반을 생성할 때 먼저 Userdump.exe가 시작되어 %SystemRoot% 폴더에서 덤프 파일(.dmp)을 만든다. 이 .dmp 파일을 분석하면 Winlogon 액세스 위반 오류의 원인을 찾을 수 있다.

* 응답하지 않는 프로세스에 대해 .Dmp 파일을 만들려면 다음과 같이 한다.

1. Program Files\Debuggers\Userdump 폴더에서 Userdump 도구에 포함된 Setup.exe 프로그램을 실행한다.
2. 프로그램이 응답하지 않을 때 명령 프롬프트에 userdump PID 명령을 입력합니다. 여기에서 PID 는 응답하지 않는 프로그램의 프로세스 ID이다.
프로그램의 PID를 구하려면 작업 관리자를 열고 프로세스 탭을 누른다.
3. userdump PID 명령을 실행하면 WinDBG와 같은 프로그램에서 사후 디버깅을 수행하는 데 사용할 수 있는 .dmp 파일이 생성된다.
Posted by 시스템매니아
,
출처 : http://www.devpia.com
1.Lock의 간단한 이해..

어느 웹팀이 웹페이지 개발을 하고 있는데 하나의 컴퓨터에서 터미날서비스를 이용하여 작업을 하고 있다.

하지만 A 라는 사람이 Default라는 화일을 사용하고 있고 B라는 사람이 이것을 열려고 한다면 어떻게 될것인가??

두사용자가 모두 쓰기를 해버린다면 작업은 엉망이 될것이다. 그것을 방지하기 위해서 VS.NET툴에 소스세이프라는 것을 이용하여

한사람이 작업을 할때는 다른이가 접근을 막아주는 기능을 한다.

이것이 바로 Lock의 개념인것이다.

쉽게 다른사람이 이 파일을 쓸때 다른 사람이 쓰지 못하도록 막는것.

멀티 스레드같은 프로그램에서도 많이 사용하는 개념이기도 하고

DataBase의 데이터 처리 역시 같은 개념인 것이다

2. NoLock과 DeadLock의 이해..

NoLock에 관해서 먼저 이해를 해보도록 하겠다.

Lock을 안걸면 되는거지 NoLock은 또 무엇인가??

이렇게 이해가 와 닿을수 있다. 하지만 ADO에서 지원하는 자동 트랙잭션 처리와 같은 경우가 있기에 NoLock이 필요한 것이다

그럼 왜 Lock을 걸지 않느냐..?? 한가지 예를 들어 설명 하도록 하겠다.

어느 경매사이트에 마감 1분을 남겨두고 있다. 헌데 벤츠가 50원이다.. 사람들이 미친듯이 입찰을 하려고 달려들 것이다.

그 숫자가 만명이라고 가정해보자 입찰을 할때 Update를 시킬텐데..수만명의 사용자가 그것의 처리를 기달려야 한다면..

그 차는 헐갑에 넘어 가고 말것이다.

정말 쉬운 예로 게시판에 글을 읽었을 때 조회수가 update가 된다. 헌데 이글을 수만명의 사람들이 동시에 접근을 한다고 한다.

그럼 한사람 한사람의 업데이트를 기달리게 될 것이고 사이트의 효율성이 떨어질것이다.

등등의 많은 예들이 NoLock의 필요성을 말해준다.


다음은 DeadLock의 관한 이해를 보도록 하겠다.

DeadLock은 쉽게 표현하자면 재귀함수와 같은 무한루프라고 표현에 가깝다. 이것 역시 간단한 예제를 통해 예를 들어 보겠다.

Transaction1 (A ->B)처리

Transaction2 (B ->A)처리

저기서 A와 B에 락이 걸려있다고 가정해보자.. 어떠한가? 서로 잡고 마냥 기달리기만 하지 않겠는가?

1번은 A를 잡고 있는 상태로 2번에서 잡고 있는 상태로 B를 놔주기를 기다릴것이고 2번은 B를 잡고 있는채로 A를 놔주기를

바라고 있을것이다. 이것이 잘 운영되던 사이트가 속도가 느려지고 이유도 모르게 서비스가 중지 되는 가장큰 이유가 된다.

반드시 처리해야할.. 이것이 바로 DeadLock 이라는 것이다.

3.DeadLock의 해결..

데드락을 해결하기 위해서는 3가지의 방법이 존재한다. 첫번째는 타임아웃을 주어 어느 일정시간 동안 락을 기달리다가 반응이 없으면

롤백시키는 즉 타임아웃을 설정하는 것이다.

EX)

-락타임 아웃의 설정

SET LOCK_TIMEOUT 10000

- 락 타임아웃 확인

SELECT @@LOCK_TIMEOUT

- 트랜잭션 코드 추가

데드락을 해결할수 있는 첫번째 방법이였다.

두번째는 프로시저에 우위를 설정해 주는것이다. 이방법은 우위가 낮은 프로시저를 먼저

취소시킨다는 것이다. 우선 순위의 레벨은 Low와 Normal로 나타낼수 있고 Priority라는것을 이용하여 설정 할수가 있다.

EX)

SET DEADLOCK_PRIORITY LOW

go

... 트랜잭션 구문



그리고 세번재 방법은 한 프로시저가 너무 오랫동안 사용하고 있다 의심되는것을 강제로 종료 시키는 방법이다.

이것은 KILL이라는 SQL명령어를 이용하여 사용 할 수 있다.

4.DeadLock 예방하기

데드락 발생시 처리해야 하는것도 중요하지만 데드락을 미리 예방을 하여 락과 블러킹의 횟수를 줄이는것 역시 중요하다.

그럼 데드락을 예방법 첫번재로 트랜잭션안의 구문의 처리 순서를 일치 시킨다는 것이다.

예를들어 보겠다.

트랜잭션1=> A작업->B작업->C작업

트랜잭션2=> C작업->A작업->B작업

이런식으로 처리 되어진다면 둘이 동시에 처리가 된다면 분명 데드락이 발생 할 것이다. 여기서 우리가 트랙잭션2의 작업의

순서를 1과 똑같이 A작업->B작업->C작업 으로 처리를 한다면 데드락의 발생 비율을 줄일수 있을 것이다.

그리고 두번째는 트랙잭션의 처리속도를 최대한 짧게 해준다는 것이다. 짧으면 짧을수록 락 발생 확률도 줄여 들기 때문이다.

이것은 너무 당연한 것일수 있고 가장 중요한것이 된다. 그리고 마지막으로 트랜잭션의 격리 수준을 최대한 낮게 해 주는것이다.

되도록 낮은 격리 수준을 사용하면 데드락은 물론 성능도 보다 향상시 킬수 있기 때문이다.

데드락의 예방은 무엇보다도 가장 기복적으로 락의 유지 시간을 보다 짧게 해주는것이 가장 중요할 것이다.

*TIP(출서: 모사이트였는데-_-)

HOLDLOCK : 필요한 테이블, 행 또는 데이터 페이지가 더 이상 필요 없게 되자마자 해제하지 않고 트랜잭션이 완료될 때까지 공유 잠금을 보유한다. HOLDLOCK은 SERIALIZABLE과 같은 의미.

NOLOCK : 공유 잠금을 실행하거나 단독 잠금을 유지하지 않음. 이 옵션을 적용하면 커밋되지 않은 트랜잭션이나 읽는 중 롤백된 페이지 집합을 읽을 수 있음. 커밋되지 않은 읽기가 가능합니다. SELECT 명령문에만 적용됨..

PAGLOCK 주로 단일 테이블 잠금이 취해지는 곳에서 페이지 잠금을 사용함.

READCOMMITTED : READ COMMITTED 격리 수준에서 실행되는 트랜잭션과 같은 잠금 방법을 사용하여 스캔을 수행함. 기본적으로, SQL Server 2000은 이 격리 수준에서 실행됨

READPAST : 잠겨 있는 행을 건너뜀 이 옵션을 사용하면 다른 트랜잭션이 이러한 행에 대해 잠금을 해제할 때까지 기다리지 않고 다른 트랜잭션에 의해 잠겨 있는 행을 건너뜀. 그렇지 않으면 일반적으로 결과 집합에 나타남. READPAST 잠금 참고는 READ COMMITTED 격리 수준에서 작동하는 트랜잭션에만 적용되며 행 수준 잠금 뒤만 읽음. SELECT 문에만 적용됨

READUNCOMMITTED == NOLOCK

REPEATABLEREAD : REPEATABLE READ 격리 수준에서 실행되는 트랜잭션과 같은 잠금 방법으로 스캔을 수행함.

ROWLOCK : 성긴 페이지 잠금 및 테이블 수준의 잠금 대신 행 수준 잠금을 사용함

RERIALIZABLE : SERIALIZABLE 격리 수준에서 실행되는 트랜잭션과 같은 잠금 방법으로 스캔을 수행함. HOLDLOCK과 같음

TABLOCK : 세부적인 행 또는 페이지 수준 잠금 대신 테이블 잠금을 사용함. SQL Server는 명령문이 끝날 때까지 이 잠금을 보유함. 그러나 HOLDLOCK을 함께 지정했으면 트랜잭션이 끝날 때까지 잠금이 보유됨.

TABLOCKX : 테이블에 대해 단독 잠금을 사용함. 이 잠금을 사용하면 다른 트랜잭션이 테이블을 읽거나 업데이트할 수 없고 명령문이나 트랜잭션이 끝날 때까지 보유됨

UPDLOCK : 테이블을 읽는 중 공유 잠금 대신 업데이트 잠금을 사용하며 명령문이나 트랜잭션이 끝날 때까지 보유됩니다. UPDLOCK을 사용하면 다른 트랜잭션이 읽는 것을 차단하지 않고 데이터를 읽을 수 있고 마지막으로 읽은 후 데이터가 변경되지 않으며 나중에 업데이트할 수 있습니다.

XLOCK : 명령문에 의해 처리되는 모든 데이터에 대해 트랜잭션이 끝날 때까지 보유될 단독 잠금을 사용합니다. 이 잠금은 PAGLOCK 또는 TABLOCK으로 지정할 수 있으며 이 경우 단독 잠금이 해당 세부성 수준에 적용됩니다.

Posted by 시스템매니아
,
RESTORE FILELISTONLY
FROM < backup_device >

위 T - SQL 사용하면 백업파일 안에 들어 있는 내용들이 보입니다.

RESTORE VERIFYONLY
FROM < backup_device >

위 T - SQL은 백업을 확인하지만 백업을 복원하지는 않고, 백업파일에 문제가 있는지 검사합니다.

Posted by 시스템매니아
,
[사용자와 소속 이름 바꾸기]

시스템 등록정보 창에는 운영체제를 깔 때 썼던 이용자와 회사 이름이 적혀있습니다.
레지스트리에서 간단히 고칠수 있고 간단합니다.

시작-> 실행-> regedit-> 레지스트리 편집기가 열립니다

W2K경우 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion로 가서

오른쪽 창에서 registeredowner,registeredorganization 키를 찾는다
registeredowner에는 이용자 이름이,registeredorganization에는 회사 이름이 등록되어 있다.
이름을 바꾸려면 각 키를 마우스 오른쪽 버튼으로 누른뒤 `수정`을 골라 `문자열 편집`창을 띄운 다음
`값 데이터` 칸에 원하는 이름을 쓰고 `확인` 버튼을 누른다

Posted by 시스템매니아
,
1. Windows 기본 서비스

액티브 디렉토리 (LDAP) TCP: 389
액티브 디렉토리 (LDAP-SSL) TCP: 636
브라우징 UDP: 137,138
DHCP 임대 UDP: 67,68
DHCP 관리자 TCP: 135
디렉토리 복제 TCP: 135
UDP: 138
직접 호스트 (SMB,CIFS) TCP: 445
DNS 관리 TCP: 135
DNS 이름분해 TCP: 53
UDP: 53
이벤트 뷰어 TCP: 139
파일공유 TCP: 139
글로벌 카탈로그 (LDAP) TCP: 3268
글로벌 카탈로그 (LDAP-SSL) TCP: 3269
IPSec UDP: 500(IKE)
IP Protocol: 50(ESP), 51(AH)
인터넷 프린팅 프로토콜 (IPP) TCP: 631
커버로스 TCP: 88
UDP: 88
2계층 터널링 프로토콜 (L2TP) UDP: 1701
로그온 시퀀스 TCP: 139
UDP: 137,138
Net Logon UDP: 138
Pass Through Validation TCP: 139
UDP: 137,138
성능모니터 TCP: 139
지점간 터널링 프로토콜 (PPTP) TCP: 1723
IP Protocol: 47(GRE)
인쇄 TCP: 139
UDP: 137,138
레지스트리 편집기 TCP: 139
서버 관리자 TCP: 139
트러스트 TCP: 139
UDP: 137,138
사용자 관리자 TCP: 139
WinNT 진단 TCP: 139
WinNT 보안채널 TCP: 139
UDP: 137,138
WINS 복제 TCP: 42
WINS 관리자 TCP: 135
WINS 등록 TCP: 137

2. Convoy 클러스터링 (WLBS)

Convoy UDP: 1717
Windows NT 로드밸런싱 서비스 (WLBS) UDP: 2504

3. 익스체인지 서버

클라이언트/서버통신 TCP: 135
익스체인지 관리자 TCP: 135
익스체인지 라우팅 TCP: 691
IMAP TCP: 143
IMAP (SSL) TCP: 993
MTA-X.4000 over TCP/IP TCP: 102
POP3 TCP: 110
POP3 (SSL) TCP: 995
RPC TCP: 135
SMTP TCP: 25
NNTP TCP: 119
NNTP (SSL) TCP: 563

4. SQL 서버

SQL연결 (Winsock) TCP: 1433
UDP: 1434

5. 프록시 서버

Winsock 프록시 클라이언트 UDP: 1745

6. 터미널 서버

RDP 클라이언트(마이크로소프트) TCP: 3389
ICA 클라이언트(씨트릭스) TCP: 1494

Posted by 시스템매니아
,
tsshutdn.exe

Windows 명령창(cmd.exe)에서나 실행창에서 실행시키면 되고

tsshutdn 0 /reboot 라는 명령를 내린다면 엔터를 치는과 동시에 컴퓨터가 꺼졌다 다시 부팅됩니다.

여기서 '0'은 대기시간을 의미하며 단위는 '초'(second)이다.

10분후에 리부팅하길 원하면 'tsshutdn 600 /reboot', 30분 후는 'tsshutdn 1800 /reboot' 이런식으로 입력하면 됩니다.
Posted by 시스템매니아
,
Processor:% Processor Time

이 카운터는 CPU가 비유휴 스레드를 처리하는 데 소비하는 시간의 양을 모니터링한다. 카운터 값이 계속 80-90 퍼센트로 나타나면 CPU를 업그레이드하거나 프로세서를 추가해야 합니다.

멀티프로세서 시스템의 경우 각 프로세서에 대해 이 카운터의 개별 인스턴스를 모니터링해야 합니다. 이 값은 특정 프로세서의 프로세서 시간의 합을 나타낸다. 모든 프로세서의 평균을 확인하려면 System: %Total Processor Time 카운터를 이용해야 합니다.


다음 항목들을 통해 다른 정보들을 얻을 수 있다.


Processor: % Privileged Time

이 카운터는 프로세서가 SQL Server I/O 요청 처리와 같은 커널 명령을 실행할 때 걸리는 시간의 비율을 나타냅니다.

Physical Disk 카운터가 높을 때 이 카운터가 같이 높으면 더 빠르고 효율적인 디스크 하위 시스템을 고려해야 합니다.

디스크 컨트롤러가 다르면 커널 처리 시간도 다릅니다. 효율적인 컨트롤러와 드라이버를 사용하면 권한 시간이 짧아져 사용자가 응용 프로그램을 사용할 수 있는 처리 시간을 확보할 수 있기 때문에 전체 처리량을 늘릴 수 있습니다.


Processor: %User Time

이 카운터는 프로세서가 SQL Server와 같은 사용자 프로세스를 실행할 때 걸리는 시간의 비율을 나타냅니다.


System: Processor Queue Length

이 카운터는 프로세서 시간을 기다리는 쓰레드 수를 나타낸다. 프로세스의 쓰레드에 필요한 프로세서 사이클 수가 사용할 수 있는 개수보다 많으면 프로세서 병목 상태가 발생한다. 일부 프로세스가 프로세서 시간 대부분을 소비한다면 속도가 빠른 프로세서나 추가 프로세서(멀티프로세서 시스템을 사용 중이면)를 설치해야 합니다.

프로세서의 사용을 검사할 때는 SQL Server 인스턴스가 수행 중인 작업 유형을 고려해야 한다. SQL Server가 집계에 관한 쿼리나 디스크 I/O가 필요없는 메모리 집중형 쿼리와 같은 계산을 많이 수행한다면 프로세서 시간 전체를 사용할 수 있다. 이런 이유로 다른 응용 프로그램 수행에 어려움이 발생하면 SQL Server만이 설치된 DB서버를 독자적으로 할당하는 방법 등으로 작업량을 줄여야 합니다.


100퍼센트에 가까운 수치로 프로세스가 대기열에 쌓이고 있는 모습이 나타난다면 당연히 프로세서 시간이 길어지고 병목현상이 나타납니다. 이런 부분을 해결하는 방법중의 하나가 프로세서 성능을 향상시키는 일입니다.

Posted by 시스템매니아
,
터미널서비스 접속자 초과로 연결이 안될때 서버에 콘솔은 연결이 됐는데 마우스가 작동하지 않아서

연결끊기가 힘든경우 리부팅을하곤 하는데 명령창(cmd)에서 간단히 연결을 끊을수있습니다.

시작->실행->cmd후

tsdiscon 1 /server:서버ip를 하시면 됩니다.

세션이 두개니까 두번째로 끊으려면

tsdiscon 2 /server:서버ip를 하시면 됩니다.

*띄어쓰기에 주의하셔야합니다.
Posted by 시스템매니아
,
잘사용하던 터미널서비스 접속이 갑자기 "라이센스를 제공할 터미널 서버 라이센스 서버가 없으므로 원격 연결이 끊어졌습니다."

라는 메세지와 함께 연결이 안될때의 해결방법입니다.

터미널 서비스를 설치하실때 응용프로그램모드가 아닌 관리모드로 설치하셔야합니다.

응용프로그램모드는 라이센스가 있어야 사용가능하며 라이센스 없이는 90일 정도만 사용할 수 있습니다.

Windows 2000에서는 설치시 두 모드중 하나를 선택하게 했지만 Windows 2003에서는 응용프로그램모드로 일단 설치가됩니다.

변경하시려면 설치후 제어판-시스템-원격 탭으로 이동한 뒤 원격데스크톱 의"사용자가 이 컴퓨터에 원격으로 연결할수 있음"에

체크를 해주셔야 합니다.체크를 해주셔야 관리모드로 변경됩니다.

일단 연결을 해야하는데 급하실때는 서버의 날짜를 1년전으로 돌리시면 사용가능해집니다.

Posted by 시스템매니아
,
OLEDB나 ODBC와 같이 데이터 연결이 되기위해서는 MDAC이란 콤포넌트가 서버에 설치되있어야합니다.

물론 Windows2000 Server를 설치하면 기본 2.5버전이 설치가 됩니다. 문제는 웹서버에 Ms-Sql2000을

설치하게되면 MDAC이 2.7버전으로 업그레이드됩니다.

웹서버와 DB서버가 같은 서버안에 있을때는 MDAC의 버전이 동일해서

아무문제가 되지않지만 같은서버에서 독립서버로 웹서버를 이전을하게되면 웹서버의 MDAC버전이 2.5버전

으로 되면서 연결이 되지않습니다.

이와같은문제는 웹서버의 MDAC버전을 DB서버와 동일 또는 그이상으로 업그레이드해주면 해결됩니다.

MDAC의 버전을보려면 시작->실행창->regedit 후 아래경로로 이동하시면됩니다.

HKEY_LOCAL_MACHINE\Software\Microsoft\DataAccess\Version

현재 Ms-Sql2000의 경우 2.8버전이 최신버전이며 다운경로는 아래와같습니다.

http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c
Posted by 시스템매니아
,
일반적으로 mdf파일이 정상적으로 분리됐을때의 DB복구방법은

-EM(Enterprise Manager)를 이용한 데이터베이스 연결

1. 우선 연결할 대상이 되는 *.mdf, *.ldf 파일을 특정한 디렉토리에 위치를 시킵니다. 예로 test.mdf, test_log.ldf 파일을 E:\Data 폴더에 있다고 가정합니다.

2. "데이터베이스" 위에서 마우스 오른쪽 버튼을 눌러 단축메뉴를 표시하면 [모든작업(K)] - [ 데이터베이스 연결(A)]을 선택할 수 있습니다.

3. 데이터베이스 연결을 위한 대화창이 표시됩니다.

4. 찾기 버튼 [...] 을 누르면 연결할 데이터베이스 파일의 위치를 쉽게 찾을 수 있는 탐색창이 뜹니다. 이 화면에서 연결하고자 하는 데이터베이스 파일 *.mdf 을 선택하면 됩니다.

5. 데이터베이스 파일을 선택한 후의 화면입니다. 원하는 경우 "다음 이름으로 연결(A)" 부분에 다른 이름을 주어 기존의 데이터베이스와는 다른 이름을 갖는 데이터베이스로 연결을 할 수 있습니다.

6. [확인] 버튼을 누르면 데이터베이스 연결이 완료됩니다.


-sp_attach_db 또는 sp_attach_single_file_db 시스템 저장프로시져를 이용한 데이터베이스 연결

USE master
GO
EXEC sp_attach_db 'test', 'E:\Data\test.mdf', 'E:\Data\test_log.ldf'

또는 MDF파일만 있을때

EXEC sp_attach_single_file_db @dbname = 'test',
@physname = 'E:\Data\test.mdf'

등의 방법을 사용합니다.

하지만 정상적으로 분리되지않은 MDF파일은 복구시에 자신이 가지고있던 LDF파일만을 찾습니다.

위의 정상적인방법으론 계속되는 에러뿐입니다.

MDF파일을 복구하기위한 방법은

1.MDF파일의 DB명으로 빈 디비생성
2.DB정지후 생성한디비의 MDF파일과 가지고있는 MDF파일 교체
3.DB시작을 하면 suspect모드로 빠짐
이후부터는 suspect모드에서의 복구문서 참조->(파일첨부함)


이렇게 복구가 된다해도 DB의 자료는 거의 복구가되지만 여러 키값, 인덱스까지 제대로 잡히진 않습니다.
DB관리시 철저히 준비를 하여야 하며 제대로된 백업 및 복구방법을 사용하여야 할것입니다.
Posted by 시스템매니아
,
- 윈도우의 도스창을 띄운후 아래와 같이 입력한다.
프롬프트가 떨어지면 IP정보를 알고자하는 도메인이름을 입력한다.
해당 IP가 출력된다.

C:\>nslookup
Default Server: ns.gihc.net
Address: 203.235.122.164

> inet.co.kr
Server: ns.gihc.net
Address: 203.235.122.164

Non-authoritative answer:
Name: inet.co.kr
Address: 210.116.105.166

- 해당 네임서버에서 찾을수 없다면 아래와 같은 메세지가 나온다.
*** ns.gihc.net(해당네임서버의 이름) can't find ilet.co.rk: Non-existent domain

- 타 ISP(인터넷서비스업체)의 서버를 이용하여 내부망이 아닌 외부망에서도 도메인에 대한 IP정보를 알수 있다.
프롬프트가 떨어지면 "server 사용하고자하는네임서버"를 지정해준다.
이후에 도메인을 입력하면 지정한 네임서버에서 정보를 읽어온다.
> server ns.elim.net
Default Server: ns.elim.net
Address: 203.239.130.1

> inet.co.kr
Server: ns.elim.net
Address: 203.239.130.1

Non-authoritative answer:
Name: inet.co.kr
Address: 210.116.105.166

** ISP등의 네임서버명
ns.kt.net - KT
ns.bora.net - 데이콤
ns.elim.net - 엘림넷
Posted by 시스템매니아
,
윈도우 시스템에서 타임 서비스 설정하기************************************

윈도우 시스템으로 서비스를 운영을 하다 보면 간혹 시간이 문제가 되어서 여러모로 고생을 하게 된다. 결국 특정한 서버의 기준으로 모두 맞추어야 하는데 그럴 경우 참고할 만한 문서가 될 것이다.

아직 모두 완성되지 않았으니 소개와 기존 NTFAQ에서 내용을 발췌에서 자료를 모으는 작업을 우선 하도록 하겠다.
추후 회사 내부에 시간 서버를 구성 하겠다고 생각 하는 분들을 위한 서버에 대해서도 소개 올리도록 하겠다. (물론 서드 파트 프로그램이겠죠)
서버로 운영하고자 한다면 AD(액티브 디렉터리)서비스를 사용 하시면 물론 가능합니다.

국내 표준 시간 서비스를 받고자 할 경우 아래와 같이 작업 진행을 하게 되면 처리가 가능 하다.
1. 윈도우 서비스에서 타임 서비스 시작 ( Windows time )
2. 커맨드에서 net time /setsntp:time.cs.nuri.net
(추가적으로 net time /setsntp:time.windows.com )

< net time /setsntp:time.bora.net >

위 동기화 기간은
"성공적으로 세 번 동기화 될 때 까지는 45분에 한 번, 그 다음부터는 8시간에 한 번(즉, 하루에 세 번) [디폴트]"

일반적으로 DC가 올라오지 않은 곳에서 타임 서비스를 운영하고 싶다면 따로 서비스를 사용해야 하며,그렇지 않은 경우는 아래와 같이 레지스터리 작업이나 직접 커맨드에서 작업을 해서 처리 할 수 있다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32time
값이름 : ntpserver
time.cs.nuri.net (국내 타임서비스 운영중인 사이트)

< time.bora.net >

아래는 레지스터리 작업에 대한 자세한 내용이다.
값이름 : Period
SpecialSkew

time 서비스의 동기화 주기를 조절한다. 문자열 값으로는 다음과 같은 것들을 사용할 수 있다.
0 = 하루에 한 번씩
65535, "BiDaily" = 이틀에 한 번
65534, "Tridaily" = 사흘에 한 번
65533, "Weekly" = 매주 한 번
65532, "SpecialSkew" = 성공적으로 세 번 동기화 될 때 까지는 45분에 한 번, 그 다음부터는 8시간에 한 번(즉, 하루에 세 번) [디폴트]
65531, "DailySpecialSkew" = 성공적으로 한 번 동기화 될 때 까지는 45분에 한 번, 그 다음부터는 하루에 한 번


추가적으로 기본적으로 SNTP는 사용자 데이터그램 프로토콜(UDP) 포트 123을 사용합니다. 이 포트가 인터넷으로 열려 있지 않으면 서버를 인터넷 SNTP 서버와 동기화할 수 없습니다.

* 리소스킷의 시간서비스(time Service) 제거하기 **************************

timeserv 리소스킷 유틸리티를 제거하려면 다음과 같이 한다.
1. 제어판-서비스를 실행하고 time서비스를 정지시킨다.
2. 레지스트리편집기를 실행한다.(regedt32.exe)
3. HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application으로 이동한다.
4. timeServ를 선택하고 (Del)키를 누른다. 확인대화상자에서 예를 선택한다.
5. HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services로 이동한다.
6. timeServ를 선택하고 (Del)키를 누른다. 확인대화상자에서 예를 선택한다.
7. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application으로 이동한다.
8. timeServ를 선택하고 (Del)키를 누른다. 확인대화상자에서 예를 선택한다.

제어판-서비스를 실행하면 timeServ서비스가 사용불능으로 되어있을 것이다. 컴퓨터를 재부팅하면 나타나지않을 것이다.
Posted by 시스템매니아
,
1. 쿼리분석기에서 backup log db_name with no_log 로 사용할 수 있는 로그 공간을 확보합니다.

2. 엔터프라이즈 관리자 - 보기 - 작업창으로 해당 데이터베이스의 트랜잭션 로그 공간의 사용중인 공간을 확인합니
다.

3. 아래 예제를 참고하여 dbcc shrinkfile 명령을 이용하여 사용중인 공간보다 조금 크게
ldf 파일의 크기를 줄입니다.

다음은 UserDB 사용자 데이터베이스에서 DataFil1이라는 파일의 크기를 7MB로
줄이는 예제 입니다.
USE UserDB
GO
DBCC SHRINKFILE (로그 파일의 논리적 이름, 7)
GO

로그 파일의 논리적 이름은 sp_helpfile 명령으로 확인하실 수 있습니다.
<예제>
use db_name
go
sp_helpfile
Posted by 시스템매니아
,
SQL Server의 보안을 개선하기 위해 수행할 수 있는 조치사항

1. 가장 최신의 서비스 팩을 설치합니다.
서버 보안 개선을 위한 가장 효과적인 조치는 SQL Server 2000 서비스 팩 3(SP3)로 업그레이드하는 것입니다. SP3는 SQL Server 2000 SP3 페이지에서 다운로드할 수 있습니다.
또한 공개되는 모든 보안 패치를 설치해야 합니다.
2. Microsoft Baseline Security Analyzer(MBSA)로 서버의 보안을 평가합니다.
MBSA는 SQL Server 및 Microsoft SQL Server 2000 Desktop Engine(MSDE 2000)을 비롯한 여러 Microsoft 제품에서 자주 볼 수 있는 보안상 취약한 구성을 검사해 주는 도구입니다. 이 도구는 로컬 또는 네트워크에서 실행할 수 있습니다. 이 도구는 SQL Server 시스템에 다음과 같은 문제가 없는지 테스트합니다.
§ 지나치게 많은 sysadmin 구성원이 서버 역할을 수정한 경우
§ sysadmin 이외의 역할에 CmdExec 작업 작성 권한이 부여된 경우
§ 암호가 비어 있거나 지나치게 평범한 경우
§ 인증 모드가 허술한 경우
§ 관리자 그룹에 너무 많은 권한이 부여된 경우.
§ SQL Server 데이터 디렉터리의 액세스 제어 목록(ACLs)이 정확하지 않은 경우
§ 설정 파일에 일반 텍스트 암호 sa가 있는 경우
§ guest 계정에 너무 많은 권한이 부여된 경우
§ 도메인 컨트롤러 역할도 하는 시스템에 SQL Server가 실행되는 경우
§ Everyone 그룹의 구성이 잘못되어 특정 레지스트리 키에 대한 액세스가 허용되는 경우
§ SQL Server 서비스 계정 구성이 잘못된 경우
§ 서비스 팩 및 보안 업데이트가 없는 경우
3. Windows 인증 모드를 사용합니다.
되도록이면 항상 SQL Server 연결에 Windows 인증 모드를 요구해야 합니다. 이 조치는 Microsoft Windows 사용자 및 도메인 사용자 계정으로 연결을 제한하여 SQL Server 시스템을 대부분의 인터넷 기반 공격으로부터 보호해 줍니다. 또한 서버는 인증 프로토콜 강화와 복잡한 암호 사용 및 정기적 갱신 강제 등과 같은 Windows 보안 강화 메커니즘 등의 이익도 얻게 됩니다. 또한 자격 증명 위임(여러 서버에 자격 증명을 연결하는 기능)은 Windows 인증 모드에서만 사용할 수 있습니다. 클라이언트 측의 경우 Windows 인증 모드를 사용하면 암호를 저장할 필요가 없습니다. 암호를 저장하는 것은 표준 SQL Server 로그인 방식을 사용하는 응용 프로그램의 주된 취약점입니다.
SQL Server의 Enterprise Manager로 Windows 인증 모드 보안을 설정하려면
1. 서버 그룹을 확장합니다.
2. 서버를 오른쪽 단추로 클릭하고 속성을 클릭합니다.
3. 보안 탭의 인증에서 Windows만을 클릭합니다.

4. 정기적으로 서버를 분리해서 백업합니다.
물리적 및 논리적 분리는 SQL Server 보안의 토대를 형성합니다. 데이터베이스를 호스팅하는 시스템은 물리적 보호 장치가 있는 곳에 있어야 하며 화재 감지 및 화재 감지/억제 모니터 기능과 함께 잠금 장치가 있는 시스템실이 가장 이상적입니다. 데이터베이스는 회사 인트라넷의 안전 구역에 설치되어야 하며 인터넷에 직접 연결되면 안 됩니다. 모든 데이터를 정기적으로 백업하고 복사본을 안전한 오프 사이트 장소에 보관하십시오.

5. 까다로운 sa 암호를 지정합니다.
Windows 인증을 요구하도록 구성된 서버에서도 sa 계정은 항상 까다로운 암호를 사용해야 합니다. 그러면 그 서버가 나중에 혼합 모드 인증으로 구성되는 경우에 빈 암호 또는 허술한 sa 암호가 노출될 염려가 없기 때문입니다.
sa 암호를 지정하려면
1. 서버 그룹을 확장하고 서버를 확장합니다.
2. 보안을 확장하고 로그인을 클릭합니다.
3. 상세 내용 창에서 SA를 오른쪽 단추로 클릭하고 속성을 클릭합니다.
4. 암호 입력란에 새 암호를 입력합니다.

6. SQL 서버 서비스의 권한 수준을 제한합니다.
SQL Server 2000 및 SQL Server Agent는 Windows 서비스로 실행됩니다. 각 서비스는 Windows 계정에 연결되어 그로부터 그 보안 컨텍스트를 도출해야 합니다. SQL Server에서는 sa 암호로 로그인하는 사용자, 그리고 일부 경우 다른 사용자들에게 운영 체제 기능 액세스를 허용합니다. 이 운영 체제 호출은 서버 프로세스를 소유하는 계정의 보안 컨텍스트에 따라 이루어집니다. 서버가 공격 당하면 이 운영 체제 호출은 소유 프로세스(SQL Server 서비스 계정)가 액세스를 갖고 있는 다른 자원으로 공격을 확대하는 데 사용될 수 있습니다. 따라서 SQL Server 서비스에는 필요한 권한만을 부여하는 것이 중요합니다.
권장 설정은 다음과 같습니다.
§ SQL Server Engine/MSSQLServer
인스턴스에 이름이 있는 경우, 그 이름은 'MSSQL$인스턴스이름'으로 지정됩니다. 정식 사용자 권한이 있는 Windows 도메인 사용자 계정으로 실행합니다. 로컬 시스템, 로컬 관리자 또는 도메인 관리자 계정으로 실행하지 마십시오.
§ SQL Server Agent Service/SQLServerAgent
자기 환경에 필요하지 않으면 사용하지 마십시오. 그렇지 않으면 정식 사용자 권한이 있는 Windows 도메인 사용자 계정으로 실행하십시오. 로컬 시스템, 로컬 관리자 또는 도메인 관리자 계정으로 실행하지 마십시오.
중요: 아래와 같은 조건에서는 SQL Server Agent에 로컬 Windows 관리자 권한이 필요할 것입니다.
§ SQL Server Agent가 SQL Server에 표준 SQL Server 인증을 사용하여 연결하는 경우(권장하지 않음)
§ SQL Server Agent가 표준 SQL Server 인증을 사용하여 연결하는 다중 서버 관리 마스터 서버(MSX) 계정을 사용하는 경우
§ SQL Server Agent가 sysadmin 고정 서버 역할의 구성원이 아닌 사용자가 소유한 Microsoft ActiveX 스크립트 또는 CmdExec 작업을 실행하는 경우
SQL Server 서비스와 연결된 계정을 변경해야 하는 경우에는 SQL Server Enterprise Manager를 사용하십시오. Enterprise Manager는 SQL Server가 사용하는 파일 및 레지스트리 키에 적절한 권한을 설정할 것입니다. 이 계정을 변경하기 위해 제어판에 있는 Microsoft 관리 콘솔의 서비스 애플릿을 사용하지 마십시오. 이를 위해서는 수십 개의 레지스트리와 NTFS 파일 시스템 권한 및 Microsoft Windows 사용자 권한을 수작업으로 조정해야 하기 때문입니다.
계정 정보에 대한 변경 사항은 다음에 서비스를 시작했을 때 적용됩니다. SQL Server 및 SQL Server Agent에 연결된 계정을 변경하려면 Enterprise Manager를 사용하여 그 변경 사항을 두 서비스에 개별적으로 적용해야 합니다

7. 방화벽에서 SQL Server 포트를 사용하지 않도록 하십시오.
SQL Server를 기본 설정으로 설치했다면 TCP 포트 1433 및 UDP 포트 1434를 모니터합니다. 이 포트로 향하는 패킷을 걸러내도록 방화벽을 구성하십시오. 이름이 지정된 인스턴스와 연결된 추가 포트들 역시 방화벽에서 차단되어야 합니다.

8. 가장 안전한 파일 시스템을 사용합니다.
NTFS는 SQL Server 설치에서 선호하는 파일 시스템입니다. 이 파일 시스템은 FAT 파일 시스템보다 안정적이고 복구 기능이 좋으며 파일 및 디렉터리 ACL과 및 파일 암호화(EFS) 등과 같은 보안 옵션을 사용할 수 있습니다. 설치 과정에서 NTFS를 감지하면 SQL Server는 레지스트리 키와 파일에 적절한 ACL을 설정합니다. 이 권한은 변경되지 않아야 합니다.
EFS에서는 SQL Server를 실행하는 계정의 ID 아래에 데이터베이스 파일이 암호화됩니다. 이 계정만이 파일의 암호를 풀 수 있습니다. SQL Server를 실행하는 계정을 변경하려면 먼저 기존 계정을 파일의 암호를 풀고 새 계정으로 파일을 다시 암호화해야 합니다.

9. 오래된 설정 파일을 삭제하거나 보안합니다.
SQL Server 설정 파일에는 일반 텍스트 또는 허술하게 암호화된 자격 증명 및 설치 중에 기록된 기타 민감한 구성 정보가 있습니다. 설치된 SQL Server의 버전에 따라 로그 파일의 위치가 다릅니다. SQL Server 2000에서 영향 받는 파일은 다음과 같습니다. 기본 설치의 경우 <시스템드라이브>:\Program Files\Microsoft SQL Server\MSSQL\Install 폴더, 그리고 명명된 인스턴스의 경우 <시스템드라이브>:\Program Files\Microsoft SQL Server\ MSSQL$<인스턴스이름>\Install 폴더에 있는 sqlstp.log, sqlsp.log 및 setup.iss 파일.
현재 시스템이 SQL Server 버전 7.0에서 업그레이드된 경우에는 다음 파일들도 확인해야 합니다: %Windir% 폴더의 setup.iss, Windows Temp 폴더의 sqlsp.log
Microsoft는 이 암호들을 시스템에서 찾아 제거해주는 Killpwd라는 무료 유틸리티를 배포하고 있습니다. 무료로 다운로드할 수 있는 이 유틸리티에 대한 자세한 내용은 서비스 팩 설치 과정에서 표준 보안 암호가 파일에 저장될 수 있습니다라는 제목의 Microsoft 기술 자료 문서를 참조하십시오.

10. SQL Server 연결에 대한 감사를 수행합니다.
SQL Server는 시스템 관리자의 검토를 위해 이벤트 정보를 기록할 수 있습니다. 최소한 SQL Server에 대한 연결 실패를 기록하여 이를 정기적으로 검토해야 합니다. 가능하면 이 로그는 데이터 파일이 저장되는 드라이브와 다른 하드 드라이브에 저장하십시오.
SQL Server의 Enterprise Manager로 연결 실패를 감사하려면
1. 서버 그룹을 확장합니다.
2. 서버를 오른쪽 단추로 클릭하고 속성을 클릭합니다.
3. 보안 탭의 감사 수준에서 실패를 클릭합니다.
이 설정이 적용되려면 서버를 종료했다가 다시 시작해야 합니다.
Posted by 시스템매니아
,
IIS6 ==> 웹사이트 ==> 속성 ==> HTTP 헤더 ==> MINE 형식==>새형식에서
확장명은 * 이고 MINE형식은 아무말이나씁니다.
이후부터 hwp 같은 화일도 download가 됩니다.
Posted by 시스템매니아
,
IIS5.0 에서 컴퓨터 아이콘을 선택->동작->백업/복원->백업만들기->백업파일에 대한
이름을 선택->확인->닫기

백업파일의 기본적인 정장 디렉토리는 \winnt\system32\inetsrv\MetaBack 저장

복원방업은 역순으로 한다

이 백업은 데이터가 아닌 IIS에 대한 설정만을 백업/복원하므로

운영체제를 다른 Machine 혹은 포맷후 다시 설치한 경우에는 복원이 되지 않는다
Posted by 시스템매니아
,
Windows 2003의 IIS 6.0는 CDONTS를 지원하지 않는다.

CDONTS는 windows2000에서 지원하던 부분이라 Windows 2003의 새로운 구조에 따라 이 부분이 제거되어 있다. 이를 해결하기 위해서는 다음 방법을 따른다.

소스를 수정하여 CDONTS가 아닌 CDO를 사용한다.

Server.CreateObject("CDONTS.NewMail")

Server.CreateObject("CDO.Message")
로 변경해서 사용한다.

CDO의 사용 예>
Set objMail = Server.CreateObject("CDO.MESSAGE")
objMail.From="
TESTID@inet.co.kr"
objMail.To = request("email")
objMail.Subject= "subject"
objMail.HTMLBody= "body"
objMail.Send

objMail.close
Set objMail = Nothing

또다른 방법은 windows2000에서 사용하던 CDONTS.Newmail 소스를 그대로

사용하려면 winnt\system32\inetsrv에 있는 cdonts.dll 을 Windows 2003의 폴더로 복사한다.

그리고 regsvr32 cdonts.dll 을 사용하여 dll 파일을 windows2003 서버에

등록을 해주는 것이다.
Posted by 시스템매니아
,
SQL Server 연결시 named pipe를 이용하여 연결 확인하는 방법

1. 서버에서 SQL Sever 네트워크 유틸리티를 실행하고 프로토콜을 기본 프로토콜을

"명명된 파이프"로 설정한다.

2. 클라이언트에서 SQL Server 클라이언트 네트워크 유틸리티를 실행하고 역시 기본

프로토콜을 "명명된 파이프"로 설정한다. 또한 순서도 "명명된 파이프"를 제일 위에 둔다.

3. 명령 프롬프트를 실행하고, SQL 서버 CD의 \x86\Binn 폴더로 이동한다.

makepipe.exe 를 실행한 채로 그대로 둔다.

4. 같은 방법으로 클라이언트에서 SQL 서버 CD의 \x86\Binn 폴더의 READPIPE.exe\Dhello\Sservername을 입력하여 /D에 주어진 문자가 서버에서 갔다가 오는지 확인한다.
Posted by 시스템매니아
,

IIS기반 FTP 서비스는 패시브모드(Passive-mode)와 액티브모드(Active-mode) 2가지를 지원합니다.

Active-mode 는 클라이언트 기반 접속입니다. 그래서 웹서버쪽에 20,21 번이 열린 FTP를 접속시 클라이언트에서는 포트가 랜덤포트를 이용하나 서버 포트는 변함이 없습니다. 클라이언트는 서버쪽에 port 명령어를 보냅니다.

Passive-mode 는 서버쪽 21번 포트로 접속시, 클라이언트의 랜덤포트가 아니라 서버쪽 랜덤포트를 이용하게 됩니다. 서버는 클라언트에게 pasv 명령어를 보내며, 클라이언트는 승인하게 됩니다.

문제는, 패시브모드의 경우 서버쪽에 1024 에서 65535 포트 사이를 랜덤하게 할당하며, 네트워크 세션이 있을때마다 신규포트를 이용하게 됩니다. 이때, 서버쪽에 방화벽을 운영하거나 대량접속서비스가 운영중일때는 네트워크 자원이 부족하게 되어 접속장애가 있을수 있습니다.

패시브모드에서의 서버쪽 랜덤 포트범위를 조정하므로써, 이를 해결할 수 있습니다.

Windows 2000 Server 및 Windows Server 2003 모두 PassivePortRange 값을 이용하여 조정이 가능합니다.


Windows Server 2003 의 경우

1. 메타베이스를 수정하는 방법입니다.
(메타베이스를 수정할려면, IIS MMC에서 메타베이스 직접수정 허용 설정이 되어 있어야 합니다.)

2. ADSUTIL을 이용하는 방법입니다.
Adsutil.vbs set /MSFTPSVC/PassivePortRange "5500-5700"


Windows 2000 Server 의 경우는 레지스트리 값을 추가해야 합니다.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msftpsvc\Parameters\
에서 REG_SZ 타입의 PassivePortRange 값 이름을 추가합니다.

패시브 모드 포트 범위 가 5001 에서 65535까지 설정됩니다.

위 2경우 모두 설정후 FTP 서비스를 재시작 해야 적용되며, 위와 같이 범위 또는 특정포트값을 설정해도 됩니다.


마이크로소프트의 관련 기술 자료는 아래 와 같습니다.

http://support.microsoft.com/?id=555022
http://support.microsoft.com/?kbid=810639

Posted by 시스템매니아
,
<IP 설정>

명령어형식>
netsh interface ip set address name=[랜카드 이름] source=[static/dhcp] addr=[IP주소] mask=[서브넷마스크]

예1> 고정 IP로 세팅하는 경우
netsh interface ip set address name="로컬 영역 연결" source=static addr=10.1.2.254 mask=255.255.255.0

예2> 동적 IP로 세팅하는 경우
netsh interface ip set address name="로컬 영역 연결" source=dhcp

<Gateway 설정>

명령어 형식>
netsh interface ip set address name=[랜카드 이름] gateway=[게이트웨이 주소] gwmetric=[게이트웨이순서]

예>
netsh interface ip set address name="로컬 영역 연결" gateway=10.1.2.3 gwmetric=1

<DNS 설정>

명령어형식>
netsh interface ip add dns name=[랜카드 이름] source=static addr=[DNS 서버 주소] index=[DNS서버 순서]

예>
netsh interface ip add dns name="로컬 영역 연결" source=static addr=123.456

Posted by 시스템매니아
,
방화벽을 사용하는 네트워크 환경에서 Server-U를 passive mode로 사용할 경우 설정 방법

1. 해당 domain의 Settings를 선택 한다.

2. Advanced 탭을 선택 한다.

3. Allow passive mode data transfers, use IP를 체크 한다.

4. Allow passive mode data transfers, use IP에 FTP에 사용하는 IP를 입력 한다.

5. Local Server의 Settings를 선택 한다.

6. PASV port range에 데이터를 주고 받을 포트 영역을 입력 한다. 예) 5000 - 5004

7. 방화벽에서 FTP 접속 포트와 PASV port range 영역을 허용한다.


참조: Server-U Knowledgebase

http://rhinosoft.com/Knowledgebase/KBArticle.asp?RefNo=1044&prod=su
Posted by 시스템매니아
,
<?xml version="1.0" encoding="euc-kr"?>
를 삽입하여 해결될수 있습니다.
Posted by 시스템매니아
,
데이터베이스의 Collation 정보를 말합니다.

MSSQL DBMS 는 WINDOWS OS 와 상호작용을 하여 처리하는 경우가 많이 있습니다.

Collaction 정보역시 마찬가지 인데요 이것은, SQL Server의 기본 데이터 정렬을 설정하는 옵션 입니다. MSSQL 을 설치할 때 대부분 Korean_Wansung_CI_AS 으로 설정을 하게 됩니다. 이것의 의미는 "한국어_완성형 문자" 라는 의미 입니다.

테이블에 데이타를 입력할경우, 특정칼럼 기준으로 정렬할경우 완성형으로 비교 판단 하게 되겠지요.

SELECT * FROM ::fn_helpcollations()
GO

쿼리분석기에서 위의 명령을 내리면, MSSQL에서 지원하는 Collaction 정보들이 나오게 됩니다.

Collaction 정보를 변경하고자 한다면,

ALTER DATABASE CollateDb
COLLATE Korean_Wansung_CI_AI
GO

이렇게 하시면 됩니다.

확인은 아래처럼 하시구요...

EXEC sp_helpdb 'CollateDb'
GO

Posted by 시스템매니아
,
해당 작업은 데이터 베이스의 로그 파일을 문제가 생겼을
때 사용하는 방법입니다.
1. 시스템 카탈로그 수정 허용을 해야 합니다.
Use master
Go
Sp_configure 'allow update', 1
Reconfigure with override
Go

2. 해당 db를 응급모드(emergency mode)로 변경합니다.
Use update sysdatabases set status=32768 where
name = 'db_name'

3. service stop & start 서비스 재시작

4. 로그 파일을 재생성 합니다.
dbcc rebuild_log ‘( db_name’,‘ ldf 파일의 물리적 경로’)
dbcc rebuild_log('pubs' , 'C:₩Program Files₩Microsoft
SQL Server₩MSSQL₩Data₩pubs.ldf')

출처 : SQL2000 나만의 노하우 & Tip
Posted by 시스템매니아
,
쿼리분석기 에서 다음을 수행하시면 됩니다.

SELECT @@version

그러면 다음과 같은 결과가 표시됩니다. (실행하는 서버에
따라 다를 수 있습니다.)
Microsoft SQL Server 2000 - 8.00.194 (Intel X86)
Aug 6 2000 00:57:48
Copyright (c) 1988-2000 Microsoft Corporation
Personal Edition
on Windows NT 5.0 (Build 2195: Service Pack 2)

이 결과에서 가장 첫 줄이 SQL 서버의 버전과 반영된 서
비스 팩의 버전을 알려줍니다.
8.00. 194 라는 번호는 서비스 팩이 전혀 설치되지 않은
상태를 이야기 합니다.

이 번호들의 의미는 다음과 같습니다.

● MS SQL 서버 2000의 경우
8.00.194 : SQL Server 2000 RTM
8.00.384 : Database Components Service Pack 1 (SP1)
8.00.534 : Database Components Service Pack 2 (SP2)
8.00.760 : Database Components Service Pack 3 (SP3)
8.00.2039 : Database Components Service Pack 4 (SP4)

이 내용을 이용하시면 서비스 팩의 반영 여부를 확인할 수
있습니다.
Posted by 시스템매니아
,

쿼리분석기에서

dbcc checkdb ('DB명', noindex)
go
dbcc checkdb ('DB명', repair_rebuild)
go

- '2' 라는 데이터베이스의 무결성을 쿼리한 결과 예제

'2'의 DBCC 결과입니다.
경고: checkdb의 NO_INDEX 옵션을 사용하고 있습니다. 시스템 인덱스 이외의 인덱스를 건너뛰는지 확인하십시오.
Service Broker 메시지 9675, 상태 1: 분석된 메시지 유형: 14.
Service Broker 메시지 9676, 상태 1: 분석된 서비스 계약: 6.
Service Broker 메시지 9667, 상태 1: 분석된 서비스: 3.
Service Broker 메시지 9668, 상태 1: 분석된 서비스 큐: 3.
Service Broker 메시지 9669, 상태 1: 분석된 대화 끝점: 0.
Service Broker 메시지 9674, 상태 1: 분석된 대화 그룹: 0.
Service Broker 메시지 9670, 상태 1: 분석된 원격 서비스 바인딩: 0.
'sys.sysrowsetcolumns'의 DBCC 결과입니다.
5개 페이지에 개체 "sys.sysrowsetcolumns"에 대한 행이 553개 있습니다.
'sys.sysrowsets'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.sysrowsets"에 대한 행이 80개 있습니다.
'sysallocunits'의 DBCC 결과입니다.
1개 페이지에 개체 "sysallocunits"에 대한 행이 92개 있습니다.
'sys.sysfiles1'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.sysfiles1"에 대한 행이 2개 있습니다.
'sys.syshobtcolumns'의 DBCC 결과입니다.
5개 페이지에 개체 "sys.syshobtcolumns"에 대한 행이 553개 있습니다.
'sys.syshobts'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.syshobts"에 대한 행이 80개 있습니다.
'sys.sysftinds'의 DBCC 결과입니다.
0개 페이지에 개체 "sys.sysftinds"에 대한 행이 0개 있습니다.
'sys.sysserefs'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.sysserefs"에 대한 행이 92개 있습니다.
'sys.sysowners'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.sysowners"에 대한 행이 14개 있습니다.
'sys.sysprivs'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.sysprivs"에 대한 행이 120개 있습니다.
'sys.sysschobjs'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.sysschobjs"에 대한 행이 49개 있습니다.
'sys.syscolpars'의 DBCC 결과입니다.
7개 페이지에 개체 "sys.syscolpars"에 대한 행이 434개 있습니다.
'sys.sysnsobjs'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.sysnsobjs"에 대한 행이 1개 있습니다.
'sys.syscerts'의 DBCC 결과입니다.
0개 페이지에 개체 "sys.syscerts"에 대한 행이 0개 있습니다.
'sys.sysxprops'의 DBCC 결과입니다.
0개 페이지에 개체 "sys.sysxprops"에 대한 행이 0개 있습니다.
'sys.sysscalartypes'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.sysscalartypes"에 대한 행이 27개 있습니다.
'sys.systypedsubobjs'의 DBCC 결과입니다.
0개 페이지에 개체 "sys.systypedsubobjs"에 대한 행이 0개 있습니다.
'sys.sysidxstats'의 DBCC 결과입니다.
2개 페이지에 개체 "sys.sysidxstats"에 대한 행이 120개 있습니다.
'sys.sysiscols'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.sysiscols"에 대한 행이 232개 있습니다.
'sys.sysbinobjs'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.sysbinobjs"에 대한 행이 23개 있습니다.
'sys.sysobjvalues'의 DBCC 결과입니다.
18개 페이지에 개체 "sys.sysobjvalues"에 대한 행이 118개 있습니다.
'sys.sysclsobjs'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.sysclsobjs"에 대한 행이 14개 있습니다.
'sys.sysrowsetrefs'의 DBCC 결과입니다.
0개 페이지에 개체 "sys.sysrowsetrefs"에 대한 행이 0개 있습니다.
'sys.sysremsvcbinds'의 DBCC 결과입니다.
0개 페이지에 개체 "sys.sysremsvcbinds"에 대한 행이 0개 있습니다.
'sys.sysxmitqueue'의 DBCC 결과입니다.
0개 페이지에 개체 "sys.sysxmitqueue"에 대한 행이 0개 있습니다.
'sys.sysrts'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.sysrts"에 대한 행이 1개 있습니다.
'sys.sysconvgroup'의 DBCC 결과입니다.
0개 페이지에 개체 "sys.sysconvgroup"에 대한 행이 0개 있습니다.
'sys.sysdesend'의 DBCC 결과입니다.
0개 페이지에 개체 "sys.sysdesend"에 대한 행이 0개 있습니다.
'sys.sysdercv'의 DBCC 결과입니다.
0개 페이지에 개체 "sys.sysdercv"에 대한 행이 0개 있습니다.
'sys.syssingleobjrefs'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.syssingleobjrefs"에 대한 행이 133개 있습니다.
'sys.sysmultiobjrefs'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.sysmultiobjrefs"에 대한 행이 102개 있습니다.
'sys.sysdbfiles'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.sysdbfiles"에 대한 행이 2개 있습니다.
'sys.sysguidrefs'의 DBCC 결과입니다.
0개 페이지에 개체 "sys.sysguidrefs"에 대한 행이 0개 있습니다.
'sys.sysqnames'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.sysqnames"에 대한 행이 91개 있습니다.
'sys.sysxmlcomponent'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.sysxmlcomponent"에 대한 행이 93개 있습니다.
'sys.sysxmlfacet'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.sysxmlfacet"에 대한 행이 97개 있습니다.
'sys.sysxmlplacement'의 DBCC 결과입니다.
1개 페이지에 개체 "sys.sysxmlplacement"에 대한 행이 17개 있습니다.
'sys.sysobjkeycrypts'의 DBCC 결과입니다.
0개 페이지에 개체 "sys.sysobjkeycrypts"에 대한 행이 0개 있습니다.
'sys.sysasymkeys'의 DBCC 결과입니다.
0개 페이지에 개체 "sys.sysasymkeys"에 대한 행이 0개 있습니다.
'sys.syssqlguides'의 DBCC 결과입니다.
0개 페이지에 개체 "sys.syssqlguides"에 대한 행이 0개 있습니다.
'sys.sysbinsubobjs'의 DBCC 결과입니다.
0개 페이지에 개체 "sys.sysbinsubobjs"에 대한 행이 0개 있습니다.
'sys.queue_messages_1977058079'의 DBCC 결과입니다.
0개 페이지에 개체 "sys.queue_messages_1977058079"에 대한 행이 0개 있습니다.
'sys.queue_messages_2009058193'의 DBCC 결과입니다.
0개 페이지에 개체 "sys.queue_messages_2009058193"에 대한 행이 0개 있습니다.
'sys.queue_messages_2041058307'의 DBCC 결과입니다.
0개 페이지에 개체 "sys.queue_messages_2041058307"에 대한 행이 0개 있습니다.
'dtproperties'의 DBCC 결과입니다.
0개 페이지에 개체 "dtproperties"에 대한 행이 0개 있습니다.
'SublissimeEvent01'의 DBCC 결과입니다.
3개 페이지에 개체 "SublissimeEvent01"에 대한 행이 102개 있습니다.
CHECKDB이(가) 데이터베이스 '2'에서 0개의 할당 오류와 0개의 일관성 오류를 찾았습니다.
DBCC 실행이 완료되었습니다. DBCC에서 오류 메시지를 출력하면 시스템 관리자에게 문의하십시오.
메시지 7919, 수준 16, 상태 3, 줄 1
복구 문이 처리되지 않았습니다. 데이터베이스가 단일 사용자 모드여야 합니다.

Posted by 시스템매니아
,

conf port 2:2 auto on
conf port 2:2 auto off speed 100 duplex full
conf port 2:2 auto off speed 10 duplex full

Posted by 시스템매니아
,