• 使用powershell 监控sqlserver 一些状态


     

    需要监控基本的数据库参数,如恢复模型,页面验证,自动关闭,自动收缩,数据库所有者,自动创建统计启用,数据库创建日期等。因为是windows系统需要接住poweshell。

    我们的要求是,所有数据库都应该处于完全恢复模式,并且应该被监控。

    此外,我添加了其他重要参数,如AutoShrink, AutoClose等。

    脚本效果输出如下:

    #Change value of following variables as needed 
    $ServerList = Get-Content "D:SCMSSQLServer.txt" 
    $OutputFile = "D:SCMSSQLRecoverModel_MDA_$((Get-Date).ToString('ddMMyyyy_hhmm')).htm" 
    $HTML = '<style type="text/css"> 
       table{font-family: Calibri,Candara,Segoe,Segoe UI,Optima,Arial,sans-serif;100%; border: black;  border-style: double;  border- 2px;}
       table td,table th{font-size:1em;border:1px solid #98bf21;padding:3px 7px 2px;} 
       table th{font-size:1.1em;padding-top:5px;padding-bottom:4px;background-color:#81BEF7;color:#fff} 
      
        </Style>' 
    
    ################################################################################# Author: Sandeep Charaya : http://ilearnsql.wordpress.com/# Date: 16.06.2020# Comment: Script to obtain the disk space on remote servers################################################################################
    
    $HTML += "<HTML><BODY><Table border=1 cellpadding=0 cellspacing=0 width=100% id=Header> 
            <TR> 
        <TH align=center><B>Date</B></TH>
                <TH align=center><B>DatabaseName</B></TH> 
                <TH align=center><B>RecoveryModel</B></TH> 
                <TH align=center><B>PageVerify</B></TH> 
        <TH align=center><B>AutoClose</B></TH> 
        <TH align=center><B>AutoShrink</B></TH> 
        <TH align=center><B>DatabaseOwner</B></TH>
    <TH align=center><B>AutoCreateStatisticsEnabled</B></TH>
        <TH align=center><B>DB CreateDate</B></TH>
            </TR>" 
     
    [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null 
    ForEach ($ServerName in $ServerList) 
    { 
        $HTML += "<TR bgColor='#81F7D8'><TD colspan=9 align=center><B>$ServerName</B></TD></TR>" 
         
        $SQLServer = New-Object ('Microsoft.SqlServer.Management.Smo.Server') $ServerName  
        Foreach($Database in $SQLServer.Databases | where-object {$_.Name -ne "tempdb" -and $_.Name -ne "master" -and $_.Name -ne "ReportServerTempDB" -and $_.Name -ne "ReportServer$SGSI2W0256TempDB" -and $_.Name -ne "ReportServer$SGSI2W0256"}) 
        { 
    $DatabaseName=$Database.Name
            $SimpleRecoveryModel=$Database.RecoveryModel
    $PageVerify=$Database.pageverify
    $AutoClose=$Database.autoclose
    $Autoshrink=$Database.autoshrink
    $DBOwner=$Database.owner
    $AutoCreateStatisticsEnabled=$Database.AutoCreateStatisticsEnabled
    $CreateDate=$Database.CreateDate
            $EndDate=Get-Date
    
    
    IF ($SimpleRecoveryModel -eq 'simple')
    {
    $color1 = 'red'
    }
    ELSE {$color1 = 'Green'}
    IF ($PageVerify -ne 'Checksum')
    {
    $color2 = 'red'
    }
    ELSE {$color2 = 'Green'}
    IF ($AutoClose -eq 'True')
    {
    $color3 = 'red'
    }
    ELSE {$color3 = 'Green'}
    IF ($Autoshrink -eq 'True')
    {
    $color4 = 'red'
    }
    ELSE {$color4 = 'Green'}
    IF ($DBOwner -eq "" -Or $DBOwner -Like "*sadm*")
    {
    $color5 = 'yellow'
    }
    ELSE {$color5 = 'Green'}
    IF ($AutoCreateStatisticsEnabled -eq 'True')
    {
    $color6 = 'green'
    }
    ELSE {$color6 = 'red'}
    
                  
     IF ( $color1 -eq 'red' -or $color2 -eq 'red' -or $color3 -eq 'red' -or $color4 -eq 'red' -or $color5 -eq 'red' -or $color6 -eq 'red')
     { 
    $HTML += "<TR> 
        <TD>$(get-date)</TD>
                        <TD>$($Database.Name)</TD> 
                        <TD BGCOLOR='$color1' ALIGN=CENTER>$($Database.RecoveryModel)</TD> 
        <TD BGCOLOR='$color2' ALIGN=CENTER>$($Database.pageverify)</TD>
        <TD BGCOLOR='$color3' ALIGN=CENTER>$($Database.autoclose)</TD>
        <TD BGCOLOR='$color4' ALIGN=CENTER>$($Database.autoshrink)</TD>
        <TD BGCOLOR='$color5' ALIGN=CENTER>$($Database.owner)</TD>
    <TD BGCOLOR='$color6' ALIGN=CENTER>$($Database.AutoCreateStatisticsEnabled)</TD>
    <TD BGCOLOR='green' ALIGN=CENTER>$($Database.createdate)</TD>
                    </TR>" 
    
        } 
    
    }
    } 
    
    $HTML += "</Table></BODY></HTML>" 
    $HTML | Out-File $OutputFile
     

    adm_d14_jxpp_wx_robot_group_task_send_msg_di

  • 相关阅读:
    121.买卖股票 求最大收益1 Best Time to Buy and Sell Stock
    409.求最长回文串的长度 LongestPalindrome
    202.快乐数 Happy Number
    459.(KMP)求字符串是否由模式重复构成 Repeated Substring Pattern
    326.是否为3的平方根 IsPowerOfThree
    231.是否为2的平方根 IsPowerOfTwo
    461.求两个数字转成二进制后的“汉明距离” Hamming Distance
    206.反转单链表 Reverse Linked List
    448. 数组中缺少的元素 Find All Numbers Disappeared in an Array
    常见表单元素处理
  • 原文地址:https://www.cnblogs.com/wenBlog/p/16040899.html
Copyright © 2020-2023  润新知