5 Mayıs 2013 Pazar

Windows PowerShell ile SQL Server 2012




    Merhaba arkadaşlar, geçen hafta sizlere Windows PowerShell ile uzaktan kontrol konusunu anlatmıştım. Bu hafta sizlere Windows PowerShell ile SQL Server 2012'yi anlatacağım. Aşağıdaki adresten SQL Server 2012 hakkında bilgi edinebilirsiniz.

http://www.microsoft.com/turkiye/basinodasi/2012/pr03023012.aspx


    Daha önceki yazılarımı ve örneklerimi Windows PowerShell 2.0 hakkında yapmıştım. Bundan sonra anlatacağım konular ve örnekler PowerShell 3.0 üzerinde olacaktır. Bunun nedeni ise Windows PowerShell 3.0 ile gelen yenilikler ve SQL Server 2012'nin Windows PowerShell 3.0 ile daha kolay kontrol edilmesidir. Windows 8'de PowerShell 3.0, işletim sistemiyle birlikte sunulmaktadır. Windows 7 veya daha eski bir işletim sistemi kullanıyorsanız bilgisayarınıza Windows PowerShell 3.0'ı kurmanız gerekmektedir. Bunun için bilgisayarınızda Microsoft .NET Framework 4.0'ın yüklü olması gerekmektedir. Windows PowerShell 3.0'ı yüklemek için Windows Management Framework 3.0'ı (WMF) bilgisayarınıza kurmanız yeterli olacaktır.


    Microsoft .NET Framework 4.0'ı indirmek için aşağıdaki adresi kullanabilirsiniz.

http://www.microsoft.com/en-in/download/details.aspx?id=17851

    Windows Management Framework 3.0'ı indirmek için aşağıdaki adresi kullanabilirsiniz.

http://www.microsoft.com/en-in/download/details.aspx?id=34595

    SQL Server 2012'yi aşağıdaki adresten indirebilirsiniz.

http://www.microsoft.com/betaexperience/pd/SQL2012EvalCTA/enus/default.aspx

    SQL Server 2012 kurulumu detaylı anlatımı için aşağıdaki adresi kullanabilirsiniz.

http://www.teknolojioku.com/forum/Konu-SQL-Server-2012-Kurulumu-4719.html

 

    PowerShell üzerinden yazacağımız komutlarla SQL Server'a bağlanabilir ve SQL Server üzerinde yaptığımız çoğu işlemleri PowerShell ekranından gerçekleştirebiliriz. SQL Server komutlarını yüklemek ve SQL Server'a bağlanmak için aşağıdaki komutu kullanıyoruz.

Import-Module SQLPS




    Resimde de görüldüğü gibi Windows PowerShell ISE daha gelişmiş bir arayüze sahiptir. Yükleyeceğimiz modülleri sağ taraftaki arama çubuğundan arayarak bulabiliriz. Aynı zamanda komutların, parametrelerin ve diğer yazıların renkleri farklı olduğundan bunları birbirinden ayırt etmek çok daha kolay hale gelmiştir.


    SQL Server'ı yönetirken kullanacağınız komutları listelemek için aşağıdaki komutu kullanabilirsiniz.

Get-Command -Module "*SQL*" | Select CommandType, Name, ModuleName | Format-Table -AutoSize

Output:
PS SQLSERVER:\> Get-Command -Module "*SQL*" | Select CommandType, Name, ModuleName | Format-Table -AutoSize

CommandType Name                                     ModuleName  
----------- ----                                     ----------  
   Function SQLSERVER:                               SQLPS       
     Cmdlet Add-RoleMember                           SQLASCMDLETS
     Cmdlet Add-SqlAvailabilityDatabase              SQLPS       
     Cmdlet Add-SqlAvailabilityGroupListenerStaticIp SQLPS       
     Cmdlet Backup-ASDatabase                        SQLASCMDLETS
     Cmdlet Backup-SqlDatabase                       SQLPS       
     Cmdlet Convert-UrnToPath                        SQLPS       
     Cmdlet Decode-SqlName                           SQLPS       
     Cmdlet Disable-SqlAlwaysOn                      SQLPS       
     Cmdlet Enable-SqlAlwaysOn                       SQLPS       
     Cmdlet Encode-SqlName                           SQLPS       
     Cmdlet Invoke-ASCmd                             SQLASCMDLETS
     Cmdlet Invoke-PolicyEvaluation                  SQLPS       
     Cmdlet Invoke-ProcessCube                       SQLASCMDLETS
     Cmdlet Invoke-ProcessDimension                  SQLASCMDLETS
     Cmdlet Invoke-ProcessPartition                  SQLASCMDLETS
     Cmdlet Invoke-Sqlcmd                            SQLPS       
     Cmdlet Join-SqlAvailabilityGroup                SQLPS       
     Cmdlet Merge-Partition                          SQLASCMDLETS
     Cmdlet New-RestoreFolder                        SQLASCMDLETS
     Cmdlet New-RestoreLocation                      SQLASCMDLETS
     Cmdlet New-SqlAvailabilityGroup                 SQLPS       
     Cmdlet New-SqlAvailabilityGroupListener         SQLPS       
     Cmdlet New-SqlAvailabilityReplica               SQLPS       
     Cmdlet New-SqlHADREndpoint                      SQLPS       
     Cmdlet Remove-RoleMember                        SQLASCMDLETS
     Cmdlet Remove-SqlAvailabilityDatabase           SQLPS       
     Cmdlet Remove-SqlAvailabilityGroup              SQLPS       
     Cmdlet Remove-SqlAvailabilityReplica            SQLPS       
     Cmdlet Restore-ASDatabase                       SQLASCMDLETS
     Cmdlet Restore-SqlDatabase                      SQLPS       
     Cmdlet Resume-SqlAvailabilityDatabase           SQLPS       
     Cmdlet Set-SqlAvailabilityGroup                 SQLPS       
     Cmdlet Set-SqlAvailabilityGroupListener         SQLPS       
     Cmdlet Set-SqlAvailabilityReplica               SQLPS       
     Cmdlet Set-SqlHADREndpoint                      SQLPS       
     Cmdlet Suspend-SqlAvailabilityDatabase          SQLPS       
     Cmdlet Switch-SqlAvailabilityGroup              SQLPS       
     Cmdlet Test-SqlAvailabilityGroup                SQLPS       
     Cmdlet Test-SqlAvailabilityReplica              SQLPS       
     Cmdlet Test-SqlDatabaseReplicaState             SQLPS       


Windows PowerShell ile SQL Server'da "Instance" Oluşturmak


    "Windows authentication" kullanarak bir "instance" oluşturmayı adım adım göstermek istiyorum.

  1. İlk olarak SQL komutlarını "import" ediyoruz.

  2. Import-Module SQLPS -DisableNameChecking

  3. Daha sonra "instance" ismini bir değişkene atıyoruz.

  4. $instanceName = "Vahit"
    

  5. SQL Server "instance"'ı aşağıdaki komutla kuruyoruz.

  6. $server = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList $instanceName
    

  7. "Login" esnasındaki isim ve şifre sorunlarından kurtulmak için bazı ayarlar yapıyoruz. Bilgisayar adı ve alan adı (domain) arasındaki "\\" (backslash") işaretinden kurtuluyoruz.

  8. Yapacağımız bağlantıda şifre olmasını istemiyorsak bunun da ayarını yapıyoruz.

  9. $server.ConnectionContext.set_LoginSecure($false)
    

    $credentials = Get-Credential
    

    $login = $credentials.UserName -replace("\\","")
    

    $server.ConnectionContext.set_Login($login)
    

    $server.ConnectionContext.set_SecurePassword($credentials.Password)
    

  10. Son olarak "connection string"'i kontrol ediyoruz.

  11. $server.ConnectionContext.ConnectionString
    

    Output:
    server='Vahit';uid='Vahit';password='';Application Name='SQL Management';
    multipleactiveresultsets=false
    

    Write-Verbose "Connected to $($server.Name)"
    Write-Verbose "Logged in as $($server.ConnectionContext.TrueLogin)"
    



    Bu haftalık kurulumlar ve bir kaç örnek üzerinde durdum. Haftaya ayrıntılı olarak Windows PowerShell ile SQL Server kullanımını anlatacağım.


    Haftaya görüşmek üzere, hoşçakalın.


Referanslar:

Kitap: "SQL Server 2012 with PowerShell V3 Cookbook"
http://www.microsoft.com/turkiye/basinodasi/2012/pr03023012.aspx
http://www.microsoft.com/betaexperience/pd/SQL2012EvalCTA/enus/default.aspx
http://www.microsoft.com/en-in/download/details.aspx?id=17851
http://www.microsoft.com/en-in/download/details.aspx?id=34595
http://www.teknolojioku.com/forum/Konu-SQL-Server-2012-Kurulumu-4719.html

Hiç yorum yok:

Yorum Gönder