Конфигурация SymmetricDS active-active PostgreSQL

Я пытаюсь настроить базы данных postgreSql типа «актив-актив» с помощью SymmetricDS.

В исходном мастере я использовал этот /engines/postgresql.poperties:

sync.url=http\://10.110.88.25\:31415/sync/sales  
group.id=primary  
db.init.sql=  
registration.url=  
db.driver=org.postgresql.Driver  
db.user=rep  
db.password=foo  
db.url=jdbc\:postgresql\://10.110.88.25:5433/sales?protocolVersion\=3&stringtype  \=unspecified&socketTimeout\=300&tcpKeepAlive\=true  
engine.name=sales  
external.id=1  
db.validation.query=select 1  
cluster.lock.enabled=false

Я начал это с помощью:

./sym_service start  

И заполнил таблицы sym_x. Я мог видеть в symmetric.log, что БД подключена, и триггеры были созданы на моих двух повторяющихся таблицах.
На другом моем сервере я создал это /engines/postgresql.poperties:

sync.url=http\://10.110.89.86\:31415/sync/sales2   
group.id=primary  
db.init.sql=  
registration.url= http\://10.110.88.25\:31415/sync/sales  
db.driver=org.postgresql.Driver  
db.user=rep  
db.password=foo  
db.url=jdbc\:postgresql\://10.110.89.86:5433/sales2?protocolVersion\=3&stringtype  \=unspecified&socketTimeout\=300&tcpKeepAlive\=true  
engine.name=sales2  
external.id=sales2  
db.validation.query=select 1  
cluster.lock.enabled=false  

В лог-файле вижу следующее:

INFO [sales2] [AbstractSymmetricEngine] [symmetric-engine-startup-1] SymmetricDS Node STARTED:  
         nodeId=sales2  
         groupId=primary  
         type=server  
         subType=null  
         name=sales2  
         softwareVersion=3.11.8  
         databaseName=PostgreSQL  
         databaseVersion=11.7  
         driverName=PostgreSQL JDBC Driver  
         driverVersion=42.2.8  
         uptime=0 sec.  
2020-04-26 17:19:46,150 INFO [sales2] [RouterJob] [sales2-job-1] Did not run the 'Routing' job because the engine is not reg$   
2020-04-26 17:19:46,187 INFO [sales2] [PushJob] [sales2-job-2] Did not run the 'Push' job because the engine is not register$  
2020-04-26 17:19:46,208 INFO [sales2] [RegistrationService] [sales2-job-3] This node is unregistered.  It will attempt to re$  
2020-04-26 17:19:46,217 INFO [sales2] [MonitorJob] [sales2-job-6] Did not run the 'Monitor' job because the engine is not re$  
2020-04-26 17:19:46,218 INFO [sales2] [InitialLoadJob] [sales2-job-5] Did not run the 'Initial Load Queue' job because the e$  
2020-04-26 17:19:46,245 INFO [sales2] [DataLoaderService] [sales2-job-3] Using registration URL of http://10.110.88.25:31415$  
2020-04-26 17:19:46,250 INFO [sales2] [InitialLoadExtractorJob] [sales2-job-7] Did not run the 'Initial Load Extract' job be$  
2020-04-26 17:19:46,303 WARN [sales2] [RegistrationService] [sales2-job-3] Waiting for registration to be accepted by the se$  

Я понял, что должен использовать symadmin на исходном сервере следующим образом:

./symadmin open-registration --engine sales2 primary sales2  

Но в журнале исходного сервера я вижу это:

2020-04-26 17:36:58,585 WARN [sales] [RegistrationUriHandler] [qtp1752182275-891] primary:sales2:? was not allowed to register  

Я делаю что-то неправильно? что мне не хватает?

1
Tamar 26 Апр 2020 в 17:58

1 ответ

Похоже, engine.name вашего исходного узла - это sales. Я думаю, что ваша команда должна быть:

./symadmin open-registration --engine sales primary sales2  
2
chenson42 26 Апр 2020 в 23:32
1
Спасибо! это решило это. Я думал, что здесь нужно указать движок второго сервера, но, видимо, ошибся.
 – 
Tamar
27 Апр 2020 в 10:50