Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm thế nào để đính kèm MDF mà không có tệp nhật ký?

Đối với tình huống ban đầu của bạn, có vẻ như bạn đã thử một cái gì đó như thế này (hoặc bất cứ điều gì mà GUI chuẩn bị cho bạn khi bạn xem qua các hộp thoại):

CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH;

Tuy nhiên, phương pháp này yêu cầu cả mdf tệp và một ldf tập tin. Nếu không, bạn sẽ nhận được thông báo lỗi tương tự như:

Bây giờ, có một cách để tiếp tục ngay cả khi bạn chỉ có mdf tập tin. Giả sử rằng bạn có mdf tệp đã được tách đúng cách khỏi SQL Server, bạn sẽ có thể đính kèm mdf tệp không có tệp nhật ký sử dụng cú pháp sau:

CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH_REBUILD_LOG;

Tuy nhiên, có vẻ như trong trường hợp của bạn, tệp không được tách đúng cách khỏi SQL Server:

Có một số giải thích có thể xảy ra, bao gồm cả những giải thích được đề cập trong thông báo lỗi. Có lẽ nó đã được truy xuất từ ​​một bóng SAN không hợp lệ nào đó, hoặc bị tách ra trong khi chỉ đọc, hoặc được khôi phục sau khi SQL Server hoặc hệ thống cơ bản gặp sự cố, hoặc bị hỏng trong quá trình sao chép / tải xuống hoặc ai biết được điều gì khác.

Bạn sẽ cần quay lại bộ phận hỗ trợ của Yaf hoặc bộ phận hỗ trợ của nhà cung cấp dịch vụ của họ để xem có bản sao lưu phù hợp không có sẵn hoặc, không có, các bản sao thay thế của mdf tập tin. Cũng nên nhớ rằng không ai trong chúng ta thực sự biết Yaf là gì hoặc có bất kỳ cách nào để xác minh Yaf mà bạn đang nói đến.

Nếu không, có vẻ như bạn đã gặp may vì mdf cụ thể này tệp không hợp lệ và do đó sẽ không giúp bạn đi xa được.

Đây chính là lý do tại sao các phương pháp tách / đính kèm và / hoặc sao chép tệp mức O / S không phải là các phương pháp sao lưu (hoặc di chuyển, đối với vấn đề đó) rất hữu ích cho SQL Server. Bạn cần một kế hoạch sao lưu / phục hồi thích hợp, có nghĩa là sử dụng các bản sao lưu đầy đủ / khác biệt / nhật ký thích hợp phù hợp với khả năng mất dữ liệu của bạn. Và tách cơ sở dữ liệu hầu như luôn là một ý tưởng kém cỏi - khi có điều gì đó xảy ra với mdf gửi trong hoặc sau khi tách, bạn hiện có ZERO bản sao cơ sở dữ liệu của bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đối sánh dữ liệu từ ba bảng trong Sql Server 2008

  2. UNION so với DISTINCT về hiệu suất

  3. Ngoại lệ tham số tối đa của SqlCommand ở 2099 tham số

  4. Giữa MS SQL Server có bao gồm các ranh giới phạm vi không?

  5. Hiển thị các tùy chọn cấu hình máy chủ nâng cao trong SQL Server (T-SQL)