【Data Platform】/SQL Server

[2k5] 시스템 리소스 데이터베이스 및 시스템 기본 테이블

디비랑 2008. 9. 8. 11:40

/**********************************************************************************************
-- Title : [2k5] 시스템 리소스 데이터베이스 및 시스템 기본 테이블
-- Reference : bol
-- Key word : system resource database system base table
**********************************************************************************************/
리소스 데이터베이스는 SQL Server 2005 에 포함된 모든 시스템 개체가 들어 있는 읽기 전용 데이터베이스입니다. sys.objects 등의 SQL Server 시스템 개체는 물리적으로 리소스 데이터베이스에 있지만 논리적으로 모든 데이터베이스의 sys 스키마에 나타납니다.
 
중요:
리소스 데이터베이스에는 사용자 데이터 또는 사용자 메타데이터가 없습니다.
리소스 데이터베이스는 빠른 버전 업그레이드, 서비스 팩을 쉽게 롤백하는 기능 등의 중요한 이점을 제공합니다.
 
리소스 데이터베이스의 물리적 파일 이름은 Mssqlsystemresource.mdf입니다. 기본적으로 이 파일은 x:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\Mssqlsystemresource.mdf에 있습니다.
 
주의:
리소스 데이터베이스 파일을 이동하거나 이름을 바꾸지 마십시오. 파일의 이름을 바꾸거나 파일을 이동하면 SQL Server 가 시작되지 않습니다. 또한 리소스 데이터베이스를 압축하거나 암호화된 NTFS 파일 시스템 폴더에 두지 마십시오. 이렇게 하면 성능이 저하되고 업그레이드할 수 없게 됩니다.

SQL Server 의 각 인스턴스에는 관련된 Mssqlsystemresource.mdf 파일이 하나만 있으며 인스턴스는 이 파일을 공유하지 않습니다. 클러스터에서 리소스 데이터베이스는 공유 디스크의 \Data 폴더에 있습니다.
 
리소스 데이터베이스에 대한 백업 및 복원 계획은 SQL Server 의 나머지 실행 파일에 대한 백업 및 복원 계획과 같아야 합니다.
 
중요:
Mssqlsystemresource.mdf 파일을 일반 데이터베이스 백업 및 복원 프로세스에 포함하지 마십시오. 이 파일에는 데이터 또는 메타데이터가 없습니다. 이 파일에는 코드만 들어 있습니다. 기본적으로 SQL Server 백업 및 복원 구성 요소는 리소스 데이터베이스를 자동으로 생략합니다.

중요:
배포 미디어에서 리소스 데이터베이스를 다시 작성하면 모든 서비스 팩과 QFE가 손실되므로 다시 적용해야 합니다. 자세한 내용은 방법: SQL Server 2005용 master 데이터베이스 다시 구축을 참조하십시오.

리소스 데이터베이스를 새 버전의 SQL Server 으로 빠르고 쉽게 업그레이드합니다. 이전 버전에서의 업그레이드에는 시스템 개체를 삭제하고 만드는 과정입니다. 리소스 데이터베이스 파일에는 모든 시스템 개체가 들어 있으므로 업그레이드는 단일 리소스 데이터베이스 파일을 로컬 서버에 복사하여 완료됩니다. 따라서 이 복사 방법을 사용하면 서비스 팩을 롤백하는 데 필요한 작업은 리소스 데이터베이스의 최신 버전을 이전 버전으로 덮어쓰는 작업뿐입니다.
리소스 데이터베이스 액세스
Microsoft CSS(고객 지원 서비스) 전문가가 고객의 문제를 해결하고 고객 서비스를 제공하려는 경우에만 리소스 데이터베이스를 액세스할 수 있습니다. 단일 사용자 모드에서는 USE mssqlsystemresource 문을 성공적으로 실행할 수 있습니다. 또한 리소스 데이터베이스의 모든 기본 테이블에 액세스할 수도 있습니다. 기본 테이블에 대한 자세한 내용은 시스템 기본 테이블을 참조하십시오.

리소스 데이터베이스의 ID는 항상 32767입니다. 리소스 데이터베이스와 관련된 다른 중요한 값은 버전 번호 및 데이터베이스가 마지막으로 업데이트된 시간입니다.

리소스 데이터베이스는 단일 사용자 모드에서만 액세스할 수 있지만 다음 문은 다중 사용자 모드에서 실행할 수 있습니다.

리소스 데이터베이스의 버전 번호를 확인하려면 다음 문을 사용합니다.

 코드 복사
SELECT SERVERPROPERTY('ResourceVersion');
GO

리소스 데이터베이스가 마지막으로 업데이트된 시기를 확인하려면 다음 문을 사용합니다.

 코드 복사
SELECT SERVERPROPERTY('ResourceLastUpdateDateTime');
GO

시스템 개체의 SQL 정의에 액세스하려면 OBJECT_DEFINITION 함수를 사용합니다.
--------------------------------------------------------------------------------
시스템 리소스 데이터베이스 :
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.ko/udb9/html/31f2df90-651f-4699-8067-19f59b60904f.htm
시스템 기본 테이블 :
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.ko/udb9/html/31f2df90-651f-4699-8067-19f59b60904f.htm