SQL Server 인스턴스 루트 디렉토리를 별도의 드라이브에 두는 것이 유용합니까?


29

SQL Server를 설치할 때 많은 기본 경로를 변경할 수 있다는 것을 알고 일반적으로 설치를 할 때 데이터 및 로그 폴더를 별도의 드라이브 (일반적으로 D 및 E)에 있도록 변경하지만 최근에 기본이 아닌 다른 인스턴스 이름을 실행하는 사전 설치된 머신이며 mdf 파일과 함께 인스턴스 루트 디렉토리가 D 드라이브에 있도록 구성했습니다. 이것은 단지 폴더와 데이터베이스 파일 만있는 비교적 깨끗한 드라이브에 SQL Server 바이너리 전체를 설치했음을 의미합니다.

즉, 이제 다음이 있습니다.

C:\Program Files\Microsoft SQL Server\ --Base Install
D:\Microsoft SQL Server\MSSQL10_50.MyInstance --Instance Binaries
D:\Microsoft SQL Server\MSSQL10_50.MyInstance\MSSQL\DATA --Data Files
E:\Microsoft SQL Server\MSSQL10_50.MyInstance\MSSQL\LOGS --Log Files

일반적으로 나는 다음과 같이 실행됩니다 :

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\ --Base Install & Default Instance Binaries
D:\MSSQL\DATA --Data Files
E:\MSSQL\LOGS --Log Files

별도의 인스턴스 바이너리 폴더가 필요한 이유를 이해할 수는 있지만 모든 바이너리를 별도의 드라이브에 배치하는 것이 왜 유용한 지 알 수 없습니다.

왜 그것이 합리적인 일인지 말해 줄 수 있습니까? 아니면 전혀 차이가 없을까요? 나에게 그것은 정말 어수선한 것 같습니다 ...

답변:


23

인스턴스 루트를 분할하는 것과 관련하여 몇 가지 주장이 있습니다.

  1. 일부 사람들은 "C"드라이브를 OS 및 OS 바이너리 전용으로 유지하는 것을 선호합니다. 이를 통해 C 드라이브에서 충돌이 발생할 경우 복구를위한 여러 가지 옵션을 제공 할 수 있으며, OS가 공간 관련 문제를 유발하거나 다른 앱과 공유하지 못하도록하는 데 도움이 될 수 있습니다.
  2. 다른 프로그램에서 SQL Server의 바이너리를 분리하고 오류 로그가있는 Logs 폴더와 같은 일부 중요한 폴더의 가용성을 보장합니다.이 폴더는 SQL Server를 시작하기 위해 액세스 할 수 있어야합니다. 당신은 기본적으로 다른 사람들로부터 자신을 보호하고 있습니다.

SQL Server 바이너리 / 인스턴스 파일을 다른 프로그램 파일과 같은 위치에 넣을 수 있습니다. 그러나 그렇게하는 경우 최소한 시스템 데이터베이스 파일과 기본 백업 위치를 가져 와서 다른 곳으로 옮기십시오.

재생할 드라이브 문자 수가 무제한으로 제공되는 경우 다음과 같이하십시오 (최소한. 문자는 중요하지 않습니다).

  • C-OS 및 시스템 레벨 파일 만
  • D-모든 앱의 프로그램 파일 (SQL Server 포함)
  • S-인스턴스 수준 파일 / SQL Server 시스템 데이터베이스 및 로그 파일 (TempDB 제외) (참고. 인스턴스가 여러 개인 경우 4 개를 만들지 않습니다. 대부분의 경우 폴더는 분리를 제공합니다)

( ED- 또 다른 참고 사항-종종 "S"드라이브를 사용할 수 없습니다. 하루가 끝나면 Master, Model, MSDB 및 Resource db에 대한 시스템 데이터베이스 파일을 일부 사용자와 동일한 드라이브에 보관하십시오. 데이터베이스 파일을 논리적으로 구분하기 위해 별도의 폴더에 있지만 혼동을 줄이려면 끝이 아닙니다.)

  • F-사용자 데이터베이스의 데이터 파일
  • L-사용자 데이터베이스의 로그 파일 드라이브
  • T-TempDB
  • X-백업 드라이브 (많은 경우 백업 후 사본을 지불하지 않고 네트워크 드라이브로 백업을 스트리밍하기로 선택했지만 즉시 다른 곳으로 스토리지에 백업하고 있습니다.)

나는 종종 더 많은 데이터와 로그 드라이브, 때로는 다른 TempDB 드라이브를 가질 것이다. 여러 인스턴스를 추가하면 드라이브 문자가 빨리 없어 질 수 있습니다. C :에 인스턴스 레벨 파일을 넣는 것으로 확실히 벗어날 수 있습니다. 그리고 그런 설정을 한 클라이언트에 대해 많은 상태 점검을 수행합니다. "오 와우 .. 우리는 지금 고쳐야합니다"라고 말하지 않습니다. 이제 TempDB 파일도 있으면 일반적으로 그들에게 그것을 바꾸게하십시오. 때로는 마스터 및 MSDB 데이터베이스도 이동합니다.

그러나 이러한 것들을 나누지 않으면 세상은 끝나지 않을 것입니다. 이점은 실제로 파일을 별도로 유지하는 것입니다. DBA는 회사의 다른 역할, 다른 응용 프로그램, 기타 설치 등을 중심으로 건전한 편집증을 가져야하며 갈등의 가능성으로부터 자신을 고립시킬수록 더 나아질 것입니다. 또한 재설치 및 복구에 대한 추가 옵션을 제공합니다. 따라서 바이너리를 C와 분리하십시오. 그러나 제 조언은 각 인스턴스마다 별도의 드라이브에 열중하지 않을 것입니다.


3

글쎄, Windows에는 가능한 드라이브 문자가 26 개뿐입니다. 1
그러나 마운트 지점을 사용할 수 있습니다.2

따라서 하나의 시스템에 25 개의 서로 다른 (SQL, Web, ...) 서버를 설치해야하는 경우 서버 중 하나에 하나의 드라이브 문자를 갖는 것이 좋습니다.
그러나 서버가 하나만있는 경우 로그 파일, 데이터베이스 및 프로그램 파일에 대해 다른 드라이브 문자를 갖는 것이 더 합리적입니다.
로그 / 데이터베이스 / 프로그램 파일이 다른 폴더에있는 경우 분할 할 수도 있습니다.

  1. SQL 서버를 중지
  2. 파티션을 추가
  3. 모든 데이터베이스 파일을 파티션에 복사
  4. 마운트 지점을 데이터베이스 파일이있는 폴더로 변경하십시오 (예 : d : \ database).
  5. 끝마친

이것은 전혀 질문에 대답하지 않습니다. 드라이브 문자 나 탑재 지점에 대해 묻지 않고 인스턴스 루트를 별도의 드라이브에 배치하는 것이 왜 합리적인지 묻고있었습니다. 이것들은 시스템 파일이기 때문에 시스템 드라이브에 두는 것이 좋습니다.
adhocgeek

1
당신을 오해해서 미안 해요 하나의 드라이브에 SQL에 속하는 모든 것을 하나로 모으는 것이 좋은 방법은 백업 드라이브의 단순성 일 수 있으며이 드라이브에서만 실행하면됩니다. 그러나 모든 것을 하나의 드라이브에만 저장하는 경우 데이터베이스, 이진 및 로그는 별도의 폴더에 있어야합니다. 그리고 마운트 지점에 도달하여 전체 시스템을 변경하지 않고도 다른 파티션의 데이터를 재구성 할 수 있습니다.

@gnomix 당신은 항상 아래의 '수정'링크를 클릭하여 답변과 질문을 편집 할 수 있습니다.
dezso

@gnomix 잠재적 인 백업 스크립트의 단순성은 데이터 및 로그를 자체 드라이브에 저장하는 주된 이유 중 하나이지만 시스템 파일을 백업 할 필요는 없습니다. 이것이 일반적인 요구 사항인지 알고 싶습니다. 내 본능에 따르면 시스템 파일을 비 시스템 드라이브에 넣으면 문제가 발생할 수 있습니다.
adhocgeek

1
또한 드라이브를 둘 이상의 파티션으로 분리해도 실제로 디스크 I / O에는 도움이되지 않습니다. 그러나 네, 전적으로 당신에게 동의합니다. 데이터베이스 파일을 드라이브의 루트에 배치하는 것이 훨씬 더 멋지게 보이고 물건을 쉽게 찾을 수 있습니다. 나는 보통 D : \ Data E : \ Logs F : \ Backup, ...과 같은 디렉토리에 모든 것을 넣습니다.
user1207758 21
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.