الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

فكروا معي قليلا بخصوص mysql و الاباتشي

بدأه فيصل الحربي في 28 ديسمبر 2010 · 6 رد · 1,323 مشاهدة · في قواعد بيانات MySQL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

لدي في العمل جهاز مركب عليه الاباتشي سيرفر مع الــ mysql و راكب أيضا عليه برنامج العمل الرئيسي ( php - mysql )

من خلال الشبكة الداخلية يتصل قرابة الــ 36 جهاز و يدخلو على سيرفر الاباتشي و يتم تخزين و استرجاع التقارير الدورية بشكل طبيعي

واجهتني مشكلة توقف الاباتشي خلال فترة إجازتي ولم يستطع الــ 36 جهاز الدخول ( لا يوجد احد غيري يستطيع التعامل في قسمي مع الاباتشي )

سؤالي هل هناك طريقة لتفادي مثل هذه المشكلة ؟

صورة
صورة

حسابي في الفيس بوك
http://goo.gl/XIzwL

حسابي في تويتر
http://goo.gl/6p4e3

 

 
 
#2

السلام عليكم

بعض الحلول

أولا: تثبيت واجهة تحكم في السيرفر، يمكن الاتصال بها من الشبكة الداخلية وحتى من الانترنت، هكذا تستطيع حل مشاكل السيرفر عن بعد، جرب Webmine

ثانيا: الاستعانة ببرامج مساعدة cron jobs تقوم بوظائف صغبرة مثل:

- اعادة تشغيل السيرفر كل مدة معينة او في حالة توقفه

- ارسال رسالة تنبه اليك في حالة توقف احدى خدمات السيرفر apache او mysql

#3
choclatboy كتب:

السلام عليكم

بعض الحلول

أولا: تثبيت واجهة تحكم في السيرفر، يمكن الاتصال بها من الشبكة الداخلية وحتى من الانترنت، هكذا تستطيع حل مشاكل السيرفر عن بعد، جرب Webmine

ثانيا: الاستعانة ببرامج مساعدة cron jobs تقوم بوظائف صغبرة مثل:

- اعادة تشغيل السيرفر كل مدة معينة او في حالة توقفه

- ارسال رسالة تنبه اليك في حالة توقف احدى خدمات السيرفر apache او mysql

شكرا choclatboy

هل فيه امكانيه بأن كل جهاز يخزن بياناته على قرصه الصلب و بعد ان تحل مشكلة الوامب سيرفر نعمل عمليه سحب للداتا المخزنه على الاقراص للـ 36 جهاز

===

صورة
صورة

حسابي في الفيس بوك
http://goo.gl/XIzwL

حسابي في تويتر
http://goo.gl/6p4e3

 

 
 
#4

السلام عليكم

طبعا اخي فيصل هناك طريقة ولكن يعتبر هذا عملا ركيكا بعض الشيئ هناك الكثير من الحلول الأفضل

طالما تتحدث عن 36 جهازا فلا بد ان هناك شبكة وأن الملفات و قاعدة البيانات على جهاز محدد او على السيرفر وباقي الأجهزة تستخدمه وبذلك لديك الكثير من الحلول

1- في حال كون الشبكة Domain Controller يمكن التخلي عن الوامب والتعامل مع IIS لأنها تعمل مع ويندوز وتتوقف معها وفي هذه الحالة ستضمن العمل الدائم من باب أنه إذا توقف السيرفر سيعمل على احدهم على تفعيله حتى لا تتعطل باقي الأمور كالطابعات والبريد الداخلي وما شابه

2- في حال كانت شبكة Work Group والعطل الذي يحدث حصرا مع قواعد البيانات MYSQL يمكن في كلاس او ملف او دالة الاتصال بقاعدة البيانات ان تطلب منها الاتصال بقاعدة بيانات موجودة على جهاز اخر ويمكنك ان تجعل البديل 36 جهاز بشكل متتالي كل ما توقف أحدهم ينتقل للأخر تلقائيا والعملية بسيطة جدا مجرد تبديل localhost بعنوان الجهاز البديل الذي يحتوي اصلا قواعد البيانات - مثلا : 192.168.0.77 وباقي الأمور كما هي وسيتصل بها ويعمل عليها تلقائيا وبعدها يمكنك عندما تحل المشكلة أن تبحث عن الفرق بين قواعد البيانات عن طريق البي اتش بي وتجميع البيانات في مكان واحد

والكثير من الحلول

آمل أن أكون أفدتك

تحياتي

#5

السلام عليكم

اضافة لما سبق

اريد ان أسالك اخ فيصل عن كيف استطاع باقى الاجهزة تشغيل ملفات php والاباتشى متعطل ؟؟

المفترض ان النظام لديك يتعطل بشكل كامل .. وبالتالى لن يكون هناك اى معاملات على الملفات ولا قاعدة البيانات الى ان يعمل الاباتشى مرة اخرى

وكيف يتم التسجيل بالقاعدة ؟ هل عن طريق ملفات php فقط ام من خلال برامج منتشرة على الاجهزة تتصل من بعد ؟

" وما توفيقى إلا بالله عليه توكلت وإليه أنيب "
-------------------------------------------------
قل : " لا حول ولا قوة إلا بالله "
-------------------------------------------------

#6

في الحقيقة هو نفس برنامج المنتدى الحالي و لكن النسخة السابقة 2.3.6 و تم تطويعها بحيث تستقبل التقارير كموضوعات و لا يمكن الرد على الموضوع لكي لا يتغير ترتيبها

عموما الي حصل هو تعطل احد الجداول ( جدول السشن ) وبالتالي لا يستطيع احد الدخول على البرنامج و كتابة تقارير نهاية الوردية ( Shift)

الاباتشي كان شغال ولا يوجد مشكله فيه

ممكن تجهيز سيرفر آخر لكن المطلوب ان يتم الانتقال الى السيرفر البديل تلقائيا في حالة تعطل السيرفر الاول

للعلم لايوجد في القسم الذي اعمل به من لديه خبره في هذا المجال

يعني الحمل كله فوق راسي

وصادف تعطل البرنامج إجازتي السنوية مما سبب لي كثير من الازعاجات الهاتفية .

===

صورة
صورة

حسابي في الفيس بوك
http://goo.gl/XIzwL

حسابي في تويتر
http://goo.gl/6p4e3

 

 
 
#7

أخي الكريم فيصل

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

أولا يمكنك التعديل على البرنامج لديك ليقوم بالإتصال بالسيرفر البديل تلقائيا في حال حدوث مشكلة في الاتصال بقاعدة البيانات وذلك عبر اجراء التعديلات اللازمة

أولا ملف conf_global.php

إضافة الأسطر التالية في أي مكان في الملف ولكن تأكد من التعديل على المحتويات لتناسب معلومات السيرفر البديل

/////////////////////////////////////////////
$INFO['sql_host']			=	'localhost';
$INFO['sql_database']			=	'boardbackup234234';
$INFO['sql_user']			=	'root';
$INFO['sql_pass']			=	'';
////////////////////////////////////////////

ثانيا تعديل ملف class_db_mysql_client.php

الموجود في المجلد ips_kernel وإضافة الكود

//////////////////////////////////////////////////////////////////////////////Mohammed Start		
		if ( ! $this->connection_id )
		{
    	    $this->backup_connection_id = @mysql_pconnect( $this->obj['backup_sql_host'] ,
												   $this->obj['backup_sql_user'] ,
												   $this->obj['backup_sql_pass'] ,
												   $this->obj['backup_force_new_connection']
												);
        }
        else
        { 
			if ( IPS_MAIN_DB_CLASS_LEGACY )
        	{
				$this->backup_connection_id = @mysql_connect( $this->obj['backup_sql_host'] ,
													  $this->obj['backup_sql_user'] ,
													  $this->obj['backup_sql_pass']
													);
			}
			else
			{
				$this->backup_connection_id = @mysql_connect( $this->obj['backup_sql_host'] ,
													  $this->obj['backup_sql_user'] ,
													  $this->obj['backup_sql_pass'] ,
													  $this->obj['force_new_connection']
													);
			}
		}
//////////////////////////////////////////////////////////////////////////////Mohammed End

وذلك بدل من متحويات الشرط : if ( ! $this->connection_id )

ثم أسفل هذا التعديل مباشرة يتم إضافة

		if ( ! $this->backup_connection_id )
		{
			$this->fatal_error();
			return FALSE;
		}

ليعطيك رسالة خطأ في حال أن السيرفر الأخر متوقف اصلا ويمكنك عمل هذه العملية عشرات المرات وقمت بتجربتها قبل أن أضيفها هنا وقمت بوضع الملفات جاهزة بالمرفقات للسهولة

ولكن يا أخي هناك نقطتان مهمتان

أولا : يفضل وضع نسخة اباتشي على كل جهاز وحصر قاعدة البيانات بجهاز واحد فقط للمشاركة وعندها تكون عمليه استبدال قاعدة البيانات في حال توقفها مجديا جدا ويقلل من الضغط على محرك ومترجم PHP وباقي الاباتشي عموما لانها ترهق اكثر من قاعدة البيانات

وهذا ما يقودنا لثانيا أن في حال توقف جدول معين مثل (السيشن) مثلا ذلك لا يعد توقفا كاملا لقاعدة البيانات ولن يتم نقلك تلقائيا الى السيرفر البديل او قاعدة البيانات البديلة

ملاحظة: أكرر للإشارة إلى سيرفر بعيد في حالتك كل ما عليك فعله وضع اي بي الجهاز بدلا من localhost فقط .

خالص التحيات

محمد

Changes.rar

1

مواضيع مشابهة