본 게시물은 개인적인 의견으로 작성되었으니 절대적인 정보가 아닐 수 있습니다. 참고만 하시고 궁금한 사항이 있으시면 연락주세요.

티스토리 뷰

SQL & Windows Azure - CATEGORY

SQL backup to Windows Azure Storage Part 1

AWS-in 2015. 11. 23. 16:11

Windows Azure Blob Storage as database backup

On-Premise 환경에서 Windows Azure Storage(저장소)에 백업하는 방법이 3가지가 있다.


Session1. Backup to URL in SQL Server 2012, 2014

Part 1 : Backup to URL in SQL Server 2012, 2014

Part 1-1 : Backup to URL in SQL Server 2012, 2014 as SSMS

Session2. Backup To Windows Azure Tool

Part 2 : Backup To Windows Azure Tool 로 백업

Part 2-1 : Windows Azure Tool 구성 옵션 암호화/압축 기능

Session3. Managed Backup to Windows Azure

Part 3  : Managed Backup  - 데이터베이스 수준의 관리되는 백업

Part 3-1 : Managed Backup  - SQL 인스턴스 수준의 관리되는 백업



3가지 방법을 세션별로 포스팅할 예정이다.


첫번째로 URL Backup 을 진행해보자.

 

Session1. Backup to URL in SQL Server 2012, 2014

 

단계.1 Create the Windows Azure Storage Account in Windows Azure

Windows Azure에 로그인하여 [저장소]를 클릭하여 저장소 계정을 생성한다. [저장소 계정 만들기]를 클릭한다.

아래 화면에서 URL 이 저장소계정에 해당된다. [ghostbackup]으로 생성하였다.

 

 

저장소 계정을 생성 한 후 계정을 클릭한다.

메뉴탭에 [컨테이너] 를 클릭하여 이름/ 액세스 를 입력 선택한다.

 

모두 완료하였다.

백업에 필요한 액세스키 정보가 필요하다.

아래 메뉴에서 저장소계정의 대시보드를 클릭하면 하단에 [액세스 키 관리] 메뉴를 클릭하면

정보를 확인할 수 있다. 기본 액세스키를 복사하여 단계.2 에서 사용하면 된다.

 

 

단계.2 Create the Credential & Backup the on-premise database to Windows Azure Blob Storage

 

use master

go

 

CREATE CREDENTIAL MyCredentialName

WITH IDENTITY = 'ghostbackup', --Identity : Windows Azure Storage Account Name

SECRET = 'lqQSslZqvK4NYugWwDZIHk7j3qx6UEVXQnlN5Z2tIFfFHIPX4VzdfanOlmFYf3OLVKcVc26ML0PECFKfPrNJmg=='; --Secret : Storage Account Primary Access Key

 

-- SSMS > 보안 > 자격증명 에 존재한다.

SELECT * FROM sys.credentials;

 

BACKUP DATABASE MoveDB TO

URL = N'https://ghostbackup.blob.core.windows.net/dbbackups/MoveDB_Full_20151123.bak' -- URL value with your Container URL

WITH CREDENTIAL = N'MyCredentialName',

NAME = N'MoveDB-Full Database Backup', STATS = 10;

/*

42퍼센트 처리되었습니다.

85퍼센트 처리되었습니다.

99퍼센트 처리되었습니다.

파일 1에서 데이터베이스 'MoveDB', 파일 'MoveDB'에 대해 296개의 페이지를 처리했습니다 .

100퍼센트 처리되었습니다.

파일 1에서 데이터베이스 'MoveDB', 파일 'MoveDB_log'에 대해 2개의 페이지를 처리했습니다 .

BACKUP DATABASE이(가) 298개의 페이지를 2.001초 동안 처리했습니다(1.163MB/초).

 

완료 후 Azure에서 확인 해보자.

 

단계.3 Restore the database from Windows Azure Blob Storage

Windows Azure Blob Storage에 저장된 백업본으로 On-Primise SQL Server로 복원을 해보자.

같은 SQL Server에 다른 디비이름으로 복원을 해보자.

Move To 옵션도 같이 적용된다.

use master

go

 

--Restore DB1 from backup in Windows Azure Blob Storage

RESTORE DATABASE MoveDB_Azure

FROM URL = N'https://ghostbackup.blob.core.windows.net/dbbackups/MoveDB_Full_20151123.bak'

-- 컨데이터의 해당하는 디비의 URL 탭을 복사하면 된다.

WITH CREDENTIAL = 'MyCredentialName' -- 백업시 생성한 자격증명으로 이용한다.

, Move 'MoveDB' to 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\MoveDB_Azure.mdf'

, Move 'MoveDB_log' to 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\MoveDB_Azure_log.LDF'

 

/*

파일 1에서 데이터베이스 'MoveDB_Azure', 파일 'MoveDB'에 대해 296개의 페이지를 처리했습니다 .

파일 1에서 데이터베이스 'MoveDB_Azure', 파일 'MoveDB_log'에 대해 2개의 페이지를 처리했습니다 .

RESTORE DATABASE이(가) 298개의 페이지를 0.386초 동안 처리했습니다(6.031MB/초).

*/

 

sp_helpdb movedb_azure

 

그러나 백업파일의 정보를 확인할 수 있는 방법은 아직 찾지 못했다. 이 정보를 알 수 없을 경우에는 복원시 히스토리 관리가 안되므로 불편할 수 있다.

 

 

-- 해당 백업파일의 정보를 확인할 수 없다 ?? 좀더 확인해보자.

RESTORE HEADERONLY from disk=N'https://ghostbackup.blob.core.windows.net/dbbackups/MoveDB_Full_20151123.bak'

/*

메시지 3201, 수준 16, 상태 2, 줄 38

백업 장치 'https://ghostbackup.blob.core.windows.net/dbbackups/MoveDB_Full_20151123.bak'을(를) 열 수 없습니다. 운영 체제 오류 123(파일 이름, 디렉터리 이름 또는 볼륨 레이블 구문이 잘못되었습니다.)입니다.

메시지 3013, 수준 16, 상태 1, 줄 38

RESTORE HEADERONLY이(가) 비정상적으로 종료됩니다.

*/

 


참고로 SQL Server 2012 SP1 + CU2 이후부터 지원하는 기능이다.


[참고문서]

Use PowerShell to Backup Multiple Databases to Windows Azure Blob Storage Service

https://msdn.microsoft.com/ko-kr/library/dn223322(v=sql.110).aspx


 

댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday