로컬 시스템과 클라우드 인스턴스 간의 단방향 SymmetricDS 동기화
로컬 머신에서 실행되는 Microsoft SQL Server에서 VPS에서 실행되는 MariaDB로의 단방향 데이터 흐름을 클라우드에서 구성하려고 합니다.
로컬 시스템에는 공용 정적 IP 주소가 없지만 VPS에는 있습니다.
간신히 연결했는데 데이터가 전파되지 않아요.
이러한 셋업(고정 퍼블릭 IP가 없는 머신 -> 고정 퍼블릭 IP가 있는 머신)은 지원됩니까?아니면 두 기계 모두 어떻게든 서로 연결할 수 있어야 하나요?내가 뭘 빼놓았나요?
다음은 설정 파일 MariaDB VPS(corp/main server/target): engines/corp-000.properties
engine.name=corp-000
db.driver=org.mariadb.jdbc.Driver
db.url=jdbc:mariadb://localhost/LKDSDISP
db.user=<username>
db.password=<passwordhere>
registration.url=
sync.url=http://<ip>:31415/sync/corp-000
group.id=corp
external.id=000
job.purge.period.time.ms=7200000
job.routing.period.time.ms=5000
job.push.period.time.ms=10000
job.pull.period.time.ms=10000
initial.load.create.first=true
로컬 머신(소스) 엔진/sovetskaya-001.properties의 MS SQL
engine.name=sovetskaya-001
db.driver=net.sourceforge.jtds.jdbc.Driver
db.url=jdbc:jtds:sqlserver://localhost:1433/LKDSDISP;useCursors=true;bufferMaxMemory=10240;lobBuffer=5242880
db.user=<username>
db.password=<pwd>
registration.url=http://<mariadb-ip-here>:31415/sync/corp-000
sync.url=http://<local-machine-public-internet-ip-here>:31415/sync/sovetskaya-001
group.id=sovetskaya
external.id=001
job.routing.period.time.ms=5000
job.push.period.time.ms=10000
job.pull.period.time.ms=10000
initial.load.create.first=true
라우터/노드/트리거 설정은 다음과 같습니다.
insert into sym_node_group (node_group_id, description) values ('corp', 'Target MariaDB server');
insert into sym_node_group (node_group_id, description) values ('sovetskaya', 'Sovetskaya MS SQL Server source');
insert into sym_node_group_link (source_node_group_id, target_node_group_id, data_event_action) values ('sovetskaya', 'corp', 'P');
insert into sym_node_group_link (source_node_group_id, target_node_group_id, data_event_action) values ('corp', 'sovetskaya', 'W');
insert into sym_router
(router_id,source_node_group_id,target_node_group_id,router_type,create_time,last_update_time)
values('sovetskaya_2_corp', 'sovetskaya', 'corp', 'default',current_timestamp, current_timestamp);
insert into sym_channel (channel_id, processing_order, max_batch_size, enabled, description) values ('main_channel', 1, 100000, 1, 'channel for replication');
insert into sym_trigger (trigger_id,source_table_name,channel_id,last_update_time,create_time) values ('item','item','main_channel',current_timestamp,current_timestamp);
insert into sym_trigger_router (trigger_id,router_id,initial_load_order,last_update_time,create_time) values ('item','sovetskaya_2_corp', 100, current_timestamp, current_timestamp);
MS SQL Server의 소스 테이블이 호출됩니다.dbo.item
.
알고 보니 세 가지 중요한 부분이 누락되어 있었습니다.
- corp-000에 수동으로 타깃 데이터베이스 테이블을 만듭니다.SymmetricDS는 자동으로 생성된다고 생각했지만 생성되지 않았습니다.
- corp-000.properties에서 "초기 리버스 로드"를 유효하게 한다(
auto.reload.reverse=true
). 타겟노드와 소스노드 속성 모두에서 활성화 되어 있는 경우에 대비합니다. - sym_parameter 테이블에 (auto.reload.reverse, true) 삽입(아래 참조)
최종 속성 파일은 MariaDB VPS(corp/main server/target): engines/corp-000.properties입니다.
engine.name=corp-000
db.driver=org.mariadb.jdbc.Driver
db.url=jdbc:mariadb://localhost/LKDSDISP
db.user=<username>
db.password=<passwordhere>
registration.url=
sync.url=http://<ip>:31415/sync/corp-000
group.id=corp
external.id=000
job.purge.period.time.ms=7200000
job.routing.period.time.ms=5000
job.push.period.time.ms=10000
job.pull.period.time.ms=10000
initial.load.create.first=true
auto.reload.reverse=true
로컬 머신(소스) 엔진/sovetskaya-001.properties의 MS SQL
engine.name=sovetskaya-001
db.driver=net.sourceforge.jtds.jdbc.Driver
db.url=jdbc:jtds:sqlserver://localhost:1433/LKDSDISP;useCursors=true;bufferMaxMemory=10240;lobBuffer=5242880
db.user=<username>
db.password=<pwd>
registration.url=http://<mariadb-ip-here>:31415/sync/corp-000
sync.url=http://<local-machine-public-internet-ip-here>:31415/sync/sovetskaya-001
group.id=sovetskaya
external.id=001
job.routing.period.time.ms=5000
job.push.period.time.ms=10000
job.pull.period.time.ms=10000
initial.load.create.first=true
auto.reload.reverse=true
라우터/노드/트리거 설정(데이터베이스 콘솔에서 이를 실행하여 SymmetricDS가 설정 동기화에 사용하는 sym_* 테이블에 필요한 설정 값을 추가합니다)
insert into sym_node_group (node_group_id, description) values ('corp', 'Target MariaDB server');
insert into sym_node_group (node_group_id, description) values ('sovetskaya', 'Sovetskaya MS SQL Server source');
insert into sym_node_group_link (source_node_group_id, target_node_group_id, data_event_action) values ('sovetskaya', 'corp', 'P');
insert into sym_node_group_link (source_node_group_id, target_node_group_id, data_event_action) values ('corp', 'sovetskaya', 'W');
insert into sym_router
(router_id,source_node_group_id,target_node_group_id,router_type,create_time,last_update_time)
values('sovetskaya_2_corp', 'sovetskaya', 'corp', 'default',current_timestamp, current_timestamp);
insert into sym_channel (channel_id, processing_order, max_batch_size, enabled, description) values ('main_channel', 1, 100000, 1, 'channel for replication');
insert into sym_trigger (trigger_id,source_table_name,channel_id,last_update_time,create_time) values ('item','item','main_channel',current_timestamp,current_timestamp);
insert into sym_trigger_router (trigger_id,router_id,initial_load_order,last_update_time,create_time) values ('item','sovetskaya_2_corp', 100, current_timestamp, current_timestamp);
INSERT INTO sym_parameter (external_id,node_group_id,param_key,param_value) VALUES ('ALL','sovetskaya','auto.reload.reverse','true');
create table item (name varchar(50), count int);
그런 다음 corp-000에서 bin/sym을 서버로 실행합니다.
bin/sym -e corp-000 -S
및 Sovetskaya 로컬 PC에서 클라이언트:
bin\sym -e sovetskaya -C
언급URL : https://stackoverflow.com/questions/64126836/one-way-symmetricds-sync-between-local-machine-and-cloud-instance
'sourcecode' 카테고리의 다른 글
정적 메서드 내에서 비 정적 내부 클래스를 인스턴스화하려면 어떻게 해야 합니까? (0) | 2022.09.05 |
---|---|
java를 사용하여 mariadb에 접속하려면 어떻게 해야 하나요? (0) | 2022.09.05 |
SQL 테이블 정의가 잘못되었습니다. 자동 열은 하나만 있을 수 있으며 키로 정의해야 합니다. (0) | 2022.09.05 |
Ruby gem mysql2 설치 실패 (0) | 2022.09.05 |
MacOSX homebrew mysql 루트 패스워드 (0) | 2022.09.04 |