שיבוט של מסד נתונים של Microsoft SQL Server ב-Compute Engine

במדריך הזה מוצגות שתי דרכים לשכפול מסד נתונים של Microsoft SQL Server שפועל ב-Compute Engine. שיטה אחת משתמשת בתמונות מצב של Persistent Disk. בשיטה השנייה משתמשים בגיבוי ובשחזור מקוריים של SQL Server, ומעבירים את הגיבוי באמצעות Cloud Storage. ‫Cloud Storage הוא שירות אחסון האובייקטים של Cloud de Confiance. הוא מציע דרך פשוטה, מאובטחת, עמידה וזמינה מאוד לאחסון קבצים.

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

  • ביצוע שאילתות ניתוח
  • בדיקות עומס או בדיקות שילוב של האפליקציות
  • חילוץ נתונים לאכלוס מחסני נתונים
  • הפעלת ניסויים על הנתונים

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

בעיה שיטה 1: תמונות מצב של דיסקים שיטה 2: גיבוי ושחזור באמצעות Cloud Storage
שטח אחסון נוסף שנדרש במופעי SQL Server לא נדרש מקום נוסף בדיסק נדרש נפח אחסון נוסף כדי לאחסן את קובץ הגיבוי כשיוצרים ומבצעים שחזור
עומס נוסף על מכונות SQL Server של המקור במהלך שיבוט אין עומס נוסף עומס נוסף על המעבד ועל קלט/פלט כשיוצרים ומעלים קובצי גיבוי
משך השכפול מהיר יחסית למסדי נתונים גדולים יחסית איטי במסדי נתונים גדולים
אפשר לשכפל ממופעים של SQL Server חיצוניים ל-Cloud de Confiance by S3NS לא כן
מורכבות רצף מורכב של פקודות לצירוף דיסקים משוכפלים קבוצה פשוטה יחסית של פקודות לשיבוט
אפשר להשתמש במערכות גיבוי קיימות כן, אם מערכת הגיבוי משתמשת בצילומי מצב של הדיסק Cloud de Confiance כן, אם מערכת הגיבוי כותבת קובצי גיבוי מקוריים של SQL Server ל-Cloud Storage
רמת הפירוט של השכפול אפשר לשכפל רק דיסקים שלמים אפשר לשכפל רק את מסד הנתונים שצוין
עקביות הנתונים עקבי בנקודת הזמן של תמונת המצב עקביים בזמן הגיבוי

ההנחה במדריך הזה היא שאתם מכירים את Microsoft Windows, את ניהול המערכת, את PowerShell ואת ניהול Microsoft SQL Server באמצעות Microsoft SQL Server Management Studio.

מטרות

עלויות

במסמך הזה משתמשים ברכיבים הבאים של Cloud de Confiance by S3NS, והשימוש בהם כרוך בתשלום:

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

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

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance 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

  2. Verify that billing is enabled for your Cloud de Confiance project.

  3. מפעילים את Compute Engine API.
  4. מפעילים את ה-API

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

  • אתם משתמשים בדפדפן Google Chrome.
  • מתקינים לקוח של פרוטוקול Remote Desktop ‏ (RDP) לפי בחירה. מידע נוסף זמין במאמר בנושא לקוחות של Microsoft Remote Desktop. אם כבר התקנתם לקוח RDP, אתם יכולים לדלג על המשימה הזו.

הגדרת הסביבה

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

  • מופע של SQL Server ב-Compute Engine (בשם sql-server-prod) שמייצג את שרת מסד הנתונים של הייצור.
  • דיסק נוסף (בשם sql-server-prod-data) שמצורף לשרת הייצור שלכם לאחסון מסד הנתונים של הייצור.
  • עותק של מסד הנתונים לדוגמה של Wide World Importers SQL Server כדי לדמות את מסד הנתונים של הייצור שרוצים לשכפל.
  • מופע של SQL Server ב-Compute Engine בשם sql-server-test שמייצג את שרת מסד הנתונים של הבדיקות. משכפלים את מסד הנתונים לשרת הזה.

התרשים הבא ממחיש את הארכיטקטורה הזו.

תרשים שמוצגת בו ההגדרה לשכפול של מסד נתונים של SQL Server במדריך הזה.

יצירת מכונת ה-VM לסביבת הייצור

כדי לדמות סביבת ייצור, מגדירים מכונה וירטואלית של Compute Engine שמריצה SQL Server ב-Windows Server.

המכונה הווירטואלית במדריך הזה משתמשת בשני דיסקים: דיסק בנפח ‎50 GB למערכת ההפעלה ולחשבונות המשתמשים, ודיסק בנפח ‎100 GB לאחסון מסד הנתונים.

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

המסוף

  1. נכנסים לדף VM instances במסוף Cloud de Confiance .

    לדף VM instances

  2. לוחצים על יצירה.

  3. בשדה שם, מקלידים sql-server-prod.

  4. בשדה Region, בוחרים us-east1.

  5. בשדה Zone, בוחרים באפשרות us-east1-b.

  6. בקטע Machine configuration (הגדרת מכונה), משנים את Machine type (סוג מכונה) ל-n1-standard-2 ‏(2 vCPU).

  7. לצד התיאור של דיסק האתחול, לוחצים על שינוי.

  8. בחלונית Boot disk (דיסק אתחול), לוחצים על הכרטיסייה Public images (תמונות ציבוריות).

  9. ברשימה הנפתחת Operating System בוחרים באפשרות SQL Server on Windows Server.

  10. בתפריט הנפתח Version (גרסה), בוחרים באפשרות SQL Server 2022 Standard on Windows Server 2022 Datacenter (גרסת SQL Server 2022 Standard ב-Windows Server 2022 Datacenter).

  11. מוודאים שהערכים הבאים מוגדרים:

    • ההגדרה סוג דיסק אתחול מוגדרת ל-דיסק מתמיד סטנדרטי.
    • הערך של Size (GB) מוגדר ל-50.
  12. לוחצים על בחירה.

  13. בקטע Identity and API access (זהות וגישה ל-API), מגדירים את Access scopes (היקפי גישה) לערך Allow full access to all Cloud APIs (מתן גישה מלאה לכל ממשקי Cloud API).

  14. מרחיבים את האפשרות Management, security, disks, networking, sole tenancy.

  15. לוחצים על הכרטיסייה Disks (דיסקים).

  16. לוחצים על הוספת דיסק חדש .

  17. בשדה שם, מקלידים sql-server-prod-data.

  18. בשדה Size (GB) (גודל (GB)), מקלידים 100.

  19. לוחצים על סיום.

  20. לוחצים על יצירה.

Cloud Shell

  1. פותחים את Cloud Shell.

    פתיחת Cloud Shell

  2. מאתחלים את המשתנים הבאים:

    VPC_NAME=VPC_NAME
    SUBNET_NAME=SUBNET_NAME
    

    כאשר:

    • VPC_NAME: השם של ה-VPC
    • SUBNET_NAME: השם של תת-הרשת
  3. מגדירים את מזהה הפרויקט שמוגדר כברירת מחדל:

    gcloud config set project PROJECT_ID
    

    מחליפים את PROJECT_ID במזהה הפרויקט. Cloud de Confiance

  4. הגדרת אזור ברירת המחדל:

    gcloud config set compute/region REGION
    

    מחליפים את REGION במזהה האזור שבו רוצים לבצע פריסה.

  5. הגדרת אזור ברירת המחדל:

    gcloud config set compute/zone ZONE
    

    מחליפים את ZONE במזהה של האזור שבו רוצים לבצע פריסה.

  6. יוצרים מכונת Compute Engine באמצעות תמונת האפליקציה של SQL Server 2022 Standard ב-Windows Server 2022 Datacenter:

    REGION=$(gcloud config get-value compute/region)
    ZONE=$(gcloud config get-value compute/zone)
    
    gcloud compute instances create sql-server-prod \
        --machine-type=n1-standard-2 \
        --scopes=cloud-platform \
        --image-family=sql-std-2022-win-2022 \
        --image-project=windows-sql-cloud \
        --boot-disk-size=50GB \
        --boot-disk-device-name=sql-server-prod \
        --create-disk="mode=rw,size=100,type=pd-standard,name=sql-server-prod-data,device-name=sql-server-prod-data" \
        --subnet=$SUBNET_NAME 
    

    הפקודה הזו מעניקה למכונה גישה מלאה לממשקי API של Cloud de Confiance , יוצרת דיסק משני בנפח 100GB ומצרפת את הדיסק למכונה. אפשר להתעלם מהאזהרה לגבי ביצועי הדיסק כי לא צריך ביצועים גבוהים במדריך הזה.

התחברות למכונת ה-VM

  1. נכנסים לדף VM instances במסוף Cloud de Confiance .

    לדף VM instances

  2. ממתינים כ-5 דקות עד שמופע מכונת ה-VM יהיה מוכן.

    כדי לעקוב אחרי תהליך האתחול של המכונה הווירטואלית, אפשר לראות את הפלט של היציאה הטורית ב-Cloud Shell:

    gcloud compute instances tail-serial-port-output sql-server-prod
    

    כשמופיעה ההודעה הבאה, המשמעות היא שההפעלה הושלמה.

    Instance setup finished. sql-server-prod is ready to use.
    

    מקישים על Control+C כדי להפסיק את המעקב אחרי היציאה הטורית.

  3. לוחצים על שם המכונה sql-server-prod כדי לפתוח את הדף פרטים של מכונת VM.

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

    בשלב הזה נוצרת סיסמה בשבילכם. רושמים את הסיסמה או מעתיקים אותה לקובץ זמני מאובטח.

  5. בקטע Compute Engine במסוף Cloud de Confiance , לוחצים על התפריט הנפתח RDP ובוחרים באפשרות Download the RDP file (הורדת קובץ ה-RDP) כדי להוריד את קובץ ה-RDP של המכונה.

    אפשר להשתמש בקובץ הזה כדי להתחבר למופע באמצעות לקוח RDP. מידע נוסף זמין במאמר בנושא לקוחות של Microsoft Remote Desktop.

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

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

  8. כשמוצגת ההודעה ששואלת אם רוצים שהמחשב יהיה גלוי למחשבים ולמכשירים אחרים ברשת, לוחצים על לא.

הגדרת הדיסק הנוסף

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

  1. בסשן RDP שמחובר למכונה sql-server-prod, לוחצים על הלחצן התחלה בשורת המשימות של Windows, מקלידים diskpart ואז לוחצים על diskpart כדי לפתוח את DiskPart.
  2. כשמופיעה בקשה לאפשר לאפליקציה לבצע שינויים, לוחצים על כן.
  3. כדי להציג רשימה של דיסקים שמצורפים למופע:

    list disk
    

    הפלט שיתקבל:

    Disk ###  Status         Size     Free     Dyn  Gpt
    --------  -------------  -------  -------  ---  ---
    Disk 0    Online           50 GB      0 B
    Disk 1    Online          100 GB   100 GB
    

    דיסק 1 (100GB) הוא דיסק הנתונים.

  4. בוחרים את דיסק הנתונים:

    select disk 1
    
  5. מאתחלים את הדיסק:

    clean
    
  6. יוצרים טבלת מחיצות GUID:

    convert gpt
    
  7. יוצרים את מחיצת הנתונים באמצעות כל הדיסק:

    create partition primary
    
  8. מציגים את הכרכים הזמינים:

    list volume
    

    הפלט שיתקבל:

    Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
    ----------  ---  -----------  -----  ----------  -------  ---------  --------
    Volume 0     C                NTFS   Partition     49 GB  Healthy    Boot
    Volume 1                      FAT32  Partition    100 MB  Healthy    System
    Volume 2                      RAW    Partition     99 GB  Healthy
    

    כרך 2 (99GB) הוא דיסק הנתונים.

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

    select volume 2
    
  10. מעצבים את המחיצה באמצעות מערכת הקבצים NTFS ומקצים לה את התווית data:

    format quick fs=ntfs label=data
    
  11. טוענים את הדיסק ככונן D:‎

    assign letter=d
    
  12. יוצאים מ-DiskPart:

    exit
    

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

כדי להגדיר את הסביבה לתרגול השכפול הזה, צריך לבצע את הפעולות הבאות:

כדי ליצור את הספרייה ולהוריד את קובץ הגיבוי:

  1. בסשן RDP, לוחצים על הכפתור Start בסרגל המשימות של Windows, מקלידים PowerShell ובוחרים באפליקציית Windows PowerShell.

  2. בשורת הפקודה של PowerShell, יוצרים מבנה ספריות לאחסון מסד הנתונים:

    mkdir D:\sql-server-data\wideworldimporters
    
  3. הורדת קובץ הגיבוי לכונן D:

    bitsadmin /transfer sampledb /dynamic /download /priority FOREGROUND `
      https://github.com/Microsoft/sql-server-samples/releases/download/wide-world-importers-v1.0/WideWorldImporters-Full.bak `
      D:\sql-server-data\WideWorldImporters-Full.bak
    

שחזור מסד הנתונים לדוגמה

צריך לשחזר את מסד הנתונים לדוגמה לכונן D ‏ (data), באופן אינטראקטיבי באמצעות האשפים של Microsoft SQL Server Management Studio (SSMS), או ישירות באמצעות הפעלת פקודת Transact-SQL.

אשף SSMS

  1. בסשן RDP, לוחצים על הלחצן התחל בסרגל המשימות של Windows, מקלידים ssms ובוחרים באפשרות Microsoft SQL Server Management Studio (הפעלה כמנהל).
  2. אחרי שהאפליקציה מופעלת, לוחצים על Connect (התחברות) כדי להתחבר למנוע מסד הנתונים sql-server-prod באמצעות אימות Windows.
  3. ב-Object Explorer, לוחצים לחיצה ימנית על Databases ואז בוחרים באפשרות Restore Database.
  4. בקטע מקור, בוחרים באפשרות מכשיר, ואז לוחצים על הלחצן [...] לצד שם המכשיר.
  5. בתיבת הדו-שיח בחירת מכשירי גיבוי, מוודאים שהאפשרות קובץ מסומנת בשדה סוג מדיה לגיבוי, ואז לוחצים על הוספה.
  6. בבורר הקבצים, עוברים אל D:\sql-server-data, לוחצים על הקובץ WideWorldImporters-Full.bak ואז על אישור.
  7. לוחצים על אישור כדי לסגור את תיבת הדו-שיח בחירת מכשירי גיבוי.

    תיבת הדו-שיח Restore Database מאוכלסת עכשיו בנתונים לגבי הגיבוי של מסד הנתונים Wide World Importers.

  8. בקטע בחירת דף, לוחצים על קבצים.

  9. מסמנים את התיבה העברת כל הקבצים לתיקייה.

  10. בשדות תיקיית קובץ הנתונים ותיקיית קובץ היומן, מזינים D:\sql-server-data\wideworldimporters.

    צילום מסך שבו מוצגת תיבת הדו-שיח 'שחזור מסד נתונים'.

  11. לוחצים על אישור כדי להתחיל את פעולת השחזור.

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

‫Transact-SQL

  1. בסשן RDP, לוחצים על הלחצן התחל בסרגל המשימות של Windows, מקלידים ssms ובוחרים באפשרות Microsoft SQL Server Management Studio (הפעלה כמנהל).
  2. אחרי שהאפליקציה מופעלת, לוחצים על Connect (התחברות) כדי להתחבר למנוע מסד הנתונים sql-server-prod באמצעות אימות Windows.
  3. בוחרים באפשרות קובץ > חדש > שאילתה עם החיבור הנוכחי כדי לפתוח חלון חדש של שאילתה.
  4. מתחילים שחזור מקובץ הגיבוי שהורדתם:

    USE [master]
    GO
    
    RESTORE DATABASE [WideWorldImporters]
      FROM  DISK = N'D:\SQL-SERVER-DATA\WideWorldImporters-Full.bak'
      WITH  FILE = 1,
      MOVE N'WWI_Primary' TO
        N'D:\SQL-SERVER-DATA\WideWorldImporters\WideWorldImporters.mdf',
      MOVE N'WWI_UserData' TO
        N'D:\SQL-SERVER-DATA\WideWorldImporters\WideWorldImporters_UserData.ndf',
      MOVE N'WWI_Log' TO
        N'D:\SQL-SERVER-DATA\WideWorldImporters\WideWorldImporters.ldf',
      MOVE N'WWI_InMemory_Data_1' TO
        N'D:\SQL-SERVER-DATA\WideWorldImporters\WideWorldImporters_InMemory_Data_1',
      NOUNLOAD,
      STATS = 5
    GO
    

    הפקודה הזו משחזרת את מסד הנתונים ואת קובץ היומן לספרייה D:\sql-server-data\wideworldimporters.

  5. לוחצים לחיצה ימנית על קוד השאילתה ואז על Execute (הרצה).

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

כדי לוודא שמסד הנתונים לדוגמה פועל, אפשר להריץ שאילתה.

  1. ב-Microsoft SQL Server Management Studio, בוחרים באפשרות File > New > Query with Current Connection (קובץ > חדש > שאילתה עם החיבור הנוכחי) כדי לפתוח חלון שאילתה חדש, ואז מעתיקים את הקוד הבא:

    SELECT top(100)
      i.InvoiceDate, i.InvoiceID, i.CustomerID, c.CustomerName,
      i.ConfirmedDeliveryTime, i.ConfirmedReceivedBy
    FROM
      WideWorldImporters.Sales.Invoices i
      JOIN WideWorldImporters.Sales.Customers c
      ON i.CustomerID=c.CustomerID
    WHERE i.ConfirmedDeliveryTime IS NOT NULL
    ORDER BY i.InvoiceDate desc;
    

    השאילתה הזו מאחזרת מידע סיכום מ-100 החשבוניות האחרונות שנמסרו.

  2. לוחצים לחיצה ימנית על חלון השאילתה ואז על הפעלה.

    בחלונית תוצאות מוצג סיכום המידע.

    צילום מסך שבו מוצגת חלונית התוצאות של שאילתה במסד הנתונים לדוגמה.

יצירת מופע של מכונה וירטואלית לבדיקה

בקטע הזה יוצרים מכונת SQL Server בשם sql-server-test כיעד למסד הנתונים המשוכפל. ההגדרה של המופע הזה זהה לזו של מופע הייצור. עם זאת, לא יוצרים דיסק נתונים שני, אלא מחברים את דיסק הנתונים בהמשך המדריך הזה.

המסוף

  1. נכנסים לדף VM instances.

    לדף VM instances

  2. לוחצים על יצירה.

  3. בשדה שם, מקלידים sql-server-test.

  4. בשדה Region, בוחרים us-east1.

  5. בשדה Zone, בוחרים באפשרות us-east1-b.

  6. בקטע Machine configuration, משנים את Machine Type ל-n1-standard-2 (2 vCPU).

  7. לצד התמונה של דיסק הספר, לוחצים על שינוי.

  8. בחלונית Boot disk (דיסק אתחול), לוחצים על הכרטיסייה Public images (תמונות ציבוריות).

  9. ברשימה הנפתחת Operating System בוחרים באפשרות SQL Server on Windows Server.

  10. בתפריט הנפתח Version (גרסה), בוחרים באפשרות SQL Server 2022 Standard on Windows Server 2022 Datacenter (גרסת SQL Server 2022 Standard ב-Windows Server 2022 Datacenter).

  11. מוודאים שהערכים הבאים מוגדרים:

    • ההגדרה סוג דיסק אתחול מוגדרת ל-דיסק מתמיד סטנדרטי.
    • הערך של Size (GB) מוגדר ל-50.
  12. לוחצים על בחירה.

  13. בקטע Identity and API access (זהות וגישה ל-API), מגדירים את Access scopes (היקפי גישה) לערך Allow full access to all Cloud APIs (מתן גישה מלאה לכל ממשקי Cloud API).

  14. לוחצים על יצירה.

Cloud Shell

  1. פותחים את Cloud Shell.

    פתיחת Cloud Shell

  2. יוצרים את מכונת ה-SQL Server לבדיקה:

    gcloud compute instances create sql-server-test \
        --machine-type=n1-standard-2 \
        --scopes=cloud-platform \
        --image-family=sql-std-2022-win-2022 \
        --image-project=windows-sql-cloud \
        --boot-disk-size=50GB \
        --boot-disk-device-name=sql-server-test \
        --subnet=$SUBNET_NAME
    

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

התחברות למכונת ה-VM

  1. נכנסים לדף VM instances במסוף Cloud de Confiance .

    לדף VM instances

  2. ממתינים כ-5 דקות עד שמופע מכונת ה-VM יהיה מוכן.

    כדי לעקוב אחרי תהליך האתחול של המכונה הווירטואלית, אפשר לראות את הפלט של היציאה הטורית ב-Cloud Shell:

    gcloud compute instances tail-serial-port-output sql-server-prod
    

    כשמופיעה ההודעה הבאה, המשמעות היא שההפעלה הושלמה.

    Instance setup finished. sql-server-test is ready to use.
    

    מקישים על Control+C כדי להפסיק את המעקב אחרי היציאה הטורית.

  3. לוחצים על שם המכונה sql-server-test כדי להציג את הדף VM instance details (פרטי מכונה וירטואלית).

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

    בשלב הזה נוצרת סיסמה בשבילכם. רושמים את הסיסמה או מעתיקים אותה לקובץ זמני מאובטח.

  5. בקטע Compute Engine במסוף Cloud de Confiance , לוחצים על התפריט הנפתח RDP ובוחרים באפשרות Download the RDP file (הורדת קובץ ה-RDP) כדי להוריד את קובץ ה-RDP של המכונה.

    אפשר להשתמש בקובץ הזה כדי להתחבר למופע באמצעות לקוח RDP. מידע נוסף זמין במאמר בנושא לקוחות של Microsoft Remote Desktop.

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

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

  8. כשמופיעה בקשה לקבוע אם המחשב יהיה ניתן לגילוי, לוחצים על לא.

שיבוט מסד הנתונים באמצעות קובצי snapshot של דיסק ב-Compute Engine

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

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

בקטע הזה של המדריך תלמדו:

  • יוצרים קובץ snapshot של דיסק הנתונים של שרת הייצור.
  • יוצרים דיסק חדש מקובץ ה-snapshot.
  • מפעילים את הדיסק החדש בשרת הבדיקה.
  • מחברים את מסד הנתונים בדיסק ל-SQL Server במופע הבדיקה.

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

דיאגרמה שבה מוצגת ההגדרה של שיבוט מסד נתונים של SQL Server באמצעות תמונות מצב של דיסקים.

יצירת קובץ snapshot של הדיסק

המסוף

  1. נכנסים לדף VM instances במסוף Cloud de Confiance .

    לדף VM instances

  2. לוחצים על השם של המכונה sql-server-prod.

  3. בדף VM instance details (פרטי המכונה הווירטואלית), לוחצים על הדיסק sql-server-prod-data.

  4. לוחצים על יצירת תמונת מצב.

  5. נותנים לתמונת המצב את השם sql-server-prod-data-snapshot.

  6. בקטע מיקום, בוחרים באפשרות אזורי.

  7. מוודאים שהאזור מוגדר ל-us-east1 (כמו במקרים של מכונות וירטואליות).

  8. בוחרים באפשרות Enable VSS (הפעלת VSS).

    באפשרות הזו נעשה שימוש בVolume Shadow Copy Service ב-Microsoft Windows כדי ליצור תמונת מצב עקבית.

  9. לוחצים על יצירה.

    אחרי כמה דקות, התמונה תיווצר.

Cloud Shell

  1. פותחים את Cloud Shell.

    פתיחת Cloud Shell

  2. יוצרים snapshot של דיסק הנתונים באותו אזור שבו נמצא המופע של המכונה הווירטואלית:

    gcloud compute disks snapshot sql-server-prod-data \
         --snapshot-names=sql-server-prod-data-snapshot \
         --guest-flush \
         --zone="${ZONE}"
    

    האפשרות --guest-flush משתמשת ב-Volume Shadow Copy Service ב-Microsoft Windows כדי ליצור snapshot עקבי. אחרי כמה דקות, התמונה תיווצר.

צירוף תמונת המצב של הדיסק למכונת הבדיקה

צריך ליצור דיסק נתונים חדש מקובץ ה-snapshot שיצרתם ואז לצרף אותו למופע sql-server-test.

המסוף

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

  1. נכנסים לדף VM instances במסוף Cloud de Confiance .

    לדף VM instances

  2. לוחצים על שם המכונה sql-server-test.

  3. בדף פרטי מופע ה-VM, לוחצים על עריכה.

  4. לוחצים על הוספת דיסק חדש .

  5. נותנים לדיסק החדש את השם sql-server-test-data.

  6. בקטע Source Type, בוחרים באפשרות Snapshot.

  7. בוחרים את Source snapshot (קובץ ה-snapshot של המקור) עבור המכונה sql-server-prod-data-snapshot שיצרתם.

  8. מוודאים שהאפשרות Mode (מצב) מוגדרת ל-Read/Write (קריאה/כתיבה).

  9. לוחצים על סיום.

Cloud Shell

  1. פותחים את Cloud Shell.

    פתיחת Cloud Shell

  2. יוצרים דיסק אחסון מתמיד (persistent disk) חדש באמצעות קובץ ה-snapshot של דיסק הייצור:

    gcloud beta compute disks create sql-server-test-data \
         --size=100GB \
         --source-snapshot=sql-server-prod-data-snapshot \
         --zone="${ZONE}"
    
  3. מחברים את הדיסק החדש למכונת sql-server-test עם הרשאות קריאה וכתיבה:

    gcloud compute instances attach-disk sql-server-test \
        --disk=sql-server-test-data --mode=rw
    

צירוף של דיסק הנתונים החדש ב-Windows

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

  1. בחלון של לקוח RDP שמחובר למופע sql-server-test, לוחצים על הלחצן Start (התחלה) בשורת המשימות של Windows, מקלידים diskpart ואז לוחצים על diskpart כדי לפתוח את DiskPart.
  2. כשמופיעה בקשה לאפשר לאפליקציה לבצע שינויים, לוחצים על כן.
  3. מציגים רשימה של הדיסקים שמחוברים למופע:

    list disk
    

    הפלט שיתקבל:

    
    Disk ###  Status         Size     Free     Dyn  Gpt
    --------  -------------  -------  -------  ---  ---
    Disk 0    Online           50 GB      0 B
    Disk 1    Offline         100 GB      0 B       *
     

    דיסק הנתונים (Disk 1, ‏ 100GB) במצב אופליין.

  4. בוחרים את דיסק הנתונים:

    select disk 1
    
  5. מעבירים את הדיסק למצב אונליין:

    online disk
    
  6. מציגים את הכרכים הזמינים:

    list volume
    

    הפלט שיתקבל:

    Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
    ----------  ---  -----------  -----  ----------  -------  ---------  --------
    Volume 0     C                NTFS   Partition     49 GB  Healthy    Boot
    Volume 1                      FAT32  Partition    100 MB  Healthy    System
    Volume 2                      RAW    Partition     99 GB  Healthy
    

    נפח 2 (99GB) הוא נפח הנתונים שלכם. הוא מופיע כמוסתר ללא אות כונן שהוקצתה לו.

  7. בוחרים את עוצמת הקול:

    select volume 2
    
  8. מנקים את המאפיינים שהוגדרו כשיוצרים את אמצעי האחסון מהתמונה:

    attr volume clear readonly hidden nodefaultdriveletter shadowcopy
    

    הפקודה הזו מאפשרת להוסיף את עוצמת הקול.

  9. הרכבת אמצעי האחסון ככונן D:‎

    assign letter=d
    
  10. יוצאים מ-DiskPart:

    exit
    

איפוס הבעלות וההרשאות בקובץ

הסיבה לכך היא שיצרתם את דיסק הנתונים על ידי צילום תמונת מצב במופע sql-server-prod, ולכן מזהי המשתמשים של בעלות על קבצים והרשאות שונים מאלה שבמופע sql-server-test. צריך לשנות את הבעלות על הקבצים למשתמש במופע sql-server-test ולעדכן את ההרשאות כדי שהמשתמש המקומי והמשתמש ב-MSSQLSERVER יוכלו לקרוא את הקבצים.

  1. בחלון של לקוח RDP שמחובר למופע sql-server-test, לוחצים על הלחצן התחל בשורת המשימות של Windows ומקלידים cmd.
  2. פותחים את אפליקציית שורת הפקודה כאדמין.
  3. מגדירים את הבעלים של הקבצים בתיקייה sql-server-data כמשתמש השירות MSSQLSERVER:

    icacls d:\sql-server-data /setowner "nt service\mssqlserver" /t
    
  4. איפוס כל ההרשאות בכל הקבצים בתיקייה sql-server-data ברמה העליונה:

    icacls d:\sql-server-data /reset /t
    
  5. מעדכנים את הרשימות של בקרת הגישה (ACL) לתיקייה sql-server-data:

    icacls d:\sql-server-data /grant Administrators:(oi)(ci)f "nt service\mssqlserver":(oi)(ci)f "owner rights":(oi)(ci)f  %USERNAME%:(oi)(ci)f
    
  6. משביתים את ההורשה מהתיקייה הראשית של הכונן, כך שיוחלו רק ההרשאות הקודמות:

    icacls d:\sql-server-data /inheritancelevel:r
    
  7. יוצאים מאפליקציית שורת הפקודה:

    exit
    

עכשיו יש למכונה של שרת ה-SQL ולמשתמש המקומי במכונת sql-server-test גישה לקבצים של מסד הנתונים.

צירוף מסד הנתונים המשוכפל

עכשיו מצרפים את מסד הנתונים המשוכפל בכונן D ‏ (data) למכונה של שרת ה-SQL לבדיקה. אפשר לצרף את מסד הנתונים באופן אינטראקטיבי באמצעות האשפים של Microsoft SQL Server Management Studio, או ישירות על ידי הפעלת פקודת Transact-SQL.

אשף SSMS

  1. בסשן RDP שמחובר למופע sql-server-test, לוחצים על הכפתור Start בסרגל המשימות של Windows, מקלידים ssms ואז בוחרים באפשרות Microsoft SQL Server Management Studio (Run as Administrator).
  2. לוחצים על Connect (התחברות) כדי להתחבר למנוע מסד הנתונים sql-server-test באמצעות אימות Windows.
  3. ב-Object Explorer, לוחצים לחיצה ימנית על Databases ואז בוחרים באפשרות Attach.
  4. באשף Attach Databases (צירוף מסדי נתונים), לוחצים על Add (הוספה).
  5. עוברים לספרייה D:\sql-server-data\wideworldimporters, לוחצים על הקובץ WideWorldImporters.mdf ואז על OK (אישור).
  6. לוחצים על אישור כדי לצרף את מסד הנתונים.

    אחרי כמה רגעים, מסד הנתונים המשוכפל יצורף. אפשר ללחוץ על רענון ב-Object Explorer כדי לראות אם מסד הנתונים מופיע בעץ Databases.

‫Transact-SQL

  1. בסשן RDP שמחובר למופע sql-server-test, לוחצים על הכפתור Start בסרגל המשימות של Windows, מקלידים ssms ואז בוחרים באפשרות Microsoft SQL Server Management Studio (Run as Administrator).
  2. לוחצים על Connect (התחברות) כדי להתחבר למנוע מסד הנתונים sql-server-prod באמצעות אימות Windows.
  3. בוחרים באפשרות קובץ > חדש > שאילתה עם החיבור הנוכחי כדי לפתוח חלון שאילתה חדש.
  4. מצרפים את הנתונים ואת קובצי היומן בספרייה D:\sql-server-data\wideworldimporters:

    USE [master]
    GO
    
    CREATE DATABASE [WideWorldImporters] ON
    ( FILENAME = N'D:\sql-server-data\wideworldimporters\WideWorldImporters.mdf' ),
    ( FILENAME = N'D:\sql-server-data\wideworldimporters\WideWorldImporters.ldf' ),
    ( FILENAME = N'D:\sql-server-data\wideworldimporters\WideWorldImporters_UserData.ndf' )
     FOR ATTACH
    GO
    
  5. לוחצים לחיצה ימנית על קוד השאילתה ואז על Execute (הרצה).

    אחרי כמה רגעים, מסד הנתונים המשוכפל יצורף. אפשר ללחוץ על רענון ב-Object Explorer כדי לראות אם מסד הנתונים מופיע בעץ Databases. אחרי שמצרפים את מסד הנתונים, אפשר לסגור את חלון השאילתה בלי לשמור.

כדי לוודא שמסד הנתונים לדוגמה פועל, אפשר להריץ שאילתה.

  1. ב-SQL Server Management Studio, בוחרים באפשרות File (קובץ) > New (חדש) > Query with Current Connection (שאילתה עם חיבור נוכחי) כדי לפתוח חלון שאילתה חדש, ואז מעתיקים את הקוד הבא:

    SELECT top(100)
      i.InvoiceDate, i.InvoiceID, i.CustomerID, c.CustomerName,
      i.ConfirmedDeliveryTime, i.ConfirmedReceivedBy
    FROM
      WideWorldImporters.Sales.Invoices i
      JOIN WideWorldImporters.Sales.Customers c
      ON i.CustomerID=c.CustomerID
    WHERE i.ConfirmedDeliveryTime IS NOT NULL
    ORDER BY i.InvoiceDate desc;
    

    השאילתה הזו מאחזרת מידע סיכום מ-100 החשבוניות האחרונות שנמסרו.

  2. כדי להריץ את השאילתה, לוחצים לחיצה ימנית על חלון השאילתה ובוחרים באפשרות Execute (ביצוע).

    בחלונית תוצאות מוצג סיכום המידע.

    צילום מסך שבו מוצגת חלונית התוצאות של שאילתה במסד הנתונים לדוגמה.

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

מחיקת מסד הנתונים המשוכפל

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

אשף SSMS

  1. בסשן RDP שמחובר למופע sql-server-test, פותחים את Microsoft SQL Server Management Studio ומתחברים למנוע מסד הנתונים sql-server-test.
  2. ב-Object Explorer, מרחיבים את Databases, לוחצים לחיצה ימנית על מסד הנתונים WorldWideImporters ואז בוחרים באפשרות Delete.
  3. באשף Delete Object, מוודאים שתיבת הסימון Close existing connections מסומנת.
  4. לוחצים על OK.

‫Transact-SQL

  1. בסשן RDP שמחובר למופע sql-server-test, פותחים את Microsoft SQL Server Management Studio ומתחברים למנוע מסד הנתונים sql-server-test.
  2. כדי לסגור את כל החיבורים למסד הנתונים WideWorldImporters ולמחוק אותו, מעתיקים את הסקריפט הבא לחלון שאילתה חדש, לוחצים לחיצה ימנית על הקוד ואז לוחצים על Execute:

    USE [master]
    GO
    ALTER DATABASE [WideWorldImporters] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
    GO
    DROP DATABASE [WideWorldImporters]
    GO
    

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

שיבוט באמצעות גיבוי ושחזור

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

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

בקטע הזה של המדריך תלמדו:

  • יצירת קטגוריה של Cloud Storage.
  • מגבים את מסד הנתונים בשרת הייצור.
  • מעתיקים את קובץ הגיבוי משרת הייצור אל Cloud Storage.
  • מעתיקים את קובץ הגיבוי מ-Cloud Storage לשרת הבדיקה.
  • משחזרים את הגיבוי במכונת הבדיקה.

בתרשים הבא מוצג תהליך שיבוט של מסד נתונים באמצעות העברה של גיבוי דרך Cloud Storage.

תרשים שמציג את ההגדרה לשכפול מסד נתונים של SQL Server באמצעות Cloud Storage.

מכיוון שאפשר לתת למערכות מחוץ ל- Cloud de Confiance גישה ל-Cloud Storage, אפשר להשתמש בגישה הזו כדי לשכפל מסדי נתונים ממכונות חיצוניות של SQL Server.

יצירת קטגוריה של Cloud Storage

צריך ליצור קטגוריה של Cloud Storage שבה יישמרו קובצי הגיבוי בזמן ההעברה ממופע sql-server-prod למופע sql-server-test.

המסוף

  1. נכנסים לדף Browser של Cloud Storage במסוף Cloud de Confiance .

    כניסה לדף Cloud Storage Browser

  2. לוחצים על Create bucket.

  3. נותנים לקטגוריה את השם project-name-bucket.

    מחליפים את מה שכתוב בשדות הבאים:

    • project-name: מזהה הפרויקט ב- Cloud de Confiance.
  4. מרחיבים את האפשרות Choose a default storage class ובוחרים באפשרות Regional.

  5. בשדה Location, בוחרים באפשרות us-east1.

  6. לוחצים על יצירה.

Cloud Shell

  1. פותחים את Cloud Shell.

    פתיחת Cloud Shell

  2. יוצרים קטגוריה של Cloud Storage באותו אזור שבו נמצאים מופעי מכונות וירטואליות:

    gcloud storage buckets create "gs://$(gcloud config get-value project)-bucket" --location="${REGION}"
    

יצירת גיבוי מלא של מסד הנתונים לנקודת זמן מסוימת

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

אשף SSMS

  1. בסשן RDP שמחובר למופע sql-server-prod, פותחים את Microsoft SQL Server Management Studio ומתחברים למנוע מסד הנתונים sql-server-prod.
  2. ב-Object Explorer, מרחיבים את Databases, לוחצים לחיצה ימנית על מסד הנתונים WorldWideImporters ואז בוחרים באפשרות Tasks > Back Up.
  3. באשף Back Up Database (גיבוי מסד הנתונים), מוודאים שהערכים הבאים מוגדרים:
    • סוג הגיבוי מוגדר למלא.
    • האפשרות גיבוי להעתקה בלבד נבחרה.
    • האפשרות גיבוי ב- מוגדרת ל-דיסק.
  4. כדי להוסיף קובץ גיבוי, לוחצים על הוספה.
  5. בשדה יעד, מזינים D:\sql-server-data\WideWorldImporters-copy.bak.

    צילום מסך שבו מוצגת תיבת הדו-שיח 'גיבוי מסד הנתונים'.

  6. בוחרים בדף אפשרויות מדיה ואז באפשרות החלפת כל ערכות הגיבוי הקיימות.

  7. בוחרים בדף אפשרויות גיבוי, ואז משנים את האפשרות הגדרת דחיסה של הגיבוי לדחיסת הגיבוי.

  8. כדי ליצור את הגיבוי, לוחצים על אישור.

    יצירת הגיבוי נמשכת כמה דקות.

‫Transact-SQL

  1. בסשן RDP שמחובר למופע sql-server-prod, פותחים את Microsoft SQL Server Management Studio ומתחברים למנוע מסד הנתונים sql-server-prod.
  2. כדי לבצע גיבוי דחוס של WideWorldImportersמסד הנתונים לקובץ d:\sql-server-data\WideWorldImporters-copy.bak, מעתיקים את הסקריפט הבא לחלון שאילתה חדש, לוחצים לחיצה ימנית על הקוד ואז לוחצים על Execute (הפעלה).

    BACKUP DATABASE [WideWorldImporters]
       TO  DISK = N'd:\sql-server-data\WideWorldImporters-copy.bak'
       WITH  COPY_ONLY, NOFORMAT, INIT,
       NAME = N'WideWorldImporters-Full Database Backup',
       SKIP, NOREWIND, NOUNLOAD, COMPRESSION,  STATS = 10
    GO
    

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

העתקת קובץ הגיבוי ל-Cloud Storage

  1. בסשן RDP שמחובר למופע sql-server-prod, פותחים חלון של Windows PowerShell.
  2. מעתיקים את קובץ הגיבוי לקטגוריה של Cloud Storage שיצרתם קודם:

    gcloud storage cp d:\sql-server-data\WideWorldImporters-copy.bak "gs://$(gcloud config get-value project)-bucket/" --no-clobber
    
  3. יוצאים מ-PowerShell.

    exit
    

מעתיקים את קובץ הגיבוי מ-Cloud Storage אל sql-server-test

  1. בסשן RDP שמחובר למופע sql-server-test, פותחים חלון של Windows PowerShell.
  2. מעתיקים את קובץ הגיבוי לקטגוריה של Cloud Storage שיצרתם קודם:

    gcloud storage cp "gs://$(gcloud config get-value project)-bucket/WideWorldImporters-copy.bak" d:\sql-server-data\
    
  3. יוצאים מ-PowerShell.

    exit
    

עכשיו במופע הבדיקה יש גיבוי של מסד הנתונים שלכם, שכולל את כל הנתונים, בדיסק המקומי שלו.

שחזור הגיבוי

עכשיו אפשר לשחזר את הגיבוי של העותק המלא בכונן D ‏ (data) של מופע sql-server-test.

אשף SSMS

  1. בסשן RDP שמחובר למופע sql-server-test, פותחים את Microsoft SQL Server Management Studio ומתחברים למנוע מסד הנתונים sql-server-test.
  2. ב-Object Explorer, לוחצים לחיצה ימנית על Databases ואז בוחרים באפשרות Restore Database.
  3. בקטע מקור, בוחרים באפשרות מכשיר, ואז לוחצים על הלחצן [...] לצד שם המכשיר.
  4. בתיבת הדו-שיח בחירת מכשירי גיבוי, בוחרים באפשרות קובץ ברשימה גיבוי סוג המדיה ואז לוחצים על הוספה.
  5. בבורר הקבצים, עוברים אל D:\sql-server-data, לוחצים על הקובץ WideWorldImporters-copy.bak ואז על אישור.
  6. לוחצים על אישור כדי לסגור את תיבת הדו-שיח בחירת מכשירי גיבוי.

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

  7. בקטע בחירת דף, לוחצים על קבצים.

  8. בוחרים באפשרות העברת כל הקבצים לתיקייה.

  9. בשדות תיקיית קובץ הנתונים ותיקיית קובץ היומן, מזינים את הנתיב D:\sql-server-data\wideworldimporters.

    צילום מסך שבו מוצגת תיבת הדו-שיח 'שחזור מסד נתונים'.

  10. כדי להתחיל את פעולת השחזור, לוחצים על אישור.

    בסיום התהליך תופיע ההודעה Database 'WideWorldImporters' restored successfully.

‫Transact-SQL

  1. בסשן RDP שמחובר למופע sql-server-test, פותחים את Microsoft SQL Server Management Studio ומתחברים למנוע מסד הנתונים sql-server-test.
  2. בוחרים באפשרות קובץ > חדש > שאילתה עם החיבור הנוכחי כדי לפתוח חלון שאילתה חדש.
  3. מעתיקים את פקודת T-SQL הבאה כדי להתחיל שחזור מקובץ הגיבוי שהעתקתם מ-Cloud Storage, ושחזור מסד הנתונים וקובץ היומן אל הספרייה D:\sql-server-data\wideworldimporters:

    USE [master]
    GO
    
    RESTORE DATABASE [WideWorldImporters]
      FROM  DISK = N'D:\SQL-SERVER-DATA\WideWorldImporters-copy.bak'
      WITH  FILE = 1,
      MOVE N'WWI_Primary' TO
        N'D:\SQL-SERVER-DATA\WideWorldImporters\WideWorldImporters.mdf',
      MOVE N'WWI_UserData' TO
        N'D:\SQL-SERVER-DATA\WideWorldImporters\WideWorldImporters_UserData.ndf',
      MOVE N'WWI_Log' TO
        N'D:\SQL-SERVER-DATA\WideWorldImporters\WideWorldImporters.ldf',
      MOVE N'WWI_InMemory_Data_1' TO
        N'D:\SQL-SERVER-DATA\WideWorldImporters\WideWorldImporters_InMemory_Data_1',
      NOUNLOAD,
      STATS = 5
    GO
    
  4. לוחצים לחיצה ימנית על הקוד ואז על Execute (הרצה).

    אחרי כמה דקות, שחזור מסד הנתונים מסתיים. אפשר ללחוץ על Refresh (רענון) ב-Object Explorer כדי לראות אם מסד הנתונים מופיע בעץ Databases (מסדי נתונים). אחרי ששחזור מסד הנתונים מסתיים, אפשר לסגור את חלון השאילתה בלי לשמור.

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

  1. ב-Microsoft SQL Management Studio, בוחרים באפשרות File (קובץ) > New (חדש) > Query with Current Connection (שאילתה עם חיבור נוכחי) כדי לפתוח חלון שאילתה חדש, ואז מעתיקים את הקוד הבא:

    SELECT top(100)
      i.InvoiceDate, i.InvoiceID, i.CustomerID, c.CustomerName,
      i.ConfirmedDeliveryTime, i.ConfirmedReceivedBy
    FROM
      WideWorldImporters.Sales.Invoices i
      JOIN WideWorldImporters.Sales.Customers c
      ON i.CustomerID=c.CustomerID
    WHERE i.ConfirmedDeliveryTime IS NOT NULL
    ORDER BY i.InvoiceDate desc;
    

    השאילתה הזו מאחזרת מידע סיכום מ-100 החשבוניות האחרונות שנמסרו.

  2. לוחצים לחיצה ימנית על חלון השאילתה ואז על הפעלה.

    בחלונית תוצאות מוצג סיכום המידע.

    צילום מסך שבו מוצגת חלונית התוצאות של שאילתה במסד הנתונים לדוגמה.

שימוש ב-Cloud SQL כיעד לשכפול

אם מסד הנתונים של היעד מתארח ב-Cloud SQL ומסד הנתונים המקורי נמצא ב-Compute Engine, המנגנון הנתמך היחיד לשיבוט הוא גיבוי מסד הנתונים ב-Cloud Storage ושחזור מסד הנתונים ב-Cloud SQL.

במדריך הזה נשתמש שוב בגיבוי שיצרנו בחלק הקודם.

יצירת מכונות של Cloud SQL ל-SQL Server

  1. פותחים את Cloud Shell.

    פתיחת Cloud Shell

  2. יוצרים מכונה של Cloud SQL ל-SQL Server שפועלת באותה גרסת מסד נתונים כמו המכונה sql-server-prod:

    gcloud sql instances create sqlserver-cloudsql  \
      --database-version=SQLSERVER_2022_STANDARD \
      --cpu=2 \
      --memory=5GB \
      --root-password=sqlserver12@ \
      --region=${REGION}
    

    כך נוצרת מכונה עם משתמש root בשם sqlserver וסיסמה sqlserver12@.

עדכון הרשאות לאובייקט

צריך להגדיר את ההרשאות הנכונות גם בדלי Cloud Storage וגם באובייקט הגיבוי, כדי שחשבון השירות של Cloud SQL יוכל לקרוא אותם. ההרשאות האלה מוגדרות באופן אוטומטי כשמשתמשים במסוף Cloud de Confiance כדי לייבא את האובייקט, או שאפשר להגדיר אותן באמצעות פקודות gcloud.

  1. פותחים את Cloud Shell.

    פתיחת Cloud Shell

  2. מגדירים משתנה סביבה שמכיל את הכתובת של חשבון השירות של מופע Cloud SQL:

    CLOUDSQL_SA="$(gcloud sql instances describe sqlserver-cloudsql --format='get(serviceAccountEmailAddress)')"
    
  3. מוסיפים את חשבון השירות למדיניות IAM של הקטגוריה כקורא וככותב:

    gcloud storage buckets add-iam-policy-binding "gs://$(gcloud config get-value project)-bucket/" \
        --member=user:"${CLOUDSQL_SA}" --role=roles/storage.objectUser
    

ייבוא מסד הנתונים שיוצא

  1. פותחים את Cloud Shell.

    פתיחת Cloud Shell

  2. מייבאים את הקובץ שייצאתם למכונת Cloud SQL:

    gcloud sql import bak sqlserver-cloudsql \
        "gs://$(gcloud config get-value project)-bucket/WideWorldImporters-copy.bak" \
        --database WideWorldImporters
    

    כשתופיע בקשה, כותבים y.

  3. מתקינים את חבילת הכלים של SQL Server:

    sudo apt install -y mssql-tools
    

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

    משתמשים בכלים האלה כדי להתחבר ל-Cloud SQL מ-Cloud Shell, כדי להריץ שאילתות במכונה של Cloud SQL.

  4. מחברים את Cloud SQL Proxy למופע של SQL Server:

    CONNECTION_NAME=$(gcloud sql instances describe sqlserver-cloudsql --format='value(connectionName)')
    cloud_sql_proxy -instances=${CONNECTION_NAME}=tcp:1433 &
    
  5. כדי לוודא שהמסד הנתונים המשוכפל פועל, מריצים שאילתה:

    /opt/mssql-tools/bin/sqlcmd -U sqlserver -S 127.0.0.1 -Q \
      'SELECT top(100)
        i.InvoiceDate, i.InvoiceID, i.CustomerID, LEFT(c.CustomerName,20) CustomerName,
        i.ConfirmedDeliveryTime, LEFT(i.ConfirmedReceivedBy,20) ConfirmedReceivedBy
      FROM
        WideWorldImporters.Sales.Invoices i
        JOIN WideWorldImporters.Sales.Customers c
        ON i.CustomerID=c.CustomerID
      WHERE i.ConfirmedDeliveryTime IS NOT NULL
      ORDER BY i.InvoiceDate desc;'
    

    כשמופיעה בקשה, מזינים את הסיסמה של המשתמש sqlserver בשרת מסד הנתונים (sqlserver12@).sqlserver-cloudsql

    השאילתה הזו מאחזרת מידע סיכום מ-100 החשבוניות האחרונות שנמסרו.

    הפלט שיתקבל:

    InvoiceDate      InvoiceID   CustomerID  CustomerName         ConfirmedDeliveryTime                  ConfirmedReceivedBy
    ---------------- ----------- ----------- -------------------- -------------------------------------- --------------------
          2016-05-30       70349         581 Wingtip Toys (Munich            2016-05-31 07:05:00.0000000 Youssef Eriksson
          2016-05-30       70350         123 Tailspin Toys (Roe P            2016-05-31 07:10:00.0000000 Ella Zvirbule
          2016-05-30       70351         175 Tailspin Toys (San A            2016-05-31 07:15:00.0000000 Julio Correa
          2016-05-30       70352        1029 Veronika Necesana               2016-05-31 07:20:00.0000000 Veronika Necesana
          2016-05-30       70353        1014 Narendra Tickoo                 2016-05-31 07:25:00.0000000 Narendra Tickoo
          2016-05-30       70354         930 Shantanu Huq                    2016-05-31 07:30:00.0000000 Shantanu Huq
          2016-05-30       70355         963 Be Trang                        2016-05-31 07:35:00.0000000 Be Trang
          2016-05-30       70356         567 Wingtip Toys (Jerome            2016-05-31 07:40:00.0000000 Severins Polis
          2016-05-30       70357         510 Wingtip Toys (Grabil            2016-05-31 07:45:00.0000000 Manish Ghosh
    ...
    

הסרת המשאבים

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

  1. במסוף Cloud de Confiance , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

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