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

> دليل يوضّح كيفية تهيئة جدولة النسخ الاحتياطية

# تهيئة جدولة النسخ الاحتياطية

export const CloudNotSupportedBadge = () => {
  return <a href="https://clickhouse.com/docs/products/cloud/guides/cloud-compatibility#list-of-unsupported-features" className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            غير مدعوم في ClickHouse Cloud
        </a>;
};

تتناول هذه الصفحة قراءة جدول النسخ الاحتياطي لخدمة ClickHouse Cloud وتغييره من سطر الأوامر باستخدام [ClickHouse CLI](/ar/products/cloud/features/cli) (`clickhousectl`). الأوامر غير تفاعلية، ويُخرج `clickhousectl` نتائج بصيغة JSON عند استخدام `--json`.

تتوفر النسخ الاحتياطية القابلة للتهيئة في خطتَي Scale وEnterprise.

<h2 id="prerequisites">
  المتطلبات المسبقة
</h2>

ثبّت ClickHouse CLI:

```bash theme={null}
curl https://clickhouse.com/cli | sh
```

تحتاج أيضًا إلى `jq`.

يُعد تغيير تكوين النسخ الاحتياطي عملية كتابة ويتطلب [المصادقة باستخدام مفتاح واجهة برمجة تطبيقات](/ar/products/cloud/features/admin-features/api/openapi)؛ أما تسجيل الدخول عبر OAuth فهو للقراءة فقط:

```bash theme={null}
clickhousectl cloud auth login --api-key <YOUR_KEY> --api-secret <YOUR_SECRET>
```

بدلاً من ذلك، عيّن متغيّري البيئة `CLICKHOUSE_CLOUD_API_KEY` و`CLICKHOUSE_CLOUD_API_SECRET`. تحقّق من ذلك باستخدام `clickhousectl cloud auth status`: تأكّد من أن بيانات الاعتماد **النشطة** هي التي تملك النطاق `read/write`. تتقدّم بيانات الاعتماد المحفوظة من عملية `auth login` سابقة على متغيّرات البيئة؛ وفي هذه الحالة قد يظل الصف `Env vars` يعرض النطاق `read/write` لكنه يُوسم بأنه غير نشط (`Configured (inactive, outranked by credentials file)`)، وتُنفَّذ أوامر الكتابة الواردة أدناه باستخدام بيانات الاعتماد المحفوظة عوضًا عنها. نفّذ `clickhousectl cloud auth logout` أولاً إذا كنت ترغب في استخدام متغيّرات البيئة.

<h2 id="find-the-service-id">
  العثور على معرّف الخدمة
</h2>

يُضبط تكوين النسخ الاحتياطي لكل خدمة على حدة. ابحث عن معرّف الخدمة باستخدام اسمها:

```bash theme={null}
CH_ID=$(clickhousectl cloud service list --json \
  | jq -r '.[] | select(.name=="<service-name>") | .id')
```

إذا كنت تنتمي إلى أكثر من organization، فلن يتمكن الأمر من اكتشاف الـ organization تلقائيًا وسيفشل مع ظهور الرسالة `Multiple organizations found. Specify --org-id to choose one.`. اعرض قائمة الـ organizations الخاصة بك باستخدام `clickhousectl cloud org list`، ثم مرّر `--org-id <org-id>` إلى هذا الأمر وإلى كل أمر `backup-config` وارد أدناه.

<h2 id="read-the-current-backup-configuration">
  قراءة تكوين النسخ الاحتياطي الحالي
</h2>

```bash theme={null}
clickhousectl cloud service backup-config get "$CH_ID" --json
```

الخدمة التي لا تزال تستخدم الجدولة الافتراضية يُبلّغ عن:

```json theme={null}
{
  "backupPeriodInHours": 24.0,
  "backupRetentionPeriodInHours": 24.0
}
```

لا يظهر `backupStartTime` في المخرجات إلا بعد تعيين وقت بدء (start time).

<h2 id="change-retention-and-frequency">
  تغيير مدة الاحتفاظ والتكرار
</h2>

يقبل الأمر `backup-config update` الإعدادات نفسها الموجودة في نموذج الـ Console — مدة الاحتفاظ (`--backup-retention-period-hours`)، والتكرار (`--backup-period-hours`)، ووقت البدء (`--backup-start-time`) — ثم يطبع الـ configuration الناتج. أما الـ flags التي لا تحددها فتبقى بقيمها الحالية:

```bash theme={null}
clickhousectl cloud service backup-config update "$CH_ID" \
  --backup-period-hours 12 \
  --backup-retention-period-hours 48 \
  --json
```

```json theme={null}
{
  "backupPeriodInHours": 12.0,
  "backupRetentionPeriodInHours": 48.0
}
```

يسري التغيير على الفور؛ أعد قراءة الـ configuration للتأكد من ذلك:

```bash theme={null}
clickhousectl cloud service backup-config get "$CH_ID" --json
```

```json theme={null}
{
  "backupPeriodInHours": 12.0,
  "backupRetentionPeriodInHours": 48.0
}
```

<h2 id="set-a-backup-start-time">
  تعيين وقت بدء النسخ الاحتياطي
</h2>

يأخذ `--backup-start-time` وقت بدء يوميًا بتوقيت UTC، عند رأس الساعة (`HH:00`). ويقيّد وقت البدء التكرار: إذ يجب أن تكون فترة النسخ الاحتياطي `24` أو `48` ساعة، سواء مُرِّرت في الأمر نفسه أو كانت مخزَّنة مسبقًا على الخدمة. ومنذ `clickhousectl 0.4.2`، يجري التحقق من التنسيق ومن قاعدة الفترة كليهما على جانب العميل، قبل أي استدعاء لواجهة برمجة التطبيقات. أما الوقت الذي لا يقع عند رأس الساعة — أو غير المكمَّل بالأصفار، مثل `2:00` — فيرفضه مُحلِّل المعاملات مع رمز الخروج `2`:

```bash theme={null}
clickhousectl cloud service backup-config update "$CH_ID" --backup-start-time 02:30 --json
```

```text theme={null}
error: invalid value '02:30' for '--backup-start-time <BACKUP_START_TIME>': invalid backup start time '02:30': expected HH:00 with HH from 00 to 23
```

كذلك يُرفض تمرير `--backup-start-time` مع قيمة لـ `--backup-period-hours` غير `24` أو `48`، وذلك قبل إرسال الطلب، مع رمز الخروج `1`:

```text theme={null}
Error: --backup-period-hours must be 24 or 48 when --backup-start-time is set
```

يمكن حذف `--backup-period-hours`، وفي هذه الحالة تحتفظ الخدمة بالفترة المضبوطة لديها بالفعل — لكن يجب أن تكون تلك الفترة المخزَّنة نفسها `24` أو `48`. ففي خدمة لا تزال تستخدم الجدولة الافتراضية تكون الفترة `24`، ولذلك يكفي تحديد وقت البدء وحده. أما الخدمة أعلاه فقد ضُبطت على `12` في الخطوة السابقة، ولهذا يفشل حذف الفترة: إذ يقرأ `clickhousectl` الإعدادات المخزَّنة أولًا ثم يرفض العملية برمز خروج `1`، ومن دون استدعاء واجهة برمجة التطبيقات أيضًا:

```bash theme={null}
clickhousectl cloud service backup-config update "$CH_ID" --backup-start-time 03:00 --json
```

```text theme={null}
Error: the stored backup period is 12 hours, but --backup-start-time requires 24 or 48. Pass --backup-period-hours 24 or --backup-period-hours 48 in the same call.
```

تمرير الفترة (period) بشكل صريح هو التركيبة الصحيحة:

```bash theme={null}
clickhousectl cloud service backup-config update "$CH_ID" \
  --backup-start-time 02:00 \
  --backup-period-hours 24 \
  --json
```

```json theme={null}
{
  "backupPeriodInHours": 24.0,
  "backupRetentionPeriodInHours": 48.0,
  "backupStartTime": "02:00"
}
```

أما الحالة العكسية فلا يجري اكتشافها على جانب العميل: فمع وجود وقت بدء مخزَّن بالفعل، يصل إلى واجهة برمجة التطبيقات أي تحديث يغيّر `--backup-period-hours` وحده إلى قيمة غير `24` أو `48`، ويفشل هناك مع رمز الخروج `1`:

```bash theme={null}
clickhousectl cloud service backup-config update "$CH_ID" --backup-period-hours 12 --json
```

```text theme={null}
Error: BAD_REQUEST: customBackupPeriod must be 24 or 48 hours when customBackupStartTime is set
```

يؤدي مسح وقت البدء ضمن الأمر نفسه إلى تفادي ذلك، كما هو موضّح فيما يلي.

<h2 id="clear-the-backup-start-time">
  مسح وقت بدء النسخة الاحتياطية
</h2>

يزيل الخيار `--clear-backup-start-time` وقت البدء المخزَّن ويرفع قيد الـ `24`/`48` ساعة المفروض على الفترة:

```bash theme={null}
clickhousectl cloud service backup-config update "$CH_ID" \
  --clear-backup-start-time \
  --json
```

```json theme={null}
{
  "backupPeriodInHours": 24.0,
  "backupRetentionPeriodInHours": 48.0
}
```

يختفي `backupStartTime` من المخرجات بدلًا من أن يُعرض بالقيمة `null`، ولم يعد `backup-config get` يُرجعه. أما مسح وقت بدء لم يُضبط من الأصل فهو عملية لا تأثير لها، ومع ذلك تنتهي بالرمز `0`.

اجمعه مع `--backup-period-hours` لمسح وقت البدء وضبط أي فترة في أمر واحد — وهذه هي طريقة الخروج من خطأ واجهة برمجة التطبيقات المذكور أعلاه:

```bash theme={null}
clickhousectl cloud service backup-config update "$CH_ID" \
  --clear-backup-start-time \
  --backup-period-hours 12 \
  --json
```

```json theme={null}
{
  "backupPeriodInHours": 12.0,
  "backupRetentionPeriodInHours": 48.0
}
```

لا يمكن الجمع بين `--clear-backup-start-time` و`--backup-start-time`؛ إذ يرفض المحلّل هذا الاقتران برمز الخروج `2`:

```text theme={null}
error: the argument '--clear-backup-start-time' cannot be used with '--backup-start-time <BACKUP_START_TIME>'
```

لنقل وقت البدء بدلًا من إزالته، مرّر القيمة الجديدة لـ `--backup-start-time` بمفردها؛ فهي تحلّ محل القيمة المخزّنة.

<Note>
  قد يؤدي تغيير جدول النسخ الاحتياطي إلى ارتفاع الرسوم الشهرية للتخزين، إذ قد لا تكون بعض النسخ الاحتياطية مشمولة ضمن النسخ الاحتياطية الافتراضية للخدمة. راجع ["فهم تكلفة النسخ الاحتياطي"](/ar/products/cloud/guides/backups/review-and-restore-backups#understanding-backup-cost).
</Note>
