إدارة واستخدام قاعدة بيانات PostgreSQL
تُعد PostgreSQL نظام إدارة قواعد بيانات علائقية مفتوح المصدر قوي وقابل للتوسعة ويتبع المعايير، ويحظى بشعبية واسعة بين مجتمع المطورين. يتميَّز ServBay، بوصفه بيئة تطوير ويب محلية مصممة خصيصًا لنظام macOS، بتضمينه PostgreSQL بشكل افتراضي، مما يسهّل عملية التثبيت والإدارة بدرجة كبيرة.
يقدّم هذا الدليل للمطورين شرحًا مفصّلًا حول كيفية إدارة واستخدام PostgreSQL بكفاءة ضمن بيئة ServBay، ويغطي الجوانب الجوهرية بدءاً من التثبيت والإعداد ومروراً بالعمليات اليومية، النسخ الاحتياطي والاستعادة، تحسين الأداء وإدارة الأمان.
تثبيت وإعداد PostgreSQL
يوفر ServBay واجهة رسومية سهلة لإدارة الحزم والبرمجيات، بما في ذلك PostgreSQL.
تثبيت PostgreSQL
- افتح تطبيق ServBay.
- اضغط على قائمة
الحزم
من الشريط الجانبي الأيسر. - ابحث عن
PostgreSQL
في قائمة الحزم المتاحة. - اختر إصدار PostgreSQL الذي تحتاج إليه (يدعم ServBay عدة إصدارات مثل PostgreSQL 10 إلى 17).
- اضغط زر التثبيت لبدء عملية التثبيت.
الصورة: اختيار وتثبيت إصدار PostgreSQL في ServBay
بدء وإيقاف وإدارة خدمة PostgreSQL
بعد اكتمال التثبيت، يمكنك إدارة حالة تشغيل خدمة PostgreSQL من خلال منصة ServBay الإدارية أو باستخدام أداة الأوامر servbayctl
.
استخدام منصة الإدارة في ServBay
- افتح تطبيق ServBay.
- اضغط على
الحزم
في الشريط الجانبي الأيسر. - ابحث عن إصدار PostgreSQL الذي تم تثبيته.
- استخدم زر التبديل بجانب الحزمة لبدء أو إيقاف أو إعادة تشغيل الخدمة.
استخدام أداة الأوامر servbayctl
توفر أداة servbayctl
واجهة أوامر قوية لإدارة جميع مكونات ServBay.
bash
# بدء خدمة PostgreSQL لإصدار محدد (مثلاً PostgreSQL 16)
servbayctl start postgresql 16
# إيقاف خدمة PostgreSQL لإصدار محدد
servbayctl stop postgresql 16
# إعادة تشغيل خدمة PostgreSQL
servbayctl restart postgresql 16
# التحقق من حالة خدمة PostgreSQL لإصدار محدد
servbayctl status postgresql 16
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
ملاحظة: يجب أن يتطابق رقم الإصدار في الأمر (مثلاً 16
) مع إصدار PostgreSQL المثبت في ServBay لديك.
إعداد PostgreSQL
يتيح لك ServBay تعديل إعدادات PostgreSQL بسهولة. التكوين الفعّال ضروري لتحسين أداء قاعدة البيانات وضمان الأمان والاستفادة المثلى من موارد النظام.
يوفّر ServBay واجهة رسومية قوية لضبط إعدادات خدمة PostgreSQL، كما يمكنك كذلك تحرير ملفات الإعدادات مباشرة. راجع وثيقة تعديل إعدادات PostgreSQL لمعرفة كيف يمكنك تعديل وتحسين إعدادات PostgreSQL عبر واجهة ServBay أو يدويًا.
الاتصال بقاعدة بيانات PostgreSQL
الاتصال بقاعدة البيانات هو الخطوة الأولى لأي عملية إدارية. يمكنك استخدام أداة سطر الأوامر psql
أو أدوات رسومية مثل pgAdmin للاتصال بمثيل PostgreSQL العامل في ServBay.
يوفر ServBay طريقتين رئيسيتين للاتصال بـ PostgreSQL: الاتصال عبر TCP/IP (مناسب للأدوات الخارجية أو الاتصالات عبر الحاويات/الخدمات) أو الاتصال عبر Socket محلي (الموصى به داخليًا في ServBay لكونه أسرع وأكثر أمانًا).
الحصول على بيانات الاعتماد
قبل الاتصال، تحتاج للحصول على اسم المستخدم وكلمة المرور لـ PostgreSQL. عادةً ما يقوم ServBay بتعيين بيانات افتراضية أثناء التثبيت أو التهيئة الأولية، ويمكنك إيجاد هذه المعلومات من واجهة إدارة ServBay، خصوصًا للمستخدم الافتراضي (مثل postgres
) أو أي مستخدمين آخرين قمت بإنشائهم.
الاتصال باستخدام أداة سطر الأوامر psql
psql
هو عميل تفاعلي رسمي لسطر الأوامر مقدم من PostgreSQL.
باستخدام اتصال TCP/IP: يتيح الاتصال عبر بروتوكول الشبكة، ويستخدم عادةً مع
localhost
أو عنوان شبكة آخر. المنفذ الافتراضي لـ PostgreSQL في ServBay هو5432
.bashpsql -U your_username -h localhost -d your_database -p 5432
1استبدل
your_username
باسم المستخدم، وyour_database
باسم قاعدة البيانات المراد الاتصال بها.باستخدام اتصال Socket محلي: في إعدادات ServBay الافتراضية يتم استخدام Unix Domain Socket للاتصال بـ PostgreSQL، ما يوفر سرعة وأماناً أعلى، والملف الخاص بالـ Socket يوجد غالبًا في مجلد مؤقت ضمن ServBay.
bashpsql -U your_username -h /Applications/ServBay/tmp -d your_database
1استبدل
your_username
باسم المستخدم، وyour_database
باسم قاعدة البيانات./Applications/ServBay/tmp
هو المسار الافتراضي لملف Socket في ServBay.
الاتصال باستخدام أداة pgAdmin الرسومية
pgAdmin هو أداة رسومية قوية مفتوحة المصدر لإدارة PostgreSQL.
- تثبيت pgAdmin: إذا لم يكن ServBay يتضمن pgAdmin مدمجاً، يمكنك تحميله وتثبيته من موقع pgAdmin الرسمي.
- افتح pgAdmin.
- أنشئ اتصال خادم جديد: انقر على
Add New Server
. - أدخِل بيانات الاتصال:
- General: اسم الاتصال (مثلاً
ServBay PostgreSQL
). - Connection:
- Hostname/address:
localhost
- Port:
5432
- Maintenance database: عادةً
postgres
- Username: اسم المستخدم من لوحة تحكم ServBay (مثل
postgres
) - Password: كلمة المرور من لوحة تحكم ServBay
- Hostname/address:
- SSL mode: اختر الأنسب (عادةً
Prefer
أوRequire
لضمان الأمان، لكن في إعدادات ServBay الافتراضية قد يعمل أيضًا معAllow
أوDisable
؛ استشر إعدادات SSL في ServBay).
- General: اسم الاتصال (مثلاً
- انقر على
Save
للاتصال بخادم قاعدة البيانات.
أساسيات إدارة قواعد البيانات
بعد الاتصال بـ PostgreSQL، يمكنك القيام بمجموعة من مهام الإدارة الأساسية.
عرض قواعد البيانات والمستخدمين
ضمن أداة psql
يمكنك استخدام أوامر البداية العكسية (\
) لاستعراض قواعد البيانات والمستخدمين:
- لاستعراض جميع قواعد البيانات:sql
\l
1 - لاستعراض جميع المستخدمين (الأدوار):sql
\du
1
إنشاء قاعدة بيانات ومستخدم جديد
يمكنك تنفيذ أوامر SQL لإنشاء قواعد بيانات ومستخدمين جدد ومنحهم الصلاحيات حسب الحاجة.
إنشاء قاعدة بيانات جديدة:
sqlCREATE DATABASE servbay_demo_db;
1يُنصح باستخدام اسم قاعدة بيانات مرتبط بمشروعك لسهولة الإدارة.
إنشاء مستخدم جديد وتعيين كلمة مرور:
sqlCREATE USER servbay_user WITH PASSWORD 'a_strong_password';
1استبدل
servbay_user
باسم المستخدم المطلوب، وa_strong_password
بكلمة مرور قوية.منح المستخدم صلاحيات على قاعدة البيانات:
sqlGRANT ALL PRIVILEGES ON DATABASE servbay_demo_db TO servbay_user;
1هذا يمنح المستخدم جميع الصلاحيات على قاعدة البيانات المحددة. لأسباب أمنية، يُفضّل منح أقل قدر ممكن من الصلاحيات اللازمة.
إعادة تعيين كلمة مرور مستخدم الجذر (Root)
إذا فقدت كلمة مرور المستخدم الجذر لـ PostgreSQL (عادةً postgres
)، يوفر ServBay أداة إعادة تعيين سهلة من خلال الواجهة الرسومية، دون الحاجة لأوامر معقدة أو تحرير ملفات النظام. راجع لوحة تحكم ServBay أو الوثائق للعثور على خيار إعادة تعيين كلمة المرور في إعدادات حزمة PostgreSQL.
النسخ الاحتياطي والاستعادة
النسخ الاحتياطي المنتظم لقاعدة البيانات ضروري لحماية بياناتك. داخل بيئة ServBay يمكنك استخدام أدوات PostgreSQL القياسية مثل pg_dump
وpg_restore
، أو الاستفادة من ميزة النسخ الاحتياطي المدمجة في ServBay.
النسخ الاحتياطي اليدوي باستخدام pg_dump
تُستخدم أداة pg_dump
لتصدير بيانات PostgreSQL.
يُوصَى بحفظ ملفات النسخ الاحتياطي في المجلد الذي توصي به ServBay:
bash
/Applications/ServBay/backup/postgresql
1
مثال على تنفيذ النسخ الاحتياطي باستخدام pg_dump
:
bash
pg_dump -U your_username -d your_database -F c -b -v -f /Applications/ServBay/backup/postgresql/your_database_backup.dump
1
-U your_username
: اسم المستخدم.-d your_database
: اسم قاعدة البيانات.-F c
: إخراج النسخة بتنسيق أرشيف مخصص (موصى به ويدعم الاستعادة المرنة).-b
: تضمين الكائنات الكبيرة.-v
: تفعيل الوضع التفصيلي.-f <filepath>
: تحديد اسم ومسار ملف النسخ الاحتياطي.
الاستعادة اليدوية بواسطة pg_restore
تُستخدم أداة pg_restore
لاستعادة قاعدة البيانات من أرشيفات pg_dump
.
bash
pg_restore -U your_username -d target_database -v /Applications/ServBay/backup/postgresql/your_database_backup.dump
1
-U your_username
: اسم المستخدم للاتصال.-d target_database
: اسم قاعدة البيانات الهدف. (يجب إنشاؤها مسبقًا).-v
: تفعيل الوضع التفصيلي.<filepath>
: مسار ملف النسخ الاحتياطي.
الاستفادة من ميزة النسخ الاحتياطي المدمجة في ServBay
يوفر ServBay واجهة رسومية سهلة وخيارات آلية لنسخ البيئة المحلية، بما في ذلك قواعد بيانات PostgreSQL.
تشمل ميزة النسخ الاحتياطي في ServBay:
- نسخ احتياطي يدوي: بنقرة واحدة عبر الواجهة تُنشئ لقطة للبيئة الحالية.
- نسخ احتياطي تلقائي: يمكنك جدولة عمليات النسخ تلقائيًا حسب الرغبة.
يشمل محتوى النسخ الاحتياطي إعدادات ServBay، ملفات المواقع، جميع قواعد البيانات (بما فيها PostgreSQL)، الشهادات SSL، وغيرها. من الموصى به الاستفادة من هذه الخاصية لتبسيط عملية النسخ وضمان أمان بياناتك. يمكن إدارة خصائص النسخ الاحتياطي من الإعدادات أو الشاشة الرئيسية في ServBay.
تحسين الأداء
لضمان أداء ممتاز لـ PostgreSQL ضمن بيئة ServBay، يمكن تحسين عدة جوانب على النحو التالي:
تحسين الفهارس (Indexes)
تسرّع الفهارس استرجاع البيانات بشكل كبير، خاصةً في الجداول الكبيرة أو الأعمدة التي يُجرى عليها استعلامات متكررة (WHERE, JOIN, ORDER BY).
تأكّد من إنشاء فهارس للأعمدة المستخدمة بكثرة في شروط البحث أو الاتصال أو الترتيب.
sql
CREATE INDEX idx_your_column_name ON your_table_name(your_column_name);
1
استبدل your_table_name
باسم الجدول، وyour_column_name
باسم العمود المناسب، وidx_your_column_name
باسم الفهرس.
تحسين الاستعلامات (Queries)
استعن بأمر EXPLAIN
لتحليل خطط تنفيذ الاستعلامات، ومعرفة كيف ينفذ PostgreSQL الاستعلام واكتشاف الاختناقات في الأداء.
sql
EXPLAIN SELECT * FROM your_table_name WHERE column_name = 'value';
1
تُظهر نتائج EXPLAIN
إذا كان الاستعلام يستخدم الفهارس، ونوع الربط، وعدد الصفوف... إلخ، مما يساعدك على تعديل SQL أو استراتيجية الفهارس بشكل أدق.
تحسين الإعدادات
يمكنك تعديل ملف إعداد PostgreSQL (عادةً postgresql.conf
) لضبط العديد من المتغيرات المتعلقة بالأداء حسب موارد جهازك واحتياجات العمل.
مثلاً، تعديل قيمة shared_buffers
لضبط حجم الذاكرة المخصّصة للقراءة والكتابة المؤقتة، ما قد يقلّل عمليات الوصول للقرص ويحسّن الأداء (لكن يجب ألا تتجاوز سعة الجهاز).
ini
# مثال إعداد في postgresql.conf
shared_buffers = 1GB # عدّل حسب ذاكرة الجهاز وعبء العمل
1
2
2
يتطلب تفعيل التعديلات غالبًا إعادة تشغيل خدمة PostgreSQL. راجع وثائق إعدادات ServBay للمزيد.
إدارة الأمان
حماية قاعدة البيانات أمر أساسي خاصةً أثناء التعامل مع بيانات حساسة في بيئات التطوير.
وضع كلمات مرور قوية
يجب وضع كلمات مرور قوية وفريدة لجميع المستخدمين، خاصةً الأعضاء ذوي الصلاحيات العالية كـ postgres
. ويستحسن تغيير كلمات المرور دورياً.
sql
ALTER USER your_username WITH PASSWORD 'your_new_strong_password';
1
النسخ الاحتياطي المنتظم
كما ذُكر سابقًا، النسخ الاحتياطي المتكرر هو وسيلة حيوية لحماية البيانات. استخدم وظائف النسخ الاحتياطي في ServBay إضافة إلى النسخ اليدوي باستخدام pg_dump
لضمان حماية بياناتك.
تقليل صلاحيات المستخدمين
اتبع سياسة "أقل صلاحيات ضرورية" — امنح كل مستخدم فقط الصلاحيات المطلوبة لمهامه، وتجنب منح ALL PRIVILEGES
للجميع.
sql
-- إلغاء جميع الصلاحيات لمستخدم ما على قاعدة بيانات
REVOKE ALL PRIVILEGES ON DATABASE mydatabase FROM your_username;
-- منح صلاحية الاتصال وإنشاء الجداول المؤقتة
GRANT CONNECT, TEMPORARY ON DATABASE mydatabase TO your_username;
-- منح صلاحيات محددة (SELECT, INSERT, UPDATE, DELETE) على جدول محدد
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE your_table_name TO your_username;
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
التحكم في الوصول عبر الشبكة
عادةً يكون إعداد ServBay الافتراضي هو ربط قاعدة البيانات بالواجهة المحلية فقط (localhost
أو 127.0.0.1
)، مما يمنع أي اتصال خارجي مباشر ويزيد الأمان. لا ينصح بفتح قاعدة البيانات على الشبكة الخارجية إلا للحالات الخاصة ومع إدراك المخاطر.
الأسئلة الشائعة وحلولها
مشكلة: عدم القدرة على الاتصال بـ PostgreSQL
- تأكد من أن الخدمة تعمل: استخدم واجهة ServBay أو أمر
servbayctl status postgresql <version>
للتحقق من حالة الخدمة. شغّلها إذا كانت متوقفة. - تأكد من بيانات الاتصال: تحقق من صحة اسم المستخدم، كلمة المرور، اسم قاعدة البيانات، اسم المضيف (
localhost
أو/Applications/ServBay/tmp
) ورقم المنفذ (5432
). تأكد من تطابق بيانات الاعتماد مع تلك المعطاة عبر UI في ServBay. - راجع سجلات ServBay: اطلع على ملفات السجل الخاصة بـ ServBay لرصد أي رسائل خطأ من PostgreSQL. ستساعد في تحديد سبب المشكلة.
- فحص جدار الحماية: عادةً لا تكون مشكلة في الإعداد المحلي الافتراضي، لكن إذا كان على جهازك جدار حماية نشط أو برنامج حماية قوي، تأكد من السماح باتصالات PostgreSQL ضمن مجلد ServBay.
مشكلة: الصلاحيات
عند ظهور رسالة "رفض الإذن (Permission Denied)" أثناء مهام قاعدة البيانات، فهذا غالبًا بسبب نقص صلاحيات المستخدم الحالي.
- افحص صلاحيات المستخدم الحالي: استخدم الأمر
\du
فيpsql
لمعرفة المستخدمين والصلاحيات، و\dp <table_name>
لاستعراض الصلاحيات على جدول معيّن. - امنح الصلاحيات اللازمة: اتصل كمستخدم له صلاحيات كافية (مثل
postgres
) واستخدم أمرGRANT
لتحقيق ذلك.sqlGRANT ALL PRIVILEGES ON DATABASE mydatabase TO your_username; -- صلاحيات على قاعدة البيانات GRANT SELECT ON TABLE your_table_name TO your_username; -- صلاحية على جدول محدد
1
2
الخلاصة
تشكل PostgreSQL نظامًا قويًا ومرنًا لإدارة قواعد البيانات، ويجعل ServBay عملية تثبيته وإدارته على macOS سهلة جدًا. بعد هذا الدليل، ستكون قادرًا بكل احترافية على تركيب وتهيئة وربط PostgreSQL، إدارة قواعد البيانات الأساسية، استخدم النسخ الاحتياطي المدمج في ServBay أو عن طريق النسخ اليدوي، تحسين الأداء، وتعزيز حماية بياناتك. إتقانك لهذه المهارات يدعم بقوة تطوير مشاريعك المحلية بأمان وكفاءة.