Skip to content

Часто задаваемые вопросы о конфигурации внешней базы данных

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.MySQL5Dialect

5. Сбой миграции 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