> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# FAQ по ClickHouse Managed Postgres

> Часто задаваемые вопросы о ClickHouse Managed Postgres

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <span>Бета</span>
            </a>;
  }
  return <a href="https://clickhouse.com/docs/reference/settings/beta-and-experimental-features#beta-features" className="betaBadge">
            <span>Возможность в статусе бета</span>
        </a>;
};

<BetaBadge link="https://clickhouse.com/cloud/postgres" galaxyTrack={true} galaxyEvent="docs.managed-postgres.faq-beta" />

<h2 id="monitoring-and-metrics">
  Мониторинг и метрики
</h2>

<h3 id="metrics-access">
  Как получить доступ к метрикам моего экземпляра ClickHouse Managed Postgres?
</h3>

Вы можете отслеживать использование CPU, памяти, IOPS и хранилища напрямую в консоли ClickHouse Cloud на вкладке **Мониторинг** вашего экземпляра ClickHouse Managed Postgres.

Кроме того, вы можете ознакомиться с [Query Performance Insights](https://clickhouse.com/blog/postgres-query-insights-clickhouse-cloud) для подробного анализа ваших запросов на вкладке **Query Insights**.

<h2 id="backup-and-recovery">
  Резервное копирование и восстановление
</h2>

<h3 id="backup-options">
  Какие варианты резервного копирования доступны?
</h3>

ClickHouse Managed Postgres включает автоматическое ежедневное резервное копирование с непрерывным архивированием WAL, что позволяет выполнять восстановление на определённый момент времени на любой момент в пределах 7-дневного периода хранения. Резервные копии хранятся в объектном хранилище.

Подробные сведения о частоте резервного копирования, сроках хранения и выполнении восстановления на определённый момент времени см. в документации [Backup and restore](/ru/products/managed-postgres/backup-and-restore).

<h2 id="infrastructure-and-automation">
  Инфраструктура и автоматизация
</h2>

<h3 id="supported-cloud-providers">
  Какие облачные провайдеры поддерживаются?
</h3>

ClickHouse Managed Postgres доступен на AWS в статусе публичной беты. Для GCP доступна закрытая предварительная версия. Записаться в лист ожидания закрытой предварительной версии для GCP можно [здесь](https://clickhouse.com/cloud/postgres#gcp-waitlist), а узнать больше — из [анонса](https://clickhouse.com/blog/postgres-managed-by-clickhouse-gcp-private-preview). Подробности см. в разделе [Поддерживаемые облачные провайдеры](/ru/products/managed-postgres/overview#supported-cloud-providers).

<h3 id="terraform-support">
  Доступна ли поддержка Terraform для ClickHouse Managed Postgres?
</h3>

Да. Вы можете создавать сервисы ClickHouse Managed Postgres и управлять ими с помощью Terraform-провайдера ClickHouse, используя ресурс `clickhouse_postgres_service`. Подробности см. в [справочнике по Terraform](/ru/products/managed-postgres/terraform). Также вы можете использовать консоль ClickHouse Cloud или [OpenAPI](/ru/products/managed-postgres/openapi) для создания экземпляров и управления ими.

<h2 id="extensions-and-configuration">
  Расширения и конфигурация
</h2>

<h3 id="extensions-supported">
  Какие расширения поддерживаются?
</h3>

ClickHouse Managed Postgres включает более 90 расширений PostgreSQL, в том числе популярные PostGIS, pgvector, pg\_cron и многие другие. Полный список доступных расширений и инструкции по установке см. в документации [Расширения](/ru/products/managed-postgres/extensions).

<h3 id="config-customization">
  Можно ли настраивать параметры конфигурации PostgreSQL?
</h3>

Да, параметры конфигурации PostgreSQL и PgBouncer можно изменять на вкладке **Настройки** в консоли. Подробнее о доступных параметрах и о том, как их изменять, см. в документации [Настройки](/ru/products/managed-postgres/settings).

<Tip>
  Если вам нужен параметр, который пока недоступен, обратитесь в [поддержку](https://clickhouse.com/support/program), чтобы запросить его.
</Tip>

<h2 id="connection-pooling">
  Пул соединений
</h2>

<h3 id="prepared-statement-errors">
  Почему через PgBouncer возникают ошибки `prepared statement does not exist`?
</h3>

ClickHouse Managed Postgres использует PgBouncer в режиме **transaction pooling**. В этом режиме backend-соединение Postgres выделяется вашему клиенту только на время одной транзакции, а затем возвращается в пул — следующая транзакция того же клиента может попасть на другое backend-соединение.

Из-за этого не работают **серверные подготовленные операторы**, привязанные к конкретному backend-соединению, на котором был выполнен `PREPARE` (или `Parse` в extended query). Если соответствующий `EXECUTE` попадает на другое backend-соединение, возникают ошибки вида:

```text theme={null}
ERROR:  prepared statement "..." does not exist
ERROR:  unnamed prepared statement does not exist
```

Симптомы, которые часто указывают на одну и ту же первопричину:

* Всплески ошибок `prepared statement does not exist`, особенно во время дозагрузки или записи с высоким параллелизмом
* Вставки, которые как будто «тихо не срабатывают»: оператор завершается ошибкой, драйвер выполняет повторную попытку, и в итоге батч может быть применён частично или вовсе отброшен
* Возвращаемые значения неправильного типа (например, столбец `BIGINT`, декодированный как битовый шаблон `float64`) — это происходит, когда кэшированный клиентский план повторно использует устаревшие коды типа/формата для backend-соединения, которому так и не был отправлен соответствующий `Parse`

**Исправление: отключите подготовленные операторы на стороне сервера в драйвере.** Конкретный параметр зависит от используемой клиентской библиотеки:

| Драйвер | Параметр |
| - | - |
| **pgx** (Go) | `statement_cache_capacity=0` and `default_query_exec_mode=exec` (or `simple_protocol`) |
| **psycopg3** (Python) | `prepare_threshold=None` |
| **asyncpg** (Python) | `statement_cache_size=0` |
| **JDBC** (Java) | `prepareThreshold=0` |
| **node-postgres / pg** (Node.js) | Не передавайте `name` в `query()` (именованные запросы становятся серверными подготовленными) |

Если ваша рабочая нагрузка зависит от подготовленных операторов, подключайтесь **напрямую к PostgreSQL** (порт 5432), а не через пулер PgBouncer — прямые подключения штатно поддерживают подготовленные операторы. Подробнее о выборе между pooled и direct конечными точками см. в разделе [Connection](/ru/products/managed-postgres/connection).

<h3 id="pgbouncer-vs-pg-connections">
  Что означает параметр `max_client_conn` в PgBouncer и как он соотносится с `max_connections` в Postgres?
</h3>

Они отвечают за разные вещи:

* **`max_connections` в Postgres** ограничивает число **backend-соединений** с самим PostgreSQL. Это затратный показатель — каждое backend-соединение потребляет память и занимает слот процесса.
* **`max_client_conn` в PgBouncer** ограничивает число **клиентских** соединений, которые могут быть одновременно открыты в пулере. PgBouncer мультиплексирует множество таких клиентских соединений на значительно меньшее число backend-соединений.

Типичный экземпляр ClickHouse Managed Postgres настроен так, что PgBouncer принимает примерно **в 10 раз больше клиентских соединений, чем есть backend-соединений Postgres** (например, 5000 клиентских / 500 backend-соединений). Если вы видите ошибки соединения на стороне пулера, гораздо вероятнее, что вы упираетесь в лимит backend-соединений для конкретного пула (`default_pool_size`), а не в основной лимит клиентских соединений.

<h2 id="database-capabilities">
  Возможности базы данных
</h2>

<h3 id="multiple-databases-schemas">
  Могу ли я создать несколько баз данных и схем?
</h3>

Да. ClickHouse Managed Postgres предоставляет всю нативную функциональность PostgreSQL, включая поддержку нескольких баз данных и схем в рамках одного экземпляра. Вы можете создавать базы данных и схемы и управлять ими с помощью стандартных команд PostgreSQL.

<h3 id="rbac-support">
  Поддерживается ли ролевое управление доступом (RBAC)?
</h3>

У вас есть полный доступ с правами superuser к вашему экземпляру ClickHouse Managed Postgres, что позволяет создавать роли и управлять разрешениями с помощью стандартных команд PostgreSQL.

<Note>
  Расширенные возможности RBAC с интеграцией в консоль планируются в этом году.
</Note>

<h2 id="upgrades">
  Обновления
</h2>

<h3 id="version-upgrades">
  Как выполняются обновления версий PostgreSQL?
</h3>

Обновления как минорных, так и мажорных версий выполняются через переключение при отказе и обычно приводят лишь к нескольким секундам простоя. Вы можете настроить [запланированные обновления](/ru/products/managed-postgres/upgrades#scheduled-upgrades), чтобы контролировать дни и двухчасовое окно UTC, в течение которого применяются обновления. Подробную информацию см. в документации [Обновления](/ru/products/managed-postgres/upgrades).

<h2 id="migration">
  Миграция
</h2>

<h3 id="migration-tools">
  Какие инструменты доступны при миграции в ClickHouse Managed Postgres?
</h3>

ClickHouse Managed Postgres поддерживает несколько подходов к миграции:

* **pg\_dump and pg\_restore**: Для небольших баз данных или разовых миграций. См. руководство [pg\_dump and pg\_restore](/ru/products/managed-postgres/migrations/pg_dump-pg_restore).
* **Logical replication**: Для более крупных баз данных, где требуется минимальное время простоя. См. руководство [Логическая репликация](/ru/products/managed-postgres/migrations/logical-replication).
* **PeerDB**: Для репликации на основе CDC из других экземпляров Postgres. См. руководство [Миграция с PeerDB](/ru/products/managed-postgres/migrations/peerdb).

<Note>
  Полностью управляемый процесс миграции скоро станет доступен.
</Note>
