여러 .mdf 파일이있는 데이터베이스


10

온라인으로 검색했지만 원하는 것을 찾지 못했습니다.

문제 / 조회는 SQL Server의 데이터베이스에 하나의 .mdf 파일과 일부 .ndf 파일 및 하나의 .log 파일이 있어야한다는 것을 알고 있습니다.

하나의 mdf와 여러 개의 ndf 파일을 가진 많은 데이터베이스를 보았습니다. 그러나 최근에 모든 데이터베이스에 여러 mdf 파일이있는 서버의 일부 데이터베이스를 발견했습니다.

일부 데이터베이스의 백업을 수행하여 다른 서버로 이동하고 기본 파일을 .mdf로 복원하고 다른 모든 파일을 .ndf로 복원했습니다. 로그 파일은 .log로 복원되었습니다.

이제 내 질문은 :

  1. 데이터베이스에 여러 .mdf 파일을 가지고있는 것이 지혜 로운가?
  2. .mdf 파일이 여러 개인 경우 단점이 있습니까?

그것은이었다 SQL Server 2008 R2 64bit Enterprise Edition

올바른 방향으로 조언이나 조언을 많이 주시면 감사하겠습니다. 감사합니다.

답변:


14

그러나 최근에 모든 데이터베이스에 여러 mdf 파일이있는 서버의 일부 데이터베이스를 발견했습니다.

잘못된 이름 지정 규칙 때문입니다. 마이크로 소프트는 모든 데이터베이스가 하나의 기본 데이터 파일을 가지고 있지만 "mdf 데이터 파일"을 하나만 가질 수있는 것은 아니며, 데이터베이스는 .mdf확장자를 가진 많은 데이터 파일을 가질 수 있지만 하나는 기본 데이터 파일이 될 것이라고 말합니다 . 제공하는 더없는 mdf주 데이터 파일과 확장자 ndf적절한 경계를 가지고 보조 데이터 파일을하지만이 더 어렵다 빠른 당신은 또한 당신이 목격 무엇 때문에 주 데이터 파일을주고이 .abc 확장이 정상 수 있습니다 규칙. 사실 원하는 확장 기능을 제공 할 수 있습니다.

데이터베이스에 여러 .mdf 파일을 가지고있는 것이 지혜 로운가?

당신이 의미하는 경우 :

데이터베이스에 여러 개의 기본 파일을 보유하는 데 지혜가 있습니까?

대답은 아니오입니다. 데이터베이스에는 기본 데이터 파일이 하나만있을 수 있습니다.

그러나 당신이 의미하는 경우 :

데이터베이스에 여러 데이터 파일 (.mdf, .ndf 또는 다른 이름 을 가짐)을 가지고있는 데 지혜가 있습니까?

여러 데이터 파일을 사용할 수 있고 사용할 수없는 경우도 있습니다. 그것들이 다른 물리적 드라이브 (스핀들에 대해 이야기하고 있음)에 퍼져 있다면 쓰기 집약적 응용 프로그램의 장점이 있습니다. 이들이 모두 동일한 논리 파티션에 있으면 기본 자원은 공통 자원을 사용하므로 이점이 없습니다. 파일 및 파일 그룹을 사용하면 데이터베이스를 여러 디스크, 여러 디스크 컨트롤러 또는 RAID (중복 독립 디스크 배열) 시스템에서 작성할 수 있으므로 데이터베이스 성능이 향상됩니다. 예를 들어, 컴퓨터에 4 개의 디스크가있는 경우 3 개의 데이터 파일과 1 개의 로그 파일로 구성된 데이터베이스를 각 디스크에 1 개의 파일로 만들 수 있습니다. 데이터에 액세스하면 4 개의 읽기 / 쓰기 헤드가 동시에 데이터에 액세스 할 수 있습니다.

이 MSDN BOL 기사

파일 그룹은 각 파일 그룹 내의 모든 파일에서 비례 채우기 전략을 사용합니다. 데이터가 파일 그룹에 기록 될 때 SQL Server 데이터베이스 엔진은 모든 데이터가 가득 찰 때까지 첫 번째 파일에 모든 데이터를 기록하는 대신 파일의 여유 공간에 비례하는 양을 파일 그룹 내의 각 파일에 기록합니다. 그런 다음 다음 파일에 씁니다. 예를 들어, 파일 f1에 100MB의 여유 공간이 있고 파일 f2에 200MB의 여유 공간이 있으면 파일 f1에서 하나의 익스텐트가 할당되고 파일 f2에서 두 개의 익스텐트가 할당됩니다. 이러한 방식으로 두 파일이 거의 동시에 가득 차고 간단한 스트라이핑이 이루어집니다.

내가 아는 다른 이점은 단일 데이터 파일이 있고 다른 서버 에서이 데이터베이스를 복원하려는 경우 1TB의 여유 공간이 거의 없을 경우 1TB 데이터베이스를 고려한다는 것입니다. 이제 동일한 데이터베이스가 각각 크기가 250G 인 다른 파일에 분산되면 복원이 쉬워집니다. 이것은 실제로는 시나리오가 아닐 수 있지만 1TB 드라이브 하나보다 4 개의 250G 드라이브가있는 서버를 쉽게 찾을 수 있습니다.

많은 데이터 파일 대신 다른 파일 그룹을 갖는 것이 더 좋지만 다시는 환경이 많지 않다고 말합니다. 여러 파일 그룹으로 구성된 데이터베이스는 단편 복원이라는 프로세스에 의해 단계적으로 복원 될 수 있습니다. 단편 복원은 모든 복구 모델에서 작동하지만 단순 모드보다 전체 및 대량 로그 모델에 더 유연합니다. 데이터베이스의 파일 또는 파일 그룹을 개별적 으로 백업 및 복원 할 수 있습니다 . 이를 통해 나머지 데이터베이스를 복원하지 않고도 손상된 파일 만 복원 할 수 있습니다. 파일 그룹 백업의 파일은 개별적으로 또는 그룹으로 복원 할 수 있습니다


DB에 둘 이상의 파일 데이터 파일이있는 경우 (예 : ndf 및 primary) 여전히 기본값입니다. 이로 인해 DB 파일 중 하나가 테이블 / 인덱스를 생성하는 데 사용 된 경우 성능 오버 헤드가 발생합니까? 기본 파일 그룹은 여전히 ​​기본이지만 생성 된 테이블 및 인덱스는 데이터 파일에 있습니다.
Hi10
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.