שכפול משרת חיצוני (גרסה 1)

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

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

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

לפני שמתחילים

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

  • נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  • In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  • Verify that billing is enabled for your Google Cloud project.

  • In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  • Verify that billing is enabled for your Google Cloud project.

  • מפעילים את Cloud SQL Admin API, אם הוא עדיין לא מופעל.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    להפעלת ה-API

  • מתקינים ומאמתים את ה-CLI של gcloud.
  • מוודאים שהשרת עומד בדרישות לגבי שרת מסד הנתונים של המקור.
  • קובעים את רמת האבטחה הנדרשת לחיבורים בין המופע הראשי לבין העותק המשוכפל, ומשיגים את קובצי האישורים הנדרשים.
  • מחליטים באיזה Google Cloud אזור רוצים להשתמש כדי להכיל את העותק המשוכפל של Cloud SQL.
  • מכינים את המידע הנדרש על שרת מסד הנתונים של המקור:

    • כתובת IPv4 חיצונית ומספר יציאה

      כברירת מחדל, MySQL משתמש ביציאה 3306.

    • שם המשתמש והסיסמה של חשבון המשתמש בשכפול MySQL
    • מספר הגרסה של MySQL
    • המיקום של כל האישורים והמפתחות הנדרשים של SSL/TLS, בהתאם לרמת האבטחה שבחרתם
  • צריך להיות מוכנים לעדכן את חומת האש של הרשת בשרת של מסד הנתונים המקורי כדי לאפשר חיבורים מהרפליקה של Cloud SQL.

    חובה להשלים את השלב הזה תוך 30 דקות ממועד יצירת העותק.

  • אם אתם לא בעלי הפרויקט, אתם צריכים לקבל את התפקיד Storage Admin.

הדרישות לגבי שרת מסד הנתונים של המקור

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

תהליך ההגדרה

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

  1. יצירת קטגוריה של Cloud Storage לנתונים.
  2. ייצוא הנתונים ל-Cloud Storage.
  3. הגדרת השכפול
  4. מגדירים את שרת מסד הנתונים של המקור כך שיקבל חיבורים מהרפליקה.

  5. הגבלת הגישה למשתמש השכפול של MySQL.

  6. איך מסיימים את ההגדרה של העותק

  7. אישור סטטוס השכפול.

  8. פינוי נפח אחסון

1. יצירת קטגוריה של Cloud Storage לנתונים

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

מידע נוסף על יצירת קטגוריה זמין במאמר יצירת קטגוריות ב-Storage. מידע נוסף על התפקיד 'אדמין אחסון' זמין במאמר תפקידי IAM ב-Cloud Storage.

2. ייצוא הנתונים ל-Cloud Storage

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

ממכונה שמותקן בה ה-CLI של gcloud ושמחוברת לרשת של שרת MySQL, מריצים את הפקודה הבאה:

mysqldump \
    -h [PRIMARY_INSTANCE_IP] -P [PRIMARY_INSTANCE_PORT] -u [USERNAME] -p \
    --databases [DBS]  \
    --hex-blob  --skip-triggers  --master-data=1  \
    --order-by-primary --no-autocommit \
    --default-character-set=utf8mb4 \
    --single-transaction --set-gtid-purged=on | gzip | \
    gcloud storage cp - gs://[BUCKET]/[PATH_TO_DUMP]

If the source of the migration is a Relational Database Service (RDS) for MySQL,
the master-data flag is not supported and should not be specified.
This command might look like the following example:

mysqldump \
    -h [PRIMARY_INSTANCE_IP] -P [PRIMARY_INSTANCE_PORT] -u [USERNAME] -p \
    --databases [DBS]  \
    --hex-blob  --skip-triggers \
    --order-by-primary --no-autocommit \
    --default-character-set=utf8mb4 \
    --single-transaction --set-gtid-purged=on | gzip | \
    gcloud storage cp - gs://[BUCKET]/[PATH_TO_DUMP]

Additionally, you should configure RDS instances to retain binlogs for a
a longer period of time.
This command might look like the following example:

// Sets the retention period to one day.
call mysql.rds_set_configuration('binlog retention hours', 24);

מחליפים את [PROPERTIES_IN_BRACKETS] בערכים הבאים:

מאפיין (property) ערך
[PRIMARY_INSTANCE_IP] כתובת ה-IPv4 של שרת מסד הנתונים של המקור.
[PRIMARY_INSTANCE_PORT] היציאה של שרת מסד הנתונים של המקור.
[USERNAME] חשבון המשתמש לשכפול ב-MySQL.
[PASSWORD] הסיסמה של חשבון המשתמש בשכפול MySQL.
[DBS] רשימה של כל מסדי הנתונים בשרת מסד הנתונים של המקור, מלבד מסדי הנתונים של המערכת (sys, ‏ mysql, ‏ performance_schema ו-information_schema), כשהם מופרדים ברווחים. אפשר להשתמש בפקודה SHOW DATABASES MySQL כדי להציג את מסדי הנתונים.
[BUCKET] שם הקטגוריה שיצרתם כדי להכיל את קובץ הייצוא.
[PATH_TO_DUMP] הנתיב לקובץ הייצוא.

אם מוצגת אזהרה לגבי פריקות חלקיות ומזהי GTID, זה צפוי.

הפקודה עשויה להיראות כמו בדוגמה הבאה:

mysqldump \
    -h 192.0.2.1 -P 3306 -u replicationUser \
    --databases guestbook  \
    --hex-blob  --skip-triggers  --master-data=1  \
    --order-by-primary --no-autocommit \
    --default-character-set=utf8mb4 \
    --single-transaction --set-gtid-purged=on | gzip | \
    gcloud storage cp - gs://export-bucket/hq-primary1.sql.gz

3. יצירת הגדרת השכפול

אם העותק משתמש בכתובת IP פרטית, צריך להגדיר את שרת מסד הנתונים של המקור לגישה מ-VPC של העותק. יצירת רפליקות ב-VPC פרטי נתמכת רק באמצעות ה-CLI של gcloud ו-Cloud SQL Admin API.

המסוף

בשלב הזה נוצרת רפליקה של Cloud SQL ומכונת ייצוג המקור.

  1. פותחים את רשימת המכונות של Cloud SQL במסוף Google Cloud .

    פתיחת רשימת המופעים

  2. לוחצים על העברת נתונים בסרגל הלחצנים כדי לפתוח את Cloud SQL Migration Assistant.

  3. לוחצים על התחלת ההעברה.

  4. בשדה Source database name (שם מסד הנתונים של המקור), מציינים שם להגדרת השכפול ב-Cloud SQL.

    השם הזה הוא הפניה להגדרה, ואפשר להשתמש בכל שם תקין של מכונת Cloud SQL.

  5. מזינים את כתובת ה-IP ואת מספר היציאה של שרת מסד הנתונים של המקור.

  6. מציינים את שם המשתמש והסיסמה של משתמש MySQL שישמש לחיבור השכפול.

  7. בוחרים את גרסת MySQL של שרת מסד הנתונים של המקור.

  8. אם אתם משתמשים ב-SSL/TLS לחיבור בין העותק לבין שרת מסד הנתונים המקורי (מומלץ), בוחרים באפשרות הפעלת אבטחת SSL/TLS ומזינים את פרטי אישור ה-SSL/TLS של השרת המקורי.

    מידע נוסף על אפשרויות SSL/TLS זמין במאמר בנושא אפשרויות SSL/TLS.

  9. לוחצים על הבא וממלאים את הפרטים של העותק.

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

  10. מזינים את הנתיב לקובץ ה-dump שהעליתם ל-Cloud Storage קודם לכן.

  11. לוחצים על Create (יצירה) כדי ליצור את העותק.

  12. לוחצים על הבא.

gcloud

  1. יוצרים את המופע של ייצוג המקור.

    gcloud beta sql instances create [REPLICA_NAME] \
        --region=[REGION] --database-version=[MYSQL_VERSION] \
        --source-ip-address=[SOURCE_IP] --source-port=[SOURCE_PORT]
    

    אם העותק משתמש בכתובת IP פרטית, מוסיפים גם את הפרמטר הבא: ‎--network=[VPC_NETWORK_NAME]‎

    מחליפים את [PROPERTIES_IN_BRACKETS] בערכים הבאים:

    מאפיין (property) ערך
    [SOURCE_REPRESENTATION_NAME] השם של מופע ייצוג המקור. משתמשים בכל שם תקין של מכונה ב-Cloud SQL.
    [REGION] האזור שבו רוצים שהרפליקות של Cloud SQL יהיו.
    [MYSQL_VERSION] גרסת MySQL שפועלת בשרת מסד הנתונים של המקור: MYSQL_5_6 או MYSQL_5_7.
    [SOURCE_IP] כתובת ה-IPv4 שאפשר לגשת אליה מבחוץ של שרת מסד הנתונים של המקור.
    [SOURCE_PORT] היציאה שאפשר לגשת אליה מבחוץ לשרת מסד הנתונים של המקור.
  2. יוצרים את העותק המשוכפל של Cloud SQL:

    gcloud beta sql instances create [REPLICA_NAME] \
        --master-instance-name=[SOURCE_REPRESENTATION_NAME] \
        --master-username=[USERNAME] --prompt-for-master-password \
        --master-dump-file-path=gs://[BUCKET]/[PATH_TO_DUMP] \
        --master-ca-certificate-path=[SOURCE_SERVER_CA_PATH] \
        --client-certificate-path=[CLIENT_CERT_PATH] \
        --client-key-path=[PRIVATE_KEY_PATH] \
        --tier=[MACHINE_TYPE] --storage-size=[DISK_SIZE]
    

    אם העותק משתמש בכתובת IP פרטית, מוסיפים גם את הפרמטר הבא: ‎--network=[VPC_NETWORK_NAME]‎

    מחליפים את [PROPERTIES_IN_BRACKETS] בערכים הבאים:

    מאפיין (property) ערך
    [REPLICA_NAME] השם של העותק לקריאה ב-Cloud SQL. משתמשים בכל שם תקין של מכונה ב-Cloud SQL.
    [SOURCE_REPRESENTATION_NAME] השם של מופע ייצוג המקור שיצרתם בשלב הקודם.
    [USERNAME] חשבון המשתמש של השכפול ב-MySQL בשרת מסד הנתונים של המקור.
    [BUCKET] שם הקטגוריה שיצרתם כדי להכיל את קובץ הייצוא.
    [PATH_TO_DUMP] הנתיב לקובץ הייצוא.
    [SOURCE_SERVER_CA_PATH] הנתיב המקומי שבו מאוחסן אישור ה-CA של שרת מסד הנתונים של המקור. נדרש רק ל-SSL/TLS.
    [CLIENT_CERT_PATH] הנתיב המקומי למיקום שבו מאוחסן אישור הלקוח. נדרש רק לאימות שרת-לקוח.
    [PRIVATE_KEY_PATH] הנתיב המקומי שבו מאוחסן קובץ המפתח הפרטי של אישור הלקוח. נדרש רק לאימות שרת-לקוח.
    [MACHINE_TYPE] הגודל של העותק. בדרך כלל, העותק זהה בגודלו לשרת מסד הנתונים של המקור. אם אתם לא בטוחים באיזה סוג מכונה להשתמש, כדאי להתחיל עם db-custom-2-7680. במקרה הצורך, אפשר לשנות את הגודל שלו בהמשך.
    [DISK_SIZE] גודל האחסון של העותק המשוכפל, ב-GB. כדי לקבל את הביצועים הכי טובים, כדאי ליצור את העותק עם נפח אחסון שמספיק בערך להכיל את כל קובץ הייבוא.
    [VPC_NETWORK_NAME] VPC בפורמט: projects/[PROJECT_ID]/global/networks/[NETWORK_NAME]

cURL

1. יצירת מכונת ייצוג של מקור ב-Cloud SQL

gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{
         "name": "[SOURCE_REPRESENTATION_NAME]",
         "region": "[REGION]",
         "databaseVersion": "[MYSQL_VERSION]",
         "onPremisesConfiguration": {
             "hostPort": "[SOURCE_SERVER_IP]:[SOURCE_SERVER_PORT]"
         }
     }' \
     -X POST \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances

מחליפים את [PROPERTIES_IN_BRACKETS] בערכים הבאים:

מאפיין (property) ערך
[SOURCE_REPRESENTATION_NAME] השם של מופע ייצוג המקור. משתמשים בכל שם תקין של מכונה ב-Cloud SQL.
[REGION] האזור שבו רוצים שהרפליקות של Cloud SQL יהיו.
[MYSQL_VERSION] גרסת MySQL שפועלת בשרת מסד הנתונים של המקור: MYSQL_5_6 או MYSQL_5_7.
[SOURCE_SERVER_IP] כתובת ה-IPv4 שאפשר לגשת אליה מבחוץ של שרת מסד הנתונים של המקור.
[SOURCE_SERVER_PORT] היציאה שאפשר לגשת אליה מבחוץ לשרת מסד הנתונים של המקור.
[PROJECT_ID] מזהה הפרויקט של פרויקט Google Cloud .

לדוגמה, כדי ליצור מופע ייצוג של מקור בשם hq-primary1, לשרת מסד נתונים של מקור עם כתובת ה-IP‏ 192.0.2.0 שפתוח ביציאה 3306, ופועל ב-MySQL 5.7, לשכפולים של Cloud SQL בפרויקט MyProject ובאזור us-central1, משתמשים בפקודות הבאות:

gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{
         "name": "hq-primary1",
         "region": "us-central1",
         "databaseVersion": "MYSQL_5_7",
         "onPremisesConfiguration": {
             "hostPort": "192.0.2.0:3306"
         }
     }' \
     -X POST \
     https://www.googleapis.com/sql/v1beta4/projects/MyProject/instances

2. יצירת העתק משוכפל של Cloud SQL

בשלב הזה יוצרים רפליקה לקריאה ב-Cloud SQL באמצעות שרת ייצוג המקור לייצוג שרת מסד הנתונים של המקור, ומספקים לרפליקה את הנתונים שהועלו ל-Cloud Storage בשלב הקודם.

מכיוון שהקריאה הזו ל-API מחייבת לספק מידע רגיש, משתמשים בקובץ JSON כדי לספק את הנתונים ל-cURL, במקום לספק אותם בשורת הפקודה.

יוצרים את קובץ הנתונים:

{
    "replicaConfiguration": {
        "mysqlReplicaConfiguration": {
            "username": "[USERNAME]",
            "password": "[PASSWORD]",
            "dumpFilePath": "gs://[BUCKET]/[PATH_TO_DUMP]",
            "caCertificate": "[SOURCE_SERVER_CA]",
            "clientCertificate": "[CLIENT_CERT]",
            "clientKey": "[PRIVATE_KEY]"
        }
     },
     "settings": {
         "tier": "[MACHINE_TYPE]",
         "dataDiskSizeGb": "[DISK_SIZE]"
     },
     "masterInstanceName": "[SOURCE_REPRESENTATION_NAME]",
     "region": "[REGION]",
     "databaseVersion": "[MYSQL_VERSION]",
     "name": "[REPLICA_NAME]"
}

אם העותק משתמש בכתובת IP פרטית, צריך להוסיף להגדרות גם את: ‎"ipConfiguration.privateNetwork" עם הערך בפורמט: ‎"projects/[PROJECT_ID]/global/networks/[NETWORK_NAME]"‎

מחליפים את [PROPERTIES_IN_BRACKETS] בערכים הבאים:

מאפיין (property) ערך
[USERNAME] חשבון המשתמש של השכפול ב-MySQL בשרת מסד הנתונים של המקור.
[PASSWORD] הסיסמה של חשבון המשתמש בשכפול MySQL.
[BUCKET] שם הקטגוריה שיצרתם כדי להכיל את קובץ הייצוא.
[PATH_TO_DUMP] הנתיב לקובץ הייצוא.
[SOURCE_SERVER_CA] אישור ה-CA של שרת מסד הנתונים של המקור. נדרש רק ל-SSL/TLS. מדביקים את האישור בגוף הבקשה.
[CLIENT_CERT] אישור הלקוח. נדרש רק לאימות שרת-לקוח. מדביקים את האישור בגוף הבקשה.
[PRIVATE_KEY] קובץ המפתח הפרטי של אישור הלקוח. נדרש רק לאימות שרת-לקוח. מדביקים את המפתח בגוף הבקשה.
[MACHINE_TYPE] הגודל של העותק. בדרך כלל, העותק זהה בגודלו לשרת מסד הנתונים של המקור. אם אתם לא בטוחים באיזה סוג מכונה להשתמש, כדאי להתחיל עם db-custom-2-7680. במקרה הצורך, אפשר לשנות את הגודל שלו בהמשך.
[DISK_SIZE] גודל האחסון של העותק המשוכפל, ב-GB. כדי לקבל את הביצועים הטובים ביותר, צריך ליצור את העותק עם מספיק נפח אחסון כדי להכיל את כל הייבוא.
[SOURCE_REPRESENTATION_NAME] השם של מופע ייצוג המקור שיצרתם קודם.
[REGION] האזור שבו יצרתם את מופע ייצוג המקור. העותקים לקריאה צריכים להיות באותו אזור שבו נמצא מופע הייצוג של המקור.
[MYSQL_VERSION] גרסת MySQL שפועלת בשרת מסד הנתונים של המקור: MYSQL_5_6 או MYSQL_5_7.
[REPLICA_NAME] השם של העותק לקריאה ב-Cloud SQL. משתמשים בכל שם תקין של מכונה ב-Cloud SQL.

בשורת הפקודה, קוראים ל-API:

gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data @[PATH_TO_DATA_FILE] \
     -X POST \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances

עבור מופע הייצוג של המקור והמאגר שיצרנו קודם, קובץ הנתונים, data.json, יכול להיראות כמו בדוגמה הבאה:

{
    "replicaConfiguration": {
        "mysqlReplicaConfiguration": {
            "username": "replicationUser",
            "password": "486#@%*@",
            "dumpFilePath": "gs://export-bucket/hq-primary1.sql.gz",
            "caCertificate": "[SOURCE_SERVER_CA]",
            "clientCertificate": "[CLIENT_CERT]",
            "clientKey": "[PRIVATE_KEY]"
        }
    },
    "settings": {
        "tier": "db-custom-4-15360",
        "dataDiskSizeGb": "100"
    },
    "masterInstanceName": "hq-primary1",
    "region": "us-central1",
    "databaseVersion": "MYSQL_5_7",
    "name": "hq-primary1-replica1"
}

ופקודת ה-cURL תיראה כך:

curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data @./data.json
     -X POST \
     https://www.googleapis.com/sql/v1beta4/projects/MyProject/instances

כשלרפליקה לקריאה יש גישה לקובץ ה-dump, היא מתחילה את תהליך הייבוא. משך תהליך הייבוא תלוי בגודל קובץ ה-dump, בסוג המכונה של העותק המשוכפל ובסכימת מסד הנתונים. ככלל, אפשר להניח שייבוא העותק יתבצע בקצב של כ-25 עד 50GB לשעה.

ההעתק יישאר במצב PENDING_CREATE עד שתהליך הייבוא יסתיים, ואז הוא ישתנה למצב RUNNABLE.

4. הגדרת שרת מסד הנתונים של המקור כך שיקבל חיבורים מהעותק

כדי שהשכפול יצליח, העותק צריך להתחבר לשרת של מסד הנתונים המקורי. אם שרת מסד הנתונים של המקור נמצא מאחורי חומת אש או הגבלה אחרת ברשת, צריך להפעיל גישה לרשת עבור העותק, באמצעות OUTGOING כתובת ה-IP של העותק. שימו לב שזו לא כתובת ה-IP שמוצגת ברשימה הראשית של העותק במסוף Google Cloud . כדי לאחזר את כתובת ה-IP OUTGOING של המכשיר, מעבירים את העכבר מעל בועית העזרה מידע נוסף של כתובת ה-IP, או משתמשים בפקודה gcloud שבהמשך.

  1. מאחזרים את כתובות ה-IP של העותק לקריאה:

    gcloud sql instances describe [REPLICA_NAME] --format="default(ipAddresses)"
  2. אם צריך, מגדירים את חומת האש של הרשת של שרת מסד הנתונים של המקור כך שיקבל חיבורים מכתובת ה-IP‏ OUTGOING.
  3. מוודאים שהרפליקה התחברה בהצלחה לשרת של מסד הנתונים המקורי.

    1. הסמל של העותק בדף רשימת המופעים לא מסתובב יותר, והוא ירוק.
    2. נכנסים לכלי Logs Viewer במסוף Google Cloud .

      כניסה לדף Logs Viewer

    3. בוחרים את העותק המשוכפל מהתפריט הנפתח Instance (מופע).
    4. בוחרים את קובץ היומן replication-setup.log.

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

      • חומת האש בשרת מסד הנתונים של המקור מוגדרת כך שתאפשר חיבורים מכתובת ה-IP של העותק המשוכפל OUTGOING.
      • הגדרת ה-SSL/TLS שלכם נכונה.
      • המשתמש, המארח והסיסמה של השכפול נכונים.

5. הגבלת הגישה למשתמש השכפול של MySQL

השלב הזה הוא אופציונלי, אבל מומלץ לביצוע מטעמי אבטחה.

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

    UPDATE mysql.user SET Host='[OUTGOING_IP]' WHERE Host='%' AND User='[USERNAME]';
    FLUSH PRIVILEGES;

6. סיום הגדרת העותק

  1. מגדירים חשבון משתמש בעותק המשוכפל.

    אפשר לעשות את זה באמצעות המסוף Google Cloud , כלי ה-CLI של gcloud או Cloud SQL API. עם זאת, אי אפשר להשתמש בלקוח mysql. מידע נוסף על משתמשי MySQL זמין במאמר משתמשי MySQL.

    כדי ליצור משתמש באמצעות מסוף Google Cloud :

    1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
      כניסה לדף Cloud SQL Instances
    2. לוחצים על שם המופע כדי לפתוח את הדף פרטי המופע.
    3. לוחצים על הכרטיסייה משתמשים.
    4. לוחצים על יצירת חשבון משתמש.
    5. בתיבת הדו-שיח יצירת חשבון משתמש, מציינים את הפרטים של המשתמש.
    6. לוחצים על יצירה.
  2. מאשרים גישה לרפליקה מכל לקוח שמתכננים להשתמש בו כדי להתחבר לרפליקה באמצעות כתובות IP ציבוריות.

    הוראות מפורטות זמינות במאמר בנושא הוספה של כתובת או טווח כתובות מורשים. כדי להתחבר לרפליקה, משתמשים בPRIMARYכתובת ה-IP שלה. כתובת ה-IP הזו מוצגת במסוף Google Cloud .

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

7. אישור סטטוס הרפליקציה

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

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

‫8. (אופציונלי) קידום הרפליקה למופע עצמאי

אחרי שבודקים את סטטוס הרפליקציה, אם רוצים להחליף לגמרי את שרת מסד הנתונים של המקור ב-Cloud SQL (כלומר לבצע 'העברה'), מקדמים את הרפליקה כדי שתהפוך למופע עצמאי ראשי. אחרי שהעותק הופך למופע הראשי, הוא כבר לא מקושר לשרת מסד הנתונים המקורי.

יוצרים העתק חדש למופע הראשי החדש, ומפעילים מחדש את האפליקציות המתחברות כדי שיצביעו על המופע הראשי החדש (לפעולות כתיבה) או על ההעתק החדש (לפעולות קריאה).

‫9. פינוי נפח האחסון

  1. מחיקת קובץ הייצוא:

    gcloud storage rm gs://[BUCKET]/[PATH_TO_DUMP]
    
  2. אם אין יותר צורך בקטגוריה, מוחקים אותה:

    gcloud storage rm gs://[BUCKET] --recursive
    

מידע נוסף זמין במאמרי העזרה בנושא Cloud Storage בנושאים מחיקת אובייקטים ומחיקת דליים.

עדכון ההגדרה

כדי לעדכן את הגדרות התצורה מאוחר יותר, אפשר לערוך את מופע ייצוג המקור. אם אתם צריכים לעדכן את הגדרות התצורה המקומית, שימו לב שלא ניתן לעדכן את hostPort ואת type.

המאמרים הבאים