سؤال

هل يعد تشغيل SQL Server على خادم الويب أمرًا جيدًا أم سيئًا أم غير مبالٍ؟

أنا أستخدم Server 2008 وSQL Server 2005، ولكن لا أعتقد أن هذا مهم بالنسبة لهذا السؤال.

هل كانت مفيدة؟

المحلول

بالنسبة للمواقع الصغيرة، لا يشكل ذلك فرقًا كبيرًا.ومع ذلك، مع زيادة الحمل، يصبح هذا الحجم سيئًا للغاية، وأسرع مما تعتقد:

  • يتم إنشاء خوادم قواعد البيانات على أساس أنها "تمتلك" الخادم.إنهم يستبدلون الذاكرة بالسرعة ويستخدمون بسهولة كل ذاكرة الوصول العشوائي المتاحة للتخزين المؤقت الداخلي.
  • بمجرد أن تبدأ الموارد في الندرة، يصبح التوصيف صعبًا للغاية - فمن الواضح أن كلاً من IIS وSQL يعانيان، ولكن من غير الواضح أين يقع عنق الزجاجة.يحتاج IIS إلى وحدة المعالجة المركزية، ويحتاج SQL Server إلى ذاكرة الوصول العشوائي أو وحدة المعالجة المركزية وما إلى ذلك
  • بغض النظر عن عدد الطبقات التي تضعها في التعليمات البرمجية الخاصة بك، فكلها تعمل على نفس وحدة المعالجة المركزية، وبالتالي فإن التطبيق ذو الطبقة الواحدة سيعمل بشكل أفضل في هذا السياق - أقل حملًا - لكنه لن يتغير حجمه.
  • الأمان سيء حقًا، وعادةً ما تقوم بعزل SQL خلف جدار الحماية!

إذا كنت تستطيع تحمل تكاليف ذلك، فمن الأفضل إنفاق بضعة دولارات والحصول على خادم ثانٍ، ربما باستخدام PostgreSQL.يتكلف خادم IIS واحد وPostgreSQL واحدًا تقريبًا نفس تكلفة IIS + SQL Server بسبب تكاليف الترخيص...

نصائح أخرى

ربما لا تعتبر المتاجر الكبرى هذا أفضل الممارسات...ومع ذلك، إذا كنت لا تتعامل مع مئات الطلبات في الثانية، فلا بأس بوضعهما معًا في مربع واحد.

في الواقع، بالنسبة للتطبيقات الصغيرة، سترى أداءً أفضل على الواجهة الخلفية لأنه ليس من الضروري أن تنتقل البيانات عبر السلك.الأمر كله يتعلق بالحجم.

ضع في اعتبارك أن خوادم قواعد البيانات تأكل الذاكرة.إليك درسًا مهمًا من مدرسة الضربات القوية: إذا قررت تشغيل SQL Server 2005 على نفس الجهاز مثل خادم الويب الخاص بك (وهذا هو الإعداد الذي ذكرته في سؤالك)، فتأكد من الانتقال إلى Sql Server Management Studio والقيام بذلك:

  1. انقر بزر الماوس الأيمن على مثيل الخادم وانقر على الخصائص
  2. حدد "الذاكرة" من القائمة الموجودة على اليسار
  3. قم بتغيير "الحد الأقصى لذاكرة الخادم" إلى شيء يمكن لخادمك الحفاظ عليه.

إذا لم تقم بذلك، فسوف يستهلك SQL Server في النهاية كل ذاكرة الوصول العشوائي (RAM) الخاصة بخادمك ويحتفظ بها إلى أجل غير مسمى.سيؤدي هذا إلى تعطل الخادم الخاص بك وموته بشكل أو بآخر.إذا لم تكن على علم بهذا، يمكن أن يكون محبط جدا لاستكشاف الأخطاء وإصلاحها.

لقد فعلت هذا عدة مرات.إنه ليس شيئًا كنت ستفعله إذا كانت لديك البنية التحتية لشركة كبيرة ولم تكن قابلة للتوسع، لكنه جيد لكثير من الأشياء.

يتعلق الأمر حقًا بحجم العمل الذي يقوم به خادم الويب الخاص بك وخادم SQL الخاص بك.

بدون مزيد من المعلومات، أشك في أنك ستحصل على أي إجابات مفيدة.

أود أن أقول أنه من الأفضل تشغيلها على نفس الخادم حتى تصبح مشكلة.بهذه الطريقة ستوفر على نفسك بعض المال والوقت مقدمًا.بمجرد أن يصبح الموقع ناجحًا ويتطلب بعض التغييرات المعمارية، يجب أن يكون قد دفع تكاليفه بالفعل.

تذكر عمل نسخة احتياطية :)

إذا كان خادم الويب الخاص بك متاحًا للعامة، فهذه فكرة سيئة جدًا من منظور أمني.

على الرغم من أنه يجعل الكثير من الأمور أكثر صعوبة مثل التوجيه وجدار الحماية والمنافذ والمصادقة وما إلى ذلك.المنظور، الانفصال جيد.عندما يكون خادم قاعدة البيانات الخاص بك قيد التشغيل على خادم الويب، وإذا تم اختراق خادم الويب الخاص بك، فإن خادم SQL الخاص بك يكون كذلك أيضًا.

عندما تضعها في صناديق منفصلة، ​​تكون قد رفعت المستوى قليلاً.

لا يزال هناك الكثير من العمل الذي يتعين القيام به لتأمين خادم الويب الخاص بك وخادم قاعدة البيانات، ولكن لماذا نجعل الأمر أسهل مما يجب؟

سيعتمد على الحمل المتوقع للخادم.بالنسبة للمواقع الصغيرة، لا توجد مشكلة على الإطلاق (إذا تم تكوينها بشكل صحيح).بالنسبة للمواقع الكبيرة، قد ترغب في توزيع الحمل على خوادم مختلفة:خادم الويب، خادم الملفات، خادم قاعدة البيانات، الخ.

لقد رأيت هذه المشكلة مرارا وتكرارا.الإجابة الصحيحة هي وضع SQL Server على جهاز واحد وIIS (خادم الويب) على الجهاز الآخر.ستذهب أموالك إلى جهاز SQL Server لأنه يجب شراء نظام محرك الأقراص المناسب وذاكرة الوصول العشوائي (RAM) لدعم خادم فعال ولكن يمكن أن يكون خادم الويب عبارة عن جهاز أصغر حجمًا وأقل تكلفة باستخدام مجموعة محركات أقراص معكوسة فقط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top