Я использую бесплатную версию symmetrds для репликации моей базы данных firebird. Когда я демонстрировал создание новой (пустой) БД, все работало нормально. Но когда я настраиваю свою существующую БД (имею данные), произошла ошибка.
Я использую Firebird-2.5.5.26952_0 32bit и симметричный сервер-3.9.5, ОС Windows Server 2008 Enterprise.
Я искал целый день, но ничего не нашел, чтобы решить эту проблему. Кто-нибудь, пожалуйста, помогите. Спасибо за ваше время.
ОБНОВЛЕНИЕ: при начальной загрузке Symmetric выполняет оператор для объявления UDF в базе данных firebird:
declare external function sym_hex blob
returns cstring(32660) free_it
entry_point 'sym_hex' module_name 'sym_udf
Это вызвало ошибку, потому что моя существующая кодировка БД - UNICODE_FSS
, максимальная длина CSTRING - 10922. Когда я работал, обновляя кодировку до NONE
, все работало нормально. Но это не безопасное решение. Все еще работаю, чтобы найти лучше.
Еще одна вещь, кто-нибудь знает другие инструменты с открытым исходным кодом для репликации базы данных Firebird, я пробовал многие в здесь и только симметричная работа.
SYMMETRIC_DS_HOME\conf\log4j.xml
вSYMMETRIC_DS_HOME\conf\log4j.xml_backup
, а файлSYMMETRIC_DS_HOME\conf\log4j-debug.xml
вSYMMETRIC_DS_HOME\conf\log4j.xml
. Перезапустите двигатель, чтобы получить журналы с ошибкой sql. Журнал находится в папке SYMMETRIC_DS_HOME\log. - person Boris Pavlović   schedule 29.03.2018org.jumpmind.symmetric.io
, которые распечатывают операторы sql - person Boris Pavlović   schedule 29.03.2018strlen
вc:\Program Files\Firebird\Firebird_2_1\UDF\ib_udf2.sql
(но не вib_udf.sql
). Итак, @Jacky, введите эту команду как для старой, так и для новой базы данных:SELECT RDB$CHARACTER_SET_NAME FROM RDB$DATABASE
- person Arioch 'The   schedule 29.03.2018WIN1250
илиWIN1252
), а новая база данных - некоторый вариант Unicode... Что может привести к тому, что все старые текстовые UDF потенциально будут возвращать неверные данные (несоответствие новой кодировке БД) , если вы не исправите все их объявления UDF, чтобы явно указать каждый текстовый параметр, ввод или вывод, с кодировкой, как в старой базе данных - person Arioch 'The   schedule 29.03.2018SELECT RDB$CHARACTER_SET_NAME FROM MON$ATTACHMENTS, RDB$CHARACTER_SETS WHERE MON$CHARACTER_SET_ID = RDB$CHARACTER_SET_ID
- person Arioch 'The   schedule 30.03.2018