SQL Server 네트워크 백업 트러블슈팅(UNC 설정)

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012

 

SQL Server에서 데이터베이스를 백업 할 때 로컬에 있는 하드디스크 뿐만 아니라 네트워크에 있는 다른 서버의 드라이브에도 백업 할 수도 있다.

그런데 네트워크에 있는 서버의 디스크를 네트워크 드라이브로 잡아서 해당 드라이브에 백업하려고 하면 백업 실패가 발생 한다. 이럴 때 UNC 방식을 사용하면 백업 작업을 수행 할 수 있다.

 

[UNC란?]

네트워크에서 UNC는 컴퓨터 내의 공유 폴더 또는 파일이 저장되어 있는 장치를 명시하지 않고도 그 파일을 확인하기 위한 방법이다. 윈도우 운영체제에서 UNC 형식은 다음과 같아.

\\Servername\Sharename\path\filename

 

 

[네트워크 드라이 백업]

실습을 통해 네트워크 백업하는 방법을 알아 보자. 우선 공유 드라이브를 가진 서버의 IP를 확인 한다. 실습에서는 2개의 가상화 서버로 진행 하였다. 192.168.237.166의 SQL_Backup 폴더가 공유 드라이브 이다.

 

 

데이터베이스가 있는 컴퓨터(원본 서버)에서 다음 스크립트를 진행하여 백업을 진행 하였다.

백업 오류가 발생하였다. 에러 원인은 운영체제에서 액세스 거부가 되었다고 한다.

BACKUP DATABASE SW_TEST TO DISK = '\\192.168.237.166\SQL_Backup\SW_Test.bak'

 

 

 

가장 먼저 커맨드 명령을 통하여 net use 명령으로 해당 경로를 등록 하였다.

 

그리고 백업을 진행 하자. 만약 실패한다면 다음 사항을 확인 해야 한다.

SQL Server 시작계정 권한이 해당 네트워크 드라이브 경로에 접근 권한이 있어야 한다. (해당 네트워크 서버에 계정/비번이 동일해야 한다.)

SQL Server의 시작계정과 공유 폴더의 접근 권한을 확인하여 보안 정책을 설정 하도록 하자.

 

그리고 네트워크 백업을 진행 하자. 만약 실패 한다면 다음 사항을 확인 해야 한다.

SQL Server가 외부에서 등록한 UNC의 경로를 인식하지 못하여 생기는 문제가 발생 할 수 있기 때문에 다음과 같이 xp_cmdshell을 사용해서 net use를 실행 한다.

    exec xp_cmdshell 'net use \\192.168.237.166\SQL_Backup password /USER:Administrator'

 

 

UNC 설정이 완료되면 네트워크 백업을 진행 하여보자.

BACKUP DATABASE SW_TEST TO DISK = '\\192.168.237.166\SQL_Backup\SW_Test.bak'

 

 

성공적인 백업이 되었음을 알 수 있다.

 

[네트워크 드라이브에서 복원]

기존의 백업 방법과 동일하다. 단지 백업 대신 복원 명령을 사용한다.

RESTORE DATABASE SW_TEST FROM DISK = '\\192.168.237.166\SQL_Backup\SW_Test.bak' WITH REPLACE, RECOVERY

 

 

 

[네트워크 백업을 사용 하는 경우]

  • 로컬 디스크에 공간이 부족하여 큰 드라이브가 필요 할 때
  • 2차 백업용으로 복사 파일을 보관 할 때
  • 공유 드라이브로 전체 백업을 관리 할 때

 

[네트워크 드라이브의 단점]

  • 랜카드 대역폭에 따라 백업 속도에 영향
  • 네크워크를 통한 백업이므로 중간에 손실(실패)이 발생
  • 백업이 오래 걸리는 동안 DB에 오버헤드가 발생

 

내가 생각하기엔 로컬 디스크가 허락한다면 로컬에 최대한 빠르게 저장한 다음(성능에 문제 없는 한도 내에서) 복사 전용 프로그램을 이용하여 로컬의 완전한 백업 파일을 공용 드라이브로 이동하는 것이 안전하고 빠를 것이라 생각한다. 이 때에는 네트워크의 부하나 기타 시스템의 영향도를 관리자가 제어할 수 있기 때문이다.

백업에 대한 시나리오는 자신이 운영하는 환경에 따라 잘 판단해서 효율적인 솔루션을 찾도록 하자.

 

[참고자료]

http://www.sqlserver-dba.com/2013/03/sql-backup-and-restore-to-unc.html

http://msdn.microsoft.com/ko-kr/library/ms179313.aspx

 

 


강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 38111
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 20672
1754 SQL Server 페이지 및 익스텐트 아키텍처(2/4) – 익스텐트 할당 및 빈공간 관리 jevida(강성욱) 2016.09.27 1644
1753 SQL Server 페이지 및 익스텐트 아키텍처(1/4) – 페이지 및 익스텐트 이해 jevida(강성욱) 2016.09.27 4037
1752 SQL Server Error Log 보관 주기 설정 jevida(강성욱) 2016.09.15 2331
» SQL Server 네트워크 백업 트러블슈팅(UNC 설정) jevida(강성욱) 2016.09.15 5473
1750 SQL Server 인증 실패시 반환되는 클라이언트 메시지 정보 jevida(강성욱) 2016.09.15 4278
1749 SQL Server에 할당된 메모리 개체 확인 jevida(강성욱) 2016.09.15 1649
1748 SQL Server 비동기 업데이트 활성 / 비활성에 따른 특성 jevida(강성욱) 2016.09.15 2037
1747 DBCC CHECKDB와 Compute Column 인덱스의 성능 관계 jevida(강성욱) 2016.09.15 1544
1746 Collation에 따른 DMV 실행 오류 jevida(강성욱) 2016.09.15 1369
1745 참조 개체 확인 (sys.sql_expression_dependencies) jevida(강성욱) 2016.09.15 1724
1744 특정 테이블의 마지막 접근 시간 알아보기 jevida(강성욱) 2016.09.15 1304
1743 SQL Server Fill Factor (채우기 비율)에 관한 오해와 진실 jevida(강성욱) 2016.09.15 4933
1742 LOB 데이터와 Shrink 작업 jevida(강성욱) 2016.09.15 1303
1741 데이터베이스 함수 검색 하기 jevida(강성욱) 2016.09.15 1125
1740 필터 통계 사용과 파리미터 사용 jevida(강성욱) 2016.09.15 1258
1739 유지관리 계획과 병렬처리 – Index Rebuild jevida(강성욱) 2016.09.15 1137
1738 유지관리 계획과 병렬 처리 – CHECKDB jevida(강성욱) 2016.09.15 1218
1737 쿼리 사이즈(길이) 에 따른 CPU 사용량 증가 jevida(강성욱) 2016.09.14 1367
1736 Ad-hoc 쿼리를 매개변수화 하여 성능 높이기 jevida(강성욱) 2016.09.14 1760
1735 통계 업데이트 옵션(ROWCOUNT and PAGECOUNT) jevida(강성욱) 2016.09.14 1308





XE Login