GoGPT Best VPN GoSearch

فاویکون OnWorks

pt-online-schema-changep - آنلاین در ابر

اجرای pt-online-schema-changep در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS

این دستور pt-online-schema-changep است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


pt-online-schema-change - جداول را بدون قفل کردن آنها تغییر دهید.

خلاصه


استفاده: pt-online-schema-change [OPTIONS] DSN

pt-online-schema-change ساختار جدول را بدون مسدود کردن خواندن یا نوشتن تغییر می‌دهد.
پایگاه داده و جدول را در DSN مشخص کنید. قبل از خواندن این ابزار از آن استفاده نکنید
اسناد و بک آپ های خود را به دقت بررسی کنید.

یک ستون به sakila.actor اضافه کنید:

pt-online-schema-change --alter "ADD COLUMN c1 INT" D=sakila,t=actor

Sakila.actor را به InnoDB تغییر دهید، به طور موثر OPTIMIZE TABLE را در حالت غیر مسدود کننده انجام دهید.
مد زیرا در حال حاضر یک جدول InnoDB است:

pt-online-schema-change --alter "ENGINE=InnoDB" D=sakila,t=actor

خطرات


Percona Toolkit بالغ است، در دنیای واقعی اثبات شده است، و به خوبی آزمایش شده است، اما همه پایگاه داده است
ابزارها می توانند برای سیستم و سرور پایگاه داده خطر ایجاد کنند. قبل از استفاده از این ابزار،
لطفا:

· اسناد ابزار را بخوانید

· بررسی "BUGS" شناخته شده ابزار

· ابزار را روی یک سرور غیر تولیدی تست کنید

· از سرور تولید خود نسخه پشتیبان تهیه کنید و پشتیبان گیری را تأیید کنید

شرح


pt-online-schema-change روشی را شبیه سازی می کند که MySQL جداول را به صورت داخلی تغییر می دهد، اما کار می کند.
روی یک کپی از جدولی که می خواهید تغییر دهید. این به این معنی است که جدول اصلی نیست
قفل شده است و مشتریان ممکن است به خواندن و تغییر داده ها در آن ادامه دهند.

pt-online-schema-change با ایجاد یک کپی خالی از جدول برای تغییر، اصلاح کار می کند
آن را به دلخواه، و سپس سطرها را از جدول اصلی در جدول جدید کپی کنید. وقتی که
کپی کامل است، جدول اصلی را حذف می کند و جدول جدید را جایگزین می کند. توسط
به طور پیش فرض، جدول اصلی را نیز حذف می کند.

فرآیند کپی داده‌ها در تکه‌های کوچکی از داده‌ها انجام می‌شود، که برای تلاش متفاوت هستند
آنها را در یک زمان مشخص اجرا کنید (به "--chunk-time" مراجعه کنید). این روند بسیار است
مشابه نحوه کار سایر ابزارها، مانند pt-table-checksum. هر گونه تغییر در داده ها در
جداول اصلی در طول کپی در جدول جدید منعکس خواهد شد، زیرا ابزار
تریگرهایی را در جدول اصلی ایجاد می کند تا ردیف های مربوطه را در جدول جدید به روز کند.
استفاده از تریگرها به این معنی است که اگر تریگر از قبل تعریف شده باشد، ابزار کار نخواهد کرد
روی میز.

وقتی ابزار کپی داده ها را در جدول جدید به پایان رساند، از یک "RENAME TABLE" اتمی استفاده می کند.
عملیات تغییر نام همزمان جداول اصلی و جدید. پس از تکمیل این،
ابزار جدول اصلی را حذف می کند.

کلیدهای خارجی عملکرد ابزار را پیچیده می کنند و خطر بیشتری را ایجاد می کنند. تکنیک
تغییر نام اتمی جداول اصلی و جدید در صورت ارجاع کلیدهای خارجی کار نمی کند
به میز ابزار باید کلیدهای خارجی را به روز کند تا بعد از طرح به جدول جدید مراجعه کند
تغییر کامل است این ابزار از دو روش برای انجام این کار پشتیبانی می کند. تو میتوانی بخوانی
اطلاعات بیشتر در مورد این در مستندات "--alter-foreign-keys-method" است.

کلیدهای خارجی نیز عوارض جانبی ایجاد می کنند. جدول نهایی همان کلیدهای خارجی را خواهد داشت
و به عنوان جدول اصلی ایندکس می شود (مگر اینکه در ALTER خود به شکل دیگری مشخص کنید
بیانیه)، اما نام اشیاء ممکن است کمی تغییر کند تا از نام شیء جلوگیری شود
برخورد در MySQL و InnoDB.

برای ایمنی، ابزار جدول را تغییر نمی دهد مگر اینکه گزینه "--execute" را مشخص کنید.
که به طور پیش فرض فعال نیست. این ابزار از انواع اقدامات دیگر برای جلوگیری پشتیبانی می کند
بار ناخواسته یا مشکلات دیگر، از جمله شناسایی خودکار کپی ها، اتصال به
آنها و با استفاده از بررسی های ایمنی زیر:

· در بیشتر موارد، ابزار از کار کردن امتناع می‌کند، مگر اینکه کلید اصلی یا شاخص منحصر به فرد باشد.
موجود در جدول برای جزئیات بیشتر به "--alter" مراجعه کنید.

· اگر این ابزار فیلترهای تکرار را تشخیص دهد از کار کردن خودداری می کند. دیدن
"--[no]check-replication-filters" برای جزئیات بیشتر.

· این ابزار در صورت مشاهده هر گونه کپی که به تأخیر افتاده است، عملیات کپی داده را متوقف می کند
در تکثیر برای جزئیات بیشتر به "--max-lag" مراجعه کنید.

· این ابزار در صورت تشخیص بار زیاد روی سرور، عملیات خود را متوقف یا متوقف می کند. دیدن
برای جزئیات، "--max-load" و "--critical-load".

· ابزار "innodb_lock_wait_timeout=1" و (برای MySQL 5.5 و جدیدتر) را تنظیم می کند.
"lock_wait_timeout=60" تا احتمال اینکه قربانی هر قفلی شود بیشتر باشد
اختلاف، و کمتر احتمال دارد که سایر معاملات را مختل کند. این مقادیر می تواند باشد
با تعیین "--set-vars" تغییر کرد.

· ابزار از تغییر جدول امتناع می ورزد اگر محدودیت های کلید خارجی به آن ارجاع دهند، مگر اینکه
شما "--alter-foreign-keys-method" را مشخص می کنید.

· این ابزار نمی تواند جداول MyISAM را در گره های "Percona XtraDB Cluster" تغییر دهد.

پرکونا XtraDB خوشه


pt-online-schema-change با Percona XtraDB Cluster (PXC) 5.5.28-23.7 و جدیدتر کار می کند، اما
دو محدودیت وجود دارد: فقط جداول InnoDB را می توان تغییر داد و "wsrep_OSU_method" باید
روی "TOI" (جداسازی کل سفارش) تنظیم شود. اگر میزبان a باشد، ابزار با خطا خارج می شود
گره خوشه و جدول MyISAM است یا در حال تبدیل به MyISAM ("ENGINE=MyISAM")، یا
اگر "wsrep_OSU_method" "TOI" نباشد. هیچ راهی برای غیرفعال کردن این چک ها وجود ندارد.

OUTPUT


این ابزار اطلاعات مربوط به فعالیت های خود را در STDOUT چاپ می کند تا بتوانید ببینید چیست
در حال انجام. در طول مرحله کپی داده ها، گزارش های "--پیشرفت" را در STDERR چاپ می کند. میتونی به دستش بیاری
اطلاعات اضافی با مشخص کردن "--print".

اگر "--statistics" مشخص شده باشد، گزارشی از تعداد رویدادهای داخلی مختلف در آن چاپ می شود
پایان، مانند:

# تعداد رویداد
# ===========
# درج 1

OPTIONS


"--dry-run" و "--execute" متقابل هستند.

این ابزار آرگومان های اضافی خط فرمان را می پذیرد. به "خلاصه" و استفاده مراجعه کنید
اطلاعات برای جزئیات

-- تغییر دهید
نوع: رشته

اصلاح طرحواره، بدون کلمات کلیدی ALTER TABLE. می توانید چندین اجرا کنید
تغییرات در جدول با مشخص کردن آنها با کاما. لطفاً به MySQL مراجعه کنید
کتابچه راهنمای نحو ALTER TABLE.

محدودیت‌های زیر اعمال می‌شود که در صورت تلاش، باعث از کار افتادن ابزار می‌شود
راه های غیر قابل پیش بینی:

· تقریباً در همه موارد یک کلید اولیه یا شاخص منحصر به فرد باید در آن وجود داشته باشد
جدول. این ضروری است زیرا ابزار یک ماشه DELETE را برای حفظ آن ایجاد می کند
جدول جدید در حین اجرای فرآیند به روز شد.

یک استثنای قابل توجه زمانی است که یک کلید اولیه یا INDEX منحصر به فرد از آن ایجاد می شود
موجود ستون ها به عنوان بخشی از بند ALTER؛ در آن صورت از اینها استفاده خواهد کرد
ستون(های) برای محرک DELETE.

· از بند "RENAME" نمی توان برای تغییر نام جدول استفاده کرد.

· ستون ها را نمی توان با انداختن و اضافه کردن مجدد با نام جدید تغییر نام داد. ابزار
داده های ستون اصلی را در ستون جدید کپی نمی کند.

· اگر ستونی را بدون مقدار پیش فرض اضافه کنید و آن را NOT NULL کنید، ابزار این کار را انجام خواهد داد
شکست بخورد، زیرا سعی نمی کند یک مقدار پیش فرض را برای شما حدس بزند. شما باید مشخص کنید
به طور پیش فرض

· "DROP FOREIGN KEY constraint_name" به جای آن نیاز به تعیین "_constraint_name" دارد.
از "constraint_name" واقعی. به دلیل محدودیت در MySQL، pt-online-schema-
تغییر هنگام ایجاد نام، یک زیرخط اصلی به نام‌های محدودیت کلید خارجی اضافه می‌کند
میز جدید به عنوان مثال، برای حذف این محدودیت:

محدودیت "fk_foo" کلید خارجی ("foo_id") "نوار" مراجع ("foo_id")

شما باید "--alter "DROP FOREIGN KEY _fk_foo" را مشخص کنید.

· این ابزار از "LOCK IN SHARE MODE" با MySQL 5.0 استفاده نمی کند زیرا می تواند باعث ایجاد مشکل شود.
خطای slave که تکرار را می شکند:

Query باعث ایجاد خطاهای مختلفی در master و slave شد. خطا در استاد:
هنگام تلاش برای قفل کردن، بن بست پیدا شد. شروع مجدد تراکنش را امتحان کنید' (1213)،
خطا در Slave: "بدون خطا" (0). پایگاه داده پیش فرض: 'pt_osc'.
پرس و جو: 'INSERT INTO pt_osc.t (id, c) VALUES ('730', 'new row')'

این خطا هنگام تبدیل جدول MyISAM به InnoDB رخ می دهد زیرا MyISAM غیر از
تراکنشی اما InnoDB تراکنشی است. MySQL 5.1 و جدیدتر این مورد را مدیریت می کند
درست است، اما آزمایش خطا را در 5٪ مواقع با MySQL 5.0 بازتولید می کند.

این یک اشکال MySQL است، مشابهhttp://bugs.mysql.com/bug.php?id=45694>، اما
هیچ راه حل یا راه حلی در MySQL 5.0 وجود ندارد. بدون "LOCK IN SHARE MODE"، تست می شود
100٪ مواقع می گذرد، بنابراین خطر از دست دادن داده ها یا شکستن تکرار باید وجود داشته باشد
ناچیز

Be مطمئن به بررسی la جدید جدول if با استفاده از خروجی 5.0 و تبدیل از جانب MyISAM به
InnoDB!

-روش کلیدهای خارجی را تغییر دهید
نوع: رشته

چگونه کلیدهای خارجی را تغییر دهیم تا به جدول جدید ارجاع دهند. کلیدهای خارجی که
ارجاع به جدولی که باید تغییر داده شود باید به طور ویژه مورد بررسی قرار گیرد تا اطمینان حاصل شود که آنها
به ارجاع به جدول صحیح ادامه دهید. وقتی ابزار نام جدول اصلی را به
بگذارید کلید جدید جای آن را بگیرد، کلیدهای خارجی جدول تغییر نام یافته را دنبال می کنند و باید
به جای ارجاع به جدول جدید تغییر کند.

این ابزار برای رسیدن به این هدف از دو تکنیک پشتیبانی می کند. به طور خودکار "کودک" را پیدا می کند
جداول" که به جدولی که باید تغییر داده شود اشاره می کند.

خودکار
به طور خودکار تعیین کنید که کدام روش بهترین است. این ابزار از "rebuild_constraints" استفاده می کند
در صورت امکان (برای جزئیات به شرح آن روش مراجعه کنید)، و اگر نه، پس آن را انجام دهید
از "drop_swap" استفاده می کند.

rebuild_constraints
این روش از "ALTER TABLE" برای حذف و اضافه کردن مجدد محدودیت های کلید خارجی استفاده می کند
به جدول جدید مراجعه کنید این تکنیک ارجح است، مگر اینکه یک یا چند مورد از آنها باشد
جداول "کودک" آنقدر بزرگ است که "ALTER" خیلی طول می کشد. ابزار
تعیین می کند که با مقایسه تعداد ردیف های جدول فرزند با نرخ در
که ابزار قادر به کپی ردیف ها از جدول قدیمی به جدول جدید است. اگر
ابزار تخمین می زند که جدول کودک را می توان در زمان کمتری تغییر داد
"--chunk-time"، سپس از این تکنیک استفاده خواهد کرد. به منظور برآورد
زمان مورد نیاز برای تغییر جدول فرزند، ابزار نرخ کپی ردیف را چند برابر می کند
توسط "--chunk-size-limit"، زیرا "ALTER TABLE" MySQL معمولاً بسیار سریعتر است.
نسبت به فرآیند خارجی کپی کردن ردیف ها.

به دلیل محدودیت در MySQL، کلیدهای خارجی پس از آن نام یکسانی ندارند
تغییری که آنها قبل از آن انجام دادند. این ابزار باید نام کلید خارجی را تغییر دهد
آن را مجدداً تعریف می کند، که یک زیرخط اصلی به نام اضافه می کند. در برخی موارد، MySQL
همچنین به طور خودکار فهرست های مورد نیاز برای کلید خارجی را تغییر نام می دهد.

drop_swap
بررسی های کلید خارجی را غیرفعال کنید (FOREIGN_KEY_CHECKS=0)، سپس جدول اصلی را رها کنید
قبل از تغییر نام جدول جدید به جای خود. این با حالت عادی متفاوت است
روش مبادله جدول قدیمی و جدید که از یک "RENAME" اتمی استفاده می کند
برای برنامه های مشتری غیرقابل شناسایی

این روش سریعتر است و مسدود نمی کند، اما به دو دلیل ریسک بیشتری دارد.
ابتدا، برای مدت کوتاهی بین حذف جدول اصلی و تغییر نام آن
جدول موقت، جدول به سادگی وجود ندارد، و نمایش داده شد
در مقابل آن منجر به خطا می شود. ثانیاً در صورت وجود خطا و جدید
میز را نمی توان به جای جدول قدیمی تغییر نام داد، پس برای آن خیلی دیر شده است
سقط کنید، زیرا جدول قدیمی برای همیشه از بین رفته است.

این روش "--no-swap-tables" و "-no-drop-old-table" را مجبور می کند.

هیچ
این روش مانند "drop_swap" بدون "swap" است. هر کلید خارجی که
ارجاع داده شده به جدول اصلی اکنون به جدولی که وجود ندارد ارجاع خواهد داد. این اراده
معمولاً باعث نقض کلید خارجی می شود که در "SHOW ENGINE INNODB" قابل مشاهده است
STATUS"، مشابه موارد زیر:

تلاش برای افزودن چند تای «idx_fk_staff_id» به ایندکس:
DATA TUPLE: 2 فیلد.
0: لن 1; هگز 05; صعودی ;;
1: لن 4; هگز 80000001; صعودی ;;
اما جدول پدر و مادر `sakila`.`staff_old`
یا فایل ibd آن در حال حاضر وجود ندارد!

این به این دلیل است که جدول اصلی (در این مورد، sakila.staff) به تغییر نام داده شد
sakila.staff_old و سپس افتاد. این روش برای رسیدگی به محدودیت های کلید خارجی
ارائه شده است تا مدیر پایگاه داده بتواند داخلی ابزار را غیرفعال کند
قابلیت در صورت تمایل

--[نه]تحلیل-قبل از-مبادله
پیش فرض: بله

قبل از تعویض با جدول قبلی، ANALYZE TABLE را روی جدول جدید اجرا کنید. به صورت پیش فرض،
این فقط در هنگام اجرای MySQL 5.6 و جدیدتر اتفاق می افتد و "innodb_stats_persistent" است
فعال شد. این گزینه را به صراحت مشخص کنید تا آن را بدون توجه به MySQL فعال یا غیرفعال کنید
نسخه و "innodb_stats_persistent".

این یک مشکل بالقوه جدی مربوط به آمار بهینه ساز InnoDB را دور می زند.
اگر جدولی که هشدار داده می شود مشغول باشد و ابزار به سرعت تکمیل شود، جدول جدید انجام می شود
پس از تعویض، آمار بهینه ساز را نداشته باشید. این می تواند باعث استفاده سریع و شاخص شود
پرس و جوهایی برای انجام اسکن کامل جدول تا زمانی که آمار بهینه ساز به روز شود (معمولاً بعد از
10 ثانیه). اگر جدول بزرگ باشد و سرور بسیار شلوغ باشد، ممکن است باعث قطعی شود.

--ask-pass
هنگام اتصال به MySQL یک رمز عبور درخواست کنید.

-- مجموعه حروف
فرم کوتاه: -A; نوع: رشته

مجموعه کاراکترهای پیش فرض اگر مقدار utf8 باشد، حالت binmode Perl را در STDOUT روی utf8 تنظیم کنید.
گزینه mysql_enable_utf8 را به DBD::mysql منتقل می کند و SET NAMES UTF8 را بعد از آن اجرا می کند.
اتصال به MySQL هر مقدار دیگری، binmode را در STDOUT بدون لایه utf8 تنظیم می کند.
و SET NAMES را پس از اتصال به MySQL اجرا می کند.

--[no]check-alter
پیش فرض: بله

"--alter" مشخص شده را تجزیه می کند و سعی می کند در مورد رفتار ناخواسته احتمالی هشدار دهد.
در حال حاضر، آن را بررسی می کند:

تغییر نام ستون ها
در نسخه‌های قبلی ابزار، تغییر نام ستونی با «تغییر نام ستون
new_name" منجر به از بین رفتن داده های آن ستون می شود. ابزار اکنون آن را تجزیه می کند
عبارت را تغییر می دهد و سعی می کند این موارد را بگیرد، بنابراین ستون های تغییر نام یافته باید داشته باشند
همان داده های اصلی با این حال، کدی که این کار را انجام می دهد کامل نیست
تجزیه کننده SQL blown، بنابراین ابتدا باید ابزار را با "--dry-run" و "--print" اجرا کنید.
و بررسی کنید که ستون های تغییر نام یافته را به درستی تشخیص دهد.

کلید اصلی را رها کنید
اگر "--alter" حاوی "DROP PRIMARY KEY" (بدون حساس به حروف کوچک و بزرگ)، یک هشدار
چاپ می شود و ابزار خارج می شود مگر اینکه "--dry-run" مشخص شده باشد. تغییر دادن
کلید اصلی می تواند خطرناک باشد، اما ابزار می تواند آن را مدیریت کند. محرک های ابزار،
به خصوص ماشه DELETE، بیشتر تحت تأثیر تغییر کلید اصلی قرار می گیرد
زیرا ابزار ترجیح می دهد از کلید اصلی برای محرک های خود استفاده کند. تو باید
ابتدا ابزار را با "--dry-run" و "--print" اجرا کنید و بررسی کنید که محرک ها هستند
درست باشد.

- بازه بررسی
نوع: زمان؛ پیش فرض: 1

زمان خواب بین بررسی های "--max-lag".

--[no]check-plan
پیش فرض: بله

برنامه های اجرای پرس و جو را برای ایمنی بررسی کنید. این گزینه به طور پیش فرض باعث اجرای ابزار می شود
قبل از اجرای پرس و جوهایی که به منظور دسترسی به مقدار کمی از داده ها هستند، توضیح دهید
در صورتی که MySQL طرح اجرای بدی را انتخاب کند، می تواند به بسیاری از ردیف ها دسترسی داشته باشد. اینها شامل
پرس و جوهایی برای تعیین مرزهای chunk و خود chunk جستجو می کند. اگر ظاهر شود
که MySQL از یک طرح اجرای پرس و جو بد استفاده می کند، ابزار از قسمتی از
جدول.

این ابزار از چندین روش اکتشافی برای تعیین اینکه آیا یک برنامه اجرایی بد است استفاده می کند. در
اول اینکه آیا EXPLAIN گزارش می دهد که MySQL قصد دارد از فهرست مورد نظر برای دسترسی استفاده کند
ردیف ها اگر MySQL شاخص دیگری را انتخاب کند، ابزار پرس و جو را ناامن در نظر می گیرد.

این ابزار همچنین بررسی می کند که چه مقدار از نمایه MySQL گزارش می دهد که برای آن استفاده خواهد کرد
پرس و جو. خروجی EXPLAIN این را در ستون key_len نشان می دهد. ابزار به یاد می آورد
بزرگترین key_len دیده شده، و از قسمت هایی که MySQL گزارش می دهد که از یک کوچکتر استفاده خواهد کرد، پرش می کند
پیشوند شاخص این اکتشافی را می توان به عنوان پرش از تکه هایی فهمید که دارای a
برنامه اجرایی بدتر از سایر قطعات

این ابزار در اولین باری که یک قطعه به دلیل اجرای بد حذف می شود، یک هشدار چاپ می کند
در هر جدول برنامه ریزی کنید تکه‌های بعدی بی‌صدا رد می‌شوند، اگرچه می‌توانید آن را ببینید
تعداد تکه های نادیده گرفته شده در ستون SKIPPED در خروجی ابزار.

این گزینه مقداری کار راه اندازی به هر جدول و تکه اضافه می کند. اگرچه کار نیست
مزاحم برای MySQL، منجر به رفت و برگشت بیشتر به سرور می شود که مصرف می کند
زمان. کوچک کردن تکه ها باعث می شود که سربار نسبتاً بزرگتر شود. آی تی
بنابراین توصیه می شود که تکه ها را خیلی کوچک نکنید، زیرا ممکن است این ابزار طول بکشد
اگر این کار را انجام دهید زمان بسیار طولانی برای تکمیل

--[no]check-replication-filters
پیش فرض: بله

اگر فیلتر تکراری روی هر سروری تنظیم شده باشد، لغو شود. ابزار به دنبال سرور می گردد
گزینه هایی که تکرار را فیلتر می کنند، مانند binlog_ignore_db و replicate_do_db. اگر این
چنین فیلترهایی را پیدا می کند، با یک خطا سقط می شود.

اگر کپی‌ها با هر گزینه فیلتر پیکربندی شده‌اند، باید مراقب باشید
برای تغییر هر پایگاه داده یا جدولی که در Master وجود دارد و نه Replica،
زیرا ممکن است باعث شکست تکرار شود. برای اطلاعات بیشتر در مورد تکرار
قوانین، ببینیدhttp://dev.mysql.com/doc/en/replication-rules.html>.

--چک-برده-لگ
نوع: رشته

کپی داده را مکث کنید تا تاخیر این ماکت کمتر از "--max-lag" شود. مقدار a است
DSN که خواص را از گزینه های اتصال به ارث می برد ("--port"، "--user"،
و غیره.). این گزینه بر رفتار معمولی یافتن و به طور مداوم لغو می شود
نظارت بر تاخیر تکرار در همه ماکت های متصل اگر نمی خواهید نظارت کنید
همه کپی ها، اما شما می خواهید بیش از یک ماکت نظارت شود، سپس از آن استفاده کنید
گزینه DSN به گزینه "--recursion-method" به جای این گزینه.

--تکه-شاخص
نوع: رشته

این شاخص را برای جداول تکه ای ترجیح دهید. به طور پیش فرض، ابزار بیشترین انتخاب را دارد
شاخص مناسب برای قطعه بندی این گزینه به شما امکان می دهد شاخص مورد نظر خود را مشخص کنید
ترجیح می دهند. اگر ایندکس وجود نداشته باشد، ابزار به حالت پیش فرض خود برمی گردد
رفتار انتخاب شاخص این ابزار ایندکس را به دستورات SQL در a اضافه می کند
بند "FORCE INDEX". هنگام استفاده از این گزینه مراقب باشید؛ انتخاب ضعیف شاخص می تواند
باعث عملکرد بد شود

--chunk-index-columns
نوع: بین المللی

فقط از این تعداد ستون سمت چپ یک "--chunk-index" استفاده کنید. این فقط برای
ایندکس های ترکیبی، و در مواردی که اشکال در بهینه ساز پرس و جو MySQL وجود دارد، مفید است
(برنامه ریز) باعث می شود به جای استفاده از شاخص برای مکان یابی، محدوده وسیعی از ردیف ها را اسکن کند
نقطه شروع و پایان دقیقا این مشکل گاهی اوقات در نمایه هایی با
بسیاری از ستون ها، مانند 4 یا بیشتر. اگر این اتفاق بیفتد، ابزار ممکن است یک هشدار چاپ کند
مربوط به گزینه "--[no]check-plan" است. آموزش ابزار برای استفاده از اولین
N ستون ایندکس در برخی موارد راه حلی برای رفع اشکال است.

-- اندازه تکه
نوع: اندازه; پیش فرض: 1000

تعداد ردیف هایی که باید برای هر تکه کپی شده انتخاب کنید. پسوندهای مجاز k، M، G هستند.

این گزینه می تواند رفتار پیش فرض را که تنظیم اندازه تکه است، لغو کند
به صورت پویا سعی کنید قطعات را دقیقاً در "--chunk-time" ثانیه اجرا کنید. وقتی این
گزینه به طور صریح تنظیم نشده است، مقدار پیش فرض آن به عنوان نقطه شروع استفاده می شود، اما پس از آن
که، ابزار مقدار این گزینه را نادیده می گیرد. اگر این گزینه را به صراحت تنظیم کنید،
با این حال، سپس رفتار تنظیم پویا را غیرفعال می کند و سعی می کند همه تکه ها را ایجاد کند
دقیقا تعداد ردیف های مشخص شده

یک نکته ظریف وجود دارد: اگر شاخص تکه منحصر به فرد نباشد، ممکن است که تکه ها
بزرگتر از حد مطلوب خواهد بود. به عنوان مثال، اگر یک جدول توسط شاخصی که
حاوی 10,000 از یک مقدار معین است، هیچ راهی برای نوشتن عبارت WHERE وجود ندارد که مطابقت داشته باشد.
تنها 1,000 عدد از مقادیر، و آن تکه حداقل 10,000 ردیف بزرگ خواهد بود. مثل
احتمالاً chunk به دلیل "--chunk-size-limit" نادیده گرفته می شود.

--تکه-اندازه-محدودیت
نوع: شناور؛ پیش فرض: 4.0

تکه‌هایی به این اندازه بزرگتر از اندازه دلخواه کپی نکنید.

هنگامی که جدولی فاقد شاخص های منحصر به فرد باشد، اندازه تکه ها می تواند نادرست باشد. این گزینه
حداکثر حد قابل تحمل برای عدم دقت را مشخص می کند. ابزار استفاده می کند به
تخمین بزنید که چند ردیف در قطعه وجود دارد. اگر این تخمین از مقدار مورد نظر بیشتر باشد
اندازه برابر حد مجاز است، سپس ابزار از تکه رد می شود.

حداقل مقدار برای این گزینه 1 است، به این معنی که هیچ تکه ای نمی تواند بزرگتر از آن باشد
"--تکه-اندازه". احتمالاً نمی خواهید 1 را مشخص کنید، زیرا ردیف ها توسط
EXPLAIN تخمین‌هایی هستند که می‌توانند با تعداد واقعی ردیف‌ها متفاوت باشند
تکه. با تعیین مقدار 0 می توانید بررسی تکه های بزرگ را غیرفعال کنید.

این ابزار همچنین از این گزینه برای تعیین نحوه کار با کلیدهای خارجی آن مرجع استفاده می کند
جدولی که باید تغییر کند برای جزئیات به "--alter-foreign-keys-method" مراجعه کنید.

-- زمان تکه
نوع: شناور؛ پیش فرض: 0.5

اندازه قطعه را به صورت پویا تنظیم کنید تا اجرای هر کوئری کپی داده اینقدر طول بکشد.
این ابزار نرخ کپی (ردیف در ثانیه) را ردیابی می کند و بعد از هر کدام اندازه قطعه را تنظیم می کند
پرس و جوی data-copy، به طوری که پرس و جو بعدی این مقدار زمان (در ثانیه) را به خود اختصاص می دهد
اجرا کردن. این یک میانگین متحرک رو به زوال نمایی از پرس و جوها در ثانیه را حفظ می کند، بنابراین
که اگر عملکرد سرور به دلیل تغییر در بار سرور تغییر کند، ابزار
سریع سازگار می شود

اگر این گزینه روی صفر تنظیم شود، اندازه قطعه به طور خودکار تنظیم نمی شود، بنابراین زمان های پرس و جو انجام می شود
متفاوت است، اما اندازه تکه های پرس و جو نخواهد بود. راه دیگر برای انجام همین کار این است که a را مشخص کنید
مقدار "--chunk-size" به طور صریح، به جای اینکه آن را در حالت پیش فرض قرار دهیم.

- پیکربندی
نوع: آرایه

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

- بار بحرانی
نوع: آرایه; پیش فرض: Threads_running=50

بعد از هر قطعه، SHOW GLOBAL STATUS را بررسی کنید و اگر بار خیلی زیاد بود، آن را متوقف کنید. در
گزینه لیستی از متغیرهای وضعیت MySQL و آستانه های جدا شده با کاما را می پذیرد. یک
اختیاری "=MAX_VALUE" (یا ":MAX_VALUE") می تواند هر متغیر را دنبال کند. اگر داده نشود،
ابزار با بررسی مقدار فعلی در هنگام راه اندازی و دوبرابر کردن آستانه، آستانه را تعیین می کند.

برای جزئیات بیشتر به "--max-load" مراجعه کنید. این گزینه ها به طور مشابه کار می کنند، با این تفاوت که این
گزینه به جای توقف عملیات ابزار را لغو می کند و مقدار پیش فرض آن است
اگر هیچ آستانه ای را مشخص نکنید، متفاوت محاسبه می شود. دلیل این گزینه به عنوان یک است
بررسی ایمنی در صورتی که تریگرهای روی جدول اصلی بار زیادی به سرور اضافه کنند
که باعث خرابی می شود. احتمالاً هیچ مقدار واحدی از Threads_running وجود ندارد
برای هر سروری اشتباه است، اما به نظر می‌رسد پیش‌فرض 50 به‌طور غیرقابل قبولی بالا باشد
اکثر سرورها، نشان می دهد که عملیات باید فورا لغو شود.

-- پایگاه داده
فرم کوتاه: -D; نوع: رشته

به این پایگاه داده متصل شوید.

-- موتور پیش فرض
"ENGINE" را از جدول جدید حذف کنید.

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

---فایل پیش فرض
فرم کوتاه: -F; نوع: رشته

فقط گزینه های mysql را از فایل داده شده بخوانید. شما باید یک pathname مطلق بدهید.

--[no]drop-new-table
پیش فرض: بله

اگر کپی کردن جدول اصلی انجام نشد، جدول جدید را رها کنید.

با تعیین «--no-drop-new-table» و «--no-swap-tables» کپی جدید و تغییر یافته باقی می ماند.
جدول بدون تغییر جدول اصلی. به "--new-table-name" مراجعه کنید.

--no-drop-new-table با "alter-foreign-keys-method drop_swap" کار نمی کند.

--[no]drop-old-table
پیش فرض: بله

پس از تغییر نام جدول اصلی را رها کنید. بعد از اینکه جدول اصلی بوده است
با موفقیت تغییر نام داد تا جدول جدید جای خود را بگیرد و اگر خطایی وجود نداشته باشد،
ابزار به طور پیش فرض جدول اصلی را حذف می کند. اگر خطایی وجود داشته باشد، ابزار خارج می شود
جدول اصلی در جای خود

اگر «--no-swap-tables» مشخص شده باشد، جدول قدیمی برای رها کردن وجود ندارد.

--[بدون] محرک های سقوط
پیش فرض: بله

ماشه ها را روی میز قدیمی رها کنید. "--no-drop-triggers" نیروهای "--no-drop-old-table".

-- خشک اجرا شود
جدول جدید را ایجاد و تغییر دهید، اما از ایجاد تریگر، کپی داده یا جایگزینی آن خودداری کنید
میز اصلی

--اجرا کردن
نشان دهید که اسناد را خوانده اید و می خواهید جدول را تغییر دهید. شما باید
این گزینه را برای تغییر جدول مشخص کنید. اگر این کار را نکنید، آنگاه ابزار فقط کارایی خود را انجام می دهد
برخی از بررسی های ایمنی و خروج. این کمک می کند مطمئن شوید که اسناد را خوانده اید
و نحوه استفاده از این ابزار را درک کنید. اگر مستندات را نخوانده اید، این کار را انجام دهید
این گزینه را مشخص نکنید

--زور
این گزینه در صورت استفاده از alter-foreign-keys-method = none، تأیید را دور می زند.
که ممکن است محدودیت های کلید خارجی را بشکند.

--کمک
نشان دادن کمک و خروج.

-روح
فرم کوتاه: -h; نوع: رشته

به هاست متصل شوید.

--max-flow-ctl
نوع: شناور

تا حدودی شبیه به --max-lag اما برای خوشه های PXC. میانگین زمان صرف شده را بررسی کنید
برای Flow Control مکث کنید و اگر از درصد نشان داده شده بیشتر شد، ابزار را مکث کنید
در گزینه مقدار 0 باعث می‌شود ابزار در هنگام *هر* کنترل جریان متوقف شود
فعالیت شناسایی می شود. پیش‌فرض بدون بررسی کنترل جریان است. این گزینه موجود است
برای نسخه های PXC 5.6 یا بالاتر.

-- حداکثر تاخیر
نوع: زمان؛ پیش فرض: 1 ثانیه

کپی داده را مکث کنید تا زمانی که تاخیر تمام نسخه ها کمتر از این مقدار شود. بعد از هر داده -
پرس و جو را کپی کنید (هر تکه)، این ابزار به تأخیر تکرار همه کپی ها نگاه می کند
که با استفاده از Seconds_Behind_Master متصل می شود. اگر هر ماکتی بیش از
مقدار این گزینه، سپس ابزار برای ثانیه های "--check-interval" به خواب می رود،
سپس دوباره همه کپی ها را بررسی کنید. اگر «--check-slave-lag» را مشخص کنید، فقط ابزار
آن سرور را از نظر تاخیر بررسی می کند، نه همه سرورها. اگر می خواهید دقیقاً کدام را کنترل کنید
سرورهایی که ابزار نظارت می کنند، از مقدار DSN برای "--recursion-method" استفاده کنید.

این ابزار برای همیشه منتظر می ماند تا ماکت ها متوقف شوند. اگر هر کپی متوقف شود،
ابزار برای همیشه منتظر می ماند تا ماکت شروع شود. کپی داده ها زمانی که همه ادامه می یابد ادامه می یابد
ماکت ها در حال اجرا هستند و خیلی عقب نمی مانند.

این ابزار گزارش های پیشرفت را در حین انتظار چاپ می کند. اگر یک ماکت متوقف شود، a را چاپ می کند
فوراً گزارش پیشرفت، سپس دوباره در هر بازه گزارش پیشرفت.

--حداکثر بار
نوع: آرایه; پیش فرض: Threads_running=25

SHOW GLOBAL STATUS را بعد از هر بخش بررسی کنید و اگر متغیرهای وضعیت وجود داشت مکث کنید
بالاتر از آستانه آنها. این گزینه فهرستی از MySQL که با کاما جدا شده است را می پذیرد
متغیرهای وضعیت یک "=MAX_VALUE" (یا ":MAX_VALUE") اختیاری می تواند به دنبال هر کدام باشد
متغیر. اگر داده نشود، ابزار با بررسی جریان، آستانه ای را تعیین می کند
ارزش و افزایش 20 درصدی آن.

برای مثال، اگر می‌خواهید وقتی Threads_connected بیش از حد بالا می‌رود، این ابزار متوقف شود، شما
می تواند "Threads_connected" را مشخص کند، و ابزار زمانی که آن را بررسی می کند، مقدار فعلی را بررسی می کند
شروع به کار می کند و 20٪ به آن مقدار اضافه می کند. اگر مقدار فعلی 100 باشد، ابزار
زمانی که Threads_connected از 120 بیشتر شد مکث می‌کند و زمانی که کمتر از 120 باشد کار را از سر می‌گیرد.
از نو. اگر می‌خواهید یک آستانه صریح مانند 110 مشخص کنید، می‌توانید از هر کدام استفاده کنید
"Threads_connected:110" یا "Threads_connected=110".

هدف از این گزینه جلوگیری از اضافه کردن بار بیش از حد ابزار به ابزار است
سرور اگر کوئری‌های کپی داده‌ها مزاحم هستند، یا اگر باعث انتظار قفل شوند، پس
سایر پرس و جوهای روی سرور تمایل به مسدود کردن و صف بندی دارند. این به طور معمول باعث می شود
Threads_running افزایش می یابد، و ابزار می تواند آن را با اجرای SHOW GLOBAL تشخیص دهد
وضعیت بلافاصله پس از اتمام هر پرس و جو. اگر آستانه ای برای این تعیین کنید
متغیر، سپس می توانید به ابزار دستور دهید تا زمانی که کوئری ها به طور عادی اجرا شوند صبر کند
از نو. با این حال، این مانع از ایجاد صف نمی شود. این فقط به سرور فرصت می دهد
برای بهبودی از صف اگر متوجه صف می شوید، بهتر است آن را کاهش دهید
زمان تکه

--new-table-name
نوع: رشته; پیش‌فرض: %T_new

نام جدول جدید قبل از تعویض. %T با نام جدول اصلی جایگزین می شود.
وقتی از حالت پیش‌فرض استفاده می‌شود، ابزار تا 10 پیشوند نام را با «_» (خارج) می‌گذارد.
یک نام جدول منحصر به فرد پیدا کنید اگر نام جدول مشخص شده باشد، ابزار آن را پیشوند نمی کند
با "_"، بنابراین جدول نباید وجود داشته باشد.

--کلمه عبور
فرم کوتاه: -p; نوع: رشته

رمز عبور برای استفاده در هنگام اتصال. اگر رمز عبور حاوی کاما باشد، باید از آنها فرار کرد
با علامت معکوس: "exam\,ple"

-پید
نوع: رشته

فایل PID داده شده را ایجاد کنید. اگر فایل PID از قبل وجود داشته باشد، ابزار شروع نمی شود
PID موجود در آن با PID فعلی متفاوت است. با این حال، اگر فایل PID
وجود دارد و PID موجود در آن دیگر در حال اجرا نیست، ابزار PID را بازنویسی می کند
فایل با PID فعلی پس از خروج ابزار، فایل PID به طور خودکار حذف می شود.

-- پلاگین
نوع: رشته

فایل ماژول پرل که کلاس "pt_online_schema_change_plugin" را تعریف می کند. یک افزونه
به شما امکان می دهد یک ماژول Perl بنویسید که می تواند به بخش های زیادی از pt-online-schema- متصل شود.
تغییر دادن. این امر مستلزم دانش خوب قراردادهای Perl و Percona Toolkit است که
خارج از محدوده این مستندات هستند. لطفا در صورت داشتن تماس با Percona
سوال یا نیاز به کمک

برای اطلاعات بیشتر به "PLUGIN" مراجعه کنید.

--بندر
فرم کوتاه: -P; نوع: بین المللی

شماره پورت برای استفاده برای اتصال.

--چاپ
دستورات SQL را در STDOUT چاپ کنید. مشخص کردن این گزینه به شما امکان می دهد بیشتر موارد را ببینید
عباراتی که ابزار اجرا می کند. می توانید از این گزینه با "--dry-run" استفاده کنید
مثال.

--پیش رفتن
نوع: آرایه پیش فرض: زمان، 30

هنگام کپی کردن ردیف ها، گزارش های پیشرفت را به STDERR چاپ کنید. مقدار با کاما از هم جدا شده است
لیست با دو بخش بخش اول می تواند درصد، زمان یا تکرار باشد. را
بخش دوم مشخص می کند که هر چند وقت یکبار یک به روز رسانی باید چاپ شود، بر حسب درصد، ثانیه،
یا تعداد تکرار

--ساکت
فرم کوتاه: -q

پیام ها را در STDOUT چاپ نکنید ("--progress" را غیرفعال می کند). خطاها و هشدارها هستند
هنوز در STDERR چاپ شده است.

-- بازگشت
نوع: بین المللی

تعداد سطوحی که باید در سلسله مراتب هنگام کشف کپی تکرار شوند. پیش فرض است
بي نهايت. همچنین به "--recursion-method" مراجعه کنید.

---روش بازگشتی
نوع: آرایه پیش فرض: لیست فرآیندها، میزبان ها

روش بازگشتی ترجیحی برای کشف کپی ها. روش های ممکن عبارتند از:

موارد استفاده از روش
=============================
فهرست فرآیند نمایش فهرست فرآیندها
میزبان ها SLAVE HOSTS را نشان می دهد
dsn=DSN DSNهای یک جدول
هیچ یک برده پیدا نکنید

روش لیست فرآیند پیش فرض است، زیرا SHOW SLAVE HOSTS قابل اعتماد نیست.
با این حال، اگر سرور از یک پورت غیر استاندارد استفاده کند، روش میزبان می‌تواند بهتر کار کند
3306). این ابزار معمولاً کار درستی را انجام می دهد و همه کپی ها را پیدا می کند، اما ممکن است شما این کار را انجام دهید
یک روش ترجیحی است و ابتدا استفاده خواهد شد.

متد میزبان نیاز به پیکربندی کپی با report_host، report_port،
و غیره.

روش dsn ویژه است: جدولی را مشخص می کند که سایر رشته های DSN از آن خوانده می شوند.
DSN مشخص شده باید یک D و t یا یک t واجد شرایط پایگاه داده را مشخص کند. جدول DSN
باید ساختار زیر را داشته باشد:

ایجاد جدول `dsns` (
"id". INT(11) NOT NULL AUTO_INCREMENT،
"شناسه_والد". INT(11) پیش فرض تهی،
"dsn". وارچار(255) NOT NULL،
کلید اولیه (`id`)
);

برای اینکه ابزار فقط میزبان های 10.10.1.16 و 10.10.1.17 را برای تاخیر تکراری مانیتور کند،
مقادیر "h=10.10.1.16" و "h=10.10.1.17" را در جدول وارد کنید. در حال حاضر،
DSN ها با id مرتب می شوند، اما id و parent_id در غیر این صورت نادیده گرفته می شوند.

--set-vars
نوع: آرایه

متغیرهای MySQL را در این لیست جفت "variable=value" جدا شده با کاما تنظیم کنید.

به طور پیش فرض، ابزار مجموعه های زیر را تنظیم می کند:

wait_timeout=10000
innodb_lock_wait_timeout=1
lock_wait_timeout=60

متغیرهای مشخص شده در خط فرمان این پیش فرض ها را لغو می کنند. مثلا،
با تعیین "--set-vars wait_timeout=500" مقدار پیش فرض 10000 لغو می شود.

ابزار یک هشدار چاپ می کند و اگر متغیری تنظیم نشود ادامه می دهد.

--خواب
نوع: شناور؛ پیش فرض: 0

مدت زمان خواب (در چند ثانیه) پس از کپی کردن هر قطعه. این گزینه زمانی مفید است که
throttling توسط "--max-lag" و "--max-load" امکان پذیر نیست. یک ثانیه کوچک و فرعی
مقدار باید استفاده شود، مانند 0.1، در غیر این صورت ممکن است زمان زیادی برای کپی کردن ابزار طول بکشد
میزهای بزرگ

-- سوکت
فرم کوتاه: -S; نوع: رشته

فایل سوکت برای استفاده برای اتصال.

--آمار
چاپ آمار در مورد شمارنده های داخلی. این برای دیدن تعداد هشدارها مفید است
در مقایسه با تعداد INSERT سرکوب شدند.

--[no]swap-tables
پیش فرض: بله

جدول اصلی و جدول جدید تغییر یافته را عوض کنید. این مرحله آنلاین را کامل می کند
فرآیند تغییر طرحواره با قرار دادن جدول با طرحواره جدید به جای آن
میز اصلی جدول اصلی تبدیل به "جدول قدیمی" می شود و ابزار آن را رها می کند
مگر اینکه «--[no]drop-old-table» را غیرفعال کنید.

--تلاش می کند
نوع: آرایه

چند بار عملیات حیاتی را امتحان کنید. اگر عملیات خاصی به دلیل عدم موفقیت
خطاهای کشنده و قابل بازیابی، ابزار منتظر می ماند و دوباره عملیات را امتحان می کند. اینها هستند
عملیاتی که دوباره امتحان می‌شوند، با تعداد پیش‌فرض تلاش‌ها و زمان انتظار
بین تلاش ها (در ثانیه):

عملیات تلاش می کند منتظر بمانید
===========================
create_triggers 10 1
drop_triggers 10 1
copy_rows 10 0.25
swap_tables 10 1
update_foreign_keys 10 1
تجزیه و تحلیل_جدول 10 1

برای تغییر پیش فرض ها، مقادیر جدید مانند:

--tries create_triggers:5:0.5,drop_triggers:5:0.5

این باعث می شود که ابزار "create_triggers" و "drop_triggers" را 5 بار با 0.5 امتحان کند.
انتظار دوم بین تلاش بنابراین فرمت این است:

Operation:tries:wait[,operation:tries:wait]

هر سه مقدار باید مشخص شود.

توجه داشته باشید که بیشتر عملیات ها فقط در MySQL 5.5 و جدیدتر تحت تأثیر قرار می گیرند
"lock_wait_timeout" (به "--set-vars" مراجعه کنید) به دلیل قفل‌های ابرداده. "copy_rows"
عملیات در هر نسخه MySQL تحت تأثیر "innodb_lock_wait_timeout" قرار می گیرد.

برای ایجاد و حذف محرک‌ها، تعداد تلاش‌ها برای هر «CREATE» اعمال می‌شود
عبارت TRIGGER" و "DROP TRIGGER" برای هر ماشه. برای کپی کردن ردیف ها، عدد
تلاش ها برای هر تکه اعمال می شود، نه کل جدول. برای تعویض جداول، شماره
از تلاش ها معمولاً یک بار اعمال می شود زیرا معمولاً فقط یک "تغییر نام جدول" وجود دارد
بیانیه. برای بازسازی محدودیت‌های کلید خارجی، تعداد تلاش‌ها اعمال می‌شود
هر عبارت (عبارات "ALTER" برای "rebuild_constraints"
"--تغییر-روش-کلیدهای خارجی"؛ عبارات دیگر برای روش "drop_swap").

اگر این خطاها رخ دهد، ابزار هر عملیات را دوباره امتحان می کند:

زمان انتظار قفل (innodb_lock_wait_timeout و lock_wait_timeout)
بن بست پیدا شد
پرس و جو کشته شد (KILL QUERY )
اتصال قطع شده است (KILL CONNECTION )
اتصال به MySQL قطع شد

در صورت قطع یا قطع شدن اتصالات، ابزار به طور خودکار دوباره وصل می شود.

شکست ها و تلاش های مجدد در "--statistics" ثبت می شوند.

--کاربر
فرم کوتاه: -u; نوع: رشته

کاربر برای ورود اگر کاربر فعلی نیست.

- نسخه
نمایش نسخه و خروج

--[no]version-check
پیش فرض: بله

آخرین نسخه Percona Toolkit، MySQL و سایر برنامه ها را بررسی کنید.

این یک ویژگی استاندارد «بررسی خودکار به‌روزرسانی‌ها» با دو ویژگی دیگر است
امکانات. ابتدا این ابزار نسخه سایر برنامه ها را در سیستم محلی بررسی می کند
علاوه بر نسخه خودش به عنوان مثال، نسخه هر سرور MySQL را بررسی می کند
به Perl و ماژول Perl DBD::mysql متصل می شود. دوم اینکه بررسی می کند و هشدار می دهد
در مورد نسخه هایی با مشکلات شناخته شده به عنوان مثال، MySQL 5.5.25 یک باگ بحرانی داشت و
به عنوان 5.5.25a دوباره منتشر شد.

هر گونه به روز رسانی یا مشکل شناخته شده قبل از خروجی عادی ابزار در STDOUT چاپ می شود.
این ویژگی هرگز نباید در عملکرد عادی ابزار اختلال ایجاد کند.

برای اطلاعات بیشتر مراجعه کنید .

پلاگین


فایل مشخص شده توسط "--plugin" باید یک کلاس (یعنی یک بسته) فراخوانی را تعریف کند
"pt_online_schema_change_plugin" با یک زیربرنامه "new()". ابزار یک را ایجاد خواهد کرد
نمونه ای از این کلاس است و هر قلابی را که تعریف می کند فراخوانی کنید. نیازی به قلاب نیست، اما الف
افزونه بدون آنها خیلی مفید نیست.

این قلاب ها به این ترتیب در صورت تعریف نامیده می شوند:

init انجام
قبل از_ایجاد_جدول_جدید
after_create_new_table
before_alter_new_table
after_alter_new_table
before_create_triggers
after_create_triggers
قبل از_کپی_ردیف ها
ردیف های بعد از_کپی
before_swap_tables
after_swap_tables
before_update_foreign_keys
after_update_foreign_keys
before_drop_old_table
after_drop_old_table
before_drop_triggers
قبل از_خروج
get_slave_lag

به هر هوک آرگومان های مختلفی منتقل می شود. برای دیدن اینکه کدام آرگومان ها به یک هوک منتقل می شوند،
نام قلاب را در کد منبع ابزار جستجو کنید، مانند:

# ---قلاب پلاگین
if ( $plugin && $plugin->can('init') ) {
$plugin->init(
orig_tbl => $orig_tbl،
child_tables => $child_tables،
renamed_cols => $renamed_cols،
برده => $slaves،
slave_lag_cxns => $slave_lag_cxns،
);
}

نظر "# --plugin hook" قبل از هر تماس هوک قرار می گیرد.

اگر سوالی دارید یا به کمک نیاز دارید، لطفاً با Percona تماس بگیرید.

DSN OPTIONS


این گزینه های DSN برای ایجاد یک DSN استفاده می شود. هر گزینه مانند "option=value" داده می شود.
گزینه ها به حروف بزرگ و کوچک حساس هستند، بنابراین P و p یک گزینه نیستند. نمی تواند وجود داشته باشد
فضای خالی قبل یا بعد از "="" و اگر مقدار دارای فضای خالی باشد باید نقل قول شود.
گزینه های DSN با کاما از هم جدا شده اند. برای جزئیات کامل به صفحه مدیریت percona-toolkit مراجعه کنید.

· آ

dsn: charset; کپی: بله

مجموعه کاراکترهای پیش فرض

· د

dsn: پایگاه داده; کپی: بله

پایگاه داده جدول قدیم و جدید.

· اف

dsn: mysql_read_default_file; کپی: بله

فقط گزینه های پیش فرض را از فایل داده شده بخوانید

· ساعت

dsn: میزبان; کپی: بله

به هاست متصل شوید.

· پ

dsn: رمز عبور; کپی: بله

رمز عبور برای استفاده در هنگام اتصال. اگر رمز عبور حاوی کاما باشد، باید از آنها فرار کرد
با علامت معکوس: "exam\,ple"

· پ

dsn: پورت; کپی: بله

شماره پورت برای استفاده برای اتصال.

· س

dsn: mysql_socket; کپی: بله

فایل سوکت برای استفاده برای اتصال.

· تی

dsn: جدول; کپی: خیر

جدول برای تغییر

· تو

dsn: user; کپی: بله

کاربر برای ورود اگر کاربر فعلی نیست.

محیط زیست


متغیر محیطی "PTDEBUG" خروجی اشکال زدایی کامل را در STDERR فعال می کند. برای فعال کردن
اشکال زدایی و ضبط تمام خروجی ها در یک فایل، ابزار را مانند:

PTDEBUG=1 pt-online-schema-change ... > FILE 2>&1

مراقب باشید: خروجی اشکال زدایی حجیم است و می تواند چندین مگابایت خروجی تولید کند.

SYSTEM الزامات


شما به Perl، DBI، DBD::mysql و برخی از بسته های اصلی نیاز دارید که باید در هر کدام از آنها نصب شوند.
نسخه نسبتاً جدید پرل.

این ابزار فقط روی MySQL 5.0.2 و نسخه های جدیدتر کار می کند، زیرا نسخه های قبلی این کار را نمی کنند
محرک های پشتیبانی

با استفاده از خدمات onworks.net از pt-online-schema-changep به صورت آنلاین استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

دستورات لینوکس

Ad




×
تبلیغات
❤️اینجا خرید کنید، رزرو کنید یا بخرید - رایگان است، به رایگان ماندن خدمات کمک می‌کند.