database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
ㆍSybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Sybase Q&A 875 게시물 읽기
No. 875
Sybase에 Replication 에 대해서 질문...
작성자
경호선
작성일
2004-03-04 10:49ⓒ
2004-03-04 10:50ⓜ
조회수
3,465

글로 잘 설명이 될지 모르겠는데요..

저희가 Sybase에 Replication을 사용을 두 서버간에 A라는 Table을 Replication을 설정을 했습니다. 이 A Table은 트리거가 있으며 이 트리거안에서 B라는 테이블에 자료를 생성합니다.  그런데 이 B라는 테이블에 자료를 다시 Replication을 태워야 하는데 이게 안되더군요.  참고로 B라는 테이블에 직접 자료를 입력하면 Replication은 잘 내려 갑니다..  그런데 트리거를 해서 생성된 자료는 안 내려가드라구요.  혹시 방법을 알구 계신 분은 부탁 드리겠습니다.

이 글에 대한 댓글이 총 4건 있습니다.

이게 맞는지 모르겠군요.

 

replicator 기능을 이용하신 거라면 다시 한번 테스트해봐야 겠고요

 

 

Repserver를 이용한신거라면, 제가 테스트 해본 결과 잘되는데요

Source Server에서

create table test1 (a int)

create table test2 (a int)

create trigger test1_t on test1

as

insert test2 select  * from inserted

 

 

Target Server에서

create table test1 (a int)

create table test2 (a int)

 

 

Repserver에서

create replication definition test1_def with primary at SOURCE.dbname with all tables named test1

create replication definition test2_def with primary at SOURCE.dbname with all tables named test2

 

create subscription test1_sub for test1_def with replicate at TARGET.dbname

create subscription test2_sub for test2_def with replicate at TARGET.dbname

 

 

그리고 나서 SOURCE에서

insert test1 values(2)

 

select * from test1

select * from test2

 

TARGET에서

select * from test1

select * from test2

 

모두 결과가

 -----------
           2
이렇게 정상으로 나옵니다.

 

 

ASE하고 rep 버젼좀 알려주시겠습까?

 

 

지연님이 2004-03-04 13:27에 작성한 댓글입니다. Edit

답변을 달아 주셔서 고맙습니다. 

맞습니다.. 그렇게 하면 잘 되는데..

insert test1 values(2) 를  SOURCE Server에서 하지 말구요. Target Server에서 해야 하거든요..

그러니깐. 이해 하기 쉽게 리풀 달아 주신 서버 그냥 이름으로 생각을 하구 설명을 드릴께요  Table test1은 Target Server -> SOURCE Server 이렇게 Rep이 되어 있구요. 트리거는 SOURCE Server에 되어 있구요.(물론 지금 예제로 보여주신거 그대로요)

이렇게 하면 Target Server에서 insert test1 values(2)를 하면  SOURCE Server 에서 트리거가 실행이 됩니다. 그럼 이론 상으로는 test2 에 insert가 되구서 rep을 타구서 SOURCE Server -> Target Server 이렇게 넘어 와야 하는데...이게 안되서요..

예제로 주신것을 제가 조금 수정을하면요.

table, trigger create 는 맞구요.

Repserver에서

create replication definition test1_def with primary at TARGET.dbname with all tables named test1

create replication definition test2_def with primary at SOURCE.dbname with all tables named test2

 

create subscription test1_sub for test1_def with replicate at SOURCE.dbname

create subscription test2_sub for test2_def with replicate at TARGET.dbname

그리고 나서 TARGET에서

insert test1 values(2)

 

이렇게... 맞는지 모르겠네.ㅋㅋㅋ

참고로 rep 버젼은 11.5입니다.

 

 

경호선님이 2004-03-04 18:18에 작성한 댓글입니다.
이 댓글은 2004-03-04 18:20에 마지막으로 수정되었습니다. Edit

정말 sybase를 잘하시는 고수님께 도움을 받았습니다.

 

trigger가 있는 server에서

 

sp_config_rep_agent   dbname,"send maint xacts to replicate"    , "true"

 

하심 잘 됩니다.(제가 test한 결과는 잘됩니다)

지연님이 2004-03-05 17:49에 작성한 댓글입니다. Edit

지연님 정말 고맙습니다. 

그런데 질문이 있는데요. 이 설정을 하면 Rep 서버 전체에 영향이 있는 거죠? 그럴거 같은데

정말 죄송한데요. 그 테이블만 적용 될수 있는 옵션은 없을까요 ?

경호선님이 2004-03-08 18:58에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
878not null?? 쿼리에 대해 [2]
승우
2004-03-08
3374
877HP서버의 DB를 노트북에서 사용하는 방법 [2]
장병조
2004-03-05
2824
876수정전 데이타 내용을 알아낼 방법이 없을까요? [1]
jinbons
2004-03-05
3412
875Sybase에 Replication 에 대해서 질문... [4]
경호선
2004-03-04
3465
874index 관련 문의 [2]
질무니
2004-03-02
4580
873Oracle에서 사용하는 Rowid와 같은 기능을 하는것은 없나요??? [4]
이성만
2004-02-28
4141
872생성된 table의 Column Type을 알수 있는 table이 있나요??? [2]
이성만
2004-02-27
3108
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다