원인 : SQL Server는 내부적으로 Windows 컴퓨터 이름을 사용하는 데 Windows 이름이바뀌더라도 SQL Server가 참조하는 이름 정보를 변경하지 않기 때문입니다.

해결책 : 이 문제를 해결하기 위하여 다음의 두 방법 중에서 선택할 수 있습니다.

첫째, Windows 컴퓨터 이름을 이전 상태로 바꾸는 것입니다.
둘째, SQL Server 원본 CD에서 SQL Server Setup을 수행하는 것입니다.
Setup을 수행하면 실제 설치 작업을 하는 것이 아니라 SQL Server가 참조하는 컴퓨터 이름 정보만 수정하므로 시간이 오래 걸리지 않습니다. 이와 더불어 수행해야 할 작업은 SQL Server가 내부적으로 저장하고 참조하는 SQL Server 이름 정보의 갱신입니다. 이를 수행하지 않을 경우 분산 질의나 Replication 과 같이 로컬 서버 이름을 참조하는 작업을 진행할 수 없습니다. SQL Server의 내부 서버 이름을 변경하기 위하여 다음의 절차를 따릅니다.

1. Query Analyzer에서 다음을 수행합니다.

sp_dropserver 'old_servername'
go
sp_addserver 'new_servername', local
go

2. Service Manager나 Enterprise Manager에서 SQL Server를 중지합니다.
3. SQL Server를 시작합니다.
4. Query Analyzer에서 Server 이름이 갱신되었는지 확인하기 위하여 다음을 수행합니다.

Select @@SERVERNAME
2005/06/15 14:34 2005/06/15 14:34
출처 : http://korea.internet.com

마지막 활성 트랜잭션 로그를 백업할 수 있다면 데이터베이스의 복원이 가능한데 이번 기사에서는 마스터 및 데이터베이스 파일이 손상되었을 때 마지막 트랜잭션 로그를 백업해 이후 복원에 활용하는 방법에 대해서 Microsoft 고객기술지원부의 내용을 알아보자.

데이터베이스 파일이 손상되었어도 트랜잭션 로그 파일을 액세스할 수 있으면 현재의 활성 트랜잭션 로그를 백업할 수 있다. Microsoft SQL Server 7.0에서는 주 데이터 파일과 트랜잭션 로그 파일을 모두 액세스할 수 있어야 마지막 활성 트랜잭션 로그를 백업할 수 있다. 마스터 데이터베이스도 손상된 경우 데이터 파일과 마스터 장치가 둘 다 손상된 미디어에 있으면 먼저 마스터 데이터베이스를 다시 생성하고 복원한 다음 액세스할 수 없는 데이터베이스의 마지막 활성 트랜잭션 로그를 백업할 수도 있다. 그러나, 마스터 데이터베이스 백업을 사용할 수 없는 경우에도 SQL Server 7.0에서 주 데이터 파일과 트랜잭션 로그 파일을 액세스할 수 있으면 아래 방법을 사용하여 데이터베이스의 마지막 활성 트랜잭션 로그를 백업할 수도 있다.

Microsoft SQL Server 2000에서는 트랜잭션 로그 파일만 액세스할 수 있으면 마지막 활성 트랜잭션 로그를 백업할 수 있다.

SQL Server 2000 에서는

마스터 데이터베이스와 사용자 데이터베이스의 데이터 파일이 손상되었으나 데이터베이스의 트랜잭션 로그 파일에 여전히 액세스할 수 있으면 아래 단계를 수행하여 데이터베이스의 마지막 활성 트랜잭션 로그를 백업함으로써 데이터 손실을 줄일 수 있다.
트랜잭션 로그 파일의 이름을 변경한다.
마스터 데이터베이스를 다시 만든다.
유사한 데이터베이스를 만든다. 새 데이터베이스는 크기가 같을 필요는 없지만 포함하는 데이터 파일 및 로그 파일의 수는 같아야 한다.
SQL Server를 중지한다.
새로 만든 데이터베이스의 데이터 파일을 모두 삭제하여 복구되지 않게 한다. 트랜잭션 로그를 백업할 수 있도록 새 데이터베이스의 로그 파일을 원래의 로그 파일로 바꾼다.

Microsoft SQL Server 7.0 에서는

주 데이터 파일과 트랜잭션 로그 파일의 이름을 변경한다.
마스터 데이터베이스를 다시 만든다.
유사한 데이터베이스를 만든다. 새 데이터베이스는 크기가 같을 필요는 없지만 포함하는 데이터 파일 및 로그 파일의 수는 같아야 한다.
SQL Server를 중지한다.
새로 만든 데이터베이스의 데이터 파일을 모두 삭제하여 복구되지 않게 한다. 트랜잭션 로그를 백업할 수 있도록 새 데이터베이스의 주 데이터 파일과 로그 파일을 원래의 파일로 바꾼다.
SQL Server를 다시 시작한다.
아래 명령을 실행하여 로그의 마지막 부분을 복원한다.
Backup Log to Disk = With NO_TRUNCATE
sp_dbremove 저장 프로시저를 사용하여 데이터베이스를 제거한다. 모든 로그 파일과 함께 데이터베이스를 복원한다.
2005/06/15 14:33 2005/06/15 14:33
출처 : http://korea.internet.com

Microsoft SQL Server 2000 설치 작업 도중 실패하여 이후 프로그램 제거 옵션을 사용하지 못할때 해결 하는 방법에 대해서 알아보자. 여기에서 제안하는 방법은 잘못된 설치 환경을 깨끗하게 제거 하기 위해 같은 환경과 방법으로 설치를 한다. 이를 통해 제거 옵션을 사용해서 제거 하는 방법이고 이를 가능하게 하기 위해 안정된 재 설치 시점으로 되돌리는 방법에 대해서 이야기 한다.

Microsoft SQL Server 2000을 제거하기 전에

기본 데이터베이스 중 하나에 속할 수 있는 변경 사항과 함께 현재 상태로 저장하고자 하는 데이터베이스가 있을 수 있다. 그럴 경우 본 문서의 단계를 사용하기 전에 MSSQL 디렉터리를 삭제해야 하므로 MSSQL 디렉터리 이외의 디렉터리에 저장해야 하는 데이터의 양호한 백업이나 모든 데이터와 로그 파일의 복사본이 있는지 확인한다.

이러한 파일에는 Microsoft SQL Server 2000이 기본적으로 설치하는 데이터베이스 파일이 포함된다.

Distmdl.*
Master.*
Mastlog.*
Model.*
Modellog.*
Msdbdata.*
Msdblog.*
Northwnd.*(옵션 설치)
Pubs.*
Pubs_log.*
Tempdb.*
Templog.*
또한 다음과 같이 하는 것이 좋다.

Microsoft SQL Server 2000이 클러스터된 경우 다른 클러스터 리소스가 Microsoft SQL Server 2000에 종속되어 있는지 확인한다.
활성 연결이 있으면 제거 프로세스가 성공적으로 완료되지 못할 수 있으므로 Microsoft SQL Server 2000을 중지한다.
Microsoft SQL Server 2000 클라이언트 또는 관리 도구가 다른 노드에서 열려 있지 않도록 한다.
Microsoft SQL Server 2000 서비스 계정이나 동등한 권한을 가진 계정(로컬 관리자 계정의 구성원인 계정)으로 서버에 로그온한다. SQL Server가 클러스터된 경우 사용하는 계정은 모든 클러스터 노드에 있는 로컬 관리자의 구성원이어야 한다.
제거 하려면 다음과 같이 진행한다.

다음 목록에서 사용자의 환경에 따라 옵션을 한 가지 이상 사용할 수 있다. 아래 순서대로 옵션을 실행한다.

2단계와 3단계는 Microsoft SQL Server 2000의 로컬 설치에 적용할 수 있으며 Microsoft SQL Server 2000의 클러스터된 설치에는 적용할 수 없다.

CD의 Microsoft SQL Server 2000 설치 프로그램을 사용하고 제거를 누른다.
제어판에서 프로그램 추가/제거 애플릿을 연다.
regedit을 실행한 다음 다음 레지스트리 키를 찾는다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
제거 키에서 제거하려는 Microsoft SQL Server 2000의 인스턴스에 해당하는 제품 키를 찾는다.
작업 표시줄에서 시작을 누른 다음 실행을 누른다.
실행 대화 상자에 다음 명령을 복사하여 붙여넣거나 입력한다.
C:\WINNT\IsUninst.exe -f"C:\Program Files\Microsoft SQL Server\MSSQL$Server1\Uninst.isu" -c"C:\Program Files\Microsoft SQL Server\MSSQL$Server1\sqlsun.dll" -msql.mif i=I1
앞의 단계가 작동하지 않는 경우 마지막 수단으로 다음 단계를 사용하여 Microsoft SQL Server 2000을 수동으로 제거할 수 있다.
참고로 당장 SQL Server 2000을 제거하는 것은 아니다. 이 단계는 시스템을 성공적으로 다시 설치할 수 있는 상태로 만든 다음 Microsoft SQL Server 2000 인스턴스를 적절하게 제거하는 것이다.
설치용 Data 폴더를 찾고 데이터를 저장해야 할 경우 이름을 바꾼다. 또는 Data 폴더를 삭제한다. 마이크로소프트는 MDF와 LDF 형식으로 데이터베이스 백업을 사용할 수 있게하기 위해, 사용자들이 데이터 폴더를 삭제하는 것을 권장하지 않는다.
%drive% :\Program Files\Microsoft SQL Server\MSSQL\Binn 폴더를 찾은 다음 삭제한다.
다음 레지스트리 키를 찾은 다음 삭제한다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server
다음 레지스트리 키를 찾은 다음 삭제한다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServer
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLSERVERAGENT
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServerADHelper
앞의 레지스트리 키 세 개는 Microsoft SQL Server 2000의 기본 인스턴스에 대응한다. instance_name은 특정 인스턴스에 주어진 이름이기 때문에 명명된 인스턴스는 $instance_name과 함께 d단계에 표시된 것과 비슷하게 나타난다. 제거하려는 인스턴스의 올바른 키를 찾아서 해당 키를 선택하고 삭제한다. 주의해야 할점은 다른 서비스에서 MSSEARCH를 사용하는지 않는 경우 다음 서비스만 삭제한다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSFTPSVC
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSCNTRS
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSEARCH
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSGATHERVER
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSGTHRSVC
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSINDEX
만약 SQL 서버 인스턴스가 클러스터되어 있으면, 클러스터 관리자에 남아 있을 수 있는 이 SQL 서버 인스턴스의 클러스터 리소스를 제거한다. 반드시 SQL 서버의 리소스만 제거해야 한다.
Microsoft SQL Server 2000을 다시 설치하고 같은 이름, IP 주소 등을 사용한다.
설치 프로그램을 실행하고 정상적인 제거를 수행하여 설치 실패로 인해 남아 있을 수 있는 구성 문제나 오류를 해결한다.
때로는 폴더 %drive%:"\Program Files\Microsoft SQL Server\80이 삭제되지 않을 수 있으며 이 때는 수동으로 삭제해야 한다.
SQL Server 2000을 제거하면 다음과 같은 오류 메시지가 나타날 수 있다.
설치 시스템에 이전 프로그램 설치 과정에서 생긴 보류된 파일 작업이 있다. 설치를 실행하기 전에 컴퓨터를 다시 시작해야 한다.
오류 메시지가 나타나면 서버를 다시 시작한 다음 설치를 다시 해본다. 서버를 다시 시작한 후에 오류 메시지가 다시 나타나면 삭제하려는 파일이 읽기 전용일 가능성이 있다. 파일이 읽기 전용인지 확인하려면 다음 레지스트리 키를 찾는다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
2005/06/15 14:33 2005/06/15 14:33