SlideShare a Scribd company logo
1 of 33
Download to read offline
‫בלמ"ס‬
                         ‫ללא סיווג עסקי‬




    ‫‪May the Powershell be with you‬‬
                                            ‫אביעד דרעי‬
                     ‫רפא"ל – מערכות לחימה מתקדמות בע"מ‬
                                   ‫‪aviadd@rafael.co.il‬‬
                                              ‫0102/7/5‬




‫1‬       ‫סימוכין‬   ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬   ‫תאריך‬
‫בלמ"ס‬
                             ‫ללא סיווג עסקי‬




                   ‫קצת על רפאל...‬

      ‫• מפתחת, מייצרת ומספקת מגוון מערכות לחימה‬
    ‫מתקדמות אשר תורמות למערכת הביטחון יכולות:‬
                                                                  ‫– בים‬
                                                               ‫– באוויר‬
                                                               ‫– ביבשה‬
       ‫• רווחים בשנת 8002 – למעלה מ 5.1 מיליארד ₪‬
                           ‫• למעלה מ-0005 עובדים‬

‫2‬        ‫סימוכין‬      ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬              ‫8 יולי, 0102‬
‫בלמ"ס‬
                      ‫ללא סיווג עסקי‬




               ‫קצת עלי‬
    ‫• בוגר החוג למערכות מידע באוניברסיטת חיפה‬
                   ‫• ‪ DBA‬תשתיתי כ-5.3 שנים:‬
                                 ‫– 2‪MS SQL 2000-2008R‬‬

                                                        ‫– ‪Oracle 9i-11g‬‬

                                          ‫– 01 ‪SQL Anywhere‬‬




‫3‬    ‫סימוכין‬   ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬                     ‫תאריך‬
‫בלמ"ס‬
                             ‫ללא סיווג עסקי‬




                    ‫תחומי אחריות‬
    ‫• תחזוקה שוטפת של למעלה מ-001 שרתים במערכות‬
                        ‫מרכזיות ובפרוייקטים שונים.‬
     ‫• פיתוח, הדרכה והטמעה של מגוון שירותים וכלים:‬
                                   ‫‪Reporting Services‬‬          ‫–‬
                                  ‫‪Integration Services‬‬         ‫–‬
                                               ‫‪Spatial‬‬         ‫–‬
                                           ‫‪PowerShell‬‬          ‫–‬
                        ‫‪ Mirroring, Replication‬ועוד...‬         ‫–‬


‫4‬         ‫סימוכין‬     ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬       ‫תאריך‬
‫בלמ"ס‬
                         ‫ללא סיווג עסקי‬




              ‫מה בתפריט?‬
                 ‫• איך הכל התחיל? – הצגת הבעייה‬
                          ‫• הדרישות עבור הפתרון‬
                                    ‫• ובהרחבה:‬
              ‫– מה זה ‪ PowerShell‬ואיך הוא עוזר לי?‬
                            ‫– ‪ SSIS‬גנרי עם פרמטרים‬
                                 ‫– השילוב של שניהם‬
                                                           ‫• שאלות‬


‫5‬   ‫סימוכין‬       ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬         ‫תאריך‬
‫בלמ"ס‬
                              ‫ללא סיווג עסקי‬




                    ‫איך הכל התחיל?‬

    ‫• מספר מצומצם של שרתים, על כל שרת מספר קבצי‬
     ‫‪ batch‬וסקריפטים עבור גיבויים, תחזוקה והגדרות‬
                                     ‫שונות של בסיסי הנתונים.‬

    ‫• בכל סקריפט קיימות הגדרות של שרת ה-‪exchange‬‬
      ‫שרת השו"ב והגדרות שרת התזמון המרכזי ממנו‬
                                                      ‫רצים הסקריפטים.‬
‫6‬         ‫סימוכין‬      ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬           ‫תאריך‬
‫בלמ"ס‬
                              ‫ללא סיווג עסקי‬




                     ‫אז איפה הבעיה?‬
             ‫• מספר השרתים הולך ועולה משבוע לשבוע‬
             ‫• כשמקימים שרת חדש, מעתיקים אליו את‬
       ‫הסקריפטים ומשנים את משתני הסביבה השונים‬
            ‫• נוצר מצב של קושי בתחזוקת הסקריפטים:‬
         ‫– כל שינוי הכי קטן דורש מעבר על מאות סקריפטים‬
    ‫– מסקריפט אחד ראשי נוצרו עשרות עותקים וקשה לעקוב‬
                                            ‫אחריהם‬
    ‫• חוסר תאימות של הסקריפטים השונים ומספרם‬
     ‫ההולך וגדל גורם לכך שזמן יקר הולך לאיבוד‬
‫7‬          ‫סימוכין‬     ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬   ‫תאריך‬
‫בלמ"ס‬
                               ‫ללא סיווג עסקי‬




    ‫טוב, אז מה אתה מציע לעשות?‬
    ‫• צריך למצוא פתרון אחר לתחזוקה השוטפת שיענה‬
                           ‫על הדרישות הבאות:‬
               ‫– יהיה עותק אחד ויחיד שירוץ ממקום מרכזי‬

                   ‫– במידת האפשר יאחד את כל הסקריפטים‬

      ‫– יאפשר הוספת שרתים חדשים/גריעת שרתים ישנים‬
                                                        ‫באופן דינאמי וקל‬



‫8‬        ‫סימוכין‬        ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬             ‫תאריך‬
‫בלמ"ס‬
                                ‫ללא סיווג עסקי‬




         ‫הדרישות מהפתרון - המשך‬
              ‫– ידרוש מינימום תחזוקה ויאפשר אותה בקלות‬

       ‫– יאפשר גיבויי מקומי של בסיסי הנתונים על השרתים‬

                     ‫– ירכז את הלוגים השונים למקום מרכזי‬

    ‫– במידת האפשר יהיה חינמי ולא תלוי במוצר מדף כזה או‬
                                                                  ‫אחר‬




‫9‬          ‫סימוכין‬       ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬         ‫תאריך‬
‫בלמ"ס‬
                              ‫ללא סיווג עסקי‬




        ‫אז מה זה בעצם ‪?Powershell‬‬
     ‫• כלי שורת פקודה של מיקרוסופט, המרחיב את שורת‬
     ‫הפקודה הסטנדרטית (‪ )cmd‬ומעניק לו יכולות תכנות‬
                                          ‫נרחבות יותר‬
           ‫• משולב כחלק אינטגרלי בקו המוצרים האחרון‬
         ‫כגון: ‪SQL 2008, Exchange 2007, Win 7, Win‬‬
                                     ‫8002 ‪ Server‬ועוד‬
          ‫• אידאלי לאוטומציה של תהליכים שונים לניהול‬
                        ‫ותחזוקת שרתים ותחנות עבודה‬

‫01‬          ‫סימוכין‬    ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬   ‫תאריך‬
‫בלמ"ס‬
                              ‫ללא סיווג עסקי‬




                     ‫היכרות בסיסית‬
                        ‫• סיומת קבצי הסקריפט: 1‪ps‬‬
     ‫• מורכב לרוב מ)‪ cmdlets (command-lets‬שבנויים‬
                          ‫בצורת ‪ verb-noun‬למשל:‬
     ‫–‬‫‪Get-help‬‬
     ‫–‬‫‪Write-host‬‬
     ‫–‬‫‪Get-content‬‬
     ‫–‬‫‪Copy-item‬‬
       ‫– על כל פקודה ניתן לקבל עזרה ופירוט ע"י שימוש ב-‬
     ‫‪Get-help cmd-lets -detailed‬‬
‫11‬         ‫סימוכין‬     ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬   ‫תאריך‬
‫בלמ"ס‬
                                       ‫ללא סיווג עסקי‬




           ?Powershell-‫מה מאפשר ה‬
              ,‫• יכולות תכנות נרחבות כמו שימוש בפונקציות‬
                                     '‫לולאות, תנאים וכו‬
     foreach ($db in $Srv.Databases)
        {
        $msg = $db.Name | Out-File $LogFile -Append
        $msg = " Status is: "+ $db.Status.ToString() | Out-File $LogFile -
        Append
        $msg = " Mirorring Status is: "+ $db.MirroringStatus.ToString()|
        Out-File $LogFile -Append
        if ((-not $db.Status.ToString().Equals("Normal")) -and
        ($db.IsMirroringEnabled) -and (        $db.MirroringStatus -ne 5))
               {$DBStatus=1}
        }
12              ‫סימוכין‬         ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬       ‫תאריך‬
‫בלמ"ס‬
                               ‫ללא סיווג עסקי‬




                      ‫יכולות - המשך‬
         ‫• עבודה אל מול שרתים ותחנות עבודה מרוחקות‬
     begin
     {
         $BckDir = $BckDir.Substring(0,$BckDir.Length -1 )
                 –replace (":","$")
         if (Test-Path "$ServerName$BckDirfull_backup")
         {Get-ChildItem
                 -Path "$ServerName$BckDirfull_backup"
                 | Remove-Item -Recurse}
         return 0
     }
13          ‫סימוכין‬     ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬   ‫תאריך‬
‫בלמ"ס‬
                                ‫ללא סיווג עסקי‬




                       ‫יכולות - המשך‬
             ‫• הרחבה ע"י מחלקות ואובייקטים שונים כמו‬
                                    .Net/Com/WMI
     $Srv=New-Object
       "Microsoft.SqlServer.Management.Smo.Server"
       "$ServerName“
     $SmtpClient = new-object system.net.mail.smtpClient
     $MailMessage = New-Object system.net.mail.mailmessage
     [System.Reflection.Assembly]::LoadWithPartialName
       ("Microsoft.SharePoint")


14           ‫סימוכין‬     ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬   ‫תאריך‬
‫בלמ"ס‬
                                      ‫ללא סיווג עסקי‬




                Powershell-‫הקריאה ל‬
      ‫ במידה ורוצים להפעיל‬powershell.exe ‫• הפעלת סקריפט מתבצעת ע"י‬
        ‫ במידה‬sqlps.exe ‫, או ע"י‬PS ‫ולהשתמש באובייקטים סנדרטיים של‬
                           .SQL Server ‫ורוצים להשתמש בהרחבות עבור‬
         .‫• ניתן להרחיב את השפה ע"י קריאה לקובצי קונפיגורציה חיצוניים‬
                  :NetApp Snap Manager for SQL Server ‫למשל עבור‬
     • powershell -PSConsoleFile "D:Program
       FilesNetAppSnapManager for SQL ServerSmsqlShell.psc1"
       "&'%ScriptDir%maintian.ps1' Backup %ServerName% %LogDir%
       full %FullBackupDir% 1“
       ‫ ע"י‬SnapManager ‫• לאחר הקריאה להרחבה ניתן להפעיל פקודות של‬
                                                            :PS
     • New-Backup -LogBkup -bkupsif -verify -truncatelogs -
       GenericNaming -retainbackups 7 -retainsnapofsnapinfo 7 | Out-File
       $log
15              ‫סימוכין‬        ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬      ‫תאריך‬
‫בלמ"ס‬
                            ‫ללא סיווג עסקי‬




                 ‫היישום שלנו ברפאל‬

                                                               ‫• מבצע גיבויים‬
                                                       ‫– מלאים פעם ביום‬

                                                              ‫– לוגים כל שעה‬

          ‫– דיפרנציאליים כל 4 שעות במהלך יום העבודה‬

     ‫• מבצע בדיקת חיות ותקינות בסיסית של בסיסי‬
                                   ‫הנתונים בשרת כל 5 דקות‬
‫61‬     ‫סימוכין‬       ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬                    ‫תאריך‬
‫בלמ"ס‬
                                ‫ללא סיווג עסקי‬




                       ‫היישום - המשך‬
      ‫• פעם ביום עובר על כל בסיסי הנתונים בשרת ומשנה את‬
      ‫ההגדרות שלהם כך שיתאימו לתקנים ולשיטת העבודה‬
                                                                  ‫ברפאל‬

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

‫71‬           ‫סימוכין‬     ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬           ‫תאריך‬
‫בלמ"ס‬
                              ‫ללא סיווג עסקי‬




                     ‫היישום - המשך‬
     ‫• שליחת מיילים במקרה של כשל, כולל צירוף קובץ הלוג של‬
                                                                ‫הפעולה שנכשלה‬

                                      ‫• מחיקת קבצים ישנים לפי גיל‬

            ‫• ביצוע פעולות מותאמות על שרתים ובסיסי נתונים‬
                                                                ‫מיוחדים/רגישים‬

     ‫• שליחת ‪ Traps‬למערכת השו"ב המרכזית ולמערכת התזמון‬
                                                                      ‫המרכזית‬
‫81‬         ‫סימוכין‬     ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬                    ‫תאריך‬
‫בלמ"ס‬
                               ‫ללא סיווג עסקי‬




         ‫שימוש ב-‪ SSIS‬עם פרמטרים‬
             ‫‪SQL Server Integration Services -SSIS‬‬               ‫•‬
         ‫מבוססים על טכולוגית ה-‪ .Net‬ומחליפים את ה-‬               ‫•‬
                           ‫‪ DTS‬החל מגרסת 5002 ‪SQL‬‬
     ‫משמשים למעבר נתונים בין פלטפורומות שונות תוך‬                ‫•‬
       ‫הפעלת לוגיקות שונות על הנתונים במהלך המעבר‬
          ‫משמשים גם לביצוע פעולות תחזוקה שונות כמו‬               ‫•‬
                   ‫גיבויים, רה-ארגון של אינדקסים וכו'.‬


‫91‬          ‫סימוכין‬     ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬   ‫תאריך‬
‫בלמ"ס‬
                               ‫ללא סיווג עסקי‬




                      ‫‪Backup.dtsx‬‬
         ‫• לצורך הפתרון בניתי ‪ SSIS‬חדש מסוג ‪SQLDBMaint‬‬



     ‫• ה-‪ SSIS‬מכיל משימת גיבוי, משימת ניקוי וכתיבה לקובץ‬
                                                    ‫לוג‬




‫02‬          ‫סימוכין‬     ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬   ‫תאריך‬
‫בלמ"ס‬
                               ‫ללא סיווג עסקי‬




                      ‫‪Backup.dtsx‬‬
     ‫• הוגדרו משתנים גלובליים ברמת ה ‪ Package‬כולו. כל‬
          ‫משתנה מתקבל משורת הפקודה ומשוייך במהלך‬
         ‫הריצה למשתנים הפנימיים של הרכיבים השונים.‬




‫12‬          ‫סימוכין‬     ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬   ‫תאריך‬
‫בלמ"ס‬
                            ‫ללא סיווג עסקי‬




           ‫מבנה הקבצים והתיקיות‬
     ‫• תיקייה מרכזית על השרת הראשי, בה יושב סקריפט‬
                                ‫ה-‪ Powershell‬הבודד‬
       ‫• לכל שרת מנוהל יש תת תיקיה ובתוכה קבצים עם‬
          ‫הגדרות עבור השרת ותיקיית ‪ log‬עבור הלוגים‬




‫22‬         ‫סימוכין‬   ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬   ‫תאריך‬
‫בלמ"ס‬
                                 ‫ללא סיווג עסקי‬




                      ‫איך עובד התהליך?‬
     ‫• מערכת התזמון המרכזית מפעילה קובץ ‪ batch‬בשעה‬
                   ‫מסויימת. בדוגמא הזו נציג גיבוי לוג‬




‫32‬          ‫סימוכין‬       ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬   ‫תאריך‬
‫בלמ"ס‬
                                  ‫ללא סיווג עסקי‬




                        ‫מה בעצם קורה?‬

         ‫• הקובץ שמורץ למעשה הוא הקובץ ‪dmp_log.bat‬‬
                                                                    ‫שנראה כך:‬
     ‫‪• call %~dp0db_env.bat‬‬

     ‫‪• sqlps "&'%ScriptDir%maintian.ps1' Backup‬‬
       ‫"3 %‪%ServerName% %LogDir% log %logBackupDir‬‬




‫42‬            ‫סימוכין‬      ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬               ‫תאריך‬
‫בלמ"ס‬
                                ‫ללא סיווג עסקי‬




                       Db_env.bat
       ‫ מכיל פרמטרים שמשתנים משרת‬db_env-‫• קובץ ה‬
             Powershell-‫לשרת ונקראים לפני הרצת ה‬
     set ServerName=SERVERNAME
     set FullBackupDir=E:mssql_dump
     set LogBackupDir=F:mssql_dump
     set DiffBackupDir=G:mssql_dump
     set LogDir=D:jobsmssql%ServerName%log
     set ScriptDir=D:jobsmssql




25           ‫סימוכין‬     ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬   ‫תאריך‬
‫בלמ"ס‬
                         ‫ללא סיווג עסקי‬




               ‫עיבוד המשתנים‬




‫62‬   ‫סימוכין‬      ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬   ‫תאריך‬
‫בלמ"ס‬
                      ‫ללא סיווג עסקי‬




‫העברת המשתנים לפונקצייה המתאימה‬




‫72‬   ‫סימוכין‬   ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬   ‫תאריך‬
‫בלמ"ס‬
                                         ‫ללא סיווג עסקי‬




                            ‫בניית שורת הפקודה‬
         ‫ עם‬PS‫) נבנתה בתוך קובץ ה‬dtexec( ‫• שורת הפקודה‬
             ‫הפרמטרים שנשלחו בהתאם לשרתים השונים‬
     $strSsis = 'dtexec /DTS "MSDBMaintenance PlansBackup" '
     $strSsis +='/SET "package.Variables[User::BackupPath].Value;$BckPath" '
     $strSsis +='/SET "package.Variables[User::BackupType].Value;$BckType" '
     $strSsis +='/SET "package.Variables[User::BackupTypeID].Value;$BckTypeID" '
     $strSsis +='/SET "package.Variables[User::Extension].Value;$Ext" '
     $strSsis +='/SET "package.Variables[User::IsDifferntial].Value;$IsDif" '
     $strSsis +='/SET "package.Variables[User::ServerName].Value;$Server" '
     # Execute the sring and save the log to file
     Invoke-Expression $strSsis | Out-File $LogFile




28                ‫סימוכין‬         ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬            ‫תאריך‬
‫בלמ"ס‬
                        ‫ללא סיווג עסקי‬




               ‫ניטור הפעולה‬




‫92‬   ‫סימוכין‬     ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬   ‫תאריך‬
‫בלמ"ס‬
                              ‫ללא סיווג עסקי‬




           ‫סיכום – מה בעצם נעשה?‬
      ‫איחוד של מספר קבצי תחזוקת מערכת לקובץ אחד‬                 ‫•‬
                                               ‫גנרי‬
                  ‫ריכוז כל ההרצות למקום מרכזי אחד‬               ‫•‬
                   ‫ריכוז כל הלוגים למקום מרכזי אחד‬              ‫•‬
                 ‫שמירה על אחידות של בסיסי הנתונים‬               ‫•‬
     ‫תחזוקה קלה, פשוטה ומהירה שחוסכת עשרות שעות‬                 ‫•‬
                                             ‫עבודה‬


‫03‬          ‫סימוכין‬    ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬   ‫תאריך‬
‫בלמ"ס‬
                                  ‫ללא סיווג עסקי‬




                 ‫לאן מתקדמים מכאן?‬
     ‫• מעבר ל-0.2‪ Powershell V‬ייתן כלים חדשים (בין היתר‬
          ‫גם כלים גרפיים) ויאפשר לייעל את הסקריפט ואת‬
                      ‫תחזוקתו (למשל ע"י פקודת ‪)Send-Mail‬‬

      ‫• כתיבת פונקצייה גנרית שתקבל כקלט שם ‪ ,SSIS‬תריץ‬
     ‫אותו, תכתוב ‪ log‬פעילות שלו ותוציא את תוצאת ההרצה‬
                        ‫למערכים השונים (שו"ב, תזמון מרכזי)‬


‫13‬          ‫סימוכין‬        ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬   ‫תאריך‬
‫בלמ"ס‬
                         ‫ללא סיווג עסקי‬




     ‫תודה על ההקשבה!‬
                 ‫שאלות?‬

‫23‬     ‫סימוכין‬    ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬   ‫תאריך‬
‫בלמ"ס‬
                                      ‫ללא סיווג עסקי‬




                          ‫קישורים מעניינים‬
     • PowerShell wiki:
       http://en.wikipedia.org/wiki/Windows_PowerShell
     • Why This SQL Server DBA is Learning Powershell by Ron
       Dameron
       http://www.simple-talk.com/sql/database-administration/why-this-sql-
       server-dba-is-learning-powershell/
     • SQLPSX Project on Codeplex
       http://sqlpsx.codeplex.com/




33              ‫סימוכין‬        ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬     ‫תאריך‬

More Related Content

Similar to Powershell - ISUG 99 (Aviad Deri)

6 sql explorer - powershell dba
6   sql explorer - powershell dba6   sql explorer - powershell dba
6 sql explorer - powershell dbasqlserver.co.il
 
Exploring Oracle Database Architecture (Hebrew)
Exploring Oracle Database Architecture (Hebrew)Exploring Oracle Database Architecture (Hebrew)
Exploring Oracle Database Architecture (Hebrew)Ram Kedem
 
Managing oracle Database Instance
Managing oracle Database InstanceManaging oracle Database Instance
Managing oracle Database InstanceRam Kedem
 
החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?
החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?
החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?Boris Chernyak
 
7 sql azure for sql explore
7   sql azure for sql explore7   sql azure for sql explore
7 sql azure for sql exploresqlserver.co.il
 
Whats New In Windows 2008 R2 High Availability
Whats New In Windows 2008 R2 High AvailabilityWhats New In Windows 2008 R2 High Availability
Whats New In Windows 2008 R2 High AvailabilityAmit Gatenyo
 
Sql Server Replication Isug 1 2009
Sql Server Replication   Isug 1 2009Sql Server Replication   Isug 1 2009
Sql Server Replication Isug 1 2009sqlserver.co.il
 
SDS - Software-defined Storage
SDS - Software-defined StorageSDS - Software-defined Storage
SDS - Software-defined StorageAviv Degani
 
Sql Server Replication Idf
Sql Server Replication   IdfSql Server Replication   Idf
Sql Server Replication Idfsqlserver.co.il
 
מצגת לשולחן עגול מנהלי אבטחת מידע 2.0 lior
מצגת לשולחן עגול מנהלי אבטחת מידע 2.0 liorמצגת לשולחן עגול מנהלי אבטחת מידע 2.0 lior
מצגת לשולחן עגול מנהלי אבטחת מידע 2.0 liorArthur Schmunk
 
לימור רויסמן 2017
לימור רויסמן 2017לימור רויסמן 2017
לימור רויסמן 2017Limor Roisman
 
Windows 2008 for Microsoft Solution Briefing
Windows 2008 for Microsoft Solution BriefingWindows 2008 for Microsoft Solution Briefing
Windows 2008 for Microsoft Solution BriefingAmit Gatenyo
 

Similar to Powershell - ISUG 99 (Aviad Deri) (20)

6 sql explorer - powershell dba
6   sql explorer - powershell dba6   sql explorer - powershell dba
6 sql explorer - powershell dba
 
Exploring Oracle Database Architecture (Hebrew)
Exploring Oracle Database Architecture (Hebrew)Exploring Oracle Database Architecture (Hebrew)
Exploring Oracle Database Architecture (Hebrew)
 
Managing oracle Database Instance
Managing oracle Database InstanceManaging oracle Database Instance
Managing oracle Database Instance
 
Haim segal5.5
Haim segal5.5Haim segal5.5
Haim segal5.5
 
החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?
החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?
החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?
 
עבודה בהייטק - פברואר 2016
עבודה בהייטק - פברואר 2016עבודה בהייטק - פברואר 2016
עבודה בהייטק - פברואר 2016
 
7 sql azure for sql explore
7   sql azure for sql explore7   sql azure for sql explore
7 sql azure for sql explore
 
Whats New In Windows 2008 R2 High Availability
Whats New In Windows 2008 R2 High AvailabilityWhats New In Windows 2008 R2 High Availability
Whats New In Windows 2008 R2 High Availability
 
Sql Server Replication Isug 1 2009
Sql Server Replication   Isug 1 2009Sql Server Replication   Isug 1 2009
Sql Server Replication Isug 1 2009
 
SDS - Software-defined Storage
SDS - Software-defined StorageSDS - Software-defined Storage
SDS - Software-defined Storage
 
Sql Server Replication Idf
Sql Server Replication   IdfSql Server Replication   Idf
Sql Server Replication Idf
 
Expand Cli Command
Expand Cli CommandExpand Cli Command
Expand Cli Command
 
מצגת לשולחן עגול מנהלי אבטחת מידע 2.0 lior
מצגת לשולחן עגול מנהלי אבטחת מידע 2.0 liorמצגת לשולחן עגול מנהלי אבטחת מידע 2.0 lior
מצגת לשולחן עגול מנהלי אבטחת מידע 2.0 lior
 
עבודה בהייטק - מרץ 2016
עבודה בהייטק - מרץ 2016עבודה בהייטק - מרץ 2016
עבודה בהייטק - מרץ 2016
 
לימור רויסמן 2017
לימור רויסמן 2017לימור רויסמן 2017
לימור רויסמן 2017
 
CV_Elad_Golan
CV_Elad_GolanCV_Elad_Golan
CV_Elad_Golan
 
PHP Scalability
PHP ScalabilityPHP Scalability
PHP Scalability
 
SAP NetWeaver Gateway OData
SAP NetWeaver Gateway ODataSAP NetWeaver Gateway OData
SAP NetWeaver Gateway OData
 
Windows 2008 for Microsoft Solution Briefing
Windows 2008 for Microsoft Solution BriefingWindows 2008 for Microsoft Solution Briefing
Windows 2008 for Microsoft Solution Briefing
 
קורות חיים 2016
קורות חיים 2016קורות חיים 2016
קורות חיים 2016
 

More from sqlserver.co.il

Windows azure sql_database_security_isug012013
Windows azure sql_database_security_isug012013Windows azure sql_database_security_isug012013
Windows azure sql_database_security_isug012013sqlserver.co.il
 
Things you can find in the plan cache
Things you can find in the plan cacheThings you can find in the plan cache
Things you can find in the plan cachesqlserver.co.il
 
Sql server user group news january 2013
Sql server user group news   january 2013Sql server user group news   january 2013
Sql server user group news january 2013sqlserver.co.il
 
Query handlingbytheserver
Query handlingbytheserverQuery handlingbytheserver
Query handlingbytheserversqlserver.co.il
 
Adi Sapir ISUG 123 11/10/2012
Adi Sapir ISUG 123 11/10/2012Adi Sapir ISUG 123 11/10/2012
Adi Sapir ISUG 123 11/10/2012sqlserver.co.il
 
Products.intro.forum version
Products.intro.forum versionProducts.intro.forum version
Products.intro.forum versionsqlserver.co.il
 
SQL Explore 2012: P&T Part 3
SQL Explore 2012: P&T Part 3SQL Explore 2012: P&T Part 3
SQL Explore 2012: P&T Part 3sqlserver.co.il
 
SQL Explore 2012: P&T Part 2
SQL Explore 2012: P&T Part 2SQL Explore 2012: P&T Part 2
SQL Explore 2012: P&T Part 2sqlserver.co.il
 
SQL Explore 2012: P&T Part 1
SQL Explore 2012: P&T Part 1SQL Explore 2012: P&T Part 1
SQL Explore 2012: P&T Part 1sqlserver.co.il
 
SQL Explore 2012 - Tzahi Hakikat and Keren Bartal: Extended Events
SQL Explore 2012 - Tzahi Hakikat and Keren Bartal: Extended EventsSQL Explore 2012 - Tzahi Hakikat and Keren Bartal: Extended Events
SQL Explore 2012 - Tzahi Hakikat and Keren Bartal: Extended Eventssqlserver.co.il
 
SQL Explore 2012 - Michael Zilberstein: ColumnStore
SQL Explore 2012 - Michael Zilberstein: ColumnStoreSQL Explore 2012 - Michael Zilberstein: ColumnStore
SQL Explore 2012 - Michael Zilberstein: ColumnStoresqlserver.co.il
 
SQL Explore 2012 - Meir Dudai: DAC
SQL Explore 2012 - Meir Dudai: DACSQL Explore 2012 - Meir Dudai: DAC
SQL Explore 2012 - Meir Dudai: DACsqlserver.co.il
 
SQL Explore 2012 - Aviad Deri: Spatial
SQL Explore 2012 - Aviad Deri: SpatialSQL Explore 2012 - Aviad Deri: Spatial
SQL Explore 2012 - Aviad Deri: Spatialsqlserver.co.il
 
Bi303 data warehousing with fast track and pdw - Assaf Fraenkel
Bi303 data warehousing with fast track and pdw - Assaf FraenkelBi303 data warehousing with fast track and pdw - Assaf Fraenkel
Bi303 data warehousing with fast track and pdw - Assaf Fraenkelsqlserver.co.il
 

More from sqlserver.co.il (20)

Windows azure sql_database_security_isug012013
Windows azure sql_database_security_isug012013Windows azure sql_database_security_isug012013
Windows azure sql_database_security_isug012013
 
Things you can find in the plan cache
Things you can find in the plan cacheThings you can find in the plan cache
Things you can find in the plan cache
 
Sql server user group news january 2013
Sql server user group news   january 2013Sql server user group news   january 2013
Sql server user group news january 2013
 
DAC 2012
DAC 2012DAC 2012
DAC 2012
 
Query handlingbytheserver
Query handlingbytheserverQuery handlingbytheserver
Query handlingbytheserver
 
Adi Sapir ISUG 123 11/10/2012
Adi Sapir ISUG 123 11/10/2012Adi Sapir ISUG 123 11/10/2012
Adi Sapir ISUG 123 11/10/2012
 
Products.intro.forum version
Products.intro.forum versionProducts.intro.forum version
Products.intro.forum version
 
SQL Explore 2012: P&T Part 3
SQL Explore 2012: P&T Part 3SQL Explore 2012: P&T Part 3
SQL Explore 2012: P&T Part 3
 
SQL Explore 2012: P&T Part 2
SQL Explore 2012: P&T Part 2SQL Explore 2012: P&T Part 2
SQL Explore 2012: P&T Part 2
 
SQL Explore 2012: P&T Part 1
SQL Explore 2012: P&T Part 1SQL Explore 2012: P&T Part 1
SQL Explore 2012: P&T Part 1
 
SQL Explore 2012 - Tzahi Hakikat and Keren Bartal: Extended Events
SQL Explore 2012 - Tzahi Hakikat and Keren Bartal: Extended EventsSQL Explore 2012 - Tzahi Hakikat and Keren Bartal: Extended Events
SQL Explore 2012 - Tzahi Hakikat and Keren Bartal: Extended Events
 
SQL Explore 2012 - Michael Zilberstein: ColumnStore
SQL Explore 2012 - Michael Zilberstein: ColumnStoreSQL Explore 2012 - Michael Zilberstein: ColumnStore
SQL Explore 2012 - Michael Zilberstein: ColumnStore
 
SQL Explore 2012 - Meir Dudai: DAC
SQL Explore 2012 - Meir Dudai: DACSQL Explore 2012 - Meir Dudai: DAC
SQL Explore 2012 - Meir Dudai: DAC
 
SQL Explore 2012 - Aviad Deri: Spatial
SQL Explore 2012 - Aviad Deri: SpatialSQL Explore 2012 - Aviad Deri: Spatial
SQL Explore 2012 - Aviad Deri: Spatial
 
מיכאל
מיכאלמיכאל
מיכאל
 
נועם
נועםנועם
נועם
 
עדי
עדיעדי
עדי
 
מיכאל
מיכאלמיכאל
מיכאל
 
Bi303 data warehousing with fast track and pdw - Assaf Fraenkel
Bi303 data warehousing with fast track and pdw - Assaf FraenkelBi303 data warehousing with fast track and pdw - Assaf Fraenkel
Bi303 data warehousing with fast track and pdw - Assaf Fraenkel
 
DBCC - Dubi Lebel
DBCC - Dubi LebelDBCC - Dubi Lebel
DBCC - Dubi Lebel
 

Powershell - ISUG 99 (Aviad Deri)

  • 1. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫‪May the Powershell be with you‬‬ ‫אביעד דרעי‬ ‫רפא"ל – מערכות לחימה מתקדמות בע"מ‬ ‫‪aviadd@rafael.co.il‬‬ ‫0102/7/5‬ ‫1‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 2. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫קצת על רפאל...‬ ‫• מפתחת, מייצרת ומספקת מגוון מערכות לחימה‬ ‫מתקדמות אשר תורמות למערכת הביטחון יכולות:‬ ‫– בים‬ ‫– באוויר‬ ‫– ביבשה‬ ‫• רווחים בשנת 8002 – למעלה מ 5.1 מיליארד ₪‬ ‫• למעלה מ-0005 עובדים‬ ‫2‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫8 יולי, 0102‬
  • 3. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫קצת עלי‬ ‫• בוגר החוג למערכות מידע באוניברסיטת חיפה‬ ‫• ‪ DBA‬תשתיתי כ-5.3 שנים:‬ ‫– 2‪MS SQL 2000-2008R‬‬ ‫– ‪Oracle 9i-11g‬‬ ‫– 01 ‪SQL Anywhere‬‬ ‫3‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 4. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫תחומי אחריות‬ ‫• תחזוקה שוטפת של למעלה מ-001 שרתים במערכות‬ ‫מרכזיות ובפרוייקטים שונים.‬ ‫• פיתוח, הדרכה והטמעה של מגוון שירותים וכלים:‬ ‫‪Reporting Services‬‬ ‫–‬ ‫‪Integration Services‬‬ ‫–‬ ‫‪Spatial‬‬ ‫–‬ ‫‪PowerShell‬‬ ‫–‬ ‫‪ Mirroring, Replication‬ועוד...‬ ‫–‬ ‫4‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 5. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫מה בתפריט?‬ ‫• איך הכל התחיל? – הצגת הבעייה‬ ‫• הדרישות עבור הפתרון‬ ‫• ובהרחבה:‬ ‫– מה זה ‪ PowerShell‬ואיך הוא עוזר לי?‬ ‫– ‪ SSIS‬גנרי עם פרמטרים‬ ‫– השילוב של שניהם‬ ‫• שאלות‬ ‫5‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 6. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫איך הכל התחיל?‬ ‫• מספר מצומצם של שרתים, על כל שרת מספר קבצי‬ ‫‪ batch‬וסקריפטים עבור גיבויים, תחזוקה והגדרות‬ ‫שונות של בסיסי הנתונים.‬ ‫• בכל סקריפט קיימות הגדרות של שרת ה-‪exchange‬‬ ‫שרת השו"ב והגדרות שרת התזמון המרכזי ממנו‬ ‫רצים הסקריפטים.‬ ‫6‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 7. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫אז איפה הבעיה?‬ ‫• מספר השרתים הולך ועולה משבוע לשבוע‬ ‫• כשמקימים שרת חדש, מעתיקים אליו את‬ ‫הסקריפטים ומשנים את משתני הסביבה השונים‬ ‫• נוצר מצב של קושי בתחזוקת הסקריפטים:‬ ‫– כל שינוי הכי קטן דורש מעבר על מאות סקריפטים‬ ‫– מסקריפט אחד ראשי נוצרו עשרות עותקים וקשה לעקוב‬ ‫אחריהם‬ ‫• חוסר תאימות של הסקריפטים השונים ומספרם‬ ‫ההולך וגדל גורם לכך שזמן יקר הולך לאיבוד‬ ‫7‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 8. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫טוב, אז מה אתה מציע לעשות?‬ ‫• צריך למצוא פתרון אחר לתחזוקה השוטפת שיענה‬ ‫על הדרישות הבאות:‬ ‫– יהיה עותק אחד ויחיד שירוץ ממקום מרכזי‬ ‫– במידת האפשר יאחד את כל הסקריפטים‬ ‫– יאפשר הוספת שרתים חדשים/גריעת שרתים ישנים‬ ‫באופן דינאמי וקל‬ ‫8‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 9. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫הדרישות מהפתרון - המשך‬ ‫– ידרוש מינימום תחזוקה ויאפשר אותה בקלות‬ ‫– יאפשר גיבויי מקומי של בסיסי הנתונים על השרתים‬ ‫– ירכז את הלוגים השונים למקום מרכזי‬ ‫– במידת האפשר יהיה חינמי ולא תלוי במוצר מדף כזה או‬ ‫אחר‬ ‫9‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 10. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫אז מה זה בעצם ‪?Powershell‬‬ ‫• כלי שורת פקודה של מיקרוסופט, המרחיב את שורת‬ ‫הפקודה הסטנדרטית (‪ )cmd‬ומעניק לו יכולות תכנות‬ ‫נרחבות יותר‬ ‫• משולב כחלק אינטגרלי בקו המוצרים האחרון‬ ‫כגון: ‪SQL 2008, Exchange 2007, Win 7, Win‬‬ ‫8002 ‪ Server‬ועוד‬ ‫• אידאלי לאוטומציה של תהליכים שונים לניהול‬ ‫ותחזוקת שרתים ותחנות עבודה‬ ‫01‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 11. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫היכרות בסיסית‬ ‫• סיומת קבצי הסקריפט: 1‪ps‬‬ ‫• מורכב לרוב מ)‪ cmdlets (command-lets‬שבנויים‬ ‫בצורת ‪ verb-noun‬למשל:‬ ‫–‬‫‪Get-help‬‬ ‫–‬‫‪Write-host‬‬ ‫–‬‫‪Get-content‬‬ ‫–‬‫‪Copy-item‬‬ ‫– על כל פקודה ניתן לקבל עזרה ופירוט ע"י שימוש ב-‬ ‫‪Get-help cmd-lets -detailed‬‬ ‫11‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 12. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ?Powershell-‫מה מאפשר ה‬ ,‫• יכולות תכנות נרחבות כמו שימוש בפונקציות‬ '‫לולאות, תנאים וכו‬ foreach ($db in $Srv.Databases) { $msg = $db.Name | Out-File $LogFile -Append $msg = " Status is: "+ $db.Status.ToString() | Out-File $LogFile - Append $msg = " Mirorring Status is: "+ $db.MirroringStatus.ToString()| Out-File $LogFile -Append if ((-not $db.Status.ToString().Equals("Normal")) -and ($db.IsMirroringEnabled) -and ( $db.MirroringStatus -ne 5)) {$DBStatus=1} } 12 ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 13. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫יכולות - המשך‬ ‫• עבודה אל מול שרתים ותחנות עבודה מרוחקות‬ begin { $BckDir = $BckDir.Substring(0,$BckDir.Length -1 ) –replace (":","$") if (Test-Path "$ServerName$BckDirfull_backup") {Get-ChildItem -Path "$ServerName$BckDirfull_backup" | Remove-Item -Recurse} return 0 } 13 ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 14. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫יכולות - המשך‬ ‫• הרחבה ע"י מחלקות ואובייקטים שונים כמו‬ .Net/Com/WMI $Srv=New-Object "Microsoft.SqlServer.Management.Smo.Server" "$ServerName“ $SmtpClient = new-object system.net.mail.smtpClient $MailMessage = New-Object system.net.mail.mailmessage [System.Reflection.Assembly]::LoadWithPartialName ("Microsoft.SharePoint") 14 ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 15. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ Powershell-‫הקריאה ל‬ ‫ במידה ורוצים להפעיל‬powershell.exe ‫• הפעלת סקריפט מתבצעת ע"י‬ ‫ במידה‬sqlps.exe ‫, או ע"י‬PS ‫ולהשתמש באובייקטים סנדרטיים של‬ .SQL Server ‫ורוצים להשתמש בהרחבות עבור‬ .‫• ניתן להרחיב את השפה ע"י קריאה לקובצי קונפיגורציה חיצוניים‬ :NetApp Snap Manager for SQL Server ‫למשל עבור‬ • powershell -PSConsoleFile "D:Program FilesNetAppSnapManager for SQL ServerSmsqlShell.psc1" "&'%ScriptDir%maintian.ps1' Backup %ServerName% %LogDir% full %FullBackupDir% 1“ ‫ ע"י‬SnapManager ‫• לאחר הקריאה להרחבה ניתן להפעיל פקודות של‬ :PS • New-Backup -LogBkup -bkupsif -verify -truncatelogs - GenericNaming -retainbackups 7 -retainsnapofsnapinfo 7 | Out-File $log 15 ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 16. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫היישום שלנו ברפאל‬ ‫• מבצע גיבויים‬ ‫– מלאים פעם ביום‬ ‫– לוגים כל שעה‬ ‫– דיפרנציאליים כל 4 שעות במהלך יום העבודה‬ ‫• מבצע בדיקת חיות ותקינות בסיסית של בסיסי‬ ‫הנתונים בשרת כל 5 דקות‬ ‫61‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 17. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫היישום - המשך‬ ‫• פעם ביום עובר על כל בסיסי הנתונים בשרת ומשנה את‬ ‫ההגדרות שלהם כך שיתאימו לתקנים ולשיטת העבודה‬ ‫ברפאל‬ ‫• פעם בשבוע ביצוע רה-ארגון לבסיסי הנתונים כולל ארגון‬ ‫ובנייה מחדש של האינדקסים, כיווץ בסיסי הנתונים,‬ ‫עדכון סטטיסטיקות, מחיקת היסטוריות ועוד‬ ‫71‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 18. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫היישום - המשך‬ ‫• שליחת מיילים במקרה של כשל, כולל צירוף קובץ הלוג של‬ ‫הפעולה שנכשלה‬ ‫• מחיקת קבצים ישנים לפי גיל‬ ‫• ביצוע פעולות מותאמות על שרתים ובסיסי נתונים‬ ‫מיוחדים/רגישים‬ ‫• שליחת ‪ Traps‬למערכת השו"ב המרכזית ולמערכת התזמון‬ ‫המרכזית‬ ‫81‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 19. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫שימוש ב-‪ SSIS‬עם פרמטרים‬ ‫‪SQL Server Integration Services -SSIS‬‬ ‫•‬ ‫מבוססים על טכולוגית ה-‪ .Net‬ומחליפים את ה-‬ ‫•‬ ‫‪ DTS‬החל מגרסת 5002 ‪SQL‬‬ ‫משמשים למעבר נתונים בין פלטפורומות שונות תוך‬ ‫•‬ ‫הפעלת לוגיקות שונות על הנתונים במהלך המעבר‬ ‫משמשים גם לביצוע פעולות תחזוקה שונות כמו‬ ‫•‬ ‫גיבויים, רה-ארגון של אינדקסים וכו'.‬ ‫91‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 20. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫‪Backup.dtsx‬‬ ‫• לצורך הפתרון בניתי ‪ SSIS‬חדש מסוג ‪SQLDBMaint‬‬ ‫• ה-‪ SSIS‬מכיל משימת גיבוי, משימת ניקוי וכתיבה לקובץ‬ ‫לוג‬ ‫02‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 21. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫‪Backup.dtsx‬‬ ‫• הוגדרו משתנים גלובליים ברמת ה ‪ Package‬כולו. כל‬ ‫משתנה מתקבל משורת הפקודה ומשוייך במהלך‬ ‫הריצה למשתנים הפנימיים של הרכיבים השונים.‬ ‫12‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 22. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫מבנה הקבצים והתיקיות‬ ‫• תיקייה מרכזית על השרת הראשי, בה יושב סקריפט‬ ‫ה-‪ Powershell‬הבודד‬ ‫• לכל שרת מנוהל יש תת תיקיה ובתוכה קבצים עם‬ ‫הגדרות עבור השרת ותיקיית ‪ log‬עבור הלוגים‬ ‫22‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 23. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫איך עובד התהליך?‬ ‫• מערכת התזמון המרכזית מפעילה קובץ ‪ batch‬בשעה‬ ‫מסויימת. בדוגמא הזו נציג גיבוי לוג‬ ‫32‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 24. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫מה בעצם קורה?‬ ‫• הקובץ שמורץ למעשה הוא הקובץ ‪dmp_log.bat‬‬ ‫שנראה כך:‬ ‫‪• call %~dp0db_env.bat‬‬ ‫‪• sqlps "&'%ScriptDir%maintian.ps1' Backup‬‬ ‫"3 %‪%ServerName% %LogDir% log %logBackupDir‬‬ ‫42‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 25. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ Db_env.bat ‫ מכיל פרמטרים שמשתנים משרת‬db_env-‫• קובץ ה‬ Powershell-‫לשרת ונקראים לפני הרצת ה‬ set ServerName=SERVERNAME set FullBackupDir=E:mssql_dump set LogBackupDir=F:mssql_dump set DiffBackupDir=G:mssql_dump set LogDir=D:jobsmssql%ServerName%log set ScriptDir=D:jobsmssql 25 ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 26. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫עיבוד המשתנים‬ ‫62‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 27. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫העברת המשתנים לפונקצייה המתאימה‬ ‫72‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 28. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫בניית שורת הפקודה‬ ‫ עם‬PS‫) נבנתה בתוך קובץ ה‬dtexec( ‫• שורת הפקודה‬ ‫הפרמטרים שנשלחו בהתאם לשרתים השונים‬ $strSsis = 'dtexec /DTS "MSDBMaintenance PlansBackup" ' $strSsis +='/SET "package.Variables[User::BackupPath].Value;$BckPath" ' $strSsis +='/SET "package.Variables[User::BackupType].Value;$BckType" ' $strSsis +='/SET "package.Variables[User::BackupTypeID].Value;$BckTypeID" ' $strSsis +='/SET "package.Variables[User::Extension].Value;$Ext" ' $strSsis +='/SET "package.Variables[User::IsDifferntial].Value;$IsDif" ' $strSsis +='/SET "package.Variables[User::ServerName].Value;$Server" ' # Execute the sring and save the log to file Invoke-Expression $strSsis | Out-File $LogFile 28 ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 29. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫ניטור הפעולה‬ ‫92‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 30. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫סיכום – מה בעצם נעשה?‬ ‫איחוד של מספר קבצי תחזוקת מערכת לקובץ אחד‬ ‫•‬ ‫גנרי‬ ‫ריכוז כל ההרצות למקום מרכזי אחד‬ ‫•‬ ‫ריכוז כל הלוגים למקום מרכזי אחד‬ ‫•‬ ‫שמירה על אחידות של בסיסי הנתונים‬ ‫•‬ ‫תחזוקה קלה, פשוטה ומהירה שחוסכת עשרות שעות‬ ‫•‬ ‫עבודה‬ ‫03‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 31. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫לאן מתקדמים מכאן?‬ ‫• מעבר ל-0.2‪ Powershell V‬ייתן כלים חדשים (בין היתר‬ ‫גם כלים גרפיים) ויאפשר לייעל את הסקריפט ואת‬ ‫תחזוקתו (למשל ע"י פקודת ‪)Send-Mail‬‬ ‫• כתיבת פונקצייה גנרית שתקבל כקלט שם ‪ ,SSIS‬תריץ‬ ‫אותו, תכתוב ‪ log‬פעילות שלו ותוציא את תוצאת ההרצה‬ ‫למערכים השונים (שו"ב, תזמון מרכזי)‬ ‫13‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 32. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫תודה על ההקשבה!‬ ‫שאלות?‬ ‫23‬ ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬
  • 33. ‫בלמ"ס‬ ‫ללא סיווג עסקי‬ ‫קישורים מעניינים‬ • PowerShell wiki: http://en.wikipedia.org/wiki/Windows_PowerShell • Why This SQL Server DBA is Learning Powershell by Ron Dameron http://www.simple-talk.com/sql/database-administration/why-this-sql- server-dba-is-learning-powershell/ • SQLPSX Project on Codeplex http://sqlpsx.codeplex.com/ 33 ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬