pt-online-schema-changep - מקוון בענן

זוהי הפקודה pt-online-schema-changep שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות החינמיות שלנו כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS.

תָכְנִית:

שֵׁם


pt-online-schema-change - שינוי טבלאות מבלי לנעול אותן.

תַקצִיר


שימוש: pt-online-schema-change [אפשרויות] DSN

הפקודה pt-online-schema-change משנה את מבנה הטבלה מבלי לחסום קריאות או כתיבות.
ציין את מסד הנתונים והטבלה ב-DSN. אין להשתמש בכלי זה לפני קריאתו
תיעוד ובדיקת הגיבויים שלך בקפידה.

הוסף עמודה ל- sakila.actor:

pt-online-schema-change --alter "הוסף עמודה 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" (בידוד הזמנה מוחלט). הכלי מסתיים עם שגיאה אם ​​המארח הוא
צומת האשכול והטבלה היא MyISAM או עוברת המרה ל-MyISAM ("ENGINE=MyISAM"), או
אם "wsrep_OSU_method" אינו "TOI". אין דרך להשבית בדיקות אלו.

תפוקה


הכלי מדפיס מידע על פעילותו ל-STDOUT כדי שתוכלו לראות מהו
עושה. במהלך שלב העתקת הנתונים, הוא מדפיס דוחות "--progress" ל-STDERR. אתה יכול לקבל
מידע נוסף על ידי ציון "--print".

אם מצוין "--statistics", דוח של ספירת אירועים פנימיים שונים מודפס ב
הסוף, כמו:

מספר אירועים
# ====== =====
# הכנס 1

אפשרויות


"--dry-run" ו-"--execute" סותרות זו את זו.

כלי זה מקבל ארגומנטים נוספים של שורת הפקודה. עיין ב"תקציר" והשימוש
מידע לפרטים.

--לְשַׁנוֹת
סוג: מחרוזת

שינוי הסכימה, ללא מילות המפתח ALTER TABLE. ניתן לבצע מספר
שינויים בטבלה על ידי ציון שלהם באמצעות פסיקים. אנא עיין ב-MySQL
מדריך לתחביר של ALTER TABLE.

המגבלות הבאות חלות, שאם ינסו לעשות זאת, יגרמו לכשל בכלי
דרכים בלתי צפויות:

· כמעט בכל המקרים, מפתח ראשי או אינדקס ייחודי צריכים להיות נוכחים ב-
טבלה. זה הכרחי מכיוון שהכלי יוצר טריגר DELETE כדי לשמור את
טבלה חדשה עודכנה בזמן שהתהליך פועל.

יוצא מן הכלל בולט הוא כאשר נוצר מפתח ראשי או אינדקס ייחודי מ
קיימים עמודות כחלק מפסקת ALTER; במקרה כזה הוא ישתמש באלה
עמודה/ות עבור הטריגר DELETE.

· לא ניתן להשתמש בפסקת "RENAME" כדי לשנות את שם הטבלה.

· לא ניתן לשנות את שמם של עמודות על ידי מחיקה והוספה מחדש עם השם החדש. הכלי
לא יעתיק את נתוני העמודה המקורית לעמודה החדשה.

· אם תוסיף עמודה ללא ערך ברירת מחדל ותגדיר אותה כ-NOT NULL, הכלי יעשה זאת.
להיכשל, מכיוון שהוא לא ינסה לנחש ערך ברירת מחדל עבורך; עליך לציין את
ברירת המחדל.

· "DROP FOREIGN KEY constraint_name" דורש ציון "_constraint_name" במקום
מאשר "constraint_name" האמיתי. עקב מגבלה ב-MySQL, pt-online-schema-
שינוי מוסיף קו תחתון מוביל לשמות אילוצי מפתח זרים בעת יצירת ה-
טבלה חדשה. לדוגמה, כדי להסיר אילוץ זה:

אילוץ `fk_foo` מפתח זר (`foo_id`) הפניות `bar` (`foo_id`)

עליך לציין "--alter "DROP FOREIGN KEY _fk_foo"".

הכלי אינו משתמש ב-"LOCK IN SHARE MODE" עם MySQL 5.0 מכיוון שהוא עלול לגרום ל...
שגיאת עבד אשר מפריעה לשכפול:

השאילתה גרמה לשגיאות שונות במאסטר ובעבד. שגיאה במאסטר:
'נמצא קיפאון בעת ​​ניסיון להשיג נעילה; נסה להפעיל מחדש את העסקה' (1213),
שגיאה בעבד: 'אין שגיאה' (0). מסד נתונים ברירת מחדל: 'pt_osc'.
שאילתה: 'INSERT INTO pt_osc.t (id, c) VALUES ('730', 'שורה חדשה')'

השגיאה מתרחשת בעת המרת טבלת MyISAM ל-InnoDB מכיוון ש-MyISAM אינו
טרנזקציונלי אבל InnoDB הוא טרנזקציונלי. MySQL 5.1 ומעלה מטפלים במקרה הזה
נכון, אבל בדיקה משחזרת את השגיאה 5% מהזמן עם MySQL 5.0.

זהו באג ב-MySQL, בדומה ל-http://bugs.mysql.com/bug.php?id=45694>, אבל
אין תיקון או דרך עוקפת ב-MySQL 5.0. ללא "נעילה במצב שיתוף", בדיקות
עוברים ב-100% מהזמן, כך שהסיכון לאובדן נתונים או לשבירת שכפול צריך להיות נמוך
אַפסִי.

Be בטוח ל לאמת מה היא חדש שולחן if באמצעות MySQL 5.0 ו המרת החל מ- MyISAM ל
InnoDB!

--שיטת-שינוי-מפתחות-זרים
סוג: מחרוזת

כיצד לשנות מפתחות זרים כך שיפנו לטבלה החדשה. מפתחות זרים ש
יש לטפל באופן מיוחד בטבלה המיועדת לשינוי על מנת להבטיח שהיא
המשך להפנות לטבלה הנכונה. כאשר הכלי משנה את שם הטבלה המקורית ל
תנו למפתח החדש לתפוס את מקומו, המפתחות הזרים "יעקוב" אחר הטבלה ששמה שונה, וחייבים
ישונה כך שיפנה לטבלה החדשה במקום זאת.

הכלי תומך בשתי טכניקות להשגת מטרה זו. הוא מוצא אוטומטית "ילד"
טבלאות" המפנים לטבלה שיש לשנות.

המכונית
קבע באופן אוטומטי איזו שיטה היא הטובה ביותר. הכלי משתמש ב-"rebuild_constraints"
אם אפשר (ראו תיאור של שיטה זו לפרטים), ואם לא, אז זה
משתמש ב-"drop_swap".

אילוצי_בנייה_מחדשים
שיטה זו משתמשת ב-"ALTER TABLE" כדי להסיר ולהוסיף מחדש אילוצי מפתח זרים אשר
עיין בטבלה החדשה. זוהי הטכניקה המועדפת, אלא אם כן אחד או יותר מ
טבלאות ה"צאצא" כל כך גדולות ש"שינוי" ייקח יותר מדי זמן. הכלי
קובע כי על ידי השוואת מספר השורות בטבלת הצאצא לקצב ב
שהכלי מסוגל להעתיק שורות מהטבלה הישנה לטבלה החדשה. אם ה-
הכלי מעריך שניתן לשנות את טבלת הצאצא בפחות זמן מאשר ה-
"--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"
"סטטוס", בדומה להודעה הבאה:

מנסה להוסיף לטופל `idx_fk_staff_id` של האינדקס:
טאפלת נתונים: 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 שניות). אם הטבלה גדולה והשרת עמוס מאוד, הדבר עלול לגרום להפסקת פעילות.

--שאל-עבר
בקש סיסמה בעת התחברות ל-MySQL.

--charset
צורה קצרה: -A; סוג: מחרוזת

ערכת תווים ברירת מחדל. אם הערך הוא utf8, מגדיר את binmode של Perl ב-STDOUT ל-utf8,
מעביר את האפשרות mysql_enable_utf8 ל-DBD::mysql, ומפעיל את SET NAMES UTF8 לאחר
מתחבר ל-MySQL. כל ערך אחר מגדיר binmode על STDOUT ללא שכבת utf8,
ומריץ את SET NAMES לאחר התחברות ל-MySQL.

--[לא]בדיקת-שינוי
ברירת מחדל: כן

מנתח את ה-"--alter" שצוין ומנסה להתריע מפני התנהגות לא מכוונת אפשרית.
נכון לעכשיו, הוא בודק:

שינוי שם של עמודות
בגרסאות קודמות של הכלי, שינוי שם של עמודה עם "שינוי שם עמודה
"new_name" יוביל לאובדן הנתונים של עמודה זו. הכלי מנתח כעת את
משפט alter ומנסה לתפוס את המקרים הללו, כך שהעמודות ששמן שונה צריכות להיות
אותם נתונים כמו המקוריים. עם זאת, הקוד שעושה זאת אינו מלא-
מנתח SQL שבור, לכן עליך להפעיל תחילה את הכלי באמצעות "--dry-run" ו-"--print"
ולוודא שהוא מזהה נכון את העמודות ששמן השתנה.

השמטת מפתח ראשי
אם "--alter" מכיל "DROP PRIMARY KEY" (לא רגיש לאותיות גדולות ורווחים), אזהרה
מודפס והכלי נסגר אלא אם כן צוין "--dry-run". שינוי ה-
מפתח ראשי יכול להיות מסוכן, אבל הכלי יכול להתמודד איתו. הגורמים המפעילים של הכלי,
במיוחד טריגר DELETE, מושפעים ביותר משינוי המפתח הראשי
מכיוון שהכלי מעדיף להשתמש במפתח הראשי עבור הגורמים המפעילים שלו. עליך
ראשית הפעל את הכלי באמצעות "--dry-run" ו-"--print" וודא שהטריגרים תקינים
לתקן.

--מרווח בדיקה
סוג: זמן; ברירת מחדל: 1

זמן שינה בין בדיקות עבור "--max-lag".

--[אין] תוכנית בדיקה
ברירת מחדל: כן

בדוק את תוכניות ביצוע השאילתות לצורך בטיחות. כברירת מחדל, אפשרות זו גורמת לכלי לפעול
הסבר לפני הרצת שאילתות שנועדו לגשת לכמות קטנה של נתונים, אך
אשר עלול לגשת לשורות רבות אם MySQL יבחר בתוכנית ביצוע שגויה. אלה כוללים את
שאילתות לקביעת גבולות הנקודות ושאילתות הנקודות עצמן. אם זה מופיע
ש-MySQL ישתמש בתוכנית ביצוע שאילתה שגויה, הכלי ידלג על החלק של
השולחן.

הכלי משתמש במספר היוריסטיקות כדי לקבוע האם תוכנית ביצוע היא גרועה.
ראשית, האם EXPLAIN מדווח ש-MySQL מתכוון להשתמש באינדקס הרצוי כדי לגשת
השורות. אם MySQL בוחר אינדקס אחר, הכלי מחשיב את השאילתה כלא בטוחה.

הכלי בודק גם כמה מהמדד ש-MySQL מדווח עליו הוא ישתמש עבור
שאילתה. הפלט EXPLAIN מציג זאת בעמודה key_len. הכלי זוכר את
key_len הגדול ביותר שנראה, ומדלג על חלקים שבהם MySQL מדווח שהוא ישתמש ב- key_len קטן יותר
קידומת של האינדקס. ניתן להבין היוריסטיקה זו כדילוג על מקטעים שיש להם
תוכנית ביצוע גרועה יותר מאשר חלקים אחרים.

הכלי מדפיס אזהרה בפעם הראשונה שמדלגים על קטע עקב ביצוע שגוי
תוכנית בכל טבלה. מקטעים עוקבים מדלגים בשקט, למרות שניתן לראות את
ספירת החלקיקים שדילגו עליהם בעמודה SKIPPED בפלט של הכלי.

אפשרות זו מוסיפה עבודת הגדרה לכל טבלה וגוש. למרות שהעבודה אינה
פולשני עבור MySQL, זה גורם ליותר נסיעות הלוך ושוב לשרת, מה שצורך
זמן. הפיכת חתיכות קטנות מדי תגרום לעלות התקורה להיות גדולה יחסית.
לכן מומלץ לא ליצור חתיכות קטנות מדי, מכיוון שהכלי עלול לקחת
זמן רב מאוד להשלמה אם תעשו זאת.

--[לא]מסנני-בדיקת-שכפול
ברירת מחדל: כן

בטל אם מוגדר מסנן שכפול כלשהו על שרת כלשהו. הכלי מחפש שרת
אפשרויות שמסננות שכפול, כגון binlog_ignore_db ו- replicate_do_db. אם זה
אם ימצא מסננים כאלה, הוא יבוטל עם שגיאה.

אם העותקים העותקים מוגדרים עם אפשרויות סינון כלשהן, עליך להיזהר שלא
כדי לשנות מסדי נתונים או טבלאות שקיימות במאסטר ולא בעותקים העותקים,
מכיוון שזה עלול לגרום לכשל של שכפול. למידע נוסף על שכפול
כללים, ראהhttp://dev.mysql.com/doc/en/replication-rules.html>.

--check-slave-lag
סוג: מחרוזת

השהה את העתקת הנתונים עד שההשהיה של העתק זה תהיה קטנה מ-"--max-lag". הערך הוא
DSN שיורש מאפיינים מאפשרויות החיבור ("--port", "--user",
וכו'). אפשרות זו עוקפת את ההתנהגות הרגילה של חיפוש והמשך
ניטור השהיית שכפול על כל העותקים המחוברים. אם אינך רוצה לנטר
כל העותקים העותקים, אך ברצונך לנטר יותר מעותק אחד בלבד, השתמש ב-
אפשרות DSN לאפשרות "--recursion-method" במקום אפשרות זו.

--chunk-index
סוג: מחרוזת

העדיפו אינדקס זה עבור טבלאות חלוקה לנקודות. כברירת מחדל, הכלי בוחר את המספרים החשובים ביותר
אינדקס מתאים לחלוקה לנקודות. אפשרות זו מאפשרת לך לציין את האינדקס שאתה
מעדיף. אם האינדקס אינו קיים, הכלי יחזור לברירת המחדל שלו
אופן הפעולה של בחירת אינדקס. הכלי מוסיף את האינדקס למשפטי SQL ב-
סעיף "Force Index". יש להיזהר בעת שימוש באפשרות זו; בחירה שגויה של אינדקס עלולה...
לגרום לביצועים גרועים.

--chunk-index-columns
סוג: int

השתמש רק במספר העמודות השמאליות ביותר של "--chunk-index". זה עובד רק עבור
אינדקסים מורכבים, והוא שימושי במקרים בהם יש באג בממטב השאילתות של MySQL
(מתכנן) גורם לו לסרוק טווח גדול של שורות במקום להשתמש באינדקס כדי לאתר
נקודות התחלה וסיום במדויק. בעיה זו מתרחשת לעיתים באינדקסים עם
עמודות רבות, כגון 4 או יותר. אם זה קורה, הכלי עשוי להדפיס אזהרה
קשור לאפשרות "--[no]check-plan". הוראות לכלי להשתמש רק בראשון
N עמודות של האינדקס הן פתרון עוקף לבאג במקרים מסוימים.

--גודל נתח
סוג: גודל; ברירת מחדל: 1000

מספר שורות לבחירה עבור כל קטע שמועתק. הסיומות המותרות הן k, M, G.

אפשרות זו יכולה לעקוף את אופן הפעולה המוגדר כברירת מחדל, שהיא התאמת גודל הנתחים
באופן דינמי כדי לנסות לגרום ל-"chunk-time" (זמן פקיעה) לרוץ בדיוק בשניות. כאשר זה
האפשרות אינה מוגדרת במפורש, ערך ברירת המחדל שלה משמש כנקודת התחלה, אך לאחר מכן
כך, הכלי מתעלם מערך האפשרות הזו. אם תגדיר אפשרות זו במפורש,
עם זאת, אז הוא משבית את התנהגות ההתאמה הדינמית ומנסה ליצור את כל הקטעים
בדיוק את מספר השורות שצוין.

ישנה עדינות: אם אינדקס ה-chuck אינו ייחודי, ייתכן ש-chucks
יהיה גדול מהרצוי. לדוגמה, אם טבלה מחולקת לגושים על ידי אינדקס ש
מכיל 10,000 ערך נתון, אין דרך לכתוב פסוקית WHERE שתואמת
רק 1,000 מהערכים, והנתח הזה יהיה בגודל של לפחות 10,000 שורות. כזה
כנראה שדילוג על chunk יידלק בגלל "--chunk-size-limit".

--מגבלת-גודל-של-chunk
סוג: float; ברירת מחדל: 4.0

אין להעתיק גושים גדולים בהרבה מגודל הגושים הרצוי.

כאשר לטבלה אין אינדקסים ייחודיים, גדלי הקטעים עלולים להיות לא מדויקים. אפשרות זו
מציין גבול מקסימלי נסבל לאי-דיוק. הכלי משתמש אֶל
הערך כמה שורות יש בנקודה. אם הערכה זו חורגת מהנקודה הרצויה
הגודל כפול המגבלה, ואז הכלי מדלג על הנתח.

הערך המינימלי עבור אפשרות זו הוא 1, כלומר שאף חלק לא יכול להיות גדול מ-
"--chunk-size". סביר להניח שלא תרצה לציין 1, מכיוון ששורות מדווחות על ידי
הסבר הן הערכות, שיכולות להיות שונות ממספר השורות האמיתי ב-
chunk. ניתן להשבית בדיקת chunks גדולים מדי על ידי ציון ערך של 0.

הכלי משתמש באפשרות זו גם כדי לקבוע כיצד לטפל במפתחות זרים המפנים
הטבלה שיש לשנות. ראה "--alter-foreign-keys-method" לפרטים.

--זמן-נתחים
סוג: float; ברירת מחדל: 0.5

התאם את גודל הקבוצה באופן דינמי כך שכל שאילתת העתקת נתונים תיקח את הזמן הזה לביצוע.
הכלי עוקב אחר קצב ההעתקה (שורות לשנייה) ומתאים את גודל הקטע לאחר כל אחד מהם.
שאילתת העתקת נתונים, כך שהשאילתה הבאה תיקח את פרק הזמן הזה (בשניות) כדי
לבצע. זה שומר ממוצע נע של שאילתות לשנייה, שגדל באופן אקספוננציאלי, כך
שאם ביצועי השרת משתנים עקב שינויים בעומס השרת, הכלי
מסתגל במהירות.

אם אפשרות זו מוגדרת לאפס, גודל הנתח לא יתאים אוטומטית, כך שזמני השאילתה יתאימו.
להשתנות, אבל גודלי קטעי השאילתה לא. דרך נוספת לעשות את אותו הדבר היא לציין
ערך עבור "--chunk-size" במפורש, במקום להשאיר אותו כברירת מחדל.

--config
סוג: מערך

קרא את הרשימה המופרדת בפסיקים של קובצי תצורה; אם צוין, זה חייב להיות הראשון
אפשרות בשורת הפקודה.

--עומס-קריטי
סוג: מערך; ברירת מחדל: Threads_running=50

בדוק את הצג סטטוס גלובלי לאחר כל קטע, ובטל אם העומס גבוה מדי.
האפשרות מקבלת רשימה מופרדת בפסיקים של משתני סטטוס וספי MySQL.
"=MAX_VALUE" (או ":MAX_VALUE") אופציונלי יכול לבוא אחרי כל משתנה. אם לא ניתן, ה-
הכלי קובע סף על ידי בחינת הערך הנוכחי בעת ההפעלה והכפלתו.

ראה "--max-load" לפרטים נוספים. אפשרויות אלו פועלות באופן דומה, פרט לכך שזו
האפשרות תבטל את פעולת הכלי במקום להשהות אותה, וערך ברירת המחדל הוא
מחושב אחרת אם לא תציין סף. הסיבה לאפשרות זו היא כ-
בדיקת בטיחות למקרה שהטריגרים בטבלה המקורית יוסיפו עומס רב לשרת
שזה גורם לזמן השבתה. כנראה שאין ערך יחיד של Threads_running שהוא
לא נכון עבור כל שרת, אבל ברירת מחדל של 50 נראית גבוהה באופן בלתי מתקבל על הדעת עבור
רוב השרתים, מה שמצביע על כך שיש לבטל את הפעולה באופן מיידי.

--מאגר מידע
צורה קצרה: -D; סוג: מחרוזת

התחבר למסד נתונים זה.

--מנוע-ברירת-מחדל
הסר את "ENGINE" מהטבלה החדשה.

כברירת מחדל, הטבלה החדשה נוצרת עם אותן אפשרויות טבלה כמו הטבלה המקורית,
אז אם הטבלה המקורית משתמשת ב-InnoDB, אז הטבלה החדשה תשתמש ב-InnoDB. במקרים מסוימים
במקרים של שכפול, הדבר עלול לגרום לשינויים לא מכוונים בעותקים עותקים המשתמשים ב-
מנוע שונה עבור אותה טבלה. ציון אפשרות זו גורם לטבלה החדשה
ייווצר באמצעות מנוע ברירת המחדל של המערכת.

-קובץ ברירת המחדל
צורה קצרה: -F; סוג: מחרוזת

קרא רק אפשרויות mysql מהקובץ הנתון. עליך לתת שם נתיב מוחלט.

--[לא]שחרור-טבלה-חדשה
ברירת מחדל: כן

מחק את הטבלה החדשה אם העתקת הטבלה המקורית נכשלת.

ציון "--no-drop-new-table" ו-"--no-swap-tables" משאיר את העותק החדש והמשונה.
של הטבלה מבלי לשנות את הטבלה המקורית. ראה "--new-table-name".

הפונקציה --no-drop-new-table לא עובדת עם "alter-foreign-keys-method drop_swap".

--[לא]שחרור-טבלה-ישנה
ברירת מחדל: כן

מחיקת הטבלה המקורית לאחר שינוי שמה. לאחר שהטבלה המקורית הוסרה
שם הטבלה השתנה בהצלחה כדי לאפשר לטבלה החדשה לתפוס את מקומה, ואם אין שגיאות,
הכלי משמיט את הטבלה המקורית כברירת מחדל. אם יש שגיאות, הכלי משאיר
השולחן המקורי במקומו.

אם מצוין "--no-swap-tables", אז אין טבלה ישנה שניתן להסיר.

--[אין] טריגרים לשחרור
ברירת מחדל: כן

שחרור טריגרים מהטבלה הישנה. "--no-drop-triggers" מאלץ את "--no-drop-old-table".

--ריצה יבשה
צור ושנה את הטבלה החדשה, אך אל תיצור טריגרים, תעתיק נתונים או תחליף את
שולחן מקורי.

--לבצע
ציין שקראת את התיעוד וברצונך לשנות את הטבלה. עליך
ציין אפשרות זו כדי לשנות את הטבלה. אם לא תעשה זאת, הכלי יבצע רק
כמה בדיקות בטיחות ויציאה. זה עוזר להבטיח שקראת את התיעוד
ולהבין כיצד להשתמש בכלי זה. אם לא קראת את התיעוד, עשה זאת.
לא לציין אפשרות זו.

--כּוֹחַ
אפשרות זו עוקפת אישור במקרה של שימוש ב- alter-foreign-keys-method = none,
אשר עלול לשבור את אילוצי המפתח הזר.

- עזרה
הצג עזרה וצא.

--מנחה
צורה קצרה: -h; סוג: מחרוזת

התחבר למארח.

--max-flow-ctl
סוג: צף

קצת דומה ל--max-lag אבל עבור אשכולות PXC. בדוק את אשכול הזמן הממוצע שהושקע
השהייה עבור בקרת זרימה והשהיית הכלי אם היא עוברת את האחוז המצוין
באפשרות. ערך של 0 יגרום לכלי להשהות כאשר *כל* בקרת זרימה
זוהתה פעילות. ברירת המחדל היא ללא בדיקת בקרת זרימה. אפשרות זו זמינה
עבור גרסאות PXC 5.6 ומעלה.

--max-lag
סוג: זמן; ברירת מחדל: 1 שניות

השהה את העתקת הנתונים עד שההשהיה של כל העותקים תהיה קטנה מערך זה. לאחר כל נתונים-
שאילתת העתקה (כל קטע), הכלי בוחן את השהיית השכפול של כל העותקים כדי
שאותו הוא מתחבר, באמצעות Seconds_Behind_Master. אם רפליקה כלשהי מפגרת יותר מ-
הערך של אפשרות זו, אז הכלי ייכנס לישון למשך "--check-interval" שניות,
לאחר מכן בדוק שוב את כל העותקים. אם תציין "--check-slave-lag", הכלי רק
בודק את השרת הזה לאיתור השהיות, לא את כל השרתים. אם אתה רוצה לשלוט בדיוק באילו
שרתים את כלי ניטור, השתמש בערך DSN עבור "--recursion-method".

הכלי ממתין לנצח עד שהעותקים העותקים יפסיקו להשהות. אם עותק עותק כלשהו נעצר,
הכלי ממתין לנצח עד שההעתק יתחיל. העתקת הנתונים ממשיכה כאשר כל
העותקים הרפליקיים פועלים ואינם בעלי פערים חזקים מדי.

הכלי מדפיס דוחות התקדמות בזמן ההמתנה. אם העתק נעצר, הוא מדפיס
דוח התקדמות באופן מיידי, ולאחר מכן שוב בכל מרווח זמן של דוח התקדמות.

--עומס מקסימלי
סוג: מערך; ברירת מחדל: Threads_running=25

בדוק את הצג סטטוס גלובלי לאחר כל קטע, ועצור אם מופיעים משתני סטטוס כלשהם.
גבוה יותר מהספים שלהם. האפשרות מקבלת רשימה מופרדת בפסיקים של 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
STATUS מיד לאחר סיום כל שאילתה. אם תציין סף עבור זה
משתנה, לאחר מכן ניתן להורות לכלי להמתין עד שהשאילתות יפעלו כרגיל
שוב. זה לא ימנע עמידה בתור, עם זאת; זה רק ייתן לשרת הזדמנות
להתאושש מהתור. אם אתם מבחינים בתור, עדיף להפחית את
זמן נתח.

--שם-טבלה-חדש
סוג: מחרוזת; ברירת מחדל: %T_new

שם טבלה חדש לפני החלפתו. %T מוחלף בשם הטבלה המקורי.
כאשר נעשה שימוש בברירת המחדל, הכלי מוסיף עד 10 סימני "_" (קו תחתון) לפני השם.
מצא שם טבלה ייחודי. אם צוין שם טבלה, הכלי לא יוסיף לו קידומת
עם "_", כך שהטבלה לא חייבת להתקיים.

--סיסמה
צורה קצרה: -p; סוג: מחרוזת

סיסמה לשימוש בעת החיבור. אם הסיסמה מכילה פסיקים יש לבצע אסקייפ
עם קו נטוי אחורי: "exam\,ple"

--pid
סוג: מחרוזת

צור את קובץ ה-PID הנתון. הכלי לא יופעל אם קובץ ה-PID כבר קיים ו
ה-PID שהוא מכיל שונה מה-PID הנוכחי. עם זאת, אם קובץ ה-PID
קיים וה-PID שהוא מכיל אינו פועל יותר, הכלי יחליף את ה-PID
קובץ עם ה-PID הנוכחי. קובץ ה-PID מוסר אוטומטית כאשר הכלי יוצא.

--חיבור
סוג: מחרוזת

קובץ מודול Perl המגדיר מחלקה "pt_online_schema_change_plugin". תוסף
מאפשר לך לכתוב מודול Perl שיכול להתחבר לחלקים רבים של pt-online-schema-
שינוי. זה דורש ידע טוב במוסכמות של Perl ו-Percona Toolkit, אשר
חורגים מהיקף תיעוד זה. אנא צרו קשר עם Percona אם יש לכם
שאלות או זקוקים לעזרה.

ראה "תוסף" למידע נוסף.

--נמל
צורה קצרה: -P; סוג: int

מספר יציאה לשימוש לחיבור.

--הדפס
הדפס משפטי SQL ל-STDOUT. ציון אפשרות זו מאפשר לך לראות את רוב ה-
פקודות שהכלי מבצע. ניתן להשתמש באפשרות זו עם "--dry-run", עבור
דוגמא.

--התקדמות
סוג: מערך; ברירת מחדל: זמן, 30

הדפס דוחות התקדמות ל-STDERR בעת העתקת שורות. הערך מופרד בפסיקים
רשימה עם שני חלקים. החלק הראשון יכול להיות אחוז, זמן או איטרציות;
החלק השני מציין באיזו תדירות יש להדפיס עדכון, באחוזים, בשניות,
או מספר איטרציות.

--שֶׁקֶט
צורה קצרה: -q

אין להדפיס הודעות ל-STDOUT (מבטל את "--progress"). שגיאות ואזהרות הן
עדיין מודפס ל-STDERR.

--שחזור
סוג: int

מספר הרמות שיש לבצע החזרה בהיררכיה בעת גילוי עותקים משוכפלים. ברירת המחדל היא
אינסופי. ראה גם "--recursion-method".

--שיטת הרקורסיה
סוג: מערך; ברירת מחדל: רשימת תהליכים, מארחים

שיטת רקורסיה מועדפת לגילוי רפליקות. שיטות אפשריות הן:

שימושים בשיטה
=============================
רשימת תהליכים הצג רשימת תהליכים
מארחים הצג מארחי עבדים
dsn=DSN ‏DSN מטבלה
אין אל תמצא עבדים

שיטת processlist היא ברירת המחדל, מכיוון ש-SHOW SLAVE HOSTS אינה אמינה.
עם זאת, שיטת hosts יכולה לעבוד טוב יותר אם השרת משתמש בפורט לא סטנדרטי (לא
3306). הכלי בדרך כלל עושה את הדבר הנכון ומוצא את כל העותקים, אך ייתכן שתתן
שיטה מועדפת והיא תיעשה בשימוש ראשונה.

שיטת hosts דורשת הגדרת עותקים רפליקיים עם report_host, report_port,
וכו '

שיטת dsn היא מיוחדת: היא מציינת טבלה שממנה נקראות מחרוזות DSN אחרות.
ה-DSN שצוין חייב לציין D ו-t, או t מוסמך למסד נתונים. טבלת ה-DSN
צריך להיות בעל המבנה הבא:

צור טבלה `dsns` (
תעודת זהות int(11) NOT NULL AUTO_INCREMENT,
`הורה_מזהה` int(11) ברירת מחדל NULL,
`dsn` ורצ 'ר(255) לא NULL,
מפתח ראשוני ('מזהה')
);

כדי שהכלי יעקוב רק אחר המארחים 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 ברשימה מופרדת בפסיקים של זוגות "משתנה=ערך".

כברירת מחדל, הכלי מגדיר:

wait_timeout=10000
innodb_lock_wait_timeout=1
lock_wait_timeout=60

משתנים שצוינו בשורת הפקודה עוקפים ברירות מחדל אלה. לדוגמה,
ציון "--set-vars wait_timeout=500" עוקף את ערך ברירת המחדל של 10000.

הכלי מדפיס אזהרה וממשיך אם לא ניתן להגדיר משתנה.

--לִישׁוֹן
סוג: float; ברירת מחדל: 0

כמה זמן שינה (בשניות) לאחר העתקת כל קטע. אפשרות זו שימושית כאשר
ויסות באמצעות "--max-lag" ו-"--max-load" אינו אפשרי. זמן קצר, פחות משנייה
יש להשתמש בערך, כמו 0.1, אחרת הכלי עלול לקחת זמן רב מאוד להעתיק
שולחנות גדולים.

--שֶׁקַע
טפסים קצרים; סוג: מחרוזת

קובץ Socket לשימוש לחיבור.

--סטָטִיסטִיקָה
הדפס סטטיסטיקות על מונים פנימיים. זה שימושי כדי לראות כמה אזהרות
דוכאו בהשוואה למספר ה- INSERT.

--[אין] טבלאות-החלפה
ברירת מחדל: כן

החליפו את הטבלה המקורית לטבלה החדשה והמשוונת. שלב זה משלים את התהליך המקוון
תהליך שינוי הסכימה על ידי יצירת הטבלה עם הסכימה החדשה במקום ה-
הטבלה המקורית. הטבלה המקורית הופכת ל"טבלה הישנה", והכלי משמיט אותה
אלא אם כן תבטל את "--[no]drop-old-table".

--מנסה
סוג: מערך

כמה פעמים לנסות פעולות קריטיות. אם פעולות מסוימות נכשלות עקב אי-
שגיאות חמורות שניתן לשחזר, הכלי ממתין ומנסה לבצע את הפעולה שוב. אלו הן
הפעולות שניסו שוב, עם מספר הניסיונות וזמן ההמתנה המוגדרים כברירת מחדל.
בין ניסיונות (בשניות):

ניסיון פעולה המתנה
====================== ===== ====
create_triggers 10 1
ירידת_טריגרים 10 1
העתק_שורות 10 0.25
החלפת_טבלאות 10 1
עדכון_מפתחות_זרים 10 1
ניתוח_טבלה 10 1

כדי לשנות את ערכי ברירת המחדל, ציינו את הערכים החדשים כמו:

--ניסיונות create_triggers:5:0.5, drop_triggers:5:0.5

זה גורם לכלי לנסות "create_triggers" ו-"drop_triggers" 5 פעמים עם ערך של 0.5
המתנה שנייה בין ניסיונות. אז הפורמט הוא:

פעולה:ניסיונות:המתנה[,פעולה:ניסיונות:המתנה]

יש לציין את שלושת הערכים.

שים לב שרוב הפעולות מושפעות רק ב-MySQL 5.5 ומעלה על ידי
"lock_wait_timeout" (ראה "--set-vars") בגלל נעילות מטא-דאטה. ה-"copy_rows"
הפעולה מושפעת בכל גרסה של MySQL על ידי "innodb_lock_wait_timeout".

עבור יצירה ושחרור של טריגרים, מספר הניסיונות חל על כל "CREATE" (יצירה)
משפטי "TRIGGER" ו-"DROP TRIGGER" עבור כל טריגר. להעתקת שורות, המספר
מספר הניסיונות חל על כל קבוצה, לא על כל הטבלה. עבור החלפת טבלאות, המספר
מספר ניסיונות בדרך כלל חל פעם אחת מכיוון שבדרך כלל יש רק "שינוי שם טבלה" אחד.
משפט. עבור בנייה מחדש של אילוצי מפתח זר, מספר הניסיונות חל על
כל משפט ("משפטי ALTER" עבור ה-"rebuild_constraints"
"--alter-foreign-keys-method"; משפטים אחרים עבור שיטת "drop_swap").

הכלי מנסה שוב כל פעולה אם מתרחשות שגיאות אלה:

זמן קצוב להמתנה לנעילה (innodb_lock_wait_timeout ו- lock_wait_timeout)
נמצא מבוי סתום
השאילתה מושבתת (הסגר את השאילתה )
החיבור מופסק (הפסקת חיבור )
אבד חיבור ל-MySQL

במקרה של חיבורים שאבדו או נותקו, הכלי יתחבר מחדש באופן אוטומטי.

כשלים וניסיונות חוזרים נרשמים בקובץ "--statistics".

--מִשׁתַמֵשׁ
צורה קצרה: -u; סוג: מחרוזת

משתמש לכניסה אם לא משתמש נוכחי.

--גִרְסָה
הצג גרסה וצא.

--[אין]בדיקת גרסה
ברירת מחדל: כן

בדוק את הגרסה העדכנית ביותר של Percona Toolkit, MySQL ותוכניות אחרות.

זוהי תכונה רגילה של "בדוק עדכונים אוטומטית", עם שניים נוספים
מאפיינים. ראשית, הכלי בודק את הגרסה של תוכניות אחרות במערכת המקומית
תוספת לגרסה משלו. לדוגמה, הוא בודק את הגרסה של כל שרת MySQL
הוא מתחבר ל- Perl ולמודול Perl DBD::mysql. שנית, הוא בודק ומזהיר
לגבי גרסאות עם בעיות ידועות. לדוגמה, ל-MySQL 5.5.25 היה באג קריטי ו
שוחרר מחדש כ-5.5.25א.

כל עדכונים או בעיות ידועות מודפסים ל-STDOUT לפני הפלט הרגיל של הכלי.
תכונה זו לא אמורה להפריע לפעולה הרגילה של הכלי.

למידע נוסף, בקר .

חיבור


הקובץ שצוין על ידי "--plugin" חייב להגדיר מחלקה (כלומר חבילה) בשם
"pt_online_schema_change_plugin" עם תת-שגרה "new()". הכלי ייצור
מופע של מחלקה זו וקרא לכל hooks שהוא מגדיר. אין צורך ב- hooks, אך a
התוסף לא ממש שימושי בלעדיהם.

הווים האלה, בסדר הזה, נקראים אם הם מוגדרים:

init
לפני_יצירת_טבלה_חדשה
לאחר יצירת_טבלה_חדשה
לפני_שינוי_טבלה_חדשה
אחרי_שינוי_טבלה_חדשה
לפני_יצירת_טריגרים
after_create_triggers
לפני_העתקת_שורות
אחרי_העתקה_שורות
לפני_החלפת_טבלאות
לאחר_החלפה_טבלאות
לפני_עדכון_מפתחות_זרים
מפתחות_זרים_אחרי_עדכון
לפני_שחרור_הטבלה_הישנה
after_drop_old_table
לפני_הירידה_טריגרים
לפני_יציאה
get_slave_lag

כל וו מקבל ארגומנטים שונים. כדי לראות אילו ארגומנטים מועברים לוו,
חפש את שם ה-hook בקוד המקור של הכלי, כמו:

# --וו תוסף
אם ( $plugin ו- $plugin->can('init') ) {
$plugin->init(
orig_tbl => $orig_tbl,
טבלאות_ילדים => $טבלאות_ילדים,
renamed_cols => $renamed_cols,
עבדים => $עבדים,
slave_lag_cxns => $slave_lag_cxns,
);
}

התגובה "# --plugin hook" קודמת לכל קריאה ל-hook.

אנא צרו קשר עם פרקונה אם יש לכם שאלות או שאתם זקוקים לעזרה.

dsn אפשרויות


אפשרויות DSN אלה משמשות ליצירת DSN. כל אפשרות ניתנת כמו "אופציה=ערך".
האפשרויות תלויות רישיות, ולכן P ו-p אינן אותה אפשרות. לא יכול להיות
רווח לבן לפני או אחרי הסימן "=" ואם הערך מכיל רווח לבן יש לצטט אותו.
אפשרויות DSN מופרדות בפסיקים. ראה את דף המנגנון של percona-toolkit לפרטים מלאים.

א

dsn: charset; העתקה: כן

ערכת תווים ברירת מחדל.

· ד

dsn: מסד נתונים; העתקה: כן

מסד נתונים עבור הטבלה הישנה והחדשה.

· ו

dsn: mysql_read_default_file; העתקה: כן

קרא רק אפשרויות ברירת מחדל מהקובץ הנתון

· ח

dsn: מארח; העתקה: כן

התחבר למארח.

· עמ'

dsn: סיסמה; העתקה: כן

סיסמה לשימוש בעת החיבור. אם הסיסמה מכילה פסיקים יש לבצע אסקייפ
עם קו נטוי אחורי: "exam\,ple"

· עמ '

dsn: יציאה; העתקה: כן

מספר יציאה לשימוש לחיבור.

· ש

dsn: mysql_socket; העתקה: כן

קובץ Socket לשימוש לחיבור.

· ט

dsn: טבלה; עותק: לא

טבלה לשינוי.

· u

dsn: משתמש; העתקה: כן

משתמש לכניסה אם לא משתמש נוכחי.

הסביבה


משתנה הסביבה "PTDEBUG" מאפשר פלט איתור באגים מילולי ל-STDERR. כדי לאפשר
איתור באגים ולכידת כל הפלט לקובץ, הפעל את הכלי כמו:

PTDEBUG=1 pt-online-schema-change ... > קובץ 2>&1

היזהר: פלט ניפוי באגים הוא נפח גדול ויכול ליצור כמה מגה-בייט של פלט.

מערכת דרישות


אתה צריך Perl, DBI, DBD::mysql וכמה חבילות ליבה שצריכות להיות מותקנות בכל
גרסה חדשה למדי של Perl.

כלי זה עובד רק על MySQL 5.0.2 וגירסאות חדשות יותר, מכיוון שגרסאות קודמות אינן פועלות.
טריגרים של תמיכה.

השתמש ב-pt-online-schema-changep באופן מקוון באמצעות שירותי onworks.net



התוכניות המקוונות האחרונות של לינוקס ו-Windows