دليل إدارة ونقل ملفات قواعد البيانات في ServBay
يعد ServBay بيئة تطوير ويب محلية قوية، حيث يدمج أنظمة إدارة قواعد البيانات الشائعة ويوفر إدارة منظمة لملفات البيانات الخاصة بها. فهم البنية الافتراضية لتخزين ملفات قواعد البيانات في ServBay ضروري لكل مطور يرغب في إجراء نسخ احتياطي، أو استعادة، أو نقل بياناته بأمان.
يقدم هذا الدليل شرحًا مفصلًا عن الهيكل الافتراضي لتخزين ملفات قواعد البيانات في ServBay، بالإضافة إلى إرشادات حول كيفية إدارة الملفات ونقل البيانات بين بيئات مختلفة باستخدام أدوات سطر الأوامر القياسية.
TIP
يقدم ServBay خاصية النسخ الاحتياطي والاستعادة لبيانات قواعد البيانات، حيث يمكنك إجراء نسخ احتياطي تلقائي أو يدوي لقاعدة بيانات MySQL، MariaDB، أو PostgreSQL. لمزيد من التفاصيل، راجع النسخ الاحتياطي والاستعادة.
الهيكل الافتراضي لتخزين ملفات قواعد البيانات في ServBay
لتسهيل الإدارة وعزل بيانات الإصدارات المختلفة من قواعد البيانات، يتم تخزين جميع ملفات قواعد البيانات تحت مجلد واحد /Applications/ServBay/db
. يتم تصنيف هذا المجلد حسب نوع قاعدة البيانات، ثم تنظم الملفات داخله بحسب رقم الإصدار الرئيسي (major version) لكل قاعدة بيانات.
فيما يلي مثال هيكلي نموذجي لمجلد /Applications/ServBay/db
:
/Applications/ServBay/db
├── mysql
│ ├── 8.0
│ └── 8.1
├── mariadb
│ ├── 10.10
│ ├── 10.11
│ ├── 10.5
│ ├── 10.6
│ ├── 10.7
│ ├── 10.8
│ ├── 10.9
│ ├── 11.0
│ ├── 11.1
│ ├── 11.2
│ └── 11.3
├── postgresql
│ ├── 10
│ ├── 11
│ ├── 12
│ ├── 13
│ ├── 14
│ ├── 15
│ └── 16
└── redis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
شرح هيكل المجلدات
/Applications/ServBay/db
: المجلد الرئيسي الذي يخزن كافة ملفات قواعد البيانات في ServBay.mysql
: هنا تحفظ ملفات بيانات قاعدة بيانات MySQL، وتوزع حسب إصدار رئيسي مثل8.0
و8.1
.mariadb
: يتم تخزين ملفات بيانات MariaDB هنا، وتوزع حسب الإصدار الرئيسي مثل10.11
و11.3
.postgresql
: يحتوي على ملفات بيانات PostgreSQL، موزعة حسب الإصدار الرئيسي كـ15
و16
.redis
: تخزن ملفات حفظ بيانات Redis الدائمة، غالبًا باسمdump.rdb
.
ميزة هذا التنظيم أنه يمكنك تثبيت وتشغيل عدة إصدارات رئيسية من نفس قاعدة البيانات داخل ServBay في نفس الوقت، مع بقاء ملفات البيانات معزولة تمامًا لمنع أي تعارض أو مشاكل.
إدارة ملفات قواعد البيانات
أثناء التطوير المحلي، غالبًا ما تحتاج إلى نسخ احتياطي، أو استعادة، أو ترحيل قواعد البيانات. فيما يلي طرق تنفيذ هذه العمليات باستخدام أدوات سطر الأوامر القياسية لكل قاعدة بيانات. انتبه عادةً أن هذه الأوامر تتطلب تشغيلها من خلال واجهة الطرفية التي يوفرها ServBay أو ضبط متغيرات البيئة بشكل صحيح لاستدعاء الأدوات الملائمة.
النسخ الاحتياطي لقواعد البيانات
النسخ الاحتياطي المنتظم خطوة أساسية لضمان سلامة بياناتك. هذه بعض الأمثلة على كيفية إجراء نسخ احتياطي لكل نوع من قواعد البيانات داخل ServBay.
النسخ الاحتياطي لـ MySQL
استخدام أداة mysqldump
هو الطريقة التقليدية للنسخ الاحتياطي لـ MySQL.
bash
# انتقل إلى بيئة الطرفية التي يقدمها ServBay أو تأكد من تضمين مجلد bin الخاص بـ ServBay في متغير PATH
# مثال: export PATH="/Applications/ServBay/bin:$PATH"
mysqldump -u your_username -p your_database > /Applications/ServBay/backup/your_database.sql
1
2
3
4
2
3
4
your_username
: استبدله باسم مستخدم قاعدة البيانات.your_database
: استبدله باسم قاعدة البيانات المراد نسخها احتياطيًا./Applications/ServBay/backup/your_database.sql
: استبدله بالمسار واسم الملف الذي ترغب بحفظ النسخة الاحتياطية فيه. يُنصح بحفظ النسخة الاحتياطية في مكان خارج مجلد ServBay كالمجلد الرئيسي للمستخدم.
النسخ الاحتياطي لـ MariaDB
العملية مماثلة تمامًا لـ MySQL، باستخدام نفس أداة mysqldump
.
bash
# انتقل إلى بيئة الطرفية الخاصة بـ ServBay أو أضف bin الخاص بـ ServBay إلى PATH
mysqldump -u your_username -p your_database > /Applications/ServBay/backup/your_database.sql
1
2
3
2
3
- شرح المعاملات كما سبق.
النسخ الاحتياطي لـ PostgreSQL
استخدم أداة pg_dump
للنسخ الاحتياطي لـ PostgreSQL. لاحظ أن الاتصال الافتراضي في ServBay يكون غالبًا عبر Unix Domain Socket بمسار /Applications/ServBay/tmp
، لذا يجب تحديده في الأمر.
bash
# انتقل إلى بيئة الطرفية الخاصة بـ ServBay أو أضف bin الخاص بـ ServBay إلى PATH
pg_dump -h /Applications/ServBay/tmp -U your_username -d your_database -F c -b -v -f /Applications/ServBay/backup/your_database.dump
1
2
3
2
3
- معاملات الاتصال: تحديد طريقة الاتصال مع خادم PostgreSQL.
- macOS:
-h /Applications/ServBay/tmp
(مسار Unix Domain Socket) - Windows:
-h localhost -p 5432
(اتصال TCP)
- macOS:
-U your_username
: استبدله باسم مستخدم قاعدة البيانات.-d your_database
: اسم قاعدة البيانات المطلوبة.-F c
: اختيار صيغة النسخ الاحتياطي كأرشيف مخصص (موصى به).-b
: تضمين الكائنات الكبيرة (blobs).-v
: إظهار التفاصيل.-f /Applications/ServBay/backup/your_database.dump
: المسار لحفظ النسخة الاحتياطية.
النسخ الاحتياطي لـ Redis
عادةً يكون نسخ ملف dump.rdb
هو الطريقة المتبعة للنسخ الاحتياطي في Redis.
bash
# انتقل إلى بيئة الطرفية الخاصة بـ ServBay
# تأكد من تشغيل خدمة Redis، أو ضبطها على الحفظ التلقائي (BGSAVE)
cp /Applications/ServBay/db/redis/dump.rdb /Applications/ServBay/backup/dump.rdb
1
2
3
4
2
3
4
/Applications/ServBay/db/redis/dump.rdb
: مسار الملف الدائم الافتراضي الخاص بـ Redis./Applications/ServBay/backup/dump.rdb
: مسار واسم النسخة الاحتياطية المطلوب الحفظ فيها.
استعادة قواعد البيانات
عند فقد البيانات أو الحاجة للرجوع لحالة سابقة، يمكنك استعادة البيانات من ملف النسخة الاحتياطية.
استعادة MySQL
استخدم أداة mysql
لاستعادة ملفات النسخ الاحتياطي الخاصة بـ MySQL.
bash
# انتقل إلى بيئة الطرفية الخاصة بـ ServBay
mysql -u your_username -p your_database < /Applications/ServBay/backup/your_database.sql
1
2
3
2
3
your_username
: اسم مستخدم قاعدة البيانات.your_database
: اسم قاعدة البيانات المراد الاستعادة إليها (يجب إنشاؤها مسبقًا)./Applications/ServBay/backup/your_database.sql
: مسار ملف النسخة الاحتياطية.
استعادة MariaDB
الخطوات نفسها باستعمال أداة mysql
.
bash
# انتقل إلى بيئة الطرفية الخاصة بـ ServBay
mysql -u your_username -p your_database < /Applications/ServBay/backup/your_database.sql
1
2
3
2
3
- شرح المعاملات كما سابقًا.
استعادة PostgreSQL
استخدم أداة pg_restore
لاستعادة النسخ الاحتياطية بصيغة مخصصة. كذلك يجب تحديد مسار socket.
bash
# انتقل إلى بيئة الطرفية الخاصة بـ ServBay
pg_restore -h /Applications/ServBay/tmp -U your_username -d your_database -v /Applications/ServBay/backup/your_database.dump
1
2
3
2
3
- معاملات الاتصال: تحديد طريقة الاتصال.
- macOS:
-h /Applications/ServBay/tmp
(مسار Unix Domain Socket) - Windows:
-h localhost -p 5432
(اتصال TCP)
- macOS:
-U your_username
: اسم المستخدم.-d your_database
: اسم قاعدة البيانات المراد الاستعادة إليها (يجب إنشاؤها مسبقًا).-v
: إظهار التفاصيل.- مسار ملف النسخ الاحتياطي: مسار الملف.
- macOS:
/Applications/ServBay/backup/your_database.dump
- Windows:
C:\ServBay\backup\your_database.dump
- macOS:
استعادة Redis
عادةً يتم استعادة Redis بنسخ ملف dump.rdb
إلى مجلد البيانات الخاص بـ Redis. ملاحظة هامة: يجب إيقاف خدمة Redis قبل التنفيذ.
bash
# انتقل إلى بيئة الطرفية الخاصة بـ ServBay
# أوقف خدمة Redis في ServBay
# انسخ ملف النسخة الاحتياطية
cp /Applications/ServBay/backup/dump.rdb /Applications/ServBay/db/redis/dump.rdb
# شغل خدمة Redis في ServBay
1
2
3
4
5
2
3
4
5
/Applications/ServBay/backup/dump.rdb
: مسار نسخة النسخ الاحتياطي./Applications/ServBay/db/redis/dump.rdb
: مسار الملف الافتراضي الخاص بـ Redis.
نقل قواعد البيانات
نقل قواعد البيانات عملية تهدف لتحويل قاعدة البيانات من بيئة إلى أخرى (قد يكون ServBay آخر، خادم بعيد، أو بيئة محلية مغايرة). تتم هذه العملية عادةً بتصدير البيانات من البيئة المصدر ومن ثم استيرادها في البيئة المستهدفة.
نقل MySQL
نقل MySQL من العمليات الشائعة في التطوير اليومي.
تصدير قاعدة البيانات من البيئة المصدر:
bash# نفذ في طرفية البيئة المصدر mysqldump -u your_source_username -p your_database > your_database.sql
1
2your_source_username
: اسم المستخدم في البيئة المصدر.your_database
: اسم قاعدة البيانات المراد نقلها.your_database.sql
: اسم ملف التصدير.
نقل ملف التصدير إلى البيئة المستهدفة: استخدم
scp
أو أي أداة نقل ملفات لنقل الملف إلى مكان يمكن لـ ServBay الوصول إليه (مثلا/Applications/ServBay/backup/
).إنشاء قاعدة بيانات جديدة في البيئة المستهدفة:
bash# نفذ في البيئة المستهدفة mysql -u your_target_username -p -e "CREATE DATABASE your_database;"
1
2your_target_username
: اسم مستخدم قاعدة البيانات في البيئة المستهدفة.your_database
: اسم قاعدة البيانات المطلوب إنشاؤها (ويفضل مطابقته لاسم المصدر).
استيراد البيانات في البيئة المستهدفة:
bash# نفذ في البيئة المستهدفة mysql -u your_target_username -p your_database < /path/to/your_database.sql
1
2/path/to/your_database.sql
: مسار الملف المصدر في البيئة المستهدفة.
نقل MariaDB
نقل MariaDB بنفس خطوات MySQL، إذ يستخدمان نفس الأدوات وصيغ الملفات.
- تصدير قاعدة البيانات من البيئة المصدر:bash
# نفذ في بيئة المصدر mysqldump -u your_source_username -p your_database > your_database.sql
1
2 - نقل ملف التصدير إلى البيئة المستهدفة.
- إنشاء قاعدة بيانات جديدة في البيئة المستهدفة:bash
# نفذ في البيئة المستهدفة mysql -u your_target_username -p -e "CREATE DATABASE your_database;"
1
2 - استيراد البيانات في البيئة المستهدفة:bash
# نفذ في البيئة المستهدفة mysql -u your_target_username -p your_database < /path/to/your_database.sql
1
2
نقل PostgreSQL
نقل PostgreSQL باستخدام أدوات pg_dump
و pg_restore
. يجب الانتباه لموقع socket في ServBay.
تصدير قاعدة البيانات من البيئة المصدر:
bash# نفذ في طرفية البيئة المصدر # إذا كانت البيئة المصدر ServBay pg_dump -h /Applications/ServBay/tmp -U your_source_username -d your_database -F c -b -v -f your_database.dump # إذا كانت البيئة المصدر مختلفة، عدل معاملات الاتصال حسب الإعداد.
1
2
3
4your_source_username
: اسم المستخدم في المصدر.your_database
: اسم قاعدة البيانات المطلوب نقلها.your_database.dump
: اسم ملف النسخة الاحتياطية.
نقل نسخة النسخ الاحتياطي إلى البيئة المستهدفة: استخدم
scp
أو أي أداة نقل لنقل الملف.إنشاء قاعدة بيانات جديدة في البيئة المستهدفة:
bash# نفذ في الجانب المستهدف # اتصل بقاعدة بيانات postgres الافتراضية لإنشاء قاعدة بيانات جديدة psql -h /Applications/ServBay/tmp -U your_target_username -d postgres -c "CREATE DATABASE your_database;"
1
2
3your_target_username
: اسم المستخدم في البيئة المستهدفة.your_database
: اسم القاعدة الجديدة.
استيراد البيانات في البيئة المستهدفة:
bash# نفذ في البيئة المستهدفة pg_restore -h /Applications/ServBay/tmp -U your_target_username -d your_database -v /path/to/your_database.dump
1
2/path/to/your_database.dump
: مسار ملف النسخة الاحتياطية في البيئة المستهدفة.
نقل Redis
عادةً يتم نقل Redis بنسخ ملف dump.rdb
مباشرةً.
الحصول على ملف
dump.rdb
من المصدر:bash# نفذ في مصدر البيانات # تأكد من إيقاف خدمة Redis أو اكتمال عملية BGSAVE cp /path/to/source/redis/dump.rdb ./dump.rdb
1
2
3نقل ملف
dump.rdb
إلى مجلد بيانات Redis في ServBay:bash# نفذ في المصدر أو عبر خادم وسيط scp ./dump.rdb your_target_server:/Applications/ServBay/db/redis/dump.rdb
1
2your_target_server
: عنوان أو اسم مضيف ServBay المقصد.- ملاحظة مهمة: توقف خدمة Redis على ServBay الهدف قبل النسخ.
تشغيل خدمة Redis على البيئة المستهدفة: بعد التشغيل ستقوم الخدمة بتحميل ملف
dump.rdb
الجديد تلقائيًا.
ملاحظات هامة
- إيقاف الخدمة: يجب دائمًا إيقاف الخدمة (خصوصًا MySQL/MariaDB/PostgreSQL) قبل نسخ أو نقل ملفات قواعد البيانات مباشرةً، وذلك عبر واجهة ServBay أو سطر الأوامر؛ فالنسخ أثناء التشغيل قد يؤدي لفقد جزء من البيانات أو تلفها. كذلك يجب إيقاف Redis عند التعامل مع
dump.rdb
. - الصلاحيات: تأكد من أن المستخدم الذي ينفذ عمليات النقل أو النسخ لديه صلاحيات كافية للوصول وتعديل المجلدات والملفات ذات الصلة.
- مسارات الملفات: تحقق جيدًا من مسارات تثبيت ServBay (عادةً
/Applications/ServBay
) ومسارات ملفات قواعد البيانات، خاصةً في الإصدارات المختلفة. - المستخدمون والصلاحيات: بعد النقل، راجع المستخدمين والصلاحيات وملفات الإعداد في قاعدة البيانات حتى تتوافق مع البيئة الجديدة.
- النسخ الاحتياطي المدمج في ServBay: يوفر ServBay خاصية نسخ احتياطي واستعادة مدمجة وقابلة للاستخدام عبر واجهة المستخدم، تشمل إعدادات النظام وملفات المواقع وقواعد البيانات وشهادات SSL، ويمكن الاعتماد عليها جنبًا إلى جنب مع الطرق اليدوية.
خلاصة
يساعدك التنظيم الواضح لملفات قواعد البيانات في ServBay على سهولة إدارة البيانات. هذا الدليل قدم لك شرحًا تفصيليًا لطرق حفظ ملفات MySQL، MariaDB، PostgreSQL، وRedis في ServBay، مع خطوات النسخ الاحتياطي، الاستعادة، والنقل بأدوات سطر الأوامر القياسية. إتقان هذه المهارات يعزز قدرتك على التحكم ببيئة التطوير المحلية ويوفر حماية أكبر للبيانات، كما يمكنك نقل المشاريع بكفاءة وسرعة بين البيئات المختلفة. مع الاستفادة من المميزات المدمجة مثل النسخ الاحتياطي التلقائي، ستزيد من إنتاجيتك وراحة بالك في إدارة البيانات.