Vị trí tempdb bị hỏng và không thể phục hồi


8

Đã mắc lỗi và nhập sai lệnh cơ sở dữ liệu thay đổi cho tempdb.

Bây giờ ví dụ sẽ không bắt đầu. Tôi không thể bắt đầu ở chế độ người dùng đơn bằng cách sử dụng -m vì nó không thể tìm thấy tempdb. Tôi đã thử sử dụng:

net start msqsqlserver /f /t3608

Nhưng sau đó tôi thực sự không thể kết nối với cá thể bằng cách sử dụng sqlcmdhoặc ssms.


Nhật ký lỗi máy chủ SQL nói gì?
Max Vernon

Bạn đã thay đổi gì?
Max Vernon

Câu trả lời:


12

Khởi động SQL Server dưới dạng một ứng dụng, không phải dịch vụ, ở chế độ cấu hình tối thiểu và chỉ khôi phục chính, từ dấu nhắc lệnh:

[path to this instance]\BINN\sqlservr.exe -c -f -T3608

(Thêm -s InstanceNamenếu đây là một ví dụ được đặt tên.)

Bây giờ, trong một dấu nhắc lệnh khác, kết nối bằng SQLCMD:

sqlcmd -S InstanceName -E

Và đưa ra một sự điều chỉnh (kiểm tra ba lần này !!!), sau đó tắt ứng dụng:

> ALTER DATABASE tempdb MODIFY FILE ...
> SHUTDOWN WITH NOWAIT;
> GO

Cuối cùng tôi đã tham gia bằng phương pháp này mặc dù ban đầu tôi không chắc tại sao nó không cho phép tôi kết nối. Cuối cùng, tôi đã vô hiệu hóa tất cả các dịch vụ, bật hộp và chạy VM mà không cần kết nối mạng và nó dường như hoạt động. Cảm ơn các con trỏ mặc dù. Hy vọng điều này cũng hữu ích cho người khác trong tương lai!
Tim Alexander

0
  1. Khởi động máy chủ sql ở chế độ người dùng đơn - Net Start MSSQLServer / mSQLCMD / f / t3608

  2. Để ở chế độ người dùng duy nhất sqlcmd -S. CẩuE

  3. Chạy các lệnh

Thay đổi tệp sửa đổi cơ sở dữ liệu tempdb (tên = tempdev, filename = 'E: \ SQLDATA \ DEFAULT \ tempdb.mdf')

Thay đổi tệp sửa đổi cơ sở dữ liệu tempdb (tên = templog, filename = 'E: \ SQLDATA \ DEFAULT \ Templog.ldf')

  1. Dừng máy chủ sql Dừng net mssqlserver
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.