Không thể thực hiện BACKUP LOG vì không có bản sao lưu cơ sở dữ liệu hiện tại


103

Tôi đã cố gắng khôi phục cơ sở dữ liệu nhưng thông báo này hiển thị. Làm cách nào để khôi phục cơ sở dữ liệu này?

Khôi phục cơ sở dữ liệu 'farhangi_db' không thành công.
(Microsoft.SqlServer.Management.RelationalEngineTasks)
------------------------------ THÔNG TIN BỔ SUNG:

System.Data.SqlClient.SqlError: Không thể thực hiện BACKUP LOG vì
không có bản sao lưu cơ sở dữ liệu hiện tại. (Microsoft.SqlServer.SmoExtended)


2
Đây có phải là một bản sao lưu khác biệt không?
Amir Keshavarz

@AmirrezaKeshavarz: sao? (motavajeh nemisham manzuretuno)
Saman

1
Ý tôi là bạn sẽ khôi phục loại sao lưu nào? (giao dịch đăng nhập sao lưu / full backup / sao lưu khác biệt?)
Amir Keshavarz

Có vẻ như nhật ký giao dịch bị hỏng
bksi 27/10/13

Cơ sở dữ liệu của bạn có tồn tại không? L
Amir Keshavarz.

Câu trả lời:


204

Ban đầu, tôi đã tạo một cơ sở dữ liệu và sau đó khôi phục tệp sao lưu vào cơ sở dữ liệu trống mới của mình:

Nhấp chuột phải vào Cơ sở dữ liệu> Khôi phục cơ sở dữ liệu> Chung: Thiết bị: [đường dẫn của tệp sao lưu] → OK

Điều này đã sai . Đầu tiên tôi không nên tạo cơ sở dữ liệu.

Bây giờ, thay vào đó, tôi làm điều này:

Nhấp chuột phải vào Cơ sở dữ liệu> Khôi phục cơ sở dữ liệu> Chung: Thiết bị: [đường dẫn của tệp sao lưu] → OK


Tôi gặp phải lỗi tương tự và điều đó đã hiệu quả với tôi.
javiniar.leonard

Cũng làm việc cho tôi
nbhatti2001

127

Một nguyên nhân khác của vấn đề này là khi Take tail-log backup before restorecài đặt "Tùy chọn" được bật.

Trên tab "Tùy chọn", Tắt / bỏ chọn Take tail-log backup before restoretrước khi khôi phục vào cơ sở dữ liệu chưa tồn tại.


Cảm ơn bạn @Peach, bạn đã tiết kiệm thời gian của tôi.
Frank Myat Thu

@Peach Cảm ơn đã tiết kiệm thời gian của tôi.
LKC

@Peach Cảm ơn bạn rất nhiều!
Mohit Dharmadhikari

VÀ kiểm tra tùy chọn "CÓ THAY THẾ"
Andrii Horda

33

Vui lòng xem hình ảnh bên dưới và áp dụng các thay đổi trong SqlServer:

đầu tiên nhấp chuột phải vào Cơ sở dữ liệu -> Tác vụ -> Khôi phục -> Chọn Tập tin sao lưu -> Cuối cùng là Áp dụng Thay đổi trong Tab Tùy chọn .

vui lòng áp dụng các thay đổi trong SqlServer


Trong trường hợp của tôi, tôi thực hiện việc này và chọn hộp kiểm đầu tiên "Ghi đè cơ sở dữ liệu hiện có (CÓ THAY THẾ)" và hoạt động.
Amaurys Sánchez

6
  1. Đảm bảo rằng có một cơ sở dữ liệu mới.
  2. Đảm bảo rằng bạn có quyền truy cập vào cơ sở dữ liệu của mình (người dùng, mật khẩu, v.v.).
  3. Đảm bảo rằng có một tệp sao lưu không có lỗi trong đó.

Hy vọng điều này có thể giúp bạn.


2

Một nguyên nhân khác cho điều này là nếu bạn có cùng một cơ sở dữ liệu được khôi phục dưới một tên khác. Xóa cái hiện có và sau đó khôi phục nó đã giải quyết cho tôi.


Cảm ơn vì câu trả lời. Lol, tại sao Microsoft SQL Server không thể nói "Dude, xóa cơ sở dữ liệu hiện có trước khi khôi phục!"
sivabudh

1

Trong trường hợp của chúng tôi, đó là do Mô hình Khôi phục trên cơ sở dữ liệu chính đã bị thay đổi sau khi chúng tôi thực hiện sao lưu để chuẩn bị thiết lập vận chuyển nhật ký.

Việc đảm bảo Mô hình khôi phục được đặt thành Khôi phục hoàn toàn trước khi thực hiện sao lưu và thiết lập vận chuyển nhật ký đã giải quyết vấn đề đó cho chúng tôi.


1

Tôi đã sửa lỗi của mình khi khôi phục lại DB không tồn tại từ SQL 2008 đến SQL 2014 bằng cách đặt dấu kiểm vào Chuyển vị trí đến vị trí thư mục SQL2014 mới.


1

Bạn có thể sử dụng SQL sau để khôi phục nếu bạn đã tạo cơ sở dữ liệu

RESTORE DATABASE [YourDB]
FROM DISK = 'C:\YourDB.bak'
WITH MOVE 'YourDB' TO 'C:\YourDB.mdf',
MOVE 'YourDB_Log' TO 'C:\YourDB.ldf', REPLACE

0

Tôi vừa xóa DB hiện có mà tôi muốn ghi đè bằng bản sao lưu và khôi phục nó từ bản sao lưu và nó hoạt động mà không có lỗi.


0

Tôi không chắc liệu tệp sao lưu cơ sở dữ liệu mà bạn đang cố gắng khôi phục có đến từ cùng một môi trường mà bạn đang cố gắng khôi phục hay không.

Hãy nhớ rằng đường dẫn đích của tệp .mdf và .ldf nằm cùng với tệp sao lưu.

Nếu đây không phải là trường hợp, điều đó có nghĩa là tệp sao lưu đến từ môi trường khác với môi trường lưu trữ hiện tại của bạn, hãy đảm bảo rằng đường dẫn tệp .mdf và .ldf giống nhau (tồn tại) như trên máy của bạn, nếu không thì hãy di dời chúng. (Chủ yếu là trường hợp khôi phục db trong hình ảnh Docker)

Cách thực hiện: Trong Databases -> Restore database -> Tùy chọn [Files] -> (Đánh dấu chọn "Relocate all files to folder" - hầu hết là đường dẫn mặc định đã được điền trên môi trường lưu trữ của bạn)


0

Trong trường hợp sự cố vẫn tồn tại, hãy truy cập trang Cơ sở dữ liệu khôi phục và chọn "Khôi phục tất cả các tệp vào thư mục" trong tab "Tệp" Điều này có thể hữu ích


0

Trong trường hợp của tôi, tôi đang khôi phục Cơ sở dữ liệu SQL Server 2008 R2 sang SQL Server 2016 Sau khi chọn tệp trong tab Chung, bạn nên chuyển đến tab Tùy chọn và thực hiện 2 việc:

  1. Bạn phải kích hoạt Ghi đè cơ sở dữ liệu hiện có
  2. Bạn phải hủy kích hoạt bản sao cuối bản ghi

-1

Đơn giản bạn có thể sử dụng phương pháp này:

  1. Nếu bạn có một cơ sở dữ liệu có cùng tên: WIN+R-> services.msc-> SQL SERVER(MSSQLSERVER)->Stop
  2. Đi tới đường dẫn thư mục Dữ liệu MySQL của bạn và xóa các tệp cơ sở dữ liệu xem trước
  3. Bắt đầu dịch vụ sql
  4. Nhấp chuột phải vào cơ sở dữ liệu và chọn Khôi phục cơ sở dữ liệu
  5. trong tab Tệp thay đổi Thư mục tệp dữ liệu và Thư mục tệp nhật ký
  6. Nhấp vào OK để khôi phục cơ sở dữ liệu của bạn

vấn đề của tôi đã được giải quyết bằng phương pháp này BẰNG ...


-1

Nhấp chuột phải vào cơ sở dữ liệu của bạn Tác vụ báo chí> Sao lưu và sao lưu từ cơ sở dữ liệu của bạn trước khi khôi phục cơ sở dữ liệu của bạn. Tôi đang sử dụng cách này để giải quyết vấn đề này

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.