| MARIADB-CHECK(1) | MariaDB Database System | MARIADB-CHECK(1) |
نام (NAME)
mariadb-check - برنامهای برای نگهداری جدولها (دستور mariadb-check اکنون یک پیوند نمادین به mariadb-check است)
خلاصه دستور (SYNOPSIS)
mariadb-check [options] [db_name [tbl_name ...]]
توضیحات (DESCRIPTION)
کلاینت mariadb-check عملیات نگهداری جدولها را انجام میدهد: جدولها را بررسی، تعمیر، بهینهسازی یا تحلیل میکند.
هر جدول هنگام پردازش قفل شده و در نتیجه برای سایر نشستها غیرقابلدسترس خواهد بود، هرچند برای عملیاتهای بررسی، جدول فقط با یک قفل READ قفل میشود. عملیات نگهداری جدولها میتواند زمانبر باشد، بهویژه برای جدولهای بزرگ. اگر از گزینهٔ --databases یا --all-databases برای پردازش تمام جدولها در یک یا چند پایگاهداده استفاده کنید، فراخوانی mariadb-check ممکن است زمان زیادی ببرد. (این موضوع در مورد mariadb-upgrade نیز صدق میکند، زیرا آن برنامه برای بررسی تمام جدولها و تعمیر آنها در صورت لزوم، mariadb-check را فراخوانی میکند.)
mariadb-check از نظر عملکرد شبیه به myisamchk است، اما به شیوه متفاوتی کار میکند. تفاوت اصلی در عملکرد این است که mariadb-check باید هنگامی استفاده شود که سرور mariadbd در حال اجرا است، در حالی که myisamchk باید هنگامی استفاده شود که سرور در حال اجرا نیست. مزیت استفاده از mariadb-check این است که برای انجام نگهداری جدولها نیازی به متوقف کردن سرور ندارید.
mariadb-check عبارتهای SQL شامل CHECK TABLE، REPAIR TABLE، ANALYZE TABLE و OPTIMIZE TABLE را به شیوهای راحت برای کاربر به کار میبرد. این برنامه تعیین میکند که برای عملیات درخواستی شما کدام عبارتها باید استفاده شوند، و سپس آن عبارتها را برای اجرا به سرور ارسال میکند.
موتور ذخیرهسازی MyISAM از هر چهار عملیات نگهداری پشتیبانی میکند، بنابراین mariadb-check میتواند برای انجام هر یک از آنها روی جدولهای MyISAM به کار رود. موتورهای ذخیرهسازی دیگر لزوماً از تمام عملیاتها پشتیبانی نمیکنند. در چنین مواردی یک پیام خطا نمایش داده میشود. برای نمونه، اگر test.t یک جدول MEMORY باشد، تلاش برای بررسی آن چنین نتیجهای تولید میکند:
shell> mariadb-check test t test.t note : The storage engine for the table doesn't support check
اگر mariadb-check قادر به تعمیر یک جدول نباشد، برای راهکارهای تعمیر دستی جدول به مستندات MariaDB مراجعه کنید. این مورد برای نمونه در جدولهای InnoDB رخ میدهد، که میتوان آنها را با CHECK TABLE بررسی کرد، اما با REPAIR TABLE تعمیر نمیشوند.
استفاده از mariadb-check با جدولهای افرازبندیشده (partitioned) پشتیبانی نمیشود.
احتیاط
بهتر است پیش از انجام عملیات تعمیر جدول، از جدول نسخه پشتیبان تهیه کنید؛ تحت شرایط خاصی این عملیات ممکن است باعث از دست رفتن دادهها شود. دلایل احتمالی شامل خطاهای فایلسیستم است اما به آن محدود نمیشود.
بهطور کلی سه روش برای فراخوانی mariadb-check وجود دارد:
shell> mariadb-check [options] db_name [tbl_name ...] shell> mariadb-check [options] --databases db_name ... shell> mariadb-check [options] --all-databases
اگر پس از db_name نام هیچ جدولی را ذکر نکنید، یا از گزینهٔ --databases یا --all-databases استفاده کنید، تمام پایگاههای داده بررسی میشوند.
mariadb-check در مقایسه با سایر برنامههای کلاینت دارای یک ویژگی خاص است. رفتار پیشفرض بررسی جدولها (--check) را میتوان با تغییر نام باینری تغییر داد. اگر میخواهید ابزاری داشته باشید که بهطور پیشفرض جدولها را تعمیر کند، کافی است یک کپی از mariadb-check به نام mariadb-repair ایجاد کنید، یا یک پیوند نمادین به mariadb-check به نام mariadb-repair بسازید. اگر mariadb-repair را فراخوانی کنید، جدولها را تعمیر میکند.
نامهای زیر را میتوان برای تغییر رفتار پیشفرض mariadb-check استفاده کرد.
| mariadb-repair | گزینهٔ پیشفرض --repair است |
| mysqlanalyze | گزینهٔ پیشفرض --analyze است |
| mysqloptimize | گزینهٔ پیشفرض --optimize است |
mariadb-check از گزینههای زیر پشتیبانی میکند که میتوان آنها را در خط فرمان یا در گروههای فایل تنظیمات [mariadb-check] و [client] مشخص کرد. گزینههای -c، -r، -a و -o متقابلاً منحصربهفرد هستند (امکان استفاده همزمان از آنها وجود ندارد).
نمایش پیام راهنما و خروج.
بررسی تمام جدولها در همه پایگاههای داده. این کار معادل استفاده از گزینهٔ --databases و ذکر نام تمام پایگاههای داده در خط فرمان است.
به جای صدور یک دستور برای هر جدول، برای هر پایگاهداده یک دستور منفرد اجرا میکند که نام تمامی جدولهای آن پایگاهداده را برای پردازش مشخص مینماید.
تحلیل جدولها.
اگر جدولی که بررسی شده دچار خرابی باشد، بهطور خودکار آن را تعمیر میکند. هرگونه تعمیر لازم، پس از بررسی تمام جدولها انجام میشود.
دایرکتوری که مجموعهنویسهها در آن نصب شدهاند.
بررسی جدولها برای یافتن خطا. این عملیات پیشفرض است.
تنها جدولهایی را بررسی میکند که از زمان آخرین بررسی تغییر کردهاند یا بهدرستی بسته نشدهاند.
فراخوانی CHECK TABLE با گزینهٔ FOR UPGRADE جهت بررسی جدولها از نظر ناسازگاری با نسخهٔ فعلی سرور. این گزینه بهطور خودکار گزینههای --fix-db-names و --fix-table-names را فعال میکند.
فشردهسازی تمام اطلاعات ارسالشده میان کلاینت و سرور در صورتی که هر دو از فشردهسازی پشتیبانی کنند.
پردازش تمام جدولها در پایگاههای دادهٔ نامبردهشده. بهطور معمول، mariadb-check نخستین آرگومان نام در خط فرمان را به عنوان نام پایگاهداده و نامهای پس از آن را به عنوان نامهای جدول در نظر میگیرد. با این گزینه، تمام آرگومانهای نام را به عنوان نامهای پایگاهداده در نظر میگیرد.
نوشتن یک لاگ اشکالزدایی. یک رشتهٔ معمولی debug_options به صورت 'd:t:o,file_name' است. مقدار پیشفرض 'd:t:o' است.
هنگام خروج برنامه، برخی اطلاعات اشکالزدایی را چاپ میکند.
هنگام خروج برنامه، اطلاعات اشکالزدایی و آمار مصرف حافظه و پردازنده (CPU) را چاپ میکند.
پلاگین پیشفرض سمت کلاینت برای احراز هویت.
استفاده از charset_name به عنوان مجموعهنویسهٔ پیشفرض.
تنظیم filename به عنوان فایلی برای خواندن گزینههای پیشفرض پس از خوانده شدن فایلهای پیشفرض سراسری. باید به عنوان اولین گزینه مشخص شود.
تنظیم filename به عنوان فایلی برای خواندن گزینههای پیشفرض، که جایگزین فایلهای پیشفرض سراسری میشود. باید به عنوان اولین گزینه مشخص شود.
اگر از این گزینه برای بررسی جدولها استفاده میکنید، سازگاری ۱۰۰٪ آنها را تضمین میکند اما زمان زیادی میبرد.
اگر از این گزینه برای تعمیر جدولها استفاده میکنید، به جای روش بسیار سریعتر تعمیر با مرتبسازی، استفاده از روش قدیمی و کند تعمیر با استفاده از حافظه پنهان کلید (keycache) را تحمیل میکند.
تنها جدولهایی را بررسی میکند که بهدرستی بسته نشدهاند.
تبدیل نامهای پایگاهداده به قالبی که از MySQL 5.1 به بعد استفاده میشود. فقط نامهای پایگاهدادهای که شامل نویسههای خاص هستند تحت تأثیر قرار میگیرند.
تبدیل نامهای جدول (شامل نماها) به قالبی که از MySQL 5.1 به بعد استفاده میشود. فقط نامهای جدولی که شامل نویسههای خاص هستند تحت تأثیر قرار میگیرند.
تخلیه (Flush) هر جدول پس از بررسی. این گزینه زمانی مفید است که نمیخواهید جدولهای بررسیشده پس از اتمام بررسی، فضایی را در حافظههای پنهان (cache) اشغال کنند.
ادامه دادن حتی در صورتی که یک خطای SQL رخ دهد.
اتصال به سرور MariaDB روی میزبان دادهشده.
انجام بررسیای که سریعتر از عملیات --extended است. این گزینه فقط ۹۹.۹۹٪ از تمام خطاها را مییابد که در بیشتر موارد باید کافی باشد.
نخواندن گزینههای پیشفرض از هیچ فایل تنظیمی. این باید به عنوان اولین آرگومان مشخص شود.
بهینهسازی جدولها.
گذرواژهای که برای اتصال به سرور استفاده میشود. اگر از فرم کوتاه گزینه (-p) استفاده میکنید، نمیتوانید بین گزینه و گذرواژه فاصله بگذارید. اگر مقدار password را پس از گزینهٔ --password یا -p در خط فرمان وارد نکنید، mariadb-check آن را درخواست میکند.
مشخص کردن گذرواژه در خط فرمان باید ناامن تلقی شود. میتوانید از یک فایل تنظیمات استفاده کنید تا از ارائهٔ گذرواژه در خط فرمان اجتناب شود.
همراه با ANALYZE TABLE برای افزودن گزینهٔ PERSISTENT FOR ALL به کار میرود.
در ویندوز، اتصال به سرور از طریق یک لولهٔ نامگذاریشده (named pipe). این گزینه تنها در صورتی کاربرد دارد که سرور از اتصالات named-pipe پشتیبانی کند.
دایرکتوری پلاگینهای سمت کلاینت.
شماره درگاه TCP/IP برای برقراری اتصال. هنگامی که بدون سایر مشخصات اتصال در خط فرمان مشخص شود، --protocol=tcp را تحمیل میکند.
چاپ فهرست آرگومانهای برنامه و خروج. این باید به عنوان اولین آرگومان مشخص شود.
انجام عملیات درخواستی روی جدولها. بهطور پیشفرض فعال است؛ برای غیرفعالسازی از --skip-process-tables استفاده کنید.
انجام عملیات درخواستی (تنها CHECK VIEW یا REPAIR VIEW). مقادیر ممکن عبارتند از NO، YES (تصحیح checksum، در صورت لزوم، افزودن فیلد mariadb-version)، UPGRADE_FROM_MYSQL (همانند YES و تغییر الگوریتم بین MERGE<->TEMPTABLE).
پروتکل اتصال برای اتصال به سرور. این گزینه زمانی کاربرد دارد که دیگر پارامترهای اتصال بهطور معمول باعث استفاده از پروتکلی غیر از پروتکل مورد نظر شما شوند.
اگر از این گزینه برای بررسی جدولها استفاده میکنید، از پیمایش سطرها جهت بررسی پیوندهای نادرست جلوگیری میکند. این سریعترین روش بررسی است.
اگر از این گزینه برای تعمیر جدولها استفاده میکنید، تلاش میکند فقط درخت شاخص (index tree) را تعمیر کند. این سریعترین روش تعمیر است.
انجام تعمیری که تقریباً همه چیز را برطرف میکند، به جز کلیدهای یکتایی (unique keys) که یکتا نیستند.
حالت خاموش. فقط پیامهای خطا را چاپ میکند.
پایگاهدادهای (حساس به حروف کوچک و بزرگ) را که به عنوان آرگومان مشخص شده پردازش نمیکند.
برای اتصال به localhost، فایل سوکت یونیکس مورد استفاده، یا در ویندوز، نام لولهٔ نامگذاریشده (named pipe) مورد استفاده. هنگامی که بدون سایر مشخصات اتصال در خط فرمان مشخص شود، --protocol=socket را تحمیل میکند؛ در ویندوز، --protocol=pipe را تحمیل میکند.
فعالسازی SSL برای اتصال (بهطور خودکار با دیگر پرچمها فعال میشود). غیرفعالسازی با --skip-ssl.
فایل CA در قالب PEM (مستندات OpenSSL را بررسی کنید، مستلزم --ssl است).
دایرکتوری CA (مستندات OpenSSL را بررسی کنید، مستلزم --ssl است).
گواهی X509 در قالب PEM (مستندات OpenSSL را بررسی کنید، مستلزم --ssl است).
سایفر SSL مورد استفاده (مستندات OpenSSL را بررسی کنید، مستلزم --ssl است).
کلید X509 در قالب PEM (مستندات OpenSSL را بررسی کنید، مستلزم --ssl است).
فهرست ابطال گواهی (مستندات OpenSSL را بررسی کنید، مستلزم --ssl است).
مسیر فهرست ابطال گواهی (مستندات OpenSSL را بررسی کنید، مستلزم --ssl است).
اعتبارسنجی «Common Name» سرور در گواهی آن در برابر نام میزبان (hostname) استفادهشده هنگام اتصال. این گزینه بهطور پیشفرض غیرفعال است.
لغو یا جایگزینی گزینهٔ --databases یا -B. تمام آرگومانهای نام که پس از این گزینه میآیند به عنوان نامهای جدول در نظر گرفته میشوند.
برای عملیات تعمیر روی جدولهای MyISAM، ساختار جدول را از فایل .frm دریافت میکند تا جدول حتی در صورت خرابی سرایند (header) فایل .MYI بتواند تعمیر شود.
نام کاربری MariaDB جهت استفاده در هنگام اتصال به سرور.
حالت پرگو. چاپ اطلاعات درباره مراحل گوناگون عملکرد برنامه. استفاده از یک گزینهٔ --verbose اطلاعات بیشتری درباره آنچه mariadb-check انجام میدهد در اختیارتان قرار خواهد داد.
استفاده از دو گزینهٔ --verbose همچنین اطلاعات اتصال را ارائه میدهد.
استفاده از آن ۳ بار، تمامی دستورهای CHECK، RENAME و ALTER TABLE را در طول فاز بررسی چاپ خواهد کرد.
نمایش اطلاعات نسخه و خروج.
این گزینه بهطور پیشفرض فعال است، بهطوری که عبارتهای ANALYZE TABLE، OPTIMIZE TABLE و REPAIR TABLE تولیدشده توسط mariadb-check در گزارش باینری (binary log) ثبت میشوند. از --skip-write-binlog استفاده کنید تا NO_WRITE_TO_BINLOG به عبارتها افزوده شود و ثبت نگردند. از --skip-write-binlog زمانی استفاده کنید که این دستورها نباید به ماشینهای رونویسی پیرو (replication slaves) فرستاده شوند یا هنگام بازیابی از پشتیبان با استفاده از لاگهای باینری اجرا گردند.
حق نشر (COPYRIGHT)
Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc., 2010-2025 MariaDB Foundation
این مستندات نرمافزار آزاد است؛ شما میتوانید آن را فقط تحت شرایط مجوز عمومی همگانی گنو همانطور که توسط بنیاد نرمافزارهای آزاد منتشر شده است؛ نسخه ۲ مجوز، بازتوزیع کرده یا تغییر دهید.
این مستندات به این امید توزیع شده است که مفید واقع شود، اما بدون هیچگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به مجوز عمومی همگانی گنو مراجعه کنید.
شما باید به همراه این برنامه یک نسخه از مجوز عمومی همگانی گنو را دریافت کرده باشید؛ در غیر این صورت، به بنیاد نرمافزارهای آزاد به نشانی Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA بنویسید یا به http://www.gnu.org/licenses مراجعه کنید.
همچنین ببینید (SEE ALSO)
برای اطلاعات بیشتر، لطفاً به مستندات MariaDB مراجعه کنید که بهصورت برخط در https://mariadb.com/docs در دسترس است.
نویسنده (AUTHOR)
بنیاد MariaDB (http://www.mariadb.org).
| 5 March 2025 | MariaDB 11.8 |