2012-04-24 32 views
49

Tôi đang cố tạo cơ sở dữ liệu mới từ bản sao lưu cơ sở dữ liệu cũ trên cùng một máy chủ. Khi sử dụng SQL Server Management Studio và cố gắng để khôi phục lại các DB mới từ bản sao lưu tôi nhận được lỗi nàyTạo cơ sở dữ liệu mới từ bản sao lưu của Cơ sở dữ liệu khác trên cùng một máy chủ?

System.Data.SqlClient.SqlError: The backup set holds a backup of a database 
other than the existing 'test' database. (Microsoft.SqlServer.Smo) 

sau khi googling xung quanh tôi thấy đoạn mã này

RESTORE DATABASE myDB 

FROM DISK = 'C:\myDB.bak' 

WITH MOVE 'myDB_Data' TO 'C:\DATA\myDB.mdf', 

MOVE 'myDB_Log' TO 'C:\DATA\myDB_log.mdf' 
GO 

tôi đã tự hỏi các báo cáo di chuyển có lộn xộn với cơ sở dữ liệu mà bản sao lưu đến từ máy chủ đó không?

Cảm ơn, tất cả trợ giúp đều được đánh giá cao.

+0

Đề nghị bạn thử: http://dba.stackexchange.com/ – JohnFx

Trả lời

101

Tôi nghĩ điều này dễ dàng hơn.

  • Đầu tiên tạo cơ sở dữ liệu đích trống.
  • Sau đó, trong trình hướng dẫn khôi phục "SQL Server Management Studio", hãy tìm tùy chọn ghi đè lên cơ sở dữ liệu đích. Nó nằm trong tab 'Tùy chọn' và được gọi là 'Ghi đè cơ sở dữ liệu hiện tại (WITH REPLACE)'. Kiểm tra nó.
  • Hãy nhớ chọn các tệp mục tiêu trong trang 'Tệp'.

Bạn có thể thay đổi 'tab' ở phía bên trái của trình hướng dẫn (Bình thường, tập tin, tùy chọn)

+2

Cảm ơn bạn rất nhiều, tôi đã thử sử dụng tùy chọn Thay thế trong Management Studio trước Nhưng không làm phần Tệp. Đã làm những gì bạn đề nghị và databse đang được tạo ra ngay bây giờ. – Flywheel

1

nghĩ về nó như một kho lưu trữ. MyDB.Bak chứa MyDB.mdf và MyDB.ldf.

Khôi phục bằng Di chuyển để nói rằng HerDB về cơ bản lấy MyDB.mdf (và ldf) từ sao lưu và sao chép chúng dưới dạng HerDB.mdf và ldf.

Vì vậy, nếu bạn đã có MyDb trên cá thể máy chủ bạn đang khôi phục, nó sẽ không được chạm vào.

8

Kiểm tra Options Over Write Cơ sở dữ liệu làm việc cho tôi :)

enter image description here

23

Nó thậm chí có thể khôi phục mà không cần tạo một cơ sở dữ liệu trống nào cả.

trong SQL Server Management Studio, nhấp chuột phải vào cơ sở dữ liệu và chọn Restore Database ... enter image description here

Trong hộp thoại Restore Database, chọn cơ sở dữ liệu Nguồn hoặc thiết bị như bình thường. Khi cơ sở dữ liệu nguồn được chọn, SSMS sẽ điền tên cơ sở dữ liệu đích dựa trên tên gốc của cơ sở dữ liệu.

Sau đó, có thể thay đổi tên của cơ sở dữ liệu và nhập tên cơ sở dữ liệu đích mới.

enter image description here

Với phương pháp này, bạn thậm chí không cần phải đi đến tab Options và nhấp vào "Overwrite cơ sở dữ liệu hiện có" tùy chọn.

Ngoài ra, tệp cơ sở dữ liệu sẽ được đặt tên nhất quán với tên cơ sở dữ liệu mới của bạn và bạn vẫn có tùy chọn thay đổi tên tệp nếu muốn.

+2

Đây là một trong những lựa chọn tốt nhất! – user2040021

+3

Tôi ước tôi có thể thăng hạng điều này nhiều lần! Đây thực sự là câu trả lời tôi đang tìm kiếm, thay vì cách tiếp cận cách giải quyết được mô tả trong các câu trả lời được bình chọn nhiều hơn! – Trebor

+1

Giải pháp này làm việc cho tôi nhưng chỉ khi tôi thay đổi tên tập tin "Restore As" trong tab "Files" thành một cái gì đó không tồn tại. Nếu không, tôi sẽ nhận được một "tệp đã được sử dụng, không thể ghi đè lên" thông báo lỗi khôi phục không thành công. – Jeremy

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