MARIADB-DUMP(1) MariaDB Database System MARIADB-DUMP(1)

mariadb-dump - برنامه‌ای برای پشتیبان‌گیری از پایگاه داده (mariadb-dump اکنون یک پیوند نمادین به mariadb-dump است)

mariadb-dump [options] [db_name [tbl_name ...]]

کلاینت mariadb-dump یک برنامهٔ پشتیبان‌گیری است که در ابتدا توسط Igor Romanenko نوشته شده است. این برنامه می‌تواند برای استخراج (dump) یک پایگاه داده یا مجموعه‌ای از پایگاه‌های داده جهت پشتیبان‌گیری یا انتقال به یک سرور SQL دیگر (که لزوماً یک سرور MariaDB نیست) مورد استفاده قرار گیرد. خروجی دامپ معمولاً شامل دستورهای SQL برای ایجاد جدول، مقداردهی داده‌ها، یا هر دو است. با این حال، mariadb-dump می‌تواند برای تولید فایل‌هایی با قالب CSV، متون با نویسهٔ جداکننده، یا قالب XML نیز به کار رود.

اگر پشتیبان‌گیری را روی سرور انجام می‌دهید و تمام جدول‌های شما از نوع MyISAM هستند، استفاده از mariadb-hotcopy را در نظر بگیرید، زیرا می‌تواند پشتیبان‌گیری و بازیابی بسیار سریع‌تری انجام دهد. به mariadb-hotcopy(1) مراجعه کنید.

چهار روش کلی برای فراخوانی mariadb-dump وجود دارد:

shell> mariadb-dump [options] db_name [tbl_name ...]
shell> mariadb-dump [options] --databases db_name ...
shell> mariadb-dump [options] --all-databases
shell> mariadb-dump [options] --system={options}

اگر بعد از db_name نام هیچ جدولی را ذکر نکنید یا اگر از گزینهٔ --databases یا --all-databases استفاده کنید، تمام پایگاه‌های داده استخراج خواهند شد.

mariadb-dump به‌طور پیش‌فرض از پایگاه‌های دادهٔ INFORMATION_SCHEMA یا performance_schema پشتیبان نمی‌گیرد. برای استخراج این پایگاه‌های داده، نام آن‌ها را به‌صراحت در خط فرمان مشخص کنید، اگرچه باید از گزینهٔ --skip-lock-tables نیز استفاده کنید.

برای مشاهدهٔ فهرستی از گزینه‌هایی که نسخهٔ شما از mariadb-dump پشتیبانی می‌کند، دستور mariadb-dump --help را اجرا کنید.

برخی از گزینه‌های mariadb-dump شکل کوتاه‌شده‌ای برای گروهی از گزینه‌های دیگر هستند:

•استفاده از --opt معادل مشخص کردن گزینه‌های --add-drop-table، --add-locks، --create-options، --disable-keys، --extended-insert، --lock-tables، --quick و --set-charset است. تمام گزینه‌هایی که --opt نمایندهٔ آن‌هاست نیز به‌طور پیش‌فرض فعال هستند زیرا گزینهٔ --opt به‌طور پیش‌فرض فعال است.
•استفاده از --compact معادل مشخص کردن گزینه‌های --skip-add-drop-table، --skip-add-locks، --skip-comments، --skip-disable-keys و --skip-set-charset است.

برای معکوس کردن اثر یک گزینهٔ گروهی، از شکل --skip-xxx آن (--skip-opt یا --skip-compact) استفاده کنید. همچنین این امکان وجود دارد که با درج گزینه‌هایی پس از آن که ویژگی‌های خاصی را فعال یا غیرفعال می‌کنند، تنها بخشی از اثر یک گزینهٔ گروهی را انتخاب کنید. چند مثال در زیر آورده شده است:

•برای اعمال اثر --opt به‌جز برخی ویژگی‌ها، از گزینهٔ --skip مربوط به هر ویژگی استفاده کنید. برای غیرفعال کردن درج‌های گسترده (extended inserts) و بافرینگ حافظه، از گزینه‌های --opt --skip-extended-insert --skip-quick استفاده کنید. (در واقع، استفاده از --skip-extended-insert --skip-quick کفایت می‌کند زیرا گزینهٔ --opt به‌طور پیش‌فرض فعال است.)
•برای معکوس کردن --opt برای تمامی ویژگی‌ها به‌جز غیرفعال‌سازی کلیدها و قفل کردن جدول‌ها، از --skip-opt --disable-keys --lock-tables استفاده کنید.

هنگامی که اثر یک گزینهٔ گروهی را به‌صورت انتخابی فعال یا غیرفعال می‌کنید، ترتیب گزینه‌ها حائز اهمیت است زیرا گزینه‌ها از چپ به راست پردازش می‌شوند. به عنوان مثال، --disable-keys --lock-tables --skip-opt اثر مورد نظر را نخواهد داشت؛ این کار معادل استفاده از گزینهٔ --skip-opt به‌تنهایی است.

mariadb-dump می‌تواند محتویات جدول را سطر به سطر واکشی و استخراج کند، یا می‌تواند کل محتوای یک جدول را پیش از استخراج واکشی کرده و در حافظه بافر کند. بافر کردن در حافظه هنگام استخراج جدول‌های حجیم می‌تواند مشکل‌ساز باشد. برای استخراج سطر به سطر جدول‌ها، از گزینهٔ --quick (یا --opt که گزینهٔ --quick را فعال می‌کند) استفاده کنید. گزینهٔ --opt (و در نتیجه --quick) به‌طور پیش‌فرض فعال است، بنابراین برای فعال کردن بافرینگ حافظه، از گزینهٔ --skip-quick استفاده نمایید..PP اگر از نسخه جدیدی از mariadb-dump برای تولید یک نسخه پشتیبان (dump) جهت بارگذاری مجدد در یک سرور بسیار قدیمی MySQL استفاده می‌کنید، نباید از گزینه --opt یا --extended-insert استفاده کنید. به‌جای آن از --skip-opt استفاده کنید.

mariadb-dump از گزینه‌های زیر پشتیبانی می‌کند که می‌توان آن‌ها را در خط فرمان یا در گروه‌های [mariadb-dump] و [client] فایل تنظیمات مشخص کرد. mariadb-dump همچنین از گزینه‌های پردازش فایل‌های تنظیمات پشتیبانی می‌کند.

•--help, -?

نمایش پیام راهنما و خروج.

•--add-drop-database

افزودن یک دستور DROP DATABASE پیش از هر دستور CREATE DATABASE. این گزینه معمولاً همراه با گزینه --all-databases یا --databases استفاده می‌شود، چرا که هیچ دستور CREATE DATABASE نوشته نمی‌شود مگر اینکه یکی از این گزینه‌ها مشخص شده باشد.

•--add-drop-table

افزودن یک دستور DROP TABLE پیش از هر دستور CREATE TABLE.

•--add-drop-trigger

افزودن یک دستور DROP TRIGGER پیش از هر دستور CREATE TRIGGER.

•--add-locks

احاطه کردن نسخه پشتیبان (dump) هر جدول با دستورهای LOCK TABLES و UNLOCK TABLES. این کار هنگام بارگذاری مجدد فایل dump، منجر به درج سریع‌تر اطلاعات می‌شود.

•--all-databases, -A

پشتیبان‌گیری از تمام جدول‌ها در تمامی پایگاه‌های داده. این کار معادل استفاده از گزینه --databases و ذکر نام تمام پایگاه‌های داده در خط فرمان است.

•--all-tablespaces, -Y

افزودن تمامی دستورهای SQL مورد نیاز برای ایجاد هرگونه فضای جدولی (tablespace) استفاده‌شده توسط یک جدول NDBCLUSTER به پشتیبان جدول. این اطلاعات در حالت عادی در خروجی mariadb-dump قرار نمی‌گیرد. این گزینه در حال حاضر تنها برای جدول‌های MySQL Cluster کاربرد دارد.

•--allow-keywords

اجازه به ایجاد نام ستون‌هایی که جزو کلمات کلیدی هستند. این کار با قرار دادن نام جدول به عنوان پیشوند نام هر ستون انجام می‌شود.

•--apply-slave-statements.sp دستور ´STOP SLAVE´ را پیش از ´CHANGE MASTER´ و ´START SLAVE´ را به انتهای dump می‌افزاید.
•--as-of=name

گرفتن dump از جدول دارای نسخه‌بندی سیستمی (system-versioned) در برچسب زمانی (timestamp) مشخص‌شده.

•--character-sets-dir=path

دایرکتوری محل نصب مجموعه‌نویسه‌ها (character sets).

•--comments, -i

نوشتن اطلاعات تکمیلی در فایل dump مانند نسخه برنامه، نسخه کارگزار و میزبان. این گزینه به‌طور پیش‌فرض فعال است. برای جلوگیری از درج این اطلاعات اضافی، از --skip-comments استفاده کنید.

•--compact

تولید خروجی فشرده‌تر. این گزینه گزینه‌های --skip-add-drop-table، --skip-add-locks، --skip-comments، --skip-disable-keys و --skip-set-charset را فعال می‌کند.

•--compatible=name

تولید خروجی با سازگاری بیشتر با دیگر سامانه‌های پایگاه‌داده یا با کارگزارهای قدیمی‌تر MySQL. مقدار name می‌تواند ansi، mysql323، mysql40، postgresql، oracle، mssql، db2، maxdb، no_key_options، no_table_options یا no_field_options باشد. برای استفاده از چند مقدار، آن‌ها را با ویرگول از هم جدا کنید. این مقادیر معنایی مشابه با گزینه‌های متناظر برای تنظیم حالت SQL (SQL mode) کارگزار دارند.

این گزینه سازگاری با سایر کارگزارها را تضمین نمی‌کند. این گزینه فقط آن دسته از مقادیر حالت SQL را فعال می‌کند که در حال حاضر برای سازگارتر کردن خروجی dump در دسترس هستند. برای مثال، --compatible=oracle انواع داده را به انواع داده Oracle نگاشت نمی‌کند یا از قواعد نگارشی توضیحات (comments) در Oracle استفاده نمی‌کند.

•--complete-insert, -c

استفاده از دستورهای کامل INSERT که شامل نام ستون‌ها هستند.

•--compress, -C

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

•--copy-s3-tables

به‌طور پیش‌فرض جدول‌های S3 نادیده گرفته می‌شوند. با تنظیم این گزینه، فایل حاصل شامل یک دستور CREATE برای یک جدول مشابه Aria خواهد بود که پس از آن داده‌های جدول آمده و با دستور ALTER TABLE xxx ENGINE=S3 پایان می‌یابد.

•--create-options, -a

گنجاندن تمام گزینه‌های مختص MariaDB برای جدول در دستورهای CREATE TABLE. برای غیرفعال کردن از --skip-create-options استفاده کنید.

•--databases, -B

پشتیبان‌گیری از چند پایگاه‌داده. در حالت عادی، mariadb-dump نخستین آرگومان نام در خط فرمان را به عنوان نام پایگاه‌داده و نام‌های پس از آن را به عنوان نام‌های جدول در نظر می‌گیرد. با این گزینه، تمامی آرگومان‌های نام به عنوان نام‌های پایگاه‌داده در نظر گرفته می‌شوند. دستورهای CREATE DATABASE و USE پیش از هر پایگاه‌داده جدید در خروجی گنجانده می‌شوند.

•--debug[=debug_options], -# [debug_options]

نوشتن لاگ اشکال‌زدایی. یک رشته معمول برای debug_options عبارت است از 'd:t:o,file_name'. مقدار پیش‌فرض 'd:t:o,/tmp/mariadb-dump.trace' است.

•--debug-check

چاپ برخی اطلاعات اشکال‌زدایی هنگام خروج برنامه.

•--debug-info

چاپ اطلاعات اشکال‌زدایی و آمار مصرف حافظه و CPU هنگام خروج برنامه.

•--default-auth

پلاگین پیش‌فرض احراز هویت سمت کلاینت برای استفاده.

•--default-character-set=charset_name

استفاده از charset_name به عنوان مجموعه نویسه پیش‌فرض. اگر هیچ مجموعه نویسه‌ای مشخص نشده باشد، mariadb-dump از utf8 استفاده می‌کند.

•--defaults-extra-file=filename

تعیین filename به عنوان فایلی برای خواندن گزینه‌های پیش‌فرض، پس از خوانده شدن فایل‌های پیش‌فرض سراسری. باید به عنوان نخستین گزینه داده شود.

•--defaults-file=filename

تعیین filename به عنوان فایلی برای خواندن گزینه‌های پیش‌فرض و نادیده‌گرفتن فایل‌های پیش‌فرض سراسری. باید به عنوان نخستین گزینه داده شود.

•--defaults-group-suffix=str,

همچنین خواندن گروه‌هایی با پسوند str. برای نمونه، از آنجا که mariadb-dump به طور معمول گروه‌های [client] و [mariadb-dump] را می‌خواند، --defaults-group-suffix=x سبب می‌شود که گروه‌های [mariadb-dump_x] و [client_x] نیز خوانده شوند.

•--delayed-insert

نوشتن دستورهای INSERT DELAYED به جای دستورهای INSERT.

•--delete-master-logs

در یک سرور تکثیر اصلی (master replication server)، حذف لاگ‌های باینری با ارسال دستور PURGE BINARY LOGS به سرور پس از انجام عملیات پشتیبان‌گیری. این گزینه به طور خودکار --master-data را فعال می‌کند.

•--dir

پشتیبان‌گیری موازی از چندین پایگاه‌داده. از نظر خروجی دقیقاً مانند --tab عمل می‌کند (فایل sql برای تعاریف جداول و فایل‌های جداشده با تب برای داده‌ها، با همان گزینه‌ها، مانند --parallel). همچنین امکان استفاده از گزینه‌های --databases و --all-databases را فراهم می‌آورد. هنگامی که --dir به کار می‌رود، ساختار پوشه‌ها را در دایرکتوری خروجی مشخص‌شده با --dir ایجاد می‌کند. به ازای هر پایگاه‌داده‌ای که باید پشتیبان‌گیری شود، دایرکتوری‌ای با نام همان پایگاه‌داده وجود خواهد داشت. تمام گزینه‌هایی که --tab پشتیبانی می‌کند، توسط --dir نیز پشتیبانی می‌شوند، به‌ویژه --parallel.

•--disable-keys, -K

برای هر جدول، عبارت‌های INSERT را در میان عبارت‌های /*!40000 ALTER TABLE tbl_name DISABLE KEYS */; و /*!40000 ALTER TABLE tbl_name ENABLE KEYS */; قرار می‌دهد. این کار بارگذاری فایل پشتیبان را سریع‌تر می‌کند زیرا نمایه‌ها پس از درج تمام ردیف‌ها ایجاد می‌شوند. این گزینه فقط برای نمایه‌های غیریکتای جداول MyISAM مؤثر است.

•--dump-date

اگر گزینهٔ --comments داده شده باشد، mariadb-dump در انتهای خروجی پشتیبان، توضیحی به شکل زیر تولید می‌کند:

-- Dump completed on DATE

با این حال، درج تاریخ باعث می‌شود فایل‌های پشتیبان تهیه‌شده در زمان‌های گوناگون متفاوت به نظر برسند، حتی اگر داده‌های آن‌ها کاملاً یکسان باشد. --dump-date و --skip-dump-date اضافه شدن تاریخ به این توضیح را کنترل می‌کنند. مقدار پیش‌فرض --dump-date است (گنجاندن تاریخ در بخش توضیحات). --skip-dump-date از چاپ تاریخ جلوگیری می‌کند.

•--dump-history

پشتیبان‌گیری از جداول به همراه تاریخچه. تا پیش از این گزینه، mariadb-dump قادر به خواندن ردیف‌های تاریخی از جداول نسخه‌بندی‌شده نبود، و در نتیجه از داده‌های تاریخی پشتیبان‌گیری نمی‌شد.

•--dump-slave[=value]

برای تولید یک فایل پشتیبان از سرور اسلیو (slave) رونویسی استفاده می‌شود که می‌توان با آن سرور اسلیو دیگری با همان مَستر (master) راه‌اندازی کرد. باعث می‌شود موقعیت binary log و نام فایل سرور مستر به خروجی داده‌های پشتیبان‌گیری افزوده شود. مقداردهی آن به 1 (پیش‌فرض) آن را به صورت یک دستور CHANGE MASTER در خروجی داده‌های پشتیبان چاپ می‌کند؛ در صورت تنظیم روی 2، یک نماد توضیح (کامنت) در ابتدای آن دستور قرار می‌گیرد. این گزینه --lock-all-tables را فعال می‌کند، مگر اینکه --single-transaction نیز مشخص شده باشد (که در این حالت قفل خواندن سراسری تنها برای مدتی کوتاه در ابتدای پشتیبان‌گیری گرفته می‌شود - مطالعه دربارهٔ --single-transaction در ادامه را فراموش نکنید). در تمام حالات، هرگونه اقدام بر روی لاگ‌ها دقیقاً در همان لحظهٔ پشتیبان‌گیری رخ خواهد داد. این گزینه به‌طور خودکار --lock-tables را غیرفعال می‌کند. استفاده از این گزینه باعث می‌شود mariadb-dump پیش از آغاز پشتیبان‌گیری، تردِ SQL اسلیو را متوقف کرده و پس از اتمام، دوباره آن را راه‌اندازی کند.

•--events, -E

رویدادهای Event Scheduler را برای پایگاه‌های دادهٔ پشتیبان‌گیری‌شده در خروجی قرار می‌دهد.

•--extended-insert, -e

استفاده از نحو INSERT چندردیفی که شامل چندین فهرست از VALUES است. این امر منجر به ایجاد فایل پشتیبان کوچک‌تر شده و سرعت درج ردیف‌ها را هنگام بارگذاری مجدد فایل افزایش می‌دهد.

•--fields-terminated-by=..., --fields-enclosed-by=..., --fields-optionally-enclosed-by=..., --fields-escaped-by=...

این گزینه‌ها همراه با گزینهٔ --tab به کار می‌روند و معنایی مشابه با عبارت‌های متناظر FIELDS برای LOAD DATA INFILE دارند.

•--first-slave

در MariaDB 5.5 حذف شده است. در عوض از --lock-all-tables استفاده کنید.

•--flush-logs, -F

فایل‌های گزارش (log) کارساز MariaDB را پیش از شروع پشتیبان‌گیری بازنشانی (flush) می‌کند. این گزینه نیازمند مجوز RELOAD است. اگر از این گزینه در ترکیب با گزینهٔ --all-databases استفاده کنید، گزارش‌ها به‌ازای هر پایگاه دادهٔ پشتیبان‌گیری‌شده بازنشانی می‌شوند. استثنا در زمان استفاده از --lock-all-tables یا --master-data است: در این حالت، گزارش‌ها تنها یک بار بازنشانی می‌شوند، که منطبق با لحظهٔ قفل شدن تمامی جدول‌ها است. اگر می‌خواهید پشتیبان‌گیری و بازنشانی گزارش دقیقاً در یک لحظه رخ دهند، باید از --flush-logs همراه با --lock-all-tables یا --master-data استفاده کنید.

•--flush-privileges

یک دستور FLUSH PRIVILEGES را پس از پشتیبان‌گیری از پایگاه دادهٔ mysql به کارساز ارسال می‌کند. این گزینه باید هر زمان که خروجی پشتیبان شامل پایگاه دادهٔ mysql و هر پایگاه دادهٔ دیگری باشد که برای بازیابی مناسب به داده‌های پایگاه دادهٔ mysql وابسته است، استفاده شود.

•--force, -f

حتی در صورت وقوع یک خطای SQL حین پشتیبان‌گیری از یک جدول، به کار ادامه می‌دهد.

یکی از کاربردهای این گزینه این است که باعث می‌شود mariadb-dump حتی هنگام مواجهه با نمایی (view) که به‌دلیل ارجاع تعریف آن به جدولی که حذف (drop) شده نامعتبر گردیده است، به اجرا ادامه دهد. بدون --force، دستور mariadb-dump با یک پیام خطا خارج می‌شود. با --force، دستور mariadb-dump پیام خطا را چاپ می‌کند، اما همچنین یک کامنت SQL حاوی تعریف نما را در خروجی پشتیبان می‌نویسد و به اجرا ادامه می‌دهد.

•--gtid

از MariaDB 10.0.13 در دسترس است و همراه با --master-data و --dump-slave برای راه‌اندازی راحت‌تر یک slave جدید GTID به کار می‌رود. این گزینه باعث می‌شود که آن گزینه‌ها عبارت‌های SQLای تولید کنند که slave را برای استفاده از شناسهٔ سراسری تراکنش (GTID) جهت اتصال به master به‌جای موقعیت‌های قدیمی نام‌فایل/آفست پیکربندی کند. موقعیت‌های سبک قدیمی در صورت استفاده از --gtid همچنان در کامنت‌ها گنجانده می‌شوند؛ به‌همین ترتیب حتی اگر از --gtid استفاده نشود، موقعیت GTID در کامنت‌ها قرار می‌گیرد.

•--header

همراه با --tab استفاده می‌شود. در صورت فعال بودن، سرآیندی شامل نام ستون‌ها به ابتدای فایل‌های txt خروجی اضافه می‌کند.

•--hex-blob

پشتیبان‌گیری از ستون‌های دودویی با استفاده از نمادگذاری شانزده‌شانزدهی (برای مثال، 'abc' تبدیل به 0x616263 می‌شود). نوع‌های دادهٔ متأثر عبارت‌اند از BINARY، VARBINARY، نوع‌های BLOB، و BIT.

•--host=host_name, -h host_name

پشتیبان‌گیری از داده‌ها از کارساز MariaDB روی میزبان مشخص‌شده. میزبان پیش‌فرض localhost است.

•--ignore-table=db_name.tbl_name

از جدول داده‌شده پشتیبان‌گیری نمی‌کند؛ این جدول باید با هر دو نام پایگاه داده و جدول مشخص شود. برای نادیده گرفتن چندین جدول، از این گزینه چندین بار استفاده کنید. از این گزینه می‌توان برای نادیده گرفتن نماها نیز استفاده کرد.

•--include-master-host-port

افزودن گزینه‌های MASTER_HOST و MASTER_PORT به عبارت CHANGE MASTER TO هنگام استفاده از گزینهٔ --dump-slave برای پشتیبان‌گیری از یک slave.

•--insert-ignore

نوشتن عبارت‌های INSERT IGNORE به جای عبارت‌های INSERT.

•--lines-terminated-by=...

این گزینه همراه با گزینهٔ --tab استفاده می‌شود و معنایی یکسان با بندِ متناظر LINES برای LOAD DATA INFILE دارد.

•--lock-all-tables, -x

قفل کردن تمام جدول‌ها در همهٔ پایگاه‌های داده. این عمل با دریافت یک قفل خواندن سراسری (global read lock) برای کل مدت‌زمان پشتیبان‌گیری انجام می‌شود. این گزینه به طور خودکار گزینه‌های --single-transaction و --lock-tables را غیرفعال می‌کند.

•--lock-tables, -l

برای هر پایگاه داده‌ای که پشتیبان‌گیری می‌شود، قفل کردن تمام جدول‌های مربوطه پیش از استخراج آن‌ها. جدول‌ها با READ LOCAL قفل می‌شوند تا امکان درج هم‌زمان در جدول‌های MyISAM وجود داشته باشد. برای جدول‌های تراکنشی مانند InnoDB، گزینهٔ --single-transaction بسیار بهتر از --lock-tables است، زیرا اصلاً نیازی به قفل کردن جدول‌ها ندارد.

از آنجا که --lock-tables جدول‌ها را برای هر پایگاه داده به صورت جداگانه قفل می‌کند، این گزینه تضمین نمی‌کند که جدول‌های موجود در فایل پشتیبان بین پایگاه‌های دادهٔ مختلف از نظر منطقی سازگار باشند. جدول‌ها در پایگاه‌های دادهٔ گوناگون ممکن است در وضعیت‌های کاملاً متفاوتی استخراج شوند.

برای غیرفعال کردن از --skip-lock-tables استفاده کنید.

•--log-error=file_name

ثبت هشدارها و خطاها با افزودن آن‌ها به فایل مشخص‌شده. حالت پیش‌فرض بر روی عدم ثبت هرگونه گزارش قرار دارد.

•--log-queries

هنگام بازیابی پشتیبان، در صورتی که ثبت گزارش فعال باشد، سرور پرس‌وجوها را در لاگ‌های عمومی (general log) و پرس‌وجوهای کُند (slow query log) ثبت خواهد کرد. به طور پیش‌فرض فعال است؛ برای غیرفعال کردن از --skip-log-queries استفاده کنید.

•--master-data[=value]

استفاده از این گزینه برای پشتیبان‌گیری از یک سرور اصلی همانندسازی (master replication server) جهت تولید فایل پشتیبانی که بتوان از آن برای راه‌اندازی سروری دیگر به عنوان slave آن master استفاده کرد. این گزینه سبب می‌شود که خروجی پشتیبان شامل دستور CHANGE MASTER TO باشد که مختصات لاگ دودویی (نام فایل و موقعیت) سرورِ پشتیبان‌گیری‌شده را مشخص می‌کند. این‌ها مختصات سرور اصلی هستند که slave پس از بارگذاری فایل پشتیبان، باید همانندسازی را از آن نقطه آغاز کند.

اگر مقدار گزینه برابر با 2 باشد، دستور CHANGE MASTER TO به عنوان یک کامنت SQL نوشته می‌شود و بنابراین صرفاً جنبهٔ اطلاع‌رسانی دارد؛ هنگام بارگذاری مجدد فایل پشتیبان هیچ اثری نخواهد داشت. اگر مقدار این گزینه 1 باشد، عبارت مذکور به صورت کامنت نوشته نمی‌شود و هنگام بارگذاری مجدد فایل پشتیبان اعمال خواهد شد. اگر مقداری مشخص نشود، مقدار پیش‌فرض 1 خواهد بود.

این گزینه نیازمند امتیاز RELOAD بوده و لاگ دودویی (binary log) نیز باید فعال باشد.

گزینهٔ --master-data به طور خودکار --lock-tables را غیرفعال می‌کند. همچنین --lock-all-tables را فعال می‌سازد، مگر اینکه --single-transaction نیز تعیین شده باشد. در تمام حالات، هرگونه اقدام بر روی لاگ‌ها دقیقاً در لحظهٔ پشتیبان‌گیری روی می‌دهد.

همچنین امکان راه‌اندازی یک slave با پشتیبان‌گیری از یک slave موجود از سرور master وجود دارد. بدین منظور، مراحل زیر را روی slave موجود انجام دهید:

1.نخِ SQL مربوط به slave را متوقف کرده و وضعیت فعلی آن را بررسی کنید:
mariadb> STOP SLAVE SQL_THREAD;
mariadb> SHOW SLAVE STATUS;
2.از خروجی عبارت SHOW SLAVE STATUS مختصات لاگ باینری سرور master که slave جدید باید همانندسازی را از آن آغاز کند، مقادیر فیلدهای Relay_Master_Log_File و Exec_Master_Log_Pos است. این مقادیر را به عنوان file_name و file_pos در نظر بگیرید.
3.از سرور slave نسخه‌ی پشتیبان (dump) بگیرید:
shell> mariadb-dump --master-data=2 --all-databases > dumpfile
4.سرور slave را مجدداً راه‌اندازی کنید:
mariadb> START SLAVE;
5.روی slave جدید، فایل dump را بارگذاری کنید:
shell> mariadb < dumpfile
6.روی slave جدید، مختصات همانندسازی را به مقادیر به دست آمده از سرور master تنظیم کنید:
mariadb> CHANGE MASTER TO
    -> MASTER_LOG_FILE = 'file_name', MASTER_LOG_POS = file_pos;

عبارت CHANGE MASTER TO ممکن است به پارامترهای دیگری مانند MASTER_HOST برای هدایت slave به میزبان صحیح سرور master نیز نیاز داشته باشد. در صورت نیاز این پارامترها را اضافه کنید.

•--max-allowed-packet=length

حداکثر طول بسته برای ارسال به سرور یا دریافت از آن را تعیین می‌کند.

•--max-statement-time=seconds

حداکثر زمانی که یک عبارت می‌تواند پیش از اتمام مهلت زمانی (timeout) توسط سرور اجرا شود را تنظیم می‌کند. (مقدار پیش‌فرض 0 (نامحدود) است)

•--net-buffer-length=length

اندازه بافر را برای ارتباطات TCP/IP و سوکت تعیین می‌کند.

•--no-autocommit

عبارت‌های INSERT را برای هر جدول نسخه‌برداری‌شده، درون عبارت‌های SET autocommit = 0 و COMMIT قرار می‌دهد.

•--no-create-db, -n

این گزینه از نوشتن دستورات CREATE DATABASE که در صورت مشخص شدن گزینهٔ --databases یا --all-databases در خروجی گنجانده می‌شوند، جلوگیری می‌کند.

•--no-create-info, -t

دستورات CREATE TABLE را که هر جدول استخراج‌شده را مجدداً ایجاد می‌کنند، در خروجی نمی‌نویسد.

•--no-data, -d

هیچ‌یک از اطلاعات سطرهای جدول را نمی‌نویسد (یعنی محتویات جدول را استخراج نمی‌کند). این گزینه زمانی کاربرد دارد که تنها بخواهید دستور CREATE TABLE را برای جدول استخراج کنید (برای نمونه، جهت ایجاد یک رونوشت خالی از جدول با بارگذاری فایل پشتیبان).

•--no-defaults

گزینه‌های پیش‌فرض را از هیچ فایل تنظیمی نمی‌خواند. این گزینه باید به عنوان نخستین آرگومان مشخص شود.

•--no-set-names, -N

این گزینه اثری مشابه با --skip-set-charset دارد.

•--opt

این گزینه یک میان‌بر است. مشخص کردن آن معادل تعیین هم‌زمانِ --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset می‌باشد. این گزینه عملیات استخراج را سریع کرده و فایلی تولید می‌کند که می‌توان آن را به‌سرعت در یک سرور MariaDB بارگذاری مجدد کرد.

گزینهٔ --opt به‌طور پیش‌فرض فعال است. برای غیرفعال کردن آن از --skip-opt استفاده کنید. جهت کسب اطلاعات دربارهٔ فعال یا غیرفعال‌سازی گزینشی زیرمجموعه‌ای از گزینه‌های متأثر از --opt، توضیحات ابتدای این بخش را ببینید.

•--order-by-primary

سطرهای هر جدول را مرتب‌شده بر اساس کلید اصلی آن یا در صورت وجود، نخستین نمایهٔ یکتا (unique index) استخراج می‌کند. این گزینه هنگام استخراج یک جدول MyISAM برای بارگذاری در یک جدول InnoDB مفید است، اما زمان عملیات استخراج را به‌طور چشمگیری افزایش می‌دهد.

•--order-by-size

هر جدول را بر اساس اندازه‌اش استخراج می‌کند، ابتدا کوچک‌ترین‌ها. هنگام استفاده از --single-transaction روی جدول‌هایی که مکرراً خالی (truncate) یا دستخوش تغییر ساختار (alter) می‌شوند بسیار کاربردی است. فرض بر این است که جدول‌های کوچک‌تر بیشتر خالی می‌شوند و با استخراج ابتدایی آن‌ها، احتمال اینکه عملیات استخراج با --single-transaction با خطای 'Table definition has changed, please retry transaction' شکست بخورد، کاهش می‌یابد.

•--parallel=#, -j

تعداد کارهای استخراج جدول که به‌طور هم‌روند و موازی اجرا می‌شوند (تنها برای استفاده همراه با گزینهٔ --tab). آزمایش‌های اولیه نشان می‌دهد که در استخراج‌های کوچک‌تر، هنگامی که پایگاه داده در حافظه جا می‌گیرد، کارایی می‌تواند تا ۴ برابر افزایش (کاهش زمان استخراج) یابد. با این حال نقطه‌ای وجود دارد که در آن دیسک به گلوگاه تبدیل می‌شود، که پس از آن افزودن کارهای موازی بیشتر بهبودی در کارایی ایجاد نخواهد کرد.

• --password[=password], -p[password].sp گذرواژه برای استفاده هنگام اتصال به سرور. اگر از شکل کوتاه گزینه (-p) استفاده کنید، نمی‌توانید بین گزینه و گذرواژه فاصله بگذارید. اگر مقدار password به‌دنبال گزینهٔ --password یا -p در خط فرمان قید نشود، mariadb-dump آن را از شما درخواست می‌کند.

مشخص کردن گذرواژه در خط فرمان باید ناامن تلقی شود. می‌توانید از یک فایل گزینه‌ها (option file) استفاده کنید تا از ارائه گذرواژه در خط فرمان پرهیز شود.

•--pipe, -W

در Windows، اتصال به سرور از طریق یک لولهٔ نام‌گذاری‌شده (named pipe). این گزینه تنها در صورتی اعمال می‌شود که سرور از اتصالات named-pipe پشتیبانی کند.

•--plugin-dir

دایرکتوری افزونه‌های سمت کلاینت.

•--port=port_num, -P port_num

شماره درگاه TCP/IP برای استفاده در اتصال. هنگامی که بدون سایر ویژگی‌های اتصال در خط فرمان مشخص شود، استفاده از --protocol=tcp را اجباری می‌کند.

•--protocol={TCP|SOCKET|PIPE|MEMORY}

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

•--quick, -q

این گزینه برای استخراج جدول‌های بزرگ مفید است. این گزینه mariadb-dump را ملزم می‌کند تا ردیف‌های یک جدول را به جای دریافت کل مجموعه ردیف‌ها و بافر کردن آن‌ها در حافظه پیش از نوشتن، سطر به سطر از سرور دریافت کند.

•--print-defaults

چاپ فهرست آرگومان‌های برنامه و خروج. این گزینه باید به عنوان نخستین آرگومان مشخص شود.

•--quote-names, -Q

شناسه‌ها (مانند نام پایگاه داده، جدول و ستون) را درون نویسه‌های “`” قرار می‌دهد. اگر حالت SQL مربوط به ANSI_QUOTES فعال باشد، شناسه‌ها درون نویسه‌های “"” محصور می‌شوند. این گزینه به‌طور پیش‌فرض فعال است. می‌توان آن را با --skip-quote-names غیرفعال کرد، اما این گزینه باید پس از هر گزینه‌ای مانند --compatible که ممکن است --quote-names را فعال کند، مشخص شود.

•--replace

نوشتن دستورهای REPLACE به جای دستورهای INSERT.

•--result-file=file_name, -r file_name

هدایت مستقیم خروجی به یک فایل مشخص. این گزینه باید در Windows استفاده شود تا از تبدیل نویسه‌های خط جدید “\n” به توالی‌های بازگشت به ابتدای سطر/خط جدید “\r\n” جلوگیری شود. فایل نتیجه ایجاد شده و محتویات قبلی آن بازنویسی می‌شود، حتی اگر در حین تولید dump خطایی رخ دهد.

•--routines, -R

روال‌های ذخیره‌شده (رویه‌ها و توابع) پایگاه‌های دادهٔ پشتیبان‌گیری‌شده را در خروجی می‌گنجاند. استفاده از این گزینه نیازمند امتیاز SELECT برای جدول mysql.proc است. خروجی تولیدشده با استفاده از --routines شامل دستورهای CREATE PROCEDURE و CREATE FUNCTION جهت ایجاد مجدد روال‌ها است. با این حال، این دستورها ویژگی‌هایی مانند برچسب‌های زمانی ایجاد و تغییر روال را در بر نمی‌گیرند. این بدان معناست که هنگام بارگذاری مجدد روال‌ها، آن‌ها با برچسب‌های زمانی برابر با زمان بارگذاری ایجاد خواهند شد.

اگر نیاز دارید روال‌ها با ویژگی‌های برچسب زمانی اولیه‌شان ایجاد شوند، از --routines استفاده نکنید. در عوض، محتویات جدول mysql.proc را مستقیماً با استفاده از یک حساب کاربری MariaDB که امتیازات لازم برای پایگاه دادهٔ mysql را دارد، پشتیبان‌گیری و دوباره بارگذاری نمایید.

•--set-charset

دستور SET NAMES default_character_set را به خروجی اضافه می‌کند. این گزینه به‌طور پیش‌فرض فعال است. برای جلوگیری از درج دستور SET NAMES، از گزینهٔ --skip-set-charset استفاده کنید.

•--single-transaction

این گزینه پیش از آغاز پشتیبان‌گیری از داده‌ها، یک دستور START TRANSACTION را به کارساز ارسال می‌کند. این ویژگی تنها برای جدول‌های تراکنشی مانند InnoDB مفید است، زیرا وضعیت سازگار پایگاه داده را در لحظهٔ صدور BEGIN بدون مسدود کردن هیچ برنامه‌ای پشتیبان‌گیری می‌کند.

هنگام استفاده از این گزینه، باید در نظر داشته باشید که تنها جدول‌های InnoDB در وضعیتی سازگار پشتیبان‌گیری می‌شوند. برای مثال، هرگونه جدول MyISAM یا MEMORY که هم‌زمان با این گزینه پشتیبان‌گیری شود، ممکن است وضعیتشان تغییر کند.

در حین انجام پشتیبان‌گیری با --single-transaction، برای اطمینان از صحت فایل پشتیبان (محتوای درست جدول‌ها و مختصات لاگ باینری)، هیچ اتصال دیگری نباید از دستورهای زیر استفاده کند: ALTER TABLE، CREATE TABLE، DROP TABLE، RENAME TABLE، TRUNCATE TABLE. خواندن سازگار (consistent read) در برابر این دستورها ایزوله نیست، بنابراین استفاده از آن‌ها بر روی جدولی که در حال پشتیبان‌گیری است می‌تواند باعث شود دستور SELECT که توسط mariadb-dump برای بازیابی محتویات جدول اجرا می‌شود، محتوای نادرستی دریافت کند یا با خطا مواجه شود.

گزینهٔ --single-transaction و گزینهٔ --lock-tables مانعة‌الجمع هستند (نمی‌توانند هم‌زمان استفاده شوند)، زیرا LOCK TABLES باعث می‌شود هرگونه تراکنش معلق به‌صورت ضمنی اعمال (commit) شود.

برای پشتیبان‌گیری از جدول‌های بزرگ، باید گزینهٔ --single-transaction را با --quick ترکیب کنید.

•--skip-add-drop-table

غیرفعال کردن گزینهٔ --add-drop-table.

•--skip-add-locks

غیرفعال کردن گزینهٔ --add-locks.

•--skip-comments

غیرفعال کردن گزینهٔ --comments.

•--skip-compact

غیرفعال کردن گزینهٔ --compact.

•--skip-disable-keys.sp گزینهٔ --disable-keys را غیرفعال می‌کند.
•--skip-extended-insert

گزینهٔ --extended-insert را غیرفعال می‌کند.

•--skip-opt

گزینهٔ --opt را غیرفعال می‌کند.

•--skip-quick

گزینهٔ --quick را غیرفعال می‌کند.

•--skip-quote-names

گزینهٔ --quote-names را غیرفعال می‌کند.

•--skip-set-charset

گزینهٔ --set-charset را غیرفعال می‌کند.

•--skip-triggers

گزینهٔ --triggers را غیرفعال می‌کند.

•--skip-tz-utc

گزینهٔ --tz-utc را غیرفعال می‌کند.

•--socket=path, -S path

برای اتصال به localhost، فایل سوکت یونیکس برای استفاده، یا در Windows، نام لولهٔ نام‌گذاری‌شده (named pipe) مورد استفاده. اگر در خط فرمان بدون سایر مشخصه‌های اتصال تعیین شود، --protocol=socket را تحمیل می‌کند؛ در Windows، مقدار --protocol=pipe را تحمیل می‌کند.

•--ssl

فعال‌سازی SSL برای اتصال (به‌طور خودکار با پرچم‌های دیگر فعال می‌شود). غیرفعال‌سازی با --skip-ssl.

•--ssl-ca=name

فایل CA در قالب PEM (مستندات OpenSSL را بررسی کنید، مستلزم --ssl است).

•--ssl-capath=name

دایرکتوری CA (مستندات OpenSSL بررسی شود، مستلزم --ssl است).

•--ssl-cert=name

گواهی X509 در قالب PEM (مستندات OpenSSL بررسی شود، مستلزم --ssl است).

•--ssl-cipher=name

رمزنگاری SSL مورد استفاده (مستندات OpenSSL بررسی شود، مستلزم --ssl است).

•--ssl-key=name

کلید X509 در قالب PEM (مستندات OpenSSL بررسی شود، مستلزم --ssl است).

•--ssl-crl=name

فهرست ابطال گواهی (مستندات OpenSSL بررسی شود، مستلزم --ssl است).

•--ssl-crlpath=name

مسیر فهرست ابطال گواهی (مستندات OpenSSL بررسی شود، مستلزم --ssl است).

•--ssl-verify-server-cert

بررسی «Common Name» سرور در گواهی آن در برابر نام میزبان مورد استفاده هنگام اتصال. این گزینه به‌طور پیش‌فرض غیرفعال است.

•--system={all, users, plugins, udfs, servers, stats, timezones}

استخراج جدول‌های سیستمی پایگاه داده mysql در یک قالب منطقی. این گزینه به‌طور پیش‌فرض یک مجموعهٔ خالی است.

یک یا چند گزینه را می‌توان در یک فهرست جداشده با کاما مشخص کرد.

گزینه‌ها در اینجا عبارتند از:

•all - یک نام مستعار برای فعال‌سازی تمامی گزینه‌های زیر.
•users - کاربران، نقش‌ها و مجوزهای آن‌ها که در قالب CREATE USER، CREATE ROLE، GRANT و SET DEFAULT ROLE خروجی داده می‌شوند (ALTER USER برای +MySQL-8.0).
•plugins - افزونه‌های فعال سرور که در قالب INSTALL PLUGIN خروجی داده می‌شوند.
•udfs - توابع تعریف‌شده توسط کاربر که در قالب CREATE FUNCTION خروجی داده می‌شوند.
•servers - سرورهای راه دور (اتحادی یا federated) در قالب CREATE SERVER.
•stats - جدول‌های آمار، InnoDB و آمار جدول مستقل از موتور (EITS)، به صورت دستورهای REPLACE INTO (یا در صورت مشخص شدن --insert-ignore، INSERT IGNORE) بدون ایجاد (مجدد) جدول‌ها پشتیبان‌گیری می‌شوند.
•timezones - جدول‌های سیستمی مربوط به منطقه زمانی به صورت دستورهای REPLACE INTO (یا در صورت مشخص شدن --insert-ignore، INSERT IGNORE) بدون ایجاد (مجدد) جدول‌ها پشتیبان‌گیری می‌شوند.

قالب خروجی تحت تأثیر --replace و --insert-ignore قرار می‌گیرد. گزینهٔ --replace شکل‌های CREATE OR REPLACE از SQL و همچنین در صورت در دسترس نبودن گزینهٔ CREATE OR REPLACE، عبارت DROP IF EXISTS را پیش از CREATE در خروجی قرار می‌دهد.

با --system=user (یا all) و --replace، دستورات SQL به گونه‌ای تولید می‌شوند که در صورت تلاش برای وارد کردن خروجی پشتیبان با کاربری که اتصال برقرار کرده و در حین بارگذاری جایگزین می‌شود، یک خطا ایجاد شود.

گزینهٔ --insert-ignore باعث می‌شود در صورت امکان، دستورهای SQL به شکل CREATE IF NOT EXIST تولید شوند.

برای stats و timezones، گزینه‌های --replace و --insert-ignore اثرات معمول خود را دارند.

فعال کردن گزینه‌های مشخص در اینجا باعث می‌شود هنگام پشتیبان‌گیری از پایگاه‌دادهٔ mysql یا --all-databases، جدول‌های مربوطه در پایگاه‌دادهٔ mysql نادیده گرفته شوند.

برای کمک به مهاجرت از MySQL به MariaDB، این گزینه به گونه‌ای طراحی شده است که بتواند اطلاعات سیستم را از کارگزارهای MySQL-5.7 و 8.0 استخراج کند. دستورهای SQL تولیدشده نیز به صورت آزمایشی با MySQL-5.7/8.0 سازگار هستند. با این حال، نگاشت دسترسی‌ها/افزونه‌های خاص هر پیاده‌سازی همواره میان MariaDB و MySQL یک‌به‌یک نبوده و به اعمال تغییرات دستی نیاز خواهد داشت.

•--tab=path, -T path

تولید فایل‌های داده با قالب متنی جداشده با تب (tab-separated). برای هر جدول پشتیبان‌گیری‌شده، mariadb-dump یک فایل tbl_name.sql حاوی دستور CREATE TABLE که جدول را می‌سازد ایجاد می‌کند و کارگزار یک فایل tbl_name.txt که حاوی داده‌های آن است می‌نویسد. مقدار این گزینه، پوشه‌ای است که فایل‌ها در آن نوشته می‌شوند.


نکته
این گزینه تنها زمانی باید استفاده شود که mariadb-dump روی همان ماشینی اجرا می‌شود که کارگزار mariadbd در حال اجرا است. شما باید دارای دسترسی FILE باشید و کارگزار نیز باید مجوز نوشتن فایل در پوشهٔ مشخص‌شده را داشته باشد.
به طور پیش‌فرض، فایل‌های دادهٔ .txt با استفاده از نویسه‌های تب بین مقادیر ستون‌ها و یک خط جدید در انتهای هر سطر قالب‌بندی می‌شوند. این قالب را می‌توان به طور صریح با استفاده از گزینه‌های --fields-xxx و --lines-terminated-by مشخص کرد.

مقادیر ستون‌ها به مجموعه نویسهٔ (character set) مشخص‌شده توسط گزینهٔ --default-character-set تبدیل می‌شوند.

•--tables

نادیده گرفتن و اولویت یافتن بر گزینهٔ --databases یا -B. ابزار mariadb-dump تمام آرگومان‌های نام پس از این گزینه را به عنوان نام‌های جدول در نظر می‌گیرد.

•--triggers

گنجاندن تریگرها (محرک‌ها) برای هر جدول پشتیبان‌گیری‌شده در خروجی. این گزینه به طور پیش‌فرض فعال است؛ برای غیرفعال کردن آن از --skip-triggers استفاده کنید.

•--tz-utc

این گزینه امکان پشتیبان‌گیری و بازگردانی ستون‌های TIMESTAMP را بین کارگزارهایی در مناطق زمانی مختلف فراهم می‌کند. mariadb-dump منطقهٔ زمانی اتصال خود را روی UTC تنظیم کرده و عبارت SET TIME_ZONE='+00:00' را به فایل پشتیبان اضافه می‌کند. بدون این گزینه، ستون‌های TIMESTAMP در مناطق زمانی محلیِ کارگزارهای مبدأ و مقصد پشتیبان‌گیری و بازگردانی می‌شوند، که در صورت متفاوت بودن مناطق زمانی کارگزارها می‌تواند موجب تغییر مقادیر شود. گزینهٔ --tz-utc همچنین در برابر تغییرات ناشی از ساعت تابستانی محافظت می‌کند. گزینهٔ --tz-utc به طور پیش‌فرض فعال است. برای غیرفعال کردن آن، از --skip-tz-utc استفاده کنید.

•--user=user_name, -u user_name

نام کاربری MariaDB جهت استفاده هنگام اتصال به کارگزار.

•--verbose, -v

حالت پرگو (پرتفصیل). چاپ اطلاعات بیشتر دربارهٔ آنچه برنامه انجام می‌دهد.

•--version, -V

نمایش اطلاعات نسخه و خروج.

•--where='where_condition', -w 'where_condition'

فقط ردیف‌هایی را که توسط شرط WHERE داده‌شده انتخاب شده‌اند پشتیبان‌گیری می‌کند. اگر شرط حاوی فاصله‌ها یا نویسه‌های ویژهٔ مفسر خط فرمان شما باشد، قرار دادن آن درون نقل‌قول الزامی است.

مثال‌ها:

--where="user='jimf'"
-w"userid>1"
-w"userid<1"
•--xml, -X

نوشتن خروجی پشتیبان به صورت XML خوش‌ساخت (well-formed).

NULL، 'NULL' و مقادیر خالی: برای ستونی با نام column_name، مقدار NULL، یک رشتهٔ خالی و مقدار رشته‌ای 'NULL' در خروجی تولیدشده توسط این گزینه به صورت زیر از یکدیگر متمایز می‌شوند.

مقدار: نمایش XML:
NULL (مقدار نامشخص) <field name="column_name" xsi:nil="true" />
'' (رشتهٔ خالی) <field name="column_name"></field>
'NULL' (مقدار رشته‌ای) <field name="column_name">NULL</field>

خروجی کلاینت mariadb هنگامی که با گزینهٔ --xml اجرا شود نیز از قواعد پیشین پیروی می‌کند. (بخش “MARIADB OPTIONS” را ببینید.)

خروجی XML از mariadb-dump شامل فضای نام (namespace) XML است، همان‌طور که در اینجا نشان داده شده است:

shell> mariadb-dump --xml -u root world City
<?xml version="1.0"?>
<mariadb-dump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<database name="world">
<table_structure name="City">
<field Field="ID" Type="int(11)" Null="NO" Key="PRI" Extra="auto_increment" />
<field Field="Name" Type="char(35)" Null="NO" Key="" Default="" Extra="" />
<field Field="CountryCode" Type="char(3)" Null="NO" Key="" Default="" Extra="" />
<field Field="District" Type="char(20)" Null="NO" Key="" Default="" Extra="" />
<field Field="Population" Type="int(11)" Null="NO" Key="" Default="0" Extra="" />
<key Table="City" Non_unique="0" Key_name="PRIMARY" Seq_in_index="1" Column_name="ID"
Collation="A" Cardinality="4079" Null="" Index_type="BTREE" Comment="" />
<options Name="City" Engine="MyISAM" Version="10" Row_format="Fixed" Rows="4079"
Avg_row_length="67" Data_length="273293" Max_data_length="18858823439613951"
Index_length="43008" Data_free="0" Auto_increment="4080"
Create_time="2007-03-31 01:47:01" Update_time="2007-03-31 01:47:02"
Collation="latin1_swedish_ci" Create_options="" Comment="" />
</table_structure>
<table_data name="City">
<row>
<field name="ID">1</field>
<field name="Name">Kabul</field>
<field name="CountryCode">AFG</field>
<field name="District">Kabol</field>
<field name="Population">1780000</field>
</row>
...
<row>
<field name="ID">4079</field>
<field name="Name">Rafah</field>
<field name="CountryCode">PSE</field>
<field name="District">Rafah</field>
<field name="Population">92020</field>
</row>
</table_data>
</database>
</mariadb-dump>

همچنین می‌توانید متغیرهای زیر را با استفاده از ساختار --var_name=value تنظیم کنید:

•max_allowed_packet

حداکثر اندازهٔ بافر برای ارتباط کلاینت/سرور. مقدار بیشینه 1GB است.

•max_statement_time

پرس‌وجویی که اجرای آن بیش از max_statement_time ثانیه طول بکشد، لغو خواهد شد و فرایند پشتیبان‌گیری شکست می‌خورد. این آرگومان به عنوان یک مقدار ده‌دهی با دقت میکروثانیه در نظر گرفته می‌شود. مقدار 0 (پیش‌فرض) به معنای نبود مهلت زمانی است. حداکثر مهلت زمانی 31536000 ثانیه است.

•net_buffer_length

اندازه اولیه بافر برای ارتباط میان کارخواه و کارگزار. هنگام ایجاد دستورهای چندسطری INSERT (مانند حالت استفاده از گزینه --extended-insert یا --opt)، ابزار mariadb-dump سطرهایی تا طول net_buffer_length می‌سازد. اگر این متغیر را افزایش دهید، باید اطمینان حاصل کنید که متغیر net_buffer_length در کارگزار MariaDB نیز دست‌کم به همین اندازه بزرگ باشد.

یک کاربرد رایج mariadb-dump تهیه نسخه پشتیبان از کل یک پایگاه‌داده است:

shell> mariadb-dump db_name > backup-file.sql

می‌توانید فایل پشتیبان را مانند زیر مجدداً در کارگزار بارگذاری کنید:

shell> mariadb db_name < backup-file.sql

یا به این صورت:

shell> mariadb -e "source /path-to-backup/backup-file.sql" db_name

ابزار mariadb-dump همچنین برای پر کردن پایگاه‌های داده با کپی داده‌ها از یک کارگزار MariaDB به دیگری بسیار کاربردی است:

shell> mariadb-dump --opt db_name | mariadb --host=remote_host -C db_name

تهیه نسخه پشتیبان از چندین پایگاه‌داده با یک دستور نیز امکان‌پذیر است:

shell> mariadb-dump --databases db_name1 [db_name2 ...] > my_databases.sql

برای پشتیبان‌گیری از تمامی پایگاه‌های داده، از گزینه --all-databases استفاده کنید:

shell> mariadb-dump --all-databases > all_databases.sql

برای جدول‌های InnoDB، ابزار mariadb-dump روشی برای تهیه نسخه پشتیبان برخط (online) فراهم می‌کند:

shell> mariadb-dump --all-databases --single-transaction > all_databases.sql

این نوع پشتیبان‌گیری در ابتدای فرایند، یک قفل سراسری خواندن روی تمامی جدول‌ها (با استفاده از FLUSH TABLES WITH READ LOCK) ایجاد می‌کند. به محض دریافت این قفل، مختصات لاگ دودویی (binary log) خوانده شده و قفل آزاد می‌گردد. اگر هنگام صدور دستور FLUSH دستورهای به‌روزرسانی طولانی در حال اجرا باشند، ممکن است کارگزار MariaDB تا پایان اجرای آن دستورها متوقف شود. پس از آن، فرایند پشتیبان‌گیری بدون قفل ادامه می‌یابد و مزاحمتی برای خواندن و نوشتن روی جدول‌ها ایجاد نمی‌کند. اگر دستورهای به‌روزرسانی دریافتی توسط کارگزار MariaDB کوتاه باشند (از لحاظ زمان اجرا)، بازه قفل اولیه حتی با وجود به‌روزرسانی‌های فراوان، محسوس نخواهد بود.

برای بازیابی در نقطه زمانی مشخص (که با عنوان “roll-forward” نیز شناخته می‌شود، هنگامی که نیاز دارید پشتیبان قدیمی را بازگردانی کرده و تغییرات رخ‌داده از زمان آن پشتیبان را مجدداً اعمال کنید)، چرخاندن لاگ دودویی یا دست‌کم دانستن مختصات لاگ دودویی مربوط به این پشتیبان، غالباً مفید است:

shell> mariadb-dump --all-databases --master-data=2 > all_databases.sql

یا:

shell> mariadb-dump --all-databases --flush-logs --master-data=2
              > all_databases.sql

گزینه‌های --master-data و --single-transaction می‌توانند به‌طور هم‌زمان استفاده شوند، که در صورت ذخیره‌سازی جدول‌ها با موتور ذخیره‌سازی InnoDB، روشی مناسب برای ایجاد یک پشتیبان برخط مناسبِ استفاده پیش از بازیابی به نقطه زمانی مشخص فراهم می‌سازد.

اگر در پشتیبان‌گیری از نماها (views) با مشکل مواجه شدید، لطفاً بخشی را که به محدودیت‌های نماها می‌پردازد بخوانید؛ در آن بخش راهکاری برای پشتیبان‌گیری از نماها در زمان شکست ناشی از مجوزهای ناکافی شرح داده شده است..SH "کپی‌رایت و تکثیر (COPYRIGHT)"

کپی‌رایت 2007-2008 MySQL AB، 2008-2010 Sun Microsystems, Inc.، 2010-2025 MariaDB Foundation

این مستندات یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تنها تحت شرایط مجوز عمومی همگانی گنو (GNU General Public License) همان‌طور که توسط بنیاد نرم‌افزارهای آزاد (Free Software Foundation) منتشر شده است؛ نسخهٔ ۲ این مجوز، بازتوزیع کرده و/یا تغییر دهید.

این مستندات با این امید که مفید باشد توزیع شده است، اما «بدون هرگونه ضمانت»؛ حتی بدون ضمانت ضمنی «قابل فروش بودن» یا «تناسب برای یک هدف خاص». برای جزئیات بیشتر به مجوز عمومی همگانی گنو مراجعه کنید.

شما باید نسخه‌ای از مجوز عمومی همگانی گنو را همراه با برنامه دریافت کرده باشید؛ در غیر این صورت، به آدرس Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA مکاتبه نموده یا به http://www.gnu.org/licenses مراجعه فرمایید.

برای کسب اطلاعات بیشتر، لطفاً به مستندات MariaDB که به‌صورت برخط در https://mariadb.com/docs در دسترس است مراجعه کنید.

MariaDB Foundation (http://www.mariadb.org).

5 March 2025 MariaDB 11.8