במדריך הזה מוסבר איך לפרוס קבוצת זמינות של Microsoft SQL Server Always On במכונות וירטואליות (VM) של Compute Engine באמצעות אחסון בלוקים של Google Cloud NetApp Volumes עם פרוטוקול Internet Small Computer System Interface (iSCSI). שימוש ב-NetApp Volumes לאחסון של SQL Server מספק גישה לשירות אחסון מנוהל במלואו עם ביצועים גבוהים ותכונות מתקדמות לניהול נתונים, כמו תמונות מצב ושיבוט.
מטרות
במדריך הזה מוסבר איך לבצע את הפעולות הבאות:עלויות
במדריך הזה השתמשנו ברכיבים הבאים של 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.
- Google Cloud פרויקט עם הרשאות אדמין ל-Compute Engine, לרשת, לניהול זהויות והרשאות גישה ול-Cloud Storage.
- רשת VPC עם תת-רשת באזור היעד.
- שירותי Active Directory ו-DNS שהוגדרו באזור.
- משתמש ב-Active Directory עם הרשאות לצירוף מחשבים לדומיין ולגישה למכונות וירטואליות באמצעות RDP.
- מוודאים שכללי חומת האש של ה-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).
- מפעילים את NetApp Volumes API.
-
In the Google Cloud console, activate 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:נכנסים לדף Create an instance במסוף Google Cloud .
בשדה Name (שם), מזינים
sqlnode1.בקטע Machine configuration (הגדרת המכונה), בוחרים באפשרות General Purpose (למטרות כלליות) ומבצעים את הפעולות הבאות:
- ברשימה Series בוחרים באפשרות N4.
- ברשימה Machine type (סוג המכונה), בוחרים באפשרות n4-highmem-8 (8vCPU, 64 GB memory) (8vCPU, זיכרון 64GB).
בוחרים את האזור והתחום שבהם הגדרתם את ה-VPC.
בקטע Boot disk (דיסק אתחול), לוחצים על Change (שינוי) ומבצעים את הפעולות הבאות:
- בכרטיסייה תמונות ציבוריות, בוחרים באפשרות SQL Server on Windows Server (שרת SQL ב-Windows Server) מהרשימה מערכת הפעלה.
- ברשימה Version (גרסה), בוחרים באפשרות SQL Server 2022 Enterprise on Windows Server 2025 Datacenter (SQL Server 2022 Enterprise ב-Windows Server 2025 Datacenter).
- ברשימה סוג דיסק אתחול בוחרים באפשרות Hyperdisk Balanced.
- מגדירים את Size (GB) לערך
50. - כדי לשמור את ההגדרה של דיסק האתחול, לוחצים על Select.
מרחיבים את הקטע אפשרויות מתקדמות ואז את הקטע רשת.
בקטע ממשקי רשת, בוחרים את ה-VPC ואת רשת המשנה של הפרויקט.
ברשימה סוג כרטיס ממשק רשת, בוחרים באפשרות gVNIC.
בקטע Network Service Tier, בוחרים באפשרות Premium.
לוחצים על יצירה.
חוזרים על השלבים האלה כדי ליצור מופע שני בשם
sqlnode2.
הצטרפות לשרתים בדומיין והכנה לאשכול
מבצעים את השלבים הבאים גם ב-
sqlnode1וגם ב-sqlnode2:- מתחברים ל-VM באמצעות חשבון אדמין מקומי.
- ב-Server Manager (ניהול השרת), בוחרים באפשרות Local Server (שרת מקומי).
- לוחצים על הקישור קבוצת עבודה.
- בקטע שם המחשב, בוחרים באפשרות שינוי.
- מסמנים את התיבה דומיין, מזינים את שם הדומיין (לדוגמה,
cvsdemo.internal) ולוחצים על אישור. - בתיבת הדו-שיח Windows Security, מזינים את פרטי הכניסה לחשבון האדמין בדומיין ולוחצים על OK.
- כשמופיעה הודעת הפתיחה של הדומיין, מבצעים את השלבים הבאים: א. לוחצים על אישור. ב. לוחצים על סגירה ובוחרים באפשרות הפעלה מחדש עכשיו.
- אחרי שהמכונה הווירטואלית מופעלת מחדש, מתחברים אליה באמצעות חשבון האדמין של הדומיין.
- מוסיפים את חשבון
DOMAIN\sqlsvcלקבוצת האדמינים המקומית במכונה הווירטואלית. אפשר להשתמש בפקודת PowerShell הבאה:Add-LocalGroupMember -Group "Administrators" -Member "DOMAIN\sqlsvc"
פותחים את 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
כדי לקבל את השם המוסמך של 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: מזהה הפרויקט ב- Google Cloud . -
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 לכל מכונת SQL וירטואלית
לכל מכונה וירטואלית (
sqlnode1ו-sqlnode2), צריך לצרף את אמצעי האחסון שיצרתם לצומת הספציפי הזה.נכנסים לדף Volumes במסוף Google Cloud של NetApp Volumes.
בוחרים נפח אחסון שהוקצה לצומת שמגדירים. שימו לב לכתובות ה-IP של פורטל היעד שמופיעות בקטע פרטי היעד של iSCSI. תצטרכו את הכתובות האלה כדי להתחבר לנפח.
במכונה הווירטואלית, פותחים את PowerShell כאדמין ומריצים את הפקודה הבאה. מחליפים את כתובות ה-IP לדוגמה בכתובות ה-IP של פורטל היעד עבור הנפח שלכם:
"10.165.128.216","10.165.128.217" | ForEach-Object { New-IscsiTargetPortal -TargetPortalAddress $_ }מריצים את הפקודה
iscsicpl.exeכדי לפתוח את iSCSI Initiator Properties (מאפייני יוזם iSCSI).עוברים לכרטיסייה יעדים, בוחרים אחד מהיעדים של נפח המכירות מהרשימה ולוחצים על קישור.
בתיבת הדו-שיח Connect to Target, בוחרים באפשרות Enable multi-path ולוחצים על Advanced.
בתיבת הדו-שיח הגדרות מתקדמות:
- מתאם מקומי: בוחרים באפשרות Microsoft iSCSI Initiator.
- כתובת ה-IP של היוזם: בוחרים כתובת IP במכונה הווירטואלית.
- כתובת ה-IP של הפורטל היעד: בוחרים אחת מכתובות ה-IP של הפורטל שגיליתם.
- לוחצים על OK.
בתיבת הדו-שיח Connect to Target (התחברות ל-Target), לוחצים על OK (אישור).
חוזרים על שלבי החיבור לכל היעדים שמשויכים למכונה הווירטואלית.
כדי להגדיר MPIO למכשירי iSCSI, פותחים את MPIO Properties (מאפייני MPIO) מתוך Control Panel (לוח הבקרה) או Server Manager (ניהול שרתים).
לוחצים על הכרטיסייה גילוי נתיבים מרובים.
בוחרים באפשרות הוספת תמיכה במכשירי iSCSI ולוחצים על הוספה. אם מופיעה בקשה, מפעילים מחדש את ה-VM.
אחרי ההפעלה מחדש, פותחים את Device Manager (ניהול מכשירים) ומרחיבים את Disk drives (כונני דיסקים). דיסק ה-iSCSI מופיע כמכשיר עם כמה נתיבים.
פותחים את ניהול הדיסקים (
compmgmt.msc). לכל דיסק חדש:- מעבירים את הדיסק למצב אונליין.
- מאתחלים את הדיסק (GPT).
- יוצרים אמצעי אחסון חדש, מקצים אות כונן (לדוגמה, D לנתונים, E ליומנים, F לגיבויים, G ל-tempdb) ומפרמטים אותו באמצעות NTFS עם גודל יחידת הקצאה של 64K.
יוצרים את מבנה הספריות עבור 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 Server
מבצעים את השלבים האלה גם ב-
sqlnode1וגם ב-sqlnode2אחרי שמפעילים את אמצעי האחסון שלהם.- פותחים את SQL Server Configuration Manager.
- בחלונית הימנית, בוחרים באפשרות SQL Server Services (שירותי SQL Server).
- בחלונית הימנית, לוחצים לחיצה ימנית על SQL Server (MSSQLSERVER), בוחרים באפשרות Properties, עוברים לכרטיסייה Log On ומשנים את Account Name לחשבון השירות שלכם (DOMAIN\sqlsvc). מזינים את הסיסמה ולוחצים על אישור.
- חוזרים על השלב הקודם עבור SQL Server Agent (MSSQLSERVER).
- מתחברים למופע של SQL Server באמצעות SQL Server Management Studio (SSMS) עם חשבון האדמין בדומיין.
- יוצרים פרטי כניסה לחשבון השירות ומעניקים לו את ההרשאות הנדרשות:
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
- מריצים את הסקריפט הבא ב-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
- עוצרים את השירות SQL Server (MSSQLSERVER).
- מעבירים את הקבצים הקיימים
model,msdbו-tempdbמהמיקומים הישנים שלהם (לדוגמה,C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA) למיקומים החדשים שלהם בכוננים D:, E: ו-G:. - כדי להעביר את מסד הנתונים
masterואתERRORLOG:- פותחים את SQL Server Configuration Manager.
- לוחצים לחיצה ימנית על SQL Server (MSSQLSERVER), בוחרים באפשרות Properties (מאפיינים) ועוברים לכרטיסייה Startup Parameters (פרמטרים של הפעלה).
- לכל פרמטר קיים
-d,-eו--lשמפנה לכונן C:, בוחרים אותו ולוחצים על הסרה. - מוסיפים את הפרמטרים הבאים. לוחצים על הוספה אחרי כל פרמטר:
-dD:\MSSQL\DATA\master.mdf-lE:\MSSQL\Log\mastlog.ldf-eE:\MSSQL\Log\ERRORLOG
- לוחצים על OK.
- העברה ידנית של
master.mdfו-mastlog.ldfמ-C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATAאלD:\MSSQL\DATA\` andE:\MSSQL\Log` בהתאמה. - מעבירים את הקובץ
ERRORLOGמהמיקום הישן שלו למיקום `E:\MSSQL\Log`.
- מפעילים את השירות 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
יצירת האשכול
- ב-
sqlnode1, פותחים את Failover Cluster Manager (cluadmin.msc). - בקטע ניהול, בוחרים באפשרות אימות ההגדרה. פועלים לפי ההוראות באשף כדי לאמת את
sqlnode1ואתsqlnode2. לפני שממשיכים, צריך לוודא שכל הבדיקות עברו בהצלחה. - אחרי האימות, לוחצים על יצירת אשכול.
- באשף ליצירת אשכול, מוסיפים את
sqlnode1ואתsqlnode2כצמתים באשכול. - בשדה Access Point for Administering the Cluster (נקודת גישה לניהול האשכול), מזינים Cluster Name (שם האשכול) (לדוגמה,
sqlcluster) ומספקים כתובת IP סטטית לאשכול. - פועלים לפי ההנחיות כדי ליצור את האשכול.
יצירת שיתוף קבצים לקוורום של האשכול
מומלץ ליצור שיתוף קבצים במכונה וירטואלית שלישית, רצוי באזור אחר, כדי שתשמש כעד להשגת קוורום באשכול.
- מתחברים ל-VM שבה רוצים להשתמש כעדות לשיתוף קבצים.
- בחלון Server Manager (ניהול שרתים), בוחרים באפשרות Tools (כלים) > Computer Management (ניהול מחשב).
- מרחיבים את System Tools (כלי מערכת) > Shared Folders (תיקיות משותפות), לוחצים לחיצה ימנית על Shares (שיתופים) ובוחרים באפשרות New Share (שיתוף חדש).
- פועלים לפי ההוראות באשף ליצירת תיקייה משותפת. בדף Folder Path (נתיב התיקייה), עוברים לתיקייה שרוצים לשתף או יוצרים תיקייה חדשה.
- בדף הרשאות, בוחרים באפשרות התאמה אישית של הרשאות.
- לוחצים על Add (הוספה) ומעניקים Full control (שליטה מלאה) לחשבון של אובייקט שם האשכול (CNO) (לדוגמה,
sqlcluster$). - משלימים את הפעולות באשף כדי ליצור את השיתוף.
הגדרת קוורום באשכול
- ב-
sqlnode1, פותחים את Failover Cluster Manager. - לוחצים לחיצה ימנית על שם האשכול ובוחרים באפשרות פעולות נוספות > הגדרת קוורום באשכול.
- באשף Configure Cluster Quorum, לוחצים על Next.
- בדף Select Quorum Configuration Option, בוחרים באפשרות Select the quorum witness ולוחצים על Next.
- בדף Select Quorum Witness, בוחרים באפשרות Configure a file share witness ולוחצים על Next.
- בשדה File Share Path (נתיב לשיתוף קבצים), מזינים את הנתיב לשיתוף שיצרתם (לדוגמה,
\\witness-server\quorum) ולוחצים על Next (הבא). - מאשרים את ההגדרות ולוחצים על הבא ואז על סיום.
הגדרת קבוצות זמינות של Always On
מבצעים את השלבים שבקטע הזה בשתי מכונות ה-VM של SQL Server כדי להפעיל ולהגדיר את קבוצת הזמינות.
הפעלת קבוצות זמינות ב-SQL Server
- פותחים את SQL Server Configuration Manager.
- בעץ הדפדפן, בוחרים באפשרות SQL Server Services.
- לוחצים לחיצה ימנית על SQL Server (MSSQLSERVER) ואז בוחרים באפשרות Properties (מאפיינים).
- לוחצים על הכרטיסייה זמינות גבוהה של Always On ובוחרים באפשרות הפעלת קבוצות זמינות של Always On.
- לוחצים על אישור ואז על אישור. מפעילים מחדש את שירות SQL Server.
יצירת מסד נתונים לקבוצת הזמינות
- מתחברים אל
sqlnode1באמצעות SSMS. - בחלונית Object Explorer (סייר האובייקטים), לוחצים לחיצה ימנית על Databases (מסדי נתונים) ובוחרים באפשרות New Database (מסד נתונים חדש).
- מזינים
MyDB1בשדה שם מסד הנתונים ולוחצים על אישור. - לוחצים לחיצה ימנית על
MyDB1, בוחרים באפשרות Tasks (משימות) > Back Up (גיבוי). מבצעים גיבוי מלא. מוודאים שמודל השחזור של מסד הנתונים הוא Full. - לוחצים לחיצה ימנית על
MyDB1, בוחרים באפשרות Tasks (משימות) > Back Up (גיבוי). מבצעים גיבוי של יומן הטרנזקציות. - מעתיקים את קובצי הגיבוי של יומן העסקאות המלא אל
sqlnode2. - מתחברים אל
sqlnode2באמצעות SSMS. לוחצים לחיצה ימנית על Databases (מסדי נתונים) ובוחרים באפשרות Restore Database (שחזור מסד נתונים). - משחזרים את הגיבוי המלא של
MyDB1מ-sqlnode1, ומציינים RESTORE WITH NORECOVERY בדף Options. - לוחצים לחיצה ימנית על
MyDB1ב-sqlnode2, בוחרים באפשרות משימות > שחזור > יומן עסקאות. משחזרים את הגיבוי של יומן הטרנזקציות, ומציינים גם RESTORE WITH NORECOVERY.
יצירת קבוצת הזמינות
- מתחברים אל
sqlnode1באמצעות SSMS. - ב-Object Explorer, לוחצים לחיצה ימנית על Always On High Availability ובוחרים באפשרות New Availability Group Wizard.
- מציינים שם של קבוצת זמינות, למשל
sql-ag. - בוחרים את מסד הנתונים שרוצים לכלול
MyDB1. - בדף Specify Replicas (ציון רפליקות), לוחצים על Add Replica (הוספת רפליקה) ומתחברים אל
sqlnode2. - מפעילים את האפשרות Automatic Failover (מעבר אוטומטי לגיבוי) בשני העותקים, מגדירים את Availability Mode (מצב זמינות) לערך Synchronous commit (אישור סינכרוני) ואת Readable Secondary (משני שניתן לקריאה) לערך Yes (כן).
- עוברים לכרטיסייה נקודות קצה ומוודאים שהיציאה
5022נמצאת בשימוש. - בדף Select Initial Data Synchronization (בחירת סנכרון נתונים ראשוני), בוחרים באפשרות Join only (הצטרפות בלבד).
- מבצעים את הפעולות באשף כדי ליצור את קבוצת הזמינות.
יצירת משאב DNN לקבוצת הזמינות
במקום מאזן עומסים, משתמשים בשם רשת מבוזר (DNN) כדי לנתב את תנועת הלקוחות למאזין של קבוצת הזמינות.
- פותחים את Failover Cluster Manager, מרחיבים את Roles ובוחרים את התפקיד של קבוצת הזמינות.
- בקטע Resources, לוחצים לחיצה ימנית על משאב קבוצת הזמינות ובוחרים באפשרות Add Resource (הוספת משאב) > Client Access Point (נקודת גישה ללקוח).
- מזינים שם למאזין של ה-DNN ומשלימים את הפעולות באשף.
- העברת משאב ה-DNN החדש למצב אונליין.
- כברירת מחדל, האשכול קושר את שם ה-DNS של ה-DNN לכל הצמתים באשכול. אם יש לכם צמתים באשכול שלא מארחים רפליקות של SQL Server, אתם צריכים להחריג אותם מבעלי ה-DNN האפשריים:
- לוחצים לחיצה ימנית על משאב ה-DNN שיצרתם ובוחרים באפשרות Properties (מאפיינים).
- מבטלים את הסימון של התיבות לצד כל הצמתים שלא משמשים כרפליקות של קבוצת הזמינות.
- לוחצים על OK.
- מעדכנים את מחרוזות החיבור של האפליקציה כדי להתחבר לשם של מאזין ה-DNN וכוללים את
MultiSubnetFailover=True.
בדיקת מעבר לגיבוי (failover)
מתחברים אל
sqlnode1או אלsqlnode2באמצעות SSMS ומריצים את השאילתה הבאה כדי לבדוק איזו רפליקה היא ראשית ולוודא ששתי הרפליקות מוגדרות לביצוע סינכרוני של פעולות אישור (commit) ולמעבר אוטומטי לגיבוי במקרה של כשל:-- 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');
כדי להפעיל מעבר ידני לגיבוי, מתחברים לעותק המשני ב-SSMS ומריצים את הפקודה:
ALTER AVAILABILITY GROUP [sql-ag] FAILOVER;
אחרי המעבר לגיבוי, מאמתים את השרת הראשי החדש על ידי הפעלת הפקודה
SELECT @@SERVERNAME;או על ידי התחברות מחדש למאזין DNN ובדיקת שם השרת.אפשר גם ללחוץ לחיצה ימנית על קבוצת הזמינות בקטע Always On High Availability (זמינות גבוהה של Always On) ולבחור באפשרות Show Dashboard (הצגת לוח הבקרה).
הסרת המשאבים
מחיקת הפרויקט
כדי להימנע מחיובים ב Google Cloud פרויקט על המשאבים שבהם השתמשתם במדריך הזה, אתם יכולים למחוק את הפרויקט. מידע נוסף זמין במאמר בנושא סגירת פרויקטים.