Làm cách nào để sao chép cơ sở dữ liệu MSSQL trên cùng hoặc máy chủ khác?


15

Tôi đang cố gắng để thực hiện như sau:

  1. Chụp ảnh nhanh cơ sở dữ liệu gốc, tạo và chính xác một bản sao trên máy chủ khác?
  2. Chụp ảnh nhanh cơ sở dữ liệu gốc, tạo một bản sao trên cùng một máy chủ dưới một tên DB khác

Tuy nhiên, tôi không thể do kinh nghiệm rất hạn chế với MSSQL. Bất kỳ đề xuất?

Thông tin bổ sung:

Máy chủ DB gốc: SQL Server 2000

Máy chủ DB đích: SQL Server 2005

Câu trả lời:


17
  1. sao lưu cơ sở dữ liệu
  2. khôi phục cơ sở dữ liệu dưới một tên mới và / hoặc trên một máy chủ khác

Cả hai thao tác này có thể được thực hiện từ Enterprise Manager (SQL2000) hoặc SQL Management Studio thay thế (SQL2005 +) hoặc các lệnh TSQL BACKUPRESTORE .

Lưu ý: bạn có thể khôi phục cơ sở dữ liệu được sao lưu từ SQL2000 trên SQL2005 mà không gặp sự cố trong hầu hết các trường hợp, nhưng không phải là cách khác.


1
Cảm ơn bạn David. Làm cách nào để khôi phục DB dưới tên mới trên máy chủ khác?
Alex N

Sao lưu cơ sở dữ liệu tạo ra một tệp sao lưu (hoặc mở rộng một tệp hiện có). Chuyển tệp này sang máy chủ khác sau đó sử dụng Management Studio (hoặc lệnh RESTORE ban hành một số cách khác) để khôi phục cơ sở dữ liệu từ tệp đó. Quá trình khôi phục cung cấp cho bạn cơ hội để ra lệnh cho cơ sở dữ liệu sau khi được khôi phục.
David Spillett

7

Thêm điều này khi tôi vấp phải điều này trong khi làm theo các bước ở trên.
Trong SQL Server 2008 R2, ít nhất bạn có thể bỏ qua một bước để nhận bản sao lưu cục bộ vào máy chủ.

  1. Nhấp chuột phải vào cơ sở dữ liệu
  2. Nhấp vào Khôi phục cơ sở dữ liệu ..
  3. Đặt tùy chọn From cơ sở dữ liệu cho cơ sở dữ liệu bạn đang sao chép
  4. Đặt tùy chọn To cơ sở dữ liệu thành tên mới
  5. Nhấn vào OK

5

Có lẽ đây là giải pháp tốt nhất:

1) Trên máy chủ DB nguồn - Tạo bản sao lưu vào tệp cục bộ

DECLARE @fileName nvarchar(400);
DECLARE @DB_Name nvarchar(50);

SET @DB_Name = 'NameOfSourceDatabase'
SET @fileName = 'c:\Test\original.bak'

BACKUP DATABASE @DB_Name TO DISK = @fileName

2) Sao chép tệp nguồn vào máy chủ đích.
Nếu cả hai máy chủ nằm trên cùng một máy, bạn có thể muốn tạo một bản sao của tệp đó:

EXEC master.dbo.xp_cmdshell 'COPY c:\Test\original.bak   c:\Test\clone.bak'

3) Trên máy chủ DB đích : Khôi phục cơ sở dữ liệu từ tệp sao lưu

RESTORE DATABASE CloneDB

FROM DISK='c:\Test\clone.bak'

0

sử dụng MS SQLServer 2012, trước tiên bạn cần thực hiện 3 bước cơ bản, tạo tệp .sql chỉ chứa cấu trúc của nguồn DB => nhấp chuột phải vào DB nguồn và sau đó tạo Nhiệm vụ => theo trình hướng dẫn và bạn có thể lưu Tệp .sql cục bộ Thứ hai, thay thế tệp .sql db nguồn bằng đích một => nhấp chuột phải vào tệp đích và nhấn Truy vấn mới và Ctrl-H hoặc (chỉnh sửa - tìm và thay thế - Quack thay thế) cuối cùng, nhập dữ liệu => nhấp chuột phải vào DB phát hiện, sau đó Nhiệm vụ và sau đó Nhập dữ liệu => Nguồn dữ liệu thả xuống được đặt thành ".net khung dữ liệu kiểm tra cho máy chủ sql" + đặt trường văn bản chuỗi kết nối trong DATA ex: Data Source = Mehdi \ SQLEXPRESS; Danh mục ban đầu = db_test; ID người dùng = sa; Mật khẩu = sqlrpwrd15 => Điều tương tự phải làm với đích =>đánh dấu vào bảng bạn muốn chuyển hoặc chọn hộp bên cạnh "nguồn: ....." để kiểm tra tất cả chúng

Bạn xong việc rồi.

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.