Поделиться через


Известные ошибки в службе миграции для База данных Azure для PostgreSQL

В этой статье содержатся номера сообщений об ошибках и их описание для проверки предварительной подготовки.

В следующих таблицах представлен полный список кодов ошибок для функции службы миграции в База данных Azure для PostgreSQL. Эти коды ошибок помогают устранять и устранять проблемы во время процесса миграции. Каждый код ошибки содержит сообщение об ошибке и другие сведения, которые предоставляют дополнительные контексты и рекомендации по устранению проблемы.

Время ожидания подключения

Симптомы

Сбои миграции часто проявляются с помощью сообщений об ошибках, указывающих на проблемы с подключением. Эти проблемы могут возникнуть во время процесса передачи данных. При возникновении таких сбоев они приводят к следующим сообщениям об ошибках:

  • сервер неожиданно закрыл подключение
  • Ошибка SSL SYSCALL: обнаружен конец файла
  • непредвиденный EOF при подключении клиента
  • не удалось получить данные от клиента: сброс подключения по одноранговой сети

Причина

Основной причиной этих симптомов является connection timeout. Обычно это происходит, когда сервер или клиент ожидает получения данных в течение определенного интервала времени, но данные не отправляются или не получаются, что приводит к истечении времени ожидания подключения. Конкретные причины времени ожидания подключения могут отличаться, но распространенные факторы включают перегрузку сети, неправильно настроенные параметры сети или слишком агрессивные параметры времени ожидания.

В контексте службы миграции в База данных Azure для PostgreSQL время ожидания подключения между источником и службой миграции или между службой миграции и целевым объектом может прервать процесс передачи данных, что приводит к описанным выше симптомам.

Разрешение

  • Чтобы устранить проблемы с временем ожидания подключения, настройте параметры TCP на исходных и целевых серверах следующим образом:

    • tcp_keepalives_idle=10
    • tcp_keepalives_interval=10
    • tcp_keepalives_count=60

Эти параметры помогают поддерживать подключение, отправляя пробы хранения, чтобы предотвратить истечение времени ожидания из-за неактивности. Важно, чтобы изменение этих параметров TCP не требовало перезапуска исходных или целевых экземпляров PostgreSQL. Изменения могут применяться динамически, что позволяет обеспечить простое продолжение службы без прерывания операций базы данных.

Завершение подключения из-за времени ожидания простоя в транзакции

Симптомы

  • Служба миграции сталкивается с сообщением о завершении подключения.
  • Журналы отображают ошибку: terminating connection due to idle-in-transaction timeout

Причина

Эта ошибка возникает, когда подключение к базе данных остается неактивным в транзакции дольше, чем значение, указанное в параметре idle_in_transaction_timeout . PostgreSQL автоматически завершает такие подключения, чтобы избежать проблем с блокировкой ресурсов.

Разрешение

  • idle_in_transaction_timeout Задайте параметру, чтобы 0 отключить время ожидания во время миграции.
  • Пример команды для применения этого параметра:
ALTER SYSTEM SET idle_in_transaction_timeout = 0;
  • Убедитесь, что этот параметр сбрасывается до исходного значения после миграции для поддержания производительности базы данных и предотвращения длительных бездействий.

Исчерпание общей памяти

Симптомы

Процесс миграции неожиданно останавливается. Журналы отображают ошибку: out of shared memory

Причина

Эта ошибка означает, что PostgreSQL исчерпала общую память, выделенную для блокировок. Обычно происходит, когда процесс миграции включает множество блокировок за пределами текущего параметра max_locks_per_transaction.

Разрешение

  • Увеличьте значение max_locks_per_transaction параметра для размещения других блокировок, необходимых во время процесса миграции.
  • Пример команды для изменения этого параметра: ALTER SYSTEM SET max_locks_per_transaction = <<>>;
  • Убедитесь, что max_locks_per_transaction * max_connections > Number of tables + Number of indexes
  • Если проблема сохранится, попробуйте увеличить параметр shared_buffers, чтобы обеспечить доступ к достаточной общей памяти для управления блокировкой.

Коды ошибок миграции

Код ошибки Сообщение об ошибке Разрешение
603000 Сбой подключения. Не удалось подключиться к серверу {serverName} . Убедитесь, что исходный сервер доступен с целевого или сервера среды выполнения. Ознакомьтесь с руководством по сети для отладки проблем с подключением.
603001 Ошибка конфигурации SSL. Сервер {serverName} не поддерживает SSL. Проверьте параметры SSL. Задайте режим SSL, чтобы предпочесть и повторить миграцию. Ознакомьтесь с руководством по сети для отладки проблем с подключением.
603100 Не удалось пройти проверку подлинности. Неверный пароль для сервера {serverName} . Введите правильный пароль и повторите миграцию. Н/П
603101 База данных существует в целевом объекте. База данных {dbName} существует на целевом сервере. Убедитесь, что целевой сервер не имеет базы данных и повторите миграцию. Н/П
603102 Отсутствует исходная база данных. База данных {dbName} не существует на исходном сервере. Укажите допустимую базу данных и повторите миграцию. Н/П
603103 Отсутствует роль Microsoft Entra. Роль {roleNames} Microsoft Entra отсутствует на целевом сервере. Создайте роль Entra и повторите миграцию. Н/П
603104 Отсутствует роль репликации. У пользователя {0} нет роли репликации на сервере {1}. Предоставьте роль репликации перед повторным переносом. Используется ALTER ROLE <rolename> WITH REPLICATION; для предоставления требуемого разрешения.
603105 Ошибка параметров GUC. Недостаточно слотов репликации на исходном сервере для миграции. max_replication_slots Увеличьте параметр GUC до {0} или более поздней версии. Исходный сервер не имеет достаточных слотов репликации для выполнения миграции через Интернет. Используйте этот запрос SELECT * FROM pg_replication_slots WHERE active = false AND slot_type = 'logical'; , чтобы получить список неактивных слотов репликации и удалить их перед SELECT pg_drop_replication_slot('slot_name'); началом миграции. Кроме того, задайте для параметра {0} сервера "max_replication_slots" значение или более поздней версии. Убедитесь, что max_wal_senders параметр также изменен, чтобы он был больше или равен параметру max_replication_slots' parameter.
603106 Ошибка параметров GUC. Параметр max_wal_senders GUC имеет значение {0}. Убедитесь, что он соответствует или превышает значение max_replication_slots. Н/П
603107 Ошибка параметров GUC. Для параметра уровня WAL исходного сервера задано {0}значение . Задайте для уровня WAL параметра GUC значение "логический". Н/П
603108 Обязательный список разрешений расширений. {0} Расширения не удалось установить на целевом сервере, так как они не разрешены. Список разрешений расширений и повторная попытка миграции. Задайте список разрешений, выполнив действия, описанные в расширениях PostgreSQL.
603109 Ошибка конфигурации общих предзагрузок библиотек. Добавьте разрешенные {0} расширения в shared_preload_libraries на целевом сервере и повторите миграцию. Задайте общие библиотеки предварительной загрузки, выполнив действия, описанные в расширениях PostgreSQL. Для этого требуется перезапуск сервера.
603110 Недостаточно привилегий. Пользователь миграции не имеет необходимых разрешений для доступа к базе данных. Убедитесь, что пользователь миграции является владельцем исходных баз данных и имеет права на чтение и запись и повторите миграцию. Н/П
603111 Сбой очистки целевой базы данных. Не удается завершить активные подключения в целевой базе данных во время этапа предварительной подготовки. Предоставьте pg_signal_backend роль пользователю миграции и повторите миграцию. Добавьте роль pg_signal_backend для миграции пользователя с помощью команды GRANT pg_signal_backend в <migration_user>.
603112 Ошибка параметров GUC. Не удалось задать параметр GUC default_transaction_read_only отключен. Убедитесь, что доступ на запись пользователя правильно задан и повторите миграцию. Задайте для параметра "default_transaction_read_only" значение OFF на исходном сервере с помощью команды портал Azure или psql(например, ALTER SYSTEM SET default_transaction_read_only = off).
603113 Сбой переключение. Переключение невозможно инициировать для базы данных "{dbName}", так как миграция уже была с состоянием "Завершено", "Сбой" или "Отменено". Н/П
603114 Сбой переключение. Переключение невозможно инициировать для базы данных "{dbName}" для режима миграции в автономном режиме. Н/П
603115 Отсутствуют права пользователя. Пользователь миграции "{0}" не является членом azure_pg_admin роли. Добавьте необходимые привилегии на целевом сервере и повторите миграцию. Н/П
603116 Отсутствуют права пользователя. У пользователя миграции нет{0} прав на создание роли. Добавьте необходимые привилегии на целевом сервере и повторите миграцию. Запустите запрос ALTER ROLE <rolename> WITH CREATEROLE; на целевом сервере.
603117 Отсутствуют права пользователя. Пользователь миграции "{0}" не имеет необходимых привилегий для удаления базы данных "{dbName}" на целевом сервере. Удалите базу данных вручную с целевого сервера и повторите миграцию. Н/П
603400 Неподдерживаемая исходная версия. Миграция следующих версий {0} PostgreSQL не поддерживается. Необходимо использовать другой метод миграции.
603401 Несоответствие параметров сортировки. Параметры сортировки {0} в базе данных {1} отсутствуют на целевом сервере. Н/П
603402 Несоответствие параметров сортировки. Параметры сортировки {0} для таблицы {1} в столбце {2} отсутствуют на целевом сервере. Обратитесь в службу поддержки Майкрософт, чтобы добавить необходимые параметры сортировки.
603403 Несоответствие параметров сортировки. Исходная база данных содержит определяемые пользователем параметры сортировки. Удалите эти параметры сортировки и повторите миграцию. Н/П
603404 Обнаружены неподдерживаемые идентификаторы OID. Таблицы с идентификаторами WITH, обнаруженными в базе данных {0}. Они не поддерживаются в PostgreSQL версии 12 и более поздних версиях. Посетите заметки о выпуске PostgreSQL.
603405 Неподдерживаемые расширения. Служба миграции не поддерживает миграцию баз данных с {0} расширениями на целевом сервере. Н/П
603406 Неподдерживаемые расширения. Target PostgreSQL {0} поддерживает POSTGIS версии 3.2.3, которая несовместима с исходным кодом {1}. Рекомендуется обновить целевой сервер до версии 11. Посетите postGIS критические изменения.
603407 Ошибка схемы расширения. {0} Расширения, расположенные в системной схеме на исходном сервере, не поддерживаются на целевом сервере. Удалите и повторно создайте расширения в несистемной схеме, а затем повторите миграцию. Посетите расширения PostgreSQL.
603408 Неподдерживаемые расширения. Целевой сервер версии 16 не поддерживает {0} расширения. Переход на версию 15 или более поздней, а затем обновление после поддержки расширений. Н/П
603409 Определяемые пользователем приведения присутствуют. Исходная база данных {0} содержит определяемые пользователем приведения, которые нельзя перенести на целевой сервер. Н/П
603410 Ошибка разрешения системной таблицы. Пользователи имеют доступ к системным таблицам, таким как pg_authid и pg_shadow, которые нельзя перенести в целевой объект. Отмените эти разрешения и повторите миграцию. Проверка разрешений по умолчанию, pg_catalog предоставленных таблицам и представлениям (например pg_authid , и pg_shadow) является важным. Однако эти разрешения не могут быть назначены целевому объекту. В частности, пользователь {1} обладает {2} разрешениями, а пользователь {3} содержит {4} разрешения. Для обходного решения посетите пользователя, роли и разрешения
603413 Неподдерживаемые языки. Служба миграции не поддерживает миграцию баз данных с языками {0} на целевом сервере. Удалите языки и ее реализованные функции. Целевой сервер не поддерживает неподдерживаемые языки. Попробуйте отключить или удалить соответствующий язык на исходном сервере перед переносом на целевой сервер.
603700 Сбой очистки целевой базы данных. Не удается завершить активные подключения в целевой базе данных во время этапа предварительной миграции или после миграции. Н/П
603701 Внутренняя ошибка сервера. Не удалось создать роли на целевом сервере. Обратитесь в службу поддержки Майкрософт для дальнейшего анализа.
603702 Внутренняя ошибка сервера. Не удалось дампа ролей с исходного сервера. Обратитесь в службу поддержки Майкрософт для дальнейшего анализа.
603703 Внутренняя ошибка сервера. Не удалось изменить глобальный файл дампа ролей. Обратитесь в службу поддержки Майкрософт для дальнейшего анализа.
603704 Внутренняя ошибка сервера. Не удалось сделать все исходные роли членом целевого пользователя миграции. Обратитесь в службу поддержки Майкрософт для дальнейшего анализа.
603705 Внутренняя ошибка сервера. Не удалось восстановить гранты и отмены. Обратитесь в службу поддержки Майкрософт для дальнейшего анализа.
603706 Внутренняя ошибка сервера. Не удалось очистить пользователя миграции целевого сервера. Целевой пользователь миграции может быть частью нескольких ролей. Удалите все ненужные роли из пользователя миграции целевого сервера и повторите миграцию. Обратитесь в службу поддержки Майкрософт для дальнейшего анализа.
603707 Внутренняя ошибка сервера. Не удалось предоставить azure_pg_admin пользователю администратора исходного сервера. Обратитесь в службу поддержки Майкрософт для дальнейшего анализа.
603708 Внутренняя ошибка сервера. Не удалось изменить владельца общедоступной схемы на azure_pg_admin в базе данных "{dbName}". Измените владельца общедоступной схемы на azure_pg_admin вручную и повторите миграцию. Обратитесь в службу поддержки Майкрософт для дальнейшего анализа.
603709 Не удалось выполнить настройку миграции. Обратитесь в службу поддержки Майкрософт для дальнейшего анализа.