Aracılığıyla paylaş


Sql Server'ı PowerShell İstenen Durum Yapılandırması ile yükleme

Sql Server yükleme arabiriminde yalnızca aynı düğmeleri seçerek, aynı bilgileri girerek ve bir kez daha düşünmeyerek hiç geçtiniz mi? Yükleme tamamlandı, ancak sysadmin rolünde DBA grubunu belirtmeyi unuttunuz. Sonra şunları yapmak zorunda kaldınız:

  • Tek kullanıcı moduna geçin.
  • Uygun kullanıcıları veya grupları ekleyin.
  • SQL Server'ı çok kullanıcılı modda geri getirin.
  • Test.

Daha da kötüsü, tüm sistemin güveni sarsıldı. "Başka neyi unuttum?" diye kendinize sorabilirsiniz.

PowerShell İstenen Durum Yapılandırması (DSC) hakkında bilgi edinin. DSC kullanarak, yüzlerce ve binlerce sunucuda yeniden kullanabileceğiniz bir yapılandırma şablonu oluşturursunuz. Derlemeye bağlı olarak, kurulum parametrelerinden birkaçını ayarlamanız gerekebilir. Ancak bu önemli bir sorun değildir çünkü tüm standart ayarları yerinde tutabilirsiniz. Önemli bir parametre girmeyi unutma olasılığını ortadan kaldırır.

Bu makalede, SqlServerDsc DSC kaynağını kullanarak Windows Server 2016'da sql server 2017'nin tek başına bir örneğinin ilk kurulumu incelenmiştir. DSC'nin nasıl çalıştığını araştırmayacağımızdan, DSC hakkında önceden bazı bilgiler yararlı olacaktır.

Not

Bu makale, Windows Server 2016, 2019 ve 2022 ile yüklenen varsayılan PowerShell sürümü olan PowerShell 5.1'e başvurur.

Bu izlenecek yol için aşağıdaki öğeler gereklidir:

  • Windows Server 2016 çalıştıran bir makine.
  • SQL Server 2017 yükleme medyası.
  • SqlServerDsc DSC kaynağı.

Önkoşullar

Çoğu durumda, önkoşul gereksinimlerini işlemek için DSC kullanılır. Ancak bu tanıtımın amaçları doğrultusunda önkoşulları el ile ele alıyoruz.

SqlServerDsc DSC kaynağını yükleme

SqlServerDsc DSC kaynağını, Install-Module cmdlet'ini kullanarak PowerShell Galerisi üzerinden indirin.

Not

Modülü yüklemek için PowerShell'in yönetici olarak çalıştığından emin olun.

Install-Module -Name SqlServerDsc

SQL Server 2017 yükleme medyasını alma

SQL Server 2017 yükleme medyasını sunucuya indirin. SQL Server 2017 Enterprise'ı bir Visual Studio aboneliğinden indirdik ve ISO'yu C:\en_sql_server_2017_enterprise_x64_dvd_11293666.isokopyaladık.

Şimdi ISO bir dizine ayıklanmalıdır:

New-Item -Path C:\SQL2017 -ItemType Directory
$mountResult = Mount-DiskImage -ImagePath 'C:\en_sql_server_2017_enterprise_x64_dvd_11293666.iso' -PassThru
$volumeInfo = $mountResult | Get-Volume
$driveInfo = Get-PSDrive -Name $volumeInfo.DriveLetter
Copy-Item -Path ( Join-Path -Path $driveInfo.Root -ChildPath '*' ) -Destination C:\SQL2017\ -Recurse
Dismount-DiskImage -ImagePath 'C:\en_sql_server_2017_enterprise_x64_dvd_11293666.iso'

Yapılandırmayı oluşturma

Konfigürasyon

Yönetilen Nesne Biçimi (MOF) belgeleri oluşturmak için çağrılacak yapılandırma işlevini oluşturun:

Configuration SQLInstall
{...}

Modül

Modülleri geçerli oturuma aktarın. Bu modüller, yapılandırma belgesine MOF belgelerini nasıl oluşturacaklarını bildirir. Ayrıca DSC altyapısına MOF belgelerinin sunucuya nasıl uygulanacağını da söyler:

Import-DscResource -ModuleName SqlServerDsc

Kaynaklar

.NET Çerçevesi

SQL Server, .NET Framework'e dayanır. Bu nedenle, SQL Server'ı yüklemeden önce yüklü olduğundan emin olmamız gerekir. WindowsFeature kaynağı, Net-Framework-45-Core Windows özelliğini yüklemek amacıyla kullanılır.

WindowsFeature 'NetFramework45'
{
     Name = 'Net-Framework-45-Core'
     Ensure = 'Present'
}

Sql Kurulumu

SqlSetup kaynağı, DSC'ye SQL Server'ın nasıl yükleneceğini bildirmek için kullanılır. Temel yükleme için gereken parametreler şunlardır:

  • InstanceName. Örneğin adı. Varsayılan örnek için MSSQLSERVER kullanın.
  • Özellikleri. Yüklenecek özellikler. Bu örnekte yalnızca SQLEngine özelliğini yükleyeceğiz.
  • SourcePath. SQL yükleme medyasının konumu. Bu örnekte SQL yükleme medyasını C:\SQL2017içinde depoladık. Ağ paylaşımı, sunucuda kullanılan alanı en aza indirebilirsiniz.
  • SQLSysAdminAccounts. sysadmin rolünün üyesi olacak kullanıcılar veya gruplar. Bu örnekte, yerel Yöneticiler grubuna sysadmin erişimi için yetkisi veriyoruz.

Not

Bu yapılandırmanın yüksek güvenlikli bir ortamda kullanılması önerilmez.

SqlSetup'deki kullanılabilen parametrelerin tam listesi ve açıklaması, SqlServerDsc GitHub deposunda mevcuttur.

SqlSetup kaynağı yalnızca SQL Server'ı yükler ve uygulanan ayarları korumaz. SqlSysAdminAccounts yükleme zamanında belirtilip belirtilmediğine örnek olarak verilmiştir. Yönetici, sysadmin rolüne oturum açma ekleyebilir veya bu rolden oturum açma işlemlerini kaldırabilir. Ancak SqlSetup kaynağı etkilenmez. DSC'nin sysadmin rolünün üyeliğini zorlamasını istiyorsanız, SqlServerRole kaynağını kullanın.

Yapılandırmayı bitir

Configuration SQLInstall
{
     Import-DscResource -ModuleName SqlServerDsc

     node localhost
     {
          WindowsFeature 'NetFramework45'
          {
               Name   = 'NET-Framework-45-Core'
               Ensure = 'Present'
          }

          SqlSetup 'InstallDefaultInstance'
          {
               InstanceName        = 'MSSQLSERVER'
               Features            = 'SQLENGINE'
               SourcePath          = 'C:\SQL2017'
               SQLSysAdminAccounts = @('Administrators')
               DependsOn           = '[WindowsFeature]NetFramework45'
          }
     }
}

İnşa etme ve yayınlama

Yapılandırmayı oluşturma

Yapılandırma betiğinin kaynağını belirleyin:

. .\SQLInstallConfiguration.ps1

Yapılandırma işlevini çalıştırın:

SQLInstall

çalışma dizininde SQLInstall adlı bir dizin oluşturulur. localhost.mofadlı bir dosya içerir. Derlenmiş DSC yapılandırmasını gösteren MOF içeriğini inceleyin.

Yapılandırmayı dağıt

SQL Server'ın DSC dağıtımını başlatmak için Start-DscConfiguration cmdlet'ini çağırın. Cmdlet'ine aşağıdaki parametreler sağlanır:

  • yol. Dağıtılacak MOF belgelerini içeren klasörün yolu. Örnek olarak C:\SQLInstall.
  • Bekleyin. Yapılandırma işinin tamamlanmasını bekleyin.
  • Güç. Mevcut DSC yapılandırmalarını geçersiz kılın.
  • Ayrıntılı. Ayrıntılı çıkışı gösterin. Yapılandırmayı ilk kez gönderdiğinizde, sorun gidermeye yardımcı olması için kullanışlıdır.
Start-DscConfiguration -Path C:\SQLInstall -Wait -Force -Verbose

Yapılandırma uygulandığında, ayrıntılı çıktı size nelerin olduğunu gösterir. Ekranda 'İşlemi 'CimMethod'u Çağır' tamamlandı' ifadesi göründüğünde ve herhangi bir hata (kırmızı metin) oluşmadığı sürece, SQL Server yüklenmelidir.

Yüklemeyi doğrulama

DSC

Test-DscConfiguration cmdlet'leri sunucunun geçerli durumunun istenen durumu karşılayıp karşılamadığını belirleyebilir. Bu durumda, SQL Server yüklemesidir. Test-DscConfiguration sonucu, True olmalıdır:

PS C:\> Test-DscConfiguration
True

Hizmetleri

Hizmetler listesi artık SQL Server hizmetlerini döndürür:

PS C:\> Get-Service -Name *SQL*
Status  Name           DisplayName
------  ----           -----------
Running MSSQLSERVER    SQL Server (MSSQLSERVER)
Stopped SQLBrowser     SQL Server Browser
Running SQLSERVERAGENT SQL Server Agent (MSSQLSERVER)
Running SQLTELEMETRY   SQL Server CEIP service (MSSQLSERVER)
Running SQLWriter      SQL Server VSS Writer

SQL Sunucusu

PS C:\> & sqlcmd -S $env:COMPUTERNAME
1> SELECT @@SERVERNAME
2> GO
1> quit