SQL Server tidak dimulai pada startup Windows tetapi mulai secara manual

21

Layanan instance SQL Server (SQL Server 2008 R2 Express) saya memiliki Jenis Startup = Otomatis. Beberapa kali terakhir saya me-restart komputer saya layanan telah gagal untuk memulai sendiri, tetapi mulai dengan baik ketika saya secara manual memulai layanan.

Peraga Peristiwa menunjukkan bahwa layanan gagal memulai karena batas waktu koneksi. Ada 2 entri mengenai batas waktu ini:

Entri 1

Batas waktu tercapai (30000 milidetik) sambil menunggu layanan SQL Server (SQLEXPRESS) tersambung.

Entri 2

Layanan SQL Server (SQLEXPRESS) gagal memulai karena kesalahan berikut: Layanan tidak menanggapi permintaan mulai atau mengontrol secara tepat waktu.

Saya memeriksa file ERRORLOG dan tidak ada kesalahan yang dicatat sekitar waktu entri Peraga Peristiwa tersebut.

Adakah ide tentang penyebab masalah ini atau bagaimana saya dapat menyelidiki lebih lanjut?

Keith
sumber

Jawaban:

12

Masalah ini terjadi karena SQL Server kehilangan kredensial id masuk atau menggunakan akun tanpa hak untuk memulai layanan.

Untuk memulai layanan Anda secara otomatis, SQL Server memerlukan akun dengan hak untuk memulai layanan selama sistem operasi mulai.

Untuk mengatasi masalah ini, Anda harus pergi Alat Administratif> Layanan> SQL Server (MSSQLSERVER atau nama instance Anda)> Klik Kanan> Properti> Pindah ke Log Masuk> Setel opsi Log Masuk menggunakan Akun Sistem Lokal

Jika Anda telah memilih opsi ini, tekan tombol Browse dan temukan Akun Layanan Lokal atau Akun layanan jaringan di sana> Klik Terapkan.

Mulai ulang komputer Anda dan Anda dapat memulai SQL Server Anda.

jmonterohn
sumber
1

Hanya dengan cepat memikirkan sesuatu untuk dilihat, dalam lingkungan tipe domain, beberapa sistem operasi memungkinkan Anda untuk masuk ke server sebelum konektivitas jaringan penuh dibuat. Anda mungkin ingin memeriksa apakah ada pengaturan kebijakan grup tingkat lokal atau domain untuk tidak mengizinkan masuk atau mulai OS sampai konektivitas jaringan penuh dibuat.

Kalau-kalau Anda perhatikan ini ketika Anda masuk ke server setelah reboot, itu sebenarnya masuk ke OS dengan kredensial yang di-cache sebelum dapat mencapai pengontrol domain untuk mengotentikasi (konektivitas jaringan tidak sepenuhnya dibangun) dengan kredensial masuk jika kredensial domain akun layanan SQLExpress berjalan sebagai.

Tidak yakin apakah itu tepat berlaku dalam kasus Anda, tetapi ini adalah sesuatu untuk setidaknya menyelidiki dan mencoba untuk menguji setidaknya untuk berjaga-jaga.

Saya menemukan ini di beberapa artikel yang saya simpan sejak lama ketika saya memiliki masalah serupa dengan direktori home AD (bukan melalui skrip login) untuk memetakan direktori home untuk PC workstation:

Nilai kebijakan untuk Konfigurasi Komputer -> Template Administratif -> Sistem -> Logon "Selalu Tunggu Jaringan saat Startup Komputer dan Logon" akan diatur ke "Diaktifkan".

Jika nilai registri berikut tidak ada atau nilainya tidak disetel ke 1, maka ini adalah temuan:

Registry Hive: HKEY_LOCAL_MACHINE Subkey: \ Software \ Kebijakan \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ Nilai Nama: SyncForegroundPolicy Jenis: REG_DWORD Nilai: 1

Pimp Juice
sumber
1

Sudahkah Anda mencoba masuk sebagai Administrator lokal?

Saya telah mengalami masalah yang sama persis dengan SQL 2014 Express pada Windows 10. Saya ingin membuat pengguna baru yang bukan Administrator lokal built-in jadi saya membuat pengguna baru, menambahkannya ke grup Administrators, mengatur pengguna itu untuk autologon saat boot dan voila! Layanan SQL Server gagal memulai secara otomatis. Saya mencoba memulai yang tertunda, mencoba Layanan Lokal, mencoba Layanan Jaringan, mencoba pengguna administrator baru, mencoba pengaturan kebijakan grup Selalu Tunggu .... Tidak ada yang berhasil.

Bahkan uninstall SQL Server 2014 Express, reboot, secara manual menghapus semua file / folder sisa dan reboot lagi dan diinstal ulang di bawah pengguna administrator baru. Masih tidak jalan.

Beralih kembali ke autologon sebagai akun Administrator bawaan dan voila! Layanan SQL Server sekarang mulai secara otomatis.

Ini jelas merupakan solusi bagi saya jadi saya masih meneliti.

** PEMBARUAN **

Sebenarnya, masalah saya berakar pada mesin yang telah diganti nama sebelumnya. Setelah saya mengubah nilai "OriginalMachineName" dalam registri, masalah terpecahkan!

Jerry Turner
sumber
-1

Saya pergi ke layanan lokal dan berubah

SQL Server (MSSQLSERVER SQL Server Agent (MSSQLSERVER)

Tetapkan mereka ke Otomatis Ditunda dan jenis Masuk ke

Centang Akun Sistem Lokal ( Izinkan layanan Berinteraksi dengan desktop )

Dan itu dimulai secara otomatis

Hamisi Jabe
sumber
-5

Nah, ada beberapa hal yang bisa Anda coba. Pertama, buka Control Panel> Sistem dan Keamanan> Alat Administratif> Layanan> kemudian temukan SQL Server atau SQL Server VSS Writer di daftar Layanan (Lokal). Klik kanan dan pilih Properti, klik tab Umum dan pastikan bahwa jenis Startup diatur ke 'Otomatis'.

Sekarang, layanan mungkin sebenarnya gagal karena suatu alasan. Jadi yang dapat Anda lakukan adalah, klik tab Recovery, dan pilih opsi untuk First failure. Mungkin mencoba untuk me-restart layanan.

Hal berikutnya yang harus dilakukan adalah pergi ke Peraga Peristiwa dan memeriksa daftar Layanan dan memeriksa segala peringatan atau kesalahan yang mungkin telah dicatat oleh layanan (atau Windows).

Jika semuanya gagal, Anda dapat mencoba menggunakan Rebuild Master Utility. Untuk detailnya, lihat halaman MSDN ini: https://social.msdn.microsoft.com/Forums/en-US/f713067f-3017-478b-a9ae-8049d80f9fdc/sql-server-is-not-starting-up? forum = sqldatabaseengine

Jase
sumber
2
Apa tautan yang mengerikan untuk dimasukkan - membangun kembali Master DB Anda adalah saran yang mengerikan - untuk 1 OP harus memiliki cadangan Master DB dan System DB yang relevan, untuk 2 ia dapat memulai SQL Server secara manual, sehingga masalah yang dijelaskan dalam tautan bukanlah masalahnya. . Keith - apakah Anda pernah sampai ke dasar ini?
MHSQLDBA
mengapa jawaban yang mengerikan ini masih ada di sini?
Mitch Wheat
Kata "mungkin" tidak termasuk dalam jawaban apa pun di sini.
Jerry Dodge