المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : استخدام أداة mysqlcheck لإصلاح, تحسين وتحليل قواعد البيانات databases



admin
11-02-2013, بتوقيت غرينيتش 02:23 AM
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته




http://i-notes.org/wp-content/uploads/2014/10/mysqlcheck.png

عند محاولة اصلاح قاعدة او تنفيذ عملية Myismcheck من خلال سطر الأوامر يتطلب منا أن نقوم بإيقاف خادم server MySQL عن العمل حتى نستطيع تنفيذ مانريد في القواعد. ولكن هذا الأمر يعتبر شيء مزعج خصوصاً اذا كان الخادم server مخصص لإستضافة hosting المواقع بالتالي سوف تتوقف جميع قواعد البيانات databases الخاصة بالعملاء من اجل قاعدة واحد فقط!. لهذا في بعض الأحيان نستخدم مثلاً PHPMyAdmin وغيرها من الأدوات. في هذه الدرس مفصل سوف استعرض طريقة تنفيذ العمليات هذه من خلال اداة mysqlcheck والتي تغنينا عن ايقاف الخادم server والتعقيدات الاخرى, وهي اداة سهلة الإستخدام جداً.

متطلبات البدء في العمل


1-قاعدة بيانات مركبة وتعمل
2-صلاحيات root
3-تسجيل دخول إلى ssh, terminal



الأن لنفرض أن لدينا قاعدة بيانات بالأسم EGY2SERVER_mydb علماً أن EGY2SERVER هو المستخدم و mydb هو أسم القاعدة.

ونريد أن نقوم بعمل MyISMCheck يكون الامر

رمز PHP:

<code style="white-space:nowrap"> <code> mysqlcheck EGY2SERVER_mydb
</code> </code>

أو

رمز PHP:

<code style="white-space:nowrap"> <code> mysqlcheck -c EGY2SERVER_mydb
</code> </code>

دعونا نحلل الأمر السابق
1. mysqlcheck = هذه اسم الأداة, وهنا اخبرت النظام أني أريد استخدام هذه الأداة
2. -c = وهنا اخبرت الأداة أني أريد استخدام خاصية MyISMCheck
3. EGY2SERVER_mydb = هنا اخبرت الأداة أني أريد تنفيذ عملية MyISMCheck للقاعدة هذه.

أصلاح Repair للقاعدة. نقوم بتنفيذ الأمر التالي

رمز PHP:

<code style="white-space:nowrap"> <code> mysqlcheck -r EGY2SERVER_mydb
</code> </code>

تحسين optimize للقاعدة. سوف يكون الامر بالشكل التالي

رمز PHP:

<code style="white-space:nowrap"> <code> mysqlcheck -o EGY2SERVER_mydb
</code> </code>

تحليل analyze يتم بالشكل التالي

رمز PHP:

<code style="white-space:nowrap"> <code> mysqlcheck -a EGY2SERVER_mydb
</code> </code>

وفي حالة كنا نريد أن نقوم بجميع ماسبق مرة واحدة يكون الأمر كتالي

رمز PHP:

<code style="white-space:nowrap"> <code> mysqlcheck -aro EGY2SERVER_mydb
</code> </code>

واذا كنت تريد عملها جميعاً ولجميع القواعد مرة واحدة. يكون الامر بهذا الشكل

رمز PHP:

<code style="white-space:nowrap"> <code> mysqlcheck -aro --all-databases
</code> </code>

ماذا عن جدول معين بداخل قاعدة معينة ؟ نحتاجها بعض الاحيان خصوصاً في القواعد الكبيرة والتي تتجاوز 2 جيجابايت. فليس من المعقول وعلى سبيل المثال أن نقوم بعمل اصلاح لقاعدة كاملة تتجاوز 2 جيجابايت من اجل جدول واحد قد لايتجاوز حجمة 50 ميجابايت. أذن نستخدم الطريقة التالية
لنفرض أن الجدول المعني هو EGY أذن

رمز PHP:

<code style="white-space:nowrap"> <code> mysqlcheck -r EGY2SERVER_mydb EGY
</code> </code>

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

رمز PHP:

<code style="white-space:nowrap"> <code> mysqlcheck -r --databases EGY2SERVER_mydb1 EGY2SERVER_mydb2
</code> </code>

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

رمز PHP:

<code style="white-space:nowrap"> <code> /usr/bin/mysqlcheck &#91;-OPTIONS&#93; &#91;DATABASE&#93;
</code> </code>

ملاحظة: في حالة قمت بتشغيل الأداة بدون وضع اي خيارات, اي قمت بوضع اسم القاعدة مباشرة وقمت بتنفيذ الامر. في هذه الحالة سوف يكون الخيار الأفتراضي للأداة هو MyISMCheck





https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


سريع للبحث عن مواضيع في المنتدى