백업 장치
백업 작업 중에 백업되는 데이터인 백업은 물리적 백업 장치에 기록됩니다. 물리적 백업 장치는 운영 체제에서 제공하는 테이프 드라이브나 디스크 파일입니다. 백업은 1개에서 64개까지의 백업 장치에 기록될 수 있습니다. 백업에 여러 개의 백업 장치가 필요한 경우 모든 장치 유형은 디스크 또는 테이프 중 하나로 일치해야 합니다.
[!참고]
물리적 백업 장치는 미디어 세트의 첫 번째 백업을 장치에 기록할 때 초기화됩니다. 하나 이상의 백업 장치 세트에서의 백업이 미디어 세트 하나를 구성합니다. 미디어 세트는 고정된 유형과 개수의 백업 장치를 사용하는 백업 미디어, 테이프 또는 디스크 파일을 정렬하여 모아 놓은 것입니다. 미디어 세트에 대한 자세한 내용은 미디어 세트, 미디어 패밀리 및 백업 세트를 참조하십시오.
디스크 백업 장치 사용
디스크 백업 장치는 백업 파일이 하나 이상 포함된 하드 디스크나 다른 디스크 저장 미디어입니다. 백업 파일은 일반적인 운영 체제 파일입니다.
백업 작업에서 미디어 세트에 백업을 추가하는 동안 디스크 파일이 꽉 차면 백업 작업이 실패합니다. 백업 파일의 최대 크기는 디스크 장치에서 사용 가능한 디스크 공간에 의해 결정되므로 백업 디스크 장치에 적합한 크기는 백업 크기에 따라 달라집니다.
디스크 백업 장치는 ATA 드라이브와 같은 간단한 디스크 장치일 수 있습니다. 또는 드라이브의 전체 디스크를 빈 디스크로 투명하게 교체할 수 있는 핫 스왑 가능 디스크 드라이브를 사용할 수 있습니다. 백업 디스크는 서버의 로컬 디스크나 공유 네트워크 리소스인 원격 디스크일 수 있습니다. 원격 디스크를 사용하는 방법은 이 항목의 뒷부분에 나오는 "네트워크 공유의 파일로 백업"을 참조하십시오.
SQL Server 관리 도구는 디스크 파일에 타임스탬프 이름을 자동으로 생성하기 때문에 디스크 백업 장치를 유연하게 처리할 수 있습니다.
![]() |
---|
데이터베이스 데이터 및 로그 디스크가 아닌 다른 디스크를 백업 디스크로 사용하는 것이 좋습니다. 이렇게 하면 데이터 또는 로그 디스크가 실패할 경우 백업에 액세스할 수 있습니다. |
물리적 이름을 사용하여 백업 파일 지정
물리적 장치 이름을 사용하여 백업 파일을 지정하기 위한 기본 BACKUP 구문은 다음과 같습니다.
BACKUP DATABASE database_name
TO DISK = { 'physical_backup_device_name' | **@**physical_backup_device_name_var }
예를 들면 다음과 같습니다.
BACKUP DATABASE AdventureWorks2008R2
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2.bak';
GO
RESTORE 문에서 물리적 디스크 장치를 지정하기 위한 기본 구문은 다음과 같습니다.
RESTORE { DATABASE | LOG } database_name
FROM DISK = { 'physical_backup_device_name' | **@**physical_backup_device_name_var }
예를 들면 다음과 같습니다.
RESTORE DATABASE AdventureWorks2008R2
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2.bak';
디스크 백업 파일의 경로 지정
백업 파일을 지정할 경우 전체 경로 및 파일 이름을 입력해야 합니다. 파일에 백업할 때 파일 이름이나 상대 경로만 지정하면 백업 파일이 기본 백업 디렉터리에 저장됩니다. 기본 백업 디렉터리는 C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Backup입니다. 여기서 n은 서버 인스턴스의 번호입니다. 따라서 기본 서버 인스턴스의 경우 기본 백업 디렉터리는 C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup입니다.
특히 스크립트에서 모호성을 피하기 위해 모든 DISK 절에 백업 디렉터리의 경로를 명시적으로 지정하는 것이 좋습니다. 그러나 쿼리 편집기를 사용할 경우 이는 그다지 중요하지 않습니다. 쿼리 편집기를 사용할 경우 백업 파일이 확실히 기본 백업 디렉터리에 있으면 DISK 절에서 경로를 생략할 수 있습니다. 예를 들어 다음 BACKUP 문은 기본 백업 디렉터리의 AdventureWorks2008R2.bak 백업 파일에 AdventureWorks2008R2 데이터베이스를 백업합니다.
BACKUP DATABASE AdventureWorks2008R2
TO DISK = ’AdventureWorks2008R2.bak’;
GO
[!참고]
기본 위치는 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.n\MSSQLServer 아래의 BackupDirectory 레지스트리 키에 저장됩니다.
네트워크 공유의 파일로 백업
SQL Server에서 원격 디스크 파일에 액세스하려면 SQL Server 서비스 계정에 네트워크 공유에 대한 액세스 권한이 있어야 합니다. 여기에는 백업 작업에서 네트워크 공유에 쓰는 데 필요한 사용 권한과 복원 작업에서 네트워크 공유를 읽는 데 필요한 사용 권한이 포함됩니다. 네트워크 드라이브 및 사용 권한의 가용성은 SQL Server 서비스가 실행되고 있는 컨텍스트에 따라 달라집니다.
SQL Server가 도메인 사용자 계정으로 실행 중일 때 네트워크 드라이브에 백업하려면 SQL Server가 실행되고 있는 세션에서 공유 드라이브를 네트워크 드라이브로 매핑해야 합니다. 명령줄에서 Sqlservr.exe를 시작하면 로그인 세션에서 매핑한 모든 네트워크 드라이브가 SQL Server에 표시됩니다.
Sqlservr.exe를 서비스로 실행하면 SQL Server는 로그인 세션과 관계없는 별도의 세션으로 실행됩니다. 일반적인 경우는 아니지만 서비스가 실행되는 세션에 고유하게 매핑된 드라이브가 있을 수 있습니다.
도메인 사용자 대신 컴퓨터 계정을 사용하여 네트워크 서비스 계정과 연결할 수 있습니다. 특정 컴퓨터에서 공유 드라이브로 백업할 수 있도록 하려면 해당 컴퓨터 계정에 액세스 권한을 부여합니다. 백업을 작성하는 Sqlservr.exe 프로세스에 액세스 권한이 있으면 BACKUP 명령을 보내는 사용자에게 액세스 권한이 있는지 여부는 상관이 없습니다.
중요
네트워크를 통해 데이터를 백업하면 네트워크 오류가 발생하기 쉬우므로 원격 디스크를 사용하는 경우 완료 후에 백업 작업을 확인하는 것이 좋습니다. 자세한 내용은 백업 확인을 참조하십시오.
UNC(Universal Naming Convention) 이름 지정
백업이나 복원 명령에서 네트워크 공유를 지정하려면 백업 장치에 정규화된 UNC 파일 이름을 사용해야 합니다. UNC 이름은 \\Systemname\ShareName\Path\FileName 형식으로 입력합니다.
예를 들면 다음과 같습니다.
BACKUP DATABASE AdventureWorks2008R2
TO DISK = '\\BackupSystem\BackupDisk1\AW_backups\AdventureWorks2008R2Data.Bak';
GO
테이프 장치 사용
[!참고]
테이프 백업 장치에 대한 지원은 나중 버전의 SQL Server에서 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오.
SQL Server 데이터를 테이프에 백업하려면 Microsoft Windows 운영 체제에서 지원하는 테이프 드라이브 또는 드라이브를 사용해야 합니다. 또한 지정된 테이프 드라이브에는 드라이브 제조업체가 권장하는 테이프만 사용하는 것이 좋습니다. 테이프 드라이브 설치 방법은 Windows 운영 체제 설명서를 참조하십시오.
테이프 드라이브를 사용하여 백업할 경우 한 개의 테이프가 가득 차면 계속해서 다른 테이프에 백업합니다. 각 테이프에는 미디어 헤더가 있습니다. 첫 번째로 사용된 미디어를 초기 테이프라고 합니다. 각각의 연속되는 테이프는 연속 테이프라고 하며 이전 테이프의 일련 번호보다 높은 미디어 일련 번호가 부여됩니다. 예를 들어 4개의 테이프 장치가 연결된 미디어 세트에는 적어도 4개의 초기 테이프가 있으며 데이터베이스가 맞지 않은 경우 4개의 연속적인 테이프가 있습니다. 백업 세트를 추가할 때 마지막 테이프를 연속하여 탑재해야 합니다. 마지막 테이프를 탑재하지 않으면 데이터베이스 엔진이 탑재된 테이프의 끝으로 빨리 감아 검색한 다음 테이프를 교체하도록 요청합니다. 이때 마지막 테이프를 탑재합니다.
테이프 백업 장치는 다음 사항을 제외하고 디스크 장치와 같이 사용됩니다.
테이프 장치는 SQL Server의 인스턴스를 실행하는 컴퓨터에 물리적으로 연결되어 있어야 하며 원격 테이프 장치로 백업할 수 없습니다.
백업 작업 중에 테이프 백업 장치가 찼는데 작성할 데이터가 더 남아 있으면 SQL Server에서 새 테이프를 넣으라는 메시지를 표시하고 새 테이프가 로드된 후에 백업 작업을 계속합니다.
열려 있는 테이프 관리
열려 있는 테이프 장치 목록 및 탑재 요청 상태를 보려면 sys.dm_io_backup_tapes 동적 관리 뷰를 쿼리합니다. 이 뷰는 다음 BACKUP 또는 RESTORE 작업을 기다리는 동안 일시적으로 유휴 상태에 있는 사용 중인 테이프를 비롯하여 열려 있는 모든 테이프를 표시합니다.
테이프를 실수로 열어 놓은 경우 테이프를 해제하는 가장 빠른 방법은 RESTORE REWINDONLY FROM TAPE **=**backup_device_name 명령을 사용하는 것입니다. 자세한 내용은 RESTORE REWINDONLY(Transact-SQL)를 참조하십시오.
물리적 이름을 사용하여 백업 테이프 지정
테이프 드라이브의 물리적 장치 이름을 사용하여 백업 테이프를 지정하기 위한 기본 BACKUP 구문은 다음과 같습니다.
BACKUP { DATABASE | LOG } database_name
TO TAPE = { 'physical_backup_device_name' | **@**physical_backup_device_name_var }
예를 들면 다음과 같습니다.
BACKUP LOG AdventureWorks2008R2
TO TAPE = '\\.\tape0';
GO
RESTORE 문에서 물리적 테이프 장치를 지정하기 위한 기본 구문은 다음과 같습니다.
RESTORE { DATABASE | LOG } database_name
FROM TAPE = { 'physical_backup_device_name' | **@**physical_backup_device_name_var }
테이프와 관련된 BACKUP 및 RESTORE 옵션
테이프를 편리하게 관리할 수 있도록 BACKUP 문은 다음과 같은 테이프 관련 옵션을 제공합니다.
{ NOUNLOAD | UNLOAD }
백업 또는 복원 작업 후에 테이프 드라이브에서 자동으로 백업 테이프를 언로드할지 여부를 제어할 수 있습니다. UNLOAD/NOUNLOAD는 세션 기간 동안이나 다른 옵션을 지정하여 다시 설정할 때까지 유지되는 세션 설정입니다.
{ REWIND | NOREWIND }
SQL Server에서 백업이나 복원 작업 후에 테이프를 열어 놓을지 또는 테이프가 꽉 찬 후에 테이프를 해제하고 되감을지를 제어할 수 있습니다. 기본 동작은 테이프를 되감는 것입니다(REWIND).
[!참고]
BACKUP 구문 및 인수에 대한 자세한 내용은 BACKUP(Transact-SQL)을 참조하십시오. RESTORE 구문 및 인수에 대한 자세한 내용은 RESTORE(Transact-SQL) 및 RESTORE 인수(Transact-SQL)를 참조하십시오.
논리적 백업 장치 사용
논리적 백업 장치는 특정 물리적 백업 장치(디스크 파일 또는 테이프 드라이브)를 가리키는 선택적인 사용자 정의 이름입니다. 논리적 백업 장치를 사용하면 해당 물리적 백업 장치를 참조할 때 간접 참조를 사용할 수 있습니다.
논리적 백업 장치를 정의하려면 물리적 장치에 논리적 이름을 할당합니다. 예를 들어 논리적 장치인 AdventureWorks2008R2Backups가 Z:\SQLServerBackups\AdventureWorks2008R2.bak 파일이나 \\.\tape0 테이프 드라이브를 가리키도록 정의할 수 있습니다. 그런 다음 백업 및 복원 명령에서 DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2.bak' 또는 TAPE = '\\.\tape0' 대신 AdventureWorks2008R2Backups를 백업 장치로 지정할 수 있습니다.
논리적 장치 이름은 서버 인스턴스의 모든 논리적 백업 장치에서 고유해야 합니다. 기존의 논리적 장치 이름을 보려면 sys.backup_devices 카탈로그 뷰를 쿼리합니다. 이 뷰는 각 논리적 백업 장치의 이름을 표시하고 해당하는 물리적 백업 장치의 유형과 물리적 파일 이름 또는 경로를 설명합니다.
논리적 백업 장치를 정의한 후에는 BACKUP 또는 RESTORE 명령에서 장치의 물리적 이름 대신 논리적 백업 장치를 지정할 수 있습니다. 예를 들어 다음 문은 AdventureWorks2008R2Backups 논리적 백업 장치에 AdventureWorks2008R2 데이터베이스를 백업합니다.
BACKUP DATABASE AdventureWorks2008R2
TO AdventureWorks2008R2Backups;
GO
[!참고]
지정된 BACKUP 또는 RESTORE 문에서 논리적 백업 장치 이름과 해당 물리적 백업 장치 이름을 바꾸어 사용할 수 있습니다.
논리적 백업 장치는 긴 경로보다 사용이 편리하다는 장점이 있습니다. 동일한 경로 또는 테이프 장치에 일련의 백업을 작성하려는 경우 논리적 백업 장치를 사용하면 도움이 될 수 있습니다. 논리적 백업 장치는 특히 테이프 백업 장치를 식별하는 데 유용합니다.
특정 논리적 백업 장치를 사용하도록 백업 스크립트를 작성할 수 있습니다. 이렇게 하면 스크립트를 업데이트하지 않고도 새로운 물리적 백업 장치로 전환할 수 있습니다. 전환 과정은 다음과 같습니다.
원래의 논리적 백업 장치 삭제
원래의 논리적 장치 이름을 사용하지만 다른 물리적 백업 장치에 매핑되는 새 논리적 백업 장치 정의. 논리적 백업 장치는 특히 테이프 백업 장치를 식별하는 데 유용합니다.
논리적 백업 장치를 정의하려면
BackupDevice(SMO)
논리적 백업 장치를 삭제하려면
논리적 백업 장치를 사용하려면(SQL Server Management Studio)
논리적 백업 장치를 사용하려면(Transact-SQL)
미러된 백업 미디어 세트
백업 미디어 세트를 미러링하면 백업 장치의 오작동에 따른 영향이 줄어듭니다. 데이터 손실을 방지할 수 있는 최후의 수단이 백업이므로 이러한 오작동은 특히 심각합니다. 데이터베이스의 크기가 커지면 백업 장치 또는 미디어의 실패로 인해 복원 불가능한 백업을 만들게 될 가능성이 커집니다. 백업 미디어를 미러링하면 물리적 백업 장치에 중복을 제공하여 백업의 안정성이 향상됩니다. 자세한 내용은 미러된 백업 미디어 세트 사용을 참조하십시오.
[!참고]
미러된 백업 미디어 세트는 SQL Server 2005 Enterprise Edition 이상 버전에서만 지원됩니다.
SQL Server 백업 보관
파일 시스템 백업 유틸리티를 사용하여 디스크 백업을 보관하고 오프사이트에 보관 파일을 저장하는 것이 좋습니다. 디스크를 사용할 경우 보관된 백업을 네트워크를 통해 오프사이트 디스크에 쓸 수 있다는 장점이 있습니다. 테이프를 사용할 경우 일련의 보관된 백업을 더 이상 필요하지 않을 때까지 축적할 수 있다는 장점이 있습니다.
일반적인 보관 방법은 SQL Server 백업을 로컬 백업 디스크에 쓰고 테이프에 보관한 다음 오프사이트에 테이프를 저장하는 것입니다.
참고 항목