'\" t .\" .TH "\fBMARIADB-BINLOG\fR" "1" "5 March 2025" "MariaDB 11.8" "MariaDB Database System" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .\" mariadb-binlog .SH "نام (NAME)" mariadb-binlog \- ابزاری برای پردازش فایل‌های لاگ باینری (mariadb-binlog اکنون یک پیوند نمادین به mariadb-binlog است) .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBmariadb-binlog\ [\fR\fBoptions\fR\fB]\ \fR\fB\fIlog_file\fR\fR\fB\ \&.\&.\&.\fR\ 'u \fBmariadb-binlog [\fR\fBoptions\fR\fB] \fR\fB\fIlog_file\fR\fR\fB \&.\&.\&.\fR .SH "توضیحات (DESCRIPTION)" .PP لاگ باینری سرور شامل فایل‌هایی حاوی \(lqرویدادها\(rq است که تغییرات اعمال‌شده در محتویات پایگاه‌داده را شرح می‌دهند\&. سرور این فایل‌ها را در قالب باینری می‌نویسد\&. برای نمایش محتویات آن‌ها در قالب متنی، از ابزار \fBmariadb-binlog\fR استفاده کنید\&. همچنین می‌توانید از \fBmariadb-binlog\fR برای نمایش محتویات فایل‌های relay log نوشته‌شده توسط سرور کارگزار (slave) در یک ساختار همانندسازی (replication) استفاده کنید، زیرا فایل‌های relay log قالبی یکسان با لاگ‌های باینری دارند\&. .PP دستور \fBmariadb-binlog\fR را می‌توان به این صورت فراخوانی کرد: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmariadb-binlog [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIlog_file\fR\fR\fB \&.\&.\&.\fR .fi .if n \{\ .RE .\} .PP برای نمونه، جهت نمایش محتویات فایل لاگ باینری با نام binlog\&.000003، از این دستور استفاده کنید: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmariadb-binlog binlog\&.0000003\fR .fi .if n \{\ .RE .\} .PP خروجی شامل رویدادهای موجود در binlog\&.000003 است\&. برای ثبت لاگ مبتنی بر دستور (statement\-based logging)، اطلاعات رویداد شامل دستور SQL، شناسه سروری که دستور روی آن اجرا شده، برچسب زمانی اجرای دستور، میزان زمان صرف‌شده و مواردی از این قبیل است\&. برای ثبت لاگ مبتنی بر ردیف (row\-based logging)، رویداد به جای دستور SQL، تغییر ایجادشده در یک ردیف را نشان می‌دهد\&. .PP پیش از هر رویداد، کامنت‌های سرایند (header) قرار دارند که اطلاعات تکمیلی ارائه می‌دهند\&. به عنوان مثال: .sp .if n \{\ .RS 4 .\} .nf # at 141 #100309 9:28:36 server id 123 end_log_pos 245 Query thread_id=3350 exec_time=11 error_code=0 .fi .if n \{\ .RE .\} .PP در سطر نخست، عدد پس از at موقعیت شروع رویداد را در فایل لاگ باینری نشان می‌دهد\&. .PP سطر دوم با تاریخ و زمانی آغاز می‌شود که نشان می‌دهد دستور در چه زمانی روی سرور مبدأ رویداد شروع به اجرا کرده است\&. در فرآیند replication، این برچسب زمانی به سرورهای slave منتقل می‌شود\&. server id همان مقدار server_id سروری است که رویداد در آن ایجاد شده است\&. end_log_pos نشان می‌دهد رویداد بعدی از کجا شروع می‌شود (یعنی موقعیت پایان رویداد فعلی + ۱)\&. thread_id مشخص می‌کند کدام نخ (thread) رویداد را اجرا کرده است\&. exec_time مدت زمان صرف‌شده برای اجرای رویداد در سرور اصلی (master) است\&. در یک سرور کارگزار (slave)، این مقدار تفاضل زمان پایان اجرا در slave منهای زمان شروع اجرا در master است\&. این اختلاف به عنوان معیاری برای میزان تأخیر replication نسبت به master عمل می‌کند\&. error_code نتیجه اجرای رویداد را نشان می‌دهد\&. مقدار صفر به این معناست که هیچ خطایی رخ نداده است\&. .PP خروجی حاصل از \fBmariadb-binlog\fR می‌تواند دوباره اجرا شود (برای مثال، با استفاده از آن به عنوان ورودی برای \fBmariadb\fR) تا دستورات موجود در لاگ دوباره اعمال شوند\&. این قابلیت برای عملیات بازیابی پس از خرابی ناگهانی سرور (crash) بسیار کاربردی است\&. برای نمونه‌های دیگرِ نحوه استفاده، به توضیحات بعدی در این بخش مراجعه کنید\&. .PP به طور معمول، از \fBmariadb-binlog\fR برای خواندن مستقیم فایل‌های لاگ باینری و اعمال آن‌ها بر روی سرور محلی MariaDB استفاده می‌شود\&. همچنین خواندن لاگ‌های باینری از یک سرور راه‌دور با استفاده از گزینه \fB\-\-read\-from\-remote\-server\fR امکان‌پذیر است\&. برای خواندن لاگ‌های باینری راه‌دور، می‌توان گزینه‌های پارامتر اتصال را برای تعیین نحوه اتصال به سرور مشخص کرد\&. این گزینه‌ها عبارتند از \fB\-\-host\fR، \fB\-\-password\fR، \fB\-\-port\fR، \fB\-\-protocol\fR، \fB\-\-socket\fR و \fB\-\-user\fR؛ این گزینه‌ها نادیده گرفته می‌شوند، مگر این‌که از گزینه \fB\-\-read\-from\-remote\-server\fR نیز استفاده شود\&. .PP ابزار \fBmariadb-binlog\fR از گزینه‌های زیر پشتیبانی می‌کند، که می‌توان آن‌ها را در خط فرمان یا در گروه‌های [mariadb-binlog] و [client] فایل‌های تنظیمات مشخص کرد\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: help option .\" help option: mariadb-binlog \fB\-\-help\fR, \fB\-?\fR .sp نمایش پیام راهنما و خروج\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: base64-output option .\" base64-output option: mariadb-binlog \fB\-\-base64\-output=\fR\fB\fIvalue\fR\fR\fB\fR .sp این گزینه مشخص می‌کند چه زمانی رویدادها باید با استفاده از دستورات BINLOG به صورت رشته‌های کدگذاری‌شده base\-64 نمایش داده شوند\&. این گزینه مقادیر مجاز زیر را می‌پذیرد (به حروف بزرگ و کوچک حساس نیست): .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} AUTO («خودکار») یا UNSPEC («نامشخص») در صورت نیاز دستورات BINLOG را به طور خودکار نمایش می‌دهد (یعنی برای رویدادهای شرح قالب و رویدادهای ردیف)\&. اگر گزینه‌ی \fB\-\-base64\-output\fR مشخص نشده باشد، این مقدار پیش‌فرض است\&. .if n \{\ .sp .\} .RS 4 .it 1 .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBنکته\fR .ps -1 .br نمایش خودکار BINLOG تنها رفتار امن است چنانچه قصد داشته باشید از خروجی \fBmariadb-binlog\fR برای اجرای مجدد محتویات فایل لاگ باینری استفاده کنید\&. سایر مقادیر این گزینه صرفاً برای اهداف اشکال‌زدایی یا آزمایشی در نظر گرفته شده‌اند زیرا ممکن است خروجی‌ای تولید کنند که شامل تمام رویدادها در قالب قابل اجرا نباشد\&..sp .5v .RE .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} مقدار NEVER باعث می‌شود دستورهای BINLOG نمایش داده نشوند\&. اگر رویداد سطری یافت شود که برای نمایش به BINLOG نیاز دارد، \fBmariadb-binlog\fR با خطا خارج می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} مقدار DECODE\-ROWS به \fBmariadb-binlog\fR مشخص می‌کند که قصد دارید رویدادهای سطر رمزگشایی شده و همراه با مشخص کردن گزینهٔ \fB\-\-verbose\fR به‌صورت دستورهای SQL کامنت‌شده نمایش داده شوند\&. مانند NEVER، مقدار DECODE\-ROWS نمایش دستورهای BINLOG را متوقف می‌کند، اما برعکس NEVER، در صورت یافتن رویداد سطر با خطا خارج نمی‌شود\&. .RE .RS 4 گزینهٔ \fB\-\-base64\-output\fR می‌تواند به‌صورت \fB\-\-base64\-output\fR یا \fB\-\-skip\-base64\-output\fR (به مفهوم AUTO یا NEVER) داده شود\&. .sp برای نمونه‌هایی که تأثیر \fB\-\-base64\-output\fR و \fB\-\-verbose\fR را بر خروجی رویداد سطر نشان می‌دهند، بخش \(lqMARIADB-BINLOG ROW EVENT DISPLAY\(rq را ببینید\&. .RE .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: binlog-row-event-max-size option .\" binlog-row-event-max-size option: mariadb-binlog \fB\-\-binlog\-row\-event\-max\-size\=\fR\fB\fIpath\fR\fR .sp دایرکتوری‌ای که مجموعه‌نویسه‌ها در آن نصب شده‌اند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: character-sets-dir option .\" character-sets-dir option: mariadb-binlog \fB\-\-character\-sets\-dir=\fR\fB\fIpath\fR\fR .sp دایرکتوری‌ای که مجموعه‌نویسه‌ها در آن نصب شده‌اند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: database option .\" database option: mariadb-binlog \fB\-\-database=\fR\fB\fIdb_name\fR\fR, \fB\-d \fR\fB\fIdb_name\fR\fR .sp این گزینه باعث می‌شود \fBmariadb-binlog\fR ورودی‌هایی از گزارش دودویی (فقط گزارش محلی) را خروجی دهد که در زمان انتخاب \fIdb_name\fR به‌عنوان پایگاه‌دادهٔ پیش‌فرض با دستور USE رخ داده‌اند\&. .sp گزینهٔ \fB\-\-database\fR برای \fBmariadb-binlog\fR مشابه گزینهٔ \fB\-\-binlog\-do\-db\fR برای \fBmariadbd\fR است، اما تنها می‌تواند برای مشخص کردن یک پایگاه‌داده به کار رود\&. اگر \fB\-\-database\fR چندین بار مشخص شود، تنها آخرین مورد استفاده می‌شود\&. .sp اثرات این گزینه به این بستگی دارد که قالب گزارش‌گیری مبتنی بر دستور (statement\-based) به کار رفته باشد یا مبتنی بر سطر (row\-based)، درست همان‌طور که اثرات \fB\-\-binlog\-do\-db\fR به استفاده از گزارش‌گیری مبتنی بر دستور یا مبتنی بر سطر وابسته است\&. .PP \fBگزارش‌گیری مبتنی بر دستور\fR\&. گزینهٔ \fB\-\-database\fR به شکل زیر عمل می‌کند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} تا زمانی که \fIdb_name\fR پایگاه‌دادهٔ پیش‌فرض است، دستورها خروجی داده می‌شوند، چه جدول‌ها را در \fIdb_name\fR تغییر دهند چه در یک پایگاه‌دادهٔ دیگر\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} مگر اینکه \fIdb_name\fR به‌عنوان پایگاه‌دادهٔ پیش‌فرض انتخاب شده باشد، دستورها در خروجی نشان داده نمی‌شوند، حتی اگر جدول‌ها را در \fIdb_name\fR تغییر دهند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} یک استثنا برای CREATE DATABASE، ALTER DATABASE و DROP DATABASE وجود دارد\&. هنگام تعیین اینکه آیا دستور در خروجی قرار گیرد یا خیر، پایگاه‌داده‌ای که \fIایجاد، اصلاح یا حذف می‌شود\fR به‌عنوان پایگاه‌دادهٔ پیش‌فرض در نظر گرفته می‌شود\&. .RE .RS 4 فرض کنید گزارش دودویی با اجرای این دستورها با استفاده از گزارش‌گیری مبتنی بر دستور (statement\-based logging) ایجاد شده است: .sp .if n \{\ .RS 4 .\}.nf INSERT INTO test\&.t1 (i) VALUES(100); INSERT INTO db2\&.t2 (j) VALUES(200); USE test; INSERT INTO test\&.t1 (i) VALUES(101); INSERT INTO t1 (i) VALUES(102); INSERT INTO db2\&.t2 (j) VALUES(201); USE db2; INSERT INTO test\&.t1 (i) VALUES(103); INSERT INTO db2\&.t2 (j) VALUES(202); INSERT INTO t2 (j) VALUES(203); .fi .if n \{\ .RE .\} .sp دستور \fBmariadb-binlog \-\-database=test\fR دو دستور نخست INSERT را خروجی نمی‌دهد زیرا هیچ پایگاه داده پیش‌فرضی وجود ندارد\&. این دستور سه دستور INSERT پس از USE test را در خروجی می‌آورد، اما سه دستور INSERT پس از USE db2 را خروجی نمی‌دهد\&. .sp دستور \fBmariadb-binlog \-\-database=db2\fR دو دستور نخست INSERT را خروجی نمی‌دهد زیرا هیچ پایگاه داده پیش‌فرضی وجود ندارد\&. این دستور سه دستور INSERT پس از USE test را خروجی نمی‌دهد، اما سه دستور INSERT پس از USE db2 را در خروجی می‌آورد\&. .PP \fBثبت وقایع مبتنی بر ردیف (Row-based logging)\fR. دستور \fBmariadb-binlog\fR تنها ورودی‌هایی را خروجی می‌دهد که جدول‌های متعلق به \fIdb_name\fR را تغییر می‌دهند\&. پایگاه داده پیش‌فرض هیچ تاثیری بر این موضوع ندارد\&. فرض کنید گزارش باینری (binary log) شرح داده‌شده، به جای ثبت وقایع مبتنی بر دستور (statement\-based logging)، با استفاده از ثبت وقایع مبتنی بر ردیف ایجاد شده باشد\&. دستور \fBmariadb-binlog \-\-database=test\fR صرف‌نظر از اینکه USE اجرا شده باشد یا پایگاه داده پیش‌فرض چه باشد، تنها آن ورودی‌هایی را خروجی می‌دهد که t1 را در پایگاه داده test تغییر می‌دهند\&. اگر سروری در حالی در حال اجرا است که binlog_format روی MIXED تنظیم شده و می‌خواهید امکان استفاده از \fBmariadb-binlog\fR با گزینه \fB\-\-database\fR فراهم باشد، باید اطمینان حاصل کنید جدول‌هایی که تغییر می‌یابند در پایگاه داده انتخاب‌شده توسط USE قرار دارند\&. (به‌ویژه نباید از به‌روزرسانی‌های بین پایگاه‌داده‌ای [cross\-database updates] استفاده شود\&.) .if n \{\ .sp .\} .RS 4 .it 1 .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBنکته\fR .ps -1 .br این گزینه پیش از MySQL 5\&.1\&.37 برای \fBmariadb-binlog\fR با ثبت وقایع مبتنی بر ردیف به درستی کار نمی‌کرد\&. .sp .5v .RE .RE .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: debug option .\" debug option: mariadb-binlog \fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR, \fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR .sp یک لاگ اشکال‌زدایی می‌نویسد\&. یک رشته معمول برای \fIdebug_options\fR به صورت \(aqd:t:o,\fIfile_name\fR\(aq است\&. مقدار پیش‌فرض \(aqd:t:o,/tmp/mariadb-binlog.trace\(aq است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: debug-check option .\" debug-check option: mariadb-binlog \fB\-\-debug\-check\fR .sp هنگام خروج برنامه، برخی اطلاعات اشکال‌زدایی را چاپ می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: debug-info option .\" debug-info option: mariadb-binlog \fB\-\-debug\-info\fR .sp هنگام خروج برنامه، اطلاعات اشکال‌زدایی و آمار مصرف حافظه و پردازنده (CPU) را چاپ می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: defaults-extra-file option .\" defaults-extra-file option: mariadb-binlog \fB\-\-defaults\-extra\-file=\fR\fB\fIname\fR .sp این فایل را پس از خوانده شدن فایل‌های سراسری (global) می‌خواند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: defaults-file option .\" defaults-file option: mariadb-binlog \fB\-\-defaults\-file=\fR\fB\fIname\fR .sp گزینه‌های پیش‌فرض را تنها از فایل داده‌شده می‌خواند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: default-auth option .\" default-auth option: mariadb-binlog \fB\-\-default\-auth=\fR\fB\fIname\fR .sp پلاگین پیش‌فرض سمت کلاینت برای احراز هویت جهت استفاده\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: disable-log-bin option .\" disable-log-bin option: mariadb-binlog \fB\-\-disable\-log\-bin\fR, \fB\-D\fR.sp غیرفعال‌سازی ثبت وقایع باینری (binary logging)\&. این ویژگی برای جلوگیری از ایجاد یک حلقهٔ بی‌پایان در صورتی که از گزینهٔ \fB\-\-to\-last\-log\fR استفاده کرده و خروجی را به همان سرور MariaDB ارسال می‌کنید، مفید است\&. همچنین این گزینه هنگام بازیابی پس از خرابی (crash) به منظور جلوگیری از تکرار دستوراتی که ثبت کرده‌اید، سودمند است\&. .sp این گزینه نیازمند داشتن امتیاز SUPER است\&. این امر باعث می‌شود که \fBmariadb-binlog\fR دستور SET sql_log_bin = 0 را در خروجی خود بگنجاند تا ثبت وقایع باینری برای باقی‌ماندهٔ خروجی غیرفعال گردد\&. دستور SET بی‌اثر خواهد بود مگر اینکه امتیاز SUPER را داشته باشید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: flashback option .\" flashback option: mariadb-binlog \fB\-\-flashback\fR, \fB\-B\fR .sp پشتیبانی از حالت بازگشت به عقب (flashback mode)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: force-if-open option .\" force-if-open option: mariadb-binlog \fB\-\-force\-if\-open\fR .sp اجبار در صورتی که binlog به درستی بسته نشده باشد. به‌طور پیش‌فرض فعال است؛ برای غیرفعال‌سازی از \fB\-\-skip\-force\-if\-open\fR استفاده کنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: force-read option .\" force-read option: mariadb-binlog \fB\-\-force\-read\fR, \fB\-f\fR .sp با این گزینه، چنانچه \fBmariadb-binlog\fR یک رویداد لاگ باینری را بخواند که آن را تشخیص نمی‌دهد، یک هشدار چاپ کرده، رویداد را نادیده می‌گیرد و به کار خود ادامه می‌دهد\&. بدون این گزینه، \fBmariadb-binlog\fR در صورت خواندن چنین رویدادی متوقف می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: hexdump option .\" hexdump option: mariadb-binlog \fB\-\-hexdump\fR, \fB\-H\fR .sp نمایش رونوشت شانزده‌شانزدهی (hex dump) لاگ در کامنت‌ها، همان‌طور که در بخش \(lqMARIADB-BINLOG HEX DUMP FORMAT\(rq شرح داده شده است\&. این خروجی هگز می‌تواند برای اشکال‌زدایی همانندسازی (replication) مفید باشد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: host option .\" host option: mariadb-binlog \fB\-\-host=\fR\fB\fIhost_name\fR\fR, \fB\-h \fR\fB\fIhost_name\fR\fR .sp دریافت لاگ باینری از سرور MariaDB روی میزبان (host) مشخص‌شده\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: local-load option .\" local-load option: mariadb-binlog \fB\-\-local\-load=\fR\fB\fIpath\fR\fR, \fB\-l \fR\fB\fIpath\fR\fR .sp آماده‌سازی فایل‌های موقت محلی برای LOAD DATA INFILE در دایرکتوری مشخص‌شده\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: no-defaults option .\" no-defaults option: mariadb-binlog \fB\-\-no\-defaults\fR .sp عدم خواندن گزینه‌های پیش‌فرض از هیچ فایل تنظیماتی (option file)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: offset option .\" offset option: mariadb-binlog \fB\-\-offset=\fR\fB\fIN\fR\fR, \fB\-o \fR\fB\fIN\fR\fR .sp نادیده گرفتن نخستین \fIN\fR مدخل در لاگ\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: open-files-limit option .\" open-files-limit option: mariadb-binlog \fB\-\-open\-files\-limit=\fR\fB\fINUM\fR\fR .sp تنظیم متغیر open_files_limit، که برای رزرو توصیف‌کننده‌های فایل (file descriptors) برای \fBmariadb-binlog\fR استفاده می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: password option .\" password option: mariadb-binlog \fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR, \fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR.sp گذرواژه مورد استفاده هنگام اتصال به سرور\&. اگر از شکل کوتاه گزینه (\fB\-p\fR) استفاده می‌کنید، \fIنباید\fR بین گزینه و گذرواژه فاصله بگذارید\&. اگر مقدار \fIpassword\fR را پس از گزینهٔ \fB\-\-password\fR یا \fB\-p\fR در خط فرمان وارد نکنید، \fBmariadb-binlog\fR آن را از شما درخواست می‌کند\&. .sp مشخص کردن گذرواژه در خط فرمان باید ناامن تلقی شود\&. می‌توانید از یک فایل گزینه استفاده کنید تا از ارائه گذرواژه در خط فرمان خودداری شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: plugin-dir option .\" plugin-dir option: mariadb-binlog \fB\-\-plugin\-dir=\fIdir_name\fR .sp دایرکتوری افزونه‌های سمت کلاینت\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: print-defaults option .\" print-defaults option: mariadb-binlog \fB\-\-print\-defaults\fR .sp چاپ فهرست آرگومان‌های برنامه از تمام فایل‌های گزینه و خروج\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: port option .\" port option: mariadb-binlog \fB\-\-port=\fR\fB\fIport_num\fR\fR, \fB\-P \fR\fB\fIport_num\fR\fR .sp شماره پورت TCP/IP مورد استفاده برای اتصال به سرور راه‌دور، یا \fB0\fR برای پیش‌فرض، به ترتیب اولویت: \fBmy.cnf\fR، \fB$MYSQL_TCP_PORT\fR، \fB/etc/services\fR، \fRپیش‌فرض توکار (3306)\fR\&. اگر در خط فرمان بدون سایر ویژگی‌های اتصال مشخص شود، --protocol=tcp را اجباری می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: protocol option .\" protocol option: mariadb-binlog \fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR .sp پروتکل اتصال مورد استفاده برای اتصال به سرور\&. این گزینه زمانی مفید است که سایر پارامترهای اتصال معمولاً باعث شوند پروتکلی به غیر از پروتکل مورد نظر شما استفاده شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: raw option .\" raw option: mariadb-binlog \fB\-\-raw\fR .sp نیازمند \fB-R\fR است\&. خروجی دادن داده‌های خام binlog به‌جای دستورهای SQL\&. نام‌گذاری فایل‌های خروجی بر اساس لاگ‌های سرور انجام می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: read-from-remote-server option .\" read-from-remote-server option: mariadb-binlog \fB\-\-read\-from\-remote\-server\fR, \fB\-R\fR .sp خواندن لاگ باینری از یک سرور MariaDB به‌جای خواندن یک فایل لاگ محلی\&. هر گزینه از پارامترهای اتصال نادیده گرفته می‌شود مگر اینکه این گزینه نیز داده شده باشد\&. این گزینه‌ها عبارتند از \fB\-\-host\fR، \fB\-\-password\fR، \fB\-\-port\fR، \fB\-\-protocol\fR، \fB\-\-socket\fR و \fB\-\-user\fR\&. .sp این گزینه نیازمند در حال اجرا بودن سرور راه‌دور است\&. این گزینه تنها برای فایل‌های لاگ باینری روی سرور راه‌دور کار می‌کند، نه فایل‌های relay log\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: result-file option .\" result-file option: mariadb-binlog \fB\-\-result\-file=\fR\fB\fIname\fR\fR, \fB\-r \fR\fB\fIname\fR\fR .sp هدایت خروجی به فایل مشخص‌شده\&. همراه با --raw این یک پیشوند برای نام‌های فایل است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: rewrite-db option .\" rewrite-db option: mariadb-binlog \fB\-\-rewrite\-db=\fR\fB\fIname\fR\fR, \fB\-r \fR\fB\fIname\fR\fR .sp اعمال به‌روزرسانی‌ها روی پایگاه داده‌ای با نامی متفاوت از نام اصلی. مثال: \fBrewrite-db='from->to'\fR\&. برای رویدادهایی که به صورت دستورها در binlog ثبت شده‌اند، بازنویسی پایگاه داده شامل تغییر پایگاه داده پیش‌فرض یک دستور از \fIdb1\fB به \fIdb2\fR است\&. هیچ تحلیل یا بازنویسی دستوری از هیچ نوعی صورت نمی‌گیرد؛ یعنی اگر کسی به صراحت \fB"db1.tbl"\fR را در دستور مشخص کند، آن مورد به \fB"db2.tbl"\fR تغییر نخواهد کرد\&. رویدادهای مبتنی بر سطر (Row-based events) به درستی بازنویسی می‌شوند تا از نام جدید پایگاه داده استفاده کنند\&. پالایش (برای مثال با \fB--database=name\fR) پس از انجام بازنویسی‌های پایگاه داده انجام می‌شود\&. اگر از این گزینه در خط فرمان استفاده می‌کنید و \fB">"\fR برای مفسر فرمان شما معنای خاصی دارد، مقدار را درون علامت نقل‌قول قرار دهید (مانند \fB--rewrite-db="oldname->newname"\fR\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: server-id option .\" server-id option: mariadb-binlog \fB\-\-server\-id=\fR\fB\fIid\fR\fR .sp تنها رویدادهایی را نمایش می‌دهد که توسط سروری با شناسه سرور (server ID) داده‌شده ایجاد شده‌اند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\.sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: set-charset option .\" set-charset option: mariadb-binlog \fB\-\-set\-charset=\fR\fB\fIcharset_name\fR\fR .sp یک عبارت SET NAMES \fIcharset_name\fR را به خروجی اضافه می‌کند تا مجموعه‌نویسهٔ مورد استفاده برای پردازش فایل‌های گزارش را مشخص کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: short-form option .\" short-form option: mariadb-binlog \fB\-\-short\-form\fR، \fB\-s\fR .sp تنها دستورات موجود در گزارش را بدون اطلاعات اضافی و بدون رویدادهای مبتنی بر سطر (row-based events) نمایش می‌دهد\&. این گزینه صرفاً برای آزمایش است و نباید در سامانه‌های عملیاتی استفاده شود. اگر می‌خواهید از تولید خروجی base64 جلوگیری کنید، در عوض استفاده از \fB--base64-output=never\fR را مد نظر قرار دهید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: socket option .\" socket option: mariadb-binlog \fB\-\-socket=\fR\fB\fIpath\fR\fR، \fB\-S \fR\fB\fIpath\fR\fR .sp برای اتصال‌ها به localhost، فایل سوکت یونیکس مورد استفاده، یا در Windows، نام لولهٔ نام‌گذاری‌شده (named pipe) را مشخص می‌کند\&. در صورتی که بدون سایر مشخصات اتصال در خط فرمان تعیین شود، گزینهٔ --protocol=socket را اجبار می‌کند؛ در Windows، گزینهٔ --protocol=pipe را اجبار می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: start-datetime option .\" start-datetime option: mariadb-binlog \fB\-\-start\-datetime=\fR\fB\fIdatetime\fR\fR .sp خواندن گزارش دودویی را از نخستین رویدادی آغاز می‌کند که برچسب زمانی آن برابر یا پس از آرگومان \fIdatetime\fR باشد\&. مقدار \fIdatetime\fR نسبت به منطقهٔ زمانی محلی ماشینی است که \fBmariadb-binlog\fR را در آن اجرا می‌کنید\&. این مقدار باید در قالبی باشد که برای انواع دادهٔ DATETIME یا TIMESTAMP پذیرفته می‌شود\&. برای نمونه: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmariadb-binlog \-\-start\-datetime="2014\-12\-25 11:25:56" binlog\&.000003\fR .fi .if n \{\ .RE .\} .sp این گزینه برای بازیابی در نقطهٔ زمانی (point\-in\-time recovery) مفید است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: start-position option .\" start-position option: mariadb-binlog \fB\-\-start\-position=\fR\fB\fIN\fR\fR، \fB\-j \fR\fB\fIN\fR\fR .sp خواندن گزارش دودویی را از \fIN\fR آغاز می‌کند\&. نوع می‌تواند یک عدد صحیح مثبت یا فهرستی از GTID\& باشد\&. هنگام استفاده از عدد صحیح مثبت، مقدار تعیین‌شده تنها بر نخستین binlog ارائه‌شده در خط فرمان اعمال می‌شود و اولین رویدادی که موقعیتی برابر یا بزرگ‌تر از \fIN\fR داشته باشد چاپ می‌شود\&. در حالت GTID، می‌توان چندین GTID را به‌صورت فهرستی جداشده با کاما ارسال کرد که هرکدام باید یک شناسهٔ دامنه (domain id) یکتا داشته باشند\&. این فهرست وضعیت gtid binlog را نشان می‌دهد که کلاینت (یک کارگزار «slave» دیگر) از آن آگاه است\&. بنابراین، هر GTID انحصاری است؛ تنها رویدادهای پس از یک شمارهٔ دنباله مشخص چاپ می‌شوند تا به کاربران اجازه دهد رویدادهای پس از وضعیت فعلی خود را دریافت کنند\&. .sp این گزینه برای بازیابی در نقطهٔ زمانی (point\-in\-time recovery) مفید است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: gtid-strict-mode .\" gtid-strict-mode option: mariadb-binlog \fB\-\-gtid\-strict\-mode .sp گزارش binlog را بر اساس مشخصات gtid-strict-mode پردازش می‌کند\&. موقعیت‌های شروع (start) و پایان (stop) بررسی می‌شوند تا شرط مقایسه‌ای start < stop برقرار باشد\&. شماره‌های دنباله در هر دامنهٔ gtid باید یک دنبالهٔ یکنواخت صعودی را تشکیل دهند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: stop-datetime option .\" stop-datetime option: mariadb-binlog \fB\-\-stop\-datetime=\fR\fB\fIdatetime\fR\fR .sp خواندن گزارش دودویی را در نخستین رویدادی متوقف می‌کند که برچسب زمانی آن برابر یا پس از آرگومان \fIdatetime\fR باشد\&. این گزینه برای بازیابی در نقطهٔ زمانی (point\-in\-time recovery) مفید است\&. برای اطلاعات بیشتر دربارهٔ مقدار \fIdatetime\fR، توضیحات مربوط به گزینهٔ \fB\-\-start\-datetime\fR را مشاهده کنید\&. .sp این گزینه برای بازیابی در نقطهٔ زمانی (point\-in\-time recovery) مفید است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: stop-never option .\" stop-never option: mariadb-binlog \fB\-\-stop\-never\fR .sp به جای توقف در انتهای آخرین گزارش، منتظر دریافت داده‌های بیشتر از کارگزار می‌ماند\&. این گزینه مستلزم \fB--to-last-log\fR است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: stop-never-slave-server-id option .\" stop-never-slave-server-id option: mariadb-binlog \fB\-\-stop\-never-slave-server-id\fR .sp شناسهٔ server_id مربوط به کارگزار slave که برای \fB--read-from-remote-server --stop-never\fR به کار می‌رود\&. .RE.sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: stop-position option .\" stop-position option: mariadb-binlog \fB\-\-stop\-position=\fR\fB\fIN\fR\fR .sp خواندن لاگ باینری را در نخستین رویدادی که موقعیت آن برابر یا بزرگ‌تر از \fIN\fR باشد متوقف می‌کند\&. نوع می‌تواند یک عدد صحیح مثبت یا فهرستی از GTID باشد\&. هنگام استفاده از یک عدد صحیح مثبت، این مقدار تنها برای آخرین فایل لاگ مشخص‌شده در خط فرمان اعمال می‌شود\&. در حالت GTID، چندین GTID می‌توانند به‌صورت یک فهرست جداشده با کاما ارسال شوند، که هرکدام باید یک domain id یکتا داشته باشند\&. هر GTID شامل‌شونده (inclusive) است؛ تنها رویدادها تا شماره‌های توالی داده‌شده چاپ می‌شوند. .sp این گزینه برای بازیابی نقطه در زمان (point\-in\-time recovery) مفید است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: table option .\" table option: mariadb-binlog \fB\-\-table\fR, \fB\-T\fR .sp ورودی‌های مربوط به فقط همین جدول را فهرست می‌کند (تنها برای لاگ محلی)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: to-last-log option .\" to-last-log option: mariadb-binlog \fB\-\-to\-last\-log\fR, \fB\-t\fR .sp در پایان لاگ باینریِ درخواست‌شده از کارساز MariaDB متوقف نمی‌شود، بلکه به چاپ کردن تا انتهای آخرین لاگ باینری ادامه می‌دهد\&. اگر خروجی را به همان کارساز MariaDB ارسال کنید، ممکن است منجر به یک حلقهٔ بی‌پایان شود، بنابراین این گزینه نیازمند \fB\-\-read\-from\-remote\-server\fR است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: user option .\" user option: mariadb-binlog \fB\-\-user=\fR\fB\fIuser_name\fR\fR, \fB\-u \fR\fB\fIuser_name\fR\fR .sp نام‌کاربری MariaDB جهت استفاده هنگام اتصال به یک کارساز دوردست\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: verbose option .\" verbose option: mariadb-binlog \fB\-\-verbose\fR, \fB\-v\fR .sp رویدادهای سطر (row events) را بازسازی کرده و آن‌ها را به‌صورت دستورهای کامنت‌شدهٔ SQL نمایش می‌دهد\&. اگر این گزینه دو بار داده شود، خروجی شامل کامنت‌هایی برای نشان دادن نوع‌داده‌های ستون و برخی فراداده‌ها (metadata) خواهد بود\&. اگر این گزینه سه بار داده شود، خروجی شامل هشدارهای تشخیصی دربارهٔ یکپارچگی رویداد پیش از خروج از برنامه خواهد بود\&. .sp برای مثال‌هایی که تأثیر \fB\-\-base64\-output\fR و \fB\-\-verbose\fR را بر روی خروجی رویداد سطر نشان می‌دهند، بخش \(lqMARIADB-BINLOG ROW EVENT DISPLAY\(rq را ببینید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" mariadb-binlog: version option .\" version option: mariadb-binlog \fB\-\-version\fR, \fB\-V\fR .sp اطلاعات نسخه را نمایش داده و خارج می‌شود\&. .RE .PP همچنین می‌توانید متغیر زیر را با استفاده از ساختار \fB\-\-\fR\fB\fIvar_name\fR\fR\fB=\fR\fB\fIvalue\fR\fR تنظیم کنید: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} .\" open_files_limit variable open_files_limit .sp تعداد توصیف‌کننده‌های فایل (file descriptors) باز را برای رزرو مشخص می‌کند\&. .RE .PP می‌توانید خروجی \fBmariadb-binlog\fR را به کلاینت \fBmariadb\fR هدایت کنید (pipe) تا رویدادهای موجود در لاگ باینری را اجرا کند\&. این روش برای بازیابی پس از خرابی (crash) هنگامی که یک پشتیبان قدیمی دارید استفاده می‌شود\&. برای نمونه: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmariadb-binlog binlog\&.000001 | mariadb \-u root \-p\fR .fi .if n \{\ .RE .\} .PP یا: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmariadb-binlog binlog\&.[0\-9]* | mariadb \-u root \-p\fR .fi .if n \{\ .RE .\} .PP همچنین اگر نیاز دارید ابتدا لاگ دستورها را ویرایش کنید (برای نمونه، جهت حذف دستورهایی که به دلایلی نمی‌خواهید اجرا شوند)، می‌توانید خروجی \fBmariadb-binlog\fR را به یک فایل متنی بازهدایت کنید\&. پس از ویرایش فایل، با استفاده از آن به عنوان ورودی برنامهٔ \fBmariadb\fR دستورهای موجود در آن را اجرا کنید: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmariadb-binlog binlog\&.000001 > tmpfile\fR shell> \&.\&.\&. \fIedit tmpfile\fR \&.\&.\&. shell> \fBmariadb \-u root \-p < tmpfile\fR .fi .if n \{\ .RE .\} .PP هنگامی که \fBmariadb-binlog\fR با گزینهٔ \fB\-\-start\-position\fR فراخوانی شود، تنها رویدادهایی را با آفست در لاگ باینری بزرگ‌تر یا برابر با موقعیت داده‌شده نمایش می‌دهد (موقعیت داده‌شده باید با شروع یک رویداد مطابقت داشته باشد)\&. این ابزار همچنین گزینه‌هایی برای توقف و شروع هنگام دیدن رویدادی با تاریخ و زمان معین دارد\&. این امر شما را قادر می‌سازد با استفاده از گزینهٔ \fB\-\-stop\-datetime\fR بازیابی نقطه در زمان (point\-in\-time recovery) انجام دهید (تا بتوانید برای مثال بگویید: \(lqپایگاه‌های داده‌ام را به وضعیتی که امروز ساعت ۱۰:۳۰ صبح بودند بازگردان\(rq)\&..PP اگر بیش از یک لاگ باینری (binary log) برای اجرا روی سرور MariaDB دارید، روش امن این است که همهٔ آن‌ها را با استفاده از یک اتصال واحد به سرور پردازش کنید\&. در اینجا مثالی آمده است که نشان می‌دهد چه کاری ممکن است \fIناامن\fR باشد: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmariadb-binlog binlog\&.000001 | mariadb \-u root \-p # DANGER!!\fR shell> \fBmariadb-binlog binlog\&.000002 | mariadb \-u root \-p # DANGER!!\fR .fi .if n \{\ .RE .\} .PP پردازش لاگ‌های باینری به این روش با استفاده از اتصال‌های مجزا به سرور، در صورتی که نخستین فایل لاگ حاوی یک دستور CREATE TEMPORARY TABLE باشد و لاگ دوم حاوی دستوری باشد که از این جدول موقت استفاده می‌کند، باعث بروز مشکل می‌شود\&. هنگامی که نخستین فرآیند \fBmariadb\fR پایان می‌یابد، سرور جدول موقت را حذف می‌کند\&. با تلاش دومین فرآیند \fBmariadb\fR برای استفاده از این جدول، سرور خطای \(lqunknown table\&.\(rq را گزارش می‌دهد\&. .PP برای جلوگیری از چنین مشکلاتی، از یک فرآیند \fIواحد\fR \fBmariadb\fR برای اجرای محتویات تمامی لاگ‌های باینری مورد نظر جهت پردازش استفاده کنید\&. در اینجا یک روش برای انجام این کار آمده است: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmariadb-binlog binlog\&.000001 binlog\&.000002 | mariadb \-u root \-p\fR .fi .if n \{\ .RE .\} .PP رویکرد دیگر این است که تمام لاگ‌ها را در یک فایل واحد بنویسید و سپس آن فایل را پردازش کنید: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmariadb-binlog binlog\&.000001 > /tmp/statements\&.sql\fR shell> \fBmariadb-binlog binlog\&.000002 >> /tmp/statements\&.sql\fR shell> \fBmariadb \-u root \-p \-e "source /tmp/statements\&.sql"\fR .fi .if n \{\ .RE .\} .PP دستور \fBmariadb-binlog\fR می‌تواند خروجی‌ای تولید کند که یک عملیات LOAD DATA INFILE را بدون نیاز به فایل دادهٔ اصلی بازتولید نماید\&. \fBmariadb-binlog\fR داده‌ها را در یک فایل موقت کپی کرده و یک دستور LOAD DATA LOCAL INFILE می‌نویسد که به آن فایل ارجاع دارد\&. مکان پیش‌فرض دایرکتوری‌ای که این فایل‌ها در آن نوشته می‌شوند مختص هر سیستم است\&. برای مشخص کردن صریح یک دایرکتوری، از گزینهٔ \fB\-\-local\-load\fR استفاده کنید\&. .PP از آنجا که \fBmariadb-binlog\fR دستورهای LOAD DATA INFILE را به دستورهای LOAD DATA LOCAL INFILE تبدیل می‌کند (یعنی LOCAL را اضافه می‌کند)، هم کلاینت و هم سروری که برای پردازش این دستورها به کار می‌گیرید باید به‌گونه‌ای پیکربندی شده باشند که قابلیت LOCAL در آن‌ها فعال باشد\&. .if n \{\ .sp .\} .RS 4 .it 1 .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBهشدار\fR .ps -1 .br .PP فایل‌های موقت ایجادشده برای دستورهای LOAD DATA LOCAL به‌طور خودکار حذف \fIنمی‌شوند\fR زیرا تا زمانی که این دستورها را واقعاً اجرا نکنید، به آن‌ها نیاز است\&. پس از اینکه دیگر به لاگ دستورها نیازی نداشتید، باید فایل‌های موقت را خودتان حذف کنید\&. این فایل‌ها در دایرکتوری فایل‌های موقت قرار دارند و نام‌هایی مانند \fIoriginal_file_name\-#\-#\fR دارند\&. .sp .5v .RE.SH "قالب دامپ هگز MARIADB-BINLOG (MARIADB-BINLOG HEX DUMP FORMAT)" .PP گزینهٔ \fB\-\-hexdump\fR باعث می‌شود که \fBmariadb-binlog\fR یک دامپ هگز از محتویات لاگ باینری تولید کند: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmariadb-binlog \-\-hexdump master\-bin\&.000001\fR .fi .if n \{\ .RE .\} .PP خروجی هگز شامل خطوط توضیحی است که با # آغاز می‌شوند، بنابراین خروجی برای دستور پیشین ممکن است به این صورت باشد: .sp .if n \{\ .RS 4 .\} .nf /*!40019 SET @@session\&.max_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; # at 4 #051024 17:24:13 server id 1 end_log_pos 98 # Position Timestamp Type Master ID Size Master Pos Flags # 00000004 9d fc 5c 43 0f 01 00 00 00 5e 00 00 00 62 00 00 00 00 00 # 00000017 04 00 35 2e 30 2e 31 35 2d 64 65 62 75 67 2d 6c |\&.\&.5\&.0\&.15\&.debug\&.l| # 00000027 6f 67 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |og\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.| # 00000037 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.| # 00000047 00 00 00 00 9d fc 5c 43 13 38 0d 00 08 00 12 00 |\&.\&.\&.\&.\&.\&.\&.C\&.8\&.\&.\&.\&.\&.\&.| # 00000057 04 04 04 04 12 00 00 4b 00 04 1a |\&.\&.\&.\&.\&.\&.\&.K\&.\&.\&.| # Start: binlog v 4, server v 5\&.0\&.15\-debug\-log created 051024 17:24:13 # at startup ROLLBACK; .fi .if n \{\ .RE .\} .PP خروجی دامپ هگز در حال حاضر شامل موارد فهرست زیر است\&. این قالب ممکن است تغییر کند\&. (برای اطلاعات بیشتر دربارهٔ قالب لاگ باینری، ببینید: \m[blue]\fB\%http://forge.mysql.com/wiki/MySQL_Internals_Binary_Log\fR\m[]\&.) .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Position: موقعیت بایتی در فایل لاگ\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Timestamp: برچسب زمانی رویداد\&. در مثال نمایش‌داده‌شده، '9d fc 5c 43' نمایش '051024 17:24:13' در قالب شانزده‌شانزدهی (هگزادسیمال) است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Type: کد نوع رویداد\&. در مثال نمایش‌داده‌شده، '0f' نشان‌دهندهٔ یک FORMAT_DESCRIPTION_EVENT است\&. جدول زیر کدهای نوع ممکن را فهرست می‌کند\&. .TS allbox tab(:); l l lx. T{ نوع T}:T{ نام T}:T{ مفهوم T} T{ 00 T}:T{ UNKNOWN_EVENT T}:T{ این رویداد هرگز نباید در لاگ وجود داشته باشد\&. T} T{ 01 T}:T{ START_EVENT_V3 T}:T{ نشان‌دهندهٔ آغاز یک فایل لاگ نوشته‌شده توسط MySQL 4 یا پیش از آن است\&. T} T{ 02 T}:T{ QUERY_EVENT T}:T{ رایج‌ترین نوع رویدادها\&. این‌ها حاوی دستورهای اجراشده روی master هستند\&. T} T{ 03 T}:T{ STOP_EVENT T}:T{ نشان می‌دهد که سرور master متوقف شده است\&. T} T{ 04 T}:T{ ROTATE_EVENT T}:T{ زمانی نوشته می‌شود که سرور master به یک فایل لاگ جدید منتقل شود\&. T} T{ 05 T}:T{ INTVAR_EVENT T}:T{ برای مقادیر AUTO_INCREMENT یا هنگامی که از تابع LAST_INSERT_ID() در دستور استفاده شده باشد، به کار می‌رود\&. T} T{ 06 T}:T{ LOAD_EVENT T}:T{ برای LOAD DATA INFILE در MySQL 3\&.23 استفاده می‌شود\&. T} T{ 07 T}:T{ SLAVE_EVENT T}:T{ برای استفاده در آینده رزرو شده است\&. T} T{ 08 T}:T{ CREATE_FILE_EVENT T}:T{ برای دستورهای LOAD DATA INFILE استفاده می‌شود\&. این رویداد آغاز اجرای چنین دستوری را نشان می‌دهد\&. یک فایل موقت روی slave ایجاد می‌شود\&. تنها در MySQL 4 استفاده می‌شود\&. T} T{ 09 T}:T{ APPEND_BLOCK_EVENT T}:T{ حاوی داده‌ها برای استفاده در یک دستور LOAD DATA INFILE است\&. این داده‌ها در فایل موقت روی slave ذخیره می‌شوند\&. T} T{ 0a T}:T{ EXEC_LOAD_EVENT T}:T{ برای دستورهای LOAD DATA INFILE استفاده می‌شود\&. محتویات فایل موقت در جدول روی slave ذخیره می‌شود\&. تنها در MySQL 4 استفاده می‌شود\&. T} T{ 0b T}:T{ DELETE_FILE_EVENT T}:T{ بازگردانی (Rollback) یک دستور LOAD DATA INFILE\&. فایل موقت باید روی slave حذف شود\&. T} T{ 0c T}:T{ NEW_LOAD_EVENT T}:T{ برای LOAD DATA INFILE در MySQL 4 و پیش از آن استفاده می‌شود\&. T} T{ 0d T}:T{ RAND_EVENT T}:T{ برای ارسال اطلاعات دربارهٔ مقادیر تصادفی در صورتی که تابع RAND() در دستور استفاده شده باشد، به کار می‌رود\&. T} T{ 0e T}:T{ USER_VAR_EVENT T}:T{ برای همانندسازی متغیرهای کاربر استفاده می‌شود\&. T} T{ 0f T}:T{ .nf FORMAT_DESCRIPTION_EVENT T}:T{ نشان‌دهندهٔ آغاز یک فایل لاگ نوشته‌شده توسط MySQL 5 یا جدیدتر است\&. T} T{ 10 T}:T{ XID_EVENT T}:T{ رویدادی که نشان‌دهندهٔ ثبت قطعی (commit) یک تراکنش XA است\&. T} T{ 11 T}:T{ BEGIN_LOAD_QUERY_EVENT T}:T{ برای دستورهای LOAD DATA INFILE در MySQL 5 و جدیدتر استفاده می‌شود\&. T} T{ 12 T}:T{ EXECUTE_LOAD_QUERY_EVENT T}:T{ برای دستورهای LOAD DATA INFILE در MySQL 5 و جدیدتر استفاده می‌شود\&. T} T{ 13 T}:T{ TABLE_MAP_EVENT T}:T{ اطلاعاتی دربارهٔ تعریف یک جدول\&. در MySQL 5\&.1\&.5 و جدیدتر استفاده می‌شود\&. T} T{ 14 T}:T{ PRE_GA_WRITE_ROWS_EVENT T}:T{ داده‌های سطر برای یک جدول منفرد که باید ایجاد شود\&. در MySQL 5\&.1\&.5 تا 5\&.1\&.17 استفاده شده است\&. T} T{ 15 T}:T{ PRE_GA_UPDATE_ROWS_EVENT T}:T{ داده‌های سطر برای یک جدول منفرد که باید به‌روزرسانی شود\&. در MySQL 5\&.1\&.5 تا 5\&.1\&.17 استفاده شده است\&. T} T{ 16 T}:T{ PRE_GA_DELETE_ROWS_EVENT T}:T{ داده‌های سطر برای یک جدول منفرد که باید حذف شود\&. در MySQL 5\&.1\&.5 تا 5\&.1\&.17 استفاده شده است\&. T} T{ 17 T}:T{ WRITE_ROWS_EVENT T}:T{ داده‌های سطر برای یک جدول منفرد که باید ایجاد شود\&. در MySQL 5\&.1\&.18 و جدیدتر استفاده می‌شود\&. T} T{ 18 T}:T{ UPDATE_ROWS_EVENT T}:T{ داده‌های سطر برای یک جدول منفرد که باید به‌روزرسانی شود\&. در MySQL 5\&.1\&.18 و جدیدتر استفاده می‌شود\&. T} T{ 19 T}:T{ DELETE_ROWS_EVENT T}:T{ داده‌های سطر برای یک جدول منفرد که باید حذف شود\&. در MySQL 5\&.1\&.18 و جدیدتر استفاده می‌شود\&. T} T{ 1a T}:T{ INCIDENT_EVENT T}:T{ رویدادی غیرعادی رخ داده است\&. در MySQL 5\&.1\&.18 افزوده شد\&. T}.TE .sp 1 .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Master ID: شناسه سرور (server ID) سرور master که رویداد را ایجاد کرده است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Size: اندازه رویداد بر حسب بایت\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Master Pos: موقعیت رویداد بعدی در فایل گزارش (log file) اصلی سرور master\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Flags: ۱۶ پرچم\&. در حال حاضر، پرچم‌های زیر استفاده می‌شوند\&. بقیه برای استفاده در آینده رزرو شده‌اند\&. .TS allbox tab(:); l l lx. T{ پرچم T}:T{ نام T}:T{ مفهوم T} T{ 01 T}:T{ .nf LOG_EVENT_BINLOG_IN_USE_F T}:T{ فایل لاگ به‌درستی بسته شده است\&. (تنها در FORMAT_DESCRIPTION_EVENT استفاده می‌شود\&.) اگر این پرچم تنظیم شده باشد (اگر پرچم‌ها، برای نمونه، \(aq01 00\(aq باشند) در یک FORMAT_DESCRIPTION_EVENT، فایل لاگ به‌درستی بسته نشده است\&. به‌احتمال بسیار زیاد این امر به دلیل کرش سرور master (برای نمونه به دلیل قطعی برق) رخ داده است\&. T} T{ 02 T}:T{ \ \& T}:T{ برای استفاده در آینده رزرو شده است\&. T} T{ 04 T}:T{ .nf LOG_EVENT_THREAD_SPECIFIC_F T}:T{ تنظیم می‌شود اگر رویداد وابسته به اتصالی باشد که در آن اجرا شده است (برای نمونه، \(aq04 00\(aq)؛ برای مثال، اگر رویداد از جدول‌های موقت (temporary tables) استفاده کند\&. T} T{ 08 T}:T{ LOG_EVENT_SUPPRESS_USE_F T}:T{ در برخی شرایط هنگامی که رویداد وابسته به پایگاه‌داده پیش‌فرض نباشد، تنظیم می‌شود\&. T} .TE .sp 1 .RE.SH "نمایش رویدادهای سطری در MARIADB-BINLOG (MARIADB-BINLOG ROW EVENT DISPLAY)" .\" BINLOG statement: mariadb-binlog output .PP مثال‌های زیر نشان می‌دهند که چگونه \fBmariadb-binlog\fR رویدادهای سطری (row events) را که مشخص‌کننده تغییرات داده‌ها هستند نمایش می‌دهد\&. این رویدادها متناظر با کدهای نوع WRITE_ROWS_EVENT، UPDATE_ROWS_EVENT و DELETE_ROWS_EVENT هستند\&. گزینه‌های \fB\-\-base64\-output=DECODE\-ROWS\fR و \fB\-\-verbose\fR می‌توانند برای تغییر نحوه خروجی رویدادهای سطری استفاده شوند\&. .PP فرض کنید سرور از ثبت لاگ دودویی مبتنی بر سطر (row\-based binary logging) استفاده می‌کند و شما توالی دستورهای زیر را اجرا می‌کنید: .sp .if n \{\ .RS 4 .\} .nf CREATE TABLE t ( id INT NOT NULL, name VARCHAR(20) NOT NULL, date DATE NULL ) ENGINE = InnoDB; START TRANSACTION; INSERT INTO t VALUES(1, 'apple', NULL); UPDATE t SET name = 'pear', date = '2009\-01\-01' WHERE id = 1; DELETE FROM t WHERE id = 1; COMMIT; .fi .if n \{\ .RE .\} .PP به طور پیش‌فرض، \fBmariadb-binlog\fR رویدادهای سطری را با استفاده از دستورهای BINLOG به صورت رشته‌های کدگذاری‌شده base\-64 نمایش می‌دهد\&. با صرف‌نظر از خطوط اضافی، خروجی رویدادهای سطری تولیدشده توسط توالی دستورهای پیشین به این شکل خواهد بود: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmariadb-binlog \fR\fB\fIlog_file\fR\fR \&.\&.\&. # at 218 #080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 flags: STMT_END_F BINLOG 'fAS3SBMBAAAALAAAANoAAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= fAS3SBcBAAAAKAAAAAIBAAAQABEAAAAAAAEAA//8AQAAAAVhcHBsZQ=='/*!*/; \&.\&.\&. # at 302 #080828 15:03:08 server id 1 end_log_pos 356 Update_rows: table id 17 flags: STMT_END_F BINLOG 'fAS3SBMBAAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= fAS3SBgBAAAANgAAAGQBAAAQABEAAAAAAAEAA////AEAAAAFYXBwbGX4AQAAAARwZWFyIbIP'/*!*/; \&.\&.\&. # at 400 #080828 15:03:08 server id 1 end_log_pos 442 Delete_rows: table id 17 flags: STMT_END_F BINLOG 'fAS3SBMBAAAALAAAAJABAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= fAS3SBkBAAAAKgAAALoBAAAQABEAAAAAAAEAA//4AQAAAARwZWFyIbIP'/*!*/; .fi .if n \{\ .RE .\} .PP برای دیدن رویدادهای سطری به عنوان یادداشت در قالب دستورهای \(lqشبه‌اس‌کیوال (pseudo\-SQL)\(rq، دستور \fBmariadb-binlog\fR را همراه با گزینه \fB\-\-verbose\fR یا \fB\-v\fR اجرا کنید\&. خروجی شامل خطوطی خواهد بود که با ### آغاز می‌شوند: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmariadb-binlog \-v \fR\fB\fIlog_file\fR\fR \&.\&.\&. # at 218 #080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 flags: STMT_END_F BINLOG 'fAS3SBMBAAAALAAAANoAAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= fAS3SBcBAAAAKAAAAAIBAAAQABEAAAAAAAEAA//8AQAAAAVhcHBsZQ=='/*!*/; ### INSERT INTO test\&.t ### SET ### @1=1 ### @2='apple' ### @3=NULL \&.\&.\&. # at 302 #080828 15:03:08 server id 1 end_log_pos 356 Update_rows: table id 17 flags: STMT_END_F BINLOG 'fAS3SBMBAAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= fAS3SBgBAAAANgAAAGQBAAAQABEAAAAAAAEAA////AEAAAAFYXBwbGX4AQAAAARwZWFyIbIP'/*!*/; ### UPDATE test\&.t ### WHERE ### @1=1 ### @2='apple' ### @3=NULL ### SET ### @1=1 ### @2='pear' ### @3='2009:01:01' \&.\&.\&. # at 400 #080828 15:03:08 server id 1 end_log_pos 442 Delete_rows: table id 17 flags: STMT_END_F BINLOG 'fAS3SBMBAAAALAAAAJABAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= fAS3SBkBAAAAKgAAALoBAAAQABEAAAAAAAEAA//4AQAAAARwZWFyIbIP'/*!*/; ### DELETE FROM test\&.t ### WHERE ### @1=1 ### @2='pear' ### @3='2009:01:01' .fi .if n \{\ .RE .\} .PP گزینه \fB\-\-verbose\fR یا \fB\-v\fR را دو بار مشخص کنید تا انواع داده‌ها و مقداری فراداده نیز برای هر ستون نمایش داده شود\&. خروجی شامل یک یادداشت اضافی در ادامه تغییرات هر ستون خواهد بود: .sp .if n \{\ .RS 4 .\} .nf shell> \fBmariadb-binlog \-vv \fR\fB\fIlog_file\fR\fR \&.\&.\&. # at 218 #080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 flags: STMT_END_F BINLOG 'fAS3SBMBAAAALAAAANoAAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= fAS3SBcBAAAAKAAAAAIBAAAQABEAAAAAAAEAA//8AQAAAAVhcHBsZQ=='/*!*/; ### INSERT INTO test\&.t ### SET ### @1=1 /* INT meta=0 nullable=0 is_null=0 */ ### @2='apple' /* VARSTRING(20) meta=20 nullable=0 is_null=0 */ ### @3=NULL /* VARSTRING(20) meta=0 nullable=1 is_null=1 */ \&.\&.\&. # at 302 #080828 15:03:08 server id 1 end_log_pos 356 Update_rows: table id 17 flags: STMT_END_F BINLOG 'fAS3SBMBAAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= fAS3SBgBAAAANgAAAGQBAAAQABEAAAAAAAEAA////AEAAAAFYXBwbGX4AQAAAARwZWFyIbIP'/*!*/; ### UPDATE test\&.t ### WHERE ### @1=1 /* INT meta=0 nullable=0 is_null=0 */ ### @2='apple' /* VARSTRING(20) meta=20 nullable=0 is_null=0 */ ### @3=NULL /* VARSTRING(20) meta=0 nullable=1 is_null=1 */ ### SET ### @1=1 /* INT meta=0 nullable=0 is_null=0 */ ### @2='pear' /* VARSTRING(20) meta=20 nullable=0 is_null=0 */ ### @3='2009:01:01' /* DATE meta=0 nullable=1 is_null=0 */ \&.\&.\&. # at 400 #080828 15:03:08 server id 1 end_log_pos 442 Delete_rows: table id 17 flags: STMT_END_F BINLOG 'fAS3SBMBAAAALAAAAJABAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= fAS3SBkBAAAAKgAAALoBAAAQABEAAAAAAAEAA//4AQAAAARwZWFyIbIP'/*!*/; ### DELETE FROM test\&.t ### WHERE ### @1=1 /* INT meta=0 nullable=0 is_null=0 */ ### @2='pear' /* VARSTRING(20) meta=20 nullable=0 is_null=0 */ ### @3='2009:01:01' /* DATE meta=0 nullable=1 is_null=0 */ .fi .if n \{\ .RE .\} .PP می‌توانید با استفاده از گزینه \fB\-\-base64\-output=DECODE\-ROWS\fR به \fBmariadb-binlog\fR بگویید که از نمایش دستورهای BINLOG برای رویدادهای سطری صرف‌نظر کند\&. این کار شبیه به \fB\-\-base64\-output=NEVER\fR است، اما در صورتی که یک رویداد سطری یافت شود، با خطا خارج نمی‌شود\&. ترکیب \fB\-\-base64\-output=DECODE\-ROWS\fR و \fB\-\-verbose\fR روشی مناسب برای دیدن رویدادهای سطری صرفاً به صورت دستورهای SQL فراهم می‌کند:.sp .if n \{\ .RS 4 .\} .nf shell> \fBmariadb-binlog \-v \-\-base64\-output=DECODE\-ROWS \fR\fB\fIlog_file\fR\fR \&.\&.\&. # at 218 #080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 flags: STMT_END_F ### INSERT INTO test\&.t ### SET ### @1=1 ### @2='apple' ### @3=NULL \&.\&.\&. # at 302 #080828 15:03:08 server id 1 end_log_pos 356 Update_rows: table id 17 flags: STMT_END_F ### UPDATE test\&.t ### WHERE ### @1=1 ### @2='apple' ### @3=NULL ### SET ### @1=1 ### @2='pear' ### @3='2009:01:01' \&.\&.\&. # at 400 #080828 15:03:08 server id 1 end_log_pos 442 Delete_rows: table id 17 flags: STMT_END_F ### DELETE FROM test\&.t ### WHERE ### @1=1 ### @2='pear' ### @3='2009:01:01' .fi .if n \{\ .RE .\} .sp .if n \{\ .sp .\} .RS 4 .it 1 .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBنکته\fR .ps -1 .br .PP اگر قصد اجرای مجدد خروجی \fBmariadb-binlog\fR را دارید، نباید دستورات BINLOG را سرکوب کنید\&. .sp .5v .RE .PP دستورات SQL تولیدشده توسط \fB\-\-verbose\fR برای رویدادهای سطری بسیار خواناتر از دستورات متناظر BINLOG هستند\&. با این حال، آن‌ها دقیقاً با دستورات اصلی SQL که رویدادها را ایجاد کرده‌اند مطابقت ندارند\&. محدودیت‌های زیر اعمال می‌شوند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} نام‌های اصلی ستون‌ها از بین می‌روند و با @\fIN\fR جایگزین می‌شوند، که در آن \fIN\fR شماره ستون است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} اطلاعات مجموعه نویسه‌ها در لاگ دودویی در دسترس نیست، که این امر بر نمایش ستون‌های رشته‌ای تأثیر می‌گذارد: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} هیچ تمایزی میان انواع رشته‌های باینری و غیرباینری متناظر قائل نمی‌شود (BINARY و CHAR، VARBINARY و VARCHAR، BLOB و TEXT)\&. خروجی از نوع داده STRING برای رشته‌های با طول ثابت و VARSTRING برای رشته‌های با طول متغیر استفاده می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} برای مجموعه‌های نویسه چندبایتی، حداکثر تعداد بایت‌ها به ازای هر نویسه در لاگ دودویی وجود ندارد؛ بنابراین طول انواع رشته‌ای به جای تعداد نویسه‌ها، بر حسب بایت نمایش داده می‌شود\&. برای مثال، STRING(4) به عنوان نوع داده برای مقادیر حاصل از هر یک از این انواع ستون استفاده خواهد شد: .sp .if n \{\ .RS 4 .\} .nf CHAR(4) CHARACTER SET latin1 CHAR(2) CHARACTER SET ucs2 .fi .if n \{\ .RE .\} .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} به دلیل قالب ذخیره‌سازی رویدادهای از نوع UPDATE_ROWS_EVENT، دستورات UPDATE به گونه‌ای نمایش داده می‌شوند که بند WHERE پیش از بند SET قرار می‌گیرد\&. .RE .RE .PP تفسیر صحیح رویدادهای سطری نیازمند اطلاعات رویداد توصیف قالب (format description event) در ابتدای لاگ دودویی است\&. از آنجا که \fBmariadb-binlog\fR از پیش نمی‌داند که آیا ادامه لاگ حاوی رویدادهای سطری است یا خیر، به طور پیش‌فرض رویداد توصیف قالب را با استفاده از یک دستور BINLOG در بخش ابتدایی خروجی نمایش می‌دهد\&. .PP اگر مشخص باشد که لاگ دودویی حاوی هیچ رویدادی که به دستور BINLOG نیاز داشته باشد نیست (یعنی هیچ رویداد سطری وجود ندارد)، گزینه \fB\-\-base64\-output=NEVER\fR می‌تواند برای جلوگیری از نوشتن این سرآیند به کار رود\&..SH "کپی‌رایت و تکثیر (COPYRIGHT)" .br .PP کپی‌رایت 2007-2008 MySQL AB، 2008-2010 Sun Microsystems, Inc.، 2010-2025 MariaDB Foundation .PP این مستندات یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تنها تحت شرایط مجوز عمومی همگانی گنو (GNU General Public License) همان‌گونه که توسط بنیاد نرم‌افزارهای آزاد (Free Software Foundation) منتشر شده است، بازتوزیع کرده و/یا تغییر دهید؛ نسخهٔ ۲ این مجوز. .PP این مستندات به این امید توزیع شده است که مفید باشد، اما بدون هیچ‌گونه ضمانتی؛ حتی بدون ضمانت ضمنی قابلیت فروش یا تناسب برای یک هدف خاص. برای جزئیات بیشتر به مجوز عمومی همگانی گنو (GNU General Public License) مراجعه کنید. .PP شما باید به همراه این برنامه نسخه‌ای از GNU General Public License را دریافت کرده باشید؛ در غیر این صورت، به آدرس Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA نامه بنویسید یا به http://www.gnu.org/licenses مراجعه کنید. .sp .SH "نکات (NOTES)" .IP " 1." 4 Bug#42941 .RS 4 \%http://bugs.mysql.com/bug.php?id=42941 .RE .SH "همچنین ببینید (SEE ALSO)" برای اطلاعات بیشتر، لطفاً به مستندات MariaDB مراجعه کنید که به‌صورت برخط در https://mariadb.com/docs در دسترس است. .SH "نویسندگان (AUTHORS)" بنیاد MariaDB Foundation (http://www.mariadb.org).