PowerShell / אביגיל בן-טובים, בוגרת קורס DBA
לאחר שעבדה מעל 10 שנים באמדוקס וחזרה מרילוקיישן בדרום אמריקה, החליטה אביגיל בן-טובים להעמיק בתחומי ה-DBA. היא סיימה קורס DBA בטכניון לימודי המשך, ומתוך סקרנות אמיתית בתוכנת ה-PowerShell, כתבה למגזין שלנו את הסקירה הזו
02/07/2019
אביגיל בן-טובים סיימה קורס DBA בטכניון לימודי המשך באפריל 2019. לאחר שעבדה כ-12 שנים באמדוקס בשלל תפקידים וחזרה מרילוקיישן בדרום אמריקה, הצטרפה לתכנית במטרה לרענן את התכנים ולהעמיק בנושאי ה-DBA. לדבריה, לא רק שהקורס ענה על המטרה שלשמה רצתה ללמוד, היא גם קיבלה מהמרצים כלים ללמידה עצמאית בהמשך. בן-טובים הסתקרנה במיוחד לגבי נושא ה-PowerShell, ותוך כדי הלימודים החלה להעמיק בו ולבנות משהו חדש.
PowerShell הינה תוכנה מבוססת .NET, המאפשרת אוטומציה של מגוון גדול של מטלות core אדמיניסטרטיביות במערכות הפעלה השונות; זאת בשל היכולת לגשר בין מערכת ההפעלה והרשתות (networks) – גם מתוך וגם מחוץ ל- SQL Server. התוכנה תומכת ב- Azure ומאפשרת שימוש בפקודות cmdlets לביצועים מתוחכמים כמו יצירת מחשבים וירטואליים חדשים, ניהול וקינפוג שלהם, העברת תוכן ממחשב לוקאלי לענן וניהול ותמיכה הסביבות. PowerShell גם תומכת ב- Big Data בכך שהיא מאפשרת גישה ל- HDInsight SDK.
PowerShell הינה open-source ו- cross-platform החל מגרסה 6 ומגיעה כבר אוטומטית עם סביבת Windows ו-SQL Server Management Studio. למרות היותה תוכנת Shell, PowerShell מטפלת בפקודות של אובייקטים ולא של טקסט כמו שפות ה’nix’ האחרות, ובכך מאפשרת גמישות מדהימה וסינון, מיון, מדידה, קיבוץ, השוואה ונקיטת פעולות אחרות על אובייקטים כשהם עוברים דרך הצינור (pipe) ועבודה עם אובייקטים שבהם מאפיינים ומתודות במקום טקסט גולמי, שמקל יותר על העבודה.
PowerShell יכולה לקיים אינטראקציה עם מספר מסחרר של טכנולוגיות, ביניהן: NET Framework, Registry, COM, WMI , ADSI. Exchange, SharePoint, Systems Center, Hyper-V, SQL, VMware , VCenter, Cisco UCS, Citrix XenApp , XenDesktop. REST APIs, XML, CSV, JSON, אתרי אינטרנט, Excel ויישומי Office אחרים, #C ושפות אחרות, קבצי DLL וקבצים בינאריים נוספים, כולל כל כלי ה- 'nix'. שפה כזאת, היכולה לשלב טכנולוגיות אלו, יכולה להיות בעלת ערך רב.
PowerShell כוללת בתוכה help מאוד מפותח המתעדכן כל הזמן ומעניק עזרה מאוד מפורטת עם דוגמאות. העזרה באה עם ממשק גרפי, ה- (ISE (Integrated Scripting Environment, המאפשר להריץ פקודות וליצור, לשנות ולבדוק סקריפטים ללא צורך לרשום את כל הפקודה. בלחיצת enter יעלה מסך נוסף, שהוא העורך, ולחיצה על חץ ה- script משנה את הסביבה לעריכה. הקלדת Write-Host מאפשרת שינוי הגדרות העריכה, ולאחר הקלדת "-" נקבל dropdown עם אפשרויות בחירה.
ב-PowerShell אפשר לקרוא לסביבת ה-SQL כאילו שמדובר ב- file system, וניתן להריץ שאילתות ופרוצדורות, מעקב אחר ביצועי SQL, כתיבת כלים שיתאימו לצרכים מדויקים ועוד. באמצעות Management Object – SMO SQL ניתן להתחבר לשרת SQL ולחקור את השרת, מסד הנתונים שלו ואת הטבלאות כמו כל אובייקט אחר ב- PowerShell, כגון דיווח על מצב הגיבויים, הצגת גודל מסדי הנתונים והטבלאות.
לדוגמא, ניתן לראות את רשימת מסדי הנתונים וכמה מקום כל אחד תופס בדיסק, Collation ועוד במבט-על ע"י מעבר למיקום:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases
וקבלת רשימת מסדי הנתונים:
מכאן ניתן להיכנס לכל מסד נתונים ולנהל אותה. למשל, אם ברצונכם ליצור סקריפט אחד המכיל יצירת כל הטבלאות יחד: כנסו לספריית טבלאות מסד הנתונים Cd AdventureWorks2017\tables, ועבור כל טבלה (ה-item הינו הטבלאות), הכניסו את כל סקריפטי היצירה שלה לתוך קובץ: {foreach ($Item in Get-ChildItem) { $Item.Script() | Out-File -Filepath D:\PowerShell\CreateTables.sql -append
ל- PowerShell שלל יתרונות. מדובר בכלי בעל ערך רב לניהול SQL Server. PowerShell יכול להפוך משימות ניהוליות לאוטומטיות ולייעל את התהליכים בסביבה שלכם. השימוש ב- SMO עם PowerShell מאפשר לחקור ולדווח על חלקים שונים של שרת ה-SQL ואת מסד הנתונים שלה. בנוסף, ניתן לבנות אינדקסים, ליצור/למחוק מסדי נתונים וטבלאות, ואף ליצור Logins SQL ו-users חדשים. האפשרויות הן די אינסופיות!
גם לכם יש הזדמנות להתעמק בנושאים חמים בתחומי המחשבים וההייטק! בחרו את התכנית המתאימה לכם והשאירו פרטים: