2012-07-09 34 views
9

Tôi đã cố gắng tách DB khi nó đã cho tôi một lỗi mà nó hiện đang được sử dụng. Do đó, tôi đã cố gắng để lấy DB của tôi ngoại tuyến nhưng nó không thành công nói rằngCơ sở dữ liệu không thể truy cập sau khi quá trình 'đưa nó ngoại tuyến' không thành công

'an exception occured while executing a transact SQL statement or batch 

-> ALTER DATABASE failed because a lock could not be placed on database 'myDB'. Try again later. 
    ALTER DATABASE statement failed. (Microsoft SQL Server, Error: 5061)' 

Bây giờ nếu tôi thử và truy cập vào DB thì nó không thể truy cập được. Tôi có thể làm gì để có thể truy cập lại DB của mình?

Mục tiêu của tôi là tách DB, di chuyển tệp cơ sở dữ liệu thứ cấp sang một ổ đĩa mới và gắn lại nó (chỉ đơn giản là do các vấn đề về không gian).

Trả lời

12

Hãy thử các bước sau.

  1. Khởi động lại dịch vụ máy chủ SQL bằng bảng điều khiển services.msc.
  2. Bây giờ, hãy kết nối với máy chủ của bạn bằng SQL Server Management Studio.
  3. Chạy lệnh sau đây trong phân tích truy vấn

    ALTER DATABASE `YOURDATABASE_NAME` 
        SET SINGLE_USER WITH ROLLBACK IMMEDIATE 
    
  4. Bây giờ Kích chuột phải vào tên cơ sở dữ liệu, điểm đến Tasks, và sau đó nhấn Detach. Hộp thoại Cơ sở dữ liệu Detach xuất hiện

HOẶC 5. Chạy lệnh của bạn để di chuyển cơ sở dữ liệu thứ cấp.

  1. Đặt chế độ cơ sở dữ liệu đa người dùng một lần nữa

    ALTER DATABASE `YOURDATABASE_NAME` SET MULTI_USER 
    

Hope this helps.

+0

Cảm ơn. Điều này đã làm việc! – Vaibhav

10

Là một thay thế cho bước một trong câu trả lời của Furqan, bạn có thể không cần phải khởi động lại SQL Server dụ, nhưng chỉ SQL Server Management Studio dụ, được sử dụng để bắt đầu nhiệm vụ "Take Offline".

+0

Cảm ơn vì điều này - có nghĩa là chúng tôi không phải thực hiện toàn bộ SQL Server ngoại tuyến! – KaraokeStu

+2

Tôi có thể xác nhận điều này là đúng. Management Studio dường như đang giữ một kết nối mở. –

Các vấn đề liên quan