INF: SQL Server에서 디스크 드라이브 캐싱 사용

기술 자료 번역 기술 자료 번역
기술 자료: 234656 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR234656
모두 확대 | 모두 축소

요약

데이터베이스 시스템은 예상하지 못한 시스템 장애가 발생하더라도 데이터의 정확한 저장 및 복구에 가장 우선적인 책임을 갖습니다.

시스템은 현재 실행, 다중 트랜잭션, 다양한 실패 요소를 책임지는 동시에 트랜잭션의 원자성 및 지속성을 보장해야 합니다. 이것을 ACID(Atomicity, Consistency, Isolation 및 Durability: 원자성, 일관성, 격리 및 내구성) 속성이라고 합니다.

본 문서는 디스크 드라이브 캐시의 의미를 설명합니다. 캐싱 및 대체 실패 모드에 대한 자세한 내용은 Microsoft 기술 자료에 있는 다음 문서를 참고하십시오.

추가 정보

SQL Server 7.0, SQL Server의 이전 버전 그리고 현재 출시되어 있는 많은 주요 데이터베이스 제품은 Write-Ahead Logging(WAL) 프로토콜을 사용합니다.
Write-Ahead Logging(WAL) 프로토콜
프로토콜이란 말이 WAL을 잘 설명해 줍니다. 이것은 데이터가 올바르게 저장 및 교환되었는지 그리고 장애가 발생했을 경우 데이터를 알 수 있는 상태로 복구할 수 있는지 확인하는데 필요한 특정하게 정의된 수행 단계를 모아놓은 것입니다. 네트워크에 정의된 프로토콜이 일관되고 보호된 방식으로 데이터를 교환하는 것처럼 WAL 역시 프로토콜을 준수하여 데이터를 보호합니다.
SQL Server의 모든 버전은 Win32 CreateFile 함수를 사용하여 로그 파일과 데이터 파일을 엽니다. SQL Server에서 파일을 열었을 때 dwFlagsAndAttributes 구성원(Member)에 FILE_FLAG_WRITE_THROUGH 옵션이 포함됩니다.
FILE_FLAG_WRITE_THROUGH
이 옵션을 사용하면 시스템은 모든 중간 캐시를 통해 쓰고 디스크로 바로 갑니다. 시스템은 쓰기 작업을 계속 캐시할 수는 있지만 천천히 플러시할 수는 없습니다.

FILE_FLAG_WRITE_THROUGH 옵션은 쓰기 작업이 성공적으로 완료되었을 때 데이터가 안정한 저장소에 올바로 저장될 수 있도록 합니다. 이 옵션은 데이터를 보호하기 위해 WAL(Write Ahead Logging) 프로토콜 규정에 맞게 조정되었습니다.
많은 디스크 드라이브(SCSI 및 IDE)에는 512 KB, 1 MB 또는 그 이상의 캐시가 내장되어 있습니다. 하지만 드라이브 캐시는 보통 배터리 지원 솔루션이 아닌 축전기를 사용합니다. 이러한 캐싱 메커니즘은 전원 주기나 이와 유사한 실패 요소 전반에 대해 쓰기를 보장할 수는 없습니다. 단지 섹터 단위 쓰기 작업을 완료할 수 있습니다. 드라이브가 계속 커지면서 캐시도 점점 커지게 되고 이에 따라 장애가 발생하게 되면 더욱 많은 양의 데이터를 노출시키게 됩니다.

많은 공급업체들이 배터리가 지원되는 기능적 캐싱 솔루션을 제공합니다. 이러한 캐시는 수일 동안 캐시에 데이터를 보관할 수 있을 뿐 아니라 캐싱 카드를 보조 컴퓨터에 옮길 수도 있습니다. 전원이 제대로 복원되면 다른 추가적인 데이터 액세스가 허용되기 전에 쓰여지지 않은 데이터는 완전히 플러시됩니다. 대부분의 캐시는 읽기 및 쓰기 캐시의 비율이 최적의 성능으로 설정되도록 허용합니다. 일부 캐시에는 대용량 메모리 저장 영역이 있습니다. 사실, 매우 특정한 분야에서 일부 하드웨어 공급업체는 6GB 이상의 캐시를 갖춘 첨단 배터리 지원 디스크 캐싱 시스템을 제공합니다. 이러한 것들이 데이터베이스 성능을 상당히 향상시킵니다.

캐시를 사용하지 않는 I/O 전송은 드라이브 헤드를 이동하는데 필요한 기계의 시간, 회전율 및 다른 제한 인자로 인해 훨씬 길어질 수 있습니다.

데이터의 완전한 안전성을 보장하려면 모든 데이터의 캐싱이 올바로 처리되고 있는지 확인해야 합니다. 대부분 상황에서는 디스크 드라이브의 쓰기 캐싱을 사용할 수 없게 해야 합니다.

참고: 모든 대체 캐싱 메커니즘이 많은 형태의 장애를 올바로 처리할 수 있어야 합니다.

Microsoft는 SQL70IOStress 유틸리티를 사용하여 몇 가지 SCSI 및 IDE 드라이브에 대한 테스트를 수행했습니다. 이 유틸리티는 매우 비동기적인 읽기/쓰기 활동을 시뮬레이트된 데이터 장치 및 로그 장치에 시뮬레이트합니다. 테스트 성능 통계에 의하면 사용할 수 없는 쓰기 캐시를 갖고 RPM 범위가 5,200-7,200인 드라이버의 초당 평균 쓰기 작업은 50-70회입니다.

SQL70IOStress에 대한 추가 정보 및 세부 사항은 Microsoft 기술 자료에 있는 다음 문서를 참고하십시오.
231619INF: SQL70IOStress Utility to Stress Disk Subsystem
많은 PC 제조업체(예를 들어, Compaq, Dell, Gateway 또는 HP)들은 쓰기 캐시를 사용하지 않는 드라이버를 요구합니다. 그러나, 테스트 결과에서 나타나듯이 항상 이러한 것은 아니기 때문에 언제나 끝까지 테스트하십시오.

참고: 디스크 드라이브의 캐싱 상태에 대해 궁금한 점이 있으면 제조업체로 문의하여 쓰기 캐싱 작업을 사용할 수 없게 하는 적절한 유틸리티를 구하거나 점퍼 설정을 알아보십시오.

속성

기술 자료: 234656 - 마지막 검토: 1999년 7월 7일 수요일 - 수정: 1.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 7.0 Standard Edition
키워드:?
KB234656

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com