במדריך הזה מוצגות שתי דרכים לשכפול מסד נתונים של Microsoft SQL Server שפועל ב-Compute Engine. שיטה אחת משתמשת בתמונות מצב של Persistent Disk. בשיטה השנייה משתמשים בגיבוי ובשחזור מקוריים של SQL Server, ומעבירים את הגיבוי באמצעות Cloud Storage. Cloud Storage הוא שירות אחסון האובייקטים של Google Cloud. הוא מציע דרך פשוטה, מאובטחת, עמידה וזמינה מאוד לאחסון קבצים.
שיבוט הוא תהליך של העתקת מסד נתונים אונליין לשרת אחר. העותק הוא בלתי תלוי במסד הנתונים הקיים ונשמר כתמונת מצב בנקודת זמן מסוימת. אתם יכולים להשתמש במסד נתונים משוכפל למטרות שונות בלי להעמיס על שרת הייצור או לסכן את שלמות נתוני הייצור. חלק מהמטרות האלה כוללות:
- ביצוע שאילתות ניתוח
- בדיקות עומס או בדיקות שילוב של האפליקציות
- חילוץ נתונים לאכלוס מחסני נתונים
- הפעלת ניסויים על הנתונים
לכל אחת משיטות השכפול שמתוארות במדריך הזה יש יתרונות וחסרונות. השיטה האידיאלית תלויה במצב שלכם. בטבלה הבאה מפורטות כמה בעיות חשובות.
| בעיה | שיטה 1: תמונות מצב של דיסקים | שיטה 2: גיבוי ושחזור באמצעות Cloud Storage |
|---|---|---|
| שטח אחסון נוסף שנדרש במופעי SQL Server | לא נדרש מקום נוסף בדיסק | נדרש נפח אחסון נוסף כדי לאחסן את קובץ הגיבוי כשיוצרים ומבצעים שחזור |
| עומס נוסף על מכונות SQL Server של המקור במהלך שיבוט | אין עומס נוסף | עומס נוסף על המעבד ועל קלט/פלט כשיוצרים ומעלים קובצי גיבוי |
| משך השכפול | מהיר יחסית למסדי נתונים גדולים | יחסית איטי במסדי נתונים גדולים |
| אפשר לשכפל ממופעים של SQL Server חיצוניים ל-Google Cloud | לא | כן |
| מורכבות | רצף מורכב של פקודות לצירוף דיסקים משוכפלים | קבוצה פשוטה יחסית של פקודות לשיבוט |
| אפשר להשתמש במערכות גיבוי קיימות | כן, אם מערכת הגיבוי משתמשת בצילומי מצב של הדיסק Google Cloud | כן, אם מערכת הגיבוי כותבת קובצי גיבוי מקוריים של SQL Server ל-Cloud Storage |
| רמת הפירוט של השכפול | אפשר לשכפל רק דיסקים שלמים | אפשר לשכפל רק את מסד הנתונים שצוין |
| עקביות הנתונים | עקבי בנקודת הזמן של תמונת המצב | עקביים בזמן הגיבוי |
ההנחה במדריך הזה היא שאתם מכירים את Microsoft Windows, את ניהול המערכת, את PowerShell ואת ניהול Microsoft SQL Server באמצעות Microsoft SQL Server Management Studio.
מטרות
- איך מריצים מכונה של SQL Server ב- Google Cloud
- כאן מוסבר איך ליצור מסד נתונים לדוגמה בדיסק משני.
- איך משכפלים מסד נתונים של SQL Server באמצעות תמונות מצב של דיסקים ב-Compute Engine
- איך משכפלים מסד נתונים של SQL Server על ידי העברת גיבוי באמצעות Cloud Storage
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
- Compute Engine
- Cloud Storage
- Microsoft Windows and SQL server licenses
כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.
כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.
לפני שמתחילים
- נכנסים לחשבון 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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- מפעילים את Compute Engine API. מפעילים את ה-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שמייצג את שרת מסד הנתונים של הבדיקות. משכפלים את מסד הנתונים לשרת הזה.
התרשים הבא ממחיש את הארכיטקטורה הזו.
יצירת מכונת ה-VM לסביבת הייצור
כדי לדמות סביבת ייצור, מגדירים מכונה וירטואלית של Compute Engine שמריצה SQL Server ב-Windows Server.
המכונה הווירטואלית במדריך הזה משתמשת בשני דיסקים: דיסק בנפח 50 GB למערכת ההפעלה ולחשבונות המשתמשים, ודיסק בנפח 100 GB לאחסון מסד הנתונים.
ב-Compute Engine, שימוש בדיסקים נפרדים לא מניב שיפור בביצועים. ביצועי הדיסק נקבעים לפי קיבולת האחסון הכוללת של כל הדיסקים שמצורפים למופע, ולפי המספר הכולל של המעבדים הווירטואליים במופע של המכונה הווירטואלית. לכן, מסד הנתונים וקובץ היומן יכולים להיות באותו דיסק.
המסוף
נכנסים לדף VM instances במסוף Google Cloud .
לוחצים על יצירה.
בשדה שם, מקלידים
sql-server-prod.בשדה Region, בוחרים us-east1.
בשדה Zone, בוחרים באפשרות us-east1-b.
בקטע Machine configuration (הגדרת מכונה), משנים את Machine type (סוג מכונה) ל-n1-standard-2 (2 vCPU).
לצד התיאור של דיסק האתחול, לוחצים על שינוי.
בחלונית Boot disk (דיסק אתחול), לוחצים על הכרטיסייה Public images (תמונות ציבוריות).
ברשימה הנפתחת Operating System בוחרים באפשרות SQL Server on Windows Server.
בתפריט הנפתח Version (גרסה), בוחרים באפשרות SQL Server 2022 Standard on Windows Server 2022 Datacenter (גרסת SQL Server 2022 Standard ב-Windows Server 2022 Datacenter).
מוודאים שהערכים הבאים מוגדרים:
- ההגדרה סוג דיסק אתחול מוגדרת ל-דיסק מתמיד סטנדרטי.
- הערך של Size (GB) מוגדר ל-50.
לוחצים על בחירה.
בקטע Identity and API access (זהות וגישה ל-API), מגדירים את Access scopes (היקפי גישה) לערך Allow full access to all Cloud APIs (מתן גישה מלאה לכל ממשקי Cloud API).
מרחיבים את האפשרות Management, security, disks, networking, sole tenancy.
לוחצים על הכרטיסייה Disks (דיסקים).
לוחצים על הוספת דיסק חדש add.
בשדה שם, מקלידים
sql-server-prod-data.בשדה Size (GB) (גודל (GB)), מקלידים
100.לוחצים על סיום.
לוחצים על יצירה.
Cloud Shell
פותחים את Cloud Shell.
מאתחלים את המשתנים הבאים:
VPC_NAME=
VPC_NAMESUBNET_NAME=SUBNET_NAMEכאשר:
-
VPC_NAME: השם של ה-VPC -
SUBNET_NAME: השם של תת-הרשת
-
מגדירים את מזהה הפרויקט שמוגדר כברירת מחדל:
gcloud config set project
PROJECT_IDמחליפים את
PROJECT_IDבמזהה הפרויקט. Google Cloudהגדרת אזור ברירת המחדל:
gcloud config set compute/region
REGIONמחליפים את
REGIONבמזהה האזור שבו רוצים לבצע פריסה.הגדרת אזור ברירת המחדל:
gcloud config set compute/zone
ZONEמחליפים את
ZONEבמזהה של האזור שבו רוצים לבצע פריסה.יוצרים מכונת 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 של Google Cloud , יוצרת דיסק משני בנפח 100GB ומצרפת את הדיסק למכונה. אפשר להתעלם מהאזהרה לגבי ביצועי הדיסק כי לא צריך ביצועים גבוהים במדריך הזה.
התחברות למכונת ה-VM
נכנסים לדף VM instances במסוף Google Cloud .
ממתינים כ-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 כדי להפסיק את המעקב אחרי היציאה הטורית.
לוחצים על שם המכונה
sql-server-prodכדי לפתוח את הדף פרטים של מכונת VM.בקטע גישה מרחוק, לוחצים על הגדרת סיסמה ל-Windows ואז על הגדרה כדי ליצור את החשבון במחשב המרוחק.
בשלב הזה נוצרת סיסמה בשבילכם. רושמים את הסיסמה או מעתיקים אותה לקובץ זמני מאובטח.
בקטע Compute Engine במסוף Google Cloud , לוחצים על התפריט הנפתח RDP ובוחרים באפשרות Download the RDP file (הורדת קובץ ה-RDP) כדי להוריד את קובץ ה-RDP של המכונה.
אפשר להשתמש בקובץ הזה כדי להתחבר למופע באמצעות לקוח RDP. מידע נוסף זמין במאמר בנושא לקוחות של Microsoft Remote Desktop.
כשמופיעה בקשה, מזינים את הסיסמה שנוצרה ולוחצים על אישור.
כדי לאשר את אישור השרת ולהתחבר למופע Windows המרוחק, לוחצים על המשך.
כשמוצגת ההודעה ששואלת אם רוצים שהמחשב יהיה גלוי למחשבים ולמכשירים אחרים ברשת, לוחצים על לא.
הגדרת הדיסק הנוסף
הדיסק השני שמצורף למופע הייצור מיועד לאחסון מסד הנתונים של הייצור. הדיסק הזה ריק, ולכן צריך ליצור מחיצה, לפרמט אותו ולטעון אותו.
- בסשן RDP שמחובר למכונה
sql-server-prod, לוחצים על הלחצן התחלה בשורת המשימות של Windows, מקלידיםdiskpartואז לוחצים על diskpart כדי לפתוח את DiskPart. - כשמופיעה בקשה לאפשר לאפליקציה לבצע שינויים, לוחצים על כן.
כדי להציג רשימה של דיסקים שמצורפים למופע:
list diskהפלט שיתקבל:
Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- Disk 0 Online 50 GB 0 B Disk 1 Online 100 GB 100 GB
דיסק 1 (100GB) הוא דיסק הנתונים.
בוחרים את דיסק הנתונים:
select disk 1מאתחלים את הדיסק:
cleanיוצרים טבלת מחיצות GUID:
convert gptיוצרים את מחיצת הנתונים באמצעות כל הדיסק:
create partition primaryמציגים את הכרכים הזמינים:
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) הוא דיסק הנתונים.
בוחרים את עוצמת הקול:
select volume 2מעצבים את המחיצה באמצעות מערכת הקבצים NTFS ומקצים לה את התווית
data:format quick fs=ntfs label=dataטוענים את הדיסק ככונן D:
assign letter=dיוצאים מ-DiskPart:
exit
הורדת מסד הנתונים לדוגמה
כדי להגדיר את הסביבה לתרגול השכפול הזה, צריך לבצע את הפעולות הבאות:
- יוצרים מבנה ספריות בכונן D (
data) כדי לאחסן את מסד הנתונים. - מורידים את קובץ הגיבוי המלא של מסד הנתונים לדוגמה של SQL Server של Wide World Importers. מסד הנתונים הזה מדמה את מסד הנתונים של הייצור שרוצים לשכפל.
כדי ליצור את הספרייה ולהוריד את קובץ הגיבוי:
בסשן RDP, לוחצים על הכפתור Start בסרגל המשימות של Windows, מקלידים
PowerShellובוחרים באפליקציית Windows PowerShell.בשורת הפקודה של PowerShell, יוצרים מבנה ספריות לאחסון מסד הנתונים:
mkdir D:\sql-server-data\wideworldimportersהורדת קובץ הגיבוי לכונן 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
- בסשן RDP, לוחצים על הלחצן התחל בסרגל המשימות של Windows, מקלידים
ssmsובוחרים באפשרות Microsoft SQL Server Management Studio (הפעלה כמנהל). - אחרי שהאפליקציה מופעלת, לוחצים על Connect (התחברות) כדי להתחבר למנוע מסד הנתונים
sql-server-prodבאמצעות אימות Windows. - ב-Object Explorer, לוחצים לחיצה ימנית על Databases ואז בוחרים באפשרות Restore Database.
- בקטע מקור, בוחרים באפשרות מכשיר, ואז לוחצים על הלחצן [...] לצד שם המכשיר.
- בתיבת הדו-שיח בחירת מכשירי גיבוי, מוודאים שהאפשרות קובץ מסומנת בשדה סוג מדיה לגיבוי, ואז לוחצים על הוספה.
- בבורר הקבצים, עוברים אל
D:\sql-server-data, לוחצים על הקובץWideWorldImporters-Full.bakואז על אישור. לוחצים על אישור כדי לסגור את תיבת הדו-שיח בחירת מכשירי גיבוי.
תיבת הדו-שיח Restore Database מאוכלסת עכשיו בנתונים לגבי הגיבוי של מסד הנתונים Wide World Importers.
בקטע בחירת דף, לוחצים על קבצים.
מסמנים את התיבה העברת כל הקבצים לתיקייה.
בשדות תיקיית קובץ הנתונים ותיקיית קובץ היומן, מזינים
D:\sql-server-data\wideworldimporters.
לוחצים על אישור כדי להתחיל את פעולת השחזור.
אחרי כמה דקות תקבלו הודעה שמסד הנתונים שוחזר.
Transact-SQL
- בסשן RDP, לוחצים על הלחצן התחל בסרגל המשימות של Windows, מקלידים
ssmsובוחרים באפשרות Microsoft SQL Server Management Studio (הפעלה כמנהל). - אחרי שהאפליקציה מופעלת, לוחצים על Connect (התחברות) כדי להתחבר למנוע מסד הנתונים
sql-server-prodבאמצעות אימות Windows. - בוחרים באפשרות קובץ > חדש > שאילתה עם החיבור הנוכחי כדי לפתוח חלון חדש של שאילתה.
מתחילים שחזור מקובץ הגיבוי שהורדתם:
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.לוחצים לחיצה ימנית על קוד השאילתה ואז על Execute (הרצה).
צריך להמתין כמה דקות עד ששחזור מסד הנתונים יסתיים. אפשר ללחוץ על רענון refresh ב-Object Explorer כדי לראות אם מסד הנתונים מופיע בעץ Databases. אחרי ששחזור מסד הנתונים מסתיים, אפשר לסגור את חלון השאילתה בלי לשמור.
כדי לוודא שמסד הנתונים לדוגמה פועל, אפשר להריץ שאילתה.
ב-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 החשבוניות האחרונות שנמסרו.
לוחצים לחיצה ימנית על חלון השאילתה ואז על הפעלה.
בחלונית תוצאות מוצג סיכום המידע.

יצירת מופע של מכונה וירטואלית לבדיקה
בקטע הזה יוצרים מכונת SQL Server בשם sql-server-test כיעד למסד הנתונים המשוכפל. ההגדרה של המופע הזה זהה לזו של מופע הייצור. עם זאת, לא יוצרים דיסק נתונים שני, אלא מחברים את דיסק הנתונים בהמשך המדריך הזה.
המסוף
נכנסים לדף VM instances.
לוחצים על יצירה.
בשדה שם, מקלידים
sql-server-test.בשדה Region, בוחרים us-east1.
בשדה Zone, בוחרים באפשרות us-east1-b.
בקטע Machine configuration, משנים את Machine Type ל-n1-standard-2 (2 vCPU).
לצד התמונה של דיסק הספר, לוחצים על שינוי.
בחלונית Boot disk (דיסק אתחול), לוחצים על הכרטיסייה Public images (תמונות ציבוריות).
ברשימה הנפתחת Operating System בוחרים באפשרות SQL Server on Windows Server.
בתפריט הנפתח Version (גרסה), בוחרים באפשרות SQL Server 2022 Standard on Windows Server 2022 Datacenter (גרסת SQL Server 2022 Standard ב-Windows Server 2022 Datacenter).
מוודאים שהערכים הבאים מוגדרים:
- ההגדרה סוג דיסק אתחול מוגדרת ל-דיסק מתמיד סטנדרטי.
- הערך של Size (GB) מוגדר ל-50.
לוחצים על בחירה.
בקטע Identity and API access (זהות וגישה ל-API), מגדירים את Access scopes (היקפי גישה) לערך Allow full access to all Cloud APIs (מתן גישה מלאה לכל ממשקי Cloud API).
לוחצים על יצירה.
Cloud Shell
פותחים את Cloud Shell.
יוצרים את מכונת ה-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
נכנסים לדף VM instances במסוף Google Cloud .
ממתינים כ-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 כדי להפסיק את המעקב אחרי היציאה הטורית.
לוחצים על שם המכונה
sql-server-testכדי להציג את הדף VM instance details (פרטי מכונה וירטואלית).בקטע גישה מרחוק, לוחצים על הגדרת סיסמה ל-Windows ואז על הגדרה כדי ליצור את החשבון במחשב המרוחק.
בשלב הזה נוצרת סיסמה בשבילכם. רושמים את הסיסמה או מעתיקים אותה לקובץ זמני מאובטח.
בקטע Compute Engine במסוף Google Cloud , לוחצים על התפריט הנפתח RDP ובוחרים באפשרות Download the RDP file (הורדת קובץ ה-RDP) כדי להוריד את קובץ ה-RDP של המכונה.
אפשר להשתמש בקובץ הזה כדי להתחבר למופע באמצעות לקוח RDP. מידע נוסף זמין במאמר בנושא לקוחות של Microsoft Remote Desktop.
כשמופיעה בקשה, מזינים את הסיסמה שנוצרה ולוחצים על אישור.
כדי לאשר את אישור השרת ולהתחבר למופע Windows המרוחק, לוחצים על המשך.
כשמופיעה בקשה לקבוע אם המחשב יהיה ניתן לגילוי, לוחצים על לא.
שיבוט מסד הנתונים באמצעות קובצי snapshot של דיסק ב-Compute Engine
אחת הדרכים לשכפל מסד נתונים של SQL Server שפועל ב-Compute Engine היא לאחסן את מסד הנתונים בדיסק נפרד של נתונים ולהשתמש בתמונות מצב של דיסק מתמשך כדי ליצור שיבוט של הדיסק הזה.
תמונות מצב של Persistent Disk מאפשרות לכם לקבל עותק של הנתונים בדיסק בנקודת זמן מסוימת. תזמון של תמונות מצב של הדיסק הוא דרך אחת לגבות את הנתונים באופן אוטומטי.
בקטע הזה של המדריך תלמדו:
- יוצרים קובץ snapshot של דיסק הנתונים של שרת הייצור.
- יוצרים דיסק חדש מקובץ ה-snapshot.
- מפעילים את הדיסק החדש בשרת הבדיקה.
- מחברים את מסד הנתונים בדיסק ל-SQL Server במופע הבדיקה.
בתרשים הבא מוצג תהליך השכפול של מסד נתונים באמצעות תמונות מצב של דיסקים.
יצירת קובץ snapshot של הדיסק
המסוף
נכנסים לדף VM instances במסוף Google Cloud .
לוחצים על השם של המכונה
sql-server-prod.בדף VM instance details (פרטי המכונה הווירטואלית), לוחצים על הדיסק
sql-server-prod-data.לוחצים על יצירת תמונת מצב.
נותנים לתמונת המצב את השם
sql-server-prod-data-snapshot.בקטע מיקום, בוחרים באפשרות אזורי.
מוודאים שהאזור מוגדר ל-
us-east1(כמו במקרים של מכונות וירטואליות).בוחרים באפשרות Enable VSS (הפעלת VSS).
באפשרות הזו נעשה שימוש בVolume Shadow Copy Service ב-Microsoft Windows כדי ליצור תמונת מצב עקבית.
לוחצים על יצירה.
אחרי כמה דקות, התמונה תיווצר.
Cloud Shell
פותחים את Cloud Shell.
יוצרים 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 של דיסק הייצור בשביל התוכן שלו, ואז מצרפים את הדיסק למופע הבדיקה.
נכנסים לדף VM instances במסוף Google Cloud .
לוחצים על שם המכונה
sql-server-test.בדף פרטי מופע ה-VM, לוחצים על עריכה.
לוחצים על הוספת דיסק חדש add.
נותנים לדיסק החדש את השם
sql-server-test-data.בקטע Source Type, בוחרים באפשרות Snapshot.
בוחרים את Source snapshot (קובץ ה-snapshot של המקור) עבור המכונה
sql-server-prod-data-snapshotשיצרתם.מוודאים שהאפשרות Mode (מצב) מוגדרת ל-Read/Write (קריאה/כתיבה).
לוחצים על סיום.
Cloud Shell
פותחים את Cloud Shell.
יוצרים דיסק אחסון מתמיד (persistent disk) חדש באמצעות קובץ ה-snapshot של דיסק הייצור:
gcloud beta compute disks create sql-server-test-data \ --size=100GB \ --source-snapshot=sql-server-prod-data-snapshot \ --zone="${ZONE}"מחברים את הדיסק החדש למכונת
sql-server-testעם הרשאות קריאה וכתיבה:gcloud compute instances attach-disk sql-server-test \ --disk=sql-server-test-data --mode=rw
צירוף של דיסק הנתונים החדש ב-Windows
הדיסק שיצרתם מצורף למופע של מכונת ה-VM אבל הוא במצב אופליין, והנפח מוגדר לקריאה בלבד. כדי להגדיר את אמצעי האחסון כקריאה-כתיבה וכניתן להרכבה, מבצעים את השלבים הבאים:
- בחלון של לקוח RDP שמחובר למופע
sql-server-test, לוחצים על הלחצן Start (התחלה) בשורת המשימות של Windows, מקלידיםdiskpartואז לוחצים על diskpart כדי לפתוח את DiskPart. - כשמופיעה בקשה לאפשר לאפליקציה לבצע שינויים, לוחצים על כן.
מציגים רשימה של הדיסקים שמחוברים למופע:
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) במצב אופליין.
בוחרים את דיסק הנתונים:
select disk 1מעבירים את הדיסק למצב אונליין:
online diskמציגים את הכרכים הזמינים:
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) הוא נפח הנתונים שלכם. הוא מופיע כמוסתר ללא אות כונן שהוקצתה לו.
בוחרים את עוצמת הקול:
select volume 2מנקים את המאפיינים שהוגדרו כשיוצרים את אמצעי האחסון מהתמונה:
attr volume clear readonly hidden nodefaultdriveletter shadowcopyהפקודה הזו מאפשרת להוסיף את עוצמת הקול.
הרכבת אמצעי האחסון ככונן D:
assign letter=dיוצאים מ-DiskPart:
exit
איפוס הבעלות וההרשאות בקובץ
הסיבה לכך היא שיצרתם את דיסק הנתונים על ידי צילום תמונת מצב במופע sql-server-prod, ולכן מזהי המשתמשים של בעלות על קבצים והרשאות שונים מאלה שבמופע sql-server-test. צריך לשנות את הבעלות על הקבצים למשתמש במופע sql-server-test ולעדכן את ההרשאות כדי שהמשתמש המקומי והמשתמש ב-MSSQLSERVER יוכלו לקרוא את הקבצים.
- בחלון של לקוח RDP שמחובר למופע
sql-server-test, לוחצים על הלחצן התחל בשורת המשימות של Windows ומקלידיםcmd. - פותחים את אפליקציית שורת הפקודה כאדמין.
מגדירים את הבעלים של הקבצים בתיקייה
sql-server-dataכמשתמש השירותMSSQLSERVER:icacls d:\sql-server-data /setowner "nt service\mssqlserver" /tאיפוס כל ההרשאות בכל הקבצים בתיקייה
sql-server-dataברמה העליונה:icacls d:\sql-server-data /reset /tמעדכנים את הרשימות של בקרת הגישה (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משביתים את ההורשה מהתיקייה הראשית של הכונן, כך שיוחלו רק ההרשאות הקודמות:
icacls d:\sql-server-data /inheritancelevel:rיוצאים מאפליקציית שורת הפקודה:
exit
עכשיו יש למכונה של שרת ה-SQL ולמשתמש המקומי במכונת sql-server-test גישה לקבצים של מסד הנתונים.
צירוף מסד הנתונים המשוכפל
עכשיו מצרפים את מסד הנתונים המשוכפל בכונן D (data) למכונה של שרת ה-SQL לבדיקה. אפשר לצרף את מסד הנתונים באופן אינטראקטיבי באמצעות האשפים של Microsoft SQL Server Management Studio, או ישירות על ידי הפעלת פקודת Transact-SQL.
אשף SSMS
- בסשן RDP שמחובר למופע
sql-server-test, לוחצים על הכפתור Start בסרגל המשימות של Windows, מקלידיםssmsואז בוחרים באפשרות Microsoft SQL Server Management Studio (Run as Administrator). - לוחצים על Connect (התחברות) כדי להתחבר למנוע מסד הנתונים
sql-server-testבאמצעות אימות Windows. - ב-Object Explorer, לוחצים לחיצה ימנית על Databases ואז בוחרים באפשרות Attach.
- באשף Attach Databases (צירוף מסדי נתונים), לוחצים על Add (הוספה).
- עוברים לספרייה
D:\sql-server-data\wideworldimporters, לוחצים על הקובץWideWorldImporters.mdfואז על OK (אישור). לוחצים על אישור כדי לצרף את מסד הנתונים.
אחרי כמה רגעים, מסד הנתונים המשוכפל יצורף. אפשר ללחוץ על רענון refresh ב-Object Explorer כדי לראות אם מסד הנתונים מופיע בעץ Databases.
Transact-SQL
- בסשן RDP שמחובר למופע
sql-server-test, לוחצים על הכפתור Start בסרגל המשימות של Windows, מקלידיםssmsואז בוחרים באפשרות Microsoft SQL Server Management Studio (Run as Administrator). - לוחצים על Connect (התחברות) כדי להתחבר למנוע מסד הנתונים
sql-server-prodבאמצעות אימות Windows. - בוחרים באפשרות קובץ > חדש > שאילתה עם החיבור הנוכחי כדי לפתוח חלון שאילתה חדש.
מצרפים את הנתונים ואת קובצי היומן בספרייה
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לוחצים לחיצה ימנית על קוד השאילתה ואז על Execute (הרצה).
אחרי כמה רגעים, מסד הנתונים המשוכפל יצורף. אפשר ללחוץ על רענון refresh ב-Object Explorer כדי לראות אם מסד הנתונים מופיע בעץ Databases. אחרי שמצרפים את מסד הנתונים, אפשר לסגור את חלון השאילתה בלי לשמור.
כדי לוודא שמסד הנתונים לדוגמה פועל, אפשר להריץ שאילתה.
ב-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 החשבוניות האחרונות שנמסרו.
כדי להריץ את השאילתה, לוחצים לחיצה ימנית על חלון השאילתה ובוחרים באפשרות Execute (ביצוע).
בחלונית תוצאות מוצג סיכום המידע.

אחרי שראיתם איך לשכפל מסד נתונים באמצעות תמונות מצב של דיסקים לאחסון מתמיד, אולי תרצו לנסות לשכפל מסד נתונים באמצעות גיבוי ושחזור. כדי להשלים את המדריך לגישה השנייה הזו, צריך למחוק את מסד הנתונים ששיבטתם ממופע sql-server-test.
מחיקת מסד הנתונים המשוכפל
כדי למחוק את מסד הנתונים המשוכפל שיצרתם באמצעות תמונות מצב של הדיסק, מבצעים את השלבים הבאים.
אשף SSMS
- בסשן RDP שמחובר למופע
sql-server-test, פותחים את Microsoft SQL Server Management Studio ומתחברים למנוע מסד הנתוניםsql-server-test. - ב-Object Explorer, מרחיבים את Databases, לוחצים לחיצה ימנית על מסד הנתונים
WorldWideImportersואז בוחרים באפשרות Delete. - באשף Delete Object, מוודאים שתיבת הסימון Close existing connections מסומנת.
- לוחצים על OK.
Transact-SQL
- בסשן RDP שמחובר למופע
sql-server-test, פותחים את Microsoft SQL Server Management Studio ומתחברים למנוע מסד הנתוניםsql-server-test. כדי לסגור את כל החיבורים למסד הנתונים
WideWorldImportersולמחוק אותו, מעתיקים את הסקריפט הבא לחלון שאילתה חדש, לוחצים לחיצה ימנית על הקוד ואז לוחצים על Execute:USE [master] GO ALTER DATABASE [WideWorldImporters] SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO DROP DATABASE [WideWorldImporters] GOאחרי מחיקת מסד הנתונים, אפשר לסגור את חלון השאילתה בלי לשמור. כדי לוודא שהמסד נתונים נמחק, אפשר ללחוץ על רענון refresh ב-Object Explorer.
שיבוט באמצעות גיבוי ושחזור
שיטה נוספת לשכפול מסד נתונים של SQL Server שפועל ב-Compute Engine היא שימוש בגיבוי ובשחזור מקוריים של SQL Server. בגישה הזו, אתם מעבירים את הגיבוי באמצעות Cloud Storage.
בקטע הזה של המדריך נעשה שימוש במשאבים שיצרתם בקטע שיבוט מסד הנתונים באמצעות קובצי snapshot של דיסקים ב-Compute Engine במדריך הזה. אם לא השלמתם את החלק הזה, אתם צריכים לעשות זאת לפני שתמשיכו.
בקטע הזה של המדריך תלמדו:
- יצירת קטגוריה של Cloud Storage.
- מגבים את מסד הנתונים בשרת הייצור.
- מעתיקים את קובץ הגיבוי משרת הייצור אל Cloud Storage.
- מעתיקים את קובץ הגיבוי מ-Cloud Storage לשרת הבדיקה.
- משחזרים את הגיבוי במכונת הבדיקה.
בתרשים הבא מוצג תהליך שיבוט של מסד נתונים באמצעות העברה של גיבוי דרך Cloud Storage.
מכיוון שאפשר לתת למערכות מחוץ ל- Google Cloud גישה ל-Cloud Storage, אפשר להשתמש בגישה הזו כדי לשכפל מסדי נתונים ממכונות חיצוניות של SQL Server.
יצירת קטגוריה של Cloud Storage
צריך ליצור קטגוריה של Cloud Storage שבה יישמרו קובצי הגיבוי בזמן ההעברה ממופע sql-server-prod למופע sql-server-test.
המסוף
נכנסים לדף Browser של Cloud Storage במסוף Google Cloud .
לוחצים על Create bucket.
נותנים לקטגוריה את השם
project-name-bucket.מחליפים את מה שכתוב בשדות הבאים:
-
project-name: מזהה הפרויקט ב- Google Cloud.
-
מרחיבים את האפשרות Choose a default storage class ובוחרים באפשרות Regional.
בשדה Location, בוחרים באפשרות us-east1.
לוחצים על יצירה.
Cloud Shell
פותחים את Cloud Shell.
יוצרים קטגוריה של Cloud Storage באותו אזור שבו נמצאים מופעי מכונות וירטואליות:
gcloud storage buckets create "gs://$(gcloud config get-value project)-bucket" --location="${REGION}"
יצירת גיבוי מלא של מסד הנתונים לנקודת זמן מסוימת
יכול להיות שאתם כבר מבצעים גיבויים בסביבת הייצור. אפשר להשתמש בגיבויים האלה כבסיס לשכפול של מסד הנתונים. במדריך הזה יוצרים גיבוי של עותק בלבד, כדי שהוא לא ישפיע על לוחות זמנים קיימים של גיבויים מלאים או מצטברים.
אשף SSMS
- בסשן RDP שמחובר למופע
sql-server-prod, פותחים את Microsoft SQL Server Management Studio ומתחברים למנוע מסד הנתוניםsql-server-prod. - ב-Object Explorer, מרחיבים את Databases, לוחצים לחיצה ימנית על מסד הנתונים
WorldWideImportersואז בוחרים באפשרות Tasks > Back Up. - באשף Back Up Database (גיבוי מסד הנתונים), מוודאים שהערכים הבאים מוגדרים:
- סוג הגיבוי מוגדר למלא.
- האפשרות גיבוי להעתקה בלבד נבחרה.
- האפשרות גיבוי ב- מוגדרת ל-דיסק.
- כדי להוסיף קובץ גיבוי, לוחצים על הוספה.
בשדה יעד, מזינים
D:\sql-server-data\WideWorldImporters-copy.bak.
בוחרים בדף אפשרויות מדיה ואז באפשרות החלפת כל ערכות הגיבוי הקיימות.
בוחרים בדף אפשרויות גיבוי, ואז משנים את האפשרות הגדרת דחיסה של הגיבוי לדחיסת הגיבוי.
כדי ליצור את הגיבוי, לוחצים על אישור.
יצירת הגיבוי נמשכת כמה דקות.
Transact-SQL
- בסשן RDP שמחובר למופע
sql-server-prod, פותחים את Microsoft SQL Server Management Studio ומתחברים למנוע מסד הנתוניםsql-server-prod. כדי לבצע גיבוי דחוס של
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
- בסשן RDP שמחובר למופע
sql-server-prod, פותחים חלון של Windows PowerShell. מעתיקים את קובץ הגיבוי לקטגוריה של Cloud Storage שיצרתם קודם:
gcloud storage cp d:\sql-server-data\WideWorldImporters-copy.bak "gs://$(gcloud config get-value project)-bucket/" --no-clobberיוצאים מ-PowerShell.
exit
מעתיקים את קובץ הגיבוי מ-Cloud Storage אל sql-server-test
- בסשן RDP שמחובר למופע
sql-server-test, פותחים חלון של Windows PowerShell. מעתיקים את קובץ הגיבוי לקטגוריה של Cloud Storage שיצרתם קודם:
gcloud storage cp "gs://$(gcloud config get-value project)-bucket/WideWorldImporters-copy.bak" d:\sql-server-data\יוצאים מ-PowerShell.
exit
עכשיו במופע הבדיקה יש גיבוי של מסד הנתונים שלכם, שכולל את כל הנתונים, בדיסק המקומי שלו.
שחזור הגיבוי
עכשיו אפשר לשחזר את הגיבוי של העותק המלא בכונן D (data) של מופע sql-server-test.
אשף SSMS
- בסשן RDP שמחובר למופע
sql-server-test, פותחים את Microsoft SQL Server Management Studio ומתחברים למנוע מסד הנתוניםsql-server-test. - ב-Object Explorer, לוחצים לחיצה ימנית על Databases ואז בוחרים באפשרות Restore Database.
- בקטע מקור, בוחרים באפשרות מכשיר, ואז לוחצים על הלחצן [...] לצד שם המכשיר.
- בתיבת הדו-שיח בחירת מכשירי גיבוי, בוחרים באפשרות קובץ ברשימה גיבוי סוג המדיה ואז לוחצים על הוספה.
- בבורר הקבצים, עוברים אל
D:\sql-server-data, לוחצים על הקובץWideWorldImporters-copy.bakואז על אישור. לוחצים על אישור כדי לסגור את תיבת הדו-שיח בחירת מכשירי גיבוי.
תיבת הדו-שיח שחזור מסד נתונים מאוכלסת עכשיו בנתונים על גיבוי מסד הנתונים
WideWorldImporters.בקטע בחירת דף, לוחצים על קבצים.
בוחרים באפשרות העברת כל הקבצים לתיקייה.
בשדות תיקיית קובץ הנתונים ותיקיית קובץ היומן, מזינים את הנתיב
D:\sql-server-data\wideworldimporters.
כדי להתחיל את פעולת השחזור, לוחצים על אישור.
בסיום התהליך תופיע ההודעה
Database 'WideWorldImporters' restored successfully.
Transact-SQL
- בסשן RDP שמחובר למופע
sql-server-test, פותחים את Microsoft SQL Server Management Studio ומתחברים למנוע מסד הנתוניםsql-server-test. - בוחרים באפשרות קובץ > חדש > שאילתה עם החיבור הנוכחי כדי לפתוח חלון שאילתה חדש.
מעתיקים את פקודת 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לוחצים לחיצה ימנית על הקוד ואז על Execute (הרצה).
אחרי כמה דקות, שחזור מסד הנתונים מסתיים. אפשר ללחוץ על Refresh (רענון) refresh ב-Object Explorer כדי לראות אם מסד הנתונים מופיע בעץ Databases (מסדי נתונים). אחרי ששחזור מסד הנתונים מסתיים, אפשר לסגור את חלון השאילתה בלי לשמור.
כדי להוכיח שמסד הנתונים פועל, אפשר להריץ שאילתה.
ב-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 החשבוניות האחרונות שנמסרו.
לוחצים לחיצה ימנית על חלון השאילתה ואז על הפעלה.
בחלונית תוצאות מוצג סיכום המידע.

שימוש ב-Cloud SQL כיעד לשכפול
אם מסד הנתונים של היעד מתארח ב-Cloud SQL ומסד הנתונים המקורי נמצא ב-Compute Engine, המנגנון הנתמך היחיד לשיבוט הוא גיבוי מסד הנתונים ב-Cloud Storage ושחזור מסד הנתונים ב-Cloud SQL.
במדריך הזה נשתמש שוב בגיבוי שיצרנו בחלק הקודם.
יצירת מכונות של Cloud SQL ל-SQL Server
פותחים את Cloud Shell.
יוצרים מכונה של 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 יוכל לקרוא אותם.
ההרשאות האלה מוגדרות באופן אוטומטי כשמשתמשים במסוף Google Cloud כדי לייבא את האובייקט, או שאפשר להגדיר אותן באמצעות פקודות gcloud.
פותחים את Cloud Shell.
מגדירים משתנה סביבה שמכיל את הכתובת של חשבון השירות של מופע Cloud SQL:
CLOUDSQL_SA="$(gcloud sql instances describe sqlserver-cloudsql --format='get(serviceAccountEmailAddress)')"מוסיפים את חשבון השירות למדיניות IAM של הקטגוריה כקורא וככותב:
gcloud storage buckets add-iam-policy-binding "gs://$(gcloud config get-value project)-bucket/" \ --member=user:"${CLOUDSQL_SA}" --role=roles/storage.objectUser
ייבוא מסד הנתונים שיוצא
פותחים את Cloud Shell.
מייבאים את הקובץ שייצאתם למכונת Cloud SQL:
gcloud sql import bak sqlserver-cloudsql \ "gs://$(gcloud config get-value project)-bucket/WideWorldImporters-copy.bak" \ --database WideWorldImportersכשתופיע בקשה, כותבים
y.מתקינים את חבילת הכלים של SQL Server:
sudo apt install -y mssql-toolsאם אתם מסכימים לתנאי הרישיון, כותבים
yesכשמופיעה בקשה.משתמשים בכלים האלה כדי להתחבר ל-Cloud SQL מ-Cloud Shell, כדי להריץ שאילתות במכונה של Cloud SQL.
מחברים את Cloud SQL Proxy למופע של SQL Server:
CONNECTION_NAME=$(gcloud sql instances describe sqlserver-cloudsql --format='value(connectionName)') cloud_sql_proxy -instances=${CONNECTION_NAME}=tcp:1433 &כדי לוודא שהמסד הנתונים המשוכפל פועל, מריצים שאילתה:
/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 ...
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud על המשאבים שבהם השתמשתם במדריך הזה, אתם יכולים למחוק את Google Cloud הפרויקט שיצרתם לצורך המדריך.
- במסוף Google Cloud , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
המאמרים הבאים
- שיטות מומלצות להרצת מופעים של SQL Server ב-Compute Engine
- כדאי להעמיק את הקריאה ולהכיר דוגמאות לארכיטקטורות, תרשימים ושיטות מומלצות בנושאי Google Cloud. כל אלה זמינים במרכז הארכיטקטורה של Cloud.