'\" t .\" Title: ibd2sdi .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.79.1 .\" Date: 03/24/2026 .\" Manual: MySQL Database System .\" Source: MySQL 9.7 .\" Language: English .\" .TH "IBD2SDI" "1" "03/24/2026" "MySQL 9\&.7" "MySQL Database System" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" ibd2sdi \- ابزار InnoDB برای استخراج اطلاعات دیکشنری سریالی‌شده (SDI) از فضای جدول InnoDB .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBibd2sdi\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIfile_name1\fR\fR\fB\ [\fR\fB\fIfile_name2\ file_name3\ \&.\&.\&.]\fR\fR\ 'u \fBibd2sdi [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIfile_name1\fR\fR\fB [\fR\fB\fIfile_name2 file_name3 \&.\&.\&.]\fR\fR .SH "توضیحات (DESCRIPTION)" .PP دستور \fBibd2sdi\fR ابزاری برای استخراج \m[blue]\fBاطلاعات دیکشنری سریالی‌شده\fR\m[]\&\s-2\u[1]\d\s+2 (SDI) از پرونده‌های فضای جدول InnoDB است\&. داده‌های SDI در تمامی پرونده‌های پایدار فضای جدول InnoDB حضور دارند\&. .PP دستور \fBibd2sdi\fR می‌تواند روی پرونده‌های فضای جدول file\-per\-table (پرونده‌های *\&.ibd)، پرونده‌های فضای جدول عمومی (پرونده‌های *\&.ibd)، پرونده‌های \m[blue]\fBفضای جدول سیستم\fR\m[]\&\s-2\u[2]\d\s+2 (پرونده‌های *ibdata) و فضای جدول دیکشنری داده (mysql\&.ibd) اجرا شود\&. استفاده از آن برای فضاهای جدول موقت یا فضاهای جدول undo پشتیبانی نمی‌شود\&. .PP دستور \fBibd2sdi\fR می‌تواند در زمان اجرا یا در حالی که سرور آفلاین است استفاده شود\&. هنگام عملیات DDL، عملیات ROLLBACK و عملیات پاکسازی (purge) لاگ undo مرتبط با SDI، ممکن است بازه زمانی کوتاهی وجود داشته باشد که در آن \fBibd2sdi\fR در خواندن داده‌های SDI ذخیره‌شده در فضای جدول با شکست مواجه شود\&. .PP دستور \fBibd2sdi\fR یک خواندن ثبت‌نشده (uncommitted read) از SDI را از فضای جدول مشخص‌شده انجام می‌دهد\&. به لاگ‌های redo و لاگ‌های undo دسترسی پیدا نمی‌کند\&. .PP ابزار \fBibd2sdi\fR را به این صورت فراخوانی کنید: .sp .if n \{\ .RS 4 .\} .nf ibd2sdi [\fIoptions\fR] \fIfile_name1\fR [\fIfile_name2 file_name3 \&.\&.\&.\fR] .fi .if n \{\ .RE .\} .PP دستور \fBibd2sdi\fR از فضاهای جدول چندپرونده‌ای مانند فضای جدول سیستم InnoDB پشتیبانی می‌کند، اما نمی‌تواند هم‌زمان روی بیش از یک فضای جدول اجرا شود\&. برای فضاهای جدول چندپرونده‌ای، هر پرونده را مشخص کنید: .sp .if n \{\ .RS 4 .\} .nf ibd2sdi ibdata1 ibdata2 .fi .if n \{\ .RE .\} .PP پرونده‌های یک فضای جدول چندپرونده‌ای باید به ترتیب صعودی شماره صفحه مشخص شوند\&. اگر دو پرونده متوالی دارای شناسه فضای یکسان باشند، پرونده بعدی باید با شماره آخرین صفحه پرونده قبلی + ۱ آغاز شود\&. .PP دستور \fBibd2sdi\fR خروجی SDI (شامل فیلدهای id ،type و data) را در قالب JSON تولید می‌کند\&. گزینه‌های ibd2sdi .PP دستور \fBibd2sdi\fR از گزینه‌های زیر پشتیبانی می‌کند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB\--help\fR, \fB\-h\fR .TS allbox tab(:); lB l lB l lB l. T{ قالب خط فرمان T}:T{ --help T} T{ نوع T}:T{ Boolean T} T{ مقدار پیش‌فرض T}:T{ false T} .TE .sp 1 یک پیام راهنما نمایش داده و خارج می‌شود\&. به عنوان مثال: .sp .if n \{\ .RS 4 .\} .nf Usage: \&./ibd2sdi [\-v] [\-c ] [\-d ] [\-n] filename1 [filenames] See http://dev\&.mysql\&.com/doc/refman/9\&.7/en/ibd2sdi\&.html for usage hints\&. \-h, \--help Display this help and exit\&. \-v, \--version Display version information and exit\&. \-#, \--debug[=name] Output debug log\&. See http://dev\&.mysql\&.com/doc/refman/9\&.7/en/dbug\-package\&.html \-d, \--dump\-file=name Dump the tablespace SDI into the file passed by user\&. Without the filename, it will default to stdout \-s, \--skip\-data Skip retrieving data from SDI records\&. Retrieve only id and type\&. \-i, \--id=# Retrieve the SDI record matching the id passed by user\&. \-t, \--type=# Retrieve the SDI records matching the type passed by user\&. \-c, \--strict\-check=name Specify the strict checksum algorithm by the user\&. Allowed values are innodb, crc32, none\&. \-n, \--no\-check Ignore the checksum verification\&. \-p, \--pretty Pretty format the SDI output\&.If false, SDI would be not human readable but it will be of less size (Defaults to on; use \--skip\-pretty to disable\&.) Variables (\--variable\-name=value) and boolean options {FALSE|TRUE} Value (after reading options) \---\---\---\---\---\---\---\---\---\---\-- \---\---\---\---\---\---\---\---\---\---\---\---\-- \- debug (No default value) dump\-file (No default value) skip\-data FALSE id 0 type 0 strict\-check crc32 no\-check FALSE pretty TRUE .fi .if n \{\ .RE .\} .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB\--version\fR, \fB\-v\fR .TS allbox tab(:); lB l lB l lB l. T{ قالب خط فرمان T}:T{ --version T} T{ نوع T}:T{ Boolean T} T{ مقدار پیش‌فرض T}:T{ false T} .TE .sp 1 اطلاعات نسخه را نمایش داده و خارج می‌شود\&. به عنوان مثال: .sp .if n \{\ .RS 4 .\} .nf ibd2sdi Ver 9\&.7\&.0 for Linux on x86_64 (Source distribution) .fi .if n \{\ .RE .\} .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB\--debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR, \fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR .TS allbox tab(:); lB l lB l lB l. T{ قالب خط فرمان T}:T{ --debug=options T} T{ نوع T}:T{ String T} T{ مقدار پیش‌فرض T}:T{ [none] T} .TE .sp 1 یک گزارش اشکال‌زدایی چاپ می‌کند\&. برای گزینه‌های اشکال‌زدایی، به بخش\ \&7.9.4، \(lqبسته DBUG\(rq مراجعه کنید\&. .sp .if n \{\ .RS 4 .\} .nf ibd2sdi \--debug=d:t /tmp/ibd2sdi\&.trace .fi .if n \{\ .RE .\} .sp این گزینه تنها زمانی در دسترس است که MySQL با استفاده از \fBWITH_DEBUG\fR ساخته شده باشد\&. باینری‌های رسمی منتشر شده MySQL ارائه‌شده توسط Oracle با این گزینه ساخته \fIنشده‌اند\fR\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB\--dump\-file=\fR, \fB\-d\fR .TS allbox tab(:); lB l lB l lB l. T{ قالب خط فرمان T}:T{ --dump-file=file T} T{ نوع T}:T{ File name T} T{ مقدار پیش‌فرض T}:T{ [none] T} .TE .sp 1 اطلاعات دیکشنری سریالی‌شده (SDI) را در پرونده دامپ مشخص‌شده می‌ریزد\&. اگر پرونده دامپ مشخص نشود، SDI فضای جدول در stdout نوشته می‌شود\&. .sp .if n \{\ .RS 4 .\} .nf ibd2sdi \--dump\-file=\fIfile_name\fR \&.\&./data/test/t1\&.ibd .fi .if n \{\ .RE .\} .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB\--skip\-data\fR, \fB\-s\fR .TS allbox tab(:); lB l lB l lB l. T{ قالب خط فرمان T}:T{ --skip-data T} T{ نوع T}:T{ Boolean T} T{ مقدار پیش‌فرض T}:T{ false T} .TE .sp 1 از بازیابی مقادیر فیلد data از اطلاعات دیکشنری سریالی‌شده (SDI) صرف‌نظر کرده و تنها مقادیر فیلدهای id و type را که کلیدهای اصلی رکوردهای SDI هستند، بازیابی می‌کند\&. .sp .if n \{\ .RS 4 .\} .nf $> \fBibd2sdi \--skip\-data \&.\&./data/test/t1\&.ibd\fR ["ibd2sdi" , { "type": 1, "id": 330 } , { "type": 2, "id": 7 } ] .fi .if n \{\ .RE .\} .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB\--id=\fR\fB\fI#\fR\fR, \fB\-i \fR\fB\fI#\fR\fR .TS allbox tab(:); lB l lB l lB l. T{ قالب خط فرمان T}:T{ --id=# T} T{ نوع T}:T{ Integer T} T{ مقدار پیش‌فرض T}:T{ 0 T} .TE .sp 1 اطلاعات دیکشنری سریالی‌شده (SDI) منطبق با شناسه شیء (object id) جدول یا فضای جدول مشخص‌شده را بازیابی می‌کند\&. شناسه شیء برای هر نوع شیء منحصربه‌فرد است\&. شناسه‌های شیء جدول و فضای جدول همچنین در ستون id جدول‌های دیکشنری داده mysql\&.tables و mysql\&.tablespace یافت می‌شوند\&. برای اطلاعات بیشتر درباره جدول‌های دیکشنری داده، به بخش\ \&16.1، \(lqطرحواره دیکشنری داده (Data Dictionary Schema)\(rq مراجعه کنید\&. .sp .if n \{\ .RS 4 .\} .nf $> \fBibd2sdi \--id=7 \&.\&./data/test/t1\&.ibd\fR ["ibd2sdi" , { "type": 2, "id": 7, "object": { "mysqld_version_id": 80003, "dd_version": 80003, "sdi_version": 1, "dd_object_type": "Tablespace", "dd_object": { "name": "test/t1", "comment": "", "options": "", "se_private_data": "flags=16417;id=2;server_version=80003;space_version=1;", "engine": "InnoDB", "files": [ { "ordinal_position": 1, "filename": "\&./test/t1\&.ibd", "se_private_data": "id=2;" } ] } } } ] .fi .if n \{\ .RE .\} .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB\--type=\fR\fB\fI#\fR\fR, \fB\-t \fR\fB\fI#\fR\fR .TS allbox tab(:); lB l lB l lB l lB l. T{ قالب خط فرمان T}:T{ --type=# T} T{ نوع T}:T{ Enumeration T} T{ مقدار پیش‌فرض T}:T{ 0 T} T{ مقادیر معتبر T}:T{ .PP 1 .PP 2 T} .TE .sp 1 اطلاعات دیکشنری سریالی‌شده (SDI) منطبق با نوع شیء مشخص‌شده را بازیابی می‌کند\&. اطلاعات SDI برای اشیاء جدول (type=1) و فضای جدول (type=2) ارائه می‌شود\&. .sp این مثال خروجی مربوط به یک فضای جدول ts1 در پایگاه داده test را نشان می‌دهد: .sp .if n \{\ .RS 4 .\} .nf $> \fBibd2sdi \--type=2 \&.\&./data/test/ts1\&.ibd\fR ["ibd2sdi" , { "type": 2, "id": 7, "object": { "mysqld_version_id": 80003, "dd_version": 80003, "sdi_version": 1, "dd_object_type": "Tablespace", "dd_object": { "name": "test/ts1", "comment": "", "options": "", "se_private_data": "flags=16417;id=2;server_version=80003;space_version=1;", "engine": "InnoDB", "files": [ { "ordinal_position": 1, "filename": "\&./test/ts1\&.ibd", "se_private_data": "id=2;" } ] } } } ] .fi .if n \{\ .RE .\} .sp به دلیل شیوه مدیریت فراداده‌های مقادیر پیش‌فرض توسط InnoDB، ممکن است در خروجی \fBibd2sdi\fR برای یک ستون جدول معین، حتی اگر با استفاده از DEFAULT تعریف نشده باشد، مقدار پیش‌فرض وجود داشته و غیرخالی باشد\&. دو جدول ایجادشده با دستورهای زیر را در پایگاه داده‌ای به نام i در نظر بگیرید: .sp .if n \{\ .RS 4 .\} .nf CREATE TABLE t1 (c VARCHAR(16) NOT NULL); CREATE TABLE t2 (c VARCHAR(16) NOT NULL DEFAULT "Sakila"); .fi .if n \{\ .RE .\} .sp با استفاده از \fBibd2sdi\fR، می‌توان مشاهده کرد که default_value برای ستون c غیرخالی است و در واقع در هر دو جدول با بایت‌های خالی تا طول مشخص پر (pad) شده است، مانند این: .sp .if n \{\ .RS 4 .\} .nf $> \fBibd2sdi \&.\&./data/i/t1\&.ibd | grep \-m1 \*(Aq\e"default_value\e"\*(Aq | cut \-b34\- | sed \-e s/,//\fR "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\enAAAAAAAAAAA=" $> \fBibd2sdi \&.\&./data/i/t2\&.ibd | grep \-m1 \*(Aq\e"default_value\e"\*(Aq | cut \-b34\- | sed \-e s/,//\fR "BlNha2lsYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\enAAAAAAAAAAA=" .fi .if n \{\ .RE .\} .sp بررسی خروجی \fBibd2sdi\fR با استفاده از یک ابزار آگاه از JSON مانند \fB\m[blue]\fBjq\fR\m[]\&\s-2\u[3]\d\s+2\fR، همان‌طور که در اینجا نشان داده شده است، ممکن است آسان‌تر باشد: .sp .if n \{\ .RS 4 .\} .nf $> \fBibd2sdi \&.\&./data/i/t1\&.ibd | jq \*(Aq\&.[1]["object"]["dd_object"]["columns"][0]["default_value"]\*(Aq\fR "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\enAAAAAAAAAAA=" $> \fBibd2sdi \&.\&./data/i/t2\&.ibd | jq \*(Aq\&.[1]["object"]["dd_object"]["columns"][0]["default_value"]\*(Aq\fR "BlNha2lsYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\enAAAAAAAAAAA=" .fi .if n \{\ .RE .\} .sp برای اطلاعات بیشتر، به \m[blue]\fBمستندات ساختار داخلی MySQL\fR\m[]\&\s-2\u[4]\d\s+2 مراجعه کنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB\--strict\-check\fR, \fB\-c\fR .TS allbox tab(:); lB l lB l lB l lB l. T{ قالب خط فرمان T}:T{ --strict-check=algorithm T} T{ نوع T}:T{ Enumeration T} T{ مقدار پیش‌فرض T}:T{ crc32 T} T{ مقادیر معتبر T}:T{ .PP crc32 .PP innodb .PP none T} .TE .sp 1 یک الگوریتم بررسی مجموع مقابله‌ای سخت‌گیرانه (strict checksum) را برای اعتبارسنجی چکسام صفحاتی که خوانده می‌شوند، مشخص می‌کند\&. گزینه‌ها شامل innodb، crc32 و none هستند\&. .sp در این مثال، نسخه سخت‌گیرانه الگوریتم چکسام innodb مشخص شده است: .sp .if n \{\ .RS 4 .\} .nf ibd2sdi \--strict\-check=innodb \&.\&./data/test/t1\&.ibd .fi .if n \{\ .RE .\} .sp در این مثال، نسخه سخت‌گیرانه الگوریتم چکسام crc32 مشخص شده است: .sp .if n \{\ .RS 4 .\} .nf ibd2sdi \-c crc32 \&.\&./data/test/t1\&.ibd .fi .if n \{\ .RE .\} .sp اگر گزینه \fB\--strict\-check\fR را مشخص نکنید، اعتبارسنجی در برابر چکسام‌های غیر سخت‌گیرانه innodb، crc32 و none انجام می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB\--no\-check\fR, \fB\-n\fR .TS allbox tab(:); lB l lB l lB l. T{ قالب خط فرمان T}:T{ --no-check T} T{ نوع T}:T{ Boolean T} T{ مقدار پیش‌فرض T}:T{ false T} .TE .sp 1 از اعتبارسنجی چکسام برای صفحاتی که خوانده می‌شوند صرف‌نظر می‌کند\&. .sp .if n \{\ .RS 4 .\} .nf ibd2sdi \--no\-check \&.\&./data/test/t1\&.ibd .fi .if n \{\ .RE .\} .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB\--pretty\fR, \fB\-p\fR .TS allbox tab(:); lB l lB l lB l. T{ قالب خط فرمان T}:T{ --pretty T} T{ نوع T}:T{ Boolean T} T{ مقدار پیش‌فرض T}:T{ false T} .TE .sp 1 داده‌های SDI را در قالب ساختاریافته و خوانای JSON (pretty print) خروجی می‌دهد\&. به‌طور پیش‌فرض فعال است\&. اگر غیرفعال شود، SDI برای انسان خوانا نخواهد بود اما حجم کمتری خواهد داشت\&. برای غیرفعال کردن از \--skip\-pretty استفاده کنید\&. .sp .if n \{\ .RS 4 .\} .nf ibd2sdi \--skip\-pretty \&.\&./data/test/t1\&.ibd .fi .if n \{\ .RE .\} .RE .SH "حق نشر (COPYRIGHT)" .br .PP حق نشر \(co 1997, 2026, Oracle و/یا شرکت‌های وابسته به آن. .PP این مستندات یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط مجوز عمومی همگانی گنو (GNU General Public License) همان‌طور که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است؛ نسخه ۲ مجوز، بازتوزیع کرده و/یا تغییر دهید. .PP این مستندات به این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابلیت فروش یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به مجوز عمومی همگانی گنو مراجعه کنید. .PP شما باید همراه با این برنامه یک نسخه از مجوز عمومی همگانی گنو را دریافت کرده باشید؛ در غیر این صورت، به بنیاد نرم‌افزارهای آزاد با نشانی Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA بنویسید یا به http://www.gnu.org/licenses مراجعه کنید. .sp .SH "نکات (NOTES)" .IP " 1." 4 اطلاعات دیکشنری سریالی‌شده (serialized dictionary information) .RS 4 \%https://dev.mysql.com/doc/refman/8.4/en/glossary.html#glos_serialized_dictionary_information .RE .IP " 2." 4 فضای جدول سیستم (system tablespace) .RS 4 \%https://dev.mysql.com/doc/refman/8.4/en/glossary.html#glos_system_tablespace .RE .IP " 3." 4 jq .RS 4 \%https://stedolan.github.io/jq .RE .IP " 4." 4 مستندات ساختار داخلی MySQL (MySQL Internals documentation) .RS 4 \%https://dev.mysql.com/doc/dev/mysql-server/latest .RE .SH "همچنین ببینید (SEE ALSO)" برای اطلاعات بیشتر، لطفاً به راهنمای مرجع MySQL مراجعه کنید، که ممکن است قبلاً به صورت محلی نصب شده باشد و همچنین به صورت برخط در http://dev.mysql.com/doc در دسترس است. .SH "نویسنده (AUTHOR)" شرکت Oracle (http://dev.mysql.com).