שימוש באחסון בלוקים של Google Cloud NetApp Volumes כדי להגדיר קבוצות זמינות של SQL Server Always On

במדריך הזה נסביר איך לפרוס קבוצת זמינות של Microsoft SQL Server Always On במכונות וירטואליות (VM) של Compute Engine באמצעות אחסון בלוקים של Google Cloud NetApp Volumes עם פרוטוקול Internet Small Computer System Interface ‏ (iSCSI). שימוש ב-NetApp Volumes לאחסון של SQL Server מספק גישה לשירות אחסון מנוהל במלואו עם ביצועים גבוהים ותכונות מתקדמות לניהול נתונים, כמו תמונות מצב ושיבוט.

מטרות

במדריך הזה מוסבר איך לבצע את הפעולות הבאות:

עלויות

במדריך הזה השתמשנו ברכיבים הבאים של 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 פרויקט עם הרשאות אדמין ל-Compute Engine, לרשת, לניהול זהויות והרשאות גישה ול-Cloud Storage.
  4. רשת VPC עם תת-רשת באזור היעד.
  5. שירותי Active Directory ו-DNS שהוגדרו באזור.
  6. משתמש ב-Active Directory עם הרשאות לצירוף מחשבים לדומיין ולגישה למכונות וירטואליות באמצעות RDP.
  7. מוודאים שכללי חומת האש של ה-VPC מאפשרים תעבורת נתונים בין הצמתים עבור iSCSI ‏ (TCP 3260),‏ WSFC ‏ (UDP/TCP 3343),‏ SQL Server ‏ (TCP 1433),‏ נקודות קצה של SQL Server AG ‏ (TCP 5022),‏ SMB ‏ (TCP 445) ו-RPC ‏ (TCP 135,‏ TCP 49152-65535).
  8. מפעילים את NetApp Volumes API.
  9. במסוף Cloud de Confiance , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

הגדרת חשבונות דומיין

מגדירים שני חשבונות Active Directory ל-SQL Server:

  • חשבון התקנה: חשבון עם הרשאות אדמין בדומיין (לדוגמה, DOMAIN\DomainAdmin) כדי להיכנס למכונות וירטואליות ולהגדיר את האשכול ואת קבוצת הזמינות.
  • חשבון שירות: חשבון (לדוגמה, DOMAIN\sqlsvc) לשירות SQL Server ולשירות SQL Agent בשתי המכונות הווירטואליות של SQL Server.

יצירת מכונות וירטואליות ב-Compute Engine ל-SQL Server

יוצרים שתי מכונות של Compute Engine‏ (sqlnode1 ו-sqlnode2) שמריצות SQL Server 2022 Enterprise ב-Windows Server 2025:

  1. נכנסים לדף Create an instance במסוף Cloud de Confiance .

    כניסה לדף Create an instance

  2. בשדה Name (שם), מזינים sqlnode1.

  3. בקטע Machine configuration (הגדרת המכונה), בוחרים באפשרות General Purpose (למטרות כלליות) ומבצעים את הפעולות הבאות:

    1. ברשימה Series בוחרים באפשרות N4.
    2. ברשימה Machine type (סוג המכונה), בוחרים באפשרות n4-highmem-8 (8vCPU, 64 GB memory) (‎8 vCPU, זיכרון של ‎64 GB).
  4. בוחרים את האזור והתחום שבהם הגדרתם את ה-VPC.

  5. בקטע Boot disk (דיסק אתחול), לוחצים על Change (שינוי) ומבצעים את הפעולות הבאות:

    1. בכרטיסייה תמונות ציבוריות, בוחרים באפשרות SQL Server on Windows Server מהרשימה מערכת הפעלה.
    2. ברשימה Version (גרסה), בוחרים באפשרות SQL Server 2022 Enterprise on Windows Server 2025 Datacenter (‏SQL Server 2022 Enterprise ב-Windows Server 2025 Datacenter).
    3. ברשימה סוג דיסק אתחול בוחרים באפשרות Hyperdisk Balanced.
    4. מגדירים את Size (GB) לערך 50.
    5. כדי לשמור את ההגדרות של דיסק האתחול, לוחצים על Select.
  6. מרחיבים את הקטע אפשרויות מתקדמות ואז את הקטע רשת.

  7. בקטע ממשקי רשת, בוחרים את ה-VPC ואת רשת המשנה של הפרויקט.

  8. ברשימה סוג כרטיס ממשק רשת, בוחרים באפשרות gVNIC.

  9. בקטע Network Service Tier, לוחצים על Premium.

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

  11. חוזרים על השלבים האלה כדי ליצור מופע שני בשם sqlnode2.

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

מבצעים את השלבים הבאים גם ב-sqlnode1 וגם ב-sqlnode2:

  1. מתחברים למכונה הווירטואלית באמצעות חשבון אדמין מקומי.
  2. ב-Server Manager (ניהול השרת), בוחרים באפשרות Local Server (שרת מקומי).
  3. לוחצים על הקישור WORKGROUP.
  4. בקטע שם המחשב, בוחרים באפשרות שינוי.
  5. מסמנים את התיבה דומיין, מזינים את שם הדומיין (לדוגמה, cvsdemo.internal) ולוחצים על אישור.
  6. בתיבת הדו-שיח Windows Security, מזינים את פרטי הכניסה לחשבון האדמין בדומיין ולוחצים על OK.
  7. כשמופיעה הודעת הפתיחה של הדומיין, מבצעים את השלבים הבאים: א. לוחצים על אישור. ב. לוחצים על סגירה ואז על הפעלה מחדש עכשיו.
  8. אחרי שמכונת ה-VM מופעלת מחדש, מתחברים אליה באמצעות חשבון האדמין של הדומיין.
  9. מוסיפים את חשבון DOMAIN\sqlsvc לקבוצה המקומית Administrators במכונה הווירטואלית. אפשר להשתמש בפקודת PowerShell הבאה:
    Add-LocalGroupMember -Group "Administrators" -Member "DOMAIN\sqlsvc"
    
  10. פותחים את PowerShell כאדמין ומריצים את הפקודות הבאות כדי להתקין את התכונות הנדרשות של Windows:

    # Install Failover Clustering and tools
    Install-WindowsFeature Failover-Clustering, RSAT-Clustering-PowerShell, RSAT-Clustering-CmdInterface -IncludeAllSubFeature -IncludeManagementTools
    # Install and enable MPIO for iSCSI
    Install-WindowsFeature -Name Multipath-IO
    Enable-MSDSMAutomaticClaim -BusType "iSCSI"
    # Install .NET and other SQL prereqs
    Install-WindowsFeature NET-Framework-45-Core, NET-Framework-45-Features
    Install-WindowsFeature RSAT-AD-PowerShell
    
  11. כדי לקבל את השם המוסמך של iSCSI ‏(IQN) של מכונת ה-VM, מריצים את הפקודה iscsicpl.exe, עוברים לכרטיסייה Configuration (הגדרה) ומעתיקים את Initiator Name (שם היוזם). לחלופין, מריצים את פקודת PowerShell הבאה:

    Get-InitiatorPort | Select-Object NodeAddress
    

    מציינים את ה-IQN גם עבור sqlnode1 וגם עבור sqlnode2. תצטרכו אותם בקטע הבא. דוגמה: iqn.1991-05.com.microsoft:sqlnode1.cvsdemo.internal.

יצירת נפחי אחסון בלוקים של NetApp Volumes

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

יצירת קבוצת מארחים

קבוצת מארחים מבטיחה שרק המארחים שצוינו (המכונות הווירטואליות של SQL Server) יוכלו לגשת לנפחי האחסון שאתם יוצרים.

  • ב-Cloud Shell, יוצרים קבוצת מארחים שמכילה את מספרי ה-IQN של sqlnode1 ו-sqlnode2:

    gcloud netapp host-groups create HOST_GROUP_NAME 
    --location=LOCATION
    --type=ISCSI_INITIATOR
    --hosts=SQLNODE1_IQN,SQLNODE2_IQN
    --os-type=WINDOWS
    --description="SQL Server AG nodes"

    מחליפים את המידע הבא:

    • HOST_GROUP_NAME: השם של קבוצת המארחים, למשל sql-ag-hosts.
    • LOCATION: האזור של קבוצת המארחים, לדוגמה, us-west1.
    • SQLNODE1_IQN: ה-IQN של sqlnode1.
    • SQLNODE2_IQN: ה-IQN של sqlnode2.

הקצאת נפח אחסון ארגוני

  • ב-Cloud Shell, יוצרים מאגר אחסון לנפחי האחסון:

    gcloud netapp storage-pools create POOL_NAME 
    --project=PROJECT_ID
    --location=ZONE
    --service-level=Flex
    --type=Unified
    --capacity=1024
    --total-throughput=64
    --total-iops=1024
    --network=name=VPC_NAME,psa-range=PSA_RANGE_NAME

    מחליפים את המידע הבא:

    • POOL_NAME: השם של מאגר האחסון, למשל sql-pool.
    • PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance .
    • ZONE: האזור של מאגר האחסון, שצריך להיות זהה לאזור של המכונות הווירטואליות. לדוגמה, us-west1-b.
    • VPC_NAME: השם של רשת ה-VPC.
    • PSA_RANGE_NAME: השם של טווח הכתובות שהוקצה לחיבור שלכם לגישה לשירותים פרטיים.

יצירת נפחים

יוצרים נפחים נפרדים לנתונים, ליומנים, ל-tempdb ולגיבויים של SQL Server לכל צומת.

  • ב-Cloud Shell, מריצים את הפקודה הבאה לכל אמצעי אחסון שרוצים ליצור:

    gcloud netapp volumes create VOLUME_NAME 
    --project=PROJECT_ID
    --location=ZONE
    --storage-pool=POOL_NAME
    --capacity=200
    --protocols=ISCSI
    --block-devices="name=VOLUME_NAME,host-groups=projects/PROJECT_ID/locations/LOCATION/hostGroups/HOST_GROUP_NAME,os-type=WINDOWS"
    --snapshot-directory=false

    מחליפים את VOLUME_NAME בשם ייחודי לכל אמצעי אחסון. במדריך הזה עם שני צמתים, צריך להריץ את הפקודה שמונה פעמים כדי ליצור נפחים לנתונים, ליומנים, ל-tempdb ולגיבויים לכל צומת (לדוגמה, sqlnode1-data,‏ sqlnode1-log,‏ sqlnode1-temp,‏ sqlnode1-backup,‏ sqlnode2-data,‏ sqlnode2-log,‏ sqlnode2-temp ו-sqlnode2-backup).

צירוף כרכים של iSCSI לכל מכונת VM של SQL

לכל מכונה וירטואלית (sqlnode1 ו-sqlnode2), מעלים את אמצעי האחסון שיצרתם עבור הצומת הספציפי הזה.

  1. נכנסים לדף Volumes במסוף Cloud de Confiance בקטע NetApp Volumes.

    לדף Volumes

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

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

    "10.165.128.216","10.165.128.217" | ForEach-Object { New-IscsiTargetPortal -TargetPortalAddress $_ }
    

  3. מריצים את הפקודה iscsicpl.exe כדי לפתוח את iSCSI Initiator Properties (מאפייני יוזם iSCSI).

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

  5. בתיבת הדו-שיח Connect to Target, בוחרים באפשרות Enable multi-path ולוחצים על Advanced.

  6. בתיבת הדו-שיח הגדרות מתקדמות:

    1. מתאם מקומי: בוחרים באפשרות Microsoft iSCSI Initiator.
    2. כתובת ה-IP של היוזם: בוחרים כתובת IP במכונה הווירטואלית.
    3. כתובת ה-IP של הפורטל היעד: בוחרים אחת מכתובות ה-IP של הפורטל שגיליתם.
    4. לוחצים על OK.
  7. בתיבת הדו-שיח Connect to Target (התחברות ל-Target), לוחצים על OK (אישור).

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

  9. כדי להגדיר MPIO למכשירי iSCSI, פותחים את MPIO Properties (מאפייני MPIO) מלוח הבקרה או מServer Manager (ניהול שרתים).

  10. לוחצים על הכרטיסייה גילוי נתיבים מרובים.

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

  12. אחרי ההפעלה מחדש, פותחים את Device Manager (ניהול המכשיר) ומרחיבים את Disk drives (כונני דיסק). דיסק ה-iSCSI מופיע כמכשיר מרובה נתיבים.

  13. פותחים את ניהול הדיסקים (compmgmt.msc). לכל דיסק חדש:

    1. מעבירים את הדיסק למצב אונליין.
    2. מאתחלים את הדיסק (GPT).
    3. יוצרים אמצעי אחסון חדש, מקצים אות כונן (לדוגמה, D לנתונים, E ליומנים, F לגיבויים, G ל-tempdb) ומפרמטים אותו באמצעות NTFS עם גודל יחידת הקצאה של 64K.
  14. יוצרים את מבנה הספריות עבור SQL Server בכוננים החדשים שפורמטו. לדוגמה:

    $paths = "D:\MSSQL\DATA","E:\MSSQL\Log","F:\MSSQL\Backup","G:\MSSQL\Temp"
    $paths | ForEach-Object { New-Item -ItemType Directory -Path $_ -Force }
    

הגדרת שרת SQL

מבצעים את השלבים האלה גם ב-sqlnode1 וגם ב-sqlnode2 אחרי שמפעילים את אמצעי האחסון שלהם.

  1. פותחים את SQL Server Configuration Manager.
  2. בחלונית הימנית, בוחרים באפשרות SQL Server Services.
  3. בחלונית הימנית, לוחצים לחיצה ימנית על SQL Server (MSSQLSERVER), בוחרים באפשרות Properties, עוברים לכרטיסייה Log On ומשנים את Account Name לחשבון השירות שלכם (DOMAIN\sqlsvc). מזינים את הסיסמה ולוחצים על אישור.
  4. חוזרים על השלב הקודם עבור SQL Server Agent (MSSQLSERVER).
  5. מתחברים למופע של SQL Server באמצעות SQL Server Management Studio‏ (SSMS) עם חשבון האדמין בדומיין.
  6. יוצרים פרטי כניסה לחשבון השירות ומעניקים לו את ההרשאות הנדרשות:
    USE [master];
    GO
    CREATE LOGIN [DOMAIN\sqlsvc] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english];
    GO
    ALTER SERVER ROLE [sysadmin] ADD MEMBER [DOMAIN\sqlsvc];
    GO
    
  7. מריצים את הסקריפט הבא ב-SSMS כדי להפנות מחדש את נתיבי ברירת המחדל של מסד הנתונים, היומן, הגיבוי ו-tempdb אל נפחי ה-iSCSI שהרכבתם:
    USE [master];
    GO
    EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'BackupDirectory', REG_SZ, N'F:\MSSQL\Backup';
    GO
    EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', REG_SZ, N'D:\MSSQL\DATA';
    GO
    EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog', REG_SZ, N'E:\MSSQL\Log';
    GO
    -- Modify model and msdb paths
    ALTER DATABASE model MODIFY FILE (NAME = modeldev, FILENAME = 'D:\MSSQL\DATA\model.mdf');
    ALTER DATABASE model MODIFY FILE (NAME = modellog, FILENAME = 'E:\MSSQL\Log\modellog.ldf');
    ALTER DATABASE msdb  MODIFY FILE (NAME = MSDBData, FILENAME = 'D:\MSSQL\DATA\MSDBData.mdf');
    ALTER DATABASE msdb  MODIFY FILE (NAME = MSDBLog,  FILENAME = 'E:\MSSQL\Log\MSDBLog.ldf');
    GO
    -- Modify tempdb paths
    ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'G:\MSSQL\Temp\tempdb.mdf');
    ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'G:\MSSQL\Temp\templog.ldf');
    GO
    
  8. עוצרים את השירות SQL Server (MSSQLSERVER).
  9. מעבירים את הקבצים הקיימים model, msdb ו-tempdb מהמיקומים הישנים שלהם (לדוגמה, C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA) למיקומים החדשים שלהם בכוננים D:, E: ו-G:.
  10. כדי להעביר את מסד הנתונים master ואת ERRORLOG:
    1. פותחים את SQL Server Configuration Manager.
    2. לוחצים לחיצה ימנית על SQL Server (MSSQLSERVER), בוחרים באפשרות Properties (מאפיינים) ועוברים לכרטיסייה Startup Parameters (פרמטרים של הפעלה).
    3. לכל פרמטר קיים -d, -e ו--l שמפנה לכונן C:, בוחרים אותו ולוחצים על הסרה.
    4. מוסיפים את הפרמטרים הבאים. לוחצים על הוספה אחרי כל פרמטר:
      • -dD:\MSSQL\DATA\master.mdf
      • -lE:\MSSQL\Log\mastlog.ldf
      • -eE:\MSSQL\Log\ERRORLOG
    5. לוחצים על OK.
    6. העברה ידנית של master.mdf ו-mastlog.ldf מ-C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA אל D:\MSSQL\DATA\` andE:\MSSQL\Log` בהתאמה.
    7. מעבירים את הקובץ ERRORLOG מהמיקום הישן שלו למיקום `E:\MSSQL\Log`.
  11. מפעילים את השירות SQL Server (MSSQLSERVER).

הגדרה של Windows Server Failover Clustering

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

הגדרת חומת האש של Windows

לפני שיוצרים את האשכול, מוודאים שחומת האש של Windows בכל צומת מאפשרת תעבורה של WSFC,‏ SQL Server ו-iSCSI.

ב-sqlnode1 וב-sqlnode2, פותחים את PowerShell כאדמין ומריצים את הפקודות הבאות:

New-NetFirewallRule -DisplayName 'Failover Clusters (UDP-In)' -Direction Inbound -Protocol UDP -LocalPort 3343 -Action Allow
New-NetFirewallRule -DisplayName 'Failover Clusters (TCP-In)' -Direction Inbound -Protocol TCP -LocalPort 3343 -Action Allow
New-NetFirewallRule -DisplayName 'RPC Endpoint Mapper' -Direction Inbound -Protocol TCP -LocalPort 135 -Action Allow
New-NetFirewallRule -DisplayName 'File and Printer Sharing (SMB-In)' -Direction Inbound -Protocol TCP -LocalPort 445 -Action Allow
New-NetFirewallRule -DisplayName 'Failover Cluster Manager RPC' -Direction Inbound -Protocol TCP -LocalPort 49152-65535 -Action Allow
New-NetFirewallRule -DisplayName 'iSCSI' -Direction Inbound -Protocol TCP -LocalPort 3260 -Action Allow
New-NetFirewallRule -DisplayName 'SQL Server' -Direction Inbound -Protocol TCP -LocalPort 1433 -Action Allow
New-NetFirewallRule -DisplayName 'SQL Server AG Endpoint' -Direction Inbound -Protocol TCP -LocalPort 5022 -Action Allow

יצירת האשכול

  1. ב-sqlnode1, פותחים את Failover Cluster Manager (cluadmin.msc).
  2. בקטע ניהול, בוחרים באפשרות אימות ההגדרה. פועלים לפי ההוראות באשף כדי לאמת את sqlnode1 ואת sqlnode2. לפני שממשיכים, צריך לוודא שכל הבדיקות עברו בהצלחה.
  3. אחרי האימות, לוחצים על יצירת אשכול.
  4. באשף ליצירת אשכול, מוסיפים את sqlnode1 ואת sqlnode2 כצמתים באשכול.
  5. בשדה Access Point for Administering the Cluster (נקודת גישה לניהול האשכול), מזינים Cluster Name (שם האשכול) (לדוגמה, sqlcluster) ומספקים כתובת IP סטטית לאשכול.
  6. פועלים לפי ההנחיות כדי ליצור את האשכול.

יצירת שיתוף קבצים לקוורום של האשכול

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

  1. מתחברים למכונה הווירטואלית שבה רוצים להשתמש כעדות לשיתוף קבצים.
  2. בחלון Server Manager, בוחרים באפשרות Tools (כלים) > Computer Management (ניהול המחשב).
  3. מרחיבים את System Tools (כלי מערכת) > Shared Folders (תיקיות משותפות), לוחצים לחיצה ימנית על Shares (שיתופים) ובוחרים באפשרות New Share (שיתוף חדש).
  4. פועלים לפי ההוראות באשף ליצירת תיקייה משותפת. בדף Folder Path, עוברים לתיקייה של השיתוף או יוצרים תיקייה חדשה.
  5. בדף הרשאות, בוחרים באפשרות התאמה אישית של ההרשאות.
  6. לוחצים על Add (הוספה) ומעניקים Full control (שליטה מלאה) לחשבון של אובייקט שם האשכול (CNO) (לדוגמה, sqlcluster$).
  7. משלימים את הפעולות באשף כדי ליצור את השיתוף.

הגדרת קוורום באשכול

  1. ב-sqlnode1, פותחים את Failover Cluster Manager.
  2. לוחצים לחיצה ימנית על שם האשכול ובוחרים באפשרות פעולות נוספות > הגדרת קוורום באשכול.
  3. באשף Configure Cluster Quorum (הגדרת קוורום של אשכול), לוחצים על Next (הבא).
  4. בדף Select Quorum Configuration Option, בוחרים באפשרות Select the quorum witness ולוחצים על Next.
  5. בדף Select Quorum Witness, בוחרים באפשרות Configure a file share witness ולוחצים על Next.
  6. בשדה File Share Path (נתיב לשיתוף קבצים), מזינים את הנתיב לשיתוף שיצרתם (לדוגמה, \\witness-server\quorum) ולוחצים על Next (הבא).
  7. מאשרים את ההגדרות ולוחצים על הבא ואז על סיום.

הגדרת קבוצות זמינות של Always On

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

הפעלת קבוצות זמינות ב-SQL Server

  1. פותחים את SQL Server Configuration Manager.
  2. בעץ הדפדפן, בוחרים באפשרות SQL Server Services.
  3. לוחצים לחיצה ימנית על SQL Server (MSSQLSERVER) ואז בוחרים באפשרות Properties (מאפיינים).
  4. לוחצים על הכרטיסייה זמינות גבוהה של Always On ובוחרים באפשרות הפעלת קבוצות זמינות של Always On.
  5. לוחצים על אישור ואז על אישור. מפעילים מחדש את שירות SQL Server.

יצירת מסד נתונים לקבוצת הזמינות

  1. מתחברים אל sqlnode1 באמצעות SSMS.
  2. בחלונית Object Explorer (סייר האובייקטים), לוחצים לחיצה ימנית על Databases (מסדי נתונים) ובוחרים באפשרות New Database (מסד נתונים חדש).
  3. מזינים MyDB1 בשדה שם מסד הנתונים ולוחצים על אישור.
  4. לוחצים לחיצה ימנית על MyDB1, בוחרים באפשרות Tasks (משימות) > Back Up (גיבוי). מבצעים גיבוי מלא. מוודאים שמודל השחזור של מסד הנתונים הוא Full.
  5. לוחצים לחיצה ימנית על MyDB1, בוחרים באפשרות Tasks (משימות) > Back Up (גיבוי). מבצעים גיבוי של יומן הטרנזקציות.
  6. מעתיקים את קובצי הגיבוי של יומן הפעילות המלא ויומן הפעילות של העסקאות אל sqlnode2.
  7. מתחברים אל sqlnode2 באמצעות SSMS. לוחצים לחיצה ימנית על Databases (מסדי נתונים) ובוחרים באפשרות Restore Database (שחזור מסד נתונים).
  8. משחזרים את הגיבוי המלא של MyDB1 מ-sqlnode1, ומציינים RESTORE WITH NORECOVERY בדף Options.
  9. לוחצים לחיצה ימנית על MyDB1 ב-sqlnode2, בוחרים באפשרות משימות > שחזור > יומן עסקאות. משחזרים את הגיבוי של יומן הטרנזקציות, ומציינים גם RESTORE WITH NORECOVERY.

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

  1. מתחברים אל sqlnode1 באמצעות SSMS.
  2. ב-Object Explorer, לוחצים לחיצה ימנית על Always On High Availability ובוחרים באפשרות New Availability Group Wizard.
  3. מציינים שם של קבוצת זמינות, למשל sql-ag.
  4. בוחרים את מסד הנתונים שרוצים לכלול, MyDB1.
  5. בדף Specify Replicas (ציון רפליקות), לוחצים על Add Replica (הוספת רפליקה) ומתחברים אל sqlnode2.
  6. מפעילים את האפשרות Automatic Failover (מעבר אוטומטי לגיבוי) בשני העותקים, מגדירים את Availability Mode (מצב זמינות) לSynchronous commit (אישור סינכרוני) ואת Readable Secondary (משני שניתן לקריאה) לYes (כן).
  7. עוברים לכרטיסייה Endpoints ומוודאים שהיציאה 5022 נמצאת בשימוש.
  8. בדף Select Initial Data Synchronization (בחירת סנכרון נתונים ראשוני), בוחרים באפשרות Join only (הצטרפות בלבד).
  9. מבצעים את הפעולות באשף כדי ליצור את קבוצת הזמינות.

יצירת משאב DNN לקבוצת הזמינות

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

  1. פותחים את Failover Cluster Manager, מרחיבים את Roles ובוחרים את התפקיד של קבוצת הזמינות.
  2. במשאבים, לוחצים לחיצה ימנית על משאב קבוצת הזמינות ובוחרים באפשרות הוספת משאב > נקודת גישה ללקוח.
  3. מזינים שם למאזין של ה-DNN ומשלימים את האשף.
  4. מעלים את משאב ה-DNN החדש לאונליין.
  5. כברירת מחדל, האשכול קושר את שם ה-DNS של ה-DNN לכל הצמתים באשכול. אם יש לכם צמתים באשכול שלא מארחים רפליקות של SQL Server, אתם צריכים להחריג אותם מבעלי האפשרות של ה-DNN:
    1. לוחצים לחיצה ימנית על משאב ה-DNN שיצרתם ובוחרים באפשרות Properties (מאפיינים).
    2. מבטלים את הסימון של התיבות לצד כל הצמתים שלא משמשים כרפליקות של קבוצת הזמינות.
    3. לוחצים על OK.
  6. מעדכנים את מחרוזות החיבור של האפליקציה כדי להתחבר לשם של מאזין ה-DNN וכוללים את MultiSubnetFailover=True.

בדיקת מעבר לגיבוי (failover)

  1. מתחברים אל sqlnode1 או אל sqlnode2 באמצעות SSMS ומריצים את השאילתה הבאה כדי לבדוק איזו רפליקה היא ראשית ולוודא ששתי הרפליקות מוגדרות לביצוע סינכרוני של פעולות (synchronous commit) ולמעבר אוטומטי לגיבוי (automatic failover):

    -- Check primary replica
    SELECT ag.name AS AG_Name, ar.replica_server_name as PrimaryReplica
    FROM sys.dm_hadr_availability_replica_states AS ars
    JOIN sys.availability_groups AS ag ON ag.group_id = ars.group_id
    JOIN sys.availability_replicas ar ON ar.replica_id = ars.replica_id
    WHERE ars.role_desc = 'PRIMARY';

    -- Check replica configuration SELECT replica_server_name, availability_mode_desc, failover_mode_desc FROM sys.availability_replicas WHERE group_id = (SELECT group_id FROM sys.availability_groups WHERE name = N'sql-ag');

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

    ALTER AVAILABILITY GROUP [sql-ag] FAILOVER;
    

  3. אחרי המעבר לגיבוי, מאמתים את השרת הראשי החדש על ידי הפעלת הפקודה SELECT @@SERVERNAME; או על ידי התחברות מחדש למאזין של DNN ובדיקת שם השרת.

  4. אפשר גם ללחוץ לחיצה ימנית על קבוצת הזמינות בקטע Always On High Availability (זמינות גבוהה של Always On) ולבחור באפשרות Show Dashboard (הצגת לוח הבקרה).

הסרת המשאבים

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

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