Cara menentukan parameter startup SQL dalam instalasi yang tenang melalui baris perintah

10

Saya ingin memperbaiki bug kesenjangan identitas dalam SQL Server 2012 melalui -T272parameter startup.

Bagaimana saya bisa mengotomatiskan ini setelah instalasi? Saya tidak menemukan parameter instal untuk parameter startup.

Mohsen Afshin
sumber
1
Satu koreksi, tanda jejak untuk ini harus ditambahkan dengan huruf kecil tjadi -t272bukan -T272. Dicatat di sini

Jawaban:

4

Jika Anda pergi lebih dari setengah jalan di tautan ini, Anda akan melihat parameter startup untuk jejak jejak.

Anda dapat menambahkannya di manajer konfigurasi di sini:

masukkan deskripsi gambar di sini

Dalam hal ini akan -T272dengan huruf kapital T. Per tautan huruf kecil t adalah untuk bendera spesifik yang digunakan oleh insinyur pendukung.

EDIT @MaxVernon menunjukkan bahwa saya melewatkan pokok pertanyaan :) Shawn Melton memiliki pos di sini di mana dia membahas apa yang Anda coba lakukan. Dia memiliki skrip yang dapat Anda jalankan untuk menambahkan parameter startup. Mike Fal kemudian menulis tindak lanjut di sini di mana ia berbagi fungsi yang ia tulis disebut Set-SQLStartupParameters yang seharusnya agak lebih aman daripada metode Shawn.

Berikut ini kode Shawn: (Mike memerlukan unduhan dari GitHub agar Anda dapat mengikuti tautan jika Anda menginginkannya.)

$server = 'MyServer'
$sqlservice = "MSSQLSERVER"
$sqlagentservice = "SQLSERVERAGENT"
$flagsToAdd = ';-T1117;-T1118;-T3226"

Add-Type -AssemblyName "Microsoft.SqlServer.SqlWmiManagement,Version=11.0.0.0,Culture=neutral,PublicKeyToken=89845dcd8080cc91"
$sqlwmi = New-Object Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer $server
$wmisvc = $sqlwmi.Services | where {$_.name -eq $sqlservice}
$wmisvc.StartupParameters = $wmisvc.StartupParameters + $flagsToAdd
$wmisvc.Alter()

$wmisvc.Stop()
Start-Sleep -seconds 15
$wmisvc.Start()

$wmiAgent = $sqlwmi.Services | where {$_.name -eq $sqlagentservice}
$wmiAgent.Start()
Kenneth Fisher
sumber