SlideShare a Scribd company logo
‫בלמ"ס‬
                         ‫ללא סיווג עסקי‬




    ‫‪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

PDF
Tekko Process 2003 Autumn
PPT
优秀Flash产品演示与技术解析
PPTX
Classes and objects 21 aug
PPT
provaoggi2
PPT
Introduction to flex
PDF
%Ca%c3%d8%bb%ca%b6%d4%b5%d4%5 b1%5d
PDF
Rank 31122011
PDF
Active active sql 2008 r2 cluster - Aviad Deri
Tekko Process 2003 Autumn
优秀Flash产品演示与技术解析
Classes and objects 21 aug
provaoggi2
Introduction to flex
%Ca%c3%d8%bb%ca%b6%d4%b5%d4%5 b1%5d
Rank 31122011
Active active sql 2008 r2 cluster - Aviad Deri

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

PDF
6 sql explorer - powershell dba
PPS
FinanceIT MIS DSS מערכות מידע ניהוליות תומכות החלטה
PPT
Dt for hp sales
PDF
217188243 rt-infa-general-2008
PDF
PDF
217185145 dba-rt-2011
PDF
Libi
PDF
Libi
PPTX
Sql Server Replication Isug 1 2009
PDF
Sales Kit To Be Excellent Account Manager By Zion Levi
PDF
10 istm bi and dw-amn
DOC
Check Point Command
PPT
Windows 2008 Security
PDF
Trends2010
PDF
Contel.Product.Catalog.2016
PDF
Dcl צביקה מנלה - סיפורי לקוחות
PDF
3 extreme performance - databases acceleration using ssd
PPTX
מערכות ניטור ובקרה למערכות It
DOC
Expand Cli Command
PDF
Sheatufim Toolbox Day - IT חברתי
6 sql explorer - powershell dba
FinanceIT MIS DSS מערכות מידע ניהוליות תומכות החלטה
Dt for hp sales
217188243 rt-infa-general-2008
217185145 dba-rt-2011
Libi
Libi
Sql Server Replication Isug 1 2009
Sales Kit To Be Excellent Account Manager By Zion Levi
10 istm bi and dw-amn
Check Point Command
Windows 2008 Security
Trends2010
Contel.Product.Catalog.2016
Dcl צביקה מנלה - סיפורי לקוחות
3 extreme performance - databases acceleration using ssd
מערכות ניטור ובקרה למערכות It
Expand Cli Command
Sheatufim Toolbox Day - IT חברתי
Ad

More from sqlserver.co.il (20)

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

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 ‫סימוכין‬ ‫קניין רפאל - מערכות לחימה מתקדמות בע"מ‬ ‫תאריך‬