'mssql2005'에 해당되는 글 2건

  1. 2017.07.13 MSSQL2014 악성쿼리분석(ClearTrace)
  2. 2017.07.13 MSSQL2005 데이터베이스 복제

  • 악성쿼리를 수집하고자 하는 SQL서버의 SSMS2014를 실행후 연결합니다.

  • 메뉴 상단 도구èSQL Server Profiler 실행è 추적 속성 입력후 실행
  • 실서비스중인 서버에서 부하가 상당할수 있으므로 수집시 주의해야함

  • Profiler에서 쿼리 수집중

  • trc파일이 너무 커질수 있으므로 5분정도 수집후 중지 .trc파일 확인

  • 다운받은 파일 압축해제

  • ClearTrace실행후 상단 메뉴 Tools è Options선택하여 Trace분석에 사용할 DB생성

  • 분석할 .trc파일을 지정하고 Import Files 선택

  • 분석이 완료되고 CPU순으로 적용된 분석결과 화면

  • CPU사용률 및 Duration이 높은 ITEM을 떠블클릭하여 Sample 쿼리 확인

 
 
Posted by 시스템매니아
,

 
4.    데이터베이스 복제 소개

하나의 서버에 집중된 메인 프레임/터미널 구조에서 사용자는 터미널을 통하여 간단한 명령을 내리고 결과를 얻었다. 컴퓨터의 가격이 내려가고 서버와 대등한 능력을 가진 데스크탑PC 대중화 되면서 클라이언트 PC 많은 처리 기능을 두고, 서버에서는 데이터를 처리하는 클라이언트/서버 환경이 발달 되면서 데이터 베이스 역시 분산 환경으로 전환되었다. 오늘날 기업용 애플리케이션들이 분산 환경에서 작동되도록 변환되고 있는 것도 하나의 추세라고 할수 있다.

오늘날 데이터베이스 관리자들이 처리해야 문제 중의 하나가 이기종 시스템 간에 거대한 양의 데이터를 적절한 시간 안에 분산시키는 방법인데, SQL 서버군 이기종 간의 데이터베이스 분산방법으로 SQL 서버에서는 복제 방법을 제공하고 있다. 복제는 같은 정보를 여러 복사하여 다수의 데이터베이스에 분산되도록 데이터베이스의 일관성을 유지하도록 하기위해 동기화 하는 과정이다.

4.1  데이터베이스복제구성
SQL 서버의 복제 모델은 기본적으로 출판 모델에 기인하고 있다. 출판 모델이란 신문이나 잡지, 도서의 유통
모델이라는 의미이다. 책을 만들어서 판매 유통하는 경우를 살펴보자. 이라는 데이터베이스를 가지고 책을
성하는 사람은 출판업자이다. 출판업자는 Publisher이다. 책을 구매하여 읽는 소비자는 바로 구독자이다. 구독
자가 Subscriber이다. 출판사로부터 소비자가 책을 직접 구매하는 경우는 많지 않고, 보통은 서점을 이용한다.
점은 출판사로부터 책을 요청해서 소비자에게 전달하는 일종의 배포자이다. 배포자가 Distributor이다. 이렇게 3
구성 요소들간에 행위가 발생된다. 아티클(Article) 유통되는 책을 의미한다. 게시(Publication), 출판사가
책은 완성됐으므로 판매 준비가 되었다고 고시를 하는 것을 의미하고, 실제 데이터베이스에서는 어떤 데이터
베이스가 가져가도 좋다고 게시되는 것을 말한다. 구독(Subscription) 소비자가 유통상인 서점에 가서 책을
넣는 행위를 일컫는다.

     배포자

배포자는 하나 이상의 게시자와 연결된 복제별 데이터에 대한 저장소 역할을 하는 데이터베이스 인스턴스입니다. 게시자는 배포자에서 단일 데이터베이스(배포 데이터베이스) 연결되어 있습니다. 배포 데이터베이스는 복제 상태 데이터와 게시에 대한 메타데이터를 저장하고 경우에 따라서는 게시자에서 구독자로 이동하는 데이터에 대한 역할을 합니다. 대부분의 경우 단일 데이터베이스 서버 인스턴스는 게시자와 배포자 역할을 모두 합니다. 이를 로컬 배포자라고 합니다. 게시자 배포자가 서로 다른 데이터베이스 서버 인스턴스에 구성되어 있는 경우에는 배포자를 원격 배포자라고 합니다.  
게시자

게시자는 복제를 통해 데이터를 다른 위치에서 사용할 있도록 만드는 데이터베이스 인스턴스입니다. 게시자는 각각 논리적으로 관련된 개체 집합 복제할 데이터를 정의하는 게시를 하나 이상 가질 있습니다.

 

구독자

구독자는 복제된 데이터를 수신하는 데이터베이스 인스턴스입니다. 구독자는 여러 게시자 게시로부터 데이터를 수신할 있습니다. 선택한 복제 유형에 따라 구독자는 데이터 변경 내용을 게시자에 다시 전달하거나 데이터를 다른 구독자로 다시 게시할 수도 있습니다.

 

게시

게시는 하나의 데이터베이스에서 하나 이상의 아티클을 모은 것입니다. 여러 아티클을 게시로 그룹화하면 논리적으로 관련된 데이터베이스 개체 집합 단위로 복제된 데이터를 쉽게 지정할 있습니다.

 

아티클

 

아티클은
게시에 포함된 데이터베이스 개체를 식별합니다. 게시는 테이블, , 저장 프로시저 기타 개체를 포함한 여러 유형의 아티클을 포함할 있습니다. 테이블이 아티클로 게시되면 필터를 사용하여 구독자로 보낼 데이터의 행을 제한할 있습니다.

 

구독

구독은 구독자에게 게시 복사본을 배달해 것을 요청하는 것입니다. 구독은 어떤 게시를 언제 어디서 받을 것인지를 정의합니다. 밀어넣기와 끌어오기의 가지 구독 유형이 있습니다.

 

 

 

 

 
5.    데이터베이스 복제 유형 소개

5.1  스냅샷 복제

스냅숏 복제는 많은 양의 데이터가 변경되지만 자주 변경되지는 않을 때 가장 적합합니다. 예를 들어 한 판매 조직이 제품 가격 목록을 유지 관리하면서 일년에 한 번이나 두 번 가격을 동시에 업데이트한다면 데이터 전체 스냅숏이 변경된 후 복제하는 것이 좋습니다. 특정 유형의 데이터에 대해서는 스냅숏을 더 자주 복제하는 것이 적합할 수도 있습니다. 예를 들어 게시자에서 비교적 작은 테이블이 낮에 업데이트되었지만 어느 정도의 대기 시간이 허용되는 경우에는 변경 내용을 밤마다 스냅숏으로 배달할 수 있습니다.

증분 변경 내용은 추적되지 않으므로 스냅숏 복제에는 게시자에 트랜잭션 복제보다 낮은 연속 오버헤드가 있습니다. 그러나 복제 중인 데이터 집합이 아주 큰 경우에는 스냅숏을 생성하고 적용하는 데 상당히 많은 리소스가 필요합니다. 그러므로 스냅숏 복제 사용 여부를 평가할 때 전체 데이터 집합의 크기와 데이터 변경 빈도를 고려하십시오.  

 

스냅샷 복제는 다음과 같은 경우에 유용합니다.

-      데이터가 자주 변경되지 않습니다.

-      게시자 측에서 최신이 아닌 데이터 복사본을 일정 기간 동안 보유할 수 있습니다.

-      소량의 데이터를 복제합니다.

-      짧은 기간 동안 많은 양의 데이터가 변경됩니다.

 

5.2  트랜잭션 복제

트랜잭션 복제는 일반적으로 게시 데이터베이스 개체 및 데이터의 스냅숏으로 시작됩니다. 일반적으로 초기 스냅숏이 사용되자마자 게시자에서의 후속 데이터 변경 내용 및 스키마 수정 내용이 구독자로 배달됩니다. 이러한 작업은 거의 실시간으로 수행됩니다. 데이터 변경 내용은 게시자에서 발생한 것과 같은 순서 및 같은 트랜잭션 경계 내에서 구독자에 적용되므로 게시 내에서는 트랜잭션 일관성이 보장됩니다.

기본적으로 변경 내용은 게시자로 다시 전파되지 않기 때문에 트랜잭션 게시에 대한 구독자는 읽기 전용으로 취급됩니다. 그러나 트랜잭션 복제는 구독자의 업데이트를 허용하는 다양한 옵션을 제공합니다.  

 

트랜잭션 복제는 일반적으로 다음 경우에 사용됩니다.

-      증분 변경 내용을 발생과 동시에 구독자로 전파하려고 합니다.

-      응용 프로그램이 게시자에서 변경이 수행된 시점과 해당 변경 내용이 구독자에 도달한 시점 간의 짧은 대기 시간이 필요합니다.

-      응용 프로그램이 중간 데이터 상태에 액세스해야 합니다. 예를 들어 한 행이 5번 변경될 경우 트랜잭션 복제를 사용하면 응용 프로그램은 행의 실질적인 데이터 변경만이 아닌 모든 변경(: 트리거 실행)에 응답할 수 있습니다.

-      게시자가 많은 양의 삽입, 업데이트 및 삭제 작업을 수행합니다.

-      게시자 또는 구독자가 Oracle과 같은 비-SQL Server(Non-SQL Server) 데이터베이스입니다.

5.3  병합 복제

병합 복제는 트랜잭션 복제와 마찬가지로 일반적으로 게시 데이터베이스 개체 및 데이터의 스냅숏으로 시작합니다. 게시자 및 구독자에서 발생한 후속 데이터 변경 및 스키마 수정은 트리거로 추적합니다. 구독자는 네트워크에 연결될 때 게시자와 동기화하여 마지막 동기화 이후 게시자와 구독자 간에 변경된 모든 행을 교환합니다.

병합 복제를 사용하면 여러 사이트에서 자율적으로 작업한 후 나중에 하나의 균일한 결과로 업데이트를 병합할 수 있습니다. 업데이트는 둘 이상의 노드에서 수행되므로 게시자 및 둘 이상의 구독자가 같은 데이터를 업데이트할 수 있습니다. 따라서 업데이트가 병합될 때 충돌이 발생할 수 있으며 병합 복제는 충돌을 처리하는 다양한 방법을 제공합니다.

 

병합 복제는 다음 경우에 유용합니다.

-      여러 구독자가 다양한 시간에 동일한 데이터를 업데이트하고 그 변경 내용을 게시자 및 다른 구독자에 전파할 수 있습니다.

-      구독자는 데이터를 받아 오프라인 상태에서 변경하여 나중에 게시자 및 다른 구독자와 변경 내용을 동기화해야 합니다.

-      각 구독자에 서로 다른 데이터 파티션이 필요합니다.

-      충돌이 발생할 수 있으며 충돌이 발생하면 충돌을 감지하여 해결할 수 있어야 합니다.

-      응용 프로그램이 중간 데이터 상태가 아닌 순수한 데이터 변경 내용만 필요로 합니다. 예를 들어 구독자가 게시자와 동기화하기 전에 구독자에서 행이 5번 변경된 경우 게시자에서는 행이 한 번만 변경되어 최종 데이터 변경 내용(5번째 값)을 반영합니다
 

 

 

 
6.    데이터베이스 복제 구성

6.1  복제 구성전 확인사항

1. 모든 서버의 MSSQLServer 서비스와 SQLServerAgent 서비스의 시작 계정이 동일한 Domain Admins 그룹에 있는 계정으로 구성하는 것이 권장방안.... 시작 계정을 변경했다면, 서비스를 재시작.

 

2. 본 문서의 복제구성 TestDomain 이 구성되지않은 환경에서 진행되며 모든구성원의 로컬Administrator계정 및 패스워드 와 sa계정의 패스워드는 동일하게 구성함

 

3. SSMS에 서버를 등록하고, 가능하면 복제 구성원은 연결된 서버(Linked Server)로 미리 등록.

 

4. SQLServerAgent 서비스는 자동 시작으로 설정.

 

5. Snapshot Agent가 스냅샷을 시도할 때 사용하는 스냅샷 폴더는 ReplData. 복제가 진행되는 동안 이 곳에 데이터와 스키마 스크립트가 저장됨. 이 폴더는 복제 도중에UNC 경로명(\\SQL서버명\드라이브$\~~\~~\ReplData)을 이용하여 다른 서버에서 액세스하기 때문에 관리 공유가 필히 되어 있어야 함. 폴더 지정시에 액세스 위반 메시지가 발생한다면, 이 부분을 점검할 것.)\\SQL2005\Repldata

 

6. 복제 상태를 점검할 땐, 복제 모니터를 이용할 것.

 

7. Transaction 복제는 Primary Key가 없는 Table은 복제할 수 없음.

 

8. 복제 구성원 생성 순서 : 배포자, 게시자, 구독자 순...

복제 삭제의 순서 : 구독자, 게시자, 배포자 순... (배포자를 삭제하면 바로 복제 삭제., 모든 구성원이 네트워크에 연결되어 있어야 함.)

 

 

 

 

 

 

6.2  복제 구성전 설정 사항

ReplData 폴더의 공유설정을 위해 배포서버의 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\

repldata 경로로 이동하여repldata폴더의 속성을 선택합니다.(설치에 따라 드라이브경로가  다를수 있습니다.)


공유 탭으로 이동하여 이폴더를 공유를 체크합니다.


사용 권한을 클릭후 Everyone에 모든권한 허용을 체크합니다.


 

네트워크드라이브 경로로 repldata폴더의 접근이 가능한지 확인합니다.


 

6.3  복제 구성원 선정 및 구성

배포자 : SQL2005 

게시자 : SQL2005

구독자 : SQL2005-2

게시할 DB : Test

구독 방식: 밀어넣기구독

 

복제 구성 Test에 사용될 DBtest Table생성 스크립트

게시서버측에 아래 스크립트를 이용하여 미리 생성

/****** 데이터파일 경로는 SQL구성에 맞게 수정해야 할수있습니다.******/

CREATE DATABASE [test] ON  PRIMARY

( NAME = N'test', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\test.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )

 LOG ON

( NAME = N'test_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\test_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)

GO

USE [test]

GO

/****** 개체:  Table [dbo].[test]    스크립트 날짜: 07/13/2011 10:06:01 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[test](

             [idx] [int] IDENTITY(1,1) NOT NULL,

             [name] [nvarchar](50) NULL,

 CONSTRAINT [PK_test] PRIMARY KEY CLUSTERED

(

             [idx] ASC

)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

) ON [PRIMARY]

 

 

 

게시자 서버의 MSSMS상에 구독 대상서버를 등록 합니다.


 

MSSMS에서 게시서버를 마우스 오른쪽 버튼으로 클릭하여 연결을 선택하고. 서버이름을 입력후 연결을 클릭합니다.


 

 

 

 

 

 

 

 

 

MSSMS에서 게시서버와 구독서버가 같이 등록이 되어있는 것을 확인 있습니다.


 

데이터베이스 복제위해 배포서버 설정을 진행합니다. 배포자 서버인 SQL2005 복제 è 배포 구성을 선택합니다.


 

 

 

 

 

 

 

배포 구성 마법사 창이 뜨면 다음을 누릅니다.


 

배포자 선택 창에서 배포자를 선택 합니다. SQL2005서버가 배포자로 선택되었는지 확인 합니다. 다음을 누릅니다.


 

배포 게시에 필요한 스냅샷이 저장되는 폴더를 지정합니다. 네트워크드라이브로 연결을 해야하므로 \\SQL2005\repldata 지정하고 다음을 누릅니다.


 

배포 데이터베이스의 이름 배포 데이터베이스 파일 로그가 저장될 폴더를 지정합니다.


게시자를 지정하는 창이 뜹니다. 게시자는 데이터베이스 SQL2005입니다. 서버 선택이 맞는지 확인하고 다음을 누릅니다.


 

배포 구성에 체크후 다음을 클릭합니다.


마법사 완료 창에서 마지막으로 요약된 정보가 맞는지 확인을 하고 마침을 누릅니다.


 

배포 구성이 완료되었습니다.


 
7.    복제 유형 별 데이터베이스 게시

복제 유형은 세 가지, 스냅샷 복제, 트랜잭션 복제병합 복제가 있습니다.

7.1   스냅샷복제

게시서버 설정을 위해 SSMS SQL2005서버의 복제 è 로컬 게시 è게시를클릭합니다.


 

게시 마법사창에서 다음을 클릭합니다.


게시 데이터베이스 선택 창입니다. 게시할 데이터베이스를 선택하고 다음 누릅니다.


 

게시 유형 선택 창입니다. 복제 유형은 세 가지 스냅샷 복제, 트랜잭션 복제병합 복제가 있다고 언급했습니다. 스냅샷 복제를 하기 위해서 스냅샷 게시를 선택합니다. 다음 누릅니다.


게시할 데이터베이스의 아티클을 지정합니다. 아티클은 복제를 위해 지정한 데이터 테이블, 데이터 파티션 또는 데이터베이스 개체입니다. 여기서는 모든 아티클을 게시 하도록 선택하겠습니다. 다음을 클릭합니다.


 

필요 없는 행을 제외시킬수 있는 테이블 행 필터입니다. 기본값에서 다음을 클릭합니다


게시 이름과 설명 선택 창입니다. 게시 이름은 게시할 데이터베이스와 동일한 이름으로 합니다. 다음을 누릅니다.

스냅샷 에이전트 일정 설정 창입니다. 스냅샷 에이전트가 정해진 시간에 작업을 하도록 설정을 합니다.   변경 버튼을 누릅니다.스냅샷 에이전트의 작업일정이 제대로 설정이 되었는지 확인하고 다음을 클릭합니다. (매일 12시수행)


스냅숏 에이전트 보안설정창입니다. 보안 설정을 클릭합니다.


스냅숏 에이전트 프로세스 실행계정에 SQL Server 에이전트 서비스 계정으로 실행 체크

게시자에 연결에 sa계정과 패스워드를 입력합니다.


에이전트 보안이 설정되었습니다. 다음을 클릭합니다.


 

마법사 완료시 게시만들기를 체크하고 다음을 클릭합니다.


게시 이름을 입력하고 다음을 클릭합니다.


 

 

게시작업이 완료됩니다.


 

SSMS SQL2005서버에 test게시가 생성되었습니다.


 

 

 

 

 

스냅숏복제의 구독설정을 위해 SSMS SQL2005-2 서버의 복제 è 로컬 구독 è구독을클릭합니다.


 

구독마법사가 실행됩니다. 다음을 클릭합니다.


 

 

 

 

 

 

 

게시 창이 나타나며 게시자 부분을 SQL2005서버로 변경해줍니다.


 

게시자를 SQL2005 선택후 게시자가 나타납니다. 다음을 클릭합니다.


 

밀어넣기 구독을 선택후 다음을 클릭합니다.


 

구독 데이터베이스 설정부분. 현재 데이터 베이스가 생성되지않았으므로 데이터베이스를 선택합니다.


 

test라는 이름으로 데이터베이스를 생성합니다.(데이터 정렬이나 DB호환성수준이 SQL서버 버전과 다를때는 게시측 서버의 DB Full Backup하여 구독측 서버에 복원하는 것이 좋습니다.)


 

구독 데이터 베이스가 선택되었습니다.


배포 보안에이전트 설정을 위해


 

빨간 테두리의 상자를 클릭합니다.


 

배포 에이전트 프로세스 실행계정에 SQL Server 에이전트 서비스 계정으로 실행 체크

구독자에 연결에 sa계정과 패스워드를 입력합니다.


배포 에이전트 보안설정이 완료되었습니다. 다음을 클릭합니다.


에이전트 일정을 계속실행에 설정후 다음을 클릭합니다.


 

구독 초기화를 번째 동기화 시로 선택후 다음을 클릭합니다.


 

구독 만들기 체크후 다음 클릭


 

설정내용을 확인후 다음을 클릭합니다.


 

스냅숏 복제의 구독만들기가 완료되었습니다.


 

복제구성후 실제 복제는 예정된 시간은 12시에 진행됩니다. Test 위해 SSMS SQL2005서버 복제 è 로컬 게시 ètest게시를 마우스 클릭후 스냅숏에이전트 상태보기를 클릭합니다.


스냅숏 에이전트의 현재 상태가 나타납니다. 시작버튼을 클릭합니다.

스냅숏 에이전트를 실행하면 게시DB 스냅숏이 생성됩니다. 생성시 DB용량이 클경우 서버에 상당한 로드가 발생하므로 서비스중인 서버에서는 사용량이 적은 시간에 실행하는 것이 안전합니다.)


에이전트가 실행됩니다.


스냅숏이 생성되었습니다.


 

\\SQL2005\repldata 폴더에 아래와 같이 스냅숏이 생성됩니다.


구독설정시 스냅숏이 생성되면 바로 동기화 되게 설정하였으므로 구독서버측에 아티클이 복제되었는지 확인합니다.


 

게시서버측에 DB 데이터를 업데이트 하여 복제동작을 Test합니다. SSMS SQL2005선택후 메뉴의 쿼리클릭하여

아래 스크립트 실행

use test

insert into dbo.test values('test1')

insert into dbo.test values('test2')

insert into dbo.test values('test3')

스냅샷복제의 경우 복제가 바로 이루어지지않고 게시설정시 하루 1 지정한 시간인 24시에 한번실행됩니다.

Test 위해 SSMS SQL2005서버 복제 è 로컬 게시 ètest게시를 마우스 클릭후 스냅숏에이전트 상태보기를 클릭하여 스냅숏 에이전트를 시작합니다.에이전트가 실행됩니다.


스냅숏이 생성되었습니다.


구독설정시 스냅숏이 생성되면 바로 동기화 되게 설정하였으므로 구독서버측에 아티클이 복제되었는지 확인합니다.


7.2   트랜잭션복제

게시서버 설정을 위해 SSMS SQL2005서버의 복제 è 로컬 게시 è게시를클릭합니다.


 

게시 마법사창에서 다음을 클릭합니다.


 

게시 데이터베이스 선택 창입니다. 게시할 데이터베이스를 선택하고 다음 누릅니다.


 

게시 유형 선택 창입니다. 복제 유형은 세 가지 스냅샷 복제, 트랜잭션 복제병합 복제가 있다고 언급했습니다.

스냅샷 복제를 하기 위해서 스냅샷 게시를 선택합니다. 다음 누릅니다.


게시할 데이터베이스의 아티클을 지정합니다. 아티클은 복제를 위해 지정한 데이터 테이블, 데이터 파티션 또는 데이터베이스 개체입니다. 여기서는 모든 아티클을 게시 하도록 선택하겠습니다. 다음을 누릅니다.


\

필요 없는 행을 제외시킬수 있는 테이블 행 필터입니다. 기본값에서 다음을 클릭합니다.


게시 이름과 설명 선택 창입니다. 게시 이름은 게시할 데이터베이스와 동일한 이름으로 합니다. 다음을 누릅니다.

스냅샷 에이전트 일정 설정 창입니다. 스냅샷 에이전트가 정해진 시간에 작업을 하도록 설정을 합니다.   트랜잭션복제의경우특정시간이아닌계속복제가이우어져야하므로즉시스냅숏을만들고구독초기화에사용할있도록유지합니다를체크합니다


 

스냅숏 에이전트 보안설정창입니다. 보안 설정을 클릭합니다.


스냅숏 에이전트 프로세스 실행계정에 SQL Server 에이전트 서비스 계정으로 실행 체크

게시자에 연결에 sa계정과 패스워드를 입력합니다.


 

에이전트 보안이 설정되었습니다. 다음을 클릭합니다.


마법사 완료시 게시만들기를 체크하고 다음을 클릭합니다.


 

게시 이름을 입력하고 다음을 클릭합니다.


 

게시작업이 완료됩니다. SSMS SQL2005서버에 test게시가 생성되었습니다.


트랜잭션복제의 구독설정을 위해 SSMS SQL2005-2 서버의 복제 è 로컬 구독 è구독을클릭합니다.


구독마법사가 실행됩니다. 다음을 클릭합니다.


게시 창이 나타나며 게시자 부분을 SQL2005서버로 변경해줍니다.


 

게시자를 SQL2005 선택후 게시자가 나타납니다. 다음을 클릭합니다.


 

밀어넣기 구독을 선택후 다음을 클릭합니다.


 

구독 데이터베이스 설정부분. 현재 데이터 베이스가 생성되지않았으므로 데이터베이스를 선택합니다.


 

test라는 이름으로 데이터베이스를 생성합니다.(데이터 정렬이나 DB호환성수준이 SQL서버 버전과 다를때는 게시측 서버의 DB Full Backup하여 구독측 서버에 복원하는 것이 좋습니다.)


 

구독 데이터 베이스가 선택되었습니다.


배포 보안에이전트 설정을 위해


빨간 테두리의 상자를 클릭합니다.

 


 

배포 에이전트 프로세스 실행계정에 SQL Server 에이전트 서비스 계정으로 실행 체크

구독자에 연결에 sa계정과 패스워드를 입력합니다.


배포 에이전트 보안설정이 완료되었습니다. 다음을 클릭합니다.


에이전트 일정을 계속실행에 설정후 다음을 클릭합니다.


 

구독 초기화를 즉시로 선택후 다음을 클릭합니다.


 

구독 만들기 체크후 다음 클릭


 

설정내용을 확인후 다음을 클릭합니다.


 

스냅숏 복제의 구독만들기가 완료되었습니다.


 

복제구성후 트랜잭션 복제의 경우 바로 구독서버로 복제가 시작됩니다. SQL2005-2 구독 서버측의 test DB Table 데이터가 복제되었는지 확인합니다.


 

 

 

7.3   병합복제

게시서버 설정을 위해 SSMS SQL2005서버의 복제 è 로컬 게시 è게시를클릭합니다.


 

게시 마법사창에서 다음을 클릭합니다.


 

게시 데이터베이스 선택 창입니다. 게시할 데이터베이스를 선택하고 다음 누릅니다.


게시 유형 선택 창입니다. 복제 유형은 세 가지 스냅샷 복제, 트랜잭션 복제, 업데이트할 수 있는 구독이 있는 트랜잭션 복제, 병합 복제가 있다고 언급했습니다.

병합 복제를 하기 위해서 스냅샷 게시를 선택합니다. 다음 누릅니다.


구독자 유형을 선택한뒤 다음을 클릭합니다.


 

게시할 데이터베이스의 아티클을 지정합니다. 아티클은 복제를 위해 지정한 데이터 테이블, 데이터 파티션 또는 데이터베이스 개체입니다. 여기서는 모든 아티클을 게시 하도록 선택하겠습니다. 다음을 누릅니다.


필요 없는 행을 제외시킬수 있는 테이블 행 필터입니다. 기본값에서 다음을 클릭합니다.


 

스냅샷에이전트 일정 설정 창입니다. ‘즉시 스냅숏을 만들고 구독 초기화에 사용할 있도록 유지합니다.’

체크를합니다


스냅숏 에이전트 보안설정창입니다. 보안 설정을 클릭합니다.


 

스냅숏 에이전트 프로세스 실행계정에 SQL Server 에이전트 서비스 계정으로 실행 체크

게시자에 연결에 sa계정과 패스워드를 입력합니다.


에이전트 보안이 설정되었습니다. 다음을 클릭합니다.


 

마법사 완료시 게시만들기를 체크하고 다음을 클릭합니다.


 

게시 이름을 입력하고 다음을 클릭합니다.


 

게시작업이 완료됩니다.


 

SSMS SQL2005서버에 test게시가 생성되었습니다.


병합복제 구독설정을 위해 SSMS SQL2005-2 서버의 복제 è 로컬 구독 è구독을클릭합니다.


구독마법사가 실행됩니다. 다음을 클릭합니다.


게시 창이 나타나며 게시자 부분을 SQL2005서버로 변경해줍니다.


 

게시자를 SQL2005 선택후 게시자가 나타납니다. 다음을 클릭합니다.


 

밀어넣기 구독을 선택후 다음을 클릭합니다.


 

구독 데이터베이스 설정부분. 현재 데이터 베이스가 생성되지않았으므로 데이터베이스를 선택합니다.


 

test라는 이름으로 데이터베이스를 생성합니다.(데이터 정렬이나 DB호환성수준이 SQL서버 버전과 다를때는 게시측 서버의 DB Full Backup하여 구독측 서버에 복원하는 것이 좋습니다.)


 

구독 데이터 베이스가 선택되었습니다.


배포 보안에이전트 설정을 위해


 

빨간 테두리의 상자를 클릭합니다.


 

배포 에이전트 프로세스 실행계정에 SQL Server 에이전트 서비스 계정으로 실행 체크

구독자에 연결에 sa계정과 패스워드를 입력합니다.


 

배포 에이전트 보안설정이 완료되었습니다. 다음을 클릭합니다.


에이전트 일정을 계속실행에 설정후 다음을 클릭합니다.


 

구독 초기화는 즉시를 선택합니다.


 

구독 유형을 선택합니다.


 

구독 만들기 체크후 다음 클릭


 

설정내용을 확인후 다음을 클릭합니다.


 

스냅숏 복제의 구독만들기가 완료되었습니다.


 

Test 위해 SSMS SQL2005서버 복제 è 로컬 게시 ètest게시를 마우스 클릭후 스냅숏에이전트 상태보기를 클릭합니다.


 

스냅숏 에이전트의 현재 상태가 나타납니다. 스냅숏 생성이 완료되었습니다.


 

 

 

 

\\SQL2005\repldata 폴더에 아래와 같이 스냅숏이 생성됩니다.


 

구독설정시 스냅숏이 생성되면 바로 동기화 되게 설정하였으므로 구독서버측에 아티클이 복제되었는지 확인합니다.


 

 

게시서버측에 DB 데이터를 업데이트 하여 복제동작을 Test합니다. SSMS SQL2005선택후 메뉴의 쿼리를 클릭하여 아래 스크립트 실행

use test

insert into dbo.test (name) values('test1')

insert into dbo.test (name) values('test2')

insert into dbo.test (name) values('test3')

 

병합복제의 경우 복제가 실시간으로 이루어지지않으며 1 미만의 시간이 복제에 소요됨

구독서버측에 아티클이 복제되었는지 확인합니다.


 

구독서버측에 DB 데이터를 업데이트 하여 복제동작을 Test합니다. SSMS SQL2005-2 선택후 메뉴의 쿼리를 클릭하여 아래 스크립트 실행

use test

insert into dbo.test (name) values('test4')

insert into dbo.test (name) values('test5')

insert into dbo.test (name) values('test6')

 

 

 

 

 

병합복제의 경우 복제가 실시간으로 이루어지지않으며 1 미만의 시간이 복제에 소요됨

구독서버측에 아티클이 복제되었는지 확인합니다.


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
8.    트랜잭션 복제 구성후 복제 Table추가

8.1   Table 추가 방안

Test를 위해 트랜잭션 복제가 구성된 서버중 게시서버에서 test라는이름의 새로운 Table을 추가합니다.


 

복제è로컬게시è해당 DB의 게시로 이동하여 마우스 우클릭후 속성을 선택합니다.


 

 

 

속성창 왼편 메뉴중 아티클을 선택후 선택 표시된 개체만 목록에 표시를 언체크합니다.


 

새로 복제에 추가할 test Table을 체크후 확인버튼을 클릭합니다.


 

복제è로컬게시è해당 DB의 게시로 이동하여 마우스 우클릭후 모든 구독 다시 초기화를 선택합니다.


 

새 스냅숏 사용 및 지금 새 스냅숏 생성을 체크후 다시 초기화 표시를 클릭합니다.

(배포서버 D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\repldata\unc 폴더에 스냅샷이 생성되며 디스크용량이 커질수있으므로 주의하시기바랍니다.)

(스냅숏 초기화시 시스템 부하가 높습니다. 사용량이 적을때 적용하시기바랍니다.)


 

 

 

 

 

 

 

 

복제è로컬게시è해당 DB의 게시로 이동하여 마우스 우클릭후 스냅숏 에이전트 상태 보기를 선택합니다.


 

[100%] ***스내숏이 생성되었습니다라는 메시지가  완료된 상태입니다


 

 

 

 

 

 

 

 

복제è로컬게시è해당 DB의 게시로 이동하여 마우스 우클릭후 복제 모니터 시작을 선택합니다.


 

복제 모니터에서 게시와 구독이 에러없이 동작중인지 확인합니다.


 

 

실행중인 구독 마우스 우 클릭후 자세히보기를 선택하시면 상세정보를 확인하실수 있으며 에러발생시 에러메시지를 확인할수 있습니다.


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
9.    복제 모니터링

9.1   복제모니터링이필요한이유

 

- 복제 시스템이 정상적으로 동작하고 있는가?

- 에이전트가 실행되지않는 이유는 무엇인가?

- 시스템이 이렇게 느리지?

- 복제하는데 시간이 얼마나 걸리는가?

- 어디에 잠재적인 문제가 발생하고 있는가?

- 문제 상황을 사전에 인식하고 조치를 취할 수는 없는가?

 

 

9.2   복제 모니터의 특징

복제 모니터의 특징

내용

성능 임계값 설정

잠재적인 성능 문제를 사전에 식별하기 위해 기준이 되는 조건과 임계 값을 정의하면 해당 상황에서 경고를 발생시키고 모니터링을 할 수 있습니다.

 

모니터링 부하 최소화

복제 모니터는 많은 컴퓨터를 효율적으로 모니터링 하도록 설계 되었습니다. 복제 모니터가 사용하는 쿼리는 정기적으로 캐시되며 새로 고쳐집니다. 캐싱을 사용하므로 여러 페이지를 볼 때 불 필요한 쿼리 및 계산 작업을 줄일 수 있습니다. 기본적으로 주 복제 모니터 창은 자동으로 5초마다

 

병합 복제 모니터링

병합 복제의 각 처리 단계(변경 내용 업로드, 다운로드 등)에 소요된 시간을 포함해서 동기화 중에 처리된 각 아티클에 대한 자세한 통계를

 

트랜잭션 복제 모니터링

트랜잭션 복제는 이제 트랜잭션의 전 단계의 걸쳐 실 시간의 추적이 가능합니다. 이는 게시자에서 배포자로 그리고 하나 이상의 구독자에 대해

 

 

 

 

 

 

 

 

 

9.3    복제 모니터링 사용 방법

개체 탐색기 è 해당 서버 è 복제 에서 팝업 메뉴를 띄우고, 복제 모니터 시작 메뉴를 선택합니다.
복제 모니터에서 해당 게시 정보를 선택하면 관련된 정보를 모니터링 할 수 있습니다. 우선 모든 구독 탭에서 모든 구독자의 실행 정보와 관련된 작동 상태 및 성능 문제 여부 등을


모든 구독탭의 동기화중인 구독을 더블클릭하면 상세한 동기화 상태를 모니터링 할수 있습니다.


추적 프로그램 토큰 탭에서는 추적 프로그램 삽입 버튼을 이용해서 트랜잭션 복제 로그에 추적 프로그램 토큰을 추가하도록 지정하고 해당 토큰의 복제 경로를 따라 복제 수행에 걸리는 각 영역별(게시->배포, 배포->구독) 수행 시간 및 지연 시간 정보 등을 모니터링할 수 있습니다.


 

경고 에이전트 탭에서는 성능 문제 임계 값을 설정하거나 게시 관련된 에이전트와 작업에 대한 상세 정보를 모니터링 있습니다.

Posted by 시스템매니아
,