powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Cинхронная репликация на Firebird 4.0 Beta1
25 сообщений из 32, страница 1 из 2
Cинхронная репликация на Firebird 4.0 Beta1
    #39792260
dedRasta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь настроить синхронную репликацию для Firebird 4.0 Beta1

1) Останавливаю Firebird на мастере (Win64) и реплике (Win32).

2) редактирую replication.conf на стороне мастера:

Код: plsql
1.
2.
3.
4.
5.
database = e:\baza4\master.fdb
 {
	# (for synchronous replication)
	sync_replica = SYSDBA:masterkey@repserver/3054:REP
 }



replication.conf со стороны реплики оставляю по умолчанию, кроме строки

verbose_logging = true

3) Копирую master.fdb на сервер реплики, переименовываю в replica.fdb
и выполняю команду

gfix -replica read_only e:\baza4\REPLICA.fdb -user SYSDBA -pass masterkey

4) Стартую Firebird на реплике

5) Стартую Firebird на мастере

6) Вношу изменения на мастере, завершаю транзакцию. На реплике изменений нет, в replication.log пусто.
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39792343
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Плагин репликации не принимает псевдонимы - только абсолютные имена файлов.
Соответственно, сейчас реплика не может работать с "DatabaseAccess = None".
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39792344
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dedRasta,

попробуй в sync_replica неправильную строку коннекта ввести. Если database = e:\baza4\master.fdb правильно указан ругань должна начаться при подтверждении транзакции на мастере
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39792354
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovПлагин репликации не принимает псевдонимы - только абсолютные имена файлов
это касается только конфига. У него там полное имя (e:\baza4\master.fdb).
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39792357
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Дениспопробуй в sync_replica неправильную строку коннекта ввести. Если database = e:\baza4\master.fdb правильно указан ругань должна начаться при подтверждении транзакции на мастере
ругаться (в лог) будет сразу при коннекте к мастеру
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39792359
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrэто касается только конфига. У него там полное имя (e:\baza4\master.fdb).А в строке подключения - псевдоним.
Который ничему не соответствует в replication.conf реплики.
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39792362
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovА в строке подключения - псевдоним.
Который ничему не соответствует в replication.conf реплики.
Во-первых, для синхронной репликации настройки в replication.conf на стороне реплики вообще не нужны, они тупо игнорируются. Во-вторых, коннект по алиасу должен отлично работать. В конфиге база ищется после преобразования алиаса в полное имя.
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39792363
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dedRastaНа реплике изменений нет, в replication.log пусто
replication.log на стороне мастера тоже пустой?
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39792426
dedRasta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dimitrdedRastaНа реплике изменений нет, в replication.log пусто
replication.log на стороне мастера тоже пустой?

Да, пустой.
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39792465
dedRasta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел ошибку - в пути к БД мастера (копипаст окаянный). После этого на мастере в replication.log полезли ошибки, но это уже другая песня.
Когда разбирался с Pooling of External connections, сделал запись из мастера в другую БД по триггеру. вот и получилось:
MASTER (origin) Wed Mar 27 16:07:59 2019
Database: d:\Baza4\MASTER.FDB
ERROR: Execute statement error at isc_dsql_execute2 :
335544361 : attempted update during read-only transaction
335544842 : At procedure 'SP_WRITE_CHG_CONN' line: 20, col: 1


Т.е. триггеры в реплике во время репликации в read_only реплику срабатывают тоже в read-only transaction.
Завтра их уберу и буду дальше смотреть.
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39792499
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrВо-первых, для синхронной репликации настройки в replication.conf на стороне реплики вообще не нужны, они тупо игнорируются. Во-вторых, коннект по алиасу должен отлично работать. В конфиге база ищется после преобразования алиаса в полное имя.В вырожденном случая мастера и ведомого на одном хосте оно работает "как-то не так".
Но я ещё посмотрю повнимательнее.
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39792547
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dedRastaТ.е. триггеры в реплике во время репликации в read_only реплику срабатывают тоже в read-only transaction.
Завтра их уберу и буду дальше смотреть.
триггера уровня таблицы в реплике вообще не срабатывают. Триггера уровня БД (ON CONNECT и т.п.) срабатывают, но не имеют права писать в [свою] базу. При желании в них можно это условно "загасить" через проверку RDB$GET_CONTEXT('SYSTEM', 'READ_ONLY').
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39793048
dedRasta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Репликация вроде пошла, но полезли ошибки.
Создал пустую БД. При попытке выполнить на мастере любой DML запрос
Код: plsql
1.
CREATE GENERATOR GEN_BRANCH_ID;


или
Код: plsql
1.
2.
3.
4.
5.
CREATE TABLE BRANCH (
    BRANCH_ID    INTEGER NOT NULL,
    BRANCH_NAME  VARCHAR(30) NOT NULL,
    COMMENT      VARCHAR(50)
);


получаю MASTER Thu Mar 28 15:09:55 2019
Database: d:\Baza4\test.FDB
Replication is stopped due to critical error(s)
Replication error
Dynamic SQL Error
SQL error code = -104
Unexpected end of command - line 1, column 1

Когда использую БД с с уже созданной пустой таблицей и пытаюсь залить в нее данные:
Код: plsql
1.
INSERT INTO BRANCH (BRANCH_ID, BRANCH_NAME, COMMENT) VALUES (1, 'НПК', 'научно-производственный комплекс');

несколько раз это проходит, но потом неизменно получаю MASTER Thu Mar 28 15:30:33 2019
Database: d:\Baza4\test.FDB
Replication is stopped due to critical error(s)
Replication error
Transaction 70 already exists

Машинки стоят на соседних столах, соединены через хаб.
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39793105
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dedRasta,

а ты репликацию DDL включил?
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39793113
dedRasta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов ДенисdedRasta,

а ты репликацию DDL включил?А как? В replication.conf и RN ничего про это не нашел.
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39793119
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dedRasta,

упс, в окончательной версии эту настройку выкинули
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39793323
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dedRasta,

вот что нашёл

RN Warning

Read-only connections have the potential to conflict with replication if DDL statements that are performed
on the master database are of the kind that requires an exclusive lock on metadata.
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39793332
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисв окончательной версии эту настройку выкинули
ее и не было никогда

Симонов Денисвот что нашёл
это про чтение из реплики в момент вливания в нее DDL
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39793339
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

ну я подозреваю что она у него в каком-нибудь IBE для просмотра открыта
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39793342
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

ошибка будет вменяемая в этом случае
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39793462
dedRasta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сегодня попробовал без IBe (т.е. вообще). Триггер и генератор из таблицы убрал, реплику сделал read_write.
Получается все то же самое:
gfix -replica read_write e:\baza4\test_REP.fdb -user SYSDBA -pass masterkey


isql.exe -ch WIN1251 -u SYSDBA -pas masterkey test

Database: test, User: SYSDBA
SQL> CREATE TABLE BRANCH (
CON> BRANCH_ID INTEGER NOT NULL,
CON> BRANCH_NAME VARCHAR(30) NOT NULL,
CON> COMMENT VARCHAR(50)
CON> );
SQL> commit;
SQL> show tables;
BRANCH

SQL> quit;

d:\Firebird-4.0.0.1433-0_x64>

MASTER

firebird.log:

MASTER Fri Mar 29 10:00:55 2019
Database: d:\Baza4\test.FDB
Replication is stopped due to critical error(s)
Replication error
Dynamic SQL Error
SQL error code = -104
Unexpected end of command - line 1, column 1

replication.log:

MASTER (origin) Fri Mar 29 10:00:55 2019
Database: d:\Baza4\test.FDB
ERROR: Dynamic SQL Error
SQL error code = -104
Unexpected end of command - line 1, column 1

REP

REP (replica) Fri Mar 29 10:00:54 2019
Database: e:\Baza4\test_REP.FDB
ERROR: Dynamic SQL Error
SQL error code = -104
Unexpected end of command - line 1, column 1



Database: localhost/3050:test, User: SYSDBA
SQL> show tables;
BRANCH

SQL> select * from branch;
SQL> INSERT INTO BRANCH (BRANCH_ID, BRANCH_NAME, COMMENT)
CON> VALUES (1, 'НПК', 'научно-производственный комплекс');
SQL> commit;
SQL>

firebird.log
MASTER Fri Mar 29 10:43:08 2019
Database: d:\Baza4\test.FDB
Replication is stopped due to critical error(s)
Replication error
Transaction 9 already exists

replication.log
WSSP670 (origin) Fri Mar 29 10:43:08 2019
Database: d:\Baza4\test.FDB
ERROR: Transaction 9 already exists

replication.log
REP (replica) Fri Mar 29 10:43:08 2019
Database: e:\Baza4\test_REP.FDB
ERROR: Transaction 9 already exists
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39793476
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dedRasta,

ты CREATE TABLE в embedded что ли делаешь? Это намеренно?
Можешь проверить x64 и x64? Может там что-то несовместимо получилось
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39793504
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dedRasta,

сейчас буду у себя проверять
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39793616
dedRasta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов ДенисdedRasta,
ты CREATE TABLE в embedded что ли делаешь? Это намеренно?
Можешь проверить x64 и x64? Может там что-то несовместимо получилось
C TCP/IP то же самое:
isql.exe -ch WIN1251 -u SYSDBA -pas masterkey MASTER/3050:test

Database: MASTER/3050:test, User: SYSDBA
SQL> show tables;
There are no tables in this database
SQL> CREATE TABLE BRANCH (
CON> BRANCH_ID INTEGER NOT NULL,
CON> BRANCH_NAME VARCHAR(30) NOT NULL,
CON> COMMENT VARCHAR(50)
CON> );
SQL> commit;
SQL>

MASTER:
firebird.log
MASTER Fri Mar 29 14:07:42 2019
Database: d:\Baza4\test.FDB
Replication is stopped due to critical error(s)
Replication error
Dynamic SQL Error
SQL error code = -104
Unexpected end of command - line 1, column 1

replication.log
MASTER (origin) Fri Mar 29 14:07:42 2019
Database: d:\Baza4\test.FDB
ERROR: Dynamic SQL Error
SQL error code = -104
Unexpected end of command - line 1, column 1

REP - replication.log
REP5 (replica) Fri Mar 29 14:07:42 2019
Database: e:\Baza4\test_REP.FDB
ERROR: Dynamic SQL Error
SQL error code = -104
Unexpected end of command - line 1, column 1
С Win64-Win64 разрядностью не могу проверить - в ближайшей окрестности только у меня машинка Win64.
...
Рейтинг: 0 / 0
Cинхронная репликация на Firebird 4.0 Beta1
    #39793682
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dedRastaС Win64-Win64 разрядностью не могу проверить - в ближайшей окрестности только у меня машинка Win64.
с самой на себя проверь, через localhost. Один и тот же инстанс ФБ, разные базы.
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Cинхронная репликация на Firebird 4.0 Beta1
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]