노무현 전 대통령 서거 - 삼가 고인의 명복을 빕니다


'스터디/Database'에 해당되는 글 3건

  1. 2009.04.27 데이터베이스 복제 정보 삭제 방법
  2. 2008.06.16 Microsoft SQL Server 2008 White Papers
  3. 2008.06.14 OLE DB 연결 시, Provider가 제공하는 서비스 활성화 방법
2009.04.27 17:09

데이터베이스 복제 정보 삭제 방법

기존에 복제 (게시 - 구독)을 수행했던 데이터베이스의 복제 기록이 완전히 삭제되지 않을 경우,
sp_repldone을 실행해도 "데이터베이스가 게시되지 않았습니다"라는 메시지를 표시된다.

이 경우, Transaction log를 Truncate하고자 할 때 아래 메시지를 표시하며 오류가 발생한다.
"로그 시작 부분의 레코드가 복제 보류 중이므로 로그가 잘리지 않았습니다.
 로그 판독기 에이전트가 실행중인지 확인하거나 sp_repldone을 사용하여
 트랜잭션이 분산된 것으로 표시하십시오."

이럴 때 해결방법은 당연하게도 "복제상태를 clear 하는 것"이 되겠다.

방법 1
sp_configure 'allow', 1
go
reconfigure with override
go

update master..sysdatabases set category = category ^ 1 WHERE name = {DBNAME}
go

use {DBNAME}
go
UPDATE sysobjects set replinfo = 0
go

EXEC sp_repldone NULL, NULL, 0, 0, 1
go

UPDATE master..sysdatabases set category = category & ~1 WHERE name = {DBNAME}
go

BACKUP LOG {DBNAME} WITH TRUNCATE_ONLY


방법 2
use {DBNAME}
go
sp_removedbreplication {DBNAME}
go

 

1번 방법으로 해봤는데 잘 되더라.
Trackback 0 Comment 0
2008.06.16 14:43

Microsoft SQL Server 2008 White Papers

Microsoft SQL Server 2008에 관련된 백서들이 모여있는 곳.
http://www.microsoft.com/sqlserver/2008/en/us/white-papers.aspx

P.S. 이건 또 언제 배우고 써먹나. -_-; 우웍

Trackback 0 Comment 0
2008.06.14 14:19

OLE DB 연결 시, Provider가 제공하는 서비스 활성화 방법

OLE DB Provider를 이용하여 연결할 때, Provider가 제공하는 여러 서비스의 활성화 여부를 선택할 수 있다.

(가장 관심이 가는 것은 당연히 Connection Pooling이지만.. 찾는 김에 나머지도 찾아봤다.
 개인적인 생각으로, Connection Pooling같은 기능은 특별한 이유가 없다면 별도로 구현할 필요가 없다.
 어차피 OS에서 제공하는 기능이라면, 그냥 사용하면 되는 것 아닌가?
 물론 개념을 이해하기 위해 Thread pool이나 Connection Pool 같은 것을 만들어 보는 건 의미가 있지만,
 Time to market이 중요한 입장에서 굳이 그렇게 할 필요는 없다.)

잠시 말이 돌았다. 어쨌든, 다음 설정 변수에 대한 bitwise 연산을 통해 설정 변경이 가능하다.

OLE DB Provider options







Bitwise 연산의 예는 다음과 같다.

OLE DB Provider Options - Bitwise 연산 예제






아니면, Connection string에서 지정할 수도 있다.
Connection String에 다음과 같이 설정 항목을 추가하면 된다.

All services (default) "OLE DB Services = -1;"
All except pooling and automatic transaction enlistment "OLE DB Services = -4;"
All except Client Cursor Engine "OLE DB Services = -5;"
All except pooling, automatic transaction enlistment, and Client Cursor Engine "OLE DB Services = -8;"
Pooling and automatic transaction enlistment only, session level aggregation only "OLE DB Services = 3;"
No services "OLE DB Services = 0;"

* 연결 문자열 예제
Provider=SQLOLEDB;OLE DB Services=-4;Data Source=localhost;Integrated Security=SSPI;

* 연결 문자열 설정 항목
사용자 삽입 이미지



그런데, 사실 여기서 중요한 건, 기본 설정은 '모든 서비스 활성화' 라는 것.
뭐.. 그렇댄다.


References
Trackback 0 Comment 0


티스토리 툴바