Cara menghapus Kesalahan 15404 setelah DB restart (selain me-reboot)

9

Seringkali (mis. ~ Bulan) Pekerjaan SQL Server Agent setiap jam akan mulai melaporkan Kesalahan 15404 dan terus melakukannya sampai diintervensi.

[298] Galat SQLServer: 15404, Tidak dapat memperoleh informasi tentang grup Windows NT / pengguna 'DOMAIN_NAME \ SomeDomainAccount', kode galat 0x6e. [SQLSTATE 42000] (ConnIsLoginSysAdmin)

Kadang-kadang kegagalan pertama terjadi segera setelah restart manual dari SQL Server Engine dan layanan SQL Server Agent. Masalahnya dapat diatasi dengan me-reboot mesin.

Pemilik Ayub adalah nama yang tercantum dalam pesan kesalahan dan merupakan SQL Server Admin.

Akun Layanan Mesin SQL Server terlihat sebagai akun layanan (saya percaya itu adalah akun instal default (satu tingkat lebih baik daripada NetworkService umum untuk mencegah gangguan antara mesin / agen contoh):

   NT Service\MSSQL$INSTNAME

Akan menjadi satu hal jika pekerjaan selalu gagal tetapi karena pekerjaan berhasil setelah reboot itu membuat saya berpikir bahwa akun layanan seperti seharusnya berfungsi dan bahwa ada beberapa masalah waktu A / D atau mungkin bug. Ketika TI ditanya tentang konfigurasi A / D, respons biasanya "tidak ada yang berubah."

  • Memulai ulang layanan engine dan agen dapat menyebabkan pekerjaan mulai gagal.
  • Mesin reboot membereskan masalahnya.
  • Segera restart mesin dan agen tidak lagi menyebabkan pekerjaan gagal.

Tautan: Cara memecahkan masalah kesalahan SQL Server 8198

crokusek
sumber
Perbarui, ini telah terjadi dua kali lagi sejak posting.
crokusek
Mungkin terkait, kami juga memiliki intermiten (mingguan) tidak dapat menghasilkan masalah SSPI pada dua server yang berbeda.
crokusek
Saya hanya akan menambahkan bahwa saya baru saja mendapatkan kesalahan ini secara acak dari skrip SQL yang berfungsi kemarin. Tidak ada perubahan pada skrip, mesin yang sama persis, tidak ada kesalahan yang jelas pada log windows. Baris SQL yang menyinggung adalah pernyataan CREATE ASSEMBLY, AUTHORISATION [dbo], PERMISSION_SET = EXTERNAL_ACCESS;
redcalx
Info lebih lanjut. Restart SQL Server tidak menyelesaikan masalah, tetapi me-reboot mesin itu. Mungkin log-off / on akan melakukannya, karena saya curiga ini masalah halus di sekitar akun domain saya. Perhatikan bahwa saya belum mengubah kata sandi saya baru-baru ini.
redcalx

Jawaban:

4

Bukan solusi, tetapi Anda bisa mengatasi masalah ini dengan menjadikan pemilik pekerjaan akun SQL.

Setiap kali pekerjaan dimulai, SQL Server memverifikasi identitas pemilik pekerjaan dan memeriksa apakah ia memiliki izin untuk melaksanakan pekerjaan. Jika pemiliknya adalah akun Windows, mesin perlu menanyakan Direktori Aktif. Jika karena alasan apa pun gagal, pekerjaan itu tidak akan berjalan. Mungkin karena server AD sibuk, turun atau terputus dari jaringan, atau akun layanan SQL Server tidak memiliki hak.

Karena berfungsi segera setelah mem-boot ulang, itu membuat saya berpikir mungkin ada hubungannya dengan kredensial yang di-cache. Windows akan menyimpan kredensial yang dicari untuk digunakan nanti. Cache itu dihapus saat reboot. Mungkin ada sesuatu yang merusak cache.

SQL Nerd
sumber
Saya percaya Anda benar itu kredensial di-cache, me-reboot memaksa login ke server direktori aktif. Saya mendapatkan kesalahan ini pada Diagram DB Ketika saya terputus dari jaringan perusahaan, saya terhubung ke sana dan tidak ada kesalahan. Putuskan sambungan dan izin saya hilang. Saya dapat meminta, membuat dll - hanya tidak bisa diagram. 15404 kesalahan.
StixO
0

Saya punya masalah dengan instance dipindahkan dari domain A ke domain B Dan memeriksa izin di mana-mana dan memberikan kontrol penuh di mana-mana. Akun layanan berubah, kepemilikan pekerjaan, menciptakan pekerjaan baru .... Tidak ada yang berhasil. Menemukan nama pengguna layanan yang sama B \ sqlservice dan A \ sqlservice yang ada sebagai login di SQL Server Setelah menghapus login A \ sqlservice, semuanya mulai berfungsi dengan baik. Ini berarti beberapa pointer windows salah

Federico
sumber
Untuk memperjelas, Anda mendapatkan kesalahan ini, dan kesalahan tersebut melaporkan bahwa B\sqlserviceakun itu tidak dapat memperoleh informasi tentang?
RDFozz