توضّح هذه الصفحة كيفية استخدام ميزة "الاسترداد في نقطة زمنية معيّنة" (PITR) للاحتفاظ بالبيانات واستردادها في Cloud Firestore.
للتعرّف على مفاهيم ميزة "الاسترداد في نقطة زمنية معيّنة"، يُرجى الاطّلاع على مقالة الاسترداد في نقطة زمنية معيّنة.
الأذونات
للحصول على الأذونات اللازمة لإدارة إعدادات ميزة "الاسترداد في نقطة زمنية معيّنة"، اطلب من المشرف منحك أدوار إدارة الهوية وإمكانية الوصول (IAM) التالية في المشروع الذي تريد تفعيل هذه الميزة فيه:
- مالك Cloud Datastore (
roles/datastore.owner)
بالنسبة إلى الأدوار المخصّصة، تأكَّد من منح الأذونات التالية:
- لتفعيل ميزة "الاسترداد في نقطة زمنية معيّنة" عند إنشاء قاعدة بيانات:
datastore.databases.create - لتعديل إعدادات ميزة "الاسترداد في نقطة زمنية معيّنة" في قاعدة بيانات حالية:
datastore.databases.updateوdatastore.databases.list - لقراءة البيانات من بيانات ميزة "الاسترداد في نقطة زمنية معيّنة":
datastore.databases.getوdatastore.entities.getوdatastore.entities.list - لتصدير بيانات ميزة "الاسترداد في نقطة زمنية معيّنة":
datastore.databases.export - لاستيراد بيانات ميزة "الاسترداد في نقطة زمنية معيّنة":
datastore.databases.import - لاستنساخ قاعدة بيانات:
datastore.databases.clone
قبل البدء
يُرجى مراعاة النقاط التالية قبل البدء في استخدام ميزة "الاسترداد في نقطة زمنية معيّنة":
- لا يمكنك البدء في القراءة من بيانات قبل سبعة أيام مباشرةً بعد تفعيل ميزة "الاسترداد في نقطة زمنية معيّنة".
- إذا أردت تفعيل ميزة "الاسترداد في نقطة زمنية معيّنة" عند إنشاء قاعدة بيانات، عليك استخدام الأمر
gcloud firestore databases create. لا يمكن تفعيل ميزة "الاسترداد في نقطة زمنية معيّنة" أثناء إنشاء قاعدة بيانات باستخدام Google Cloud Console. - Cloud Firestore يبدأ في الاحتفاظ بالإصدارات من هذه النقطة فصاعدًا بعد تفعيل ميزة "الاسترداد في نقطة زمنية معيّنة".
- لا يمكنك قراءة بيانات ميزة "الاسترداد في نقطة زمنية معيّنة" في نافذة هذه الميزة بعد إيقافها.
- إذا أعدت تفعيل ميزة "الاسترداد في نقطة زمنية معيّنة" مباشرةً بعد إيقافها، لن تعود بيانات هذه الميزة السابقة متاحة. سيتم حذف أي بيانات تم إنشاؤها قبل إيقاف ميزة "الاسترداد في نقطة زمنية معيّنة" بعد تاريخ انتهاء صلاحيتها.
- إذا حذفت بيانات عن طريق الخطأ في الساعة الأخيرة وكانت ميزة "الاسترداد في نقطة زمنية معيّنة" غير مفعّلة، يمكنك استعادة بياناتك من خلال تفعيل هذه الميزة في غضون ساعة واحدة من الحذف.
- ستفشل أي عملية قراءة يتم إجراؤها على بيانات ميزة "الاسترداد في نقطة زمنية معيّنة" منتهية الصلاحية.
تفعيل ميزة "الاسترداد في نقطة زمنية معيّنة"
قبل استخدام ميزة "الاسترداد في نقطة زمنية معيّنة"، فعِّل الفوترة لمشروعك على Google Cloud project. لا يمكن استخدام وظيفة "الاسترداد في نقطة زمنية معيّنة" إلا في مشاريع Google Cloud التي تم تفعيل الفوترة فيها.
لتفعيل ميزة "الاسترداد في نقطة زمنية معيّنة" لقاعدة بياناتك:
وحدة التحكم
في Google Cloud Console، انتقِل إلى صفحة قواعد البيانات.
اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
في قائمة التنقّل، انقر على التعافي من الكوارث.
انقر على تعديل لتعديل الإعدادات.
ضَع علامة في مربّع الاختيار تفعيل ميزة "الاسترداد في نقطة زمنية معيّنة" ، ثم انقر على حفظ.
يؤدي تفعيل ميزة "الاسترداد في نقطة زمنية معيّنة" إلى تحمُّل تكاليف التخزين. لمزيد من المعلومات، اطّلِع على صفحة الأسعار.
لإيقاف ميزة "الاسترداد في نقطة زمنية معيّنة"، أزِل العلامة من مربّع الاختيار تفعيل ميزة "الاسترداد في نقطة زمنية معيّنة" من صفحة "التعافي من الكوارث" في Google Cloud Console.
gcloud
يمكنك تفعيل ميزة "الاسترداد في نقطة زمنية معيّنة" أثناء إنشاء قاعدة بيانات باستخدام الأمرَين gcloud firestore databases create و--enable-ptir على النحو التالي:
gcloud firestore databases create\
--location=LOCATION\
--database=DATABASE_ID\
--type=firestore-native\
--enable-pitr
استبدِل القيم على النحو التالي:
LOCATION- الموقع الجغرافي الذي تريد إنشاء قاعدة بياناتك فيهDATABASE_ID- رقم تعريف قاعدة البيانات
يمكنك إيقاف ميزة "الاسترداد في نقطة زمنية معيّنة" باستخدام الأمر gcloud firestore databases update على النحو التالي:
gcloud firestore databases update\
--database=DATABASE_ID\
--no-enable-pitr
استبدِل القيم على النحو التالي:
DATABASE_ID- تعيين إلى رقم تعريف قاعدة البيانات أو (افتراضي).
الحصول على فترة التخزين ووقت أقدم إصدار
وحدة التحكم
في Google Cloud Console، انتقِل إلى صفحة قواعد البيانات.
اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
في قائمة التنقّل، انقر على التعافي من الكوارث.
في قسم الإعدادات ، اطّلِع على فترة الاحتفاظ بالبيانات ووقت أقدم إصدار.
- فترة الاحتفاظ بالبيانات: الفترة التي يحتفظ فيها Cloud Firestore بجميع إصدارات البيانات لقاعدة البيانات تكون القيمة ساعة واحدة عند إيقاف ميزة "الاسترداد في نقطة زمنية معيّنة" وسبعة أيام عند تفعيلها.
- وقت أقدم إصدار: الطابع الزمني الأقدم الذي يمكن قراءة الإصدارات القديمة من البيانات عنده في نافذة ميزة "الاسترداد في نقطة زمنية معيّنة". يتم تعديل هذه القيمة باستمرار من قِبل Cloud Firestore وتصبح قديمة في اللحظة التي يتم فيها طلبها. إذا كنت تستخدم هذه القيمة لاسترداد البيانات، احرص على مراعاة الوقت من اللحظة التي يتم فيها طلب القيمة إلى اللحظة التي تبدأ فيها عملية الاسترداد.
- الاسترداد في نقطة زمنية معيّنة: يعرض
Enabled، إذا كانت ميزة "الاسترداد في نقطة زمنية معيّنة" مفعّلة. إذا كانت هذه الميزة غير مفعّلة، سيظهر لكDisabled.
gcloud
نفِّذ الأمر gcloud firestore databases describe على النحو التالي:
gcloud firestore databases describe --database=DATABASE_ID
استبدِل DATABASE_ID برقم تعريف قاعدة البيانات أو '(default)'.
في ما يلي الناتج:
appEngineIntegrationMode: ENABLED
concurrencyMode: PESSIMISTIC
createTime: '2021-03-24T17:02:35.234Z'
deleteProtectionState: DELETE_PROTECTION_DISABLED
earliestVersionTime: '2023-06-12T16:17:25.222474Z'
etag: IIDayqOevv8CMNTvyNK4uv8C
keyPrefix: s
locationId: nam5
name: projects/PROJECT_ID/databases/DATABASE_ID
pointInTimeRecoveryEnablement: POINT_IN_TIME_RECOVERY_DISABLED
type: FIRESTORE_NATIVE
uid: 5230c382-dcd2-468f-8cb3-2a1acfde2b32
updateTime: '2021-11-17T17:48:22.171180Z'
versionRetentionPeriod: 3600s
حيث:
earliestVersionTime: الطابع الزمني لأقدم بيانات ميزة "الاسترداد في نقطة زمنية معيّنة" التي تم تخزينهاpointInTimeRecoveryEnablement: يعرضPOINT_IN_TIME_RECOVERY_ENABLEDإذا كانت ميزة "الاسترداد في نقطة زمنية معيّنة" مفعّلة. إذا كانت هذه الميزة غير مفعّلة، سيظهر لكPOINT_IN_TIME_RECOVERY_DISABLEDأو قد لا يظهر الحقلpointInTimeRecoveryEnablement.versionRetentionPeriod: الفترة الزمنية التي يتم خلالها الاحتفاظ ببيانات ميزة "الاسترداد في نقطة زمنية معيّنة" بالملّي ثانية يمكن أن تكون القيمة ساعة واحدة عند إيقاف ميزة "الاسترداد في نقطة زمنية معيّنة" أو سبعة أيام إذا كانت هذه الميزة مفعّلة.
قراءة بيانات ميزة "الاسترداد في نقطة زمنية معيّنة"
يمكنك قراءة بيانات ميزة "الاسترداد في نقطة زمنية معيّنة" باستخدام مكتبات العملاء أو طرق REST API أو أداة ربط FirestoreIO Apache Beam.مكتبات العملاء
Java
عليك استخدام معاملة ReadOnly لقراءة بيانات ميزة "الاسترداد في نقطة زمنية معيّنة". لا يمكنك تحديد readTime مباشرةً في عمليات القراءة.
لمزيد من المعلومات، اطّلِع على مقالة المعاملات وعمليات الكتابة المجمّعة.
Firestore firestore = …
TransactionOptions options =
TransactionOptions.createReadOnlyOptionsBuilder()
.setReadTime(
com.google.protobuf.Timestamp.newBuilder()
.setSeconds(1684098540L)
.setNanos(0))
.build();
ApiFuture<Void> futureTransaction = firestore.runTransaction(
transaction -> {
// Does a snapshot read document lookup
final DocumentSnapshot documentResult =
transaction.get(documentReference).get();
// Executes a snapshot read query
final QuerySnapshot queryResult =
transaction.get(query).get();
},
options);
// Blocks on transaction to complete
futureTransaction.get();
العقدة
عليك استخدام معاملة ReadOnly لقراءة بيانات ميزة "الاسترداد في نقطة زمنية معيّنة". لا يمكنك تحديد readTime مباشرةً في عمليات القراءة.
لمزيد من المعلومات، اطّلِع على مقالة المعاملات وعمليات الكتابة المجمّعة.
const documentSnapshot = await firestore.runTransaction(
updateFunction => updateFunction.get(documentRef),
{readOnly: true, readTime: new Firestore.Timestamp(1684098540, 0)}
);
const querySnapshot = await firestore.runTransaction(
updateFunction => updateFunction.get(query),
{readOnly: true, readTime: new Firestore.Timestamp(1684098540, 0)}
);
REST API
تتوفّر عمليات القراءة من ميزة "الاسترداد في نقطة زمنية معيّنة" في جميع طرق القراءة Cloud Firestore، وهي get وlist وbatchGet و listCollectionIds وlistDocuments و runQuery وrunAggregationQuery و partitionQuery.
لإجراء عملية قراءة باستخدام طرق REST، جرِّب أحد الخيارَين التاليَين:
في طلب طريقة القراءة، مرِّر قيمة
readTimeكطابع زمني متوافق مع ميزة "الاسترداد في نقطة زمنية معيّنة" في طريقةreadOptions. يمكن أن يكون الطابع الزمني لميزة "الاسترداد في نقطة زمنية معيّنة" طابعًا زمنيًا بدقة تصل إلى ميكروثانية خلال الساعة الماضية أو طابعًا زمنيًا بدقة تصل إلى دقيقة كاملة بعد الساعة الماضية، ولكن ليس قبلearliestVersionTime.استخدِم المَعلمة
readTimeمع طريقةBeginTransactionكجزء من معاملةReadOnlyلعمليات قراءة متعدّدة من ميزة "الاسترداد في نقطة زمنية معيّنة".
Apache Beam
استخدِم أداة ربط Cloud FirestoreIO Apache Beam لقراءة المستندات أو كتابتها على نطاق واسع في قاعدة بيانات Cloud Firestore باستخدام Dataflow.
تتوفّر عمليات القراءة من ميزة "الاسترداد في نقطة زمنية معيّنة" في طريقة القراءة التالية لأداة ربط
Cloud FirestoreIO. تتوافق طرق القراءة هذه مع طريقة withReadTime(@Nullable Instant readTime) التي يمكنك استخدامها لعمليات القراءة من ميزة "الاسترداد في نقطة زمنية معيّنة":
- FirestoreV1.BatchGetDocuments
- FirestoreV1.ListCollectionIds
- FirestoreV1.ListDocuments
- FirestoreV1.PartitionQuery
Java
يمكن استخدام الرمز البرمجي التالي مع نموذج رمز خط أنابيب Dataflow لعمليات القراءة أو الكتابة المجمّعة. يستخدم المثال طريقة withReadTime(@Nullable Instant readTime) لعمليات القراءة من ميزة "الاسترداد في نقطة زمنية معيّنة".
Instant readTime = Instant.ofEpochSecond(1684098540L);
PCollection<Document> documents =
pipeline
.apply(Create.of(collectionId))
.apply(
new FilterDocumentsQuery(
firestoreOptions.getProjectId(), firestoreOptions.getDatabaseId()))
.apply(FirestoreIO.v1().read().runQuery().withReadTime(readTime).withRpcQosOptions(rpcQosOptions).build())
...
للحصول على قائمة كاملة بأمثلة readTime في خط أنابيب Dataflow
، اطّلِع على مستودع GitHub.
الاستنساخ من قاعدة بيانات
يمكنك استنساخ قاعدة بيانات حالية في طابع زمني محدّد إلى قاعدة بيانات جديدة:
قاعدة البيانات المستنسَخة هي قاعدة بيانات جديدة سيتم إنشاؤها في الموقع الجغرافي نفسه لقاعدة البيانات المصدر.
لإنشاء نسخة طبق الأصل، Cloud Firestore يستخدم بيانات ميزة "الاسترداد في نقطة زمنية معيّنة" لقاعدة البيانات المصدر. تتضمّن قاعدة البيانات المستنسَخة جميع البيانات والفهارس.
سيتم تلقائيًا تشفير قاعدة البيانات المستنسَخة بالطريقة نفسها التي تم بها تشفير قاعدة البيانات المصدر، إما باستخدام تشفير Google التلقائي أو تشفير "مفاتيح التشفير التي يديرها العميل" (CMEK). يمكنك تحديد نوع تشفير مختلف أو استخدام مفتاح مختلف لتشفير "مفاتيح التشفير التي يديرها العميل".
تكون دقة الطابع الزمني دقيقة واحدة ويحدّد نقطة زمنية في الماضي، في الفترة المحدّدة من خلال نافذة ميزة "الاسترداد في نقطة زمنية معيّنة":
- إذا كانت ميزة "الاسترداد في نقطة زمنية معيّنة" مفعّلة لقاعدة بياناتك، يمكنك اختيار أي دقيقة في آخر 7 أيام (أو أقل إذا تم تفعيل هذه الميزة قبل أقل من 7 أيام).
- إذا لم تكن ميزة "الاسترداد في نقطة زمنية معيّنة" مفعّلة، يمكنك اختيار أي دقيقة في الساعة الماضية.
- يمكنك الاطّلاع على الطابع الزمني الأقدم الذي يمكنك اختياره في وصف قاعدة بياناتك.
وحدة التحكم
لا تتيح وحدة تحكُّم Firebase استنساخ قواعد البيانات. يمكنك استخدام تعليمات Google Cloud CLI لاستنساخ قواعد البيانات.
gcloud
استخدِم الأمر
gcloud firestore databases clone
لاستنساخ قاعدة بيانات:
gcloud firestore databases clone \
--source-database='SOURCE_DATABASE' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_DATABASE_ID'
استبدِل ما يلي:
SOURCE_DATABASE: اسم قاعدة بيانات حالية تريد استنساخها يستخدم الاسم التنسيق
projects/PROJECT_ID/databases/SOURCE_DATABASE_ID.PITR_TIMESTAMP: طابع زمني لميزة "الاسترداد في نقطة زمنية معيّنة" بتنسيق RFC 3339، بدقة تصل إلى دقيقة مثلاً:
2025-06-01T10:20:00.00Zأو2025-06-01T10:30:00.00-07:00DESTINATION_DATABASE_ID: رقم تعريف قاعدة بيانات جديدة مستنسَخة يجب ألا يكون رقم تعريف قاعدة البيانات هذا مرتبطًا بقاعدة بيانات حالية.
مثال:
gcloud firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db'
إذا أردت الربط ببعض العلامات أثناء استنساخ قاعدة بيانات، استخدِم الأمر السابق مع العلامة --tags، وهي قائمة اختيارية بالعلامات على شكل أزواج من `KEY=VALUE` للربط بها.
مثال:
gcloud firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db' \
--tags=key1=value1,key2=value2
سيكون لقاعدة البيانات المستنسَخة تلقائيًا إعدادات التشفير نفسها لقاعدة البيانات المصدر. لتغيير إعدادات التشفير، استخدِم الوسيطة --encryption-type:
- (تلقائي)
use-source-encryption: استخدِم إعدادات التشفير نفسها لقاعدة البيانات المصدر. google-default-encryption: استخدِم تشفير Google التلقائي.customer-managed-encryption: استخدِم تشفير "مفاتيح التشفير التي يديرها العميل". حدِّد رقم تعريف مفتاح في الوسيطة--kms-key-name.
يوضّح المثال التالي كيفية ضبط تشفير "مفاتيح التشفير التي يديرها العميل" لقاعدة البيانات المستنسَخة:
gcloud firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db' \
--encryption-type='customer-managed-encryption' \
--kms-key-name='projects/example-project/locations/us-central1/keyRings/example-key-ring/cryptoKeys/example-key'
Firebase CLI
استخدِم الأمر firebase firestore:databases:clone لاستنساخ قاعدة بيانات:
firebase firestore:databases:clone \
'SOURCE_DATABASE' \
'DESTINATION_DATABASE' \
--snapshot-time 'PITR_TIMESTAMP'
استبدِل ما يلي:
SOURCE_DATABASE: اسم قاعدة بيانات حالية تريد استنساخها يستخدم الاسم التنسيق
projects/PROJECT_ID/databases/SOURCE_DATABASE_ID.DESTINATION_DATABASE: اسم قاعدة بيانات جديدة مستنسَخة يستخدم الاسم التنسيق
projects/PROJECT_ID/databases/DESTINATION_DATABASE_ID. يجب ألا يكون اسم قاعدة البيانات هذا مرتبطًا بقاعدة بيانات حالية.PITR_TIMESTAMP: طابع زمني لميزة "الاسترداد في نقطة زمنية معيّنة" بتنسيق RFC 3339، بدقة تصل إلى دقيقة مثلاً:
2025-06-01T10:20:00.00Zأو2025-06-01T10:30:00.00-07:00إذا لم يتم تحديد ذلك، سيكون الطابع الزمني الذي تم اختياره هو الوقت الحالي، مع تقريبه إلى أقرب دقيقة.
سيكون لقاعدة البيانات المستنسَخة تلقائيًا إعدادات التشفير نفسها لقاعدة البيانات المصدر. لتغيير إعدادات التشفير، استخدِم الوسيطة --encryption-type:
- (تلقائي)
USE_SOURCE_ENCRYPTION: استخدِم إعدادات التشفير نفسها لقاعدة البيانات المصدر. GOOGLE_DEFAULT_ENCRYPTION: استخدِم تشفير Google التلقائي.CUSTOMER_MANAGED_ENCRYPTION: استخدِم تشفير "مفاتيح التشفير التي يديرها العميل". حدِّد رقم تعريف مفتاح في الوسيطة--kms-key-name.
يوضّح المثال التالي كيفية ضبط تشفير "مفاتيح التشفير التي يديرها العميل" لقاعدة البيانات المستنسَخة:
firebase firestore:databases:clone \
'projects/example-project/databases/(default)' \
'projects/example-project/databases/example-dest-db' \
--snapshot-time 'PITR_TIMESTAMP' \
--encryption-type CUSTOMER_MANAGED_ENCRYPTION
القيود
لا تستنسخ عملية الاستنساخ App Engine بيانات البحث أو كيانات الكائنات الثنائية الكبيرة من قاعدة بيانات (default). لا تكون هذه البيانات صالحة إلا لقاعدة بيانات (default)، ولن تكون مفيدة إذا استنسخت من (default) إلى قاعدة بيانات لا تتوافق مع هذه البيانات، لذا يتم استبعادها من النسخ المستنسَخة.
تصدير البيانات واستيرادها من بيانات ميزة "الاسترداد في نقطة زمنية معيّنة"
يمكنك تصدير قاعدة بياناتك إلى Cloud Storage من بيانات ميزة "الاسترداد في نقطة زمنية معيّنة"
باستخدام الأمر gcloud firestore export. يمكنك تصدير بيانات ميزة "الاسترداد في نقطة زمنية معيّنة" حيث يكون الطابع الزمني طابعًا زمنيًا بدقة تصل إلى دقيقة كاملة خلال الأيام السبعة الماضية، ولكن ليس قبل earliestVersionTime. إذا لم تعُد البيانات متوفّرة في الطابع الزمني المحدّد، ستفشل عملية التصدير.
تتوافق عملية تصدير ميزة "الاسترداد في نقطة زمنية معيّنة" مع جميع الفلاتر، بما في ذلك تصدير جميع المستندات وتصدير مجموعات معيّنة.
صدِّر قاعدة البيانات، مع تحديد المَعلمة
snapshot-timeللطابع الزمني للاسترداد الذي تم اختياره.gcloud
نفِّذ الأمر التالي لتصدير قاعدة البيانات إلى مساحة التخزين السحابي.
gcloud firestore export gs://BUCKET_NAME_PATH \ --snapshot-time=PITR_TIMESTAMP \ --collection-ids=COLLECTION_IDS \ --namespace-ids=NAMESPACE_IDSحيث:
BUCKET_NAME_PATH- مساحة تخزين سحابي صالحة مع بادئة مسار اختيارية يتم فيها تخزين ملفات التصديرCloud StoragePITR_TIMESTAMP- طابع زمني لميزة "الاسترداد في نقطة زمنية معيّنة" بدقة تصل إلى دقيقة، مثلاً2023-05-26T10:20:00.00Zأو2023-10-19T10:30:00.00-07:00COLLECTION_IDS- قائمة بأرقام تعريف المجموعات أو أرقام تعريف حزم المجموعات، مثلاً'specific-collection-group1','specific-collection-group2'.NAMESPACE_IDS- قائمة بأرقام تعريف مساحات الأسماء، مثلاً'customer','orders'
يُرجى مراعاة النقاط التالية قبل تصدير بيانات ميزة "الاسترداد في نقطة زمنية معيّنة":
- حدِّد الطابع الزمني بتنسيق RFC 3339
format.
مثلاً:
2023-05-26T10:20:00.00Zأو2023-10-19T10:30:00.00-07:00 - تأكَّد من أنّ الطابع الزمني الذي تحدّده هو طابع زمني بدقة تصل إلى دقيقة كاملة خلال الأيام السبعة الماضية، ولكن ليس قبل
earliestVersionTime. إذا لم تعُد البيانات متوفّرة في الطابع الزمني المحدّد، سيتم إنشاء خطأ. يجب أن يكون الطابع الزمني بدقة تصل إلى دقيقة كاملة، حتى إذا كان الوقت المحدّد خلال الساعة الماضية. - لن يتم تحصيل رسوم منك مقابل عملية تصدير غير ناجحة لبيانات ميزة "الاسترداد في نقطة زمنية معيّنة".
استيراد إلى قاعدة بيانات
استخدِم الخطوات الواردة في مقالة استيراد جميع المستندات لاستيراد قاعدة البيانات التي تم تصديرها. إذا كان أي مستند موجودًا في قاعدة بياناتك، سيتم استبداله.