2013-09-26 198 views
48

Tôi hiện đang cố gắng sao lưu cơ sở dữ liệu SQL Server 2008 R2 trống mà tôi đã thiết kế cho một dự án đang bị tạm ngưng trong thời gian này. Tôi đã đi qua các thủ tục sao lưu thông qua SQL Management Studio khi tôi nhận thấy có một tùy chọn để thực hiện một Copy Only Back Up. Tôi nhìn nó để xem nó là gì nhưng tôi không hoàn toàn hiểu được những lựa chọn mà tôi đã nhận được.Tùy chọn Sao lưu Chỉ sao lưu này có nghĩa là gì?

http://technet.microsoft.com/en-us/library/ms191495.aspx

Tôi đọc mục trên cũng như các mục khác và tôi tiếp tục nhìn thấy cụm từ "không phụ thuộc vào chuỗi các bản sao lưu SQL Server thông thường."

Có ai có thể giải thích ý nghĩa của tuyên bố này hay thông tin khác về Sao chép chỉ sao lưu nói chung không? Tôi không chắc đó có phải là bản sao lưu mà tôi nên làm trong trường hợp này không? (Phản ứng đầu tiên của tôi là không)

+4

Câu trả lời được chấp nhận là đúng, nhưng có thêm một vài thứ có thể được thêm vào. Vì đây là một bổ sung cho câu trả lời chính, tôi sẽ đăng nó như một bình luận, không phải là một câu trả lời. Đọc bài viết sau đây để biết thêm một số chi tiết quan trọng về Sao lưu chỉ sao lưu: http: // sqlbak.com/blog/copy-only-backups/ –

Trả lời

34

Thông thường khi bạn thực hiện sao lưu, nó bắt đầu (hoặc tiếp tục, tùy thuộc vào loại sao lưu bạn đã thực hiện) cái được gọi là chuỗi nhật ký. Giả sử bạn cần một bản sao của cơ sở dữ liệu của bạn và vì bất kỳ lý do nào, bạn không thể sử dụng các bản sao lưu theo lịch trình bình thường cho mục đích này. Hãy xem qua các kịch bản mà bạn không sử dụng một bản sao lưu copy_only

  1. sao lưu đầy đủ Bình thường
  2. A bunch of Differential Backups
  3. Một sao lưu đầy đủ (để làm cơ sở dữ liệu bản sao của bạn)
  4. More sao lưu vi sai
  5. Xóa bản sao lưu từ bước 3 (bạn biết ... để tiết kiệm không gian)
  6. Thiên tai trên cơ sở dữ liệu thực tế của bạn cần khôi phục từ bản sao lưu

Trong trường hợp này, bạn chỉ có thể khôi phục sao lưu vi phân cuối cùng được thực hiện trong bước 2 vì sao lưu khác biệt được thực hiện trong bước 4 phụ thuộc vào sao lưu đầy đủ từ bước 3. Bây giờ, nếu sao lưu ở bước 3 là copy_only sao lưu, bạn sẽ được tốt bởi vì bạn không tái thiết lập một chuỗi đăng nhập (đó là để nói rằng các sao lưu khác biệt trong bước 4 phụ thuộc vào sao lưu đầy đủ từ bước 1.

+4

Điều này thực sự không đúng. Bạn có thể khôi phục từ bất kỳ bản sao lưu đầy đủ nào đến bất kỳ điểm tiếp theo nào trong thời gian miễn là bạn có một bộ sao lưu nhật ký giao dịch liên tục. Nếu bạn thực hiện một sao lưu đầy đủ mà không có bản sao chỉ thiết lập sau đó bất kỳ sau * khác biệt * sao lưu sẽ chỉ làm việc với sao lưu đầy đủ này, nhưng một sao lưu khác biệt không giống như bản sao lưu nhật ký giao dịch. Điều này cũng khiến tôi hiểu - hãy xem liên kết này để có giải thích tốt hơn: http://sqlmag.com/blog/breaking-backup-chain-redux-or-eating-crow – toryan

+1

Thật tuyệt vời, @toryan. Cảm ơn bạn đã sửa lại quan niệm sai lầm của tôi! –

+2

Đã gửi bản chỉnh sửa đang chờ xử lý để thêm sửa chữa của @ toryan vào câu trả lời với hy vọng làm giảm sự nhầm lẫn có thể xảy ra. – Abraham

41

Đó là một bãi chứa đầy đủ của cơ sở dữ liệu, nơi bạn định lấy phân đoạn đó và tải nó vào một số cá thể máy chủ sql KHÁC. ví dụ. Đó là một cách hay để tạo một bản sao hoàn chỉnh của một DB mà không phải gỡ xuống db, tách db, sao chép các tệp .mdf, đính kèm lại, v.v.

Một cách tự nhiên, vì bạn không sử dụng điều này "sao lưu" như là một sao lưu thực tế, bạn không muốn nó can thiệp vào lịch trình sao lưu bình thường của bạn, do đó các chức năng sao chép chỉ. Đó là bản sao lưu đầy đủ, nhưng sẽ không đặt lại lịch biểu sao lưu, vì vậy bản sao lưu gia tăng/chụp nhanh tiếp theo bình thường của bạn sẽ hoạt động như bình thường.

Cơ chế này là cần thiết vì các công cụ di chuyển nóng/tích hợp sẵn trong MSSMS cơ bản là vô ích và không thể xử lý cơ sở dữ liệu riêng của mình trong nhiều trường hợp.

+2

Vì vậy, đối với tình hình của tôi có vẻ như đây có thể là một lựa chọn tốt mặc dù cơ sở dữ liệu trống? – SmashCode

+1

Nếu bạn đang dùng cơ sở dữ liệu ngoại tuyến anyways, sau đó chỉ cần tách DB trong MSSMS và di chuyển tệp .mdf vào lưu trữ của bạn. Đó là bởi FAR là cách dễ nhất để đưa nó vào ngoại tuyến. Bạn chỉ sử dụng bản sao lưu chỉ sao chép nếu bạn muốn tiếp tục sử dụng db đó và có các bản sao lưu bình thường được lên lịch và bạn muốn lấy bản sao đó để tải vào một số máy chủ khác. –

+1

Không tháo rời. Đó là mạo hiểm. Tệp có thể không được đính kèm lại nếu có điều gì đó xảy ra trong khi tắt máy và không tắt máy. –

1

Nếu bạn đang tạo lưu trữ sao lưu và tiếp tục sao lưu nó trên máy chủ không phải là một mối quan tâm, sau đó nó không quan trọng cho dù bạn sử dụng nó hay không. Nó sẽ được phục hồi như cơ sở dữ liệu một trong hai cách.