Làm thế nào để xóa khôi phục cơ sở dữ liệu


14

Tôi đang chạy nhật ký vận chuyển với máy chủ SQL 2008 R2.

Tôi có một tình huống ổ đĩa cơ sở dữ liệu thứ cấp hết dung lượng và không áp dụng nhật ký giao dịch vận chuyển nhật ký.

Cách tôi muốn khắc phục điều này là xóa cơ sở dữ liệu ở cấp thứ cấp và định cấu hình vận chuyển nhật ký từ đầu.

Vấn đề tôi gặp phải bây giờ là cơ sở dữ liệu thứ cấp của tôi đang ở trạng thái khôi phục và tôi không thể xóa chúng. Làm thế nào tôi có thể tiến hành?

Chẳng hạn, nếu tôi cố gắng đưa họ ngoại tuyến, tôi gặp lỗi,

ALTER DATABASE is not permitted while the database is in the Restoring state.

bạn không thể đưa ra lệnh thay đổi trên cơ sở dữ liệu khôi phục, sẽ cần thực hiện thả.
Jason Cumberland

Câu trả lời:


25
RESTORE DATABASE dbname 
FROM DISK = 'dbname .bak'
WITH REPLACE, RECOVERY --force restore 

hoặc chỉ

RESTORE DATABASE dbname WITH RECOVERY

các REPLACEOverwrite cơ sở dữ liệu hiện có, làm điều đó chỉ khi bạn có chắc bạn muốn ghi đè lên cơ sở dữ liệu hiện tại của bạn như bạn nói bạn không chăm sóc để xóa nó

PHỤC HỒI VỚI THU HỒI là hành vi mặc định khiến cơ sở dữ liệu sẵn sàng để sử dụng bằng cách khôi phục các giao dịch không được cam kết. Nhật ký giao dịch bổ sung không thể được khôi phục.

Điều đó sẽ mang cơ sở dữ liệu trực tuyến. Sau đó, bạn có thể xóa nó và thử lại.


Tôi tin những gì bạn đang nói nên đã làm việc. Giải pháp của tôi là khởi động lại dịch vụ sql và sau đó xóa cơ sở dữ liệu hoạt động sau đó.
peter

đúng, trong khi dịch vụ bị tắt, xóa nhật ký giao dịch sẽ luôn tạo một giao dịch mới. tất cả những điều tốt nhất
AmmarR

3

Cách tốt nhất như tôi đã làm với vấn đề này là viết lệnh này 'thả cơ sở dữ liệu [tên cơ sở dữ liệu]' và sau đó tạo một cái mới có cùng tên và sau đó khôi phục cơ sở dữ liệu từ một tệp .bak khác vì tệp .bak bị hỏng hoặc bị lỗi.


Không có đề cập trong câu hỏi về sao lưu bị hỏng.
ypercubeᵀᴹ
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.