[{"data":1,"prerenderedAt":163},["ShallowReactive",2],{"seo-verification":3,"blog-postgresql-self-hosted-vs-rds-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"title":9,"excerpt":10,"readTime":11,"views":12,"isPinned":13,"publishedAt":14,"category":15,"categories":21,"featuredImage":23,"bgImage":24,"posterImage":25,"relatedSolution":23,"intro":26,"sections":27,"ctaTitle":124,"ctaBody":125,"ctaButton":126,"ctaUrl":127,"relatedPosts":128},239,"postgresql-self-hosted-vs-rds","PostgreSQL sur VPS vs Amazon RDS : مقارنة التكلفة 2026","‫التكلفة الحقيقية لـ PostgreSQL على VPS مقابل Amazon RDS في 2026: أرقام، إعداد، استكشاف أخطاء ودليل هجرة.",9,0,false,"2026-08-09T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},6,"قواعد البيانات","bases-de-donnees","bg-teal-500\u002F10 text-teal-400","database",[22],{"id":16,"name":17,"slug":18,"color":19,"icon":20},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fpostgresql-self-hosted-vs-rds-poster.svg","‫تنمو فاتورة ‫Amazon RDS مع نمو قاعدة البيانات — التخزين، و‫IOPS، والاتصالات، و‫Multi-AZ: كل معلمة تُضيف سطراً إضافياً للتكاليف. ‫PostgreSQL المستضاف ذاتياً على ‫VPS مخصص يعكس المعادلة: تكلفة ثابتة وقابلة للتنبؤ، وامتدادات حرة، ووصول كامل بصلاحيات ‫root. يقارن هذا الدليل النموذجين بأرقام حقيقية، ويغطي خطوات التثبيت، ويجيب على الاعتراض الأكثر شيوعاً: من يدير الخادم.",[28,32,43,79,82,107,110,113,121],{"type":29,"title":30,"body":31},"h2","‫لماذا إعادة تقييم RDS في 2026","‫Amazon RDS for PostgreSQL قاعدة بيانات مُدارة متينة، لكن نموذج فوترتها مصمم ليتصاعد بشكل غير خطي مع النمو. يُفوتر كل مكوّن بشكل منفصل: حوسبة النسخة، والتخزين ‫gp3 لكل جيجابايت، و‫IOPS المُخصصة، وعقد النسخ المتماثل ‫Multi-AZ، والنسخ الاحتياطية التي تتجاوز النافذة المُضمّنة، ونقل البيانات الصادرة. نسخة `db.r6g.4xlarge` بتوافر عالٍ ‫Multi-AZ مع 500 جيجابايت من تخزين ‫gp3 تتجاوز 3000 دولار شهرياً على ‫us-east-1. تعمل نفس أعباء العمل على كتلة ‫Hetzner Cloud مكونة من ثلاث عقد بحوالي 835 دولار شهرياً — وفراً قدره 2315 دولاراً شهرياً، أي نحو 27800 دولار خلال اثني عشر شهراً (المصدر: \u003Ca href=\"https:\u002F\u002Fselfhost.dev\u002Fblog\u002Faws-rds-vs-hetzner-cloud-cost\u002F\">selfhost.dev، مايو 2026\u003C\u002Fa>، ‫HN item #48816129). لقاعدة تطوير أو عبء عمل تجاري بدون نسخة احتياطية، تكفي عقدة واحدة بجزء بسيط من هذه التكلفة. تغيّر المشهد التسعيري أيضاً في 2026: راجعت ‫Hetzner جداولها في أبريل ثم يونيو 2026، وحدّثت ‫OVHcloud أسعار ‫VPS في أبريل 2026. هذه الزيادات تغير الأرقام المطلقة، لا المنطق: تظل الاستضافة الذاتية أرخص هيكلياً متى تجاوزت قاعدة البيانات عشرات الجيجابايتات وفرض الحجم نسخة غير قابلة للتوسع المؤقت.",{"type":33,"title":34,"items":35},"ul","‫ما الذي تكسبه بالانتقال إلى VPS",[36,37,38,39,40,41,42],"**‫تكلفة ثابتة وقابلة للتنبؤ** — لا فوترة لكل ‫GB أو ‫IOPS إضافية أو اتصالات متزامنة؛ تختار حجم ‫VPS مرة واحدة ولا يتغير السعر مع حجم الاستعلامات.","**‫امتدادات غير مقيدة** — ‫PostGIS وTimescaleDB وpg_partman وpgvector وcitus: لا قيود تعسفية، بخلاف ‫RDS حيث القائمة مغلقة والامتدادات غير المدعومة غائبة.","**‫وصول root وإعداد دقيق** — `postgresql.conf` و`pg_hba.conf` و`huge_pages` و`wal_level` وموحّدات الاتصال: ضبط كل معلمة دون المرور بلوحة تحكم سحابية ودون قيود على أدوات النظام.","**‫تحكم بالإصدارات** — أنت تقرر متى تنتقل من ‫PostgreSQL 16 إلى 17، دون نوافذ صيانة مفروضة أو إيقاف قسري من المزوّد.","**‫البيانات ضمن نطاقك** — اختيار مركز البيانات، وتشفير الأقراص وفق سياستك الداخلية، ودون رسوم نقل البيانات بين المناطق عند كل قراءة تحليلية.","**‫قابلية النقل الكاملة** — `pg_dump` أو النسخ المتماثل المنطقي ينقل بياناتك إلى أي مضيف آخر دون احتكاك بمزود ودون رسوم خروج.","**‫خيار الإدارة متاح** — إن كان العبء التشغيلي هو الاعتراض الرئيسي، يغطي خيار إدارة ‫VPS المهام الروتينية (التحديثات والمراقبة والنسخ الاحتياطية)؛ يبقى التحكم بيدك، لا العبء.",{"type":44,"title":45,"headers":46,"rows":50},"comparison","‫PostgreSQL على VPS مقابل Amazon RDS: جدول مقارنة",[47,48,49],"‫المعيار","‫PostgreSQL على VPS","‫Amazon RDS for PostgreSQL",[51,55,59,63,67,71,75],[52,53,54],"‫التكلفة الشهرية (عبء عادي)","‫ثابتة — تتناسب مع الخادم المختار","‫متغيرة — حوسبة + تخزين + IOPS + Multi-AZ + خروج البيانات",[56,57,58],"‫مثال التوافر العالي (3 عقد \u002F Multi-AZ)","‫~835 $\u002Fشهر (Hetzner CCX53، مايو 2026)","‫~3150 $\u002Fشهر (db.r6g.4xlarge Multi-AZ، us-east-1)",[60,61,62],"‫امتدادات PostgreSQL","‫الكل، بما يشمل PostGIS وpgvector وTimescaleDB وcitus","‫قائمة محدودة؛ الامتدادات غير المدعومة غائبة",[64,65,66],"‫وصول Root \u002F نظام التشغيل","‫نعم — اختيار النظام، Docker، cron، ضبط النواة، pgBouncer","‫لا — واجهة AWS فقط، معلمات مقيدة",[68,69,70],"‫ترقيات الإصدار","‫بوتيرتك الخاصة، دون نوافذ مفروضة","‫مجدولة أو مفروضة من AWS عند الإيقاف",[72,73,74],"‫العبء التشغيلي","‫إدارة النسخ الاحتياطية والتحديثات والمراقبة","‫آلي بواسطة AWS: نسخ احتياطية، تصحيحات، تجاوز فشل",[76,77,78],"‫قابلية النقل","‫كاملة — `pg_dump` أو النسخ المتماثل المنطقي، دون رسوم","‫مرتبطة بنظام AWS البيئي، تصدير البيانات مدفوع",{"type":29,"title":80,"body":81},"‫المتطلبات الأساسية قبل الهجرة","‫يكفي ‫VPS بذاكرة 4 جيجابايت و2 ‫vCPU لمعظم قواعد بيانات تطبيقات الويب الأصغر من 50 جيجابايت مع حركة مرور متوسطة وأقل من 50 اتصالاً متزامناً. لقاعدة بيانات أكثر مطالبة أو مخطط تحليلي بانضمامات متعددة أو خدمة تواجه ذروات مرور، خطط لـ 8 جيجابايت ‫RAM على الأقل. تخزين ‫SSD NVMe ضروري: يُقلل الوصول العشوائي لـ ‫PostgreSQL على قرص دوّار أو ‫SSD SATA الأداء بشكل ملحوظ، خاصة عند إعادة ملء ذاكرة التخزين المؤقت بعد إعادة التشغيل. الوصول بصلاحيات ‫root مطلوب — وهو معيار على أي ‫VPS سحابي. على صعيد الشبكة، ستحتاج إلى عنوان ‫IPv4 ثابت أو اسم نطاق داخلي لتوجيه اتصالات التطبيق. خطط أخيراً لنافذة هجرة تعمل خلالها قاعدتا البيانات بالتوازي: يشير التطبيق إلى ‫RDS بينما تملأ ‫VPS، وتتحقق من الاتساق، ثم تُبدّل متغير الاتصال.",{"type":83,"title":84,"steps":85},"steps","‫تثبيت وإعداد PostgreSQL على VPS",[86,89,92,95,98,101,104],{"title":87,"body":88},"‫تثبيت PostgreSQL من مستودع PGDG الرسمي","‫على ‫Ubuntu 24.04 أو ‫Debian 12، أضف مستودع ‫PostgreSQL Global Development Group: `curl -fsSL https:\u002F\u002Fwww.postgresql.org\u002Fmedia\u002Fkeys\u002FACCC4CF8.asc | sudo gpg --dearmor -o \u002Fetc\u002Fapt\u002Ftrusted.gpg.d\u002Fpostgresql.gpg` ثم `echo \"deb http:\u002F\u002Fapt.postgresql.org\u002Fpub\u002Frepos\u002Fapt $(lsb_release -cs)-pgdg main\" | sudo tee \u002Fetc\u002Fapt\u002Fsources.list.d\u002Fpgdg.list`. ثم: `sudo apt update && sudo apt install -y postgresql-17`.",{"title":90,"body":91},"‫إنشاء مستخدم وقاعدة بيانات مخصصَين","‫الاتصال بـ `postgres`: `sudo -u postgres psql`. إنشاء مستخدم تطبيق مخصص وقاعدة بيانات معزولة: `CREATE USER myapp WITH PASSWORD 'strong-password';` ثم `CREATE DATABASE myapp OWNER myapp;`. الخروج بـ `\\q`. لا تستخدم حساب `postgres` في سلسلة اتصال تطبيقك أبداً.",{"title":93,"body":94},"‫إعداد postgresql.conf وفق الحمل المتوقع","‫ملف الإعداد موجود في `\u002Fetc\u002Fpostgresql\u002F17\u002Fmain\u002Fpostgresql.conf`. المعلمات الرئيسية لـ ‫VPS بذاكرة 4 جيجابايت: `shared_buffers = 1GB` (25% من ‫RAM)، `effective_cache_size = 3GB`، `work_mem = 16MB`، `maintenance_work_mem = 256MB`، `max_connections = 100`. أعد التشغيل بعد أي تعديل: `sudo systemctl restart postgresql`.",{"title":96,"body":97},"‫تقييد اتصالات الشبكة في pg_hba.conf","‫افتراضياً، لا يستمع ‫PostgreSQL إلا على `localhost`. إذا كان تطبيقك على نفس الخادم فاتركه كما هو. لتطبيق على آلة أخرى، عدّل `\u002Fetc\u002Fpostgresql\u002F17\u002Fmain\u002Fpg_hba.conf` وأضف: `host myapp myapp \u003CIP-التطبيق>\u002F32 scram-sha-256`. في `postgresql.conf` عيّن `listen_addresses = 'localhost,\u003CIP-VPS>'`. أعد التحميل: `sudo systemctl reload postgresql`.",{"title":99,"body":100},"‫التصدير من RDS والاستيراد على VPS","‫من آلة لها وصول للمضيفَين، صدّر بصيغة الأرشيف المخصص: `pg_dump -h \u003Crds-endpoint> -U \u003Cuser> -Fc \u003Cdatabase> -f dump.pgc`. ثم استورد على ‫VPS بأربعة عمال متوازية: `pg_restore -h localhost -U myapp -d myapp -j 4 dump.pgc`. تحقق من عدد صفوف بعض الجداول الحيوية قبل تبديل اتصال التطبيق.",{"title":102,"body":103},"‫أتمتة النسخ الاحتياطي عبر cron","‫أنشئ `\u002Fusr\u002Flocal\u002Fbin\u002Fpg-backup.sh`: `PGPASSWORD='password' pg_dump -U myapp myapp -Fc > \u002Fvar\u002Fbackups\u002Fpg\u002Fmyapp-$(date +%Y%m%d-%H%M).pgc`. اجعله قابلاً للتنفيذ: `chmod +x \u002Fusr\u002Flocal\u002Fbin\u002Fpg-backup.sh`. أضف مدخلة ‫cron: `0 3 * * * \u002Fusr\u002Flocal\u002Fbin\u002Fpg-backup.sh`. احتفظ بالنسخ مشفرة على تخزين خارجي أو انقلها عبر `rsync` إلى ‫VPS ثانٍ.",{"title":105,"body":106},"‫تفعيل المراقبة بـ pg_stat_statements","‫في `postgresql.conf`، أضف `shared_preload_libraries = 'pg_stat_statements'`. أعد تشغيل ‫PostgreSQL، ثم فعّل الامتداد في قاعدتك: `CREATE EXTENSION pg_stat_statements;`. حدّد الاستعلامات البطيئة: `SELECT query, mean_exec_time, calls FROM pg_stat_statements ORDER BY mean_exec_time DESC LIMIT 10;`.",{"type":108,"body":109},"tip","**‫التصليب بعد التثبيت**: عطّل حساب `postgres` النظامي لاتصالات ‫SSH (`sudo passwd -l postgres`)؛ فعّل `ssl = on` في `postgresql.conf` مع شهادة ‫Let's Encrypt أو موقّعة ذاتياً لتشفير الاتصالات الشبكية؛ فعّل `ufw` وافتح المنفذ `5432` فقط لعناوين ‫IP التطبيق المعروفة (`sudo ufw allow from \u003CIP-app> to any port 5432`). هذه الخطوات الثلاث تغطي سطح الهجوم الأساسي لقاعدة بيانات مكشوفة على شبكة غير خاصة.",{"type":29,"title":111,"body":112},"‫استكشاف الأخطاء: الأخطاء الشائعة بعد الهجرة","‫الأخطاء التالية تظهر بكثرة في الساعات الأولى بعد الهجرة من ‫RDS إلى ‫VPS مستقل. لكل منها رسالة محددة وعلاج مستهدف — اقرأ الرسالة كاملة قبل التصرف، إذ تشترك أسباب مختلفة في نفس كود الخطأ.",{"type":33,"title":114,"items":115},"‫خمسة أخطاء شائعة وحلولها",[116,117,118,119,120],"**`FATAL: password authentication failed for user \"myapp\"`** — ‫كلمة المرور المُرسلة لا تتطابق مع المخزنة، أو تختلف طريقة المصادقة (`md5` مقابل `scram-sha-256`). تحقق من السطر المقابل في `pg_hba.conf` وأعد التحميل: `sudo systemctl reload postgresql`.","**`FATAL: no pg_hba.conf entry for host \"\u003CIP>\", user \"myapp\", database \"myapp\", SSL off`** — ‫عنوان ‫IP المصدر غير مصرح به في `pg_hba.conf`. أضف المدخلة المفقودة لذلك ‫IP وأعد التحميل. إن لم تُرد ‫SSL، تحقق أن السطر يستخدم `host` لا `hostssl`.","**`ERROR: extension \"uuid-ossp\" does not exist`** ‫(أو أي امتداد غائب على ‫RDS) — ‫الامتداد متاح لكنه غير مفعّل في هذه القاعدة. نفّذ من ‫psql: `CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\";`. إن كان غائباً من الحزمة، ثبّته: `sudo apt install postgresql-17-\u003Cextension>`.","**`FATAL: remaining connection slots are reserved for non-replication superuser connections`** — ‫وصل `max_connections` حده الأقصى. ارفعه في `postgresql.conf` وأعد التشغيل، أو ثبّت `pgBouncer` لمشاركة الاتصالات: مجموعة من 10 اتصالات حقيقية يمكنها خدمة مئات عملاء التطبيق.","**`pg_restore: error: could not execute query: ERROR: role \"rdsadmin\" does not exist`** — ‫ينشئ ‫RDS أدواراً داخلية غائبة عن أي ‫PostgreSQL خارج ‫AWS. أضف `--no-owner --no-privileges` إلى أمر `pg_restore`: `pg_restore --no-owner --no-privileges -h localhost -U myapp -d myapp dump.pgc`.",{"type":29,"title":122,"body":123},"‫ما لا تغطيه هذه المقارنة — وما يجب معرفته قبل القرار","‫تنقل الاستضافة الذاتية إلى فريقك مسؤولية إدارة النسخ الاحتياطية وتحديثات الأمان والمراقبة. هذا واقع لا حجة ضد الاستضافة الذاتية — قيّمه مقابل التكلفة الموفَّرة. لمطور منفرد أو فريق صغير يفتقر للخبرة التشغيلية، يغطي خيار إدارة ‫VPS المهام الروتينية دون الحاجة إلى تنسيقها. يظل ‫RDS مناسباً في حالتين محددتين: عندما تكون المرونة متعددة المناطق متطلباً تعاقدياً وتفتقر الموارد اللازمة لتنفيذها يدوياً، وعندما تكون الفوترة بالاستهلاك مفيدة فعلاً لقاعدة بيانات صغيرة جداً نادرة الاستخدام. لكل ما عدا ذلك — قاعدة بيانات متوسطة، عبء عمل مستقر، فريق بمهارات نظامية أساسية — تدعم الأرقام الاستضافة الذاتية بوضوح. تكمّل مقالات \u003Ca href=\"\u002Fblog\u002Fheberger-postgresql-vps\">PostgreSQL على VPS: التثبيت وأفضل الممارسات\u003C\u002Fa> و\u003Ca href=\"\u002Fblog\u002Fpostgresql-fin-de-vie-planifier-montee-version\">نهاية دعم PostgreSQL: التخطيط لترقية الإصدار\u003C\u002Fa> هذا الدليل من الجانب التشغيلي وإدارة الإصدارات الكبرى.","‫انشر PostgreSQL على VPS بموارد مخصصة","‫وصول root، تخزين SSD NVMe، IPv4 مضمن، دون رسوم إضافية لكل جيجابايت. اختر إعدادك وضع قاعدة بياناتك في المدار.","‫انشر PostgreSQL على VPS بموارد مخصصة — وصول root، تخزين SSD NVMe، IPv4 مضمن، دون رسوم لكل جيجابايت.","\u002Fsolutions\u002Fdeveloppeurs",[129,143,153],{"id":130,"slug":131,"title":132,"excerpt":133,"readTime":134,"views":135,"isPinned":13,"publishedAt":136,"category":137,"categories":138,"featuredImage":23,"bgImage":24,"posterImage":140,"relatedSolution":141},56,"heberger-postgresql-vps","PostgreSQL على خادم VPS: قاعدة بيانات موثوقة ومُتحكَّم بها","استضف PostgreSQL على خادم VPS: وحدات التخزين والنسخ الاحتياطية والوصول الشبكي المحدود والإعداد السليم لتطبيقاتك.",4,2240,"2026-04-25T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[139],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fheberger-postgresql-vps-poster.svg",{"categorySlug":18,"appSlug":142},"postgresql-stack",{"id":144,"slug":145,"title":146,"excerpt":147,"readTime":134,"views":12,"isPinned":13,"publishedAt":148,"category":149,"categories":150,"featuredImage":23,"bgImage":24,"posterImage":152,"relatedSolution":23},225,"postgresql-fin-de-vie-planifier-montee-version","‏PostgreSQL ونهاية الدعم: تخطيط الترقية الكبرى","‏يدعم PostgreSQL كل إصدار رئيسي خمس سنوات، وينتهي الدعم في نوفمبر. اعرف إصدارك وخطّط للترقية دون فقدان البيانات.","2026-08-05T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[151],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fpostgresql-fin-de-vie-planifier-montee-version-poster.svg",{"id":154,"slug":155,"title":156,"excerpt":157,"readTime":134,"views":12,"isPinned":13,"publishedAt":158,"category":159,"categories":160,"featuredImage":23,"bgImage":24,"posterImage":162,"relatedSolution":23},217,"valkey-vs-redis-migration-2026","‏Valkey مقابل Redis في 2026: المقارنة ودليل الترحيل","‏عاد Redis إلى ترخيص متوافق مع OSI ‏(AGPLv3)‏ في مايو 2025، لكن Valkey 9.1 أصبح الحزمة الافتراضية على Ubuntu وDebian وFedora، مع أداء أعلى بنسبة 8% وتأخير أقل بنسبة 22%. إليك كيفية الاختيار والترحيل في 4 خطوات.","2026-08-03T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[161],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fvalkey-vs-redis-migration-2026-poster.svg",1786296242874]