Сообщения об ошибках в Managed Service for PostgreSQL
-
Почему при использовании расширения TimescaleDB возникает ошибка?
-
Что делать, если при получении SSL-сертификата через PowerShell возникает ошибка проверки отзыва?
-
Что делать, если при подключении я получаю ошибку
SSL is required
? -
Что делать, если при подключении я получаю ошибку
too many active clients for user
? -
Почему при подключении к пользовательской базе данных возникает ошибка?
-
Почему при создании дампа с помощью pg_dumpall возникает ошибка?
-
Почему при подключении к базе данных postgres возникает ошибка?
-
Почему соединение завершается ошибкой
terminating connection due to administrator command
? -
Почему перенос данных через создание и восстановление логического дампа завершается ошибкой?
-
Почему при развертывании логического дампа возникает ошибка
must be owner of extension
? -
Почему возникает ошибка
cannot execute <SQL-команда> in a read-only transaction
? -
Что делать, если в логах отображается ошибка
too many connections for role "monitor"
?
Почему при использовании расширения TimescaleDB возникает ошибка?
Текст ошибки:
SQL Error [0A000]: ERROR: functionality not supported under the current "apache" license
Hint: Upgrade your license to 'timescale' to use this free community feature.
Эта ошибка возникает при попытке использовать функцию, доступную только в TimescaleDB Community Edition.
Community Edition распространяется по лицензии Timescale License (TSL)
В кластер Managed Service for PostgreSQL устанавливается TimescaleDB Apache 2 Edition — по сравнению с Community Edition ее функциональность ограничена.
Что делать, если при получении SSL-сертификата через PowerShell возникает ошибка проверки отзыва?
Полный текст ошибки:
curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092012)
The revocation function was unable to check revocation for the certificate
Это означает, что при подключении к сайту не удалось проверить, есть ли его сертификат в списке отозванных.
Чтобы исправить ошибку:
-
убедитесь, что проверку не блокируют настройки корпоративной сети;
-
выполните команду с параметром
--ssl-no-revoke
.mkdir $HOME\.postgresql; curl.exe --ssl-no-revoke -o $HOME\.postgresql\root.crt https://storage.yandexcloud.kz/cloud-certs/CA.pem
SSL is required
?
Что делать, если при подключении я получаю ошибку Ошибка означает, что вы пытаетесь подключиться к кластеру с хостом в публичном доступе. Такие хосты поддерживают только соединения с SSL-сертификатом. Вы можете:
- Получить SSL-сертификат и добавить его в приложение, которое вы используете для подключения.
- Отключить публичный доступ для хостов и подключаться к кластеру с виртуальной машины, расположенной в той же облачной сети.
too many active clients for user
?
Что делать, если при подключении я получаю ошибку Подключение к хостам кластера может завершиться ошибкой:
too many active clients for user (pool_size for user <имя_пользователя> reached <значение_лимита>)
По умолчанию кластер резервирует для каждого пользователя 50 подключений к каждому хосту. Если лимит подключений для пользователя будет исчерпан, то попытка открыть новое подключение завершится ошибкой.
Решение: увеличьте лимит подключений в настройке Conn limit.
О том, как изменить настройки PostgreSQL на уровне пользователя, читайте в документации.
Почему при подключении к пользовательской базе данных возникает ошибка?
Подключение к пользовательской базе данных может завершиться ошибкой:
ERROR: odyssey: ce3ea075f4ffa: route for '<имя_БД>.<имя_пользователя>' is not found
Ошибка означает, что в параметрах подключения указано неверное имя базы данных.
Почему при создании дампа с помощью pg_dumpall возникает ошибка?
При создании дампа с помощью утилиты pg_dumpall
возникает ошибка:
ERROR: odyssey: c16b9035a1f78: route for 'template1.<имя_пользователя>' is not found
Ошибка возникает из-за того, что утилита pg_dumpall
пытается выгрузить все базы данных: как пользовательские, так и системные.
Создать дамп одновременно всех баз данных Managed Service for PostgreSQL нельзя. Выгрузите дампы с помощью утилиты pg_dump
для каждой пользовательской базы данных по одной, исключив системные.
Почему при подключении к базе данных postgres возникает ошибка?
Подключение к базе данных postgres
завершается ошибкой:
ERROR: odyssey: c76e2c1283a7a: route for 'postgres.<имя_пользователя>' is not found
База данных postgres
является системной, и подключение к ней в Managed Service for PostgreSQL запрещено. Укажите в параметрах подключения другую существующую базу данных.
terminating connection due to administrator command
?
Почему соединение завершается ошибкой Соединение с кластером Managed Service for PostgreSQL может завершаться сообщением:
FATAL: terminating connection due to administrator command
Такое сообщение не является ошибкой, а означает, что длительность сессии/транзакции превысила значение настройки Session duration timeout (по умолчанию — 12 часов).
Почему не удается подключиться к хостам кластера?
Подключение к хостам кластера может завершиться ошибкой:
could not translate host name "<обычный или специальный FQDN>" to address: Name or service not known
Ошибка возникает, если запрещен публичный доступ к хосту или пользователи используют кастомизированные DNS-серверы, которые не разрешают доменные имена в зоне mdb.yandexcloud.net
.
Решение:
-
Включите публичный доступ для хоста, к которому выполняется подключение. При использовании специального FQDN включите публичный доступ для хоста, на который указывает специальный FQDN.
Важно
Используйте подключение с помощью особого FQDN хоста-мастера только для процессов, которые допускают недоступность базы данных на запись продолжительностью до 10 минут.
-
Рекомендуется включить публичный доступ для всех хостов кластера. Это позволит избежать ошибок подключения при автоматической смене хоста-мастера.
-
Для кастомизированных DNS-серверов настройте DNS-перенаправление для зоны
mdb.yandexcloud.net
.
Почему я не могу остановить кластер?
Текст ошибки:
ERROR: rpc error: code = FailedPrecondition desc = Cluster has no backups
Остановить кластер, у которого нет резервных копий, невозможно. Чтобы устранить ошибку и остановить кластер, создайте резервную копию.
max_connections is less than sum of users connection limit
?
Почему при изменении кластера возникает ошибка Эта ошибка может возникнуть при уменьшении класса хоста в кластере, если сумма лимитов подключений всех пользователей меньше общего лимита подключений на кластер (Max connections).
Решение: сначала уменьшите лимиты, установленные для пользователей, чтобы их сумма была меньше, чем <значение_Max_connections> — 15
, а затем снижайте класс хоста.
Почему перенос данных через создание и восстановление логического дампа завершается ошибкой?
Восстановление логического дампа может завершаться одной из ошибок:
ERROR: role "<имя_пользователя_источника>" does not exist
ERROR: must be member of role "<имя_пользователя_источника>"
Ошибки связаны с отсутствием в кластере-приемнике пользователя или привилегий пользователя, от имени которого был создан логический дамп в кластере-источнике.
Чтобы устранить ошибки:
- Добавьте пользователя в кластере-приемнике с доступом к базе данных для переноса и таким же именем, что и у пользователя, с помощью которого был создан логический дамп в кластере-источнике.
- Восстанавливайте логической дамп с помощью этого пользователя или выдайте его привилегии пользователю, с помощью которого вы восстанавливаете логической дамп.
replication slot already exists
?
Что делать, если при выполнении логической репликации возникает ошибка По умолчанию при создании подписки создается и слот репликации. Ошибка replication slot already exists
означает, что слот репликации уже существует.
Устранить ошибку можно одним из способов:
- Привяжите подписку к существующему слоту репликации. Для этого добавьте в запрос для создания подписки параметр
create_slot = false
. - Удалите существующий слот репликации и попробуйте создать подписку еще раз.
extension... is not available
?
Почему при миграции БД в Managed Service for PostgreSQL возникает ошибка Текст ошибки:
extension "<название_расширения>" is not available
Ошибка может возникнуть при миграции БД в Managed Service for PostgreSQL с помощью скрипта, который пытается установить и использовать расширение PostgreSQL. Причина ошибки в том, что в кластерах Managed Service for PostgreSQL нельзя управлять расширениями PostgreSQL с помощью команд SQL.
Чтобы избежать ошибки:
- Если скрипт или логический дамп имеют текстовый формат, удалите из них операторы для создания расширений PostgreSQL.
- Установите все необходимые расширения в базе-приемнике с помощью интерфейсов Yandex Cloud.
must be owner of extension
?
Почему при развертывании логического дампа возникает ошибка Восстановление логического дампа может завершаться ошибкой ERROR: must be owner of extension
.
Ошибка вызвана тем, что в логическом дампе присутствуют операции установки или обновления расширений PostgreSQL. В кластерах Managed Service for PostgreSQL нельзя управлять расширениями с помощью команд SQL.
Чтобы устранить ошибку:
- Перед восстановлением дампа включите в базе-приемнике все необходимые расширения.
- Исключите из дампа любые операции с расширениями. Например, можно закомментировать строки, связанные с установкой расширений.
- Выполните восстановление логического дампа повторно.
Почему при настройке каскадной репликации возникает ошибка?
Текст ошибки:
cluster should have at least 2 HA hosts to use cascade host
Ошибка возникает, если вы указываете источник репликации для единственной некаскадной реплики.
Для обеспечения высокой доступности в кластере должна быть хотя бы одна реплика без источника репликации. Во время технического обслуживания или при сбое хоста-мастера роль мастера переключится на эту реплику.
Подробнее о репликации см. в соответствующем разделе.
cannot execute <SQL-команда> in a read-only transaction
?
Почему возникает ошибка Варианты ошибок:
ERROR: cannot execute ALTER EXTENSION in a read-only transaction
ERROR: cannot execute CREATE TABLE in a read-only transaction
ERROR: cannot execute UPDATE in a read-only transaction
ERROR: cannot execute INSERT in a read-only transaction
Такие ошибки могут возникнуть, если произошло переключение роли мастера на другой хост и вы подключились к реплике, доступной только для чтения.
Избежать таких ошибок можно любым из способов:
-
Подключитесь к кластеру с помощью особого FQDN, который всегда указывает на текущий мастер.
Важно
Используйте подключение с помощью особого FQDN хоста-мастера только для процессов, которые допускают недоступность базы данных на запись продолжительностью до 10 минут.
-
При подключении укажите параметр
target_session_attrs=read-write
и перечислите все хосты кластера. Так вы подключитесь к хосту-мастеру с возможностью чтения и записи.
Подробнее о способах подключения к хосту-мастеру см. в разделе Подключение к базе данных.
too many connections for role "monitor"
?
Что делать, если в логах отображается ошибка Пользователь monitor
зарезервирован для нужд мониторинга в кластере Managed Service for PostgreSQL. Сообщения об исчерпании лимита подключений для этого пользователя можно игнорировать.