SQL Server 2000에서의 로그 전달 환경(Log Restore) 구축

 

로그 전달 환경을 구축하면 원본 서버의 데이터베이스와 동일한 데이터베이스를 생성하고 정기적으로 동기화시킬 수 있습니다. 동기화 작업은 원본 DB에서 발생한 트랜잭션 로그 파일을 이용하여 수행합니다.

 

본 강좌에서는 SQL Server 2000에서 로그 전달 환경을 구축하는 방법을 설명합니다. 백업 파일 생성 및 복원, 로그 파일 백업뿐만 아니라, SQL Agent를 이용해서 자동으로 백업과 파일 복사, 복원을 수행할 수 있는 방법을 포함하고 있습니다.

 

본 예제에서는 임의로 생성한 테스트 DB를 이용하여 구성합니다. 실제 운영 환경에서는 서버 명 및 DB , 메타 정보를 관리할 테이블 명 등을 수정하셔서 사용하시기 바랍니다. 기본적으로 본 예제에서는 로그인 설정 부분은 생략하였습니다. 로그 전달 환경 운영 및 설정에 관련되어 별도의 강좌로 설명하겠습니다.

 

 

 

 

[Section 1] 임시 데이터베이스 생성 및 임시 데이터 발생 및 백업 수행

원본 서버에 테스트 DB를 생성한 후, DB를 전체 백업하는 작업을 수행합니다.

 

1. [원본 서버] 원본 서버에서 임시 데이터베이스를 다음과 같이 생성합니다.

-- 임시 데이터베이스(TestDB) 생성

CREATE DATABASE TestDB

ON

             (            Name = 'TestDB_Data',

                           FileName = 'D:\Data\TestDB_Data.mdf',

                           Size = 30MB

             )

LOG ON

             (            Name = 'TestDB_Log',

                           FileName = 'D:\Data\TestDB_Log.ldf',

                           Size = 10MB

             )

GO

/*

CREATE DATABASE 프로세스에서'TestDB_Data' 디스크에 30.00MB를 할당하는 중입니다.

CREATE DATABASE 프로세스에서'TestDB_Log' 디스크에 10.00MB를 할당하는 중입니다.

*/

 

 

--생성한 데이터베이스의 복원 모드를 전체 모드(FULL Recovery)로 설정

ALTER DATABASE TestDB

SET RECOVERY FULL

GO

 

 

2. [원본 서버] 생성한 임시 데이터베이스에 테스트 데이터 발생시킵니다.

USE TestDB

GO

 

--테스트 테이블 생성

CREATE TABLE TestTable

(

             Seq int identity NOT NULL,

             Col1 int default(CAST(rand()*10000 AS INT))

)

GO

--테스트 데이터 입력 10000

SET NOCOUNT ON

GO

DECLARE @I AS INT

SET @I = 1

WHILE @I<=10000

BEGIN

             INSERT TestTable DEFAULT VALUES

 

             SET @I = @I + 1

END

GO

SET NOCOUNT OFF

GO

 

 

3. [원본 서버] 원본 데이터베이스에 대해 전체 백업을 수행합니다.

BACKUP DATABASE TestDB

TO disk='D:\TestDB_backup1.bak',

             disk='D:\TestDB_backup2.bak',

             disk='D:\TestDB_backup3.bak'

WITH INIT

GO

-- TestDB 전체 백업을 세 개의 파일로 나눠서 수행

-- 데이터베이스가 큰 경우, 이와 같이 여러 파일로 나누어서 백업을 하는 것이 안정적임

/*

1 파일에서'TestDB' 데이터베이스, 'TestDB_Data' 파일에 대해 112 페이지를 처리했습니다.

1 파일에서'TestDB' 데이터베이스, 'TestDB_Log' 파일에 대해 1페이지를 처리했습니다.

BACKUP DATABASE() 113페이지를 0.417(2.205MB/)만에 처리했습니다.

*/

 

 

 

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

SQLLeader.com / ADConsulting / 한대성 (olaper@지메일.)

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

+ Recent posts