Оформление
Часто задаваемые вопросы о конфигурации внешней базы данных
1. Обзор
В этой статье перечислены ошибки и решения, которые могут возникнуть при настройке внешней базы данных.
2. Обновление JAR после миграции базы данных, невозможность открыть платформу
Описание проблемы:
Пользователь настроил внешнюю базу данных, но после обновления JAR платформа не открывается и выдается ошибка: идентификатор TASKNAMECALCCULATEONCE и идентификатор USERALIAS недопустимы.
Анализ причин:
Пользователь, выполняющий миграцию, не имеет привилегий alter и не может генерировать поля.
Решение:
Предоставьте привилегии alter перенесенным пользователям.
3. Пользователю root не удалось войти в систему ClientConnectionId:XXX
Проблемные явления:
При настройке внешней базы данных возникают ошибки: пользователю root не удалось войти в систему, ClientConnectionId:e484a26e-8f2b-4e28-b9e4-32798ec032b7, внешние данные не могут быть подключены к конфигурации и другие ошибки.
Анализ причин:
Ошибка связана с неправильной конфигурацией внешней базы данных FineBI, вам необходимо удалить информацию о конфигурации внешней базы данных FineBI и заново настроить внешнюю базу данных.
Решение:
Удалите файл db.properties с суффиксом db.properties в папке FineBI/webapps/webroot/WEB-INF/config, чтобы заново настроить внешнюю базу данных FineBI.
4. Невозможность войти в платформу с пакетом JAR после миграции базы данных
Описание проблемы:
Проект отчета был перенесен во внешнюю базу данных, после обновления JAR он был перенесен в другую внешнюю базу данных, и после резервного копирования JAR обнаружилось, что платформа не может войти в систему, и она показывает, что соединение с базой данных нарушено, как показано на рисунке ниже:

Анализ причин:
JAR отступает, но файл db.properties, в котором хранится конфигурация внешней базы данных, не следует за его изменениями.
Решение:
Проверьте файл db.properties по пути %FineBI_HOME%/webapps/webroot/WEB-INF/config и измените соответствующую конфигурацию вручную.
Пример: проект перешел на базу данных MySQL8, обновил JAR, перешел на базу MySQL5.7.28, вернулся к проекту, запуск не удался, на переднем плане появляется сообщение о невозможности подключения к базе данных, измените 8 на 5 в диалекте в свойствах db.
Предварительная модификация:
hibernate.dialect=com.fr.third.org.hibernate.dialect.MySQL8DialectМодифицированный:
hibernate.dialect=com.fr.third.org.hibernate.dialect.MySQL5Dialect5. Сбой миграции FineDB в кластерной среде
Описание проблемы:
Чтобы перенести базы данных FineDB в кластерную среду, используйте функцию платформы для миграции. Когда появится экран, показанный ниже, нажмите кнопку Login, чтобы обновить этот экран несколько раз.

Анализ причин:
Ошибка в методе операции миграции в кластерной среде.
Решение:
Миграция кластера требует отключения остальных узлов и запуска только одного узла для миграции.
После успешной миграции скопируйте файл db.properties на узлы, которые не были перенесены, а затем выключите кластер на всех узлах и запустите его снова.
6. Сбой миграции FineDB в среде CAS с одной точкой
Проблемные явления:
1) При переносе внешней базы данных она постоянно застревает на этапе импорта данных.
2) В фоновом режиме произошла ошибка: база данных заблокирована.
3) В проекте был выполнен CAS single point, и в отчете об ошибках присутствуют журналы, связанные с CAS.
Анализ причин:
Другой пользователь получил доступ к платформе во время миграции, в результате чего некоторые таблицы были заблокированы и не могли быть перенесены.
Решение:
Сначала удалите единую точку CAS, чтобы исключить доступ пользователей к платформе.
После того как внешняя база данных успешно перенесена, добавляется единая точка CAS.
7. сбои в миграции из-за несоблюдения сроков планирования задач
Проблемные явления:
Миграция внешней базы данных завершилась с ошибкой:
Свойству [class com.fr.scheduler.quartz.entity.QuartzFiredTriggers.isNonconcurrent] примитивного типа setter of com присвоено значение Null .fr.scheduler.quartz.entity.QuartzFiredTriggers.isNonconcurrent
Анализ причин:
Во время выполнения планирования по времени в таблицу QRTZ_FIRED_TRIGGERS в FineDB временно записываются данные о планировании по времени, которые автоматически удаляются после успешного выполнения задачи.
Когда задача планирования по времени находится на полпути выполнения и данные уже сгенерированы, выполняется операция миграции внешней базы данных и задача планирования по времени паузы терпит неудачу, что приводит к сбою миграции.
Решение:
Очистите соответствующие таблицы в соответствии с сообщением об ошибке, например, очистите данные таблицы QRTZ_FIRED_TRIGGERS.
8. Таблица 'finedb.QRTZ_PAUSED_TRIGGER_GRPS' не существует
Проблемные явления:
При настройке базы данных MySQL, импорте данных происходит сбой, и внешняя часть страницы сообщает об ошибке: не удалось выполнить оператор;
Затем проверьте %FineBI%/logs/fanruan. log, ошибка: Таблица 'finedb.QRTZ_PAUSED_TRIGGER_GRPS' не существует.
Шаг первый - истощение:
Кодировка базы данных MySQL неверна, набор символов должен быть utf8, а правило сортировки utf8_bin.
Измените кодировку базы данных, используйте кодировку utf8, не поддерживайте кодировку utf8mb4
Шаг второй - истощение:
Движок данных базы данных MySQL неверен и должен быть InnoDB
1) Добавьте предложение default-storage-engine=INNODB под [mysqld] в файл конфигурации базы данных MySQL my.cnf и сохраните его;
2) Перезапустите сервер MySQL: mysqladmin -u root -p shutdown или service mysqld restart.
3) Войдите в базу данных MySQL и введите команду show engines в приглашении mysql>. Если появится InnoDB |DEFAULT, это означает, что установка InnoDB в качестве движка по умолчанию прошла успешно.
9. Неверное строковое значение: 'xxx' для столбца 'id' в строке 1
Описание проблемы:
При настройке внешней базы данных MySQL сообщила об ошибке, как показано в журнале ошибок ниже:
16:59:48 Thread-45 ERROR [standard] could not execute batch com.fr.third.org.hibernate.exception.GenericJDBCException: could not выполнить пакет
..... .Причина: java.sql.SQLException:Incorrect string value: 'xE6xA8xA1xE6x9DxBF... ' для столбца 'id' в строке 1
Анализ причин:
Убедитесь, что он авторизован
Неверное значение строки: 'xE6xA8xA1xE6x9DxBF... ' для столбца "id" в строке 1
Это кодирование базы данных.
Решение:
Просмотрите заявление клиента для создания базы данных FineDB: create database finedb
Обнаружив, что никаких ограничений не добавлено, измените утверждение на: create database finedb DEFAULT CHARSET utf8 COLLATE utf8_bin
Импорт прошел успешно.
10. MySQL Таблица 'fine_conf_entity' заполнена
Проблемные явления:
Настройка базы данных MySQL и получение ошибок при импорте данных: java.lang.Exception: migrate table com.fr.config.entity.Entity failed
Проверяем %FineBI%/logs/fanruan.log, он сообщает об ошибке: Таблица 'fine_conf_entity' заполнена, как показано ниже:

Решение:
Перейдите в конфигурационный файл MySQL /etc/my.cnf и добавьте/измените две строки в разделе [mysqld]:
tmp_table_size = 256M max_heap_table_size = 256M
По умолчанию в системе установлено значение 16M, после изменения перезапустите MySQL.
11. соединение с базой данных не удалось wait millis 10000, active0, maxActive 50
Проблемные явления:
При настройке баз данных со "схемой", таких как SQL Server и Oracle, возникает ошибка: database connection failed, wait millis 10000, active0, maxActive 50.
Как показано на рисунке ниже:

Исчерпывающие размышления:
1) Убедитесь, что имя базы данных, адрес хоста, имя пользователя и пароль порта указаны правильно.
2) Убедитесь, что порт этого сервера открыт для других компьютеров, и вы можете проверить подключение к базе данных в другом месте.
3) Измените схему так, чтобы она совпадала с именем пользователя базы данных, как показано ниже:

12. ORA-01654: индекс не может быть расширен на 128 (в табличном пространстве xxx)
Проблемные явления:
Настройка внешней базы данных Oracle Ошибка java.lang.Exception: migrate table com.fr.config.entity.Entity failed
Ошибка журнала: Вызвано: java.sql.BatchUpdateException: ORA-01654: Index BI_REPORT_RO.SYS_C0011297 could not be passed 128 (in tablespace BI_REPORT_RO) Extension
Таблица данных была создана успешно, но импортировать данные не удалось.
Анализ причин:
Недостаточно табличного пространства базы данных.
Решение:
Размер файла данных табличного пространства по умолчанию зависит от размера блоков данных, и максимальное значение по умолчанию составляет 32 ГБ.
Пользователь может добавить файл данных табличного пространства с помощью следующего SQL:
alter tablespace USERS add datafile 'D:appAdministratororadataorclUSERS02.DBF' size 10240M.
13. Oracle19c Data Migration Stuck
Проблемные явления:
База данных Oracle19c, подключение к данным успешно, но при настройке внешней базы данных она продолжает застревать в состоянии подключения.
Анализ причин:
В окружении пользователя отключены запросы PUT и DELETE, из-за чего некоторые запросы от платформы выполняются некорректно.
Решение:
Пользователи могут преобразовать запросы PUT и DELETE в запросы POST, установив плагин "Convert PUT and DELETE Requests to POST".
Более подробную информацию вы можете найти в разделе: PUT, DELETE запрос к плагину POST