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

# FAQ الخاصة بـ Managed Postgres

> الأسئلة الشائعة حول ClickHouse Managed Postgres

export const galaxyOnClick = eventName => () => {
  try {
    if (typeof window !== "undefined" && window.galaxy && eventName) {
      window.galaxy.track(eventName, {
        interaction: "click"
      });
    }
  } catch (e) {}
};

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}>
                <Icon />
                <span>Beta</span>
            </a>;
  }
  return <div className="betaBadge">
            <Icon />
            <span>
                ميزة Beta. 
                <u>
                    <a href="/docs/beta-and-experimental-features#beta-features">
                        مزيد من المعلومات.
                    </a>
                </u>
            </span>
        </div>;
};

<div id="monitoring-and-metrics">
  ## المراقبة والمقاييس
</div>

<div id="metrics-access">
  ### كيف يمكنني الوصول إلى المقاييس الخاصة بمثيل Managed Postgres لدي؟
</div>

يمكنك مراقبة استخدام CPU والذاكرة وIOPS والتخزين مباشرةً من ClickHouse Cloud console، ضمن علامة التبويب **Monitoring** الخاصة بمثيل Managed Postgres لديك.

بالإضافة إلى ذلك، يمكنك استعراض [Query Performance Insights](https://clickhouse.com/blog/postgres-query-insights-clickhouse-cloud) للحصول على تحليل مفصل لاستعلاماتك ضمن علامة التبويب **Query Insights**.

<div id="backup-and-recovery">
  ## النسخ الاحتياطي والاستعادة
</div>

<div id="backup-options">
  ### ما خيارات النسخ الاحتياطي المتاحة؟
</div>

يتضمن Managed Postgres نسخًا احتياطية يومية تلقائية مع أرشفة مستمرة لسجل WAL، ما يتيح الاستعادة إلى أي نقطة زمنية ضمن فترة احتفاظ تمتد 7 أيام. وتُخزَّن النسخ الاحتياطية في S3.

للاطلاع على التفاصيل الكاملة بشأن وتيرة النسخ الاحتياطي، وفترة الاحتفاظ، وكيفية إجراء الاستعادة إلى نقطة زمنية محددة، راجع وثائق [النسخ الاحتياطي والاستعادة](/ar/products/managed-postgres/backup-and-restore).

<div id="infrastructure-and-automation">
  ## البنية التحتية والأتمتة
</div>

<div id="terraform-support">
  ### هل يتوفر دعم Terraform لـ Managed Postgres؟
</div>

لا يتوفر دعم Terraform لـ Managed Postgres حاليًا. نوصي باستخدام ClickHouse Cloud console أو [OpenAPI](/ar/products/managed-postgres/openapi) لإنشاء المثيلات وإدارتها.

<div id="extensions-and-configuration">
  ## الامتدادات والإعدادات
</div>

<div id="extensions-supported">
  ### ما الامتدادات المتوفرة؟
</div>

يتضمن Managed Postgres أكثر من 90 امتدادًا لـ PostgreSQL، بما في ذلك امتدادات شائعة مثل PostGIS وpgvector وpg\_cron وغيرها الكثير. للاطلاع على القائمة الكاملة بالامتدادات المتاحة وإرشادات التثبيت، راجع وثائق [الامتدادات](/ar/products/managed-postgres/extensions).

<div id="config-customization">
  ### هل يمكنني تخصيص معلمات إعداد PostgreSQL؟
</div>

نعم، يمكنك تعديل معلمات إعداد PostgreSQL وPgBouncer من خلال علامة التبويب **Settings** في Console. لمزيد من التفاصيل حول المعلمات المتاحة وكيفية تغييرها، راجع وثائق [Settings](/ar/products/managed-postgres/settings).

<Tip>
  إذا كنت بحاجة إلى معلمة غير متاحة حاليًا، فتواصل مع [الدعم](https://clickhouse.com/support/program) لطلبها.
</Tip>

<div id="connection-pooling">
  ## تجميع الاتصالات
</div>

<div id="prepared-statement-errors">
  ### لماذا تظهر لي أخطاء `prepared statement does not exist` عند استخدام PgBouncer؟
</div>

يُشغِّل Managed Postgres ‏PgBouncer في وضع **تجميع المعاملات**. في هذا الوضع، لا يُخصَّص اتصال Postgres خلفي لعميلك إلا طوال مدة معاملة واحدة، ثم يُعاد إلى المجمّع — وقد تُوجَّه المعاملة التالية من العميل نفسه إلى backend مختلف.

وهذا يُعطّل **العبارات المُحضّرة من جهة الخادم**، لأنها تكون مرتبطةً بالـ backend المحدد الذي نفّذ `PREPARE` (أو `Parse` في الاستعلام الموسَّع). وعندما يصل `EXECUTE` المقابل إلى backend مختلف، تظهر أخطاء مثل:

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

الأعراض التي غالبًا ما ترجع إلى هذا السبب الجذري نفسه:

* دفعات من أخطاء `prepared statement does not exist`، خاصة أثناء عمليات backfill أو الكتابات عالية التزامن
* عمليات insert التي تبدو وكأنها "تفشل بصمت" — يفشل الـ statement، ويُعيد الـ driver المحاولة، وقد ينتهي الأمر بتطبيق الـ batch جزئيًا أو إسقاطها
* Returned values بنوع غير صحيح (على سبيل المثال، فك ترميز عمود `BIGINT` باعتباره نمط bit من نوع `float64`) — يحدث هذا عندما تعيد plan مخزنة مؤقتًا على جهة العميل استخدام رموز type/format قديمة مع backend لم يُرسل إليه `Parse` المطابق أصلًا

**الحل: عطّل server-side prepared statements في الـ driver الذي تستخدمه.** يعتمد الإعداد الدقيق على مكتبة الـ client لديك:

| Driver                           | Setting                                                                                |
| -------------------------------- | -------------------------------------------------------------------------------------- |
| **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()` (فالاستعلامات المُسمّاة تصبح مُحضّرة على الخادم)         |

إذا كانت الـ workload لديك تعتمد على prepared statements، فاتصل **مباشرةً بـ PostgreSQL** (المنفذ 5432) بدلًا من PgBouncer pooler — فالاتصالات المباشرة تدعم prepared statements بشكل طبيعي. راجع [الاتصال](/ar/products/managed-postgres/connection) للحصول على تفاصيل حول الاختيار بين endpoints المجمّعة والمباشرة.

<div id="pgbouncer-vs-pg-connections">
  ### ماذا يعني الإعداد `max_client_conn` في PgBouncer، وكيف يرتبط بـ `max_connections` في Postgres؟
</div>

يتحكم كلٌّ منهما في شيء مختلف:

* **`max_connections` في Postgres** يحدد الحد الأقصى لعدد اتصالات **backend** إلى PostgreSQL نفسه. وهذا هو الرقم الأعلى كلفة، لأن كل backend يستهلك ذاكرة وحصةً لعملية.
* **`max_client_conn` في PgBouncer** يحدد الحد الأقصى لعدد اتصالات **client** التي يمكن أن تكون مفتوحة في pooler في الوقت نفسه. ويقوم PgBouncer بتجميع هذا العدد الكبير من اتصالات client فوق مجموعة أصغر بكثير من اتصالات backend.

عادةً ما يُضبط مثيل Managed Postgres بحيث يقبل PgBouncer عددًا من اتصالات client يزيد بنحو **10× على عدد backends في Postgres** (مثلًا 5000 client / 500 backend). إذا ظهرت لك أخطاء connection عند pooler، فمن المرجح بدرجة كبيرة أنك وصلت إلى حد backend الخاص بكل pool (`default_pool_size`) لا إلى الحد الإجمالي المعلن لاتصالات client.

<div id="database-capabilities">
  ## إمكانات قاعدة البيانات
</div>

<div id="multiple-databases-schemas">
  ### هل يمكنني إنشاء عدة قواعد بيانات ومخططات؟
</div>

نعم. يوفّر Managed Postgres وظائف PostgreSQL الأصلية كاملةً، بما في ذلك دعم عدة قواعد بيانات ومخططات ضمن مثيل واحد. يمكنك إنشاء قواعد البيانات والمخططات وإدارتها باستخدام أوامر PostgreSQL القياسية.

<div id="rbac-support">
  ### هل يتوفر دعم للتحكم في الوصول المستند إلى الأدوار (RBAC)؟
</div>

لديك صلاحيات مستخدم فائق كاملة على مثيل Managed Postgres الخاص بك، مما يتيح لك إنشاء الأدوار وإدارة الأذونات باستخدام أوامر PostgreSQL القياسية.

<Note>
  من المخطط طرح ميزات RBAC محسّنة مع تكامل مع Console خلال هذا العام.
</Note>

<div id="upgrades">
  ## الترقيات
</div>

<div id="version-upgrades">
  ### كيف تُدار ترقيات إصدارات PostgreSQL؟
</div>

تُجرى ترقيات الإصدارات الثانوية والرئيسية عبر failover، وعادةً لا ينتج عنها سوى بضع ثوانٍ من التوقف. يمكنك تهيئة نافذة صيانة للتحكم في توقيت تطبيق الترقيات. للاطلاع على التفاصيل الكاملة، راجع توثيق [الترقيات](/ar/products/managed-postgres/upgrades).

<div id="migration">
  ## الترحيل
</div>

<div id="migration-tools">
  ### ما الأدوات المتاحة للترحيل إلى Managed Postgres؟
</div>

يدعم Managed Postgres عدة طرق للترحيل:

* **pg\_dump and pg\_restore**: لقواعد البيانات الأصغر أو لعمليات الترحيل لمرة واحدة. راجع دليل [pg\_dump and pg\_restore](/ar/products/managed-postgres/migrations/pg_dump-pg_restore).
* **Logical replication**: لقواعد البيانات الأكبر التي تتطلب أقل وقت تعطل ممكن. راجع دليل [Logical replication](/ar/products/managed-postgres/migrations/logical-replication).
* **PeerDB**: للنسخ المتماثل المستند إلى CDC من مصادر Postgres الأخرى. راجع دليل [PeerDB migration](/ar/products/managed-postgres/migrations/peerdb).

<Note>
  ستتوفر قريبًا تجربة ترحيل مُدارة بالكامل.
</Note>
