본문 바로가기
DataBase/MS-SQL

[본문스크랩] SQL 강좌 5

by 백룡화검 2010. 4. 24.
ㅁ 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