안녕하세요.
지금 하고자 하는건 단일 인스턴스 내의 Database간의 테이블 동기화?/미러링?/복제?입니다.
A Instance(192.168.101.1)내의 A 데이터베이스와 B 데이터베이스가 있을 때, A 데이터베이스의 TEST01, TEST02, TEST03 ... 테이블을 B 데이터베이스로 동기화? 미러링? 복제? 를 하려고 합니다.
무슨 방법들로 할 수 있나 찾아봤을 때는...
1. Replication 을 사용하여 동기화
- A가 게시자, B가 구독자로 설정하고 Snapshot 게시로 수행
2. 스크립트 작성하여 유지 계획 추가
- 매시간마다 실행
- 복제되는 B의 테이블은 삭제
- A에서 B로 복사
- 작업 완료
고려사항은 이렇게 생각하고 있습니다.
- 자료가 실시간으로 동기화 될수록 더 좋음
- A 데이터베이스의 데이터는 삽입만 되는게 아니라 삭제, 업데이트도 수행됨. 이에 대한 사항이 반영되어야 함
복사하려고 하는 데이터베이스의 용량은 크지 않습니다.(35메가 정도)
어떤 방법이 더 나은 방법일까요?
용어가 틀린 부분이 있거나 제가 잘못 이해하고 있으면 말씀해주시면 수정하도록 하겠습니다.
Comment 9
-
ilovejsp
2016.05.09 18:37
Replication 을 사용하는데 transaction replication 이좋을듯합니다. Update,delete시에 실시간으로 transaction넘겨서 동기화됨 -
Gusto
2016.05.10 09:55
디비가 제약조건 문제로 인해 transaction replication은 안 될 것 같네요.. 제가 설계에 참여했다면 상관없는데 디비 쪽에 뭔가 건드릴 수 있는 권한이 없어서 ㅠ
-
minsouk
2016.05.09 23:36
어떤 목적으로 이런 작업을 하실려는지 이유를 좀 알려주시면 좋은 방법을 추천 받을수 있지 않을까요?
-
Gusto
2016.05.10 10:05
- A 데이터베이스의 특정 테이블을 동기화하여 B 데이터베이스에 넘겨줌(A 데이터베이스의 테이블 100개 중, 10개 정도만 동기화)
- B 데이터베이스 owner 사용자에에게 사전에 제공하기로 한 정보만을 제공하기 위함
- A 데이터베이스를 설계/access 하는 업체와 B 데이터베이스를 사용할 업체가 다름
목적 : A 데이터베이스의 특정 테이블을 B 데이터베이스에서 읽어서 작업하기 위함
B 데이터베이스 업체에 아예 A 데이터베이스의 읽기 권한조차 주면 안된다고 하여... 방법을 찾아보고 있습니다.
-
minsouk
2016.05.10 12:07
view 를 만들어 권한 관리 하는게 좋아 보입니다 -
Gusto
2016.05.11 14:47
질문이 있습니다.
view로 관리할 경우 view 생성 시점의 데이터만 읽을 수 있는거 아닌가요?
-
이리
2016.05.11 18:25
view를 조회하는 시점의 데이터를 읽습니다.
-
Gusto
2016.05.13 14:08
제가 잘못 기억하고 있었네요. 답변 고맙습니다
-
Gusto
2016.05.10 10:11
인스턴스를 하나 더 추가해서 A 인스턴스는 A 업체가, B 인스턴스는 B 업체... 두개 인스턴스에 미러링만 걸어주는 것도 하나의 방법일까요?