בדף הזה מוסבר איך להגדיר את מופעי מסד הנתונים הבאים של המקור להעברות רציפות והומוגניות של MySQL:
- Cloud SQL ל-MySQL
- MySQL באירוח עצמי
- Amazon RDS ל-MySQL
- Amazon Aurora ל-MySQL
- Microsoft Azure Database for MySQL
הגדרת מקור ב-Cloud SQL ל-MySQL
כדי להגדיר מכונת מקור של Cloud SQL ל-MySQL לתהליך ההעברה:
- בודקים אם מסד הנתונים של המקור מכיל מטא-נתונים שהוגדרו על ידי משתמשים באמצעות פסקה
DEFINER. אימות מטא-נתונים באמצעות משפטDEFINERהשירות להעברת נתונים של מסדי נתונים להעברות הומוגניות של MySQL לא מעביר חשבונות משתמשים והתחברויות. מקורות שמכילים מטא-נתונים שמוגדרים על ידי חשבונות משתמשים עם הסעיף
DEFINERעלולים לחסום את ההעברה. - אם מסד הנתונים של המקור מכיל אובייקטים שמפנים לטבלאות בסכימות המערכת
mysql,performance_schema,information_schema,ndbinfoאוsys, ודאו שגם מסדי הנתונים של הרפליקה מכילים את הטבלאות האלה של סכימות המערכת.אם הטבלאות האלה לא קיימות במסדי הנתונים של הרפליקות, יכול להיות שמשימת ההעברה תיכשל ותופיע השגיאה
Unknown table in system schema. -
מפעילים ומגדירים יומנים בינאריים במסד הנתונים של המקור.
ב-Cloud SQL ל-MySQL, רישום בינארי מופעל באופן אוטומטי כשמשתמשים בשחזור לנקודת זמן מסוימת (PITR). אפשר להגדיר את פורמט היומן ואת תקופת השמירה באמצעות דגלי המערכת שזמינים ב-Cloud SQL. מבצעים את הפעולות הבאות:
- מפעילים PITR במופע. התכונה הזו מפעילה באופן אוטומטי רישום ביומן בינארי. אי אפשר להפעיל רישום בינארי ללא PITR ב-Cloud SQL. למידע נוסף, קראו את המאמר שחזור מערכת מנקודה מסוימת בזמן (PITR) במסמכי התיעוד של Cloud SQL.
- אפשר להשתמש בדגלים של Cloud SQL כדי לשנות את הגדרות הרישום ביומן.
פרטים נוספים זמינים במאמר הגדרת דגלים של מסד נתונים במסמכי התיעוד של Cloud SQL.
- כדי להשתמש ב-Database Migration Service, צריך להגדיר את
binlog_formatלערךROW. אין צורך לשנות את ההגדרה הזו, כי Cloud SQL ל-MySQL מגדיר באופן אוטומטי את הדגלbinlog_formatלערךROW. - מגדירים את
תקופת שמירת היומנים לפרק זמן ארוך מספיק כדי לתמוך בהעברת מסד הנתונים. בדרך כלל, שבוע מספיק.
משתמשים באחד מהדגלים הבאים:
- MySQL 5.6 - 5.7:
expire_logs_days - MySQL 8.0 ואילך:
expire_logs_days,binlog_expire_logs_seconds
- MySQL 5.6 - 5.7:
- כדי להשתמש ב-Database Migration Service, צריך להגדיר את
-
יוצרים בחשבון משתמש ייעודי להעברה. מידע נוסף זמין במאמר יצירת משתמש במסמכי התיעוד של Cloud SQL. חשוב לוודא ש:
- אתם מאפשרים לחשבון המשתמש הייעודי להתחבר מכל מארח
(
host=%). - הסיסמה של החשבון לא ארוכה מ-32 תווים. מידע נוסף על מגבלות האורך של סיסמאות משתמשים ב-MySQL זמין במאמר MySQL Bug #43439.
- אתם מאפשרים לחשבון המשתמש הייעודי להתחבר מכל מארח
(
-
מקצים את ההרשאות הנדרשות לחשבון המשתמש הייעודי להעברה. בהעברות רציפות, הרשימה המלאה של ההרשאות הנדרשות תלויה בשאלה אם אתם מספקים קובצי dump משלכם או משתמשים בתכונת ה-dump המנוהלת של Database Migration Service:
פלט מנוהל
אם רוצים ש-Database Migration Service ייצור באופן אוטומטי את קובץ ה-dump המלא של מסד הנתונים במקור, צריך להקצות לחשבון המשתמש את ההרשאות הבאות:
REPLICATION SLAVEEXECUTEREPLICATION CLIENTSELECTSHOW VIEWTRIGGERRELOAD- לגרסאות מקור של MySQL 8.0 ואילך: מוודאים שלחשבון ההעברה אין הרשאת
BACKUP_ADMIN.
פלט ידני
אם אתם מספקים קובצי dump משלכם שנוצרו באמצעות
mysqldump, אתם צריכים לספק את ההרשאות הנדרשות לשלב ה-CDC:
הגדרת מקור MySQL באירוח עצמי
כדי להגדיר מופע מקור של MySQL באירוח עצמי לתהליך ההעברה:
- מוודאים שכל הטבלאות (חוץ מטבלאות במסדי נתונים של המערכת) משתמשות ב מנוע האחסון InnoDB. אם אתם משתמשים במנוע אחסון אחר, יכול להיות שתצטרכו להמיר את הטבלאות. מידע נוסף זמין במאמר Converting Tables from MyISAM to InnoDB.
- בודקים אם מסד הנתונים של המקור מכיל מטא-נתונים שהוגדרו על ידי משתמשים באמצעות פסקה
DEFINER. מידע נוסף זמין במאמר בנושא אימות מטא-נתונים באמצעות סעיףDEFINER.Database Migration Service להעברות MySQL הומוגניות לא מעביר חשבונות משתמשים ופרטי התחברות. מקורות שמכילים מטא-נתונים שהוגדרו על ידי חשבונות משתמשים עם סעיף
DEFINERעשויים לחסום את ההעברה. - אם מסד הנתונים של המקור מכיל אובייקטים שמפנים לטבלאות בסכימות המערכת
mysql,performance_schema,information_schema,ndbinfoאוsys, ודאו שגם מסדי הנתונים של הרפליקה מכילים את הטבלאות האלה של סכימות המערכת.אם הטבלאות האלה לא קיימות במסדי הנתונים של הרפליקות, יכול להיות שמשימת ההעברה תיכשל ותופיע השגיאה
Unknown table in system schema. - מגדירים את ההגדרה
server-idלערך1או יותר. מידע נוסף זמין במאמר אפשרויות ומשתנים של שכפול ורישום בינארי. -
חשוב לוודא שהערך של
GTID_MODEהואONאוOFF. לא נתמכים ערכים אחרים.במקרים הבאים, השירות להעברת נתונים מחייב שהערך של
GTID_MODEיהיהON:- כש מעבירים למכונה קיימת ביעד שמופעלות בה רפליקות לקריאה בלבד.
- אם רוצים להגדיר רפליקות מדורגות לקריאה בלבד אחרי שמשלימים את תהליך ההעברה.
- אם אתם מתכננים ליצור ידנית את קובצי ה-dump ולספק אותם במשימת ההעברה.
מידע נוסף על
GTID_MODEזמין במאמר בנושא משתנה מערכת גלובלי של מזהה עסקה. -
מפעילים ומגדירים יומנים בינאריים במסד הנתונים של המקור. מבצעים את הפעולות הבאות:
- מפעילים יומנים בינאריים במסד הנתונים של המקור.
- מגדירים את
binlog_formatלהיות'ROW'. רישום ביומן בינארי מבוסס-שורות - מגדירים את
תקופת השמירה של היומן לפרק זמן ארוך מספיק כדי לתמוך בהעברת מסד הנתונים. בדרך כלל, שבוע מספיק.
משתמשים באחד מהדגלים הבאים:
- MySQL 5.5 עד 5.7:
expire_logs_days - MySQL 8.0:
expire_logs_days,binlog_expire_logs_seconds
- MySQL 5.5 עד 5.7:
-
יוצרים בחשבון משתמש ייעודי להעברה. הצהרות בנושא ניהול חשבונות חשוב לוודא ש:
- אתם מאפשרים לחשבון המשתמש הייעודי להתחבר מכל מארח
(
host=%). - הסיסמה של החשבון לא ארוכה מ-32 תווים. מידע נוסף על מגבלות אורך הסיסמה של משתמש MySQL זמין במאמר MySQL Bug #43439.
- אתם מאפשרים לחשבון המשתמש הייעודי להתחבר מכל מארח
(
-
מקצים את ההרשאות הנדרשות לחשבון המשתמש הייעודי להעברה. בהעברות רציפות, הרשימה המלאה של ההרשאות הנדרשות תלויה בשאלה אם אתם מספקים קובצי dump משלכם או משתמשים בתכונת ה-dump המנוהלת של Database Migration Service:
פלט מנוהל
אם רוצים ש-Database Migration Service ייצור באופן אוטומטי את קובץ ה-dump המלא של מסד הנתונים במקור, צריך להקצות לחשבון המשתמש את ההרשאות הבאות:
REPLICATION SLAVEEXECUTEREPLICATION CLIENTSELECTSHOW VIEWTRIGGER- למקורות עם ההגדרה
GTID_MODE = ON:RELOADבתהליך של ה-dump המנוהל, ב-Database Migration Service נדרשת ההגדרה
GTID_MODE = ONרק כש מעבירים למכונה קיימת ביעד שמופעלות בה רפליקות לקריאה בלבד. - לגרסאות מקור של MySQL 8.0 ואילך: מוודאים שלחשבון ההעברה אין הרשאת
BACKUP_ADMIN.
פלט ידני
אם אתם מספקים קובצי dump משלכם שנוצרו באמצעות
mysqldump, אתם צריכים לספק את ההרשאות הנדרשות לשלב ה-CDC:
הגדרת מקור Amazon RDS ל-MySQL
כדי להגדיר מכונה של Amazon RDS ל-MySQL כמקור לתהליך ההעברה:
- ב-Amazon RDS for MySQL נעשה שימוש ב מנוע האחסון InnoDB כברירת מחדל, אבל אפשר להשתמש במנועי אחסון אחרים. מוודאים שבכל הטבלאות (חוץ מטבלאות במסדי נתונים של המערכת) נעשה שימוש במנוע האחסון InnoDB. אם אתם משתמשים במנוע אחסון אחר, יכול להיות שתצטרכו להמיר את הטבלאות. מידע נוסף זמין במאמר Converting Tables from MyISAM to InnoDB.
- בודקים אם מסד הנתונים של המקור מכיל מטא-נתונים שהוגדרו על ידי משתמשים באמצעות הסעיף
DEFINER. אימות מטא-נתונים באמצעות משפטDEFINERהשירות להעברת נתונים של מסדי נתונים להעברות הומוגניות של MySQL לא מעביר חשבונות משתמשים והתחברויות. מקורות שמכילים מטא-נתונים שמוגדרים על ידי חשבונות משתמשים עם הסעיף
DEFINERעלולים לחסום את ההעברה. - אם מסד הנתונים של המקור מכיל אובייקטים שמפנים לטבלאות בסכימות המערכת
mysql,performance_schema,information_schema,ndbinfoאוsys, ודאו שגם מסדי הנתונים של הרפליקה מכילים את הטבלאות האלה של סכימות המערכת.אם הטבלאות האלה לא קיימות במסדי הנתונים של הרפליקות, יכול להיות שמשימת ההעברה תיכשל ותופיע השגיאה
Unknown table in system schema. -
חשוב לוודא שהערך של
GTID_MODEמוגדר כ-ONאו כ-OFF. ערכים אחרים לא נתמכים. Amazon RDS ל-MySQL משתמש ב-GTID_MODE = OFFכברירת מחדל.צריך להגדיר את
GTID_MODEל-ONב-Database Migration Service בתרחישים הבאים:- כש מעבירים למכונה קיימת ביעד שמופעלות בה רפליקות לקריאה בלבד.
- אם אתם מתכננים ליצור ידנית את קובצי ה-dump ולספק אותם במשימת ההעברה.
מידע נוסף על
GTID_MODEזמין במאמר משתנה מערכת של מזהה עסקה גלובלי. -
מאמתים ומגדירים יומני בינארי במסד הנתונים של המקור. מבצעים את הפעולות הבאות:
- מוודאים שהמכונה משתמשת בגיבויים אוטומטיים. Amazon RDS יוצר יומנים בינאריים רק כשמופעלים גיבויים אוטומטיים. מידע נוסף זמין במאמר הפעלת גיבויים אוטומטיים במסמכי התיעוד של Amazon RDS.
-
מגדירים את תקופת השמירה של היומן לתקופה ארוכה מספיק כדי לתמוך בהעברת מסד הנתונים. בדרך כלל, שבוע מספיק. אפשר לעיין במאמר הגדרה והצגה של הגדרות יומן בינארי במסמכי התיעוד של Amazon RDS.
- מפעילים מחדש את השרת כדי שהשינויים שביצעתם ייכנסו לתוקף.
-
יוצרים בחשבון משתמש ייעודי להעברה. ראו דוחות ניהול חשבון. חשוב לוודא את הפרטים הבאים:
- אתם מאפשרים לחשבון המשתמש הייעודי להתחבר מכל מארח
(
host=%). - הסיסמה של החשבון לא ארוכה מ-32 תווים. מידע נוסף על מגבלות האורך של סיסמאות משתמשים ב-MySQL זמין במאמר MySQL Bug #43439.
- אתם מאפשרים לחשבון המשתמש הייעודי להתחבר מכל מארח
(
-
מקצים את ההרשאות הנדרשות לחשבון המשתמש הייעודי להעברה. בהעברות רציפות, רשימת ההרשאות הנדרשות תלויה בשאלה אם אתם מספקים קובצי dump משלכם או משתמשים בתכונה של Database Migration Service לניהול קובצי dump:
פלט מנוהל
אם רוצים ש-Database Migration Service ייצור באופן אוטומטי את כל הנתונים ממסד הנתונים של המקור, צריך להקצות את ההרשאות הבאות לחשבון המשתמש:
REPLICATION SLAVEEXECUTEREPLICATION CLIENTSELECTSHOW VIEWTRIGGERLOCK TABLES- למקורות עם ההגדרה
GTID_MODE = ON:RELOADבתהליך המנוהל של יצירת עותק גיבוי, השירות להעברת נתונים (DMS) דורש את ההגדרה
GTID_MODE = ONרק כש מעבירים למופע יעד קיים שמופעלות בו רפליקות לקריאה. - לגרסאות מקור של MySQL 8.0 ואילך: מוודאים שלחשבון ההעברה אין הרשאת
BACKUP_ADMIN.
פלט ידני
אם אתם מספקים קובצי dump משלכם שנוצרו באמצעות
mysqldump, אתם צריכים לספק את ההרשאות הנדרשות לשלב ה-CDC:
הגדרת מקור Amazon Aurora ל-MySQL
כדי להגדיר מכונה של Amazon Aurora ל-MySQL כמקור לתהליך ההעברה:
- בודקים אם מסד הנתונים של המקור מכיל מטא-נתונים שהוגדרו על ידי משתמשים באמצעות פסקה
DEFINER. מידע נוסף זמין במאמר בנושא אימות מטא-נתונים באמצעות סעיףDEFINER.Database Migration Service להעברות הומוגניות של MySQL לא מעביר חשבונות משתמשים ופרטי התחברות. מקורות שמכילים מטא-נתונים שמוגדרים על ידי חשבונות משתמשים עם הסעיף
DEFINERעלולים לחסום את ההעברה. - אם מסד הנתונים של המקור מכיל אובייקטים שמפנים לטבלאות בסכימות המערכת
mysql,performance_schema,information_schema,ndbinfoאוsys, ודאו שגם מסדי הנתונים של הרפליקה מכילים את הטבלאות האלה של סכימות המערכת.אם הטבלאות האלה לא קיימות במסדי הנתונים של הרפליקות, יכול להיות שמשימת ההעברה תיכשל ותופיע השגיאה
Unknown table in system schema. -
חשוב לוודא שהערך של
GTID_MODEמוגדר כ-ONאו כ-OFF. ערכים אחרים לא נתמכים. Amazon Aurora ל-MySQL משתמש ב-GTID_MODE = OFFכברירת מחדל.צריך להגדיר את
GTID_MODEל-ONב-Database Migration Service בתרחישים הבאים:- כש מעבירים למכונה קיימת ביעד שמופעלות בה רפליקות לקריאה בלבד.
- אם אתם מתכננים ליצור את קובצי ה-dump באופן ידני ולספק אותם במשימת ההעברה.
מידע נוסף על
GTID_MODEזמין במאמר משתנה מערכת של מזהה עסקה גלובלי. -
מפעילים ומגדירים יומני בינאריים במסד הנתונים של המקור. מבצעים את הפעולות הבאות:
- הפעלת יומן בינארי במסד הנתונים של MySQL.
-
מגדירים את תקופת השמירה של היומן לתקופה ארוכה מספיק כדי לתמוך בהעברת מסד הנתונים. בדרך כלל, שבוע מספיק. הגדרה והצגה של הגדרות היומן הבינארי.
- מפעילים מחדש את השרת כדי שהשינויים שביצעתם ייכנסו לתוקף.
-
יוצרים בחשבון משתמש ייעודי להעברה. הצהרות בנושא ניהול חשבונות חשוב לוודא את הפרטים הבאים:
- אתם מאפשרים לחשבון המשתמש הייעודי להתחבר מכל מארח
(
host=%). - הסיסמה לחשבון לא ארוכה מ-32 תווים. מידע נוסף על מגבלות האורך של סיסמאות משתמשים ב-MySQL זמין במאמר MySQL Bug #43439.
- אתם מאפשרים לחשבון המשתמש הייעודי להתחבר מכל מארח
(
-
מקצים את ההרשאות הנדרשות לחשבון המשתמש הייעודי להעברה. בהעברות רציפות, הרשימה המלאה של ההרשאות הנדרשות תלויה בשאלה אם אתם מספקים קובצי dump משלכם או משתמשים בתכונת ה-dump המנוהלת של Database Migration Service:
פלט מנוהל
אם רוצים ש-Database Migration Service ייצור באופן אוטומטי את קובץ ה-dump המלא של מסד הנתונים במקור, צריך להקצות לחשבון המשתמש את ההרשאות הבאות:
REPLICATION SLAVEEXECUTEREPLICATION CLIENTSELECTSHOW VIEWTRIGGERLOCK TABLES- למקורות עם ההגדרה
GTID_MODE = ON:RELOADבתהליך של ה-dump המנוהל, ב-Database Migration Service נדרשת ההגדרה
GTID_MODE = ONרק כש מעבירים למכונה קיימת ביעד שמופעלות בה רפליקות לקריאה בלבד. - בגרסאות MySQL 8.0 ואילך של המקור: ודאו שלחשבון ההעברה אין את ההרשאה
BACKUP_ADMIN.
פלט ידני
אם אתם מספקים קובצי dump משלכם שנוצרו באמצעות
mysqldump, אתם צריכים לספק את ההרשאות הנדרשות לשלב ה-CDC:
הגדרה של מקור Microsoft Azure Database for MySQL
כדי להגדיר מכונה של Microsoft Azure Database for MySQL כמקור לתהליך ההעברה:
- בודקים אם מסד הנתונים של המקור מכיל מטא-נתונים שהוגדרו על ידי משתמשים באמצעות פסקה
DEFINER. מידע נוסף זמין במאמר בנושא אימות מטא-נתונים באמצעות סעיףDEFINER.השירות להעברת נתונים של מסדי נתונים להעברות הומוגניות של MySQL לא מעביר חשבונות משתמשים והתחברויות. מקורות שמכילים מטא-נתונים שהוגדרו על ידי חשבונות משתמשים עם סעיף
DEFINERעשויים לחסום את ההעברה. - אם מסד הנתונים של המקור מכיל אובייקטים שמפנים לטבלאות בסכימות המערכת
mysql,performance_schema,information_schema,ndbinfoאוsys, ודאו שגם מסדי הנתונים של הרפליקה מכילים את הטבלאות האלה של סכימות המערכת.אם הטבלאות האלה לא קיימות במסדי הנתונים של הרפליקות, יכול להיות שמשימת ההעברה תיכשל ותופיע השגיאה
Unknown table in system schema. -
חשוב לוודא שהערך של
GTID_MODEהואONאוOFF. לא נתמכים ערכים אחרים. ב-Microsoft Azure Database for MySQL נעשה שימוש ב-GTID_MODE = OFFכברירת מחדל.במקרים הבאים, השירות להעברת נתונים מחייב שהערך של
GTID_MODEיהיהON:- כש מעבירים למופע יעד קיים שמופעלות בו רפליקות לקריאה.
- אם אתם מתכננים ליצור את קובצי ה-dump באופן ידני ולספק אותם במשימת ההעברה.
מידע נוסף על
GTID_MODEזמין במאמר בנושא משתנה מערכת גלובלי של מזהה עסקה. -
מאמתים ומגדירים את ההגדרות של רישום ביומן בינארי במסד הנתונים של המקור. מבצעים את הפעולות הבאות:
- כברירת מחדל, רישום ביומן בינארי מופעל ב-Microsoft Azure Database for MySQL. לא צריך להפעיל אותו, אבל כדאי לוודא שהתכונה מופעלת. מידע נוסף זמין ב מאמרי העזרה של Microsoft.
-
מגדירים את
binlog_expire_logs_secondsלתקופה ארוכה מספיק כדי לתמוך בהעברת מסד הנתונים. בדרך כלל, שבוע מספיק.מידע נוסף זמין במאמר הגדרת פרמטרים של שרת ב-Azure Database for MySQL וב פרמטר
binlog_expire_logs_secondsבמאמרי העזרה של Microsoft. - מפעילים מחדש את השרת כדי שהשינויים שביצעתם ייכנסו לתוקף.
בודקים את הערך של ההגדרה
require_secure_transport.כברירת מחדל, מסדי נתונים של Microsoft Azure דורשים הצפנת SSL/TLS לכל החיבורים הנכנסים. בהתאם לערך של
require_secure_transport, משתמשים באחת מהגדרות ההצפנה הבאות כשיוצרים את פרופיל חיבור למקור:- אם המדיניות
require_secure_transportמוגדרת לערךon, בוחרים באפשרות בסיסי, TLS או mTLS. - אם הערך של
require_secure_transportהואoff, בוחרים באפשרות ללא.
- אם המדיניות
-
יוצרים חשבון משתמש ייעודי להעברה במכונה שלכם. הצהרות בנושא ניהול חשבונות חשוב לוודא את הפרטים הבאים:
- אתם מאפשרים לחשבון המשתמש הייעודי להתחבר מכל מארח
(
host=%). - הסיסמה של החשבון לא ארוכה מ-32 תווים. מידע נוסף על מגבלות האורך של סיסמאות משתמשים ב-MySQL זמין במאמר MySQL Bug #43439.
- אתם מאפשרים לחשבון המשתמש הייעודי להתחבר מכל מארח
(
-
מקצים את ההרשאות הנדרשות לחשבון המשתמש הייעודי להעברה. בהעברות רציפות, רשימת ההרשאות המלאה הנדרשת תלויה בשאלה אם אתם מספקים קובצי dump משלכם או משתמשים בתכונת ה-dump המנוהלת של Database Migration Service:
פלט מנוהל
אם רוצים ש-Database Migration Service ייצור באופן אוטומטי את כל הנתונים ממסד הנתונים של המקור, צריך להקצות את ההרשאות הבאות לחשבון המשתמש:
REPLICATION SLAVEEXECUTEREPLICATION CLIENTSELECTSHOW VIEWTRIGGER- למקורות עם ההגדרה
GTID_MODE = ON:RELOADבתהליך המנוהל של יצירת עותק גיבוי, השירות להעברת נתונים (DMS) דורש את ההגדרה
GTID_MODE = ONרק כש מעבירים למופע יעד קיים שמופעלות בו רפליקות לקריאה. - בגרסאות MySQL 8.0 ואילך של המקור: ודאו שלחשבון ההעברה אין את ההרשאה
BACKUP_ADMIN.
פלט ידני
אם אתם מספקים קובצי dump משלכם שנוצרו באמצעות
mysqldump, אתם צריכים לספק את ההרשאות הנדרשות לשלב ה-CDC:
המאמרים הבאים
במאמר תחילת העבודה עם העברות של Cloud SQL ל-MySQL מוסבר שלב אחרי שלב איך מבצעים העברות הומוגניות של Cloud SQL ל-MySQL.