Apakah ada cara keren untuk melakukan pembaruan CU untuk SQL Server pada ratusan mesin?

19

Perusahaan saya telah berkembang dari 50 Server SQL menjadi lebih dari 200 semalam dalam akuisisi merger. TOLONG!

Pertanyaan saya adalah:

  • Bagaimana saya bisa melakukan pembaruan CU pada banyak server ini dan masih memiliki kehidupan dan menjaga kewarasan saya? SCCM tampaknya tidak dapat melakukan pembaruan CU.

  • Adakah orang lain yang dapat melakukan pembaruan CU pada 100-an server?

  • Apa saja alternatif lain?

Russ Starksen
sumber
Metode Shawn tentu merupakan metode yang keren untuk melakukannya. WSUS jauh lebih tidak keren, tetapi lebih didukung. Keduanya adalah solusi yang bagus.
Ali Razeghi
5
Apa jendela pemadaman yang diizinkan pada mesin itu? Bisakah Anda mengambil pemadaman kapan saja Anda mau, atau apakah Anda harus membuat jadwal untuk mesin tertentu? Apakah cluster terlibat? Mirroring dan replikasi? Grup Ketersediaan AlwaysOn? Pekerjaan batch yang mungkin perlu dihentikan, seperti cadangan atau pekerjaan beban ETL?
Brent Ozar
"Keren" bukan cara obyektif untuk menggambarkan sesuatu. = / Saya akan menyarankan hasil edit, tetapi tidak dapat menemukan apa pun yang berhasil.
jpmc26
Ada jawaban yang bagus untuk pertanyaan ini yang diposting di situs Bret Ozars dalam artikelnya. "Mengapa Tidak Ada yang pernah menambal sql Server mereka". brentozar.com/archive/2015/08/...
Russ Starksen

Jawaban:

15

The cool wayadalah dengan menggunakan script instalasi tanpa pengawasan yang hanya disebut dari setiap server, di mana media untuk instalasi pada direktori pusat pada jaringan Anda, yang dapat diakses dari setiap server. Anda harus menjalankan skrip dalam mode tinggi, yang ini cukup mudah di PowerShell.

Anda perlu menggunakan CLI untuk mengekstrak perbaikan terbaru, saya menemukan itu di sini . Kemudian opsi CLI untuk tambalan SQL Server dapat ditemukan di sini .

Perintah berikut ini adalah apa yang saya gunakan untuk menerapkan patch CU6 ke contoh SQL Server 2012 SP2 lokal di laptop saya. Saya mengubah ke direktori tempat saya mengunduh perbaikan terbaru ke:

.\SQLServer2012-KB3052468-x64.exe /X:E:\Software\SQL_Server\2012\SP2_CU6\Extracted
cd Extracted
.\setup.exe /action=patch /instancename=SQL12 /quiet /IAcceptSQLServerLicenseTerms

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Anda cukup banyak bekerja menulis ini sebagai skrip untuk setiap server, kemudian tarik sedikit ringkasan log (atau hanya seluruh log) ke pusat tempat sehingga Anda dapat kembali dan menentukan status. Opsi 2 adalah dengan memasukkan beberapa baris kode untuk terhubung ke setiap instance dan memverifikasi nomor build.

Shawn Melton
sumber
9

Instalasi tanpa pengawasan adalah cara untuk pergi - seperti yang disebutkan @ShawnMelton . Untuk menyebarkan CU di 100-an server, Anda dapat menjelajahi opsi di bawah ini (uji mereka, sehingga Anda tahu apa yang akan bekerja untuk Anda dan lingkungan Anda):

  1. Sysinternals - PsExecakan memungkinkan Anda untuk menelurkan instalasi pada mesin jarak jauh.
  2. PowerShell - Gunakan fitur remoting di PowerShell 3.0 dan lebih tinggi untuk melakukan instalasi. misalnyaEnter-PSSession -ComputerName <COMPUTERNAME>
  3. Lama adalah .batfile yang menggunakan Emas . <== ini pasti berfungsi dengan SCCM karena Anda dapat menggunakan .batfile ke beberapa server menggunakan SCCM.

    Di bawah ini adalah contoh pemasangan SQL2008_SP2_and_CU_2k8_64bit (modifikasi sesuai kebutuhan Anda) . Anda dapat memberi makan file kelelawar ke SCCM sehingga dapat melakukan instalasi massal.

    REM starting SQL SP2 cu install.
    "C:\temp\SQL2008_SP2_and_CU_2k8_64bit\CU\SQLServer2008-KB2467239-x64.exe" /allinstances /quiet
    REM SQL SP2 cu install complete
    
    REM optional   STEP to reboot your machine 
    REM Reboot the host before kicking off the install
    shutdown.exe /r /f /c "DBA scheduled reboot" /t 30

Sebagai catatan tambahan (Perhatian!):

Saya tidak akan pernah melakukan jenis pembaruan massal ini ke banyak server ini (100-an) dalam satu kesempatan. Alih-alih, kumpulkan dalam kelompok yang dapat dikelola dan kemudian tempelkan dalam kelompok.

Dengan cara ini Anda dapat dengan mudah mengetahui apakah ada masalah - misalnya jika ada bug di CU yang Anda pasang, dan diperbaiki di CU atau SP yang lebih baru. Atau instalasi bijaksana juga, jika Anda menambal 100 server dalam satu kesempatan dan dari mereka 5 atau 7 server tidak mendapatkan tambalan dengan benar, bagaimana Anda akan mencari tahu?

Saya mengelola lebih dari 300+ server di perusahaan saya dan saya lebih memilih untuk menambalnya dalam batch yang lebih kecil setiap minggu. JADI Anda mulai dengan angka kecil dan sekali Anda mendapatkan kepercayaan, Anda ulangi hal yang sama.

EDIT:

Sekarang dbatools memiliki Update-DbaInstance.ps1yang dapat melakukan instalasi Paket Layanan SQL Server dan Pembaruan Kumulatif di server lokal dan jauh.

Kin Shah
sumber