[MicrosoftDataSchool] 78일차 - Azure SQL Database 데이터 복구 실습

RudinP·2026년 4월 28일

Microsoft Data School 3기

목록 보기
59/64
post-thumbnail

Azure의 대표 컨셉은 Microsoft Entra ID이다(AAD)

Azure SQL Database 실습

항목Azure SQL DatabaseManaged Instance
단위DB인스턴스
파일 시스템없음있음
SQL Server 엔진추상화됨거의 그대로
OS 접근불가일부 가능
복원 방식.bacpac.bak
물리 구조 접근불가가능
보안 구조다중 테넌트격리된 환경

Lab 1 – Lab 환경 구축


Bastion은 가상 네트워크 생성시 선택 가능


Portal에서 Azure SQL 찾기

Azure Portal 상단 검색창에서 Azure SQL을 검색하면
Azure SQL과 관련된 서비스 목록이 표시된다.

이 화면에서는 다음과 같은 리소스를 확인할 수 있다.

  • Azure SQL Database
  • Azure SQL Managed Instance
  • SQL Server on Azure VM

Azure SQL 선택을 위한 질문

Azure SQL 선택 화면에서는 사용자의 요구사항을 기반으로
적절한 서비스를 추천하기 위해 질문을 제공한다.

이 질문들은 다음과 같은 기준을 포함한다.

  • 어떤 유형의 워크로드인가
  • 기존 시스템을 마이그레이션하는가
  • 새로운 애플리케이션인가

Azure SQL 선택 의사 결정 트리


Azure로 Database 마이그레이션

Azure에서는 데이터베이스 마이그레이션을 쉽게 하기 위한 도구를 제공한다.

마이그레이션 시작 화면에서 다음 옵션을 확인할 수 있다.

  • Azure Database Migration Service
  • Azure Arc enabled SQL Server
  • Azure Migrate

데이터베이스를 Azure로 이전하기 위한 방법

Azure에서 제공하는 마이그레이션 방법은 다음과 같다.

  • 다양한 DB → Azure 이전
    → Azure Database Migration Service

  • SQL Server → Azure 이전
    → Azure Arc enabled SQL Server

  • 앱 + DB 전체 이전
    → Azure Migrate


Azure SQL Database 만들기

https://learn.microsoft.com/ko-kr/azure/private-link/tutorial-private-endpoint-sql-portal

항목Azure SQL DatabaseManaged Instance
단위DB인스턴스
파일 시스템없음있음
SQL Server 엔진추상화됨거의 그대로
OS 접근불가일부 가능
복원 방식.bacpac.bak
물리 구조 접근불가가능
보안 구조다중 테넌트격리된 환경

워크로드 환경 및 백업 스토리지 설정

다음과 같이 설정한다.

  • SQL Elastic Pool: 사용 안 함
  • 워크로드 환경: 개발
  • 백업 스토리지: 로컬 중복

컴퓨팅 요소 설정

컴퓨팅 계층 및 하드웨어를 설정한다.

  • 서비스 계층: 범용
  • 컴퓨팅 계층: 프로비전됨
  • 하드웨어: Gen5

👉 이후 Serverless와 비교 목적


네트워크 설정

데이터베이스 접근을 위한 네트워크 설정을 수행한다.

  • 연결 방법: 퍼블릭 엔드포인트
  • 방화벽: 현재 IP 추가
  • 연결 정책: 기본값
  • TLS: 1.2

보안 설정

기본 제공 옵션을 그대로 유지한다.


추가 설정

기존 데이터 사용에서
👉 샘플 선택 (AdventureWorks)


생성

“만들기”를 선택하면 배포가 진행된다.

  • 소요 시간: 약 1~2분

DB 확인 및 쿼리 실행


DB 확인

쿼리 편집기를 통해 생성된 DB를 확인한다.

  • SQL Server 인증 방식 사용

쿼리 실행

SELECT TOP 20 pc.Name as CategoryName, p.name as ProductName
FROM SalesLT.ProductCategory pc
JOIN SalesLT.Product p
ON pc.productcategoryid = p.productcategoryid;

쿼리 실행 결과를 통해 데이터 확인 가능


SSMS 설치

SSMS 설치 가이드를 통해 설치 진행
연결시 Microsoft Entra 인증으로 생성했다면 Microsoft Entra 암호 입력 후
인증서 신뢰를 체크하면 연결됨


데이터베이스 복구


삭제 유형별 비교

선택결과복구 가능성
데이터베이스만 삭제서버 유지, DB 삭제일정 기간 복구 가능
서버 삭제서버 + DB 삭제서버 복구 불가, DB만 일부 복구
둘 다 삭제전부 삭제DB만 복구 가능

방화벽 확인

Azure SQL Database에서
현재 IP 확인 후 방화벽 등록


Virtual Network 생성

Bastion

virtual machine


bastion을 통해야하므로 공용 인바운드 포트 X

sql db 프라이빗 엔드포인트



연결

vm-bastion으로 연결-ssh 로컬 파일로 접속(azureuser)


SQL Server 도구 설치

https://learn.microsoft.com/ko-kr/sql/linux/sql-server-linux-setup-tools?view=sql-server-ver17&tabs=redhat-install%2Codbc-ubuntu-1804

sudo su
curl -sSL -O https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
exit

sudo apt-get update
sudo apt-get install mssql-tools18 unixodbc-dev

sudo apt-get update
sudo apt-get install mssql-tools18

echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile
source ~/.bash_profile

echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc

Managed Instance 생성




설정

  • Public endpoint 사용
  • 포트 3342 오픈
  • NSG에서 IP 허용

SSMS 연결

  • Endpoint 복사
  • Server name 입력
  • Connect


Lab 2 – 데이터 복원 및 관리


데이터 적재

AdventureWorks2022.bak 다운로드 후
Blob Storage에 업로드


Blob Storage 구성

  • Storage Account 생성
  • Container 생성
  • 파일 업로드

SAS 생성

SAS는 다음 역할 수행

  • 제한된 시간 동안 접근 허용
  • 권한 제어 가능
  • URL 기반 인증

Managed Instance에서 복원

  • SSMS → Restore Database
  • Blob URL + SAS 사용









SQL Database vs Managed Instance


구조 차이

항목SQL DatabaseManaged Instance
구조논리 DB인스턴스
파일 시스템없음있음
복원 방식.bacpac.bak

MI는 Lift & Shift에 적합


.bacpac vs .bak 비교

.bak완벽한 시점 복원용 백업/복구 파일이고, .bacpac클라우드 이전 및 버전 업/다운그레이드용 마이그레이션 파일이다.

구분.bak.bacpac
성격물리적 백업논리적 아카이브
목적특정 시점의 DB를 그대로 복원DB 구조와 데이터를 다른 환경으로 이전
포함 내용데이터 파일 구조, 트랜잭션 로그 상태 등테이블 구조(스키마) + 데이터
일관성트랜잭션 로그 포함으로 특정 시점 일관성 보장데이터와 구조를 추출해서 이동
속도빠름상대적으로 느릴 수 있음
용량작음
대용량 DB적합대용량에는 비효율적일 수 있음
버전 호환성낮음. 상위 버전에서 만든 .bak은 하위 버전 복원 불가높음. 하위 버전으로도 이동 가능
Azure SQL Database직접 가져오기 불가가져오기 가능
Azure SQL Managed Instance복원 가능가져오기 가능하지만 .bak이 더 적합

.bak의 장점

1. 완벽한 데이터 일관성

.bak 파일은 특정 시점의 데이터베이스를 그대로 저장한 Point-in-time 스냅샷이다.
백업 도중 데이터가 변경되더라도 트랜잭션 로그를 함께 포함하기 때문에 데이터 무결성이 보장된다.

즉, 운영 중인 DB를 백업하더라도
“백업 시점 기준으로 데이터가 깨지지 않은 상태”를 유지할 수 있다.


2. 압도적인 속도와 성능

.bak은 데이터베이스의 물리적 페이지 단위 블록을 통째로 백업한다.
그래서 대용량 데이터베이스에서는 .bacpac보다 백업/복원 속도가 훨씬 유리하다.

특히 수백 GB~TB 단위 DB에서는 .bak 방식이 사실상 필수에 가깝다.


3. 시스템 부하가 비교적 작음

.bak 백업은 SQL Server 엔진의 기본 백업 기능을 사용한다.
그래서 운영 중인 서버에서 백업을 수행해도 비교적 안정적으로 동작하고, 시스템 부하도 상대적으로 적다.


.bacpac의 장점

1. 버전 호환성과 이식성

.bacpac은 데이터베이스의 물리 구조를 그대로 복사하는 것이 아니라,
테이블 구조와 데이터를 논리적으로 추출한 파일이다.

그래서 SQL Server 버전에 덜 종속된다.
예를 들어 SQL Server 2022에서 만든 .bak은 SQL Server 2019로 복원할 수 없지만, .bacpac은 구조와 데이터를 추출한 형태이기 때문에 하위 버전으로 이동할 수 있다.


2. Azure SQL Database 이전에 적합

Azure SQL Database는 사용자에게 파일 시스템 접근 권한을 제공하지 않는다.
그래서 SQL Server의 물리 백업 파일인 .bak을 직접 복원할 수 없다.

반면 .bacpac은 스키마와 데이터만 담은 논리적 아카이브이기 때문에 Azure SQL Database로 가져올 수 있다.

즉,

  • Azure SQL Managed Instance.bak 복원 가능
  • Azure SQL Database.bacpac 가져오기 사용

3. 파일 크기가 작음

.bacpac은 트랜잭션 로그나 여유 디스크 공간을 포함하지 않는다.
순수하게 구조와 데이터만 추출해서 압축하기 때문에 .bak보다 파일 크기가 훨씬 작아질 수 있다.

자료 예시에서는 4.3GB .bak 파일이 197MB .bacpac 파일로 줄어들 수 있음을 설명한다.


정리

상황적합한 파일
SQL Server 전체를 특정 시점으로 복구.bak
대용량 DB 백업/복원.bak
Managed Instance로 복원.bak
Azure SQL Database로 이전.bacpac
버전 차이가 있는 환경으로 이동.bacpac
파일 크기를 줄여 이관.bacpac

한 줄로 정리하면,
.bak은 “복구용”, .bacpac은 “이전용”에 가깝다.


Database Watcher


클라우드 비교

서비스 분야AWS (Amazon Web Services)Azure (Microsoft Azure)GCP (Google Cloud Platform)
컴퓨팅 (가상 서버)EC2 (Elastic Compute Cloud)
가장 다양한 인스턴스 타입 제공
Azure Compute
Windows 서버와의 호환성 우수
Compute Engine
빠른 부팅 속도와 자동 할인 기능
컨테이너 (컨테이너 관리)ECS / EKS
Kubernetes 및 자체 서비스 지원
Azure Kubernetes Service (AKS)
Kubernetes 관리 및 통합 강점
Google Kubernetes Engine (GKE)
Kubernetes 원조, 안정적 관리
스토리지 (객체 스토리지)S3
클라우드 스토리지 사실상 표준
Blob Storage
온프레미스 연동 용이
Cloud Storage
다양한 클래스, 비용 효율
데이터베이스 (관계형 DB)RDS
MySQL, PostgreSQL 등 다양한 엔진 지원
Azure SQL Database
SQL Server와 완벽 호환
Cloud SQL
간편한 관리와 성능
서버리스 (코드 실행)Lambda
다양한 언어 및 서비스 연동
Azure Functions
.NET 환경과 자연스러운 통합
Cloud Functions
사용량 기반 단순 과금
빅데이터 (분석, DW)Redshift / EMR
DW + 빅데이터 플랫폼
Synapse Analytics
데이터 통합 및 분석 강점
BigQuery
압도적 속도와 확장성
AI/ML (머신러닝 플랫폼)SageMaker
모델 개발~배포 End-to-End
Azure Machine Learning
MS AI 기술과 통합
Vertex AI
TensorFlow 기반 최신 AI 기술
profile
성장하기 위한 기록

0개의 댓글