.\" Man page generated from reStructuredText. . .TH "XTRABACKUP" "1" "Jun 15, 2026" "8.0" "Percona XtraBackup" .SH "نام (NAME)" xtrabackup \- مستندات ابزار Percona XtraBackup 8.0 . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .sp فایل اجرایی \fIxtrabackup\fP یک برنامهٔ کامپایل‌شده به زبان C است که با کتابخانه‌های \fIInnoDB\fP و کتابخانه‌های استاندارد کلاینت \fIMySQL\fP پیوند (link) خورده است. .sp ابزار \fIxtrabackup\fP امکان پشتیبان‌گیری در نقطهٔ زمانی مشخص (point\-in\-time) را برای جدول‌های \fIInnoDB\fP / \fIXtraDB\fP همراه با تعاریف ساختار (schema)، جدول‌های \fIMyISAM\fP و سایر بخش‌های سرور فراهم می‌کند. .sp کتابخانه‌های \fIInnoDB\fP قابلیت اعمال لاگ (log) بر روی فایل‌های داده را فراهم می‌سازند. کتابخانه‌های کلاینت \fIMySQL\fP برای پردازش گزینه‌های خط فرمان و فایل پیکربندی استفاده می‌شوند. .sp این ابزار در یکی از دو حالت \fB\-\-backup\fP یا \fB\-\-prepare\fP اجرا می‌شود که متناظر با دو عملکرد اصلی آن است. برای انجام وظایف مختلف، چندین شیوهٔ متفاوت از این عملکردها وجود دارد و همچنین دو حالت کم‌کاربردتر با نام‌های \fB\-\-stats\fP و \fB\-\-print\-param\fP\& نیز در دسترس هستند. .SH "سایر انواع پشتیبان‌گیری (OTHER TYPES OF BACKUPS)" .SS "پشتیبان‌گیری‌های افزایشی (Incremental Backups)" .sp ابزار \fIxtrabackup\fP از پشتیبان‌گیری‌های افزایشی پشتیبانی می‌کند. در این روش تنها داده‌هایی کپی می‌شوند که پس از آخرین پشتیبان‌گیری کامل تغییر یافته‌اند. شما می‌توانید میان هر نسخهٔ پشتیبان کامل، چندین پشتیبان‌گیری افزایشی انجام دهید؛ بنابراین می‌توانید فرایندی مانند یک بار پشتیبان‌گیری کامل در هفته و پشتیبان‌گیری افزایشی روزانه، یا پشتیبان‌گیری کاملِ روزانه و پشتیبان‌گیری افزایشی ساعتی را تنظیم نمایید. .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 پشتیبان‌گیری‌های افزایشی روی موتور ذخیره‌سازی MyRocks بررسی نمی‌کنند که آیا نسخهٔ کامل یا افزایشی پیشین حاوی فایل‌های یکسان است یا خیر. \fBPercona XtraBackup\fP در هر بار پشتیبان‌گیری، تمامی فایل‌های MyRocks را کپی می‌کند. .UNINDENT .UNINDENT .sp علت کارکرد پشتیبان‌گیری‌های افزایشی این است که هر صفحهٔ InnoDB (معمولاً با حجم ۱۶ کیلوبایت) شامل یک شمارهٔ توالی لاگ یا LSN\& است. مقدار LSN در واقع شمارهٔ نسخهٔ سیستمی کل پایگاه داده است. مقدار LSN هر صفحه مشخص می‌کند که تغییرات آن چقدر جدید است. یک پشتیبان‌گیری افزایشی، هر صفحه‌ای را که LSN آن جدیدتر از LSN آخرین پشتیبان‌گیری افزایشی یا کامل باشد کپی می‌کند. دو الگوریتم برای یافتن مجموعه‌ای از این صفحاتِ نیازمندِ کپی استفاده می‌شود. روش اول، که در تمامی نسخه‌ها و انواع سرورها در دسترس است، بررسی مستقیم LSN صفحات از طریق خواندن تمام صفحات داده است. روش دوم، که در \fIPercona Server for MySQL\fP در دسترس است، فعال‌سازی قابلیت \fI\%changed page tracking\fP روی سرور است که صفحات را در حین تغییر ثبت می‌کند. این اطلاعات سپس در یک فایل مجزا و فشرده موسوم به فایل bitmap ذخیره می‌شوند. باینری \fIxtrabackup\fP از این فایل استفاده خواهد کرد تا فقط صفحات داده‌ای را که برای پشتیبان افزایشی نیاز دارد بخواند، که این کار به‌طور بالقوه مانع از تعداد زیادی درخواست خواندن می‌شود. در صورتی که فایل باینری \fIxtrabackup\fP فایل bitmap را پیدا کند، الگوریتم دوم به طور پیش‌فرض فعال است. امکان تعیین گزینهٔ \fB\-\-incremental\-force\-scan\fP نیز وجود دارد تا حتی در صورت وجود داده‌های bitmap، تمامی صفحات خوانده شوند. .sp پشتیبان‌گیری‌های افزایشی در واقع فایل‌های داده را با فایل‌های دادهٔ نسخهٔ پشتیبان قبلی مقایسه نمی‌کنند. در واقع، چنانچه LSN نسخهٔ قبلی را بدانید، می‌توانید با استفاده از \fB\-\-incremental\-lsn\fP بدون نیاز به داشتن نسخهٔ پشتیبان قبلی نیز عملیات پشتیبان‌گیری افزایشی را انجام دهید. پشتیبان‌گیری‌های افزایشی صرفاً صفحات را خوانده و LSN آن‌ها را با LSN آخرین نسخهٔ پشتیبان مقایسه می‌کنند. با این وجود، برای بازیابی تغییرات افزایشی همچنان به یک نسخهٔ پشتیبان کامل نیاز دارید؛ بدون وجود یک نسخهٔ کامل به عنوان پایه، نسخه‌های پشتیبان افزایشی بی‌فایده خواهند بود. .SS "ایجاد یک پشتیبان‌گیری افزایشی (Creating an Incremental Backup)" .sp برای تهیهٔ یک پشتیبان‌گیری افزایشی، ابتدا طبق معمول با یک پشتیبان‌گیری کامل شروع کنید. باینری \fIxtrabackup\fP فایلی به نام \fBxtrabackup_checkpoints\fP را درون دایرکتوری مقصد پشتیبان می‌نویسد. این فایل حاوی خطی است که \fBto_lsn\fP را نمایش می‌دهد که همان LSN پایگاه داده در پایان عملیات پشتیبان‌گیری است. نسخهٔ پشتیبان کامل را با دستوری مانند نمونهٔ زیر ایجاد کنید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-backup \-\-target\-dir=/data/backups/base \-\-datadir=/var/lib/mysql/ .ft P .fi .UNINDENT .UNINDENT .sp اگر به فایل \fBxtrabackup_checkpoints\fP نگاه کنید، باید محتوایی مشابه مورد زیر مشاهده کنید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C backup_type = full\-backuped from_lsn = 0 to_lsn = 1291135 .ft P .fi .UNINDENT .UNINDENT .sp اکنون که یک پشتیبان کامل دارید، می‌توانید یک پشتیبان‌گیری افزایشی بر پایهٔ آن ایجاد کنید. از دستوری مانند زیر استفاده نمایید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-backup \-\-target\-dir=/data/backups/inc1 \e \-\-incremental\-basedir=/data/backups/base \-\-datadir=/var/lib/mysql/ .ft P .fi .UNINDENT .UNINDENT .sp دایرکتوری \fB/data/backups/inc1/\fP اکنون باید حاوی فایل‌های دلتا مانند \fBibdata1.delta\fP و \fBtest/table1.ibd.delta\fP\& باشد. این فایل‌ها نشان‌دهندهٔ تغییرات رخ‌داده از زمان \fBLSN 1291135\fP\& هستند. اگر فایل \fBxtrabackup_checkpoints\fP را در این دایرکتوری بررسی کنید، باید چیزی مشابه مورد زیر را مشاهده کنید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C backup_type = incremental from_lsn = 1291135 to_lsn = 1291340 .ft P .fi .UNINDENT .UNINDENT .sp معنای آن کاملاً روشن است. اکنون می‌توان از این دایرکتوری به عنوان پایه برای یک پشتیبان‌گیری افزایشی دیگر استفاده کرد: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-backup \-\-target\-dir=/data/backups/inc2 \e \-\-incremental\-basedir=/data/backups/inc1 \-\-datadir=/var/lib/mysql/ .ft P .fi .UNINDENT .UNINDENT.SS "آماده‌سازی پشتیبان‌های افزایشی (Preparing the Incremental Backups)" .sp مرحلهٔ \fB\-\-prepare\fP برای پشتیبان‌های افزایشی همانند پشتیبان‌های عادی نیست. در پشتیبان‌های عادی، دو نوع عملیات برای سازگار ساختن پایگاه داده انجام می‌شود: تراکنش‌های تثبیت‌شده (committed) از فایل گزارش (log file) روی فایل‌های داده بازپخش می‌شوند، و تراکنش‌های تثبیت‌نشده (uncommitted) واگردانی (roll back) می‌شوند. شما باید هنگام آماده‌سازی یک پشتیبان، از واگردانی تراکنش‌های تثبیت‌نشده صرف‌نظر کنید؛ زیرا تراکنش‌هایی که در زمان پشتیبان‌گیری شما تثبیت نشده بودند ممکن است هنوز در جریان باشند، و این احتمال وجود دارد که در پشتیبان افزایشی بعدی تثبیت شوند. برای جلوگیری از مرحلهٔ واگردانی، باید از گزینهٔ \fB\-\-apply\-log\-only\fP استفاده کنید. .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 اگر برای جلوگیری از مرحلهٔ واگردانی از گزینهٔ \fB\-\-apply\-log\-only\fP استفاده نکنید، پشتیبان‌های افزایشی شما بلااستفاده خواهند شد. پس از اینکه تراکنش‌ها واگردانی شوند، پشتیبان‌های افزایشی بعدی دیگر قابل اعمال نخواهند بود. .UNINDENT .UNINDENT .sp با شروع از پشتیبان کاملی که ایجاد کرده‌اید، می‌توانید آن را آماده کرده و سپس تفاوت‌های افزایشی را روی آن اعمال نمایید. به یاد آورید که این پشتیبان‌ها را در اختیار دارید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C /data/backups/base /data/backups/inc1 /data/backups/inc2 .ft P .fi .UNINDENT .UNINDENT .sp برای آماده‌سازی پشتیبان پایه، باید \fB\-\-prepare\fP را مانند معمول اجرا کنید، اما از مرحلهٔ واگردانی جلوگیری نمایید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C xtrabackup \-\-prepare \-\-apply\-log\-only \-\-target\-dir=/data/backups/base .ft P .fi .UNINDENT .UNINDENT .sp خروجی باید با متنی شبیه به عبارت زیر پایان یابد: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C 101107 20:49:43 InnoDB: Shutdown completed; log sequence number 1291135 .ft P .fi .UNINDENT .UNINDENT .sp شمارهٔ ترتیبی گزارش (log sequence number) باید با مقدار \fBto_lsn\fP پشتیبان پایه که قبلاً دیدید مطابقت داشته باشد. .sp این پشتیبان در واقع اکنون به همین صورت برای بازیابی امن است، حتی با وجود اینکه از مرحلهٔ واگردانی صرف‌نظر شده است. اگر آن را بازیابی کرده و \fIMySQL\fP را راه‌اندازی کنید، \fIInnoDB\fP تشخیص می‌دهد که مرحلهٔ واگردانی انجام نشده است، و آن را در پس‌زمینه انجام خواهد داد؛ درست مانند روندی که معمولاً برای بازیابی پس از خرابی (crash recovery) در هنگام شروع به کار انجام می‌دهد. این سیستم به شما اعلان خواهد کرد که پایگاه داده به‌طور عادی متوقف (shut down) نشده بود. .sp برای اعمال نخستین پشتیبان افزایشی روی پشتیبان کامل، باید از دستور زیر استفاده کنید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C xtrabackup \-\-prepare \-\-apply\-log\-only \-\-target\-dir=/data/backups/base \e \-\-incremental\-dir=/data/backups/inc1 .ft P .fi .UNINDENT .UNINDENT .sp این دستور فایل‌های دلتا را بر روی فایل‌های موجود در \fB/data/backups/base\fP اعمال می‌کند، که زمان آن‌ها را به جلو (roll forward) و به زمان تهیهٔ پشتیبان افزایشی می‌برد. سپس redo log را طبق روال معمول روی نتیجه اعمال می‌کند. داده‌های نهایی در \fB/data/backups/base\fP قرار می‌گیرند، نه در پوشهٔ افزایشی. باید خروجی‌ای مشابه زیر را مشاهده کنید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C incremental backup from 1291135 is enabled. xtrabackup: cd to /data/backups/base/ xtrabackup: This target seems to be already prepared. xtrabackup: xtrabackup_logfile detected: size=2097152, start_lsn=(1291340) Applying /data/backups/inc1/ibdata1.delta ... Applying /data/backups/inc1/test/table1.ibd.delta ... \&.... snip 101107 20:56:30 InnoDB: Shutdown completed; log sequence number 1291340 .ft P .fi .UNINDENT .UNINDENT .sp مجدداً، LSN باید با آنچه در بررسی پیشین خود از نخستین پشتیبان افزایشی مشاهده کردید، مطابقت داشته باشد. اگر فایل‌ها را از \fB/data/backups/base\fP بازیابی کنید، وضعیت پایگاه داده را در لحظهٔ تهیهٔ نخستین پشتیبان افزایشی خواهید دید. .sp آماده‌سازی دومین پشتیبان افزایشی روندی مشابه دارد: فایل‌های دلتا را روی پشتیبان پایهٔ (اصلاح‌شده) اعمال کنید تا داده‌های آن را در زمان به نقطهٔ تهیهٔ دومین پشتیبان افزایشی به جلو ببرید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C xtrabackup \-\-prepare \-\-target\-dir=/data/backups/base \e \-\-incremental\-dir=/data/backups/inc2 .ft P .fi .UNINDENT .UNINDENT .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 گزینهٔ \fB\-\-apply\-log\-only\fP باید هنگام ادغام تمام پشتیبان‌های افزایشی به جز آخرین مورد استفاده شود. به همین دلیل است که دستور قبلی شامل گزینهٔ \fB\-\-apply\-log\-only\fP نبود. حتی اگر \fB\-\-apply\-log\-only\fP در آخرین مرحله نیز استفاده می‌شد، پشتیبان همچنان سازگار باقی می‌ماند، اما در آن حالت سرور مرحلهٔ واگردانی را اجرا می‌کرد. .UNINDENT .UNINDENT .sp اگر مایلید پس از اعمال دلتاهای مورد نظر به پشتیبان پایه، از دریافت اخطار مبنی بر خاموش نشدن عادی \fIInnoDB\fP جلوگیری کنید، می‌توانید \fB\-\-prepare\fP را یک بار دیگر بدون غیرفعال کردن مرحلهٔ واگردانی اجرا نمایید..SS بازیابی پشتیبان‌های افزایشی .sp پس از آماده‌سازی پشتیبان‌های افزایشی، دایرکتوری پایه شامل همان داده‌های پشتیبان کامل خواهد بود. برای بازگردانی این پشتیبان، می‌توانید از این دستور استفاده کنید: \fBxtrabackup \-\-copy\-back \-\-target\-dir=BASE\-DIR\fP .sp ممکن است لازم باشد مالکیت را مطابق با جزئیات ارائه‌شده در restoring_a_backup\& تغییر دهید. .SS پشتیبان‌گیری جریانی افزایشی با استفاده از xbstream .sp پشتیبان‌گیری‌های جریانی افزایشی را می‌توان با گزینهٔ جریان‌سازی \fIxbstream\fP انجام داد. در حال حاضر پشتیبان‌ها در قالب سفارشی \fBxbstream\fP بسته‌بندی می‌شوند. با این قابلیت، باید یک پشتیبان BASE (پایه) نیز تهیه کنید. تهیهٔ یک پشتیبان پایه.INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-backup \-\-target\-dir=/data/backups .ft P .fi .UNINDENT .UNINDENT تهیهٔ یک پشتیبان محلی.INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-backup \-\-incremental\-lsn=LSN\-number \-\-stream=xbstream \-\-target\-dir=./ > incremental.xbstream .ft P .fi .UNINDENT .UNINDENT استخراج پشتیبان.INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xbstream \-x < incremental.xbstream .ft P .fi .UNINDENT .UNINDENT تهیهٔ پشتیبان محلی، ارسال جریانی آن به سرور دوردست و استخراج آن.INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-backup \-\-incremental\-lsn=LSN\-number \-\-stream=xbstream \-\-target\-dir=./ $ ssh user@hostname " cat \- | xbstream \-x \-C > /backup\-dir/" .ft P .fi .UNINDENT .UNINDENT .SS پشتیبان‌های جزئی .sp ابزار \fIxtrabackup\fP از تهیهٔ پشتیبان‌های جزئی در زمان فعال بودن گزینهٔ innodb_file_per_table پشتیبانی می‌کند. سه روش برای ایجاد پشتیبان‌های جزئی وجود دارد: .INDENT 0.0 .IP 1. 3 تطبیق نام جدول‌ها با یک عبارت باقاعده (regular expression) .IP 2. 3 ارائهٔ فهرستی از نام‌های جدول در یک فایل .IP 3. 3 ارائهٔ فهرستی از پایگاه‌های داده .UNINDENT .sp \fBهشدار:\fP .INDENT 0.0 .INDENT 3.5 پشتیبان آماده‌شده را با copy back بازگردانی نکنید. .sp بازیابی پشتیبان‌های جزئی باید از طریق وارد کردن (import) جدول‌ها انجام شود، نه با استفاده از گزینهٔ \fI\-\-copy\-back\fP. اجرای پشتیبان‌گیری افزایشی پس از اجرای یک پشتیبان‌گیری جزئی توصیه نمی‌شود. .sp اگرچه سناریوهایی وجود دارد که در آن‌ها بازیابی می‌تواند با کپی کردن فایل‌ها به جای خود انجام شود، اما این کار در بسیاری از موارد ممکن است منجر به ناسازگاری پایگاه داده شود و روش توصیه‌شده‌ای برای انجام آن نیست. .UNINDENT .UNINDENT .sp برای اهداف این صفحهٔ راهنما، فرض می‌کنیم پایگاه داده‌ای به نام \fBtest\fP وجود دارد که شامل جدول‌هایی به نام‌های \fBt1\fP و \fBt2\fP\& است. .sp \fBهشدار:\fP .INDENT 0.0 .INDENT 3.5 اگر هر یک از جدول‌های مطابقت‌یافته یا فهرست‌شده در حین پشتیبان‌گیری حذف شوند، \fIxtrabackup\fP با خطا مواجه خواهد شد. .UNINDENT .UNINDENT .SS ایجاد پشتیبان‌های جزئی .sp چندین روش برای تعیین این‌که کدام بخش از کل داده‌ها پشتیبان‌گیری شود وجود دارد: .INDENT 0.0 .IP \(bu 2 استفاده از گزینهٔ \fB\-\-tables\fP برای فهرست کردن نام‌های جدول .IP \(bu 2 استفاده از گزینهٔ \fB\-\-tables\-file\fP برای فهرست کردن جدول‌ها در یک فایل .IP \(bu 2 استفاده از گزینهٔ \fB\-\-databases\fP برای فهرست کردن پایگاه‌های داده .IP \(bu 2 استفاده از گزینهٔ \fB\-\-databases\-file\fP برای فهرست کردن پایگاه‌های داده .UNINDENT .SS گزینهٔ \fI\-\-tables\fP .sp روش اول شامل استفاده از گزینهٔ \fI\-\-tables\fP در xtrabackup است. مقدار این گزینه یک عبارت باقاعده است که با نام کامل پایگاه داده و نام جدول با استفاده از قالب \fBdatabasename.tablename\fP مطابقت داده می‌شود. .sp برای پشتیبان‌گیری تنها از جدول‌های موجود در پایگاه دادهٔ \fBtest\fP، از دستور زیر استفاده کنید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-backup \-\-datadir=/var/lib/mysql \-\-target\-dir=/data/backups/ \e \-\-tables="^test[.].*" .ft P .fi .UNINDENT .UNINDENT .sp برای پشتیبان‌گیری تنها از جدول \fBtest.t1\fP، از دستور زیر استفاده کنید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-backup \-\-datadir=/var/lib/mysql \-\-target\-dir=/data/backups/ \e \-\-tables="^test[.]t1" .ft P .fi .UNINDENT .UNINDENT.SS گزینهٔ \fI\-\-tables\-file\fP .sp گزینهٔ \fB\-\-tables\-file\fP فایلی را مشخص می‌کند که می‌تواند شامل نام چندین جدول باشد، یک نام جدول در هر خط از فایل. تنها از جدول‌هایی که نام آن‌ها در فایل آمده است پشتیبان‌گیری خواهد شد. نام‌ها دقیقاً و با حساسیت به حروف بزرگ و کوچک (case\-sensitive)، بدون هیچ‌گونه تطبیق الگو یا عبارت باقاعده (regular expression) مطابقت داده می‌شوند. نام‌های جدول باید به‌صورت کامل (fully\-qualified) و در قالب \fBdatabasename.tablename\fP باشند. .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ echo "mydatabase.mytable" > /tmp/tables.txt $ xtrabackup \-\-backup \-\-tables\-file=/tmp/tables.txt .ft P .fi .UNINDENT .UNINDENT .SS گزینه‌های \fI\-\-databases\fP و \fI\-\-databases\-file\fP .sp گزینهٔ \(ga \-\-databases\(ga فهرستی جداشده با فاصله از پایگاه‌های داده و جدول‌ها را برای پشتیبان‌گیری در قالب \fBdatabasename[.tablename]\fP می‌پذیرد. علاوه بر این فهرست، اطمینان حاصل کنید که پایگاه‌های دادهٔ \fBmysql\fP، \fBsys\fP، و .sp \fBperformance_schema\fP را مشخص کرده باشید. این پایگاه‌های داده هنگام بازیابی پایگاه‌های داده با استفاده از \fIxtrabackup \-\-copy\-back\fP\& مورد نیاز هستند. .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 جدول‌هایی که در طول مرحلهٔ \-\-prepare پردازش می‌شوند، حتی اگر صراحتاً توسط پارامتر فهرست نشده باشند، در صورتی که پس از شروع پشتیبان‌گیری ایجاد شده باشند، ممکن است به نسخهٔ پشتیبان افزوده شوند. .UNINDENT .UNINDENT .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-databases=\(aqmysql sys performance_schema test ...\(aq .ft P .fi .UNINDENT .UNINDENT .SS گزینهٔ \fB\-\-databases\-file\fP .sp گزینهٔ \fI\-\-databases\-file\fP فایلی را مشخص می‌کند که می‌تواند شامل چندین پایگاه داده و جدول در قالب \fBdatabasename[.tablename]\fP باشد، یک نام عنصر در هر خط از فایل. نام‌ها به‌صورت دقیق و با حساسیت به حروف بزرگ و کوچک (case\-sensitive)، بدون هیچ‌گونه تطبیق الگو یا عبارت باقاعده مطابقت داده می‌شوند. .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 جدول‌هایی که در طول مرحلهٔ \-\-prepare پردازش می‌شوند، حتی اگر صراحتاً توسط پارامتر فهرست نشده باشند، در صورتی که پس از شروع پشتیبان‌گیری ایجاد شده باشند، ممکن است به نسخهٔ پشتیبان افزوده شوند. .UNINDENT .UNINDENT .SS آماده‌سازی پشتیبان‌های جزئی .sp این رویه مشابه بازیابی جدول‌های مجزا است: لاگ‌ها را اعمال کرده و از گزینهٔ \fI\-\-export\fP استفاده کنید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-prepare \-\-export \-\-target\-dir=/path/to/partial/backup .ft P .fi .UNINDENT .UNINDENT .sp هنگامی که از گزینهٔ \fI\-\-prepare\fP روی یک پشتیبان جزئی استفاده می‌کنید، هشدارهایی مبنی بر عدم وجود جدول‌ها مشاهده خواهید کرد. این به این دلیل است که این جدول‌ها در data dictionary درون InnoDB وجود دارند، اما فایل‌های \&.ibd متناظر با آن‌ها موجود نیستند؛ زیرا در دایرکتوری پشتیبان کپی نشده بودند. این جدول‌ها از data dictionary حذف خواهند شد و هنگامی که نسخهٔ پشتیبان را بازیابی و InnoDB را راه‌اندازی کنید، دیگر وجود نخواهند داشت و باعث چاپ هیچ‌گونه خطا یا هشداری در فایل لاگ نخواهند شد. .INDENT 0.0 .INDENT 3.5 Could not find any file associated with the tablespace ID: 5 .sp Use \-\-innodb\-directories to find the tablespace files. If that fails then use \-\-innodb\-force\-recovery=1 to ignore this and to permanently lose all changes to the missing tablespace(s). .UNINDENT .UNINDENT .SS بازیابی پشتیبان‌های جزئی .sp بازیابی باید با بازگردانی جدول‌های مجزا در پشتیبان جزئی به کارساز انجام شود. .sp همچنین می‌توان این کار را با رونوشت (copy back) نسخهٔ پشتیبان آماده‌شده به یک datadir «پاک» (در این حالت، اطمینان حاصل کنید که پایگاه دادهٔ \fBmysql\fP گنجانده شده باشد) که پشتیبان را به آن منتقل می‌کنید، انجام داد. یک پایگاه دادهٔ سیستمی را می‌توان با دستور زیر ایجاد کرد: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ sudo mysql \-\-initialize \-\-user=mysql .ft P .fi .UNINDENT .UNINDENT .sp پس از راه‌اندازی کارساز، ممکن است هشدارهایی از mysql دربارهٔ tablespaceهای مفقود مشاهده کنید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C 2021\-07\-19T12:42:11.077200Z 1 [Warning] [MY\-012351] [InnoDB] Tablespace 4, name \(aqtest1/t1\(aq, file \(aq./d2/test1.ibd\(aq is missing! 2021\-07\-19T12:42:11.077300Z 1 [Warning] [MY\-012351] [InnoDB] Tablespace 4, name \(aqtest1/t1\(aq, file \(aq./d2/test1.ibd\(aq is missing! .ft P .fi .UNINDENT .UNINDENT .sp به منظور پاک‌سازی پایگاه دادهٔ یتیم از data dictionary، باید دایرکتوری پایگاه دادهٔ مفقود را به‌صورت دستی ایجاد کرده و سپس این پایگاه داده را با دستور \fBDROP\fP از کارساز حذف کنید. .sp نمونه‌ای از ایجاد پایگاه دادهٔ مفقود: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ mkdir /var/lib/mysql/test1/d2 .ft P .fi .UNINDENT .UNINDENT .sp نمونه‌ای از حذف پایگاه داده از کارساز: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C mysql> DROP DATABASE d2; Query OK, 2 rows affected (0.5 sec) .ft P .fi .UNINDENT .UNINDENT.SH "ویژگی‌های پیشرفته (ADVANCED FEATURES)" .SS "تحلیل آمارهای جدول (Analyzing Table Statistics)" .sp باینری \fIxtrabackup\fP می‌تواند فایل‌های دادهٔ InnoDB را در حالت فقط\-خواندنی (read\-only) تحلیل کند تا آمارهایی را دربارهٔ آن‌ها ارائه دهد. برای این کار، باید از گزینهٔ \fB\-\-stats\fP استفاده کنید. می‌توانید این گزینه را با گزینهٔ \fB\-\-tables\fP ترکیب کنید تا فایل‌های مورد بررسی را محدود نمایید. این ابزار همچنین از گزینهٔ \fB\-\-use\-memory\fP استفاده می‌کند. .sp می‌توانید تحلیل را روی یک کارساز (سرور) در حال اجرا انجام دهید، البته با مقداری احتمال بروز خطا به دلیل تغییر داده‌ها در حین تحلیل. یا می‌توانید یک نسخهٔ پشتیبان از پایگاه داده را تحلیل کنید. در هر صورت، برای استفاده از قابلیت آمارها، به یک نسخهٔ پاک از پایگاه داده شامل فایل‌های گزارش وقایع (log) با اندازهٔ درست نیاز دارید؛ بنابراین برای استفاده از این قابلیت روی یک نسخهٔ پشتیبان، باید آن را دو بار با \fB\-\-prepare\fP اجرا کنید. .sp نتیجهٔ اجرا روی یک نسخهٔ پشتیبان ممکن است مانند زیر باشد: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C table: test/table1, index: PRIMARY, space id: 12, root page 3 estimated statistics in dictionary: key vals: 25265338, leaf pages 497839, size pages 498304 real statistics: level 2 pages: pages=1, data=5395 bytes, data/pages=32% level 1 pages: pages=415, data=6471907 bytes, data/pages=95% leaf pages: recs=25958413, pages=497839, data=7492026403 bytes, data/pages=91% .ft P .fi .UNINDENT .UNINDENT .sp این خروجی را می‌توان به شرح زیر تفسیر کرد: .INDENT 0.0 .IP \(bu 2 سطر نخست به‌سادگی نام جدول، شاخص (index) و شناسه‌های داخلی آن را نشان می‌دهد. اگر شاخصی با نام \fBGEN_CLUST_INDEX\fP مشاهده کردید، آن شاخص خوشه‌ای (clustered index) جدول است که به صورت خودکار ایجاد شده، زیرا شما صراحتاً یک \fBPRIMARY KEY\fP ایجاد نکرده‌اید\&. .IP \(bu 2 آمارهای تخمینی در اطلاعات فرهنگ داده‌ها (dictionary)، مشابه داده‌هایی است که از طریق \fBANALYZE TABLE\fP در داخل \fIInnoDB\fP جمع‌آوری می‌شود تا به عنوان آمارهای تخمینی چندگانگی (cardinality) ذخیره شده و به بهینه‌ساز پرس‌وجو (query optimizer) تحویل داده شوند. .IP \(bu 2 اطلاعات آمارهای واقعی حاصل پویش صفحه‌های داده و محاسبهٔ اطلاعات دقیق دربارهٔ شاخص است. .IP \(bu 2 خروجی \fBThe level pages\fP: به این معنی است که آن سطر، اطلاعات مربوط به صفحات موجود در آن سطح از درخت شاخص را نمایش می‌دهد. هرچه \fB\fP بزرگ‌تر باشد، فاصلهٔ آن از صفحات برگ (leaf pages) که در سطح ۰ هستند بیشتر است. سطر نخست، صفحهٔ ریشه (root page) است. .IP \(bu 2 خروجی \fBleaf pages\fP مسلماً صفحات برگ را نشان می‌دهد. داده‌های جدول در این مکان ذخیره می‌شوند. .IP \(bu 2 خروجی \fBexternal pages\fP: (نشان داده‌نشده) صفحات خارجی بزرگی را نشان می‌دهد که مقادیری را نگه می‌دارند که برای جا شدن در خود سطر بیش از حد طولانی هستند؛ مانند مقادیر طولانی \fBBLOB\fP و \fBTEXT\fP. .IP \(bu 2 مقدار \fBrecs\fP تعداد واقعی رکوردها (سطرها) در صفحات برگ است. .IP \(bu 2 مقدار \fBpages\fP تعداد کل صفحات است. .IP \(bu 2 مقدار \fBdata\fP اندازهٔ کل داده‌ها در صفحات، به بایت است. .IP \(bu 2 مقدار \fBdata/pages\fP به صورت (\fBdata\fP / (\fBpages\fP * \fBPAGE_SIZE\fP)) * 100% محاسبه می‌شود. این مقدار به دلیل فضای رزرو شده برای سرصفحه‌ها و پانویس‌های صفحه (page headers و footers)، هرگز به ۱۰۰٪ نخواهد رسید. .UNINDENT .sp یک نمونه با جزئیات بیشتر در یک \fI\%مطلب\fP وبلاگ MySQL Performance منتشر شده است\&. .SS "اسکریپت برای قالب‌بندی خروجی (Script to Format Output)" .sp می‌توان از اسکریپت زیر برای خلاصه‌سازی و جدول‌بندی خروجی اطلاعات آماری استفاده کرد: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C tabulate\-xtrabackup\-stats.pl #!/usr/bin/env perl use strict; use warnings FATAL => \(aqall\(aq; my $script_version = "0.1"; my $PG_SIZE = 16_384; # InnoDB defaults to 16k pages, change if needed. my ($cur_idx, $cur_tbl); my (%idx_stats, %tbl_stats); my ($max_tbl_len, $max_idx_len) = (0, 0); while ( my $line = <> ) { if ( my ($t, $i) = $line =~ m/table: (.*), index: (.*), space id:/ ) { $t =~ s!/!.!; $cur_tbl = $t; $cur_idx = $i; if ( length($i) > $max_idx_len ) { $max_idx_len = length($i); } if ( length($t) > $max_tbl_len ) { $max_tbl_len = length($t); } } elsif ( my ($kv, $lp, $sp) = $line =~ m/key vals: (\ed+), \eD*(\ed+), \eD*(\ed+)/ ) { @{$idx_stats{$cur_tbl}\->{$cur_idx}}{qw(est_kv est_lp est_sp)} = ($kv, $lp, $sp); $tbl_stats{$cur_tbl}\->{est_kv} += $kv; $tbl_stats{$cur_tbl}\->{est_lp} += $lp; $tbl_stats{$cur_tbl}\->{est_sp} += $sp; } elsif ( my ($l, $pages, $bytes) = $line =~ m/(?:level (\ed+)|leaf) pages:.*pages=(\ed+), data=(\ed+) bytes/ ) { $l ||= 0; $idx_stats{$cur_tbl}\->{$cur_idx}\->{real_pages} += $pages; $idx_stats{$cur_tbl}\->{$cur_idx}\->{real_bytes} += $bytes; $tbl_stats{$cur_tbl}\->{real_pages} += $pages; $tbl_stats{$cur_tbl}\->{real_bytes} += $bytes; } } my $hdr_fmt = "%${max_tbl_len}s %${max_idx_len}s %9s %10s %10s\en"; my @headers = qw(TABLE INDEX TOT_PAGES FREE_PAGES PCT_FULL); printf $hdr_fmt, @headers; my $row_fmt = "%${max_tbl_len}s %${max_idx_len}s %9d %10d %9.1f%%\en"; foreach my $t ( sort keys %tbl_stats ) { my $tbl = $tbl_stats{$t}; printf $row_fmt, $t, "", $tbl\->{est_sp}, $tbl\->{est_sp} \- $tbl\->{real_pages}, $tbl\->{real_bytes} / ($tbl\->{real_pages} * $PG_SIZE) * 100; foreach my $i ( sort keys %{$idx_stats{$t}} ) { my $idx = $idx_stats{$t}\->{$i}; printf $row_fmt, $t, $i, $idx\->{est_sp}, $idx\->{est_sp} \- $idx\->{real_pages}, $idx\->{real_bytes} / ($idx\->{real_pages} * $PG_SIZE) * 100; } } .ft P .fi .UNINDENT .UNINDENT نمونهٔ خروجی اسکریپت .sp خروجی اسکریپت Perl بالا، هنگامی که بر روی نمونهٔ نشان‌داده‌شده در مطلب وبلاگ پیش‌تر ذکر شده اجرا شود، به صورت زیر خواهد بود: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C TABLE INDEX TOT_PAGES FREE_PAGES PCT_FULL art.link_out104 832383 38561 86.8% art.link_out104 PRIMARY 498304 49 91.9% art.link_out104 domain_id 49600 6230 76.9% art.link_out104 domain_id_2 26495 3339 89.1% art.link_out104 from_message_id 28160 142 96.3% art.link_out104 from_site_id 38848 4874 79.4% art.link_out104 revert_domain 153984 19276 71.4% art.link_out104 site_message 36992 4651 83.4% .ft P .fi .UNINDENT .UNINDENT .sp ستون‌ها عبارتند از جدول و شاخص، و به دنبال آن‌ها تعداد کل صفحات در آن شاخص، تعداد صفحاتی که در عمل توسط داده‌ها اشغال نشده‌اند، و تعداد بایت‌های داده‌های واقعی به صورت درصدی از کل اندازهٔ صفحات داده‌های واقعی. سطر نخست در خروجی بالا که ستون \fBINDEX\fP در آن خالی است، خلاصه‌ای از کل جدول می‌باشد..SS کار با لاگ‌های باینری (Binary Logs) .sp فایل اجرایی \fBxtrabackup\fP با \fBlog_status table\fP یکپارچه می‌شود. این یکپارچگی به \fBxtrabackup\fP امکان می‌دهد موقعیت لاگ باینری متناظر با پشتیبان را چاپ کند، تا بتوانید از این موقعیت لاگ باینری برای راه‌اندازی یک نسخهٔ بدل (replica) جدید یا انجام بازیابی در نقطهٔ زمانی مشخص (point\-in\-time recovery) استفاده کنید. .SS یافتن موقعیت لاگ باینری (Binary Log Position) .sp شما می‌توانید پس از گرفته شدن پشتیبان، موقعیت لاگ باینری متناظر با آن را بیابید. اگر پشتیبان شما از سروری گرفته شده باشد که گزارش‌گیری باینری در آن فعال است، \fBxtrabackup\fP فایلی به نام \fBxtrabackup_binlog_info\fP را در دایرکتوری مقصد ایجاد می‌کند. این فایل حاوی نام فایل لاگ باینری و موقعیت دقیق نقطه‌ای است که پشتیبان در آن گرفته شده است. .sp خروجی در طول مرحلهٔ پشتیبان‌گیری مشابه موارد زیر است: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C 210715 14:14:59 Backup created in directory \(aq/backup/\(aq MySQL binlog position: filename \(aqbinlog.000002\(aq, position \(aq156\(aq \&. . . 210715 14:15:00 completed OK! .ft P .fi .UNINDENT .UNINDENT .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 از نسخهٔ Percona XtraBackup 8.0.26\-18.0 به بعد، xtrabackup دیگر فایل \fBxtrabackup_binlog_pos_innodb\fP را ایجاد نمی‌کند. این تغییر به این دلیل است که MySQL و Percona Server دیگر اطلاعات لاگ باینری را در بخش سیستم تراکنش سراسری \fBibdata\fP به‌روزرسانی نمی‌کنند. شما باید بدون در نظر گرفتن موتور ذخیره‌سازیِ (storage engine) مورد استفاده، به \fBxtrabackup_binlog_info\fP اتکا کنید. .UNINDENT .UNINDENT .SS بازیابی در نقطهٔ زمانی مشخص (Point\-In\-Time Recovery) .sp برای انجام یک بازیابی در نقطهٔ زمانی مشخص از یک پشتیبان \fBxtrabackup\fP، باید پشتیبان را آماده‌سازی (prepare) و بازیابی (restore) کنید، و سپس لاگ‌های باینری را از نقطهٔ نشان داده‌شده در فایل \fBxtrabackup_binlog_info\fP بازپخش (replay) نمایید. .sp دستورالعمل دقیق‌تر در اینجا یافت می‌شود\&. .SS راه‌اندازی یک نسخهٔ بدل رپلیکیشن جدید (Replication Replica) .sp برای راه‌اندازی یک replica جدید، باید پشتیبان را آماده‌سازی کرده و آن را در دایرکتوری داده‌های (data directory) نسخهٔ بدل رپلیکیشن جدید خود بازیابی کنید. اگر از نسخهٔ 8.0.22 یا قدیمی‌تر استفاده می‌کنید، در دستور \fBCHANGE MASTER TO\fP خود، از نام فایل لاگ باینری و موقعیت نشان‌داده‌شده در فایل \fBxtrabackup_binlog_info\fP برای آغاز رپلیکیشن استفاده کنید. .sp اگر از نسخهٔ 8.0.23 یا جدیدتر استفاده می‌کنید، از \fI\%CHANGE_REPLICATION_SOURCE_TO و گزینه‌های مناسب آن\fP استفاده کنید\&. دستور \fBCHANGE_MASTER_TO\fP منسوخ شده است. .sp دستورالعمل با جزئیات بیشتر در \&../howtos/setting_up_replication یافت می‌شود\&. .SS بازیابی جدول‌های تکی (Restoring Individual Tables) .sp نرم‌افزار \fIPercona XtraBackup\fP می‌تواند جدولی را که در فایل \fI\&.ibd\fP اختصاصی خودش قرار دارد صادر (export) کند. با \fIPercona XtraBackup\fP، می‌توانید جدول‌های جداگانه را از هر پایگاه‌دادهٔ \fIInnoDB\fP صادر کرده و آن‌ها را به \fIPercona Server for MySQL\fP دارای \fIXtraDB\fP یا \fIMySQL\fP 8.0 وارد (import) کنید. مبدأ لزوماً نیازی نیست \fIXtraDB\fP یا \fIMySQL\fP 8.0 باشد، اما مقصد باید چنین باشد. این روش فقط بر روی فایل‌های \fI\&.ibd\fP تکی کار می‌کند. .sp مثال زیر جدول زیر را صادر و وارد می‌کند: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C CREATE TABLE export_test ( a int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; .ft P .fi .UNINDENT .UNINDENT .SS صادر کردن جدول (Exporting the Table) .sp جدول در حالت \fIinnodb_file_per_table\fP ایجاد شده است، بنابراین پس از گرفتن پشتیبان به شیوهٔ معمول با گزینهٔ \fI\-\-backup\fP، فایل \fI\&.ibd\fP در دایرکتوری مقصد وجود دارد: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ find /data/backups/mysql/ \-name export_test.* /data/backups/mysql/test/export_test.ibd .ft P .fi .UNINDENT .UNINDENT .sp هنگامی که پشتیبان را آماده‌سازی (prepare) می‌کنید، گزینهٔ \fI\-\-export\fP را به دستور اضافه نمایید. در اینجا یک مثال آورده شده است: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-prepare \-\-export \-\-target\-dir=/data/backups/mysql/ .ft P .fi .UNINDENT .UNINDENT .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 اگر یک جدول فضای جدول (tablespace) رمزنگاری‌شدهٔ InnoDB را بازیابی می‌کنید، فایل دسته‌کلید (keyring) را اضافه نمایید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-prepare \-\-export \-\-target\-dir=/tmp/table \e \-\-keyring\-file\-data=/var/lib/mysql\-keyring/keyring .ft P .fi .UNINDENT .UNINDENT .UNINDENT .UNINDENT .sp اکنون باید یک فایل \fI\&.exp\fP در دایرکتوری مقصد مشاهده کنید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ find /data/backups/mysql/ \-name export_test.* /data/backups/mysql/test/export_test.exp /data/backups/mysql/test/export_test.ibd /data/backups/mysql/test/export_test.cfg .ft P .fi .UNINDENT .UNINDENT .sp این سه فایل تنها فایل‌های لازم برای وارد کردن جدول به سروری هستند که \fIPercona Server for MySQL\fP همراه با \fIXtraDB\fP یا \fIMySQL\fP 8.0 را اجرا می‌کند. در صورتی که سرور از \fI\%InnoDB Tablespace Encryption\fP استفاده کند، یک فایل اضافی \fI\&.cfp\fP شامل کلید انتقال و کلید رمزنگاری‌شدهٔ tablespace نیز اضافه می‌شود. .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 فایل فرادادهٔ (metadata) \fI\&.cfg\fP حاوی یک نسخهٔ تخلیه از دیکشنری (dictionary dump) \fIInnoDB\fP در قالبی ویژه است. این قالب با قالب \fI\&.exp\fP که در \fIXtraDB\fP برای همین منظور استفاده می‌شود متفاوت است. فایل \fI\&.cfg\(ga\fP برای وارد کردن یک tablespace به \fIMySQL\fP 8.0 یا Percona Server for MySQL 8.0 لازم نیست. .sp فضای جدول (tablespace) با موفقیت وارد می‌شود حتی اگر جدول متعلق به سرور دیگری باشد، اما در صورتی که فایل \fI\&.cfg\fP متناظر در همان دایرکتوری قرار داشته باشد، \fIInnoDB\fP یک اعتبارسنجی طرحواره (schema validation) انجام می‌دهد. .UNINDENT .UNINDENT.SS وارد کردن جدول (Importing the Table) .sp در سرور مقصد که \fIPercona Server for MySQL\fP با \fIXtraDB\fP و گزینهٔ فعال‌شدهٔ \fI\%innodb_import_table_from_xtrabackup\fP یا \fIMySQL\fP 8.0 را اجرا می‌کند، جدولی با همان ساختار ایجاد کرده و سپس مراحل زیر را انجام دهید: .INDENT 0.0 .IP 1. 3 دستور \fBALTER TABLE test\&.export_test DISCARD TABLESPACE;\fP را اجرا کنید. اگر خطای زیر را مشاهده کردید، گزینهٔ \fIinnodb_file_per_table\fP را فعال کرده و جدول را دوباره ایجاد کنید. .INDENT 3.0 .INDENT 3.5 .IP "خطا (Error)" .sp ERROR 1030 (HY000): Got error \-1 from storage engine .UNINDENT .UNINDENT .IP 2. 3 فایل‌های برون‌ریزی‌شده را در زیردایرکتوری \fBtest/\fP دایرکتوری داده‌های (data directory) سرور مقصد کپی کنید .IP 3. 3 دستور \fBALTER TABLE test\&.export_test IMPORT TABLESPACE;\fP را اجرا کنید. .UNINDENT .sp جدول وارد شده است و می‌توانید برای دیدن داده‌های واردشده یک دستور \fBSELECT\fP اجرا کنید. .SS پشتیبان‌گیری دامپ LRU (LRU dump backup) .sp ابزار \fIPercona XtraBackup\fP یک دامپ ذخیره‌شده از buffer pool را در نسخهٔ پشتیبان قرار می‌دهد تا زمان گرم‌شدن (warm up) را کاهش دهد. این ابزار وضعیت buffer pool را پس از راه‌اندازی مجدد از فایل \fBib_buffer_pool\fP بازیابی می‌کند. \fIPercona XtraBackup\fP فایل \fBib_buffer_pool\fP را شناسایی کرده و به‌طور خودکار از آن نسخهٔ پشتیبان تهیه می‌کند. [تصویر] .sp اگر گزینهٔ بازیابی بافر در \fBmy.cnf\fP فعال باشد، buffer pool پس از بازیابی نسخهٔ پشتیبان در وضعیت گرم (warm) خواهد بود. .sp \fBهمچنین ببینید (SEE ALSO):\fP .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B مستندات \fIMySQL\fP: ذخیره و بازیابی وضعیت Buffer Pool \fI\%https://dev.mysql.com/doc/refman/8.0/en/innodb\-preload\-buffer\-pool.html\fP .UNINDENT .UNINDENT .UNINDENT .SS پشتیبان‌گیری جریانی (Streaming Backups) .sp ابزار \fBPercona XtraBackup\fP از حالت جریانی (streaming) پشتیبانی می‌کند. حالت جریانی به‌جای کپی کردن فایل‌ها در دایرکتوری پشتیبان، نسخهٔ پشتیبان را با قالب \fIxbstream\fP به \fBSTDOUT\fP ارسال می‌کند. .sp این روش به شما امکان می‌دهد از برنامه‌های دیگر برای پالایش و فیلتر کردن خروجی نسخهٔ پشتیبان استفاده کنید که انعطاف‌پذیری بیشتری را برای ذخیره‌سازی پشتیبان فراهم می‌کند. برای مثال، فشرده‌سازی با هدایت خروجی (pipe کردن) به یک ابزار فشرده‌ساز انجام می‌شود. یکی از مزایای پشتیبان‌گیری جریانی و استفاده از pipeهای یونیکس این است که نسخه‌های پشتیبان را می‌توان به‌صورت خودکار رمزگذاری کرد. .sp برای استفاده از ویژگی جریان، باید از گزینهٔ \fB\-\-stream\fP استفاده کنید که قالب جریان (\fBxbstream\fP) و محل ذخیرهٔ فایل‌های موقت را مشخص می‌کند: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-stream=xbstream \-\-target\-dir=/tmp .ft P .fi .UNINDENT .UNINDENT .sp ابزار \fIxtrabackup\fP از \fIxbstream\fP برای ارسال جریانی همهٔ فایل‌های داده به \fBSTDOUT\fP در قالب ویژهٔ \fBxbstream\fP استفاده می‌کند. پس از اتمام جریان همهٔ فایل‌های داده به \fBSTDOUT\fP، فرایند xtrabackup را متوقف کرده و فایل لاگ ذخیره‌شده را نیز به‌صورت جریانی ارسال می‌کند. .sp \fBهمچنین ببینید (SEE ALSO):\fP .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B اطلاعات بیشتر دربارهٔ \fIxbstream\fP xbstream_binary .UNINDENT .UNINDENT .UNINDENT .sp هنگامی که فشرده‌سازی فعال باشد، \fIxtrabackup\fP داده‌های خروجی را، به‌استثنای فایل‌های متا و فایل‌های غیر InnoDB که فشرده نمی‌شوند، با استفاده از الگوریتم فشرده‌سازی مشخص‌شده فشرده می‌کند. تنها الگوریتمی که در حال حاضر پشتیبانی می‌شود \fBquicklz\fP است. فایل‌های حاصل دارای قالب آرشیو \fBqpress\fP هستند؛ یعنی هر فایل *.qp تولیدشده توسط xtrabackup اساساً یک آرشیو تک‌فایلی qpress است و می‌تواند توسط ابزار بایگانی فایل \fI\%qpress file archiver\fP که در مخازن نرم‌افزاری Percona موجود است استخراج شده و از حالت فشرده خارج شود. .sp با استفاده از \fIxbstream\fP به‌عنوان یک گزینهٔ جریان، می‌توان نسخه‌های پشتیبان را به‌صورت موازی کپی و فشرده کرد. این گزینه می‌تواند سرعت فرایند پشتیبان‌گیری را به‌میزان چشمگیری افزایش دهد. در صورتی که نسخه‌های پشتیبان هم فشرده و هم رمزگذاری شده باشند، باید پیش از خارج کردن از حالت فشرده، رمزگشایی شوند. .TS center; |l|l|. _ T{ عملیات T} T{ دستور T} _ T{ ارسال جریانی نسخهٔ پشتیبان به یک آرشیو با نام \fBbackup.xbstream\fP T} T{ \fBxtrabackup \-\-backup \-\-stream=xbstream \-\-target\-dir=\&./ > backup.xbstream\fP T} _ T{ ارسال جریانی نسخهٔ پشتیبان به یک آرشیو \fIفشرده‌شده\fP با نام \fBbackup.xbstream\fP T} T{ \fBxtrabackup \-\-backup \-\-stream=xbstream \-\-compress \-\-target\-dir=\&./ > backup.xbstream\fP T} _ T{ رمزگذاری نسخهٔ پشتیبان T} T{ $ xtrabackup \-\-backup \-\-stream=xbstream ./ > backup.xbstream gzip \- | openssl des3 \-salt \-k "password" > backup.xbstream.gz.des3 T} _ T{ استخراج نسخهٔ پشتیبان در دایرکتوری جاری T} T{ \fBxbstream \-x < backup.xbstream\fP T} _ T{ ارسال مستقیم نسخهٔ پشتیبانِ فشرده‌شده به میزبان دیگر و استخراج آن T} T{ \fBxtrabackup \-\-backup \-\-compress \-\-stream=xbstream \-\-target\-dir=\&./ | ssh user@otherhost "xbstream \-x"\fP T} _ T{ ارسال نسخهٔ پشتیبان به سروری دیگر با استفاده از \fBnetcat\fP\&. T} T{ در میزبان مقصد: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ nc \-l 9999 | cat \- > /data/backups/backup.xbstream .ft P .fi .UNINDENT .UNINDENT .sp در میزبان مبدأ: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-backup \-\-stream=xbstream ./ | nc desthost 9999 .ft P .fi .UNINDENT .UNINDENT T} _ T{ ارسال نسخهٔ پشتیبان به سروری دیگر با یک دستور یکپارچه (one\-liner): T} T{ $ ssh \fI\%user@desthost\fP "( nc \-l 9999 > /data/backups/backup.xbstream & )" && xtrabackup \-\-backup \-\-stream=xbstream ./ | nc desthost 9999 T} _ T{ محدود کردن نرخ تبادل داده به 10MB/sec با استفاده از ابزار \fBpipe viewer\fP [1] T} T{ $ xtrabackup \-\-backup \-\-stream=xbstream ./ | pv \-q \-L10m ssh \fI\%user@desthost\fP "cat \- > /data/backups/backup.xbstream" T} _ T{ محاسبهٔ جمع کنترلی (checksum) نسخهٔ پشتیبان در حین ارسال جریانی: T} T{ در میزبان مقصد: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ nc \-l 9999 | tee >(sha1sum > destination_checksum) > /data/backups/backup.xbstream .ft P .fi .UNINDENT .UNINDENT .sp در میزبان مبدأ: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-backup \-\-stream=xbstream ./ | tee >(sha1sum > source_checksum) | nc desthost 9999 .ft P .fi .UNINDENT .UNINDENT .sp مقایسهٔ جمع‌های کنترلی در میزبان مبدأ: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ cat source_checksum 65e4f916a49c1f216e0887ce54cf59bf3934dbad \- .ft P .fi .UNINDENT .UNINDENT .sp مقایسهٔ جمع‌های کنترلی در میزبان مقصد: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ cat destination_checksum 65e4f916a49c1f216e0887ce54cf59bf3934dbad \- .ft P .fi .UNINDENT .UNINDENT T} _ T{ فشرده‌سازی موازی همراه با کپی موازی نسخهٔ پشتیبان T} T{ \fBxtrabackup \-\-backup \-\-compress \-\-compress\-threads=8 \-\-stream=xbstream \-\-parallel=4 \-\-target\-dir=\&./ > backup.xbstream\fP T} _ .TE.SH "پاورقی‌ها (FOOTNOTES)" .IP [1] 5 نصب از \fI\%وبگاه رسمی\fP یا از بسته توزیع (\fBapt install pv\fP) .sp توجه داشته باشید که نسخه پشتیبان جاری‌شده (streamed) پیش از بازیابی باید آماده‌سازی شود. حالت جاری‌سازی نسخه پشتیبان را آماده‌سازی نمی‌کند. .SS رمزنگاری نسخه‌های پشتیبان .sp \fIPercona XtraBackup\fP از رمزنگاری و رمزگشایی نسخه‌های پشتیبان محلی و جاری با گزینه \fIxbstream\fP پشتیبانی می‌کند که لایه حفاظتی دیگری می‌افزاید. رمزنگاری با استفاده از کتابخانه \fBlibgcrypt\fP از GnuPG پیاده‌سازی شده است. .SS ایجاد نسخه‌های پشتیبان رمزنگاری‌شده .sp برای ایجاد یک نسخه پشتیبان رمزنگاری‌شده، گزینه‌های زیر باید مشخص شوند (گزینه‌های \fB\-\-encrypt\-key\fP و \fB\-\-encrypt\-key\-file\fP ناسازگار با یکدیگرند، یعنی تنها یکی از آن‌ها باید مشخص شود): .INDENT 0.0 .IP \(bu 2 \fB\-\-encrypt\fP .IP \(bu 2 :option:\(ga \-\-encrypt\-key\(ga .IP \(bu 2 :option:\(ga \-\-encrypt\-key\-file\(ga .UNINDENT .sp هر دو گزینه \fB\-\-encrypt\-key\fP و \fB\-\-encrypt\-key\-file\fP می‌توانند برای مشخص کردن کلید رمزنگاری استفاده شوند. کلید رمزنگاری را می‌توان با دستوری مانند \fBopenssl rand \-base64 32\fP تولید کرد. .sp نمونه خروجی این دستور باید شبیه به این باشد: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C U2FsdGVkX19VPN7VM+lwNI0fePhjgnhgqmDBqbF3Bvs= .ft P .fi .UNINDENT .UNINDENT .sp سپس از این مقدار می‌توان به عنوان کلید رمزنگاری استفاده کرد. .SS گزینه \fB\-\-encrypt\-key\fP .sp نمونه دستور \fIxtrabackup\fP با استفاده از \fB\-\-encrypt\-key\fP باید شبیه به این باشد: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-backup \-\-encrypt=AES256 \-\-encrypt\-key="U2FsdGVkX19VPN7VM+lwNI0fePhjgnhgqmDBqbF3Bvs=" \-\-target\-dir=/data/backup .ft P .fi .UNINDENT .UNINDENT .SS گزینه \fB\-\-encrypt\-key\-file\fP .sp از گزینه \fB\-\-encrypt\-key\-file\fP به صورت زیر استفاده کنید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-backup \-\-encrypt=AES256 \-\-encrypt\-key\-file=/data/backups/keyfile \-\-target\-dir=/data/backup .ft P .fi .UNINDENT .UNINDENT .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 بسته به ویرایشگر متنی که برای ساخت \fBKEYFILE\fP استفاده می‌کنید، ویرایشگر ممکن است نویسه CRLF (انتهای خط) را به طور خودکار درج کند. این امر موجب افزایش اندازه کلید شده و در نتیجه آن را نامعتبر می‌سازد. روش پیشنهادی برای ایجاد فایل استفاده از خط فرمان است: \fBecho \-n "U2FsdGVkX19VPN7VM+lwNI0fePhjgnhgqmDBqbF3Bvs=" > /data/backups/keyfile\fP\&. .UNINDENT .UNINDENT .SS بهینه‌سازی فرایند رمزنگاری .sp دو گزینه جدید برای نسخه‌های پشتیبان رمزنگاری‌شده در دسترس است که می‌توانند برای سرعت بخشیدن به فرایند رمزنگاری استفاده شوند. این گزینه‌ها \fB\-\-encrypt\-threads\fP و \fB\-\-encrypt\-chunk\-size\fP هستند\&. با استفاده از گزینه \fB\-\-encrypt\-threads\fP می‌توان چندین رشته (thread) را برای استفاده در رمزنگاری به صورت موازی مشخص کرد. از گزینه \fB\-\-encrypt\-chunk\-size\fP می‌توان برای مشخص کردن اندازه (به بایت) بافر کاری رمزنگاری برای هر رشته رمزنگاری استفاده کرد (پیش‌فرض 64K است). .SS رمزگشایی نسخه‌های پشتیبان رمزنگاری‌شده .sp نسخه‌های پشتیبان را می‌توان با xbcrypt رمزگشایی کرد\&. دستور تک‌خطی زیر می‌تواند برای رمزگشایی کل پوشه استفاده شود: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ for i in \(gafind . \-iname "*\e.xbcrypt"\(ga; do xbcrypt \-d \-\-encrypt\-key\-file=/root/secret_key \-\-encrypt\-algo=AES256 < $i > $(dirname $i)/$(basename $i .xbcrypt) && rm $i; done .ft P .fi .UNINDENT .UNINDENT .sp گزینه \fB\-\-decrypt\fP در \fIPercona XtraBackup\fP پیاده‌سازی شده است که می‌تواند برای رمزگشایی نسخه‌های پشتیبان استفاده شود: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-decrypt=AES256 \-\-encrypt\-key="U2FsdGVkX19VPN7VM+lwNI0fePhjgnhgqmDBqbF3Bvs=" \-\-target\-dir=/data/backup/ .ft P .fi .UNINDENT .UNINDENT .sp \fIPercona XtraBackup\fP فایل‌های رمزنگاری‌شده را به طور خودکار حذف نمی‌کند. برای پاکسازی دایرکتوری پشتیبان، کاربران باید فایل‌های \fB*.xbcrypt\fP را حذف کنند. .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 می‌توان از \fB\-\-parallel\fP همراه با گزینه \fB\-\-decrypt\fP برای رمزگشایی هم‌زمان چندین فایل استفاده کرد. .UNINDENT .UNINDENT .sp هنگامی که فایل‌ها رمزگشایی شدند، نسخه پشتیبان را می‌توان آماده‌سازی کرد..SS آماده‌سازی پشتیبان‌های رمزنگاری‌شده .sp پس از رمزگشایی نسخه‌های پشتیبان، می‌توان آن‌ها را همانند نسخه‌های پشتیبان کامل و استاندارد با گزینهٔ \fB\-\-prepare\fP آماده‌سازی کرد: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-prepare \-\-target\-dir=/data/backup/ .ft P .fi .UNINDENT .UNINDENT .SS بازگردانی پشتیبان‌های رمزنگاری‌شده .sp \fIxtrabackup\fP گزینهٔ \fB\-\-copy\-back\fP را برای بازگردانی یک پشتیبان به datadir سرور ارائه می‌دهد: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-copy\-back \-\-target\-dir=/data/backup/ .ft P .fi .UNINDENT .UNINDENT .sp این دستور تمام فایل‌های مرتبط با داده را به datadir سرور (که توسط فایل پیکربندی \fBmy.cnf\fP سرور تعیین می‌شود) بازمی‌گرداند. برای اطمینان از پیام موفقیت، آخرین خط خروجی را بررسی کنید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C 150318 11:08:13 xtrabackup: completed OK! .ft P .fi .UNINDENT .UNINDENT .sp \fBهمچنین ببینید:\fP .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B مستندات GnuPG: کتابخانهٔ \fBlibgcrypt\fP \fI\%http://www.gnupg.org/documentation/manuals/gcrypt\fP .UNINDENT .UNINDENT .UNINDENT .SS گزینهٔ \fBFLUSH TABLES WITH READ LOCK\fP .sp گزینهٔ \fBFLUSH TABLES WITH READ LOCK\fP با اعمال یک قفل خواندن سراسری کارهای زیر را انجام می‌دهد: .INDENT 0.0 .IP \(bu 2 بستن همهٔ جدول‌های باز .IP \(bu 2 قفل کردن همهٔ جدول‌ها برای تمام پایگاه‌های داده .UNINDENT .sp قفل را با \fBUNLOCK TABLES\fP آزاد کنید. .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 \fBFLUSH TABLES WITH READ LOCK\fP مانع درج سطرها در جدول‌های گزارش نمی‌شود. .UNINDENT .UNINDENT .sp جهت اطمینان از سازگاری پشتیبان‌ها، قبل از تهیهٔ پشتیبان از فایل‌های غیر InnoDB از گزینهٔ \fBFLUSH TABLES WITH READ LOCK\fP استفاده کنید. این گزینه تأثیری بر پرس‌وجوهای طولانی‌مدت ندارد. .sp پرس‌وجوهای طولانی‌مدت در صورت فعال بودن \fBFLUSH TABLES WITH READ LOCK\fP می‌توانند سرور را تا پایان اجرای خود در حالت فقط‌خواندنی قرار دهند. پایان دادن اجباری به \fBFLUSH TABLES WITH READ LOCK\fP در صورتی که پایگاه داده در یکی از وضعیت‌های \fBWaiting for table flush\fP یا \fBWaiting for master to send event\fP باشد کمکی نمی‌کند. برای بازگشت به عملکرد عادی، باید هر پرس‌وجوی طولانی‌مدت را متوقف کنید. .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 تمامی موارد شرح داده شده در این بخش هنگام استفاده از قفل‌های پشتیبان‌گیری بی‌استفاده هستند. \fIPercona XtraBackup\fP در صورت وجود، از \fI\%Backup locks\fP به عنوان جایگزینی سبک برای \fBFLUSH TABLES WITH READ LOCK\fP استفاده خواهد کرد. این ویژگی در \fIPercona Server for MySQL\fP نسخهٔ 5.6 به بالا موجود است. \fIPercona XtraBackup\fP به‌طور خودکار از این قابلیت برای رونویسی داده‌های غیر InnoDB استفاده می‌کند تا از مسدود شدن پرس‌وجوهای DML که جدول‌های InnoDB را اصلاح می‌کنند، جلوگیری شود. .UNINDENT .UNINDENT .sp به منظور جلوگیری از رخ دادن این مسئله، دو راهکار پیاده‌سازی شده است: .INDENT 0.0 .IP \(bu 2 \fIxtrabackup\fP منتظر زمان مناسبی برای صدور قفل سراسری می‌ماند .IP \(bu 2 \fIxtrabackup\fP همهٔ پرس‌وجوها یا فقط پرس‌وجوهای SELECT را که مانع دریافت قفل سراسری می‌شوند، متوقف می‌کند .UNINDENT .SS انتظار برای پایان پرس‌وجوها .sp شما باید زمانی قفل سراسری را صادر کنید که هیچ پرس‌وجوی طولانی‌ای در حال اجرا نباشد. منتظر ماندن برای صدور قفل سراسری برای مدت زمانی طولانی، روش مناسبی نیست. این انتظار می‌تواند زمان مورد نیاز برای انجام پشتیبان‌گیری را افزایش دهد. گزینهٔ \fI\-\-ftwrl\-wait\-timeout\fP می‌تواند زمان انتظار را محدود کند. اگر نتواند در این زمان قفل را صادر کند، \fIxtrabackup\fP گزینه را متوقف کرده، با یک پیام خطا خارج می‌شود و پشتیبان‌گیری انجام نخواهد شد. .sp مقدار پیش‌فرض این گزینه صفر (0) است که این گزینه را غیرفعال می‌کند. .sp احتمال دیگر، تعیین نوع پرس‌وجویی است که باید منتظر آن ماند. در این حالت از \fB\-\-ftwrl\-wait\-query\-type\fP استفاده می‌شود. مقدارهای ممکن \fBall\fP و \fBupdate\fP هستند. زمانی که از \fBall\fP استفاده می‌شود، \fIxtrabackup\fP قبل از اجرای \fBFLUSH TABLES WITH READ LOCK\fP منتظر می‌ماند تا تمام پرس‌وجوهای طولانی‌مدت (با زمان اجرای بیشتر از مقدار تعیین‌شده توسط \fB\-\-ftwrl\-wait\-threshold\fP) پایان یابند. زمانی که از \fBupdate\fP استفاده می‌شود، \fIxtrabackup\fP منتظر پایان پرس‌وجوهای \fBUPDATE/ALTER/REPLACE/INSERT\fP می‌ماند. .sp پیش‌بینی زمان لازم برای تکمیل یک پرس‌وجوی خاص دشوار است. فرض بر این است که پرس‌وجوهای طولانی‌مدت در زمان مناسب به پایان نخواهند رسید. سایر پرس‌وجوها که زمان کوتاهی اجرا می‌شوند، سریع پایان می‌یابند. \fIxtrabackup\fP از مقدار گزینهٔ \fI\-\-ftwrl\-wait\-threshold\fP برای مشخص کردن پرس‌وجوهای طولانی‌مدت که قفل سراسری را مسدود می‌کنند، استفاده می‌کند. برای استفاده از این گزینه، کاربر xtrabackup باید دسترسی‌های \fBPROCESS\fP و \fBSUPER\fP را داشته باشد. .SS متوقف کردن پرس‌وجوهای مسدودکننده .sp راهکار دوم، متوقف کردن تمام پرس‌وجوهایی است که مانع دریافت قفل سراسری می‌شوند. در این حالت، تمام پرس‌وجوهایی که اجرای آن‌ها بیشتر از \fBFLUSH TABLES WITH READ LOCK\fP طول بکشد، مسدودکننده‌های بالقوه هستند. اگرچه می‌توان تمام پرس‌وجوها را متوقف کرد، اما با استفاده از گزینهٔ \fB\-\-kill\-long\-queries\-timeout\fP می‌توان زمان بیشتری را برای پایان یافتن پرس‌وجوهای کوتاه‌مدت تعیین نمود. این گزینه زمان تکمیل پرس‌وجوها را مشخص می‌کند؛ پس از رسیدن به این مقدار، تمام پرس‌وجوهای در حال اجرا متوقف خواهند شد. مقدار پیش‌فرض صفر است که این ویژگی را خاموش می‌کند. .sp گزینهٔ \fB\-\-kill\-long\-query\-type\fP می‌تواند برای مشخص کردن همه یا تنها پرس‌وجوهای \fBSELECT\fP که مانع دریافت قفل سراسری می‌شوند، استفاده شود. برای استفاده از این گزینه، کاربر xtrabackup باید از دسترسی‌های \fBPROCESS\fP و \fBSUPER\fP برخوردار باشد..SS خلاصه گزینه‌ها .INDENT 0.0 .IP \(bu 2 \fB\-\-ftwrl\-wait\-timeout\fP (به ثانیه) \- چه مدت برای یک لحظه مناسب صبر شود. مقدار پیش‌فرض 0 است، یعنی صبر نشود. .IP \(bu 2 \fB\-\-ftwrl\-wait\-query\-type\fP \- کدام پرس‌وجوهای طولانی‌مدت باید پیش از اجرای \fBFLUSH TABLES WITH READ LOCK\fP به پایان برسند. مقدار پیش‌فرض all است. .IP \(bu 2 \fB\-\-ftwrl\-wait\-threshold\fP (به ثانیه) \- یک پرس‌وجو چه مدت باید در حال اجرا باشد تا طولانی‌مدت و مسدودکننده احتمالی قفل سراسری در نظر گرفته شود. .IP \(bu 2 \fB\-\-kill\-long\-queries\-timeout\fP (به ثانیه) \- پس از صدور دستور \fBFLUSH TABLES WITH READ LOCK\fP چه مقدار زمان پیش از شروع به بستن پرس‌وجوها، برای اتمام به آن‌ها داده شود. مقدار پیش‌فرض \fB0\fP است، یعنی بسته نشوند. .IP \(bu 2 \fB\-\-kill\-long\-query\-type\fP \- پس از اتمام زمان \fBkill\-long\-queries\-timeout\fP، کدام پرس‌وجوها باید کشته و متوقف شوند. .UNINDENT .SS مثال .sp اجرای \fIxtrabackup\fP با گزینه‌های زیر باعث می‌شود \fIxtrabackup\fP بیش از ۳ دقیقه برای اتمام تمام پرس‌وجوهایی که بیش از ۴۰ ثانیه در حال اجرا بوده‌اند، منتظر نماند. .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-backup \-\-ftwrl\-wait\-threshold=40 \e \-\-ftwrl\-wait\-query\-type=all \-\-ftwrl\-wait\-timeout=180 \e \-\-kill\-long\-queries\-timeout=20 \-\-kill\-long\-query\-type=all \e \-\-target\-dir=/data/backups/ .ft P .fi .UNINDENT .UNINDENT .sp پس از صدور \fBFLUSH TABLES WITH READ LOCK\fP، دستور \fIxtrabackup\fP به مدت ۲۰ ثانیه برای اخذ قفل منتظر می‌ماند. اگر پس از ۲۰ ثانیه قفل همچنان اخذ نشده باشد، تمام پرس‌وجوهایی را که طولانی‌تر از \fBFLUSH TABLES WITH READ LOCK\fP در حال اجرا بوده‌اند، متوقف خواهد کرد\&. .SS شتاب‌بخشی به فرآیند پشتیبان‌گیری .sp کپی با گزینه‌های \fB\-\-parallel\fP و \fI\-\-compress\-threads\fP .sp هنگام تهیه پشتیبان محلی یا جریانی با گزینه \fIxbstream\fP، با استفاده از گزینه \fB\-\-parallel\fP می‌توان چندین فایل را به طور هم‌زمان کپی کرد. این گزینه تعداد ریسه‌های (threads) ایجاد شده توسط \fIxtrabackup\fP را برای کپی فایل‌های داده تعیین می‌کند. .sp برای بهره‌گیری از این گزینه، یا باید گزینه فضاهای جدول چندگانه فعال باشد (innodb_file_per_table) یا اینکه فضای جدول مشترک با گزینه innodb_data_file_path در چندین فایل ibdata ذخیره شده باشد. داشتن چندین فایل برای پایگاه داده (یا تقسیم یکی به چند فایل) تأثیر قابل اندازه‌گیری بر کارایی ندارد. .sp از آنجا که این ویژگی \fBدر سطح فایل\fP پیاده‌سازی شده است، انتقال هم‌زمان فایل‌ها گاهی اوقات به دلیل هم‌پوشانی تعداد بیشتری از درخواست‌های خواندن تصادفی هنگام پشتیبان‌گیری از فایل‌های داده‌ای به شدت تکه‌تکه‌شده (fragmented)، می‌تواند نرخ ورودی/خروجی (I/O throughput) را افزایش دهد. همچنین برای دستیابی به حداکثر کارایی، باید بهینه‌سازی سیستم‌فایل را نیز در نظر بگیرید (مانند بررسی تکه‌تکه‌شدگی فایل‌ها). .sp اگر داده‌ها در یک تک‌فایل ذخیره شده باشند، این گزینه هیچ اثری نخواهد داشت. .sp برای استفاده از این ویژگی، کافی است این گزینه را به پشتیبان‌گیری محلی اضافه کنید؛ برای نمونه: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-backup \-\-parallel=4 \-\-target\-dir=/path/to/backup .ft P .fi .UNINDENT .UNINDENT .sp با استفاده از \fIxbstream\fP در پشتیبان‌گیری‌های جریانی، می‌توانید علاوه بر این، فرآیند فشرده‌سازی را نیز با گزینه \fB\-\-compress\-threads\fP تسریع کنید. این گزینه تعداد ریسه‌های ایجاد شده توسط \fIxtrabackup\fP را برای فشرده‌سازی موازی داده‌ها مشخص می‌کند. مقدار پیش‌فرض این گزینه 1 است. .sp برای استفاده از این ویژگی، کافی است این گزینه را به پشتیبان‌گیری محلی اضافه کنید؛ برای نمونه: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-backup \-\-stream=xbstream \-\-compress \-\-compress\-threads=4 \-\-target\-dir=./ > backup.xbstream .ft P .fi .UNINDENT .UNINDENT .sp پیش از اعمال لاگ‌ها، فایل‌های فشرده‌شده باید از حالت فشرده خارج شوند. .sp گزینه \fB\-\-rsync\fP .sp به منظور افزایش سرعت فرآیند پشتیبان‌گیری و به حداقل رساندن مدت زمانی که \fBFLUSH TABLES WITH READ LOCK\fP عملیات نوشتن را مسدود می‌کند، باید از گزینه \fB\-\-rsync\fP استفاده شود. هنگامی که این گزینه مشخص شود، \fIxtrabackup\fP برای کپی کردن تمام فایل‌های غیر InnoDB به جای اجرای یک \fBcp\fP جداگانه برای هر فایل، از \fBrsync\fP استفاده می‌کند که می‌تواند در سرورهایی با تعداد زیادی پایگاه داده یا جدول بسیار سریع‌تر باشد. \fIxtrabackup\fP دستور \fBrsync\fP را دو بار فراخوانی می‌کند؛ یک بار پیش از \fBFLUSH TABLES WITH READ LOCK\fP و یک بار در حین آن، تا مدت زمان نگه‌داشتن قفل خواندن به حداقل برسد. در طول دومین فراخوانی \fBrsync\fP، تنها تغییرات داده‌های غیرتراکنشی (در صورت وجود) از زمان اولین فراخوانی انجام‌شده پیش از \fBFLUSH TABLES WITH READ LOCK\fP همگام‌سازی می‌شوند\&. توجه داشته باشید که \fIPercona XtraBackup\fP در صورت وجود، از \fI\%Backup locks\fP به عنوان جایگزینی سبک برای \fBFLUSH TABLES WITH READ LOCK\fP استفاده خواهد کرد\&. این ویژگی در \fIPercona Server for MySQL\fP نگارش 5.6 به بالا موجود است. \fIPercona XtraBackup\fP به طور خودکار از این سازوکار برای کپی داده‌های غیر InnoDB استفاده می‌کند تا از مسدود شدن پرس‌وجوهای DML که جداول InnoDB را تغییر می‌دهند، جلوگیری شود. .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 این گزینه نمی‌تواند همراه با گزینه \fB\-\-stream\fP استفاده شود. .UNINDENT .UNINDENT.SS بازیابی تا نقطه زمانی مشخص (Point\-In\-Time recovery) .sp بازیابی تا یک لحظه مشخص در تاریخچه پایگاه داده با استفاده از \fIxtrabackup\fP و لاگ‌های باینری سرور امکان‌پذیر است. .sp توجه داشته باشید که لاگ باینری حاوی عملیاتی است که پایگاه داده را از نقطه‌ای در گذشته تغییر داده‌اند. شما به یک datadir کامل به عنوان پایه نیاز دارید، و سپس می‌توانید مجموعه‌ای از عملیات را از لاگ باینری اعمال کنید تا داده‌ها با وضعیت آن در نقطه زمانی مورد نظرتان تطابق یابند. .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-backup \-\-target\-dir=/path/to/backup $ xtrabackup \-\-prepare \-\-target\-dir=/path/to/backup .ft P .fi .UNINDENT .UNINDENT .sp برای جزئیات بیشتر درباره این مراحل، creating_a_backup و preparing_a_backup را ببینید. .sp اکنون فرض کنید مدتی گذشته است و می‌خواهید پایگاه داده را به یک نقطه زمانی خاص در گذشته بازیابی کنید، با در نظر گرفتن این محدودیت که تصویر لحظه‌ای (snapshot) در چه نقطه‌ای گرفته شده است. .sp برای آگاهی از وضعیت لاگ باینری در سرور، پرس‌وجوهای زیر را اجرا کنید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C mysql> SHOW BINARY LOGS; +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-+ | Log_name | File_size | +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-+ | mysql\-bin.000001 | 126 | | mysql\-bin.000002 | 1306 | | mysql\-bin.000003 | 126 | | mysql\-bin.000004 | 497 | +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-+ .ft P .fi .UNINDENT .UNINDENT .sp و .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C mysql> SHOW MASTER STATUS; +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | mysql\-bin.000004 | 497 | | | +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ .ft P .fi .UNINDENT .UNINDENT .sp پرس‌وجوی نخست به شما می‌گوید چه فایل‌هایی حاوی لاگ باینری هستند و پرس‌وجوی دوم نشان می‌دهد در حال حاضر کدام فایل برای ثبت تغییرات استفاده می‌شود و موقعیت جاری درون آن کجاست. این فایل‌ها معمولاً در datadir ذخیره می‌شوند (مگر اینکه هنگام راه‌اندازی سرور، مسیر دیگری با گزینه \fB\-\-log\-bin=\fP مشخص شده باشد). .sp برای یافتن موقعیتِ تصویر لحظه‌ای گرفته‌شده، فایل \fBxtrabackup_binlog_info\fP را در دایرکتوری پشتیبان مشاهده کنید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ cat /path/to/backup/xtrabackup_binlog_info mysql\-bin.000003 57 .ft P .fi .UNINDENT .UNINDENT .sp این فایل مشخص می‌کند که در لحظه تهیه پشتیبان، کدام فایل برای لاگ باینری استفاده می‌شده و در چه موقعیتی بوده است. هنگام بازیابی پشتیبان، آن موقعیت مبنای اثر خواهد بود: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-copy\-back \-\-target\-dir=/path/to/backup .ft P .fi .UNINDENT .UNINDENT .sp از آنجا که فرایند بازیابی بر فایل‌های لاگ باینری تاثیری نمی‌گذارد (ممکن است نیاز باشد دسترسی‌های فایل را تنظیم کنید، به restoring_a_backup مراجعه کنید)، گام بعدی استخراج پرس‌وجوها از لاگ باینری با استفاده از \fBmysqlbinlog\fP با شروع از موقعیت تصویر لحظه‌ای و هدایت آن به یک فایل است: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ mysqlbinlog /path/to/datadir/mysql\-bin.000003 /path/to/datadir/mysql\-bin.000004 \e \-\-start\-position=57 > mybinlog.sql .ft P .fi .UNINDENT .UNINDENT .sp توجه داشته باشید که اگر مانند این مثال چندین فایل برای لاگ باینری دارید، باید پرس‌وجوها را مانند بالا در یک پردازش واحد استخراج کنید. .sp فایل حاوی پرس‌وجوها را بررسی کنید تا مشخص شود کدام موقعیت یا تاریخ با نقطه زمانی مورد نظرتان مطابقت دارد. پس از تعیین، آن را به سرور پایپ کنید. با فرض اینکه این نقطه \fB11\-12\-25 01:00:00\fP باشد: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ mysqlbinlog /path/to/datadir/mysql\-bin.000003 /path/to/datadir/mysql\-bin.000004 \e \-\-start\-position=57 \-\-stop\-datetime="11\-12\-25 01:00:00" | mysql \-u root \-p .ft P .fi .UNINDENT .UNINDENT .sp و پایگاه داده تا همان نقطه زمانی به جلو اعمال خواهد شد (rolled forward)..SS پشتیبان‌گیری در محیط‌های همانندسازی (Replication) .sp گزینه‌های ویژه‌ای برای پشتیبان‌گیری از یک رپلیکای همانندسازی وجود دارد. .SS گزینهٔ \fB\-\-slave\-info\fP .sp این گزینه هنگام پشتیبان‌گیری از یک کارگزار رپلیکا کاربرد دارد. این گزینه موقعیت binary log و نام کارگزار مبدأ (source) را چاپ می‌کند. همچنین این اطلاعات را در قالب یک عبارت \fBCHANGE MASTER\fP در فایل \fBxtrabackup_slave_info\fP می‌نویسد. .sp این گزینه برای راه‌اندازی یک رپلیکای جدید برای این مبدأ سودمند است. می‌توانید کارگزار رپلیکا را با این نسخهٔ پشتیبان آغاز کرده و دستور ذخیره‌شده در فایل \fBxtrabackup_slave_info\fP را اجرا کنید. جزئیات بیشتر دربارهٔ این روند در replication_howto\& یافت می‌شود. .SS گزینهٔ \fB\-\-safe\-slave\-backup\fP .sp به منظور اطمینان از یک وضعیت همانندسازی سازگار، این گزینه ریسهٔ (thread) SQL همانندسازی را متوقف کرده و پیش از آغاز پشتیبان‌گیری منتظر می‌ماند تا مقدار \fBSlave_open_temp_tables\fP در دستور \fBSHOW STATUS\fP صفر شود. اگر هیچ جدول موقت بازی وجود نداشته باشد، پشتیبان‌گیری انجام می‌شود؛ در غیر این صورت ریسهٔ SQL راه‌اندازی و دوباره متوقف خواهد شد تا زمانی که هیچ جدول موقت بازی باقی نماند. چنانچه مقدار \fBSlave_open_temp_tables\fP پس از گذشت مدت‌زمان \fB\-\-safe\-slave\-backup\-timeout\fP ثانیه (پیش‌فرض ۳۰۰ ثانیه) صفر نشود، پشتیبان‌گیری با شکست مواجه خواهد شد. با پایان یافتن پشتیبان‌گیری، ریسهٔ SQL همانندسازی مجدداً راه‌اندازی می‌شود. .sp استفاده از این گزینه هنگام تهیهٔ نسخهٔ پشتیبان از یک کارگزار رپلیکا همواره توصیه می‌شود. .sp \fBهشدار:\fP .INDENT 0.0 .INDENT 3.5 پیش از استفاده از یک رپلیکا به عنوان مبدأ برای پشتیبان‌گیری، اطمینان حاصل کنید که رپلیکای شما یک رونوشت دقیق از مبدأ است. ابزاری مناسب برای اعتبارسنجی یک رپلیکا، \fI\%pt\-table\-checksum\fP\& است. .UNINDENT .UNINDENT .SS ذخیرهٔ تاریخچهٔ پشتیبان‌گیری روی کارگزار .sp \fIPercona XtraBackup\fP از ذخیرهٔ تاریخچهٔ نسخه‌های پشتیبان بر روی کارگزار پشتیبانی می‌کند. این قابلیت در \fIPercona XtraBackup\fP 2.2 پیاده‌سازی شده است. ذخیرهٔ تاریخچهٔ پشتیبان‌گیری روی کارگزار برای ارائهٔ اطلاعات بیشتر به کاربران دربارهٔ پشتیبان‌هایی که در حال تهیه هستند پیاده‌سازی شده است. اطلاعات تاریخچهٔ پشتیبان‌گیری در جدول \fI\%PERCONA_SCHEMA.XTRABACKUP_HISTORY\fP ذخیره خواهد شد. .sp برای استفاده از این قابلیت، گزینه‌های زیر در دسترس هستند: .INDENT 0.0 .IP \(bu 2 \fB\-\-history\fP = : این گزینه قابلیت تاریخچه را فعال کرده و به کاربر امکان می‌دهد نامی برای سری پشتیبان مشخص کند که در رکورد تاریخچه ثبت خواهد شد. .IP \(bu 2 \fB\-\-incremental\-history\-name\fP = : این گزینه امکان تهیهٔ پشتیبان افزایشی بر اساس نام یک سری مشخص در تاریخچه را فراهم می‌سازد. \fIxtrabackup\fP جدول تاریخچه را به دنبال جدیدترین نسخهٔ پشتیبان (با بیشترین مقدار \fBto_lsn\fP) در آن سری جستجو کرده و از مقدار \fBto_lsn\fP به عنوان LSN آغازین استفاده می‌کند. این گزینه با گزینه‌های \fB\-\-incremental\-history\-uuid\fP، \fB\-\-incremental\-basedir\fP و \fB\-\-incremental\-lsn\fP مانعة‌الجمع است. اگر LSN معتبری یافت نشود (سری با این نام وجود نداشته باشد)، \fIxtrabackup\fP با خطا مواجه خواهد شد. .IP \(bu 2 \fB\-\-incremental\-history\-uuid\fP = : امکان تهیهٔ پشتیبان افزایشی را بر اساس رکورد مشخصی از تاریخچه که با UUID شناسایی می‌شود فراهم می‌آورد. \fIxtrabackup\fP جدول تاریخچه را به دنبال رکوردی مطابق با این UUID جستجو کرده و از مقدار \fBto_lsn\fP به عنوان LSN آغازین استفاده می‌کند. این گزینه با گزینه‌های \fB\-\-incremental\-basedir\fP، \fB\-\-incremental\-lsn\fP و \fB\-\-incremental\-history\-name\fP مانعة‌الجمع است. اگر هیچ LSN معتبری یافت نشود (رکوردی با آن UUID وجود نداشته باشد یا مقدار \fBto_lsn\fP موجود نباشد)، \fIxtrabackup\fP با یک خطا خاتمه می‌یابد. .UNINDENT .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 پشتیبانی که در حال حاضر در دست اقدام است، در جدول xtrabackup_history درون مجموعه پشتیبان حاصل وجود \fBنخواهد داشت\fP، زیرا رکورد مربوطه تا پس از تکمیل فرآیند پشتیبان‌گیری به آن جدول افزوده نخواهد شد. .UNINDENT .UNINDENT .sp اگر می‌خواهید در صورت بروز رویدادی فاجعه‌بار به تاریخچهٔ پشتیبان خارج از مجموعه پشتیبان خود دسترسی داشته باشید، باید پس از اتمام کار \fIxtrabackup\fP، یک \fBmysqldump\fP، پشتیبان جزئی یا دستور \fBSELECT\fP * روی جدول تاریخچه اجرا کرده و نتایج را همراه با مجموعه پشتیبان خود ذخیره نمایید. .sp برای مجوزهای لازم، pxb.privilege\& را ببینید. جدول PERCONA_SCHEMA.XTRABACKUP_HISTORY .sp این جدول حاوی اطلاعات مربوط به نسخه‌های پشتیبان پیشین کارگزار است. اطلاعات پشتیبان‌ها تنها در صورتی در این جدول ثبت خواهد شد که پشتیبان‌گیری با گزینهٔ \fB\-\-history\fP انجام شده باشد. .TS center; |l|l|. _ T{ نام ستون T} T{ توضیحات T} _ T{ uuid T} T{ شناسهٔ یکتای نسخهٔ پشتیبان T} _ T{ name T} T{ نام ارائه‌شده توسط کاربر برای سری پشتیبان. ممکن است چندین مدخل با نام یکسان برای شناسایی پشتیبان‌های مرتبط در یک سری وجود داشته باشد. T} _ T{ tool_name T} T{ نام ابزار استفاده‌شده برای گرفتن نسخهٔ پشتیبان T} _ T{ tool_command T} T{ خط فرمان دقیق داده‌شده به ابزار به طوری که \-\-password و \-\-encryption_key در آن مبهم‌سازی شده‌اند T} _ T{ tool_version T} T{ نسخهٔ ابزار استفاده‌شده برای گرفتن نسخهٔ پشتیبان T} _ T{ ibbackup_version T} T{ نسخهٔ باینری xtrabackup استفاده‌شده برای گرفتن نسخهٔ پشتیبان T} _ T{ server_version T} T{ نسخهٔ کارگزاری که نسخهٔ پشتیبان روی آن گرفته شده است T} _ T{ start_time T} T{ زمان در آغاز پشتیبان‌گیری T} _ T{ end_time T} T{ زمان در پایان پشتیبان‌گیری T} _ T{ lock_time T} T{ مدت‌زمان (به ثانیه) صرف‌شده برای فراخوانی و نگه‌داشتن قفل‌ها برای \fBFLUSH TABLES WITH READ LOCK\fP T} _ T{ binlog_pos T} T{ فایل binlog و موقعیت آن در پایان \fBFLUSH TABLES WITH READ LOCK\fP T} _ T{ innodb_from_lsn T} T{ مقدار LSN در آغاز پشتیبان‌گیری که می‌تواند برای تعیین پشتیبان‌های قبلی استفاده شود T} _ T{ innodb_to_lsn T} T{ مقدار LSN در پایان پشتیبان‌گیری که می‌تواند به عنوان LSN آغازین برای پشتیبان افزایشی بعدی استفاده شود T} _ T{ partial T} T{ آیا این یک پشتیبان جزئی است؛ اگر \fBN\fP باشد به این معناست که یک پشتیبان کامل است T} _ T{ incremental T} T{ آیا این یک پشتیبان افزایشی است T} _ T{ format T} T{ توضیح قالب نتیجه (\fBxbstream\fP) T} _ T{ compact T} T{ آیا این یک پشتیبان فشرده (compact) است T} _ T{ compressed T} T{ آیا این یک پشتیبان فشرده‌شده (compressed) است T} _ T{ encrypted T} T{ آیا این یک پشتیبان رمزنگاری‌شده است T} _ .TE محدودیت‌ها .INDENT 0.0.IP \(bu 2 گزینهٔ \fB\-\-history\fP برای مؤثر بودن باید تنها در خط فرمان مشخص شود و نه درون یک فایل پیکربندی. .IP \(bu 2 گزینه‌های \fB\-\-incremental\-history\-name\fP و \fB\-\-incremental\-history\-uuid\fP برای مؤثر بودن باید تنها در خط فرمان مشخص شوند و نه درون یک فایل پیکربندی. .UNINDENT .SH "پیاده‌سازی (IMPLEMENTATION)" .SS جزئیات پیاده‌سازی .sp این صفحه شامل نکاتی دربارهٔ جنبه‌های داخلی گوناگون عملکرد ابزار \fIxtrabackup\fP است. .SS مجوزهای فایل .sp ابزار \fIxtrabackup\fP فایل‌های دادهٔ مبدأ را در حالت خواندن-نوشتن (read\-write) باز می‌کند، هرچند که فایل‌ها را تغییر نمی‌دهد. این بدان معناست که باید \fIxtrabackup\fP را با کاربری اجرا کنید که مجوز نوشتن روی فایل‌های داده را دارد. دلیل باز کردن فایل‌ها در حالت خواندن-نوشتن این است که \fIxtrabackup\fP از کتابخانه‌های تعبیه‌شدهٔ \fIInnoDB\fP برای باز کردن و خواندن فایل‌ها استفاده می‌کند، و \fIInnoDB\fP آن‌ها را در حالت خواندن-نوشتن باز می‌کند زیرا معمولاً فرض را بر این می‌گذارد که قرار است در آن‌ها بنویسد. .SS تنظیم بافرهای سیستم‌عامل .sp از آنجا که \fIxtrabackup\fP حجم زیادی از داده‌ها را از سامانهٔ فایل می‌خواند، در صورت امکان از \fBposix_fadvise()\fP استفاده می‌کند تا به سیستم‌عامل دستور دهد بلوک‌هایی را که از دیسک می‌خواند در حافظهٔ موقت (کَش) ذخیره نکند. بدون این راهنمایی، سیستم‌عامل ترجیح می‌دهد بلوک‌ها را کَش کند، با این فرض که احتمالاً \fBxtrabackup\fP دوباره به آن‌ها نیاز خواهد داشت، در حالی که چنین نیست. کَش کردن فایل‌هایی با این حجم زیاد می‌تواند بر حافظهٔ مجازی سیستم‌عامل فشار وارد کند و باعث سوآپ (swap out) شدن سایر فرایندها، مانند کارساز پایگاه داده، شود. ابزار \fBxtrabackup\fP با ارائهٔ این راهنمایی روی هر دو فایل مبدأ و مقصد، از این مسئله جلوگیری می‌کند: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C posix_fadvise(file, 0, 0, POSIX_FADV_DONTNEED) .ft P .fi .UNINDENT .UNINDENT .sp علاوه بر این، xtrabackup از سیستم‌عامل می‌خواهد تا بهینه‌سازی‌های پیش‌خوانی (read\-ahead) تهاجمی‌تری را روی فایل‌های مبدأ انجام دهد: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C posix_fadvise(file, 0, 0, POSIX_FADV_SEQUENTIAL) .ft P .fi .UNINDENT .UNINDENT .SS رونویسی فایل‌های داده .sp هنگام رونویسی فایل‌های داده به پوشهٔ مقصد، \fIxtrabackup\fP در هر نوبت ۱ مگابایت داده را می‌خواند و می‌نویسد. این مقدار قابل پیکربندی نیست. هنگام رونویسی فایل گزارش (log)، ابزار \fIxtrabackup\fP در هر نوبت ۵۱۲ بایت را می‌خواند و می‌نویسد. این مقدار نیز قابل پیکربندی نیست و با رفتار InnoDB مطابقت دارد (یک راهکار جایگزین در \fIPercona Server for MySQL\fP وجود دارد زیرا گزینه‌ای برای تنظیم \fBinnodb_log_block_size\fP در \fIXtraDB\fP دارد، و در آن صورت \fIPercona XtraBackup\fP با این تنظیم مطابقت خواهد داشت). .sp پس از خواندن از فایل‌ها، \fBxtrabackup\fP روی بافر ۱ مگابایتی، صفحه به صفحه پیمایش می‌کند و خرابی صفحه را در هر صفحه با تابع \fBbuf_page_is_corrupted()\fP مربوط به InnoDB بررسی می‌کند. اگر صفحه خراب باشد، آن را دوباره می‌خواند و برای هر صفحه تا ۱۰ بار تلاش مجدد می‌کند. این بررسی را برای بافر doublewrite نادیده می‌گیرد. .SS کدهای خروج \fIxtrabackup\fP .sp باینری \fIxtrabackup\fP پس از پشتیبان‌گیری در صورتی که خطایی رخ نداده باشد، با مقدار سنتی موفقیت 0 خارج می‌شود. اگر در حین پشتیبان‌گیری خطایی رخ دهد، مقدار خروج 1 خواهد بود. .sp در موارد خاصی، مقدار خروج ممکن است چیزی به جز 0 یا 1 باشد که ناشی از کد مدیریت گزینه‌های خط فرمان گنجانده‌شده از کتابخانه‌های \fIMySQL\fP است. به عنوان مثال، یک گزینهٔ ناشناخته در خط فرمان باعث ایجاد کد خروج 255 خواهد شد. .SH "مراجع (REFERENCES)" .SS مرجع گزینه‌های \fBxtrabackup\fP .sp این صفحه تمام گزینه‌های خط فرمان باینری \fBxtrabackup\fP را مستند می‌کند. .SS حالت‌های عملکرد .sp شما \fIxtrabackup\fP را در یکی از حالت‌های زیر فراخوانی می‌کنید: .INDENT 0.0 .IP \(bu 2 حالت \fI\%\-\-backup\fP برای تهیهٔ نسخهٔ پشتیبان در یک پوشهٔ مقصد .IP \(bu 2 حالت \fI\%\-\-prepare\fP برای بازیابی داده‌ها از یک نسخهٔ پشتیبان (ایجادشده در حالت \fI\%\-\-backup\fP) .IP \(bu 2 حالت \fI\%\-\-copy\-back\fP برای رونویسی داده‌ها از نسخهٔ پشتیبان به مکانی که داده‌های اصلی را دربرداشت؛ برای انتقال داده‌ها به جای رونویسی، از حالت جایگزین \fI\%\-\-move\-back\fP استفاده کنید. .IP \(bu 2 حالت \fI\%\-\-stats\fP برای پیمایش فایل‌های دادهٔ مشخص‌شده و چاپ آمار شاخص‌ها. .UNINDENT .sp هنگامی که قصد دارید \fIxtrabackup\fP را در هر یک از این حالت‌ها اجرا کنید، از نحو دستوری زیر استفاده کنید: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup [\-\-defaults\-file=#] \-\-backup|\-\-prepare|\-\-copy\-back|\-\-stats [OPTIONS] .ft P .fi .UNINDENT .UNINDENT .sp برای مثال، حالت \fI\%\-\-prepare\fP به صورت زیر اعمال می‌شود: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-prepare \-\-target\-dir=/data/backup/mysql/ .ft P .fi .UNINDENT .UNINDENT .sp برای همهٔ حالت‌ها، گزینه‌های پیش‌فرض از گروه‌های پیکربندی \fBxtrabackup\fP و \fBmysqld\fP از فایل‌های زیر و به ترتیب داده‌شده خوانده می‌شوند: .INDENT 0.0 .IP 1. 3 \fB/etc/my.cnf\fP .IP 2. 3 \fB/etc/mysql/my.cnf\fP .IP 3. 3 \fB/usr/etc/my.cnf\fP .IP 4. 3 \fB~/.my.cnf\fP\&. .UNINDENT .sp به عنوان نخستین پارامتر برای \fIxtrabackup\fP (به جای \fI\%\-\-defaults\-file\fP)، می‌توانید یکی از موارد زیر را ارائه دهید: .INDENT 0.0 .IP \(bu 2 \fI\%\-\-print\-defaults\fP تا \fIxtrabackup\fP فهرست آرگومان‌ها را چاپ کرده و خارج شود. .IP \(bu 2 \fI\%\-\-no\-defaults\fP برای جلوگیری از خواندن گزینه‌ها از هر فایلی به جز فایل لاگین. .IP \(bu 2 \fI\%\-\-defaults\-file\fP برای خواندن گزینه‌های پیش‌فرض از فایل داده‌شده. .IP \(bu 2 \fI\%\-\-defaults\-extra\-file\fP برای خواندن فایل اضافی مشخص‌شده پس از خوانده شدن فایل‌های سراسری. .IP \(bu 2 \fI\%\-\-defaults\-group\-suffix\fP برای خواندن گروه‌های پیکربندی با پسوند داده‌شده. نام گروه مؤثر از الحاق گروه‌های پیکربندی پیش‌فرض (\fBxtrabackup\fP و \fBmysqld\fP) به پسوند داده‌شده ساخته می‌شود. .IP \(bu 2 \fI\%\-\-login\-path\fP برای خواندن مسیر داده‌شده از فایل لاگین. .UNINDENT گزینه‌های InnoDB .sp گروه بزرگی از گزینه‌های InnoDB وجود دارند که معمولاً از فایل پیکربندی \fBmy.cnf\fP خوانده می‌شوند تا \fIxtrabackup\fP موتور تعبیه‌شدهٔ InnoDB خود را با همان پیکربندی کارساز فعلی شما راه‌اندازی کند. معمولاً نیازی نیست آن‌ها را به صراحت مشخص کنید. این گزینه‌ها در InnoDB و XtraDB رفتار یکسانی دارند. برای اطلاعات بیشتر \fI\%\-\-innodb\-miscellaneous\fP را ببینید..SS "گزینه‌ها (Options)" .INDENT 0.0 .TP .B \-\-apply\-log\-only این گزینه باعث می‌شود که هنگام آماده‌سازی پشتیبان، فقط مرحله redo انجام شود. این امر برای پشتیبان‌گیری‌های افزایشی بسیار مهم است. .UNINDENT .INDENT 0.0 .TP .B \-\-backup تهیه یک نسخه پشتیبان و قرار دادن آن در \fI\%\-\-target\-dir\fP\&. بخش ایجاد پشتیبان را ببینید. .UNINDENT .INDENT 0.0 .TP .B \-\-backup\-lock\-timeout مدت زمان مهلت انتظار (timeout) به ثانیه برای تلاش‌های دریافت قفل‌های فراداده (metadata locks). .UNINDENT .INDENT 0.0 .TP .B \-\-backup\-lock\-retry\-count تعداد دفعات تلاش برای دریافت قفل‌های فراداده (metadata locks). .UNINDENT .INDENT 0.0 .TP .B \-\-backup\-locks این گزینه کنترل می‌کند که آیا در مرحله پشتیبان‌گیری به جای \fBFLUSH TABLES WITH READ LOCK\fP باید از قفل‌های پشتیبان‌گیری استفاده شود یا خیر. این گزینه در صورتی که قفل‌های پشتیبان‌گیری توسط سرور پشتیبانی نشوند، هیچ تاثیری ندارد. این گزینه به طور پیش‌فرض فعال است؛ برای غیرفعال کردن از \fI\%\-\-no\-backup\-locks\fP استفاده کنید. .UNINDENT .INDENT 0.0 .TP .B \-\-check\-privileges این گزینه بررسی می‌کند که آیا \fIPercona XtraBackup\fP تمام دسترسی‌های لازم را دارد یا خیر. اگر دسترسی مفقود برای عملیات فعلی لازم باشد، برنامه خاتمه یافته و یک پیام خطا چاپ می‌کند. اگر دسترسی مفقود برای عملیات فعلی لازم نباشد، اما ممکن است برای برخی عملیات دیگر XtraBackup ضروری باشد، فرآیند متوقف نمی‌شود و یک هشدار چاپ می‌شود. .INDENT 7.0 .INDENT 3.5 .sp .nf .ft C xtrabackup: Error: missing required privilege LOCK TABLES on *.* xtrabackup: Warning: missing required privilege REPLICATION CLIENT on *.* .ft P .fi .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-close\-files فایل‌ها را باز نگه ندارد. زمانی که \fIxtrabackup\fP یک tablespace را باز می‌کند، معمولاً دستگیره فایل (file handle) آن را باز نگه می‌دارد تا عملیات DDL را به درستی مدیریت کند. با این حال، اگر تعداد tablespaceها بسیار زیاد باشد و در هیچ محدودیتی نگنجد، این گزینه وجود دارد که دستگیره‌های فایل پس از اتمام دسترسی بسته شوند. \fIPercona XtraBackup\fP ممکن است با فعال بودن این گزینه نسخه‌های پشتیبان ناسازگار (inconsistent) تولید کند. با مسئولیت خودتان استفاده کنید. .UNINDENT .INDENT 0.0 .TP .B \-\-compress این گزینه به \fIxtrabackup\fP می‌گوید تا تمام داده‌های خروجی، از جمله فایل گزارش تراکنش (transaction log) و فایل‌های فراداده را با استفاده از الگوریتم فشرده‌سازی \fBquicklz\fP یا \fBlz4\fP فشرده کند. به طور پیش‌فرض \fBquicklz\fP انتخاب شده است. .sp هنگام استفاده از \fB\-\-compress=quicklz\fP یا \fB\-\-compress\fP، فایل‌های حاصل دارای قالب آرشیو qpress هستند؛ به این معنا که هر فایل \fB*.qp\fP تولید شده توسط \fIxtrabackup\fP اساساً یک آرشیو تک‌فایلی qpress است و می‌تواند توسط بایگان فایل \fI\%qpress\fP استخراج و از حالت فشرده خارج شود. .sp گزینه \fB\-\-compress=lz4\fP فایل‌های \fB*.lz4\fP تولید می‌کند. می‌توانید محتویات این فایل‌ها را با استفاده از برنامه‌ای مانند \fBlz4\fP استخراج کنید. .sp \fBهمچنین ببینید:\fP .INDENT 7.0 .INDENT 3.5 .INDENT 0.0 .TP .B QuickLZ \fI\%http://www.quicklz.com\fP .TP .B LZ4 \fI\%https://lz4.github.io/lz4\fP .UNINDENT .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-compress\-chunk\-size=# اندازه بافر(های) کاری برای ریسه‌های فشرده‌سازی بر حسب بایت. مقدار پیش‌فرض 64K است. .UNINDENT .INDENT 0.0 .TP .B \-\-compress\-threads=# این گزینه تعداد ریسه‌های کاری (worker threads) مورد استفاده توسط \fIxtrabackup\fP را برای فشرده‌سازی موازی داده‌ها مشخص می‌کند. مقدار پیش‌فرض این گزینه \fB1\fP است. فشرده‌سازی موازی (\fI\%\-\-compress\-threads\fP) می‌تواند همراه با کپی موازی فایل‌ها (\fI\%\-\-parallel\fP) استفاده شود. برای مثال، \fB\-\-parallel=4 \-\-compress \-\-compress\-threads=2\fP تعداد ۴ ریسه I/O ایجاد می‌کند که داده‌ها را خوانده و به ۲ ریسه فشرده‌سازی هدایت (pipe) می‌کنند. .UNINDENT .INDENT 0.0 .TP .B \-\-copy\-back کپی تمام فایل‌های یک نسخه پشتیبان قبلی از دایرکتوری پشتیبان به مکان‌های اصلی آن‌ها. این گزینه فایل‌های موجود را بازنویسی نخواهد کرد مگر اینکه گزینه \fI\%\-\-force\-non\-empty\-directories\fP مشخص شده باشد. .UNINDENT .INDENT 0.0 .TP .B \-\-core\-file ایجاد فایل تخلیه حافظه (core dump) در صورت دریافت سیگنال‌های مهلک (fatal signals). .UNINDENT .INDENT 0.0 .TP .B \-\-databases=# این گزینه فهرستی از پایگاه‌های داده و جدول‌هایی را که باید از آن‌ها پشتیبان‌گیری شود مشخص می‌کند. این گزینه فهرستی به صورت \fB"databasename1[.table_name1] databasename2[.table_name2] . . ."\fP می‌پذیرد. .UNINDENT .INDENT 0.0 .TP .B \-\-databases\-exclude=name مستثنی کردن پایگاه‌های داده بر اساس نام. عملکرد آن همانند \fI\%\-\-databases\fP است، اما نام‌های منطبق از پشتیبان‌گیری مستثنی می‌شوند. توجه داشته باشید که این گزینه نسبت به \fI\%\-\-databases\fP اولویت بالاتری دارد. .UNINDENT .INDENT 0.0 .TP .B \-\-databases\-file=# این گزینه مسیر فایلی را مشخص می‌کند که حاوی فهرست پایگاه‌های داده و جدول‌های مورد نظر برای پشتیبان‌گیری است. این فایل می‌تواند شامل عناصر فهرست به صورت \fBdatabasename1[.table_name1]\fP، در هر سطر یک عنصر باشد. .UNINDENT .INDENT 0.0 .TP .B \-\-datadir=DIRECTORY دایرکتوری مبدا برای پشتیبان‌گیری. این مقدار باید همان datadir سرور \fIMySQL\fP شما باشد، بنابراین در صورت وجود \fBmy.cnf\fP باید از آن خوانده شود؛ در غیر این صورت باید آن را در خط فرمان مشخص کنید. .sp هنگامی که با گزینه \fI\%\-\-copy\-back\fP یا \fI\%\-\-move\-back\fP ترکیب شود، \fI\%\-\-datadir\fP به دایرکتوری مقصد اشاره دارد. .sp پس از اتصال به سرور، جهت انجام پشتیبان‌گیری به دسترسی‌های \fBREAD\fP و \fBEXECUTE\fP در سطح سیستم‌فایل در datadir سرور نیاز خواهید داشت. .UNINDENT .INDENT 0.0 .TP .B \-\-debug\-sleep\-before\-unlock=# این یک گزینه مخصوص اشکال‌زدایی است که توسط مجموعه آزمون \fIxtrabackup\fP استفاده می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-debug\-sync=name نقطه همگام‌سازی اشکال‌زدایی (debug sync point). این گزینه فقط توسط مجموعه آزمون \fIxtrabackup\fP استفاده می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-decompress تمام فایل‌های دارای پسوند \fB\&.qp\fP را در یک پشتیبان که قبلاً با گزینه \fI\%\-\-compress\fP تهیه شده است، از حالت فشرده خارج می‌کند. گزینه \fI\%\-\-parallel\fP اجازه می‌دهد چندین فایل به طور هم‌زمان فشرده‌زدایی شوند. برای خارج کردن از حالت فشرده، ابزار qpress حتماً باید نصب شده و در مسیر اجرایی (PATH) در دسترس باشد. \fIPercona XtraBackup\fP به طور خودکار فایل‌های فشرده را حذف نمی‌کند. برای پاک‌سازی دایرکتوری پشتیبان، کاربران باید از گزینه \fI\%\-\-remove\-original\fP استفاده کنند. .sp گزینه \fI\%\-\-decompress\fP ممکن است با \fIxbstream\fP برای خارج کردن تک‌تک فایل‌های qpress از حالت فشرده استفاده شود. .sp اگر از الگوریتم فشرده‌سازی \fBlz4\fP برای فشرده‌سازی فایل‌ها استفاده کرده‌اید (\fB\-\-compress=lz4\fP)، پارامتر \fI\%\-\-decompress\fP را متناسب با آن تغییر دهید: \fB\-\-decompress=lz4\fP\&. .UNINDENT .INDENT 0.0 .TP .B \-\-decompress\-threads=# وادار کردن \fIxbstream\fP به استفاده از تعداد مشخص‌شده‌ای از ریسه‌ها برای خارج کردن از حالت فشرده. .UNINDENT .INDENT 0.0 .TP .B \-\-decrypt=ENCRYPTION\-ALGORITHM رمزگشایی تمام فایل‌های دارای پسوند \fB\&.xbcrypt\fP در یک پشتیبان که قبلاً با گزینه \fI\%\-\-encrypt\fP تهیه شده است. گزینه \fI\%\-\-parallel\fP اجازه می‌دهد چندین فایل به طور هم‌زمان رمزگشایی شوند. \fIPercona XtraBackup\fP فایل‌های رمزگذاری‌شده را به طور خودکار حذف نمی‌کند. برای پاک‌سازی دایرکتوری پشتیبان، کاربران باید از گزینه \fI\%\-\-remove\-original\fP استفاده کنند. .UNINDENT .INDENT 0.0.TP .B \-\-defaults\-extra\-file=[MY.CNF] این فایل پس از خواندن فایل‌های سراسری خوانده می‌شود. باید به عنوان نخستین گزینه در خط فرمان مشخص شود. .UNINDENT .INDENT 0.0 .TP .B \-\-defaults\-file=[MY.CNF] تنها گزینه‌های پیش‌فرض را از فایل مشخص‌شده بخواند. باید به عنوان نخستین گزینه در خط فرمان مشخص شود. باید یک فایل واقعی باشد؛ نمی‌تواند یک پیوند نمادین باشد. .UNINDENT .INDENT 0.0 .TP .B \-\-defaults\-group=GROUP\-NAME این گزینه گروهی را که باید از فایل پیکربندی خوانده شود تعیین می‌کند. در صورت استفاده از گزینه \fI\%\-\-defaults\-group\fP، این مورد توسط \fIxtrabackup\fP استفاده می‌شود. برای استقرارهای \fBmysqld_multi\fP مورد نیاز است. .UNINDENT .INDENT 0.0 .TP .B \-\-defaults\-group\-suffix=# گروه‌ها را همچنین با ترکیب concat(group, suffix) می‌خواند. .UNINDENT .INDENT 0.0 .TP .B \-\-dump\-innodb\-buffer\-pool این گزینه کنترل می‌کند که آیا تخلیه (dump) جدیدی از محتویات buffer pool انجام شود یا خیر. .sp با تعیین \fB\-\-dump\-innodb\-buffer\-pool\fP، ابزار \fIxtrabackup\fP در آغاز فرایند پشتیبان‌گیری درخواستی را به سرور ارسال می‌کند تا تخلیه buffer pool را آغاز کند (کامل شدن آن مدتی زمان می‌برد و در پس‌زمینه انجام می‌شود)، مشروط بر اینکه متغیر وضعیت \fBinnodb_buffer_pool_dump_status\fP گزارش دهد که تخلیه قبلی کامل شده است. .INDENT 7.0 .INDENT 3.5 .sp .nf .ft C $ xtrabackup \-\-backup \-\-dump\-innodb\-buffer\-pool \-\-target\-dir=/home/user/backup .ft P .fi .UNINDENT .UNINDENT .sp به‌طور پیش‌فرض، این گزینه روی \fIOFF\fP تنظیم شده است\&. .sp اگر \fBinnodb_buffer_pool_dump_status\fP گزارش دهد که عملیات تخلیه buffer pool در حال اجرا است، \fIxtrabackup\fP با استفاده از مقدار تعیین‌شده در \fI\%\-\-dump\-innodb\-buffer\-pool\-timeout\fP منتظر تکمیل آن می‌ماند. .sp فایل \fBib_buffer_pool\fP شناسه‌های tablespace ID و page ID را جهت بارگذاری و گرم کردن سریع‌تر buffer pool ذخیره می‌کند. .sp \fBهمچنین ببینید:\fP .INDENT 7.0 .INDENT 3.5 .INDENT 0.0 .TP .B مستندات \fIMySQL\fP: ذخیره و بازیابی وضعیت Buffer Pool \fI\%https://dev.mysql.com/doc/refman/5.7/en/innodb\-preload\-buffer\-pool.html\fP .UNINDENT .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-dump\-innodb\-buffer\-pool\-timeout این گزینه تعداد ثانیه‌هایی را مشخص می‌کند که \fIxtrabackup\fP باید مقدار \fBinnodb_buffer_pool_dump_status\fP را پایش کند تا مشخص شود آیا تخلیه buffer pool کامل شده است یا خیر. .sp این گزینه در ترکیب با \fI\%\-\-dump\-innodb\-buffer\-pool\fP استفاده می‌شود\&. به‌طور پیش‌فرض، روی \fI10\fP ثانیه تنظیم شده است. .UNINDENT .INDENT 0.0 .TP .B \-\-dump\-innodb\-buffer\-pool\-pct این گزینه درصد صفحاتی از buffer pool را که اخیراً استفاده شده‌اند، برای تخلیه مشخص می‌کند. .sp این گزینه در صورتی مؤثر است که گزینه \fI\%\-\-dump\-innodb\-buffer\-pool\fP روی \fION\fP تنظیم شده باشد\&. اگر این گزینه دارای مقدار باشد، \fIxtrabackup\fP متغیر سیستمی \fBinnodb_buffer_pool_dump_pct\fP در \fIMySQL\fP را تنظیم می‌کند\&. به محض کامل شدن تخلیه buffer pool یا متوقف شدن آن (ببینید: \fI\%\-\-dump\-innodb\-buffer\-pool\-timeout\fP)، مقدار متغیر سیستمی \fIMySQL\fP به حالت اولیه بازیابی می‌شود. .sp \fBهمچنین ببینید:\fP .INDENT 7.0 .INDENT 3.5 .INDENT 0.0 .TP .B تغییر مهلت زمانی (timeout) برای تخلیه buffer pool \fI\%\-\-dump\-innodb\-buffer\-pool\-timeout\fP .TP .B مستندات \fIMySQL\fP: متغیر سیستمی innodb_buffer_pool_dump_pct \fI\%https://dev.mysql.com/doc/refman/8.0/en/innodb\-parameters.html#sysvar_innodb_buffer_pool_dump_pct\fP .UNINDENT .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-encrypt=ENCRYPTION_ALGORITHM این گزینه به xtrabackup دستور می‌دهد تا نسخه‌های پشتیبان فایل‌های داده InnoDB را با استفاده از الگوریتم مشخص‌شده در ENCRYPTION_ALGORITHM رمزنگاری کند. الگوریتم‌های پشتیبانی‌شده کنونی عبارتند از: \fBAES128\fP، \fBAES192\fP و \fBAES256\fP .UNINDENT .INDENT 0.0 .TP .B \-\-encrypt\-key=ENCRYPTION_KEY یک کلید رمزنگاری با طول مناسب برای استفاده. استفاده از این گزینه در شرایطی که دسترسی کنترل‌نشده به سیستم وجود دارد توصیه نمی‌شود، زیرا خط فرمان و در نتیجه کلید رمزنگاری ممکن است به عنوان بخشی از اطلاعات فرایند قابل مشاهده باشد. .UNINDENT .INDENT 0.0 .TP .B \-\-encrypt\-key\-file=ENCRYPTION_KEY_FILE نام فایلی که کلید خام با طول مناسب می‌تواند از آن خوانده شود. این فایل باید یک فایل باینری (یا متنی) ساده باشد که دقیقاً حاوی کلید مورد استفاده است. .sp این مقدار مستقیماً به فرایند فرزند xtrabackup منتقل می‌شود. برای جزئیات بیشتر به مستندات \fBxtrabackup\fP مراجعه کنید. .UNINDENT .INDENT 0.0 .TP .B \-\-encrypt\-threads=# این گزینه تعداد رشته‌های کاری (worker threads) را که برای رمزنگاری/رمزگشایی موازی استفاده خواهند شد مشخص می‌کند. برای جزئیات بیشتر به مستندات \fBxtrabackup\fP مراجعه کنید. .UNINDENT .INDENT 0.0 .TP .B \-\-encrypt\-chunk\-size=# این گزینه اندازه بافر کاری داخلی را برای هر رشته رمزنگاری، بر حسب بایت مشخص می‌کند. این مقدار مستقیماً به فرایند فرزند xtrabackup منتقل می‌شود. برای جزئیات بیشتر به مستندات \fBxtrabackup\fP مراجعه کنید. .UNINDENT .INDENT 0.0 .TP .B \-\-export ایجاد فایل‌های لازم برای برون‌بری جدول‌ها. به بخش «بازیابی جدول‌های منفرد» مراجعه کنید\&. .UNINDENT .INDENT 0.0 .TP .B \-\-extra\-lsndir=DIRECTORY (برای \-\-backup): یک نسخه اضافی از فایل‌های \fBxtrabackup_checkpoints\fP و \fBxtrabackup_info\fP را در این دایرکتوری ذخیره می‌کند. .UNINDENT .INDENT 0.0 .TP .B \-\-force\-non\-empty\-directories در صورت تعیین، گزینه‌های \fI\%\-\-copy\-back\fP و \fI\%\-\-move\-back\fP فایل‌ها را به دایرکتوری‌های غیرخالی انتقال می‌دهند. هیچ فایل موجودی رونویسی نخواهد شد. اگر فایل‌هایی که قرار است از دایرکتوری پشتیبان کپی/منتقل شوند از پیش در دایرکتوری مقصد وجود داشته باشند، عملیات همچنان با خطا مواجه خواهد شد. .UNINDENT .INDENT 0.0 .TP .B \-\-ftwrl\-wait\-timeout=SECONDS این گزینه مدت زمانی را بر حسب ثانیه مشخص می‌کند که xtrabackup باید پیش از اجرای \fBFLUSH TABLES WITH READ LOCK\fP، منتظر پرس‌وجوهایی بماند که ممکن است مانع اجرای آن شوند. اگر پس از پایان این مهلت همچنان چنین پرس‌وجوهایی وجود داشته باشند، xtrabackup با یک خطا خاتمه می‌یابد. مقدار پیش‌فرض \fB0\fP است که در این حالت، منتظر اتمام پرس‌وجوها نمانده و بلافاصله \fBFLUSH TABLES WITH READ LOCK\fP را آغاز می‌کند. در صورت پشتیبانی، \fIxtrabackup\fP به‌طور خودکار از \fI\%Backup Locks\fP به عنوان یک جایگزین سبک‌تر برای \fBFLUSH TABLES WITH READ LOCK\fP جهت کپی داده‌های غیر InnoDB استفاده می‌کند تا از مسدود شدن پرس‌وجوهای DML که جدول‌های InnoDB را تغییر می‌دهند، جلوگیری شود. .UNINDENT .INDENT 0.0 .TP .B \-\-ftwrl\-wait\-threshold=SECONDS این گزینه آستانه زمان اجرای پرس‌وجو را مشخص می‌کند که توسط xtrabackup برای تشخیص پرس‌وجوهای طولانی‌مدت در صورت غیرصفر بودن مقدار \fI\%\-\-ftwrl\-wait\-timeout\fP به کار می‌رود\&. تا زمانی که چنین پرس‌وجوهای طولانی‌مدتی در حال اجرا باشند، دستور \fBFLUSH TABLES WITH READ LOCK\fP آغاز نخواهد شد. در صورتی که \fI\%\-\-ftwrl\-wait\-timeout\fP برابر با \fB0\fP باشد، این گزینه هیچ اثری ندارد\&. مقدار پیش‌فرض \fB60\fP ثانیه است. در صورت پشتیبانی، xtrabackup به‌طور خودکار از \fI\%Backup Locks\fP به عنوان یک جایگزین سبک‌تر به جای \fBFLUSH TABLES WITH READ LOCK\fP برای کپی داده‌های غیر InnoDB استفاده می‌کند تا از مسدود شدن پرس‌وجوهای DML که جدول‌های InnoDB را تغییر می‌دهند جلوگیری شود. .UNINDENT .INDENT 0.0 .TP .B \-\-ftwrl\-wait\-query\-type=all|update این گزینه مشخص می‌کند کدام نوع از پرس‌وجوها مجاز هستند پیش از اعمال قفل سراسری توسط xtrabackup کامل شوند. مقدار پیش‌فرض \fBall\fP است\&. .UNINDENT .INDENT 0.0 .TP .B \-\-galera\-info این گزینه فایل \fBxtrabackup_galera_info\fP را ایجاد می‌کند که حاوی وضعیت گره محلی در زمان پشتیبان‌گیری است. این گزینه باید هنگام تهیه پشتیبان از \fIPercona XtraDB Cluster\fP استفاده شود\&. زمانی که از قفل‌های پشتیبان (backup locks) برای ایجاد نسخه پشتیبان استفاده شود، این گزینه هیچ اثری ندارد. .UNINDENT .INDENT 0.0.TP .B \-\-generate\-new\-master\-key تولید یک کلید اصلی جدید هنگام انجام copy\-back. .UNINDENT .INDENT 0.0 .TP .B \-\-generate\-transition\-key برنامهٔ \fIxtrabackup\fP در طول \fIprepare\fP و \fIcopy\-back\fP نیاز به دسترسی به همان فایل keyring یا سرور vault دارد، اما نباید به این که کلیدهای سرور پاک‌سازی شده‌اند یا خیر وابسته باشد. .sp گزینهٔ \fI\%\-\-generate\-transition\-key\fP یک کلید گذار (transition key) ایجاد کرده و به keyring اضافه می‌کند تا در صورتی که کلید اصلی استفاده‌شده برای رمزنگاری به دلیل چرخش و پاک‌سازی یافت نشد، \fIxtrabackup\fP از آن استفاده کند. .UNINDENT .INDENT 0.0 .TP .B \-\-get\-server\-public\-key دریافت کلید عمومی سرور .sp \fBهمچنین ببینید:\fP .INDENT 7.0 .INDENT 3.5 مستندات \fIMySQL\fP: گزینهٔ \-\-get\-server\-public\-key .INDENT 0.0 .INDENT 3.5 \fI\%https://dev.mysql.com/doc/refman/5.7/en/connection\-options.html#option_general_get\-server\-public\-key\fP .UNINDENT .UNINDENT .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-help هنگام اجرا با این گزینه یا بدون هیچ گزینه‌ای، \fIxtrabackup\fP اطلاعاتی دربارهٔ نحوهٔ اجرای برنامه در خط فرمان به همراه تمامی گزینه‌ها و متغیرهای پشتیبانی‌شده و در صورت لزوم، مقادیر پیش‌فرض آن‌ها را نمایش می‌دهد. .UNINDENT .INDENT 0.0 .TP .B \-\-history=NAME این گزینه رهگیری تاریخچهٔ پشتیبان‌گیری را در جدول \fBPERCONA_SCHEMA.xtrabackup_history\fP فعال می‌کند. می‌توان یک نام اختیاری برای سری تاریخچه مشخص کرد که همراه با رکورد تاریخچه برای پشتیبان در حال تهیه، ثبت خواهد شد. .UNINDENT .INDENT 0.0 .TP .B \-\-host=HOST این گزینه یک آرگومان رشته‌ای می‌پذیرد که میزبان مورد استفاده هنگام اتصال به سرور پایگاه داده از طریق TCP/IP را مشخص می‌کند. این مقدار بدون تغییر به فرایند فرزند mysql ارسال می‌شود. برای جزئیات به \fBmysql \-\-help\fP مراجعه کنید. .UNINDENT .INDENT 0.0 .TP .B \-\-incremental این گزینه به \fIxtrabackup\fP دستور می‌دهد تا یک پشتیبان افزایشی ایجاد کند. این گزینه به فرایند فرزند \fIxtrabackup\fP ارسال می‌شود. وقتی این گزینه مشخص شود، می‌توان یکی از گزینه‌های \fI\%\-\-incremental\-lsn\fP یا \fI\%\-\-incremental\-basedir\fP را نیز تعیین کرد. اگر هیچ‌یک از این گزینه‌ها داده نشود، گزینهٔ \fI\%\-\-incremental\-basedir\fP به‌طور پیش‌فرض به \fBxtrabackup\fP ارسال شده و روی اولین دایرکتوری دارای برچسب زمانی در دایرکتوری پایهٔ پشتیبان‌گیری تنظیم می‌شود. .sp \fBهمچنین ببینید:\fP .INDENT 7.0 .INDENT 3.5 .INDENT 0.0 .TP .B اطلاعات بیشتر دربارهٔ پشتیبان‌گیری‌های افزایشی بخش xb_incremental را ببینید .UNINDENT .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-incremental\-basedir=DIRECTORY هنگام ایجاد یک پشتیبان افزایشی، این همان دایرکتوری شامل پشتیبان کاملی است که مجموعه دادهٔ پایه برای پشتیبان‌های افزایشی محسوب می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-incremental\-dir=DIRECTORY هنگام آماده‌سازی (prepare) یک پشتیبان افزایشی، این دایرکتوری محلی است که پشتیبان افزایشی با پشتیبان کامل در آن ترکیب می‌شود تا یک پشتیبان کامل جدید ساخته شود. .UNINDENT .INDENT 0.0 .TP .B \-\-incremental\-force\-scan هنگام ایجاد یک پشتیبان افزایشی، پویش کامل (full scan) صفحات داده در نمونه‌ای که از آن پشتیبان گرفته می‌شود را اجبار می‌کند، حتی اگر داده‌های بیت‌مپ صفحات تغییریافته به‌طور کامل در دسترس باشد. .UNINDENT .INDENT 0.0 .TP .B \-\-incremental\-history\-name=name این گزینه نام سریِ پشتیبان ذخیره‌شده در رکورد تاریخچهٔ \fBPERCONA_SCHEMA.xtrabackup_history\fP را برای پایه‌گذاری پشتیبان افزایشی بر روی آن مشخص می‌کند. \fIxtrabackup\fP در جدول تاریخچه به جستجوی تازه‌ترین (بالاترین \fBinnodb_to_lsn\fP) پشتیبان موفق در این سری می‌پردازد و مقدار to_lsn را به عنوان \fBlsn\fP شروع برای پشتیبان افزایشی استفاده می‌کند. این گزینه با \fI\%\-\-incremental\-history\-uuid\fP، \fI\%\-\-incremental\-basedir\fP و \fI\%\-\-incremental\-lsn\fP مانعة‌الجمع است. اگر هیچ lsn معتبری یافت نشود (سری با این نام وجود نداشته باشد، یا پشتیبان موفقی با این نام یافت نشود)، \fIxtrabackup\fP با خطا خارج می‌شود. این گزینه به همراه گزینهٔ \fI\%\-\-incremental\fP استفاده می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-incremental\-history\-uuid=name این گزینه \fIUUID\fP رکورد تاریخچهٔ خاص ذخیره‌شده در \fBPERCONA_SCHEMA.xtrabackup_history\fP را برای پایه‌گذاری پشتیبان افزایشی مشخص می‌کند. این گزینه با \fI\%\-\-incremental\-history\-name\fP، \fI\%\-\-incremental\-basedir\fP و \fI\%\-\-incremental\-lsn\fP مانعة‌الجمع است. اگر هیچ lsn معتبری یافت نشود (هیچ رکورد موفقی با آن \fIUUID\fP وجود نداشته باشد)، \fIxtrabackup\fP با خطا خارج می‌شود. این گزینه به همراه گزینهٔ \-\-incremental استفاده می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-incremental\-lsn=LSN هنگام ایجاد یک پشتیبان افزایشی، می‌توانید به جای مشخص کردن \fI\%\-\-incremental\-basedir\fP، شماره توالی لاگ (LSN) را مشخص کنید. برای پایگاه‌های دادهٔ ایجاد شده در نسخهٔ 5.1 و بالاتر، LSN را به صورت یک عدد صحیح ۶۴ بیتی مشخص کنید. \fBتوجه\fP: اگر مقدار اشتباهی برای LSN مشخص شود (یک خطای کاربری که \fIPercona XtraBackup\fP قادر به تشخیص آن نیست)، پشتیبان غیرقابل استفاده خواهد شد. دقت کنید! .UNINDENT .INDENT 0.0 .TP .B \-\-innodb[=name] این گزینه برای سازگاری با گزینه‌های MySQL نادیده گرفته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-innodb\-miscellaneous گروه بزرگی از گزینه‌های InnoDB وجود دارد که معمولاً از فایل پیکربندی \fBmy.cnf\fP خوانده می‌شوند تا \fIxtrabackup\fP موتور درون‌سازی‌شدهٔ InnoDB خود را با همان پیکربندی سرور فعلی شما راه‌اندازی کند. معمولاً نیازی به مشخص کردن صریح این گزینه‌ها ندارید. این گزینه‌ها در InnoDB و XtraDB رفتار یکسانی دارند: .INDENT 7.0 .INDENT 2.0 .IP \(bu 2 \-\-innodb\-adaptive\-hash\-index .IP \(bu 2 \-\-innodb\-additional\-mem\-pool\-size .IP \(bu 2 \-\-innodb\-autoextend\-increment .IP \(bu 2 \-\-innodb\-buffer\-pool\-size .IP \(bu 2 \-\-innodb\-buffer\-pool\-filename .IP \(bu 2 \-\-innodb\-checksum\-algorithm .IP \(bu 2 \-\-innodb\-checksums .IP \(bu 2 \-\-innodb\-data\-file\-path .IP \(bu 2 \-\-innodb\-data\-home\-dir .IP \(bu 2 \-\-innodb\-directories .IP \(bu 2 \-\-innodb\-doublewrite\-file .IP \(bu 2 \-\-innodb\-doublewrite .IP \(bu 2 \-\-innodb\-extra\-undoslots .IP \(bu 2 \-\-innodb\-fast\-checksum .IP \(bu 2 \-\-innodb\-file\-io\-threads .IP \(bu 2 \-\-innodb\-file\-per\-table .IP \(bu 2 \-\-innodb\-flush\-log\-at\-trx\-commit .IP \(bu 2 \-\-innodb\-flush\-method .UNINDENT .INDENT 2.0 .IP \(bu 2 \-\-innodb\-io\-capacity .IP \(bu 2 \-\-innodb\-lock\-wait\-timeout .IP \(bu 2 \-\-innodb\-log\-block\-size .IP \(bu 2 \-\-innodb\-log\-buffer\-size .IP \(bu 2 \-\-innodb\-log\-checksums .IP \(bu 2 \-\-innodb\-log\-files\-in\-group .IP \(bu 2 \-\-innodb\-log\-file\-size .IP \(bu 2 \-\-innodb\-log\-group\-home\-dir .IP \(bu 2 \-\-innodb\-max\-dirty\-pages\-pct.IP \(bu 2 \-\-innodb\-open\-files .IP \(bu 2 \-\-innodb\-page\-size .IP \(bu 2 \-\-innodb\-read\-io\-threads .IP \(bu 2 \-\-innodb\-redo\-log\-encrypt .IP \(bu 2 \-\-innodb\-undo\-directory .IP \(bu 2 \-\-innodb\-undo\-log\-encrypt .IP \(bu 2 \-\-innodb\-undo\-tablespaces\(ga .IP \(bu 2 \-\-innodb\-use\-native\-aio .IP \(bu 2 \-\-innodb\-write\-io\-threads .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-keyring\-file\-data=FILENAME مسیر فایل keyring. این گزینه را همراه با \fI\%\-\-xtrabackup\-plugin\-dir\fP\& به کار ببرید. .UNINDENT .INDENT 0.0 .TP .B \-\-kill\-long\-queries\-timeout=SECONDS این گزینه تعداد ثانیه‌هایی را مشخص می‌کند که \fIxtrabackup\fP بین آغاز \fBFLUSH TABLES WITH READ LOCK\fP و کُشتن آن پرس‌وجوهایی که آن را مسدود می‌کنند، منتظر می‌ماند. پیش‌فرض 0 ثانیه است، به این معنی که \fIxtrabackup\fP تلاشی برای متوقف ساختن هیچ پرس‌وجویی نخواهد کرد. جهت استفاده از این گزینه، کاربر xtrabackup باید دارای مجوزهای \fBPROCESS\fP و \fBSUPER\fP باشد. در صورت پشتیبانی، \fIxtrabackup\fP به‌طور خودکار از \fI\%Backup Locks\fP به‌عنوان جایگزینی سبک برای \fBFLUSH TABLES WITH READ LOCK\fP جهت کپی داده‌های غیر InnoDB استفاده می‌کند تا از مسدود شدن پرس‌وجوهای DML که جداول InnoDB را تغییر می‌دهند، جلوگیری شود. .UNINDENT .INDENT 0.0 .TP .B \-\-kill\-long\-query\-type=all|select این گزینه مشخص می‌کند کدام نوع از پرس‌وجوها باید برای رفع انسداد قفل سراسری (global lock) کشته شوند. پیش‌فرض "select" است. .UNINDENT .INDENT 0.0 .TP .B \-\-lock\-ddl در صورت پشتیبانی توسط سرور، دستور \fBLOCK TABLES FOR BACKUP\fP (و در غیر این صورت \fBLOCK INSTANCE FOR BACKUP\fP) را در ابتدای پشتیبان‌گیری صادر می‌کند تا تمام عملیات‌های DDL مسدود شوند. .sp \fBنکته:\fP .INDENT 7.0 .INDENT 3.5 پیش از \fIPercona XtraBackup\fP 8.0.22\-15.0، استفاده از \fIsafe\-slave\-backup\fP رشته رونوشت SQL را پس از پشتیبان‌گیری از جداول InnoDB و پیش از پشتیبان‌گیری از جداول غیر InnoDB متوقف می‌کرد. .sp از نسخه \fIPercona XtraBackup\fP 8.0.22\-15.0 به بعد، استفاده از گزینه \fIsafe\-slave\-backup\fP رشته رونوشت SQL را پیش از کپی کردن فایل‌های InnoDB متوقف می‌کند. .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-lock\-ddl\-per\-table قفل کردن DDL برای هر جدول پیش از شروع کپی کردن آن توسط xtrabackup و تا زمان تکمیل پشتیبان‌گیری. .sp \fBنکته:\fP .INDENT 7.0 .INDENT 3.5 از نسخه \fIPercona XtraBackup\fP 8.0.15 به بعد، گزینه \fI\-\-lock\-ddl\-per\-table\fP منسوخ شده است. به جای آن از گزینه \fI\-\-lock\-ddl\fP استفاده کنید. .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-lock\-ddl\-timeout اگر \fBLOCK TABLES FOR BACKUP\fP یا \fBLOCK INSTANCE FOR BACKUP\fP در مدت‌زمان تعیین‌شده پاسخ ندهد، فرایند پشتیبان‌گیری را متوقف می‌کند. .UNINDENT .INDENT 0.0 .TP .B \-\-log این گزینه برای \fIMySQL\fP نادیده گرفته می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-log\-bin نام پایه برای توالی لاگ‌ها. .UNINDENT .INDENT 0.0 .TP .B \-\-log\-bin\-index=name فایلی که نام فایل‌های گزارش باینری (binary log) را نگه می‌دارد. .UNINDENT .INDENT 0.0 .TP .B \-\-log\-copy\-interval=# این گزینه بازه زمانی بین بررسی‌های انجام‌شده توسط رشته رونوشت لاگ را بر حسب میلی‌ثانیه مشخص می‌کند (پیش‌فرض ۱ ثانیه است). .UNINDENT .INDENT 0.0 .TP .B \-\-login\-path مسیر مشخص‌شده را از فایل ورود (login file) می‌خواند. .UNINDENT .INDENT 0.0 .TP .B \-\-move\-back انتقال تمام فایل‌های موجود در یک پشتیبان از قبل ایجاد شده از دایرکتوری پشتیبان به مکان‌های اصلی‌شان. از آنجا که این گزینه فایل‌های پشتیبان را حذف می‌کند، باید با احتیاط کامل استفاده شود. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-backup\-locks گزینه \fI\%\-\-backup\-locks\fP را که به‌طور پیش‌فرض فعال است، صراحتاً غیرفعال می‌کند. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-defaults گزینه‌های پیش‌فرض فقط از فایل ورود (login file) خوانده می‌شوند. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-lock از این گزینه برای غیرفعال کردن قفل جدول با \fBFLUSH TABLES WITH READ LOCK\fP\& استفاده کنید. تنها در صورتی از آن استفاده کنید که تمام جداول شما InnoDB باشند و شما به موقعیت لاگ باینری پشتیبان \fBاهمیتی ندهید\fP. در صورتی که هرگونه عبارت \fBDDL\fP در حال اجرا باشد یا هرگونه به‌روزرسانی روی جداول غیر InnoDB انجام شود (شامل جداول سیستمی MyISAM در پایگاه داده \fImysql\fP)، نباید از این گزینه استفاده کرد، زیرا در غیر این صورت می‌تواند منجر به یک پشتیبان ناسازگار شود. در صورت پشتیبانی، \fIxtrabackup\fP به‌طور خودکار از \fI\%Backup Locks\fP به‌عنوان جایگزینی سبک برای \fBFLUSH TABLES WITH READ LOCK\fP جهت کپی داده‌های غیر InnoDB استفاده می‌کند تا از مسدود شدن پرس‌وجوهای DML که جداول InnoDB را تغییر می‌دهند جلوگیری شود. اگر به این دلیل قصد استفاده از این گزینه را دارید که پشتیبان‌گیری‌هایتان در دریافت قفل شکست می‌خورند، ممکن است به دلیل این باشد که رویدادهای replication ورودی مانع از موفقیت قفل می‌شوند. لطفاً با استفاده از \fI\%\-\-safe\-slave\-backup\fP سعی کنید رشته replicaی replication را موقتاً متوقف کنید؛ این ممکن است به موفقیت پشتیبان‌گیری کمک کند و نیازی به استفاده از این گزینه نداشته باشید. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-server\-version\-check در \fIPercona XtraBackup\fP 8.0.21 پیاده‌سازی شده است. .sp گزینه \fB\-\-no\-server\-version\-check\fP بررسی نسخه سرور را غیرفعال می‌کند. .sp رفتار پیش‌فرض، بررسی‌ای را اجرا می‌کند که نسخه سیستم مبدأ را با نسخه \fIPercona XtraBackup\fP مقایسه می‌کند. اگر نسخه سیستم مبدأ بالاتر از نسخه XtraBackup باشد، پشتیبان‌گیری با پیامی لغو می‌شود. .sp افزودن این گزینه این بررسی را لغو (override) می‌کند و پشتیبان‌گیری ادامه می‌یابد، اما ممکن است مشکلاتی در پشتیبان وجود داشته باشد. .sp برای اطلاعات بیشتر بخش مقایسه (comparison) را ببینید. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-version\-check این گزینه بررسی نسخه را غیرفعال می‌کند. اگر این گزینه را تعیین نکنید، هنگام اجرای \fIxtrabackup\fP در حالت \fB\-\-backup\fP، بررسی خودکار نسخه به‌طور ضمنی فعال خواهد شد. برای غیرفعال کردن بررسی نسخه، باید هنگام فراخوانی \fIxtrabackup\fP\& صراحتاً گزینه \fB\-\-no\-version\-check\fP را مشخص کنید. .sp هنگامی که بررسی خودکار نسخه فعال است، \fIxtrabackup\fP در مرحله پشتیبان‌گیری پس از ایجاد اتصال به سرور، یک بررسی نسخه در برابر سرور انجام می‌دهد. \fIxtrabackup\fP اطلاعات زیر را به سرور ارسال می‌کند: .INDENT 7.0 .IP \(bu 2 نوع و نسخه MySQL .IP \(bu 2 نام سیستم‌عامل .IP \(bu 2 نسخه Percona Toolkit .IP \(bu 2 نسخه Perl .UNINDENT .sp هر بخش از اطلاعات دارای یک شناسه یکتا است. این مقدار، یک درهم‌سازی (هش) MD5 است که Percona Toolkit برای دریافت آمار درباره نحوه استفاده از آن بهره می‌برد. این شناسه یک UUID تصادفی است؛ هیچ اطلاعاتی از کلاینت جمع‌آوری یا ذخیره نمی‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-open\-files\-limit=# حداکثر تعداد توصیف‌کننده‌های فایل (file descriptors) برای رزرو با ()setrlimit. .UNINDENT .INDENT 0.0 .TP .B \-\-parallel=# این گزینه تعداد رشته‌ها (threads) را برای کپی هم‌زمان چندین فایل داده هنگام ایجاد پشتیبان مشخص می‌کند. مقدار پیش‌فرض 1 است (یعنی بدون انتقال هم‌زمان). در \fIPercona XtraBackup\fP 2.3.10 و جدیدتر، این گزینه را می‌توان همراه با گزینه \fI\%\-\-copy\-back\fP برای کپی موازی فایل‌های داده کاربر به کار برد (لاگ‌های redo و فضاهای جدول سیستمی در رشته اصلی کپی می‌شوند). .UNINDENT .INDENT 0.0 .TP .B \-\-password=PASSWORD این گزینه گذرواژه مورد استفاده هنگام اتصال به پایگاه داده را مشخص می‌کند. یک آرگومان رشته‌ای می‌پذیرد. برای جزئیات به \fBmysql \-\-help\fP مراجعه کنید. .UNINDENT .INDENT 0.0.TP .B \-\-plugin\-load فهرست افزونه‌هایی که باید بارگذاری شوند. .UNINDENT .INDENT 0.0 .TP .B \-\-port=PORT این گزینه یک آرگومان رشته‌ای می‌پذیرد که درگاه مورد استفاده هنگام اتصال به سرور پایگاه داده از طریق TCP/IP را مشخص می‌کند. این مقدار بدون تغییر به فرآیند فرزند \fBmysql\fP منتقل می‌شود. برای جزئیات بیشتر به \fBmysql \-\-help\fP مراجعه کنید. .UNINDENT .INDENT 0.0 .TP .B \-\-prepare باعث می‌شود \fBxtrabackup\fP روی پشتیبان ایجادشده با \fI\%\-\-backup\fP بازیابی (recovery) انجام دهد تا آماده استفاده شود. به بخش آماده‌سازی پشتیبان (preparing a backup)\& مراجعه کنید. .UNINDENT .INDENT 0.0 .TP .B \-\-print\-defaults فهرست آرگومان‌های برنامه را چاپ کرده و خارج می‌شود. باید به عنوان نخستین گزینه در خط فرمان مشخص شود. .UNINDENT .INDENT 0.0 .TP .B \-\-print\-param باعث می‌شود \fBxtrabackup\fP پارامترهایی را چاپ کند که می‌توان از آن‌ها برای کپی کردن فایل‌های داده به مکان‌های اصلی‌شان به منظور بازیابی (restore) استفاده کرد. .UNINDENT .INDENT 0.0 .TP .B \-\-read\-buffer\-size اندازه بافر خواندن فایل داده (datafile) را تنظیم می‌کند؛ مقدار ارائه‌شده با اندازه صفحه (page size) همگام و تنظیم می‌شود. مقدار پیش‌فرض 10Mb است. .UNINDENT .INDENT 0.0 .TP .B \-\-rebuild\-indexes اندیس‌ها را در یک پشتیبان فشرده بازسازی می‌کند. این گزینه تنها زمانی اثر دارد که گزینه‌های \fI\%\-\-prepare\fP و \fI\%\-\-rebuild\-threads\fP مشخص شده باشند. .UNINDENT .INDENT 0.0 .TP .B \-\-rebuild\-threads=# از تعداد مشخصی از نخ‌ها (threads) برای بازسازی اندیس‌ها در یک پشتیبان فشرده استفاده می‌کند. این گزینه تنها همراه با گزینه‌های \fI\%\-\-prepare\fP و \fI\%\-\-rebuild\-indexes\fP موثر است. .UNINDENT .INDENT 0.0 .TP .B \-\-remove\-original در \fIPercona XtraBackup\fP نسخه 2.4.6 پیاده‌سازی شده است؛ در صورت تعیین این گزینه، فایل‌های \fB\&.qp\fP، \fB\&.xbcrypt\fP و \fB\&.qp.xbcrypt\fP پس از رمزگشایی و خروج از حالت فشرده‌سازی حذف خواهند شد. .UNINDENT .INDENT 0.0 .TP .B \-\-rocksdb\-datadir دایرکتوری داده‌های RocksDB. .UNINDENT .INDENT 0.0 .TP .B \-\-rocksdb\-wal\-dir دایرکتوری WAL برای RocksDB. .UNINDENT .INDENT 0.0 .TP .B \-\-rocksdb\-checkpoint\-max\-age هنگام اتمام پشتیبان‌گیری، نقطه بازرسی (checkpoint) نباید بیش از این تعداد ثانیه قدیمی باشد. .UNINDENT .INDENT 0.0 .TP .B \-\-rocksdb\-checkpoint\-max\-count پشتیبان‌گیری را تکمیل می‌کند حتی اگر شرط طول عمر نقطه بازرسی پس از این تعداد checkpoint برآورده نشده باشد. .UNINDENT .INDENT 0.0 .TP .B \-\-rollback\-prepared\-trx برگرداندن اجباری (rollback) تراکنش‌های آماده‌شده‌ی (prepared) در InnoDB. .UNINDENT .INDENT 0.0 .TP .B \-\-rsync از ابزار \fBrsync\fP برای بهینه‌سازی انتقال محلی فایل‌ها استفاده می‌کند. با تعیین این گزینه، \fIxtrabackup\fP به جای اجرای یک فرآیند جداگانه \fBcp\fP برای هر فایل، از \fBrsync\fP برای رونوشت تمامی فایل‌های غیر InnoDB استفاده می‌کند که برای سرورهایی با تعداد زیادی پایگاه داده یا جدول می‌تواند بسیار سریع‌تر باشد. این گزینه نمی‌تواند همراه با \fI\%\-\-stream\fP\& استفاده شود. .UNINDENT .INDENT 0.0 .TP .B \-\-safe\-slave\-backup با تعیین این گزینه، xtrabackup دقیقاً پیش از اجرای \fBFLUSH TABLES WITH READ LOCK\fP نخ SQL رونوشت (replica) را متوقف کرده و برای شروع پشتیبان‌گیری منتظر می‌ماند تا \fBSlave_open_temp_tables\fP در دستور \fBSHOW STATUS\fP صفر شود. اگر هیچ جدول موقت بازی وجود نداشته باشد، پشتیبان‌گیری انجام می‌شود؛ در غیر این صورت نخ SQL به طور متناوب اجرا و متوقف می‌شود تا زمانی که هیچ جدول موقت بازی باقی نماند. چنانچه پس از گذشت \fI\%\-\-safe\-slave\-backup\-timeout\fP ثانیه مقدار \fBSlave_open_temp_tables\fP صفر نشود، پشتیبان‌گیری با شکست مواجه خواهد شد. با پایان پشتیبان‌گیری، نخ SQL همانندسازی مجدداً اجرا می‌شود. این گزینه به منظور مدیریت \fI\%همانندسازی جدول‌های موقت\fP پیاده‌سازی شده و در Row\-Based\-Replication نیازی به آن نیست. .UNINDENT .INDENT 0.0 .TP .B \-\-safe\-slave\-backup\-timeout=SECONDS مدت زمانی بر حسب ثانیه که \fI\%\-\-safe\-slave\-backup\fP باید منتظر بماند تا مقدار \fBSlave_open_temp_tables\fP به صفر برسد. مقدار پیش‌فرض ۳۰۰ ثانیه است. .UNINDENT .INDENT 0.0 .TP .B \-\-secure\-auth در صورت استفاده کلاینت از پروتکل قدیمی (پیش از 4.1.1)، اتصال آن را به سرور رد می‌کند. (به‌طور پیش‌فرض فعال است؛ برای غیرفعال کردن از \-\-skip\-secure\-auth استفاده کنید.) .UNINDENT .INDENT 0.0 .TP .B \-\-server\-id=# شناسه نمونه سروری که از آن پشتیبان‌گیری می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-server\-public\-key\-path مسیر فایل کلید عمومی RSA سرور در قالب PEM. .sp \fBهمچنین ببینید:\fP .INDENT 7.0 .INDENT 3.5 .INDENT 0.0 .TP .B مستندات \fIMySQL\fP: گزینه \-\-server\-public\-key\-path \fI\%https://dev.mysql.com/doc/refman/8.0/en/connection\-options.html#option_general_server\-public\-key\-path\fP .UNINDENT .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-skip\-tables\-compatibility\-check به \fI\%\-\-tables\-compatibility\-check\fP\& مراجعه کنید. .UNINDENT .INDENT 0.0 .TP .B \-\-slave\-info این گزینه هنگام پشتیبان‌گیری از یک سرور رونوشت (replica) در سازوکار همانندسازی کاربرد دارد. این گزینه موقعیت binary log سرور مبدا را چاپ می‌کند. همچنین مختصات binary log را در قالب یک دستور \fBCHANGE MASTER\fP در فایل \fBxtrabackup_slave_info\fP ذخیره می‌کند. با راه‌اندازی یک سرور رونوشت بر اساس این پشتیبان و اجرای دستور \fBCHANGE MASTER\fP با استفاده از موقعیت binary log ذخیره‌شده در فایل \fBxtrabackup_slave_info\fP، می‌توان یک نسخه رونوشت جدید برای این مبدا راه‌اندازی کرد. .UNINDENT .INDENT 0.0 .TP .B \-\-socket این گزینه یک آرگومان رشته‌ای می‌پذیرد که سوکت مورد استفاده برای اتصال به سرور پایگاه داده محلی از طریق یک UNIX domain socket را مشخص می‌کند. این مقدار بدون تغییر به فرآیند فرزند mysql منتقل می‌شود. برای جزئیات بیشتر به \fBmysql \-\-help\fP مراجعه کنید. .UNINDENT .INDENT 0.0 .TP .B \-\-ssl فعال‌سازی اتصال امن. اطلاعات بیشتر در مستندات سرور MySQL ذیل گزینه \fI\%\-\-ssl\fP در دسترس است. .UNINDENT .INDENT 0.0 .TP .B \-\-ssl\-ca مسیر فایلی که شامل فهرست CAهای معتبر SSL است. اطلاعات بیشتر در مستندات سرور MySQL ذیل گزینه \fI\%\-\-ssl\-ca\fP در دسترس است. .UNINDENT .INDENT 0.0 .TP .B \-\-ssl\-capath مسیر دایرکتوری حاوی گواهی‌های مرجع صدور گواهی (CA) معتبر SSL در قالب PEM. اطلاعات بیشتر در مستندات سرور MySQL ذیل گزینه \fI\%\-\-ssl\-capath\fP در دسترس است. .UNINDENT .INDENT 0.0 .TP .B \-\-ssl\-cert مسیر فایلی که شامل گواهی X509 در قالب PEM است. اطلاعات بیشتر در مستندات سرور MySQL ذیل گزینه \fI\%\-\-ssl\-cert\fP در دسترس است. .UNINDENT .INDENT 0.0 .TP .B \-\-ssl\-cipher فهرست رمزنگاری‌های (ciphers) مجاز جهت استفاده برای رمزنگاری ارتباط. اطلاعات بیشتر در مستندات سرور MySQL ذیل گزینه \fI\%\-\-ssl\-cipher\fP در دسترس است. .UNINDENT .INDENT 0.0 .TP .B \-\-ssl\-crl مسیر فایلی که شامل فهرست‌های ابطال گواهی (CRL) است. اطلاعات بیشتر در مستندات سرور MySQL ذیل گزینه \fI\%\-\-ssl\-crl\fP در دسترس است. .UNINDENT .INDENT 0.0.TP .B \-\-ssl\-crlpath مسیر دایرکتوری حاوی فایل‌های فهرست ابطال گواهی (certificate revocation list). اطلاعات بیشتر را می‌توان در مستندات سرور MySQL برای \fI\%\-\-ssl\-crlpath\fP یافت. .UNINDENT .INDENT 0.0 .TP .B \-\-ssl\-fips\-mode حالت SSL FIPS (تنها برای OpenSSL اعمال می‌شود)؛ مقادیر مجاز عبارت‌اند از: \fIOFF\fP، \fION\fP و \fISTRICT\fP\&. .UNINDENT .INDENT 0.0 .TP .B \-\-ssl\-key مسیر فایلی که حاوی کلید X509 در قالب PEM است. اطلاعات بیشتر را می‌توان در مستندات سرور MySQL برای \fI\%\-\-ssl\-key\fP یافت. .UNINDENT .INDENT 0.0 .TP .B \-\-ssl\-mode وضعیت امنیتی اتصال به سرور. اطلاعات بیشتر را می‌توان در مستندات سرور MySQL برای \fI\%\-\-ssl\-mode\fP یافت. .UNINDENT .INDENT 0.0 .TP .B \-\-ssl\-verify\-server\-cert بررسی مقدار Common Name گواهی سرور در برابر نام میزبان (host name) استفاده‌شده هنگام اتصال به سرور. اطلاعات بیشتر را می‌توان در مستندات سرور MySQL برای \fI\%\-\-ssl\-verify\-server\-cert\fP یافت. .UNINDENT .INDENT 0.0 .TP .B \-\-stats باعث می‌شود \fBxtrabackup\fP فایل‌های داده مشخص‌شده را پیمایش کرده و آمارهای نمایه (index statistics) را چاپ کند. .UNINDENT .INDENT 0.0 .TP .B \-\-stream=FORMAT ارسال جریانی (stream) تمامی فایل‌های پشتیبان به خروجی استاندارد در قالب مشخص‌شده. در حال حاضر، این گزینه تنها از قالب \fIxbstream\fP پشتیبانی می‌کند. .UNINDENT .INDENT 0.0 .TP .B \-\-strict اگر این گزینه مشخص شود، در صورت ارسال پارامترهای نامعتبر، \fIxtrabackup\fP با خطا متوقف می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-tables=name یک عبارت باقاعده که نام کامل جدول در قالب \fBdatabasename.tablename\fP با آن مطابقت داده می‌شود. در صورت تطابق نام، از جدول پشتیبان‌گیری می‌شود. به بخش پشتیبان‌گیری‌های جزئی (partial backups) مراجعه کنید\&. .UNINDENT .INDENT 0.0 .TP .B \-\-tables\-compatibility\-check هشدار سازگاری موتور را فعال می‌کند. مقدار پیش‌فرض ON است. برای غیرفعال کردن هشدار سازگاری موتور از \fI\%\-\-skip\-tables\-compatibility\-check\fP استفاده کنید\&. .UNINDENT .INDENT 0.0 .TP .B \-\-tables\-exclude=name فیلتر کردن نام جدول‌ها با استفاده از عبارت باقاعده (regexp). عملکردی مشابه \fI\%\-\-tables\fP دارد، اما نام‌های منطبق از پشتیبان‌گیری استثنا می‌شوند. توجه داشته باشید که اولویت این گزینه بالاتر از \fI\%\-\-tables\fP است\&. .UNINDENT .INDENT 0.0 .TP .B \-\-tables\-file=name فایلی حاوی یک نام جدول در هر سطر، در قالب databasename.tablename. پشتیبان‌گیری به جدول‌های مشخص‌شده محدود خواهد شد. .UNINDENT .INDENT 0.0 .TP .B \-\-target\-dir=DIRECTORY این گزینه دایرکتوری مقصد را برای پشتیبان‌گیری مشخص می‌کند. اگر دایرکتوری وجود نداشته باشد، \fBxtrabackup\fP آن را ایجاد می‌کند. اگر دایرکتوری وجود داشته و خالی باشد، \fBxtrabackup\fP با موفقیت انجام خواهد شد. با این حال، \fBxtrabackup\fP فایل‌های موجود را بازنویسی نخواهد کرد؛ بلکه با خطای سیستم‌عامل ۱۷، \fBfile exists\fP با شکست مواجه می‌شود\&. .sp اگر این گزینه یک مسیر نسبی باشد، نسبت به دایرکتوری کاری فعلی که \fBxtrabackup\fP از آن اجرا شده است تفسیر می‌شود. .sp برای انجام پشتیبان‌گیری، در سطح سیستم‌فایل به مجوزهای \fBREAD\fP، \fBWRITE\fP و \fBEXECUTE\fP برای دایرکتوری تعیین‌شده به‌عنوان مقدار \fI\%\-\-target\-dir\fP نیاز دارید\&. .UNINDENT .INDENT 0.0 .TP .B \-\-innodb\-temp\-tablespaces\-dir=DIRECTORY دایرکتوری محل قرارگیری فایل‌های tablespace موقت؛ این مسیر می‌تواند مطلق باشد. .UNINDENT .INDENT 0.0 .TP .B \-\-throttle=# این گزینه تعداد تکه‌های (chunks) کپی‌شده در هر ثانیه را محدود می‌کند. اندازه هر تکه \fI10 MB\fP است\&. برای محدود کردن پهنای باند به \fI10 MB/s\fP، گزینه را روی \fI1\fP تنظیم کنید: \fI\-\-throttle=1\fP\&. .sp \fBهمچنین ببینید:\fP .INDENT 7.0 .INDENT 3.5 .INDENT 0.0 .TP .B اطلاعات بیشتر درباره نحوه محدودسازی نرخ پشتیبان‌گیری throttling_backups .UNINDENT .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-ciphersuites رمزنگار (cipher) مورد استفاده برای TLS v1.3. .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-version نسخه TLS مورد استفاده؛ مقادیر مجاز عبارت‌اند از: \fITLSv1\fP، \fITLSv1.1\fP، \fITLSv1.2\fP، \fITLSv1.3\fP\&. .UNINDENT .INDENT 0.0 .TP .B \-\-tmpdir=name دایرکتوری مورد استفاده برای ذخیره فایل‌های موقت در طول پشتیبان‌گیری را مشخص می‌کند. .UNINDENT .INDENT 0.0 .TP .B \-\-transition\-key=name این گزینه برای امکان‌پذیر ساختن پردازش پشتیبان‌گیری بدون دسترسی به سرور keyring vault استفاده می‌شود. در این حالت، \fBxtrabackup\fP کلید رمزگذاری AES را از عبارت عبور مشخص‌شده مشتق کرده و از آن برای رمزگذاری کلیدهای tablespaceهای در حال پشتیبان‌گیری استفاده می‌کند. .sp اگر \fI\%\-\-transition\-key\fP فاقد هرگونه مقداری باشد، \fBxtrabackup\fP آن را درخواست خواهد کرد. همان عبارت عبور باید برای دستور \fI\%\-\-prepare\fP نیز مشخص شود. .UNINDENT .INDENT 0.0 .TP .B \-\-use\-memory این گزینه بر میزان حافظه اختصاص‌یافته برای آماده‌سازی پشتیبان با \fI\%\-\-prepare\fP، یا تحلیل آمارها با \fI\%\-\-stats\fP تأثیر می‌گذارد\&. هدف آن مشابه innodb_buffer_pool_size است\&. این گزینه کارکرد مشابه گزینه هم‌نام در ابزار InnoDB Hot Backup شرکت Oracle ندارد. مقدار پیش‌فرض 100MB است، و در صورت داشتن حافظه در دسترس کافی، مقدار 1GB تا 2GB مقدار توصیه‌شده مناسبی است. مضارب با ذکر واحد پشتیبانی می‌شوند (مانند 1MB، 1M، 1GB، 1G). .UNINDENT .INDENT 0.0 .TP .B \-\-user=USERNAME این گزینه نام‌کاربری MySQL مورد استفاده هنگام اتصال به سرور را، در صورتی که کاربر فعلی نباشد، مشخص می‌کند. این گزینه یک آرگومان رشته‌ای می‌پذیرد. برای جزئیات به mysql \-\-help مراجعه کنید. .UNINDENT .INDENT 0.0 .TP .B \-v نگاه کنید به \fI\%\-\-version\fP .UNINDENT .INDENT 0.0 .TP .B \-\-version این گزینه نسخه \fIxtrabackup\fP را چاپ کرده و خارج می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-xtrabackup\-plugin\-dir=DIRNAME مسیر مطلق به دایرکتوری حاوی پلاگین \fBkeyring\fP. .sp \fBهمچنین ببینید:\fP .INDENT 7.0 .INDENT 3.5 .INDENT 0.0 .TP .B مستندات \fIPercona Server for MySQL\fP: پلاگین keyring_vault با Data at Rest Encryption \fI\%https://www.percona.com/doc/percona\-server/LATEST/management/data_at_rest_encryption.html#keyring\-vault\-plugin\fP .TP .B مستندات \fIMySQL\fP: استفاده از پلاگین مبتنی بر فایل keyring_file \fI\%https://dev.mysql.com/doc/refman/5.7/en/keyring\-file\-plugin.html\fP .UNINDENT .UNINDENT .UNINDENT .UNINDENT.SH "نویسندگان (AUTHORS)" Percona LLC و/یا شرکت‌های وابسته به آن .SH "کپی‌رایت و تکثیر (COPYRIGHT)" 2009-2022، Percona LLC و/یا شرکت‌های وابسته به آن .\" Generated by docutils manpage writer. .