DB파일(mdf, ldf)이 없고 bak, trn 파일만 있을때의 DB 복원

 

DB파일이 없기 때문에 먼저 EM(Enterprise Manager)를 실행하여 복원 시킬 DB를 만들어야함.

(참고로 복원될 DB와 현재 만들 DB가 서로 이름과 설치된 위치가 다를 경우의 상황입니다.)

 

 

 

 

 

 

 

DB 데이터파일을 원하시는 위치로 지정하시면 됩니다.

저의 경우는 E:\DB\DB_TEST_Data.MDF

다른 부수적인 옵션 사항은 알아서 하시길.. ^^;

 

 

 

 

DB 트랜잭션로그를 원하시는 위치로 지정하시면 됩니다.

저의 경우는 E:\DB\DB_TEST_Log.LDF

 

 

 

 

이제 복구할 DB의 데이터파일과 트랜잭션로그를 만들었으니 BAK 백업 파일로 복구를 해야겠죠?

일단 만든 DB를 클릭하시고 오른쪽 마우스 버튼을 눌려서 [모든작업->데이터베이스 복원(R)]을 클릭하세요

 

 

 

 

그러면 아래 그림과 같이 나옵니다.

일단 백업 세트 복원에서 데이터베이스 - 전체(A)를 클릭하세요.

그리고 장치 선택(E) 보이시죠? 클릭하세요.

 

 

 

 

복원 장치 선택이 나오면 BAK 파일을 찾는 설정을 하게됩니다.

복원할 원본 위치(F)에서 디스크, 테이프 클릭사항은 BAK 파일 위치니 알아서 클릭하세요.

그다음 추가(A)를 클릭, BAK 파일이 디스크에 있으면 파일 이름(E)에서 백업 장치(B)에 있으면  클릭하는곳에 클릭하셔서 BAK 파일이 있는곳까지 고고~

 

 

  

 

 

 

BAK를 찾아 확인을 누르게 되면 밑의 그림처럼 나옵니다.

 

 

 

 

여기서 잠깐! (특히, 빨간색 글로 되어 있는 부분을 잘 보세요!)

일단 옵션으로 가서 위쪽 클릭 탭 부분에서 [기존 데이터베이스 위에 강제 복원(E)]을 클릭하세요.

그래야 엎어집니다.  그리고 물리적 파일 이름으로 이동에서 DB위치를 위에서 새로 만든 DB 파일로 지정해주세요.

혹시 이후에 트랜잭션로그 백업을 복원할 예정이라면 밑쪽 옵션탭의 복구완료 상태에서 [데이버테이스를 사용할 수 없지만 추가 트랜잭션 로그를 복원할 수 있습니다(A)] 를 클릭합니다.

그다음 확인을 클릭하여 복원하시면 됩니다.

 

 

 

 

 

 

이제 복원된 DB를 보시고 정상적으로 복원이 되었는지 확인만 하시면 됩니다.

 

그리고 트랜잭션로그를 복원 하실려면 다시 한번 데이터베이스 복원을 하셔서 옵션에서 트랜젹션로그(T)를 클릭하시고 BAK와 진행과 같이 진행하시다가 마지막 진행 부분(밑의 그림 참조)에서 밑쪽 옵션탭에서 [데이터 베이스를 사용할 수 있지만 추가 트랜잭션 로그를 복원할 수 없습니다(L)] 를 선택합니다.

 

 

 

 

트랜잭션로그 SIMPLE

Posted 2008. 10. 24. 05:01


Recovery Model FULL은 초기 생성부터 현재 시점까지의 모든 변경 로그를 기록하는 방식입니다.
SIMPLE로 바꾸는 게 더 낫습니다.

SIMPLE로 바꾸게 되면  백업시 트랜잭션로그 옵션이 없어서 이미 만들어져 있는 DB유지관리계획에서 수정을 하셔야합니다. 

 


ALTER DATABASE DB명

SET RECOVERY SIMPLE로 실행하시면 됩니다.    실행키는 F5 아시죠?

 

 

 

1. SIMPLE시 백업

 

 

 

 

2. FULL시 백업

 

 

 

 둘의 차이를 아시겠죠?

 

아래와 같은 문구가 나오면 DB가 있는 C나 D 드라이버에 용량이 가득 차서 사이트 운영에 장애가 발생하게 됩니다.

 

" 데이터베이스의 로그 파일이 꽉 찼습니다. 데이터베이스의 트랜잭션 로그를 백업하여 사용 가능한 일부 공간을 확보 하십시오.."

 

로그파일의 크기를 너무 크게 잡거나, 자동증가토록 한후 백업을 받지 않아 로그파일이 수 GB 이상 올라가게 되어 용량이 가득차 나타나는 현상입니다.

 

먼저 엔터프라이즈 매니저를 이용하여 해당 데이터베이스의 속성 -> 트랜잭션 로그  -> 할당된공간(MB)이 얼마인지 확인해 보시길..  할당량을 너무 많이 잡게 되면 잠시만 관리를 소홀히 해도 장애가 발생할 수 있습니다.

롤백할게 없는 상황이라면 트랜잭션 로그는 강제로 비워도 상관 없습니다.

 

1.   아래의 그림을 보면 할당된 공간은 10G, 최대파일크기 옵션탭은 무제한 증가로 체크된 상태에서 주기적인 로그백업이 없는 경우 로그가 무한정 커져 서비스에 장애가 생기게 됩니다.

 

 

 

2. 일단 트랜잭션 로그를 비웁니다.

  

 

 

간단한게 위의 명령어를 치신 다음 F5번을 누르시면 실행이 됩니다.

 

 

3. 밑의 명령어를 입력하시고 실행을 하시게 되면 해당 데이터베이스의 로그 파일 용량이 1024KB로 줄어들게 됩니다.

 

 

 

4. 밑의 그림처럼 트랜잭션 로그의 용량을 일단 원하시는 용량으로 할당하시면 됩니다

전 500MB로 공간을 할당을 하였습니다.

 

DBCC SHRINKDATEBASE (<데이터파일명>, <원하는 크기 (MB)>)

 

 

 

5. 그 이후 밑의 그림처럼 다시 Enterprise Manager 에서 해당 데이터베이스의 속성에 들어가셔서 할당된 공간(MB)를 확인하시고 최대파일크기에서 파일증가제한 용량을 걸어주시면 됩니다.

 

 

최대파일크기에서 파일 무제한 증가 옵션을 사용 하실려면  데이터베이스 유지 관리 계획을 세워서 최소한 일주일에 한번이라도 백업을 통해 트랜잭션 로그를 관리해 주시면 됩니다.

 

MS-SQL SA 암호변경 방법 3가지

Posted 2008. 10. 24. 04:59


-------------------------------------------------------------------------------------------------------

 

CMD 를 이용해서 윈도우 사용자 인증을 통해 접근한다면
 
C:Documents and SettingsAdministrator>OSQL -E
1> SP_PASSWORD NULL, '0818',sa
2> GO
암호를 변경했습니다.
1>

 

-------------------------------------------------------------------------------------------------------

 

SQL Query Analyzer [쿼리 분석기 - 시작 - 프로그램 - MS.SQL 폴더 - Query Analyzer ] 를 실행한다.
 
다음과 같이 타이핑 후, 실행시키면 완료 !! 
 
예 > sp_password '12345','67890'
 
기존 암호 : 12345
 
변경 암호 : 67890

-------------------------------------------------------------------------------------------------------

 

MS-SQL sa 암호를 분실했을때 이를 변경시키는 방법

1. administrator 혹은 administrator 그룹에 속한 계정으로 들어간 후 sql 서버에 로그인을 한다.

2. 쿼리 분석기를 수행하고 윈도우 인증으로 로그인을 한다.

3. 다음의 sql 구문을 수행한다.

sp_password null, '[새 sa 암호]', 'sa';


4. 암호가 잘 바뀌었는지 확인한다. -_-;

 

-------------------------------------------------------------------------------------------------------



출처 : http://blog.naver.com/vs717?Redirect=Log&logNo=50019914986

 

MS SQL2005를 사용하면서 기존의 하위 버전에 익숙해져서 SQL Server Management Studio 사용이 다소 혼란스러웠습니다. 이중 유지 관리 계획이 많이 헤깔렸는데 제가 구현하는데 성공해서

자료를 올려봅니다. 웹상에서 관련 자료 구하다가 포기하고 직접 방법을 터득했습니다.

부족하지만 동종 업계에 종사하시는 분들과 공부하시는 분들께 다소 도움이 되었으면 합니다.

고수분들이 많으신지라 원래 이런 거 거의 안했는데, 혹시나 해서 올려봅니다.

 

MCP 과정 수강할 때 강사분이 그러시데요. 왜 소프트웨어 개발자 협회 같은 건 없는지 모르겠다고.....  IT강국이고 관련업 종사자가 꽤 많은데 아쉬운 부분이죠.

 

SQL2005 유지 관리 계획 구성하기

 

1. SQL Server Management Studio 를 띄웁니다.

2. SQL Server 밑에 관리를 클릭 >  유지 관리 계획 > 유지 관리 계획 마법사 (또는 새 유지관리 계획 - 여기서는 마법사로 설명하겠습니다.)

3. 유지 관리 계획 마법사 화면이 뜨면 다음 > 이름과 설명, 서버 인증 작성 > 백업할 대상 선택(예,데이터베이스 전체) > 다음(확인) > 다음 > 데이터베이스 선택, 백업 위치(예, 디스크 : 폴더 선택) > 하나 이상의 파일에 백업(파일이 계속 덮어씌워 집니다.) 또는 모든 데이터베이스에 대한 백업 선택 (데이터베이스 별로 하위 폴더 만들기 체크하시면 일정에 의해 추가로 백업이 되어집니다.)

> 일정 작성(예, 되풀이 일별 매일 오전 2시) > 확인 > 보고서 작성 입력 > 마침

4. 작성된 유지 관리 계획 제목에서 마우스 우측 버튼 클릭 후 실행을 해보시면 바로 확인 가능합니다. 백업파일이 저장된 폴더에서 확인해 보세요.

 

 


 

SQL2005 복원의 새로운점

Posted 2008. 10. 24. 04:57


복원의 새로운 점


온라인 복원
SQL Server 2005 엔터프라이즈 에디션에는 백업으로부터 온라인상에서 복원할 수 있는 새로운 기술을 장착했습니다. 이러한 기능은 2000에서는 모든 파일이 복원이 되어야 서비스가 되었던 것에 비해 서비스 중지시간을 줄일 수 있습니다. (단 전체복구 모델과 대량복구모델에 대해서만 가능합니다.)

가능환경
1. 엔터프라이즈 에디션과 디벨로퍼 에디션에서만 지원합니다.
2. 다수의 파일그룹을 가지고 있는 데이터베이스에 해당됩니다.
3. Secondary 파일그룹이 복원되는 동안만 접근이 불가능합니다.
4. 파일그룹이 복원될 때, 모든 파일그룹이 복원이 되어야만 데이터베이스의 일관성이 유지됩니다.

2000와 마찬가지로 2005에서 오프라인 복원작업을 그대로 하실 수 있습니다. 또한 SQL Server Management Studio를 이용해서 데이터베이스와 로그를 복원하실 수 있습니다.

2005에서는 2000 및 7.0에서 백업사본에 대해서는 오프라인 복원만 지원합니다. 온라인 복원을 수행하기 위해서는 2005에서 백업된 소스를 이용해야 합니다.

2005의 RESTORE 명령어는 새로운 옵션 RESTRICTED_USER을 포함하고 있습니다. 이 옵션은 복원된 데이터베이스에 db_owner, dbcreator, sysadmin 역할을 가진 구성원에게 제한적으로 접근을 하게 합니다.

온라인 복원은 두 가지 레벨로 지원됩니다.

Page Online Restore(페이지단위 온라인 복원)
온라인 복원의 특징은 문제가 있는 페이지를 고립시켜서 이 문제된 페이지가 다른 정상적인 데이터베이스를 복원하는데 있어 그 영향을 거의 주지 않는 다는 것입니다. 손상된 페이지는 데이터베이스로그에 남겨지게 됩니다.

손상된 페이지에 접근을 하면 에러가 발생 할 것이며 에러로그에 그 결과가 남게 될 것입니다. 이렇게 얻어진 정보를 통해서 페이지의 위치를 알아내고 유용한 백업자료에서 복원을 하게 됩니다.

[페이지 복원 절차]

--1) 손상된 페이지의 ID를 찾아냅니다.
SELECT * FROM msdb..suspect_page_table

--2) 트랜잭션로그의 진행중인 부분을 백업합니다.
BACKUP LOG AdventureWorks
TO DISK =‘ Active_Log.bak’WITH NO_TRUNCATE

--3) 가장 최근의 전체 백업이나 차등백업으로부터 손상된 페이지를 복원합니다.
RESTORE DATABASE AdventureWorks PAGE =‘ 3:3241’
FROM DISK =‘ ...’WITH NORECOVERY

--4) 로그백업을 수행하고 데이터베이스를 복원합니다.
RESTORE LOG AdventureWorks
FROM DISK =‘ ...’WITH NORECOVERY
.
.
.
RESTORE LOG AdventureWorks
FROM DISK =‘ ...’WITH RECOVERY

--5) 수행중인 로그백업을 사용해서 복원합니다.
RESTORE LOG AdventureWorks
FROM DISK =‘ Active_Log.bak’
WITH RECOVERY

 

 

파일 단위 온라인 복원
데이터베이스의 파일그룹에서 어느 한 파일이라도 복원 중에 있다면 전체 파일 그룹은 오프라인 상태에 있게 됩니다. 그래서 주 파일그룹에 있는 하나의 파일이라도 복원 중이면 전체 데이터베이스는 오프라인상태가 됩니다. 하지만 주파일 그룹의 복구가 끝나면 데이터베이스는 온라인상태가 되며 각각의 이차파일그룹(Secondary filegroup)이 복원이 되면 해당 파일 그룹은 자동으로 온라인이 됩니다.

[파일단위 복원 절차]

--1) 활성중인 트랜잭션로그 백업하기
BACKUP LOG AdventureWorks
TO DISK =‘ Active_Log.bak’WITH NO_TRUNCATE

--2) 손상된 파일 복원하기
RESTORE DATABASE AdventureWorks FILE =‘ Logical_Damaged_Filename’
FROM DISK =‘ ...’WITH NORECOVERY

--3) 트랜잭션 로그 복원하기
RESTORE LOG AdventureWorks
FROM DISK =‘ ...’WITH NORECOVERY

--4) 활성중인 트랜잭션 로그를 복원하고 해당 데이터베이스 복구하기.
RESTORE LOG AdventureWorks
FROM DISK =‘ Active_Log.bak’
WITH RECOVERY


Piecemeal 복원
2005 엔터프라이즈 에디션에서는 Piecemeal 복원을 지원합니다. 이 복원은 파일그룹단위로 복원을 진행합니다. 이때 복원되는 그룹단위로 온라인 상태로 됩니다. 이전 버전에서는 모든 파일 그룹이 복원이 되기 때문에 우선적으로 온라인 상태가 되어야 하는 경우 복원시간이 많이 소요되었습니다. 예를 들어 파일그룹하나에 문제가 있는 경우 다른 파일그룹에까지 영향을 미치게 되어 복원에 문제가 발생할 수 있습니다.

2005에서 이 Piecemeal 복원을 이용하면 중요도 높은 파일 그룹부터 복원하고 서비스를 할 수 있게 됩니다.


[따라하기] Piecemeal 복원

USE master
GO
DROP DATABASE piecemealTest
GO
-- 테스트용데이터베이스생성
CREATE DATABASE [piecemealTest] ON PRIMARY
( NAME = N’piecemealTest’, FILENAME = N’c:₩temp₩piecemealTest.mdf’,
SIZE = 3MB , FILEGROWTH = 10%),
FILEGROUP [second]
( NAME = N’second’, FILENAME = N’c:₩temp₩second.ndf’, SIZE = 3MB ,
FILEGROWTH = 10%),
FILEGROUP [third]
( NAME = N’third’, FILENAME = N’c:₩temp₩third.ndf’, SIZE = 3MB ,
FILEGROWTH = 10%)
LOG ON
( NAME = N’ piecemealTest_log’ , FILENAME = N’ c:₩ temp
₩piecemealTest_log.ldf’, SIZE = 1024KB , FILEGROWTH = 1024KB )
GO
USE piecemealTest
GO

-- 데이터베이스의기본파일그룹을변경합니다.
ALTER DATABASE piecemealTest
modify FILEGROUP second default
GO

-- od라는테이블을northwind 데이터베이스에있는order details 테이블을이용하여만듭니다.
SELECT TOP 100
productid, quantity
INTO od
FROM northwind..biGOd
GO

-- 주파일그룹에테이블odonPrimary를생성합니다.
CREATE table odonPrimary
(productID int
,quantity int
) on [primary]
GO

-- 세번째파일그룹에테이블od3rd를생성합니다.
CREATE table od3rd
(productID int
,quantity int
) on THIRD
GO

-- 위에서생성한테이블에값을넣습니다.
INSERT INTO od3rd
      SELECT productID, quantity FROM od
INSERT INTO odOnPrimary
      SELECT productID, quantity FROM od
GO

-- 백업장치dumpPiece와dumpPieceLog를생성합니다.
exec sp_addumpdevice’disk’,’dumpPiece’,’c:₩temp₩dumpPiece.bak’
exec sp_addumpdevice’disk’,’dumpPieceLog’,’c:₩temp₩dumpPieceLog.bak’
GO
-- 생성확인을합니다.
sp_helpdevice

SELECT TOP 100 * FROM od

-- od 테이블(second file group)에값을변경합니다.
update od -- second group
set quantity=2000
where productID=11
GO

-- od3rd 테이블(third file group)에값을변경합니다.
update od3rd --third group
set quantity=3000
where productID=11
GO

-- odOnPrimary 테이블(Primary file group)에값을변경합니다.
update odOnPrimary -- Primary group
set quantity=1000
where productID=11
GO

-- 전체백업을수행합니다.
BACKUP DATABASE piecemealTest to dumpPiece WITH init
GO
-- 로그백업을수행합니다.
BACKUP log piecemealTest to dumpPiecelog WITH init
GO

USE master
GO

RESTORE DATABASE piecemealTest
FILEGROUP=’Primary’--FILEGROUP=’Primary’
FROM dumpPiece WITH partial,norecovery,replace

RESTORE DATABASE piecemealTest
FROM dumpPiece WITH partial,norecovery,replace

RESTORE log piecemealTest FROM dumpPieceLog
GO

USE piecemealTest
GO
SELECT * FROM odOnPrimary
GO
SELECT * FROM od
GO
SELECT * FROM od3rd
GO
--결과메시지
--복원은Primary 에서이루어졌기때문에
--Second에있는od 테이블과third에있는od3rd는온라인상태가 되지못했다.
(100개행적용됨)
메시지8653, 수준16, 상태1, 줄1
테이블’od’이(가) 온라인상태가아닌파일그룹에있어서쿼리프로세서에서이테이블또는뷰에대한계획을생성할수없습니다.

메시지8653, 수준16, 상태1, 줄1
테이블’od3rd’이(가) 온라인상태가아닌파일그룹에있어서쿼리프로세서에서이테이블또는뷰에대한계획을생성할수없습니다.

SQL 2000에서는 위까지의 과정을 수행하면 모든 파일이 복구 됩니다.

USE master
GO
BACKUP log piecemealTest to disk =‘ c:₩temp₩log1’WITH no_truncate, init

-- 이번에는Second 그룹에있는파일을복원합니다.
RESTORE DATABASE piecemealTest
FILEGROUP=’SECOND’
FROM dumpPiece
WITH partial,norecovery
GO
RESTORE log piecemealTest FROM dumpPieceLog

USE piecemealTest
GO
SELECT * FROM odOnPrimary
GO
SELECT * FROM od
GO
SELECT * FROM od3rd
GO
-- 결과에서Primary 그룹과Second 그룹은복원이되었고
-- third 그룹은 아직접근할수없다.
(100개행적용됨)

(100개행적용됨)
메시지8653, 수준16, 상태1, 줄1
테이블’od3rd’이(가) 온라인상태가아닌파일그룹에있어서쿼리프로세서에서이테이블또는뷰에대한계획을생성할수없습니다.


응급데이터베이스 상태
백업매체의 문제로 인한 복원의 실패나 문제가 있는 데이터베이스를 복구하려 할 때 ALTER DATABASE 명령문에 EMERGENCY 문을 추가해서 데이터베이스를 응급상태로 전환 시킬 수 있습니다.

데이터베이스가 주의상태로 표시된다면 데이터베이스의 상태를 응급으로 변경할 수 있습니다. 이렇게 변경을 하면 데이터베이스는 읽기전용으로 바꾸거나 데이터베이스를 분리할 수 있습니다.

응급상태로 전환을 하게되면 데이터베이스는 단독접근(Single user)이 되고 sysadmin 서버 역할을 가진 로그인만 접속 가능합니다. 그리고, 읽기전용데이터베이스가 됩니다. 이런 상태에서 데이터베이스의 복구를 가능하게 합니다.

[따라하기] AdventureWorks 데이터베이스 응급상태로 전환하기

USE master
go

ALTER DATABASE AdventureWorks
SET EMERGENCY
GO



-- 데이터베이스의 특성을 살펴봅니다.
SELECT DATABASEPROPERTYEX‘( AdventureWorks’,‘ Status’)
SELECT name, state, state_desc FROM sys.databases



USE AdventureWorks
GO

SELECT * FROM sales.Store

BEGIN TRAN
Go

--아래의문장은실패합니다.
UPDATE sales.Store SET name =‘ X’+name
go

ROLLBACK

메시지3908, 수준16, 상태1, 줄3
데이터베이스’adventureworks’은(는) 복구무시모드이므로BEGIN TRANSACTION을 실행할 수 없습니다.
문이 종료되었습니다.

메시지3903, 수준16, 상태1, 줄2

--아래의 쿼리도 실패합니다.
BACKUP DATABASE AdventureWorks TO DISK=’c:₩temp₩AWBACK.bak’
GO

메시지3033, 수준16, 상태0, 줄3
응급모드에서 열린 데이터베이스에서는BACKUP DATABASE를 사용할 수 없습니다.
메시지3013, 수준16, 상태1, 줄3
BACKUP DATABASE이(가) 비정상적으로 종료됩니다.

데이터베이스의 상태를 정상적으로 복구합니다.
use master
go
ALTER DATABASE AdventureWorks SET ONLINE
GO


ATTACH_REBUILD_LOG 절
OLTP환경에서 대용량 데이터베이스를 가지고 있다고 생각해봅시다. 이 데이터베이스를 다른 서버에 읽기위주의 용도로 옮긴다고 생각을 하면 단지 데이터파일만 옮기면 됩니다. 그러기 위해서는 서비스를 중단시키고 .mdf 파일과 .ndf 파일을 복사해서 옮깁니다. 그 후 CREATE DATABASE 명령어에서 ATTACH_REBUILD_LOG 절을 추가하여 수행합니다. 이렇게 하면 SQL Server는 데이터베이스를 연결하면서 새롭게 로그를 생성합니다.

완벽하게 수행하기 위해서는 이 작업이 끝난 뒤 바로 전체 백업을 수행해야 합니다. 이전 버전의 sp_attach_single_file_db 저장 프로시저는 호환성을 위해서만 사용됩니다.

2005에서는CREATE DATABASE 문장에 ATTACH_REBUILD_LOG을 사용할 것을 권장합니다.

문법은 그 예제는 다음과 같습니다.
CREATE DATABASE database_name
ON <filespec> [ ,...n ]
FOR { ATTACH [ WITH <service_broker_option> ]
| ATTACH_REBUILD_LOG }

예제)
CREATE DATABASE AdventureWorks
FOR ATTACH_REBUILD_LOG
데이터베이스 스냅숏에는 ATTACH_REBUILD_LOG옵션을 사용할 수 없습니다.

SQL2005 백업의 새로운점

Posted 2008. 10. 24. 04:56


백업의 새로운 점


복사전용(COPY ONLY)백업
2005에서 새로운 백업 옵션을 도입했습니다. 복사백업은 테스트 등을 목적으로 만드는 백업복사본을 만듭니다. 복사 백성을 생성하는 과정에서 기존의 전체, 차등, 로그백업의 순서에는 영향을 전혀 주지 않습니다.

복사 전용 백업은 백업 전체에 영향을 주지 않도록 지정합니다. 복사 전용 백업은 백업 전체에 영향을 주지 않고 데이터베이스에 대한 프로시저를 복원합니다.

[따라하기] 생성 방법은 다음과 같습니다.
BACKUP DATABASE AdventureWorks
TO disk=’c:₩temp₩AWCopyBackup.bak’
WITH COPY_ONLY복사백업을 이용하여 수행된 데이터 백업은 차등백업이나 다른 백업의 기준으로 사용될 수 없습니다. 그리고, 전체 백업 후 수행된 복사 백업이 차등백업에 영향을 주지 않습니다.

[따라하기] 다음 과 같은 경우를 생각해봅시다. --12시정각에 전체백업을 받습니다.
BACKUP DATABASE AdventureWorks
TO disk=’c:₩temp₩AWCopyBackup.bak’
WITH INIT

--12시20분데이터변경이발생됩니다. (Update, Insert, Delete)
UPDATE sales.SpecialOffer
SET DisCountPct = DisCountPct + 0.01

--12시30분복사백업을전체백업으로받습니다.
BACKUP DATABASE AdventureWorks
TO disk=’c:₩temp₩AWCopyBackup.bak’
WITH COPY_ONLY

--12시40분차등백업을수행합니다.
BACKUP DATABASE AdventureWorks
TO disk=’c:₩temp₩AWCopyBackup.bak’
WITH DIFFERENTIAL
위의 경우에서 12시 40분에 수행하는 차등백업은 기존의 백업 방식에서 12시 30분에 수행된 전체 백업 이후에 변경된 내용을 백업하게 됩니다. 하지만 12시 30분에 수행된 복사 백업은 전체 백업 프로세스에 영향을 주지 않고 12시 정각 이후 발생된 내용에 대해서 백업을 수행하게 됩니다.

로그백업에서 복사백업 옵션을 수행 시 로그는 잘려지지 않고 이 복원과정과는 상관이 없습니다.
부분백업 (Partial Backup)

부분백업
부분 백업은 전체 데이터베이스 백업과 유사하지만 주 파일 그룹과 모든 읽기/쓰기 파일 그룹만 포함해야 합니다. 경우에 따라 읽기 전용 파일을 BACKUP 명령에 나열하여 부분 백업에 포함할 수 있습니다.

부분 백업을 지정하려면 READ_WRITE_FILEGROUPS 옵션을 이용합니다.

예를 들면 다음과 같습니다.
BACKUP DATABASE AdventureWorks
READ_WRITE_FILEGROUPS
TO <backup_device>

 

부분 백업 다음에 수행된 부분 차등 백업
부분 차등 백업에는 주 파일 그룹과 모든 읽기/쓰기 파일 그룹에서 변경된 데이터만 포함됩니다.

부분 백업은 전체 백업과 비슷하지만 부분 백업에는 모든 파일 그룹이 포함되지는 않습니다. 부분 백업에는 주 파일 그룹, 모든 읽기/쓰기 파일 그룹 및 지정한 모든 읽기 전용 파일의 모든 데이터가 포함됩니다. 읽기 전용 데이터베이스의 부분 백업에는 주 파일 그룹만 포함됩니다.

부분 백업 및 부분 차등 백업은 사용이 쉬우며 주로 단순 복구 모델에서 사용하기 위해 제공됩니다. 그러나 부분 백업은 복구 모델에 관계없이 모든 데이터베이스에 대해 수행할 수 있습니다.