בכל מקרה בשלב הסופי לפני קבלת ההחלטות, תמיד מומלץ לפנות למסמכים הרשמיים של מיקרוסופט, או לקבל תמיכה בנושא מ"מנהל חשבון טכני של מיקרוסופט" שזה התפקיד והמומחיות שלו - Microsoft Technical Account Manager (TAM).
עדכונים לפוסט: אני מתחיל את הכתיבה כתשובה לשאלה אשר נשאלה בפורום ובילבול שעלה בדיון כרגע. עם הזמן אני מתקל בשאלות רבות הנושא ואני אנסה לעדכן את הפוסט עם פרטים נוספים בהתאם לשאלות שחוסזרות על עצמן ולא מקבלות מענה מספק.
- גרסה מקורית פורסמה בתאריך 2021-08-07
- עדכון מסיבי של המסמך בוצע בתאריך 2021-10-31
- הגרסה הנוכחית עודכנה בתאריך 2022-03-09
כללי
שרתי SQL Server מוצעים במספר מהדורות (edition) שונות כדי להתאים את הדרישות הייחודיות, הביצועים והמחיר לארגונים וליחידים.
למשל מהודרת Enterprise אידיאלית עבור יישומים הדורשים ביצועים קריטיים בזיכרון, אבטחה וזמינות גבוהה, והמהדורה הסטנדרטית מספקת יכולות מסד נתונים מלאות עבור יישומים בינוניים. עם זה ההבדלים הרבה יותר גדולים ממשפט אחד וקצרה היריעה בפוסט זה לפרט את כל ההבדלים. לצורך זה תוכל לצפות בקישור הבא. המהדורות מוצעות במודל מידרגי כאשר כל מהודרה מתקדמת יותר כוללת בעקרון את כל היכולות של המהדורה הנמוכה יותר.
רשיונות לשרתים תלויים בגרסה ובמהדורה שבה בוחרים.
אפשרויות רכישה של רשיונות
יש כמה עשרות אפשרויות שונות לרכישה של רשיונות מיקרוסופט, אשר נבדלות מאוד זו מזו בפרמטרים רבים כמו למשל האופן בו הרכישה של הרשיון תבוצע (Retail, Volume licensing programs, Third party), מהות המשתמש ברשיון (עסק עם פחות מ 5 משתמשים, פרטנר של מיקרוסופט, מנוי של MSDN ועוד), אופן השימוש ברשיון (לפיתוח, ללימוד, לשרתים חיים..), התכונות בהם משתמשים (למשל לNode של Big Data Clusters יש רשיון מיוחד ולא צריך רשיון מלא רגיל) וכמובן סוג המהדורה של השרת וגרסת השרת.
בין האפשרויות לרכישה של רשיונות ניתן למצוא למשל:
- Visual Studio Subscription (formally MSDN subscription)
- full packaged product (FPP)
- Original Equipment Manufacturers (OEMs) offering pre-installed licenses with their hardware systems
- Licensing Solutions Partners (LSPs)
- Enterprise Software Advisors (ESAs)
- Cloud Server Provider (CSP) - למשל רשיונות של שרתי SQL על מכונות וירטואליות ב Azure
- Microsoft Products and Services Agreement (MPSA)
- ועוד...
מודלים שונים לרישיון
מודל רשיון מגדיר את אופן השימוש ברשיון - ניתן להתייחס לזה כ"סוג רשיון" במובן כלשהו.
Server + CAL - רשיון לפי משתמשים
המושג CAL הוא ראשי תיבות של Client Access Licence והכוונה לרשיון לפי משתמשים. עם זה צריך לזכור שכדי להשתמש ברשיונות משתמשים אנחנו חייבים גם לרכוש רשיון אחד לשרת ולכן המודל נקרא Server+CAL
ההגדרה של משתמש מבחינת הרשיון זה אדם מסויים או על התקן מסוים.
דוגמה: אם כל העבודה שלנו נעשית פנימית בתוך החברה על ידי 2 אנשים אז אפשר לרכוש רשיון שרת אחד ועוד שני רשיונות CAL (רשיון אחד עבור כל אחד מהאנשים).
דוגמה: אם יש לנו אפליקציה שמתחברת לשרת וכל העבודה נעשית דרכה, אז מבחינת הרשיון מדובר במשתמש אחד (האפליקציה היא המשתמש). לכן אפשר לרכוש רשיון שרת ועוד רשיון משתמש אחד לאפליקציה.
core-based licensing - רשיון עבור ליבה של מעבד, ללא מגבלה של מספר משתמשים.
שימו לב להבדל בין מעבד לבין ליבה! הרשיון הוא לא למעבד, אלא לפי מספר הליבות שיש במעבדים.
דוגמה: קבלת החלטה לגבי רשיון מתאים למחשב נייד
ברוב המחשבים הניידים למשל יש רק מעבד אחד אבל מספר ליבות. מה גם שברוב המחשבים הניידים משתמש רק אדם אחד. לכן בדרך כלל אם אתם משתמשים במחשב נייד לצרכים שלכם וגרסת Standard מספיקה לכם, אז זול יותר רשיון לפי CAL. מצד שני לא קיים רשיון מסוג CAL עבור מהדורת Enterprise בשרתי SQL בגרסת 2019 ולכן אין הרבה ברירה. מצד שלישי, מי משתמש במחשב נייד כשרת?!? זה לא הגיוני ויש רשיונות בחינם עבור מהדורת Developer אטשר מאפשרת את כל התכונות שיש במהדורה Enterprise לשימוש עבור הפיתוח.
גרסאות, עדכונים ושדרוגים - רשיונות יכולים להיות שונים בין גרסאות!
מכיוון שרשיונות תלויי גרסה, כדאי להבין מעט לגבי עדכונים ושדרוגים שמיקרוסופט מספקת.
עדכוני גרסה
כמו כל תוכנה המתפתח עם הזמן, מיקרוסופט משחחרת כל הזמן עדכונים לתוכנת שרתי ה SQL. עדכונים אלו יכולים להיות עדכוני אבטחה, תיקונים לבאגים אשר נמצאו ואפילו שיפורים קטנים למוצר הקיים. עדכונים אלו הם קבצים קבצים קטנים המסופקים למשתמשים בחינם, וניתן להוריד אותם ישירות מהאתר של מיקרוסופט.
ישנם שלושה סוגי עדכונים לגרסה:
- hotfix: מדובר בעדכון אשר נועד לתקן בעיה ספצית דחופה, בעיקר בתחום האבטחה. אחת הבעיות בעדכונים אלו זה שהם מנותקים זה מזה ולא נבדקו כחבילה אחת. בדרך כלל לא מומלץ להתקין אותם אם אין לכם צורך. למשל עדכון hotfix שקשור לתכונה שאתם בכלל לא התקנתם ברת, מיותר לחלוטין מבחינתכם.
- cumulative update: מדובר בחבילה של עדכונים שונים כמו מספר Hotfix, אשר קובצו ביחד ונבדקו כיחידה אחת.
- service pack: מדובר בחבילה מסודרת של על העדכונים עד כה אשר נבדקו ביחד כחבילה אחת. בדרך כלל כולל עדכונים ממספר cumulative update ומפורסם בתכיפות נמוכה יותר. ה service pack מהווה גם baseline רשמי לתמיכה של מיקרוסופט. ז"א אם תבקשו תמיכה אז תתבקשו לספק את גרסת ההשרת שלכם כולל איזה SP מותקן.
שימו לב, שלא אחת עדכונים יצרו בעיות חדשות, אשר הכריחו התקנה של תיקון לעדכון או חזרה לגרסה קודמת.
התקנה של עדכונים היא במובן מסוים שדרוג הגרסה של השרת לכל דבר ועניין. כך למשל אם אם תבדקו מה הגרסה של שרת SQL 2019 לפני התקנת עדכוני ה CU אז תקבלו גרסת 15.0.2000.5, ולאחר התקנת CU13 שאר שוחרר באוקטובר 2021, הגרסה תשתנה ל 15.0.4178.1. לאחר התקנת העדכונים הגרסה המרכזית של השרת אינה משתנה - גרסת SQL Server 2019 היא גרסה 15 והתקנת העדכונים קובע את תת-הגרסה.
ניתן לראות בעדכוני גרסה כשדרוג לתת-גרסה חדשה.
עדכוני גרסה בדרך כלל לא משפיעים על הרשיון.
שדרוג גרסה
פעם בשנה או מספר שנים, מיקרוסופט משחרר גרסה חדשה של המוצר. בניגוד לעדכונים של גרסה, הרי שגרסה חדשה כוללת לא רק תיקונים של הקיים, אלא גם הוספה של תכונות חדשות ושיפור של תכונות קיימות. שדרוג גרסה ההיא פעולה של שינוי גרסת השרת לגרסה חדשה יותר.
הערה: אני ממליץ בחום לא לבצע שדרוגי גרסה ולנצל את הרצון לעבור לגרסה חדשה יותר, כדי להתקין מכונה חדשה ולארגן את המערכת תוך ניצול הידע שצברתם במשך השנים על מנת לשפר את המערכת.
עדכוני גרסה בדרך כלל סאים גם עם עדכון רשיון !
מהדורות
אם גרסת השרת מהווה סממן לזמן שחרור התוכנה או העדכונים של התוכנה, הרי שבכל גרסה שיוצאת מיקרוסופט משחררים מספר מהדורות שונות. מהדורה היא תת-גרסה של התוכנה, אבל במקום להיבדל בשל תאריך השחרור שלה או בעדכונים הכלולים בה, מהדורה מתבדלת על פי רכיבי התוכנה (התכונות) הכלולות בה, הביצועים, המחיר כמובן, ותנאי השימוש.
שרתי SQL מגיעים במספר מהדורות שונות כגון:
- Enterprise
- Standard
- Web
- Developer
- Express
בקישור הבא אפשר לראות השווה של התכונות השונות הנתמכות בכל אחת מהמהדורות:
https://docs.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-version-15
רשיונות נקבעים בצורה ישירה לפי המהדורה של השרת!
"license key" vs "product key" vs "licenses"
סוף סוף אפשר לקבץ ביחד את המידע מהסעיפים הקודמים ולהבין משהו אשר תמיד מבלבל משתמשים ומעלה שאלות רבות בפורומים.
מה זה license key ומה זה product key והאם התקנה של הרשיון (licenses) של השרת נעשית על ידי הכנסת ה license key המתאים?
נתחיל משני המושגים הראשונים מכיוון שהם פשוט זהים. המושגים product key ו license key משמשים כדי להבליט דברים שונים, אבל מעשית אחד הם. בעברית נשמש במושג "מפתח מוצר".
שימו לב! ישנם גרסאות התקנה בהם המפתח מוצר כבר מוטמע בקובץ ההתקנה
כיצד לשנות את מפתח המוצר שלנו?
למה? ניתן לרכוש SQL Server באמצעות ערוצים שונים כמו MSDN, Volume License, Full Packaged Product (FPP) או OEM. ערוצי הרכישה השונים מספקים מפתח מוצר ייחודי לערוץ זה. לפעמים זה עלול לקרות שהתקנת SQL Server ממערכת אחת כמון למשל MSDN ומאוחר יותר רכשת מדיה דרך ערוץ Volume License. במקרה כזו אתה תרצה ככל הנראה לעדכן את מפתח הרישיון המשמש את SQL Server.
כיצד? צעד אחרי צעד להשנות את מפםתח המוצר של שרת אשר כבר הותקן
(1) הכנס את מדיית ההתקנה של SQL Server. מתיקיית השורש, לחץ פעמיים על setup.exe

(2) עבור אל הטאב של Maintenance

(3) לחץ על Edition Upgrade

(4) הכנס את הפרטים של מפתח המוצר החדש לחיץ להמשיך עד סיום העדכון

כיצד מתקינים רשיון
התשובה הקצרה היא שלא מתקינים.
הרשיונות של שרתי SQL מנוהלים על ידינו בצורה מקומית ולא על ידי שימוש במפתח רשיון ייחודי לכל משתמש.
שאלה: מה לגבי מכונות וירטואליות, האם כל מכונה וירטואלית צריכה רישון?
תלוי אם אתה בצד המארח של המכונות הוירטואליות או משתמש בשירות צד שלישי.
מיקרוסופט ביצעה שינוי מהותי של הרשיון בגרסת 2019 בנושא זה, והכניסה הרחבה לרשיונות עבור סביבות וירטואליות - expanded virtualization rights (כן... עוד בלאגן ללמוד אבל יכולה להיות הוזלה משמעותית במחיר, אז כדאי ללמוד).
(1) אם אתם מארחים במכונה פיסית אחת שני מכונות וירטואליות וכל מכונה יורטואלית כוללת ליבות מעבדים וירטואלים (ז"א סה"כ 4 ליבות וירטואליות ושני מכונות וירטואליות) אז כל מה שצריך זה רשיון ליבה אחד.
יוצא מכך שרשיונות של שרתי 2019 יותר זולים במקרה כזה מרשיונות של שרתי 2016 למשל. שווה לעבור :-)
(2) אם אתם אורחים ויש לכם מכונה וירטואלית בשרת של מישהו אחר, אז אתם צריכים רשיון לפי מספר הליבות הוירטואליות בדיוק כמו במכונה פיזית!
מסקנה מעניינת 1+2: מייקרוספט מקרבת לבבות 🤣 למה להתבודד לבד כאשר אפשר לפעול ביחד? אם אתם שותפים באותה מכונה פיזית ואתם הבעלים של המכונה, אז אתם יכולים לחסוך עד פי 4 מהמחיר אם תרכשו רשיון למכונה הפיזית, ולא לכל מכונה וירטואלית בנפרד. אם אתם מארחים מכונות וירטואליות עבור לקוחות, אז תוכלו להציע להם שימוש בשרתי SQL עם הרשיון של המכונה המארחת. זה יעלה פחות מכיוון שרשיון של המארח יכול להיות פי 4 יותר זול מרשיון שהם ירכשו עבור המכונה הוירטולאית שלהם בנפרד.
ריבוי ליבות וירטואליות virtual core
מה קורה לגבי ריבוי של ליבות וירטואליות virtual core (לא ליבות וירטואליות של מכונה וירטואלית אלא ליבות וירטואליות של המעבד עצמו) במכונה פיזית, האם התשלום לפי ליבה?
הסבר קצר על מה זה ליבה וירטואלית:
מעבד פיזי CPU הוא למעשה קופסא שכוללת בתוכה מעבד אחד או יותר.
המעבדים הפיזיים בתוך ה CPU נקראים ליבות - הליבה היא מעבד נפרד אשר יכול לבצע משימות באופן בילתי תלוי בליבות פיזיות אחרות ויכול לשבת ביחד עם עוד ליבות באותה קופסה (CPU).
ככל שהטכנולוגיה מתקדמת יצרי החומרה מפתחים מוצרים מתקדמים יותר ועושים שימוש בתוכנה המוטמעת ברכב החומרה על מנת לשפר את אופן העבודה שלו. כך, מצאו יצרי החומרה שאפשר לנצל את הליבות הפיזיות המרובות הנמצאות ב CPU שלנו אפילו יותר טוב, על ידי שימוש בתוכנה שתנהל לנו את הפעילות של הליבות השונות ותחלק את המשימות בצורה חכמה יותר. Hyper Threading היא תוכנה כזו אשר מוטמעת במעבד ומאפשרת לדמות כאילו יש לנו יותר ליבות מאשר קיימות במציאות. ליבות אלו נקראות ליבות וירטואליות.
האם יש צורך לשלם לפי הליבות הוירטואליות הנ"ל:
אין לי תשובה חד משמעית בנושא זה. על פי ההבנה שלי התשובה היא לא, אבל ממש לא מצאתי שום אזכור לנושא זה במסמכי הרשיונות עדיין...
מחיר
שאלה: הכל טוב ויפה אבל... מה המחירים?
מחירים הם דבר גמיש כמו תמיד ובהחלט אפשר למצוא מבצעים או הצעות שונות. אם נדבר על גרסת SQL Server 2019, אז סדר גודל של מחיר לרשיון שרת הוא כ 900 דולר, רשיון משתמש CAL עולה כ 200 דולר (רשיונות שרת ומשתמש יש רק למהדורת standard בגרסת 2019), רשיון ל 2 ליבות עבור מהדורת Standard עולה כ 3500 דולר, ורשיון לשני ליבות למהדורת Enterprise עולה כמעט 14000 דולר.
https://www.microsoft.com/en-us/sql-server/sql-server-2019-pricing

https://www.microsoft.com/en-us/Licensing/product-licensing/sql-server?activetab=sql-server-pivot:primaryr2&rtc=1
https://docs.microsoft.com/en-us/answers/questions/764607/how-much-it-cost-and-how-sql-standard-cal-will-wor.html
https://docs.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-version-15?view=sql-server-ver15
.