במדריך הזה נסביר על הגישות השונות שבהן אפשר להשתמש כדי להעביר מסד נתונים של Microsoft SQL Server ב-Amazon Elastic Compute Cloud (AWS EC2) אל Compute Engine.
בדף הזה נסביר על הגישות הבאות:
- מעבר באמצעות גיבוי ושחזור מלאים
- thought העברה באמצעות קובץ BACPAC
- העברה באמצעות קבוצות זמינות Always-on
- מעבר באמצעות קבוצות זמינות מבוזרות
לכל שיטת העברה יש יתרונות וחסרונות שונים. האסטרטגיה המתאימה ביותר להעברה תלויה בנסיבות ובסדרי העדיפויות הספציפיים שלכם. מומלץ לבחור שיטת העברה שהכי מתאימה לכם על סמך השיקולים הבאים:
זמינות: כדאי לבדוק אם גישת המיגרציה נתמכת בכל הגרסאות והרישיונות של מסד הנתונים של SQL Server.
גודל מסד הנתונים: גודל מסד הנתונים יכול להשפיע באופן משמעותי על אפשרויות ההעברה האפשריות, כי יכול להיות שבמסדי נתונים גדולים יותר יידרשו אסטרטגיות שונות מאלה שנדרשות במסדי נתונים קטנים יותר. כשבוחרים גישה להעברה, חשוב להביא בחשבון את משך הזמן של העברת הנתונים, את זמן ההשבתה הפוטנציאלי ואת דרישות המשאבים.
טולרנטיות לזמן השבתה: רמת זמן ההשבתה המקובלת במהלך ההעברה היא גורם קריטי. חלק מהשיטות מאפשרות השבתה מינימלית או כמעט אפס השבתה, בעוד שאחרות דורשות השבתה ממושכת יותר. כדאי לבחור בגישת העברה שתאפשר לכם זמן השבתה מקובל.
מורכבות: המורכבות של סכימת מסד הנתונים, התלות של האפליקציה והסביבה הכוללת יכולות להשפיע על גישת ההעברה. מוודאים ששיטת המיגרציה שבחרתם תומכת במיגרציה של אובייקטים שאינם מסד נתונים, כמו משימות של סוכן SQL, שרתים מקושרים, הרשאות ואובייקטים של משתמשים.
עלות: גם ההיבט הפיננסי של ההעברה יכול להיות שיקול. שיטות שונות להעברה כרוכות בעלויות שונות שקשורות להעברת נתונים, למשאבי מחשוב ולשירותים אחרים. כדאי לבחור את שיטת ההעברה שהכי מתאימה לכם.
אבטחת נתונים ועמידה בדרישות: חשוב לוודא ששיטת ההעברה שנבחרה עומדת בדרישות שלכם בנוגע לאבטחת נתונים ולעמידה בדרישות. כדאי להשתמש בהצפנת נתונים, באמצעי בקרה לגישה ובדרישות ספציפיות לתעשייה שחלות על הנתונים.
מטרות
במדריך הזה מוסבר איך לבצע את הפעולות הבאות כדי להעביר את מסד הנתונים של SQL Server מ-AWS EC2 ל-Compute Engine:
- פריסת מכונה של SQL Server ב-Compute Engine
- מעבר באמצעות גיבוי ושחזור מלאים
- העברה באמצעות קובץ BACPAC
- העברה באמצעות קבוצות זמינות AlwaysOn
- מעבר באמצעות קבוצות זמינות מבוזרות
עלויות
במדריך הזה נעשה שימוש ברכיבים של Google Cloud, והשימוש בהם כרוך בתשלום, כולל:
אתם יכולים להשתמש במחשבון התמחור כדי ליצור הערכת עלויות בהתאם לשימוש החזוי.
לפני שמתחילים
לפני שמתחילים, צריך לבצע את המשימות הבאות:
-
בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו.
התפקידים שנדרשים כדי לבחור או ליצור פרויקט
- Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים
-
במסוף Google Cloud , מפעילים את Cloud Shell.
הכנת הפרויקט והרשת
כדי להכין את פרויקט Google Cloud ה-VPC (ענן וירטואלי פרטי) לפריסה של SQL Server לצורך מיגרציה, צריך לבצע את הפעולות הבאות:
במסוף 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, משתמשים בפקודה הבאה:
Standard 2022
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.
הגדרה וחיבור למכונת SQL Server וירטואלית
כדי להגדיר את ה-VM של SQL Server ולהתחבר אליו:
מגדירים את הסיסמה הראשונית ל-Windows בחשבון:
נכנסים לדף VM Instances במסוף Google Cloud .
לוחצים על השם של המכונה הווירטואלית של שרת ה-SQL.
לוחצים על הלחצן הגדרת סיסמה ל-Windows.
כשמוצגת בקשה להגדיר סיסמה חדשה ל-Windows, מזינים סיסמה ולוחצים על הגדרה.
שומרים את שם המשתמש והסיסמה.
מתחברים למכונה הווירטואלית של SQL Server:
משתמשים בכתובת ה-IP הציבורית של ה-VM של SQL Server מהדף VM Instances ובפרטי הכניסה שנשמרו מהשלב הקודם כדי להתחבר ל-VM של SQL Server באמצעות 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 (סייר אובייקטים).
לוחצים לחיצה ימנית על שם מסד הנתונים, ובתפריט לוחצים על Tasks.
לוחצים על גיבוי כדי לפתוח את אשף גיבוי מסד הנתונים.
מוודאים ששם מסד הנתונים שרוצים לגבות מופיע ושהגיבוי מוגדר כגיבוי מלא.
לוחצים על הוספה מתחת ליעד של הגיבוי המלא.
לוחצים על סמל האליפסות (...) כדי לבחור את התיקייה ואת השם של קובץ הגיבוי.
לוחצים על אישור כדי להגדיר את שם הקובץ, ושוב על אישור כדי להגדיר את היעד.
לוחצים על אישור כדי להתחיל בגיבוי של מסד הנתונים וממתינים עד שהגיבוי יסתיים.
אחרי שתהליך הגיבוי יסתיים, ייווצר קובץ גיבוי. עכשיו אתם יכולים להשתמש בקובץ הגיבוי הזה כדי להעביר את תוכן מסד הנתונים למכונה וירטואלית ב-Compute Engine.
לוחצים על אישור כדי לצאת מאשף הגיבוי של מסד הנתונים.
העברת קובץ הגיבוי למכונה וירטואלית ב-Compute Engine
כדי להעביר את התוכן של מסד הנתונים של SQL Server, צריך להעביר את קובץ הגיבוי שנוצר בשלב הקודם למכונה הווירטואלית של Compute Engine שיצרתם. מידע על אפשרויות ההעברה השונות זמין במאמר העברת קבצים למכונות וירטואליות של Windows.
שחזור מסד נתונים של SQL Server מקובץ הגיבוי
כדי לשחזר את מסד הנתונים מקובץ הגיבוי, פועלים לפי השלבים הבאים:
מתחברים למכונה הווירטואלית ב-Compute Engine באמצעות RDP.
מתחברים ל-SQL Server באמצעות SSMS.
ב-Object Explorer, לוחצים לחיצה ימנית על התיקייה Databases ואז לוחצים על Restore Database.
בקטע Source (מקור), לוחצים על Device (מכשיר) ועל סמל שלוש הנקודות (...) כדי לפתוח את הדף Select backup device (בחירת מכשיר לגיבוי).
מוודאים שסוג המדיה של הגיבוי מוגדר כקובץ ולוחצים על Add כדי לבחור את קובץ הגיבוי.
לוחצים על אישור כדי להגדיר את קובץ הגיבוי כמכשיר השחזור.
לוחצים על אישור כדי לשחזר את מסד הנתונים.
בסיום התהליך, מסד הנתונים יועבר ל-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 (משימות).
לוחצים על ייצוא של אפליקציה ברמת הנתונים כדי לפתוח את אשף הייצוא.
לוחצים על הבא.
לוחצים על Browse באפשרות Save to local disk ובוחרים את קובץ ה-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.
מאמתים את השם של מסד הנתונים החדש ולוחצים על הבא.
לוחצים על סיום ומחכים שהייבוא יסתיים.
לוחצים על Close כדי לצאת מהאשף.
כדי לוודא שהתהליך הושלם, אתם יכולים להרחיב את התיקייה databases ב-Object Explorer ולבדוק אם מסד הנתונים שהועבר מופיע.
העברה באמצעות קבוצות זמינות Always-on
AOAG היא תכונה של SQL Server שמאפשרת זמינות גבוהה ותוכנית התאוששות מאסון (DR). אפשר להשתמש ב-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 להיות חלק מקבוצת זמינות תמיד (AOAG)
כדי להוסיף שרתי 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 (MSSQLSERVER) ובוחרים באפשרות Properties.
- בקטע כניסה בתור, משנים את החשבון באופן הבא:
- שם החשבון:
DOMAIN\sql_server, כאשר DOMAIN הוא השם של NetBIOS בדומיין של AD. - סיסמה: מזינים את הסיסמה שבחרתם בשלב 2 הקודם בקטע הזה.
- שם החשבון:
לוחצים על OK.
כשמופיעה בקשה להפעיל מחדש את SQL Server, בוחרים באפשרות Yes.
ה-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.מאמתים את נקודות הקצה: ב-Object Explorer ב-SSMS, עוברים אל Server Objects > Endpoints > Database Mirroring.

יצירת קבוצת זמינות תמיד (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 הבאה כדי ליצור את ה-AOAG.
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 ומסד הנתונים החדשים שנוצרו ב-Object Explorer או על ידי הרצת פקודת ה-T-SQL הבאה.
SELECT * FROM sys.dm_hadr_availability_group_states GO

ה-SQL Server AOAG מוגדר עכשיו וממשיך לסנכרן בין 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;
מתחברים ל-replica הראשי של 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במאזין של קבוצת הזמינות ב-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
הסרת המשאבים
אחרי שמסיימים את המדריך, אפשר למחוק את המשאבים שנוצרו, כדי שהם יפסיקו להשתמש במכסה ולצבור חיובים. בסעיפים הבאים מוסבר איך למחוק או להשבית את המשאבים האלו.
מחיקת הפרויקט
הדרך הקלה ביותר לבטל את החיוב היא למחוק את הפרויקט שיצרתם בשביל המדריך.
כדי למחוק את הפרויקט:
- במסוף Google Cloud , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.