Study/TIL(Today I Learned)

25.01.23 DB

에린_1 2025. 2. 3. 20:04
728x90

25.01.23 DB

DB

MSSQL

데이터베이스 백업 & 복구

데이터베이스 백업

  1. 백업하고자 하는 DB를 선택 → 마우스 우클릭 → [TASK] 선택 → [Back Up…] 선택
  2. [Backup type] 확인, [Destination] 확인
    • Backup type: ‘Full’, ‘Differential’ 두 가지
    • Destination: 백업 파일이 저장될 목적지를 설정하는 부분
      • [Add]를 통해 백업파일을 저장하고 싶은 경로를 별도로 설정 가능
  3. 백업 완료 및 .bak 파일 확인
    • 백업 완료시 ‘completed successfully.’라는 메세지 출력

데이터베이스 복원

  1. [Databases] 우클릭 → [Restore Database…] 선택
  2. [Device] 선택 → […] 버튼 클릭
    • SSMS 백업 파일이 현재 이 ‘디바이스’에 존재할 때.
  3. [Add] 클릭 → 백업파일이 저장된 디렉토리를 찾아 해당 [백업파일] 선택
  4. [OK] 버튼 클릭 → DB 복원 성공
  5. 복원이 성공적으로 되었는지 해당 DB 확인

참조

[MSSQL] 데이터베이스 백업 & 복구 (단순히 뭔지만 볼때!)

 

[MSSQL] 데이터베이스 백업 & 복구 (단순히 뭔지만 볼때!)

DBA의 업무 기초를 알아보면서, DBA에게 백업이 무척 중요하다는 것을 알게 되었다. 그래서 VirtualBox에 구축해놓은 윈도우 서버 2019 환경에서 SSMS(SQL Server Management Studio)를 활용하여 DB의 백업(Full)

co-no.tistory.com

 

백업 종류 - Full / Differential / transaction

  • MSSQL은 3가지 파일 형식으로 데이터를 저장한다. 각각 MDF, NDF, LDF 라는 파일 형식으로 데이터가 저장되는데, 이렇게 다른 파일 형식으로 저장되는 이유는, DB가 형성될 때에 데이터 파일과 로그 파일을 서로 같은 파일로 섞이지 않게 하기 위함이다.
  • 이를 위해 MSSQL에서 3가지 타입의 파일로 나뉜다.

MSSQL 3가지 파일 타입

  1. Primary Data Files
    • Primary Data File은 DB의 시작점이며, DB의 다른 파일을 가리키고 있다. 실제 데이터가 저장되는 파일이다. 모든 DB는 Primary Data File을 가지고 있다.
    • 보통 .mdf 확장자를 가진다.
  2. Secondary Data Files
    • Secondary Data File은 Primary Data File 이외의 데이터 파일로 구성된다. Secondary Data file이 아예 존재하지 않는 DB도 있을 수 있으며, 여러 개 있는 DB도 존재할 수 있다.
    • 보통 .ndf 확장자를 가진다.
    • Secondary Data Files가 존재하는 이유
      • Data File에 데이터를 저장할 때, 파일 그룹을 나눠 저장하면 하나의 파일그룹을 사용할 때보다 이점이 있다.
  3. Log Files
    • Log File은 DB를 복구하는 데 사용되는 로그 정보가 포함되어 있다. DB는 적어도 하나 이상의 로그 데이터가 있어야 한다.
    • 보통 .ldf 확장자를 가진다.

MSSQL 3가지 백업 종류

  1. Full Backup
    • 전체 백업이다.
    • .mdf 파일에 들어있는 모든 데이터를 백업한다.
    • Full Backup이 이루어지는 동안에도 트랜잭션이 계속 진행될 수 있는데, 이때 커밋된 트랜잭션에 대한 로그들도 모두 함께 백업된다.
    • SQL 구문
      • BACKUP DATABASE (DB 이름) TO DISK = ‘(원하는 경로).bak.;
  2. Differential Backup
    • 가장 마지막에 Full Backup을 수행한 시점을 기준으로, 이후 변경된 모든 부분에 대한 백업을 진행한다.
    • 백업 본을 활용한 복구(Restore)시, Full Back본, Differential Backup본을 모두 백업 소스 파일로 추가해야 정상 복구가 진행된다.
    • SQL Server에는 Incremental Backup(증분 백업)이라는 개념이 없다.
      • 마지막에 받은 Differential Backup 이후의 변경사항에 대한 백업이 존재하지 않는다.
      • Incremental Backup(증분 백업)
        • 마지막 백업(어떠한 백업인지 관계없이) 이후 변경된 데이터에 대해서만 백업하는 방식이다.
    • SQL 구문
      • BACKUP DATABASE (DB 이름) TO DISK = ‘(원하는 경로)’ WITH DIFFERENTIAL;
  3. Transaction Log Backup
    • Transaction Log(트랜잭션 로그)
      • SQL Server에서 실행되는 모든 SQL문을 기록한다.
      • 어느 세션이 어떤 SQL을 실행했는 지에 대해서 순차적으로 기록된다.
    • 백업된 트랜잭션 로그는 자동으로 삭제된다. 이때 .ldf 파일 사이즈가 줄어들지는 않지만, .ldf 파일 내에서 백업된 트랜잭션 로그가 사라지기 때문에 새로운 로그를 기록할 수 있는 빈 공간이 확보된다.
      • 주기적인 트랜잭션 로그 백업을 통해, 별도로 로그를 삭제하지 않고도 .ldf 파일 사지으가 계속 커지는 것을 방지할 수 있다.
    • 트랜잭션 로그는 복원을 원하는 시점까지의 모든 백업본(Full 백업 + Differential 백업)이 존재하지 않으면 아무 의미가 없다.
    • 트랜잭션 로그 백업을 하고자 하는 DB의 복구 모델이 ‘FULL’ 또는 ‘BULK_LOGGED’ 일때만 사용 가능하다.
    • 트랜잭션 로그가 온전하다면, Fault가 발생한 DB를 Fault 발생 직전의 시점으로 복원가능하다.
      • 특정 시점으로의 Rollback등 미세한 복원이 가능
    • SQL 구문
      • BACKUP LOG (DB이름) TO DISK = ‘원하는 경로)’;

    참조
  4. [MSSQL] 백업 종류 - Full / Differential / Transaction
 

[MSSQL] 백업 종류 - Full / Differential / Transaction

SQL Server에서의 백업 종류 3가지를 알기 전에, 먼저 MSSQL에서 데이터가 어떤 식으로 저장되는지부터 알아야 할 필요가 있다. MSSQSL은 3가지의 파일형식으로 데이터를 저장한다. 각각 MDF, NDF, LDF 라

co-no.tistory.com

 

 

728x90

'Study > TIL(Today I Learned)' 카테고리의 다른 글

2025.02.03 C++, CS  (0) 2025.02.06
25.01.31 DB  (0) 2025.02.03
25.01.20 DB, SSMS  (0) 2025.01.20
24.12.08 CS  (2) 2024.12.08
24.12.07 CS  (1) 2024.12.07