مانیتور دیتابیس MySQL با استفاده از ابزار Mytop

Mytop یک ابزار رایگان متن باز برای مانیتور دیتابیس MySQL میباشد که توسط Jeremy Zawodny با استفاده از زبان Perl نوشته شده است. این ابزار مشابه ابزار مانیتورینگ لینوکسی است که top نامیده میشود. Mytop یک محیط Command-line برای مانیتور لحظه ای وضعیت مواردی مانند: MySQL threade, Queries per second و Performance دیتابیس فراهم کرده است که به کمک ان ادمین دیتابیس میتواند سرور را در زمان فشار کاری بهینه سازی نماید.

بصورت پیشفرض Mytop در مخزن نرم افزاری Fedora وجود دارد، پس تنها برای نصب کافیست دستور yum install mytop را در خط فرمان وارد نمایید. در صورتی که از RHEL یا CentOS استفاده میکنید باید ابتدا مخزن نرم افزاری مانند EPEL یا RPMForge را نصب و فعال نمایید تا بتوانید Mytop را به راحتی نصب نمایید. به طور مثال با دستور زیر مخزن نرم افزاری EPEL در CentOS نصب و فعال خواهد شد:

yum install epel-release

در توضیع های Debian,Ubuntu و Fedora نیازه به اضافه کردن مخرن نرم افزاری نمیباشد. توجه داشته باشید قبل از نصب این ابزار دیتابیس MySQL باید روی سرور نصب و فعال شده باشد.

نصب Mytop بر روی توضیع های CentOS, RHEL, Debian Ubuntu و Fedora

برای نصب Mytop در لینوکس کافیست با توجه به توضیع سیستم عامل خود دستوری که مربوط به سیستم عامل شماست را در محیط Command-line وارد کرده و Enter را بزنید.

$ yum install mytop    [On RHEL/CentOS/Fedora]
$ dnf install mytop      [On Fedora]
$ apt-get install mytop  [On Debian/Ubuntu/Mint]

پس از وارد کردن دستور نصب خروجی بصورت زیر خواهد بود:

Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
Dependencies Resolved
=======================================================================================
Package			Arch		Version					Repository			Size
=======================================================================================
Installing:
mytop              noarch       1.7-3.b737f60.el6      epel                32 k
Transaction Summary
=======================================================================================
Install       1 Package(s)
Total download size: 32 k
Installed size: 68 k
Is this ok [y/N]: y
Downloading Packages:
mytop-1.7-3.b737f60.el6.noarch.rpm		                        |  ۳۲ kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : mytop-1.7-3.b737f60.el6.noarch									۱/۱
Verifying  : mytop-1.7-3.b737f60.el6.noarch									۱/۱
Installed:
mytop.noarch 0:1.7-3.b737f60.el6
Complete!

نحوه استفاده از Mytop برای مانیتور MySQL

برای شروع به کار و استفاده از این ابزار باید اطلاعات ورود به mysql را در اختیار داشته باشید. برای شروع دستور زیر را در محیط Command-line وارد نمایید:

mytop --prompt

پس از وارد کردن دستور بالا، پسوورد از شما خواسته می شود که باید پسوورد root دیتابیس MySQL را وارد نمایید. در غیر این صورت Mytop قابل استفاده نخواهد بود.

# mytop --prompt
Password:

پس از وارد کردن پسوورد سیستم مانیتوریگ Mytop را مشاهده خواهید کرد. ممکن است صفحه مشاهده شده مانند تصویر زیر باشد:

برای مانیتور یک دیتابیس مشخص میتوانید با استفاده از فلگ d- و مشخص کردن نام  ان، دیتابیس مورد نظر خود را مانیتور نمایید. برای مثال دستور زیر دیتابیس wikidb را مانیتور میکند:

# mytop --prompt -d name
Password:

این ابزار دارای shortcut های مختلفی بوده و میتواند اطلاعات بسیار زیادی را در اختیار ادمین قرار دهد. برای اطلاع از تمامی امکانات Mytop پیشنهاد میشود با استفاده از دستور man mytop در command-line راهنمای این ابزار را مطالعه نمایید.

نحوه کار با بانک اطلاعاتی database در cPanel

برای ایجاد بانک اطلاعاتی(دیتابیس) و نام کاربری  آن به شکل زیر اقدام کنید :

پس از ورود به cpanel در بخش “Databases” روی گزینه “MySQL Databases” کلیک کنید.

database1

سه مرحله را باید طی کنید :
-ایجاد دیتابیس
– ایجاد یوزر برای دیتابیس
-اتصال دیتابیس به یوزر

۱- در بخش “Create a New Database” نام دیتابیسی که میخواهید بسازید را وارد کرده و روی گزینه “Create Database” کلیک کنید.

database2

۲٫  در بخش “Add a New User” نام یوزری که میخواهید برای دیتابیس خود بسازید و همچنین رمز را وارد کرده و روی گزینه “Create User” کلیک کنید.
برای انتخاب یک رمز عبور قوی میتوانید از گزینه “Password Generator” نیز استفاده کنید . توجه داشته باشید که قبل از بستن پنجره مربوط به آن رمز عبور را کپی کرده و نزد خود نگه دارید .

database3

۳- پس از ایجاد یوزر و بانک اطلاعاتی باید آنها را به هم متصل کنید. برای اتصال آنها از بخش “Add User To Database” نام کاربری و دیتابیس مورد نظر را انتخاب کرده و روی گزینه “Add” کلیک کنید.

database4

در صفحه بعد “ALL PRIVILEGES” را تیک زده و “Make changes” را کلیک کنید .

database5

هم اکنون بانک اطلاعات و یوزر شما آماده شده است .
توجه داشته باشید که برای ست کردن دیتابیس و یوزر آن در تنظیمات آدرس نرم افزارتان و یا استفاده از آنها برای نصب یک نرم افزار باید نام کامل آنها را وارد کنید .

برای مثال اگر یوزر هاست شما test باشد و نام بانک اطلاعاتی که ساختید database نام بانک اطلاعاتی شما به شکل زیر خواهد بود :

test_database

 

اگر اسم یوزری که انتخاب کرده اید user باشد نام یوزر شما برای نصب به شکل زیر خواهد بود :

test_user

 

البته نام یوزر و بانک اطلاعاتی در سی پنل مشخص است و میتوانید از داخل سی پنل آدرس کاملشان را کپی کنید .

آموزش تغییر دادن مسیر دایرکتوری MYSQL در لینوکس

شاید برای شما هم اتفاق افتاده باشد که به دلایلی قصد تغییر مسیر دایرکتوری MySQL از مسیر استاندارد /var/lib/mysql به پارتیشن یا دایرکتوری جدید را داشته باشید . برای مثال پارتیشن / حجم کمی دارد و ظرفیت لازم برای نگهداری از فایل های پر حجم دیتابیس MySQL را ندارد . یا مثلا قصد انتقال mysql دیتابیس به هارد ssd را دارید و خیلی موارد دیگر …

در این وضعیت ۲ راه وجود دارد . یکی بکاپ گرفتن از کل سایت ها و ریلود کردن سیستم عامل لینوکس و ایجاد تغییرات در پارتیشن ها و دایرکتوری ها در هنگام نصب لینوکس و راه دوم تغییر مسیر دادن به پارتیشن و دایرکتوری mysql . مسلما روش اول اصولی تر و روش دوم سریع تر است . اگر به هر دلیلی تصمیم به انجام راه حل دوم گرفته اید کافی است تا آموزش زیر رو مطالعه کرده و با دقت اجرا کنید .

توجه داشته باشید که جابجایی فایل های دیتابیس سرور mysql بسیار بسیار حساس است . بنا بر این به شما هشدار میدهیم اولا اگر تجربه کافی ندارید اقدام به انجام این کار نکنید و در ثانی حتما قبل از انجام هر گونه تغییر مسیر در mysql ابتدا از دیتابیس های سرور خود بکاپ بگیرید . برای مثال یکی از مشتریان کانفیگ ما در حین انتقال فایل های دیتابیس با دستور MV دچار قطعی اینترنت شده بود که در نتیجه انتقال نیمه کاره مانده بود و یکی از تیبل های دیتابیس corrupt شده بود که با هیچ روشی هم بازیابی نشد و اطلاعات ایشون از دست رفت . پس بکاپ فراموش نشه . در ضمن حتما تغییرات رو در ریموت دسکتاپ ویندوز سرور انجام بدید تا نوسانات و قطعی های اینترنت تاثیری در روند کار شما ایجاد نکند .

اگر دیتابیس های سرور شما  حجیم و بزرگ هستند بهتر از به ۳ روش از دیتابیس بکاپ بگیرید . اولین راه کپی کردم محتویات /var/lib/mysql در یک هارد جداگانه است . راه دوم استفاده از دستور mysqldump در ssh و روش سوم استفاده از اسکریپت mysql dumper می باشد .

آموزش تغییر دادن مسیر دایرکتوری MySQL در لینوکس

بعد از اطمینان از سالم بودن فایل های بکاپ انتقال فایل های mysql به مسیر جدید را به صورت زیر آغاز میکنیم :

sudo su

قبل از انتقال سرویس mysql را stop میکنیم . این سرویس معمولا با نام mysqld و در بعضی از موارد و مخصوصا در ورژن های ۵.۵ به بعد با نام mysql در لینوکس فعال است .

service mysqld stop

حالا با دستور mv‌ پوشه فعلی mysql رو به محل مورد نظر منتقل میکنیم . نام این دایرکتوری جدید کاملا شخضی و به عهده شماست . مثلا دایرکتوری opt رو در همان مسیر /var/lib برای این منظور انتخاب میکنیم :

mv /var/lib/mysql/ /opt/

با کمک symlink مسیر /var/lib/mysql رو به مسیر جدید تعیین شده توسط شما متصل و لینک میکنیم . با این روش نیازی به تغییر مسیر mysql در فایل my.cnf نخواهد بود . مسیر /var/lib/mysql  به صورت خودکار به آدرس تعیین شده هدایت خواهد شد .

ln -s /opt/mysql /var/lib/

ls -la /var/lib/mysql

حالا سرویس mysql رو مجددا استارت کنید .

service mysqld start

همانطور که مشاهده میکنید کار پیچیده ای نبود . اگر قصد انتقال دیتابیس ها به هارد ssd رو دارید هم روند کلی همین مواردی بود که به آن اشاره شد و فقط در مرحله اول به جای opt آدرس پارتیشن ssd که قبلا mount و فرمت شده است را باید معرفی کنید . برای حد اکثر میزان بازدهی و بیشترین سرعت ممکن بهتر است در هنگام فرمت کردن هارد ssd از سیستم فایل ext4 استفاده کنید .

آموزش ریستور کردن فایل های بزرگ و حجیم دیتابیس MYSQL در SSH لینوکس

ریستور کردن فایل های دیتابیس پر حجم و بزرگ از طریق محیط ssh در سیستم عامل لینوکس سرور

یکی از بزرگ ترین مشکلات مشتریانی که از هاست اشتراکی و میزبانی وب لینوکس به سرور مجازی یا سرور اختصاصی کوچ میکنند مشکل ریستور کردن فایل های sql بزرگ و حجیم در MySQL سرور لینوکس است . برنامه هایی مانند phpmyadmin یا MySQL  Dumper قادر به ذخیره سازی و ریستور کردن و بازیابی دیتابیس های خیلی بزرگ و حجیم نیستند و در صورت انتقال و ریستور کردن با آن ها همیشه احتمال و خطر بازیابی ناقص اطلاعات و آسیب دیدین دیتابیس وجود دارد .

از طرفی همیشه امکان ریستور کردن بکاپ کلی یا Full Backup برای خریدار سرور مجازی یا سرور اختصاصی امکان پذیر نیست . مثلا فول بکاپ توسط کنترل پنل cPanel ایجاد شده است ولی سرور مقصد از کنترل پنل دایرکت ادمین یا کلوکسو استفاده میکند . در این وضعیت هیچ راهی نیست جز استفاده از دستورات و کامند های ssh در لینوکس . در صورت استفاده صحیح از این کامند ها و دستورات برای بازیابی و ریستور کردن فایل های MySQL و دیتابیس ، قادر خواهید بود به راحتی فایل های MySQL با پسوند .sql و حجم های بالای ۱۵ و ۲۰ گیگ را در کمترین زمان ممکن و بدون خطا و آسیب دیدن به اطلاعات بازیابی و ریستور کنید .

قبل از انجام ریستور کردن دیتابیس توسط دستورات لینوکس در محیط ssh ابتدا باید اندازه پارامتر max_allowed_packet را بر اساس حجم دیتابیس مورد نظر تنظیم نمایید . برای ایجاد تغییرات در این پارامتر باید فایل my.cnf در مسیر /etc/ را ادیت کرده و میزان مورد نظر خود را وارد نمایید . سپس فایل را ذخیره کرده و سرویس MySQL را ریست کنید .

حالا وارد کنترل پنل وب هاستینگ سرور خود شوید و یک دیتابیس جدید ایجاد کنید . سپس نام کاربری و کلمه عبور این دیتابیس جدید را ساخته و به آن اختصاص دهید . حالا از طریق ssh وارد فولدر و پوشه ای شوید که فایل .sql در آن واقع شده است . با دستورات زیر اقدام به بازیابی و ریستور کردن این فایل .sql داخل دیتابیس MySQL ساخته شده در کنترل پنل وب هاستینگ خود نمایید :

mysql -u dbuser -p  dbname < db.sql

با زدن کلید Enter سیستم عامل از شما رمز و کلمه عبور دیتابیس ساخته شده در کنترل پنل را میخواهد که با وارد کردن آن عملیات بازیابی و ریستور کردن دیتابیس آغاز میگردد . اگر به کلمه عبور MySQL Root Password دسترسی دارید میتوانید بدون نیاز به کلمه عبور و نام کاربری دیتابیس اقدام به بازیابی و ریستور کردن آن با یوزر root پایگاه داده MySQL نمایید :

mysql -u root -p  dbname < db.sql