Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Cинхронная репликация на Firebird 4.0 Beta1 / 25 сообщений из 32, страница 1 из 2
27.03.2019, 13:18
    #39792260
dedRasta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cинхронная репликация на Firebird 4.0 Beta1
Пытаюсь настроить синхронную репликацию для 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
27.03.2019, 14:23
    #39792343
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cинхронная репликация на Firebird 4.0 Beta1
Плагин репликации не принимает псевдонимы - только абсолютные имена файлов.
Соответственно, сейчас реплика не может работать с "DatabaseAccess = None".
...
Рейтинг: 0 / 0
27.03.2019, 14:24
    #39792344
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cинхронная репликация на Firebird 4.0 Beta1
dedRasta,

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

Да, пустой.
...
Рейтинг: 0 / 0
27.03.2019, 16:41
    #39792465
dedRasta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cинхронная репликация на Firebird 4.0 Beta1
Нашел ошибку - в пути к БД мастера (копипаст окаянный). После этого на мастере в 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
27.03.2019, 17:49
    #39792499
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cинхронная репликация на Firebird 4.0 Beta1
dimitrВо-первых, для синхронной репликации настройки в replication.conf на стороне реплики вообще не нужны, они тупо игнорируются. Во-вторых, коннект по алиасу должен отлично работать. В конфиге база ищется после преобразования алиаса в полное имя.В вырожденном случая мастера и ведомого на одном хосте оно работает "как-то не так".
Но я ещё посмотрю повнимательнее.
...
Рейтинг: 0 / 0
27.03.2019, 19:21
    #39792547
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cинхронная репликация на Firebird 4.0 Beta1
dedRastaТ.е. триггеры в реплике во время репликации в read_only реплику срабатывают тоже в read-only transaction.
Завтра их уберу и буду дальше смотреть.
триггера уровня таблицы в реплике вообще не срабатывают. Триггера уровня БД (ON CONNECT и т.п.) срабатывают, но не имеют права писать в [свою] базу. При желании в них можно это условно "загасить" через проверку RDB$GET_CONTEXT('SYSTEM', 'READ_ONLY').
...
Рейтинг: 0 / 0
28.03.2019, 15:53
    #39793048
dedRasta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cинхронная репликация на Firebird 4.0 Beta1
Репликация вроде пошла, но полезли ошибки.
Создал пустую БД. При попытке выполнить на мастере любой 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
28.03.2019, 16:26
    #39793105
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cинхронная репликация на Firebird 4.0 Beta1
dedRasta,

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

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

упс, в окончательной версии эту настройку выкинули
...
Рейтинг: 0 / 0
28.03.2019, 20:45
    #39793323
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cинхронная репликация на Firebird 4.0 Beta1
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
28.03.2019, 21:03
    #39793332
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cинхронная репликация на Firebird 4.0 Beta1
Симонов Денисв окончательной версии эту настройку выкинули
ее и не было никогда

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

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

ошибка будет вменяемая в этом случае
...
Рейтинг: 0 / 0
29.03.2019, 11:00
    #39793462
dedRasta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cинхронная репликация на Firebird 4.0 Beta1
Сегодня попробовал без 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
29.03.2019, 11:16
    #39793476
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cинхронная репликация на Firebird 4.0 Beta1
dedRasta,

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

сейчас буду у себя проверять
...
Рейтинг: 0 / 0
29.03.2019, 14:35
    #39793616
dedRasta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cинхронная репликация на Firebird 4.0 Beta1
Симонов Денис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
29.03.2019, 15:19
    #39793682
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cинхронная репликация на Firebird 4.0 Beta1
dedRastaС Win64-Win64 разрядностью не могу проверить - в ближайшей окрестности только у меня машинка Win64.
с самой на себя проверь, через localhost. Один и тот же инстанс ФБ, разные базы.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Cинхронная репликация на Firebird 4.0 Beta1 / 25 сообщений из 32, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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