그래서 여기 시나리오가 있습니다. 나는 DB0라고하는 중앙 데이터베이스를 가지고있다. DB1과 DB2에 내 응용 프로그램에서 액세스하는 두 개의 작은 데이터베이스가 있다고 가정하면 App1과 App2가 각각 있습니다. DB0과 DB2에 DB0의 내용을 복제하고 싶습니다. 이것을 위해 저는 Symmetricds를 사용하고 있습니다.대칭 : 동일한 DB를 참조하는 2 개의 서버 노드 생성
이제 내가 의심 스럽습니다. DBN과 2 ClientNodes, ClientNodes-01, ClientNodes-02를 가리키는 CentralNode-00을 DB1과 DB2를 각각 가리키며 쉽게 만들 수 있음을 이해합니다.
하지만 Java에서 임베디드 모드로 SymmetricDS를 사용하려고합니다. 그래서 이것을 어떻게하고 싶습니다 :
App1에서 DB0을 가리키는 Symmetric-Server Central-00과 DB1을 가리키는 Symmetric-Client Client-01을 시작하려고합니다. 마찬가지로 App2에서 DB0을 가리키는 Symmetric-Server Central-00과 DB2를 가리키는 Symmetric-Client Client-02의 다른 인스턴스를 시작하려고합니다. 분명히 App1과 App2는 자체 JVM에서 시작될 것입니다.
제 질문은 이것입니다. 두 대의 다른 VM에서 동일한 Symmetric-Server Central-00 인스턴스 두 개를 시작할 수 있습니까? 간단히 말해, 동일한 DB (이 DB 내에서 생성 된 동일한 SYM 테이블)에 액세스하는 두 개의 대칭 서버 노드를 시작할 수 있습니까?
이것은 중앙 DB에 삽입 한 구성입니다.
insert into sym_channel
(channel_id, processing_order, max_batch_size, enabled, description)
values('item', 1, 100000, 1, 'Item and pricing data');
insert into sym_node_group (node_group_id) values ('corp');
insert into sym_node_group (node_group_id) values ('store');
insert into sym_node_group (node_group_id) values ('store02');
insert into sym_node_group_link (source_node_group_id, target_node_group_id, data_event_action) values ('corp', 'store', 'W');
insert into sym_node_group_link (source_node_group_id, target_node_group_id, data_event_action) values ('corp', 'store02', 'W');
insert into sym_node_group_link (source_node_group_id, target_node_group_id, data_event_action) values ('store', 'corp', 'P');
insert into sym_node_group_link (source_node_group_id, target_node_group_id, data_event_action) values ('store02', 'corp', 'P');
insert into sym_trigger
(trigger_id,source_table_name,channel_id,last_update_time,create_time)
values('item','item','item',current_timestamp,current_timestamp);
insert into sym_router
(router_id,source_node_group_id,target_node_group_id,router_type,create_time,last_update_time)
values('corp_2_store', 'corp', 'store', 'default',current_timestamp, current_timestamp);
insert into sym_router
(router_id,source_node_group_id,target_node_group_id,router_type,create_time,last_update_time)
values('corp_2_store02', 'corp', 'store02', 'default',current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('item','corp_2_store', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('item','corp_2_store02', 100, current_timestamp, current_timestamp);
하지만 인스턴스를 시작하면 Primary Key Violation
예외가 발생합니다.
그래서 누군가가 이것이 가능한지 아닌지 말할 수 있습니까? 그렇다면 내 실수를 지적 할 수 있을까요?