במדריך הזה מפורטות הגישות השונות שבהן אפשר להשתמש כדי להעביר מסד נתונים של Microsoft SQL Server ב-Amazon Elastic Compute Cloud (AWS EC2) אל Compute Engine.
בדף הזה נסביר על הגישות הבאות:
- העברה באמצעות גיבוי ושחזור מלאים
- העברה באמצעות קובץ BACPAC
- העברה באמצעות קבוצות זמינות Always-on
- מעבר באמצעות קבוצות זמינות מבוזרות
לכל שיטת העברה יש יתרונות וחסרונות שונים. האסטרטגיה המתאימה ביותר להעברה תלויה בנסיבות ובסדרי העדיפויות הספציפיים שלכם. מומלץ לבחור שיטת העברה שהכי מתאימה לכם על סמך השיקולים הבאים:
זמינות: כדאי לבדוק אם כל הגרסאות והרישיונות של מסד הנתונים של SQL Server תומכים בגישת ההעברה.
גודל מסד הנתונים: גודל מסד הנתונים יכול להשפיע באופן משמעותי על אפשרויות ההעברה האפשריות, כי יכול להיות שבמסדי נתונים גדולים יידרשו אסטרטגיות שונות מאלה שנדרשות במסדי נתונים קטנים. כשבוחרים גישה להעברה, חשוב לקחת בחשבון את משך העברת הנתונים, את זמן ההשבתה הפוטנציאלי ואת דרישות המשאבים.
טולרנטיות להשבתה: רמת ההשבתה המקובלת במהלך המעבר היא גורם מכריע. חלק מהשיטות מאפשרות השבתה מינימלית או כמעט אפס השבתה, בעוד ששיטות אחרות דורשות השבתה ממושכת יותר. כדאי לבחור בגישת העברה שבה זמן ההשבתה מקובל עליכם.
מורכבות: המורכבות של סכימת מסד הנתונים, התלות באפליקציה והסביבה הכוללת יכולות להשפיע על גישת ההעברה. מוודאים ששיטת המיגרציה שבחרתם תומכת במיגרציה של אובייקטים שאינם מסד נתונים, כמו משימות של סוכן SQL, שרתים מקושרים, הרשאות ואובייקטים של משתמשים.
עלות: גם ההיבט הפיננסי של המיגרציה יכול להיות שיקול. שיטות העברה שונות מגיעות עם עלויות שונות שקשורות להעברת נתונים, למשאבי מחשוב ולשירותים אחרים. כדאי לבחור את שיטת ההעברה שהכי מתאימה לכם.
אבטחת נתונים ותאימות: מוודאים ששיטת ההעברה שנבחרה עומדת בדרישות שלכם בנוגע לאבטחת נתונים ותאימות. כדאי לשקול הצפנה של הנתונים, אמצעי בקרה לגישה ודרישות ספציפיות לתעשייה שחלות על הנתונים.
מטרות
במדריך הזה מוסבר איך לבצע את הפעולות הבאות כדי להעביר את מסד הנתונים של SQL Server מ-AWS EC2 ל-Compute Engine:
- פריסת מכונה של SQL Server ב-Compute Engine
- העברה באמצעות גיבוי ושחזור מלאים
- העברה באמצעות קובץ BACPAC
- מיגרציה באמצעות קבוצות זמינות שתמיד פועלות
- מעבר באמצעות קבוצות זמינות מבוזרות
עלויות
במדריך הזה נעשה שימוש ברכיבים של Google Cloud, והשימוש בהם כרוך בתשלום, כולל:
אפשר להשתמש במחשבון התמחור כדי ליצור הערכת עלויות בהתאם לשימוש החזוי.
לפני שמתחילים
לפני שמתחילים, צריך לבצע את המשימות הבאות:
-
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, activate Cloud Shell.
הכנת הפרויקט והרשת
כדי להכין את הפרויקט ואת הענן הווירטואלי הפרטי (VPC) לפריסה של SQL Server לצורך מיגרציה, צריך לבצע את הפעולות הבאות: Google Cloud
במסוף Google Cloud , לוחצים על Activate Cloud Shell
כדי לפתוח את Cloud Shell.
מגדירים את מזהה פרויקט ברירת המחדל:
gcloud config set project
PROJECT_IDמחליפים את
PROJECT_IDבמזהה הפרויקט ב- Google Cloud .הגדרת אזור ברירת המחדל:
gcloud config set compute/region
REGIONמחליפים את
REGIONבמזהה האזור שבו רוצים לבצע פריסה.הגדרת אזור ברירת המחדל:
gcloud config set compute/zone
ZONEמחליפים את
ZONEבמזהה של האזור שבו רוצים לבצע פריסה. מוודאים שאזור הזמן תקין באזור שצוין בשלב הקודם.
יצירת מכונה של SQL Server ב-Compute Engine
לפני שמעבירים את מסד הנתונים של SQL Server ל-Compute Engine, צריך ליצור מכונה וירטואלית (VM) ב-Compute Engine כדי לארח אותו.
כדי ליצור מכונה של SQL Server ב-Compute Engine, מריצים את הפקודה הבאה:
2022 Standard
gcloud compute instances create sql-server-std-migrate-vm \ --project=
PROJECT_ID\ --zoneZONE\ --machine-type n4-standard-8 \ --subnetSUBNET_NAME\ --create-disk=auto-delete=yes,boot=yes,device-name=node-1,image=projects/windows-sql-cloud/global/images/sql-2022-standard-windows-2022-dc-v20250213,mode=rw,size=50,type=projects/PROJECT_ID/zones/ZONE/diskTypes/pd-balanced \ --scopes=https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/trace.append,https://www.googleapis.com/auth/devstorage.read_writeמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: עם מזהה הפרויקט ב- Google Cloud . -
ZONE: עם מזהה האזור. -
SUBNET_NAME: עם השם של תת-רשת ה-VPC.
2022 Enterprise
gcloud compute instances create sql-server-ent-migrate-vm \ --project=
PROJECT_ID\ --zoneZONE\ --machine-type n4-standard-8 \ --subnetSUBNET_NAME\ --create-disk=auto-delete=yes,boot=yes,device-name=node-1,image=projects/windows-sql-cloud/global/images/sql-2022-enterprise-windows-2022-dc-v20250213,mode=rw,size=50,type=projects/PROJECT_ID/zones/ZONE/diskTypes/pd-balanced \ --scopes=https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/trace.append,https://www.googleapis.com/auth/devstorage.read_writeמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: עם מזהה הפרויקט ב- Google Cloud . -
ZONE: עם מזהה האזור. -
SUBNET_NAME: עם השם של תת-רשת ה-VPC.
מידע נוסף על יצירת מכונות SQL Server ב-Compute Engine זמין במאמר בנושא יצירת מכונת SQL Server.
הגדרה וחיבור ל-VM של SQL Server
כדי להגדיר את מכונת ה-VM של SQL Server ולהתחבר אליה, פועלים לפי השלבים הבאים:
מגדירים את הסיסמה הראשונית ל-Windows בחשבון:
נכנסים לדף VM Instances במסוף Google Cloud .
לוחצים על השם של המכונה הווירטואלית של שרת SQL.
לוחצים על הלחצן הגדרת סיסמה ל-Windows.
כשמוצגת בקשה להגדיר את הסיסמה החדשה של Windows, מזינים סיסמה ולוחצים על הגדרה.
שומרים את שם המשתמש והסיסמה.
מתחברים למכונת ה-SQL Server הווירטואלית:
משתמשים בכתובת ה-IP הציבורית של מכונת SQL Server VM מהדף VM Instances ובפרטי הכניסה שנשמרו בשלב הקודם כדי להתחבר למכונת SQL Server VM באמצעות Microsoft Remote Desktop (RDP).
מפעילים את SQL Server Management Studio (SSMS) כאדמין.
מוודאים שתיבת הסימון Trust server certificate (הגדרת אישור השרת כאמין) מסומנת ולוחצים על Connect (קישור).
המכונה הווירטואלית של SQL Server מוכנה עכשיו לשימוש להעברת מסד נתונים. כדי ליצור פרטי כניסה של משתמשים חדשים לחיבור ולניהול של מכונה וירטואלית של SQL Server, אפשר לעיין במאמר בנושא יצירת פרטי כניסה.
גיבוי ושחזור מלאים של מסד הנתונים
גיבוי ושחזור מלאים של מסד הנתונים הם השיטה הנפוצה והפשוטה ביותר להעברת מסד נתונים. בגישה הזו, מתבצע גיבוי מלא של מסד הנתונים של SQL Server מסביבת המקור, ואז הוא משוחזר בסביבת היעד Google Cloud . השיטה הזו יחסית פשוטה, אבל היא יכולה להיות ארוכה כשמדובר במסדי נתונים גדולים, בגלל הזמן שנדרש ליצירת הגיבוי ולשחזור שלו.
בקטע הזה מוסבר איך אפשר להשתמש ב-SSMS כדי לייצא את מסד הנתונים של SQL Server באמצעות מסד נתונים לדוגמה AdventureWorks2022.
יצירת גיבוי מלא של מסד הנתונים
כדי ליצור גיבוי מלא של מסד הנתונים, פועלים לפי השלבים הבאים:
מתחברים למכונה הווירטואלית ב-AWS EC2 באמצעות Microsoft RDP.
מתחברים ל-SQL Server באמצעות SSMS.
מרחיבים את התיקייה databases (מסדי נתונים) ב-Object Explorer.
לוחצים לחיצה ימנית על שם מסד הנתונים ובתפריט לוחצים על משימות.
לוחצים על גיבוי כדי לפתוח את אשף גיבוי מסד הנתונים.
מוודאים ששם מסד הנתונים שרוצים לגבות מוגדר וסוג הגיבוי מוגדר לגיבוי מלא.
לוחצים על הוספה מתחת ליעד של הגיבוי המלא.
לוחצים על סמל האליפסות (...) כדי לבחור את התיקייה ואת השם של קובץ הגיבוי.
לוחצים על אישור כדי להגדיר את שם הקובץ, ושוב על אישור כדי להגדיר את היעד.
לוחצים על אישור כדי להתחיל בגיבוי של מסד הנתונים וממתינים עד שהגיבוי יסתיים.
אחרי שתהליך הגיבוי מסתיים, נוצר קובץ גיבוי. עכשיו אפשר להשתמש בקובץ הגיבוי הזה כדי להעביר את תוכן מסד הנתונים למכונה וירטואלית ב-Compute Engine.
לוחצים על אישור כדי לצאת מאשף הגיבוי של מסד הנתונים.
העברת קובץ הגיבוי למכונה וירטואלית ב-Compute Engine
כדי להעביר את התוכן של מסד הנתונים של SQL Server, צריך להעביר את קובץ הגיבוי שנוצר בשלב הקודם למכונה הווירטואלית של Compute Engine שיצרתם. מידע על אפשרויות ההעברה השונות זמין במאמר העברת קבצים למכונות וירטואליות של Windows.
שחזור מסד נתונים של SQL Server מקובץ הגיבוי
כדי לשחזר את מסד הנתונים מקובץ הגיבוי, פועלים לפי השלבים הבאים:
מתחברים למכונה הווירטואלית ב-Compute Engine באמצעות RDP.
מתחברים ל-SQL Server באמצעות SSMS.
ב-Object Explorer, לוחצים לחיצה ימנית על התיקייה Databases ואז לוחצים על Restore Database.
בקטע מקור, לוחצים על מכשיר ועל סמל האליפסות (...) כדי לפתוח את הדף 'בחירת מכשיר לגיבוי'.
מוודאים שסוג הגיבוי מוגדר כקובץ ולוחצים על הוספה כדי לבחור את קובץ הגיבוי.
לוחצים על אישור כדי להגדיר את קובץ הגיבוי כמכשיר השחזור.
לוחצים על אישור כדי לשחזר את מסד הנתונים.
כשהתהליך מסתיים, מסד הנתונים מועבר ל-SQL Server ביעד ב-Compute Engine.
כדי לוודא שהתהליך הושלם בהצלחה, אפשר להרחיב את התיקייה databases ב-Object Explorer ולבדוק אם מסד הנתונים שהועבר מופיע.
העברה באמצעות קובץ BACPAC
קובץ חבילת גיבוי (BACPAC) הוא ייצוג לוגי של מסד נתונים של SQL Server. אפשר לייצא אותו מסביבת המקור של AWS ואז לייבא אותו לסביבת היעד Google Cloud . השיטה הזו בדרך כלל מהירה יותר מגיבוי ושחזור מלאים של מסדי נתונים קטנים יותר, אבל היא לא מתאימה למסדי נתונים גדולים מאוד או למסדי נתונים עם תלות מורכבת.
בקטע הבא מוסבר איך אפשר להעביר את מסד הנתונים של SQL Server באמצעות קובץ BACPAC.
יצירת ייצוא BACPAC
כדי ליצור ייצוא BACPAC, פועלים לפי השלבים הבאים:
מתחברים למכונה הווירטואלית ב-AWS EC2 באמצעות Microsoft RDP.
מתחברים ל-SQL Server באמצעות SSMS.
מרחיבים את התיקייה databases ב-Object Explorer.
לוחצים לחיצה ימנית על שם מסד הנתונים ואז על Tasks (משימות).
לוחצים על ייצוא של אפליקציה ברמת הנתונים כדי לפתוח את אשף הייצוא.
לוחצים על הבא.
לוחצים על עיון באפשרות שמירה בדיסק מקומי ובוחרים את קובץ ה-BACPAC.
לוחצים על הכרטיסייה מתקדם ובוחרים את הסכימות שרוצים לייצא.
לוחצים על הבא כדי להמשיך לסיכום.
לוחצים על Finish (סיום) כדי לייצא את קובץ ה-BACPAC ומחכים שהייצוא יסתיים.
כדי לצאת מהאשף, לוחצים על סגירה.
מעבירים את קובץ ה-BACPAC שנוצר בשלבים הקודמים למכונה הווירטואלית של היעד ב-Compute Engine. מידע על אפשרויות ההעברה זמין במאמר העברת קבצים למכונות וירטואליות של Windows.
שחזור מסד נתונים של SQL Server מקובץ BACPAC
כדי לשחזר את מסד הנתונים מקובץ BACPAC, פועלים לפי השלבים הבאים:
מתחברים למכונה הווירטואלית ב-Compute Engine באמצעות RDP.
מתחברים ל-SQL Server באמצעות SSMS.
ב-Object Explorer, לוחצים לחיצה ימנית על התיקייה Databases ואז לוחצים על Import Data-tier Application.
לוחצים על הבא.
לוחצים על Browse, בוחרים את קובץ ה-BACPAC שרוצים לשחזר ואז לוחצים על Next.
מאמתים את השם של מסד הנתונים החדש ולוחצים על הבא.
לוחצים על סיום וממתינים לסיום הייבוא.
כדי לצאת מהאשף, לוחצים על סגירה.
כדי לוודא שהתהליך הושלם בהצלחה, אפשר להרחיב את התיקייה databases ב-Object Explorer ולבדוק אם מסד הנתונים שהועבר מופיע.
העברה באמצעות קבוצות זמינותות שפועלות תמיד
קבוצת זמינות תמיד פעילה (AOAG) היא תכונה של SQL Server שמאפשרת זמינות גבוהה והתאוששות מאסון. אתם יכולים להשתמש ב-AOAG כדי להעביר אשכולות AOAG קיימים, שרתי SQL עצמאיים ואשכולות לגיבוי במקרה של כשל (failover) של Windows Server (WSFC). בשיטה הזו, נוצרת רפליקה של מסד הנתונים בסביבת היעד Google Cloud והנתונים מסונכרנים בין המקור ליעד. אחרי שהסנכרון מסתיים, אפשר להגדיר את הרפליקה בסביבת היעד Google Cloud כעותק ראשי. השיטה הזו מצמצמת את זמן ההשבתה, אבל נדרשות הגדרות נוספות. למיגרציות פשוטות עם סבילות משמעותית לזמן השבתה, יכול להיות ששיטות אחרות יהיו פשוטות ומשתלמות יותר.
לפני שמתחילים
לפני שמתחילים בהעברה, חשוב לוודא שהתנאים הבאים מתקיימים:
כדי להבטיח מעבר מאובטח וחלק של הנתונים, צריך ליצור חיבור קישור בין רשתות שכנות (peering) בין AWS לבין Google Cloud. מידע נוסף זמין במאמר יצירת חיבורי HA VPN בין Google Cloud לבין AWS.
מוודאים שמסד הנתונים של המקור פועל במצב עצמאי, וגם שרתי המקור וגם שרתי היעד מצורפים ל-Active Directory (AD). אם מסד הנתונים של המקור כבר משויך לאשכול WSFC באמצעות AOAG, אפשר לעיין במאמר בנושא העברה באמצעות קבוצות זמינות מבוזרות.
מוודאים שכל מפתחות ההצפנה במסד הנתונים של SQL Server במקור מותקנים בכל המופעים של SQL Server שיצטרפו ל-AOAG.
הכנת SQL Server להיות חלק מקבוצת זמינות
כדי להוסיף שרתי SQL לקבוצת AOAG, צריך להפעיל את התכונה AOAG בכל המופעים של שרת SQL שרוצים להוסיף לקבוצה.
כדי להפעיל את התכונה AOAG בכל המכונות הווירטואליות של SQL Server שרוצים להוסיף ל-AOAG, פועלים לפי השלבים הבאים:
מפעילים AOAG ב-SQL Server.
מתחברים למכונה הווירטואלית של SQL Server באמצעות RDP.
פותחים את Powershell במצב אדמין.
מריצים את הפקודה הבאה כדי להפעיל AOAG ב-SQL Server.
Enable-SqlAlwaysOn -ServerInstance $env:COMPUTERNAME -Force
מריצים את הפקודה הבאה כדי לפתוח יציאה בחומת האש לשכפול נתונים.
netsh advfirewall firewall add rule name="Allow SQL Server replication" dir=in action=allow protocol=TCP localport=5022
חוזרים על שלב 1 לכל מכונות ה-VM של SQL Server שרוצים להוסיף ל-AOAG.
יוצרים משתמש חדש ב-SQL Server ב-AD.
$Credential = Get-Credential -UserName sql_server -Message 'Enter password' New-ADUser ` -Name "sql_server" ` -Description "SQL Admin account." ` -AccountPassword $Credential.Password ` -Enabled $true -PasswordNeverExpires $true
מבצעים את השלבים הבאים בכל המופעים של SQL Server שכלולים ב-AOAG:
- פותחים את SQL Server Configuration Manager.
- בחלונית הניווט, בוחרים באפשרות SQL Server Services (שירותי SQL Server).
- ברשימת השירותים, לוחצים לחיצה ימנית על SQL Server (MSSQLSERVER) ובוחרים באפשרות Properties (מאפיינים).
- בקטע כניסה בתור, משנים את החשבון באופן הבא:
- שם החשבון:
DOMAIN\sql_serverכאשר DOMAIN הוא שם NetBIOS של דומיין AD. - סיסמה: מזינים את הסיסמה שבחרתם בשלב 2 הקודם בקטע הזה.
- שם החשבון:
לוחצים על OK.
כשמופיעה בקשה להפעלה מחדש של SQL Server, בוחרים באפשרות כן.
עכשיו SQL Server פועל תחת חשבון משתמש בדומיין.
הגדרת נקודת הקצה של השכפול למסד הנתונים של SQL Server
כדי ליצור את נקודת הקצה של AOAG, פועלים לפי השלבים הבאים:
אם מסד הנתונים של SQL Server במקור מוצפן באמצעות הצפנת נתונים שקופה (TDE), צריך לבצע את השלב הזה כדי לגבות, להעביר ולהתקין את האישורים והמפתחות ב-SQL Server ביעד.
מתחברים למסד הנתונים של המקור ב-AWS באמצעות SSMS.
מריצים את פקודת T-SQL הבאה כדי ליצור את נקודת הקצה של קבוצת הזמינות.
USE [master] GO CREATE LOGIN [
NET_DOMAIN\sql_server] FROM WINDOWS GO USE [DATABASE_NAME] GO CREATE USER [NET_DOMAIN\sql_server] FOR LOGIN [NET_DOMAIN\sql_server] GO USE [master] GO CREATE ENDPOINT migration_endpoint STATE=STARTED AS TCP (LISTENER_PORT=5022) FOR DATABASE_MIRRORING (ROLE=ALL); GO GRANT CONNECT ON ENDPOINT::[migration_endpoint] TO [NET_DOMAIN\sql_server] GOמחליפים את
NET_DOMAINבשם NetBIOS של דומיין AD, ואתDATABASE_NAMEבשם של מסד הנתונים שרוצים להעביר.מתחברים ל-SQL Server של היעד ב- Google Cloud באמצעות SSMS ומריצים את פקודת T-SQL הבאה כדי ליצור את נקודת הקצה של שיקוף מסד הנתונים.
CREATE LOGIN [
NET_DOMAIN\sql_server] FROM WINDOWS GO CREATE ENDPOINT migration_endpoint STATE=STARTED AS TCP (LISTENER_PORT=5022) FOR DATABASE_MIRRORING (ROLE=ALL); GO GRANT CONNECT ON ENDPOINT::[migration_endpoint] TO [NET_DOMAIN\sql_server] GOמחליפים את
NET_DOMAINבשם NetBIOS של דומיין AD.כדי לאמת את נקודות הקצה, עוברים אל Server Objects > Endpoints > Database Mirroring ב-Object Explorer ב-SSMS.

יצירת קבוצת AOAG
כדי ליצור AOAG, פועלים לפי השלבים הבאים:
מתחברים למסד הנתונים של המקור ב-AWS באמצעות SSMS.
מריצים את פקודת T-SQL הבאה כדי להגדיר את מצב השחזור של מסד הנתונים למצב מלא וליצור גיבוי מלא.
USE [master] GO ALTER DATABASE [
DATABASE_NAME] SET RECOVERY FULL; BACKUP DATABASE [DATABASE_NAME] TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup\DATABASE_NAME.bak';מחליפים את
DATABASE_NAMEבשם של מסד הנתונים שרוצים להעביר.מריצים את פקודת T-SQL הבאה כדי ליצור את קבוצת הזמינות.
USE [master] GO CREATE AVAILABILITY GROUP [migration-ag] WITH ( AUTOMATED_BACKUP_PREFERENCE = SECONDARY, DB_FAILOVER = OFF, DTC_SUPPORT = NONE, REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 0 ) FOR DATABASE [DATABASE_NAME] REPLICA ON N'SOURCE_SERVERNAME' WITH ( ENDPOINT_URL = 'TCP://SOURCE_HOSTNAME:5022', AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, FAILOVER_MODE = MANUAL, BACKUP_PRIORITY = 50, SEEDING_MODE = AUTOMATIC, SECONDARY_ROLE(ALLOW_CONNECTIONS = READ_ONLY) ), N'DEST_SERVERNAME' WITH ( ENDPOINT_URL = 'TCP://DEST_HOSTNAME:5022', AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, FAILOVER_MODE = MANUAL, BACKUP_PRIORITY = 50, SEEDING_MODE = AUTOMATIC, SECONDARY_ROLE(ALLOW_CONNECTIONS = READ_ONLY) ); GOמחליפים את מה שכתוב בשדות הבאים:
-
DATABASE_NAME: עם שם מסד הנתונים שרוצים להעביר. -
SOURCE_SERVERNAME: עם שם השרת של מסד הנתונים של המקור. -
DEST_SERVERNAME: עם שם השרת של מסד הנתונים של היעד. -
SOURCE_HOSTNAME: עם שם הדומיין המוגדר במלואו (FQDN) של המקור. -
DEST_HOSTNAME: מחליפים ב-FQDN של היעד.
-
מריצים את פקודת T-SQL הבאה במסד הנתונים של היעד כדי להוסיף אותו ל-AOAG.
USE [master] GO ALTER AVAILABILITY GROUP [migration-ag] JOIN WITH (CLUSTER_TYPE = EXTERNAL); ALTER AVAILABILITY GROUP [migration-ag] GRANT CREATE ANY DATABASE; GO
כדי לוודא את מצב ה-AOAG ומסד הנתונים שנוצרו, אפשר להשתמש בסייר האובייקטים או להריץ את פקודת T-SQL הבאה.
SELECT * FROM sys.dm_hadr_availability_group_states GO

ה-AOAG של SQL Server מוגדר עכשיו וממשיך לסנכרן בין AWS לבין Google Cloud. בשלב הבא, צריך להגדיר WSFC ומאזין לזמינות גבוהה ולתוכנית התאוששות מאסון (DR). מידע נוסף זמין במאמרים בנושא Windows Server Failover Clustering with SQL Server וWhat is an availability group listener.
העברה באמצעות קבוצות זמינות מבוזרות
קבוצת זמינות מבוזרת היא סוג מיוחד של קבוצת זמינות שמשתרעת על פני שתי קבוצות זמינות נפרדות. הוא נועד לספק זמינות גבוהה ויכולות התאוששות מאסון (DR) במיקומים מפוזרים גיאוגרפית. הארכיטקטורה הזו מאפשרת שכפול נתונים ומעבר לגיבוי (failover) חלקים בין קבוצות הזמינות הראשיות והמשניות, ומתאימה במיוחד להעברת נתונים. מידע מפורט יותר זמין במאמר בנושא קבוצות זמינות מבוזרות.
בקטעים הבאים מוסבר איך אפשר להעביר את מסד הנתונים של SQL Server באמצעות קבוצות זמינות מבוזרות.
לפני שמתחילים
מוודאים שיש לכם WSFC עם SQL Server באמצעות קבוצת זמינות עם מאזין של שם רשת וירטואלית (VNN), שפועל ב-AWS.
הכנת סביבת היעד
כדי להכין את סביבת היעד:
כדי להגדיר WSFC עם SQL Server באמצעות קבוצת זמינות באמצעות מאזן עומסים פנימי ב- Google Cloud, אפשר לעיין במאמר הגדרת קבוצות זמינות של SQL Server Always-on עם אישור סינכרוני באמצעות מאזן עומסים פנימי.
ב-Object Explorer, מוודאים ש-
bookshelf-agנוצר ושהוא משכפל את מסד הנתוניםbookshelf. אחרי האימות, פועלים לפי השלבים הבאים כדי להסיר את קבוצת הזמינות ואת מסד הנתונים משני הצמתים באשכול הגיבוי האוטומטי.
מתחברים אל
node-1ב-SSMS ושומרים את כתובת ה-IP של מאזיןbookshelf.SELECT * FROM sys.availability_group_listeners
מריצים את פקודת T-SQL הבאה כדי להסיר את קבוצת הזמינות
bookshelf-agואת מסד הנתוניםbookshelf.USE master GO DROP AVAILABILITY GROUP [bookshelf-ag] GO ALTER DATABASE [bookshelf] SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO DROP DATABASE [bookshelf] GO
מריצים את פקודת ה-T-SQL הבאה ב-
node-2ב-SSMS כדי להסיר את מסד הנתונים המשוכפל.USE master GO DROP DATABASE [bookshelf] GO
יצירה של קבוצת זמינות מבוזרת
כדי ליצור קבוצת זמינות חדשה לשימוש בקבוצת הזמינות המבוזרת, פועלים לפי השלבים הבאים:
מריצים את פקודת T-SQL הבאה ב-
node-1.USE master GO CREATE AVAILABILITY GROUP [gcp-dest-ag] FOR REPLICA ON N'NODE-1' WITH ( ENDPOINT_URL = N'TCP://NODE-1:5022', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SECONDARY_ROLE(ALLOW_CONNECTIONS = NO), SEEDING_MODE = AUTOMATIC ), N'NODE-2' WITH ( ENDPOINT_URL = N'TCP://NODE-2:5022', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SECONDARY_ROLE(ALLOW_CONNECTIONS = NO), SEEDING_MODE = AUTOMATIC ); GOיוצרים מאזין.
USE master; GO ALTER AVAILABILITY GROUP [gcp-dest-ag] ADD LISTENER N'gcp-dest-lsnr' ( WITH IP ( (N'
LISTENER_IP', N'255.255.255.0') ), PORT = 1433); GOמחליפים את
LISTENER_IPבכתובת ה-IP של המאזין.מתחברים אל
node-2באמצעות SSMS ומריצים את פקודת T-SQL הבאה כדי להוסיף אותו לקבוצת הזמינות שלgcp-dest-ag.USE master GO ALTER AVAILABILITY GROUP [gcp-dest-ag] JOIN; ALTER AVAILABILITY GROUP [gcp-dest-ag] GRANT CREATE ANY DATABASE;
מתחברים לרפליקה הראשית של SQL Server במקור ב-AWS באמצעות SSMS ומריצים את פקודת T-SQL הבאה כדי ליצור קבוצת זמינות מבוזרת.
USE [master] GO CREATE AVAILABILITY GROUP [distributed-ag] WITH (DISTRIBUTED) AVAILABILITY GROUP ON '
AWS_AG' WITH ( LISTENER_URL = 'tcp://AWS_LISTENER:5022', AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, FAILOVER_MODE = MANUAL, SEEDING_MODE = AUTOMATIC ), 'gcp-dest-ag' WITH ( LISTENER_URL = 'tcp://gcp-dest-lsnr:5022', AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, FAILOVER_MODE = MANUAL, SEEDING_MODE = AUTOMATIC ) GOמחליפים את
AWS_AGבשם של קבוצת הזמינות ב-AWS ואתAWS_LISTENERב-listener של קבוצת הזמינות ב-AWS.מריצים את פקודת T-SQL הבאה ב-SSMS ב-
node-1כדי להוסיף אותו לקבוצת הזמינות המבוזרת.USE [master] GO ALTER AVAILABILITY GROUP [distributed-ag] JOIN AVAILABILITY GROUP ON '
AWS_AG' WITH ( LISTENER_URL = 'tcp://AWS_LISTENER:5022', AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, FAILOVER_MODE = MANUAL, SEEDING_MODE = AUTOMATIC ), 'gcp-dest-ag' WITH ( LISTENER_URL = 'tcp://gcp-dest-lsnr:5022', AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, FAILOVER_MODE = MANUAL, SEEDING_MODE = AUTOMATIC ) GOמחליפים את
AWS_AGבשם של קבוצת הזמינות ב-AWS ואתAWS_LISTENERב-listener של קבוצת הזמינות ב-AWS.מריצים את פקודת T-SQL הבאה ב-node-1 כדי לוודא שכל קבוצות הזמינות תקינות ומשוכפלות בקבוצת הזמינות המבוזרת לאשכול SQL Server החדש ב- Google Cloud
SELECT * FROM sys.dm_hadr_availability_group_states GO
הסרת המשאבים
אחרי שמסיימים את המדריך, אפשר למחוק את המשאבים שנוצרו, כדי שהם יפסיקו להשתמש במכסה ולצבור חיובים. בסעיפים הבאים מוסבר איך למחוק או להשבית את המשאבים האלו.
מחיקת הפרויקט
הדרך הקלה ביותר לבטל את החיוב היא למחוק את הפרויקט שיצרתם בשביל המדריך.
כדי למחוק את הפרויקט:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.