העברת מסד נתונים של SQL Server מ-AWS EC2 ל-Compute Engine

במדריך הזה נסביר על הגישות השונות שבהן אפשר להשתמש כדי להעביר מסד נתונים של Microsoft SQL Server ב-Amazon Elastic Compute Cloud ‏ (AWS EC2) אל Compute Engine.

בדף הזה נסביר על הגישות הבאות:

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

  • זמינות: כדאי לבדוק אם כל הגרסאות והרישיונות של מסד הנתונים של SQL Server תומכים בגישת ההעברה.

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

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

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

  • עלות: גם ההיבט הפיננסי של המעבר יכול להיות שיקול. שיטות העברה שונות כרוכות בעלויות שונות שקשורות להעברת נתונים, למשאבי מחשוב ולשירותים אחרים. בוחרים את שיטת ההעברה שהכי מתאימה לכם.

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

מטרות

במדריך הזה מוסבר איך לבצע את הפעולות הבאות כדי להעביר את מסד הנתונים של SQL Server מ-AWS EC2 ל-Compute Engine:

עלויות

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

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

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

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

  1. בדף לבחירת הפרויקט במסוף Cloud de Confiance , בוחרים פרויקט ב- Cloud de Confiance או יוצרים אותו.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים

    כניסה לדף לבחירת הפרויקט

  2. מוודאים שהחיוב מופעל בפרויקט Cloud de Confiance .

  3. במסוף Cloud de Confiance , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

הכנת הפרויקט והרשת

כדי להכין את פרויקט Cloud de Confiance ה-VPC (ענן וירטואלי פרטי) לפריסה של SQL Server לצורך מיגרציה, צריך לבצע את הפעולות הבאות:

  1. במסוף Cloud de Confiance , לוחצים על Activate Cloud Shell מפעילים את Cloud Shell. כדי לפתוח את Cloud Shell.

    כניסה ל Cloud de Confiance מסוף

  2. מגדירים את מזהה פרויקט ברירת המחדל:

    gcloud config set project PROJECT_ID
    

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

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

    gcloud config set compute/region REGION
    

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

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

    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 \
--zone ZONE \
--machine-type n4-standard-8 \
--subnet SUBNET_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: עם מזהה הפרויקט ב- Cloud de Confiance .
  • ZONE: עם מזהה האזור.
  • SUBNET_NAME: עם השם של תת-רשת ה-VPC.

‫2022 Enterprise

gcloud compute instances create sql-server-ent-migrate-vm \
--project=PROJECT_ID \
--zone ZONE \
--machine-type n4-standard-8 \
--subnet SUBNET_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: עם מזהה הפרויקט ב- Cloud de Confiance .
  • ZONE: עם מזהה האזור.
  • SUBNET_NAME: עם השם של תת-רשת ה-VPC.

מידע נוסף על יצירת מכונות SQL Server ב-Compute Engine זמין במאמר בנושא יצירת מכונת SQL Server.

הגדרה וחיבור למכונה וירטואלית של SQL Server

כדי להגדיר את מכונת ה-VM של SQL Server ולהתחבר אליה, פועלים לפי השלבים הבאים:

  1. מגדירים את הסיסמה הראשונית ל-Windows בחשבון:

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

      לדף VM instances

    2. לוחצים על השם של המכונה הווירטואלית של שרת SQL.

    3. לוחצים על הלחצן הגדרת סיסמה ל-Windows.

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

    5. שומרים את שם המשתמש והסיסמה.

  2. מתחברים למכונה הווירטואלית של SQL Server:

    1. משתמשים בכתובת ה-IP הציבורית של מכונת SQL Server VM מהדף VM Instances ובפרטי הכניסה שנשמרו מהשלב הקודם כדי להתחבר למכונת SQL Server VM באמצעות Microsoft Remote Desktop ‏ (RDP).

    2. מפעילים את SQL Server Management Studio (SSMS) כאדמין.

    3. מוודאים שתיבת הסימון Trust server certificate (הגדרת אישור השרת כאמין) מסומנת ולוחצים על Connect (קישור).

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

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

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

בקטע הזה מוסבר איך אפשר להשתמש ב-SSMS כדי לייצא את מסד הנתונים של SQL Server באמצעות מסד נתונים לדוגמה AdventureWorks2022.

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

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

  1. מתחברים למכונה הווירטואלית ב-AWS EC2 באמצעות Microsoft RDP.

  2. מתחברים ל-SQL Server באמצעות SSMS.

  3. מרחיבים את התיקייה databases (מסדי נתונים) בחלונית Object Explorer (סייר אובייקטים).

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

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

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

    2. לוחצים על הוספה מתחת ליעד של הגיבוי המלא.

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

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

      אפשרויות גיבוי מסד הנתונים.

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

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

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

העברת קובץ הגיבוי למכונה וירטואלית ב-Compute Engine

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

שחזור מסד נתונים של SQL Server מקובץ הגיבוי

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

  1. מתחברים למכונה הווירטואלית ב-Compute Engine באמצעות RDP.

  2. מתחברים ל-SQL Server באמצעות SSMS.

  3. ב-Object Explorer, לוחצים לחיצה ימנית על התיקייה Databases ואז לוחצים על Restore Database.

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

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

    שחזור מסד נתונים בחירת מכשיר.

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

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

    כשהתהליך מסתיים, מסד הנתונים מועבר ל-SQL Server ביעד ב-Compute Engine.

  8. כדי לוודא שהתהליך הסתיים בהצלחה, אפשר להרחיב את התיקייה databases ב-Object Explorer ולבדוק אם מסד הנתונים שהועבר מופיע.

    מאמתים את מסד הנתונים ששוחזר.

העברה באמצעות קובץ BACPAC

קובץ חבילת גיבוי (BACPAC) הוא ייצוג לוגי של מסד נתונים של SQL Server. אפשר לייצא אותו מסביבת המקור של AWS ואז לייבא אותו לסביבת היעד Cloud de Confiance by S3NS . השיטה הזו בדרך כלל מהירה יותר מגיבוי מלא ושחזור של מסדי נתונים קטנים יותר, אבל היא לא מתאימה למסדי נתונים גדולים מאוד או למסדי נתונים עם תלות מורכבת.

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

יצירת ייצוא BACPAC

כדי ליצור ייצוא BACPAC, פועלים לפי השלבים הבאים:

  1. מתחברים למכונה הווירטואלית ב-AWS EC2 באמצעות Microsoft RDP.

  2. מתחברים ל-SQL Server באמצעות SSMS.

  3. מרחיבים את התיקייה databases (מסדי נתונים) ב-Object Explorer (סייר האובייקטים).

  4. לוחצים לחיצה ימנית על שם מסד הנתונים ואז על Tasks (משימות).

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

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

    2. לוחצים על עיון באפשרות שמירה בדיסק מקומי ובוחרים את קובץ ה-BACPAC.

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

    4. לוחצים על הבא כדי להמשיך לסיכום.

    5. לוחצים על Finish (סיום) כדי לייצא את קובץ ה-BACPAC ומחכים שהייצוא יסתיים.

    6. כדי לצאת מהאשף, לוחצים על סגירה.

  6. מעבירים את קובץ ה-BACPAC שנוצר בשלבים הקודמים למכונה הווירטואלית של היעד ב-Compute Engine. מידע על אפשרויות ההעברה זמין במאמר העברת קבצים למכונות וירטואליות של Windows.

שחזור מסד נתונים של SQL Server מקובץ BACPAC

כדי לשחזר את מסד הנתונים מקובץ BACPAC, פועלים לפי השלבים הבאים:

  1. מתחברים למכונה הווירטואלית ב-Compute Engine באמצעות RDP.

  2. מתחברים ל-SQL Server באמצעות SSMS.

  3. ב-Object Explorer, לוחצים לחיצה ימנית על התיקייה Databases ואז לוחצים על Import Data-tier Application.

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

  5. לוחצים על Browse, בוחרים את קובץ ה-BACPAC שרוצים לשחזר ואז לוחצים על Next.

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

  7. לוחצים על סיום וממתינים לסיום הייבוא.

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

  9. כדי לוודא שהתהליך הסתיים בהצלחה, אפשר להרחיב את התיקייה databases ב-Object Explorer ולבדוק אם מסד הנתונים שהועבר מופיע.

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

קבוצת זמינות תמיד פעילה (AOAG) היא תכונה של SQL Server שמאפשרת זמינות גבוהה והתאוששות מאסון. אפשר להשתמש ב-AOAG כדי להעביר אשכולות AOAG קיימים, שרתי SQL עצמאיים ואשכולות לגיבוי במקרה של כשל (failover) של Windows Server ‏(WSFC). בשיטה הזו, נוצרת העתק של מסד הנתונים בסביבת היעד Cloud de Confiance by S3NS והנתונים מסונכרנים בין המקור ליעד. אחרי שהסנכרון מסתיים, אפשר להגדיר את העותק המשוכפל בסביבת היעד Cloud de Confiance by S3NS כעותק ראשי. השיטה הזו מצמצמת את זמן ההשבתה, אבל נדרשות הגדרות נוספות. אם מדובר בהעברות פשוטות עם סבילות משמעותית לזמן השבתה, יכול להיות ששיטות אחרות יהיו פשוטות ומשתלמות יותר.

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

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

  • כדי להבטיח מעבר מאובטח וחלק של נתונים, צריך ליצור חיבור בין AWS לבין Cloud de Confiance by S3NS. מידע נוסף זמין במאמר בנושא יצירת חיבורי HA VPN בין Cloud de Confiance by S3NS לבין AWS.

  • מוודאים שמסד הנתונים של המקור פועל במצב עצמאי, וגם שרתי המקור וגם שרתי היעד מצורפים ל-Active Directory‏ (AD). אם מסד הנתונים של המקור כבר משויך לאשכול WSFC באמצעות AOAG, אפשר לעיין במאמר בנושא העברה באמצעות קבוצות זמינות מבוזרות.

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

הכנת SQL Server להיות חלק מקבוצת זמינות

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

כדי להפעיל את התכונה AOAG בכל המכונות הווירטואליות של SQL Server שרוצים להוסיף ל-AOAG, פועלים לפי השלבים הבאים:

  1. מפעילים את AOAG ב-SQL Server.

    1. מתחברים למכונה הווירטואלית של SQL Server באמצעות RDP.

    2. פותחים את Powershell במצב אדמין.

    3. מריצים את הפקודה הבאה כדי להפעיל AOAG ב-SQL Server.

      Enable-SqlAlwaysOn -ServerInstance $env:COMPUTERNAME -Force
      

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

      netsh advfirewall firewall add rule name="Allow SQL Server replication" dir=in action=allow protocol=TCP localport=5022
      
    5. חוזרים על שלב 1 לכל מכונות ה-VM של SQL Server שרוצים להוסיף ל-AOAG.

  2. יוצרים משתמש חדש ב-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
    
  3. מבצעים את השלבים הבאים בכל המופעים של SQL Server שכלולים ב-AOAG:

    1. פותחים את SQL Server Configuration Manager.
    2. בחלונית הניווט, בוחרים באפשרות SQL Server Services (שירותי SQL Server).
    3. ברשימת השירותים, לוחצים לחיצה ימנית על SQL Server (MSSQLSERVER) ובוחרים באפשרות Properties (מאפיינים).
    4. בקטע כניסה בתור, משנים את החשבון באופן הבא:
      • שם החשבון: DOMAIN\sql_server כאשר DOMAIN הוא שם NetBIOS של דומיין AD.
      • סיסמה: מזינים את הסיסמה שבחרתם בשלב 2 הקודם בקטע הזה.
    5. לוחצים על OK.

    6. כשמופיעה בקשה להפעלה מחדש של SQL Server, בוחרים באפשרות כן.

עכשיו SQL Server פועל תחת חשבון משתמש בדומיין.

הגדרת נקודת הקצה של שיקוף מסד הנתונים של SQL Server

כדי ליצור את נקודת הקצה של AOAG, פועלים לפי השלבים הבאים:

  1. אם מסד הנתונים של SQL Server במקור מוצפן באמצעות הצפנת נתונים שקופה (TDE), צריך לבצע את השלב הזה כדי לגבות, להעביר ולהתקין את האישורים והמפתחות ב-SQL Server ביעד.

  2. מתחברים למסד הנתונים של המקור ב-AWS באמצעות SSMS.

  3. מריצים את פקודת 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 בשם של מסד הנתונים שרוצים להעביר.

  4. מתחברים ל-SQL Server של היעד ב- Cloud de Confiance by S3NS באמצעות 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.

  5. כדי לאמת את נקודות הקצה, עוברים אל Server Objects > Endpoints > Database Mirroring ב-Object Explorer ב-SSMS.

    תצוגת נקודת הקצה של SMSS.

יצירת קבוצת AOAG

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

  1. מתחברים למסד הנתונים של המקור ב-AWS באמצעות SSMS.

  2. מריצים את פקודת 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 בשם של מסד הנתונים שרוצים להעביר.

  3. מריצים את פקודת 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 של היעד.
  4. מריצים את פקודת 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
    
  5. כדי לוודא את המצב של קבוצת הזמינות החדשה ושל מסד הנתונים, אפשר להשתמש בסייר האובייקטים או להריץ את פקודת T-SQL הבאה.

    SELECT * FROM sys.dm_hadr_availability_group_states
    GO
    

    מאמתים את מסד הנתונים של הרפליקה.

ה-SQL Server AOAG מוגדר עכשיו וממשיך לבצע סנכרון בין AWS לבין Cloud de Confiance by S3NS. בשלב הבא, צריך להגדיר WSFC ומאזין לזמינות גבוהה ולתוכנית התאוששות מאסון (DR). מידע נוסף זמין במאמרים בנושא Windows Server Failover Clustering with SQL Server וWhat is an availability group listener.

העברה באמצעות קבוצות זמינות מבוזרות

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

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

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

מוודאים שיש לכם WSFC עם SQL Server באמצעות קבוצת זמינות עם מאזין של שם רשת וירטואלית (VNN), שפועל ב-AWS.

הכנת סביבת היעד

כדי להכין את סביבת היעד:

  1. כדי להגדיר WSFC עם SQL Server באמצעות קבוצת זמינות באמצעות מאזן עומסים פנימי ב- Cloud de Confiance by S3NS, אפשר לעיין במאמר הגדרת קבוצות זמינות של SQL Server Always-on עם אישור סינכרוני באמצעות מאזן עומסים פנימי.

  2. ב-Object Explorer, מוודאים ש-bookshelf-ag נוצר ושהוא משכפל את מסד הנתונים bookshelf. אחרי האימות, פועלים לפי השלבים הבאים כדי להסיר את קבוצת הזמינות ואת מסד הנתונים משני הצמתים באשכול הגיבוי למקרה כשל.

    אימות המצב ההתחלתי של אשכול היעד.

  3. מתחברים אל node-1 ב-SSMS ושומרים את כתובת ה-IP של מאזין bookshelf.

    SELECT * FROM sys.availability_group_listeners
    
  4. מריצים את פקודת 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
    
  5. מריצים את הפקודה הבאה של T-SQL ב-node-2 ב-SSMS כדי להסיר את מסד הנתונים המשוכפל.

    USE master
    GO
    
    DROP DATABASE [bookshelf]
    GO
    

יצירת קבוצת זמינות מבוזרת

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

  1. מריצים את פקודת 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
    
  2. יוצרים מאזין.

    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 של המאזין.

  3. מתחברים אל 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;
    
  4. מתחברים ל-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.

  5. מריצים את פקודת 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.

  6. מריצים את פקודת T-SQL הבאה ב-node-1 כדי לוודא שכל קבוצות הזמינות תקינות ומשוכפלות בקבוצת הזמינות המבוזרת אל אשכול SQL Server החדש ב- Cloud de Confiance by S3NS

    SELECT * FROM sys.dm_hadr_availability_group_states
    GO
    

הסרת המשאבים

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

מחיקת הפרויקט

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

כדי למחוק את הפרויקט:

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

    כניסה לדף Manage resources

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