본문 바로가기
DataBase/MS-SQL

MS-SQL Server 백업과 복원

by 백룡화검 2008. 6. 27.

출처 http://netggio.pe.kr | 구차니즘
원문 http://blog.naver.com/norther80/80010290266

ㅁ MS-SQL Server 백업과 복원
ㅇ MS-SQL Server 데이터베이스 복구모드
- 전체 복구 모델
: 문제가 발생한 시점이나 원하는 시점까지 데이터를
복구할 수 있도록 모든 작업과 관련된 로그를 기록하는 복구모델,
가장 안전한 복구모델이다.
- 대량로그 복구 모델
:문제가 발생한 시점까지 데이터를 복구 할 수 있지만,
원하는 시점까지 데이터를 복구할 수는 없다.
- 단순 복구 모델
: 가장 최근에 백업받은 시점까지만 데이터를 복구할 수 있다.
엔터프라이즈 > 임의의 데이터베이스 속성 > 옵션 > 복구
ㅇ MS-SQL Server 데이터베이스 백업
/* 백업시 해당 데이터베이스를 이용하고 있더라도 가능하나,
복구는 데이터베이스를 사용하고 있는 사용자가 있으면 안된다 */
- 백업장치(디바이스) 설정
: 백업된 장치
엔터프라이즈 > 관리 > 백업 > 단축메뉴 > 새백업장치 에서
이름에 임의으이름지정(예, 백업장치1), 파일이름에 저장위치 지정
엔터프라이즈 > 데이터베이스 > 임의의데이터베이스 > 단축메뉴 > 모든작업 > 데이터베이스백업
대상 > 추가 > 백업장치 설정
- 백업의 종류
* 전체백업
: 모든 데이터 백업
: 가장 처음 백업을 할 때 전체백업을 해야하며,
데이터베이스를 변경했을 때에도 전체 백업을 받는다.
(형식)
backup database 백업받을 DB명 to 백업장치명 WITH 백업옵션(init / noinit)
옵션 --> init : 덮어쓰기 , noinit : 이어쓰기
sp_who 데이터베이스명 --> 현재 데이터베이스 사용자 확인하기
kill 프로세스번호 --> 사용중인 프로세스 강제로 종료하기
(사용예)
backup database pubs to 백업1장치 WITH init
sp_who pubs --> 현재 데이터베이스 사용자 확인하기
엔터프라이즈 > 관리 > 현제동작 > 프로세스정보
sp_who
* 차등백업
: 마지막 백업 후 변경된 내용만 백업
* 트랜잭션 로그 백업
: mdf(기본파일) ndf(세컨더리파일) ldf(로그파일)
: 트랜잭션 로그란 데이터베이스의 모든 데이터의 수정 및
변동 내역을 기록하고 있는 로그파일이다.
그리고 트랜잭션 로그는 복원 작업중에 완료된 트랜잭션을 커밋하거나
그렇지 못한 트랜잭션을 롤백함으로 해서 데이터의 일관성을 유지하기 위해서 사용된다.
* 파일과 파일그룹 백업
: 임의의 파일이나 폴더를 백업
ㅇ MS-SQL Server 데이버베이스 복구
- 데이터베이스 복구 이전 작업
: 사용자드의 접속을 제한
sp_who --> 현재 데이터베이스 사용자 정보 확인
kill 프로세스번호 --> 사용중인 프로세스 강제로 종료하기
- 데이터베이스 복구
* 전체 데이터베이스 백업 복구
* 차등 백업 복구
*
ㅇ System 데이터베이스 백업과 복구
* 시스템 데이터베이스의 백업
- master
: 새로운 로그인가 서버를 그리고 데이터베이스를
추가로 만들어서 master 데이터베이스에 변경사항이 발생했을 경우
( user1 등 새로운 사용자의 로그인을 만들떄(허학할때))
- model
: 속성을 변경해 주었을 때
(dbo외에 다른 속성들이 추가변경될때)
- msdb
: 속성(작업스케줄, 경고 운영자)을 변경해 주었을 때
- tempdb
: 시스템이 임시적으로 사용한 파일을 저장하므로 백업을 받을 필요가 없다.
* 시스템데이터베이스의 복구
: 시스템 데이터 베이스에 문제가 발생되면 명령프롬프트에서
REBULEM.EXE 명령을 실행해서 SQl서버를 최초로 설치한 상태로
데이터베이스를 다시 만들 수 있다.
- master
- model
- msdb
- tempdb
create database testback
create table 백업연습(
id int,
name varchar(10)
)
insert 백업연습 values(1,'홍명보')
insert 백업연습 values(2,'안정환')
insert 백업연습 values(3,'차두리')
insert 백업연습 values(4,'박지성')
select * from 백업연습
backup database 백업연습 to 백업장치 WITH noinit
insert 백업연습 values(5,'송종국')
insert 백업연습 values(6,'황선홍')
select * from 백업연습
backup database 백업연습 to 백업장치 WITH noinit
delete from 백업연습
select * from 백업연습
delete from 백업연습
where id = 5