Có thể sao lưu và khôi phục một phần cơ sở dữ liệu trong máy chủ sql không?


19

Chúng tôi có cơ sở dữ liệu sql-server 2005 mà chúng tôi thường xuyên chuyển từ trang web của khách hàng sang trang của chúng tôi. Điều này mất nhiều thời gian vì chúng tôi không có kết nối trực tiếp và phải chuyển tệp qua ứng dụng chuyển tệp dựa trên web của họ. Cơ sở dữ liệu hiện có khoảng 10 GB, tuy nhiên chúng tôi không cần tất cả dữ liệu - hầu hết trong số đó là trong các bảng và bảng kiểm toán chứa các giá trị được tính toán có thể được tạo lại.

Tôi đã xem xét việc tạo một filegroup để giữ các bảng kiểm toán và hy vọng tôi có thể sao lưu và khôi phục filegroup chính. Tôi có thể sao lưu tốt nhưng khi khôi phục tôi gặp lỗi nói rằng tôi không khôi phục nó vào cùng một cơ sở dữ liệu. Có thể khôi phục một phần cơ sở dữ liệu sang một máy chủ khác bằng cách sử dụng filegroups không? Có cách nào tốt hơn để làm điều này?


1
Bạn có thể hưởng lợi từ việc đọc câu hỏi này: Bản sao lưu nhỏ nhất có thể có với Máy chủ SQL và đặc biệt là câu trả lời của Brent.
Mary

Vì điều này có vẻ không khả thi nếu không có nhiều Hackery, tôi tin rằng chúng ta có thể xem xét việc chuyển tất cả các bảng nhật ký kiểm toán sang một cơ sở dữ liệu riêng biệt
Adam Butler

Điều này sẽ không yêu cầu thay đổi mã trong ứng dụng? Đó là một chút nhiều để yêu cầu khách hàng đi qua.
Shawn Melton

Câu trả lời:


15

Thành thật mà nói, đây là cách dễ nhất:

  • sao lưu / khôi phục một bản sao cục bộ
  • xóa dữ liệu không mong muốn khỏi bản sao (với BẢNG XÓA hoặc TRUNCATE TABLE, không DROP ...)
  • gửi bản sao

Tôi sẽ không bận tâm với các nhóm làm phim vì sự phức tạp thêm mà bạn đã lưu ý ...


1
Tôi đề nghị thay đổi cơ sở dữ liệu mới được khôi phục này thành mô hình phục hồi đơn giản. msdn.microsoft.com/en-CA/l
Library / ms189272.aspx

7

Cách bạn nói chỉ cần nhóm tệp chính, có vẻ như với tôi rằng bạn chỉ muốn cấu trúc cơ sở dữ liệu và một lượng dữ liệu rất nhỏ. Tôi sẽ đề nghị nếu bạn chỉ muốn một bản cập nhật cấu trúc cơ sở dữ liệu (các đối tượng, bảng, v.v.) chỉ đơn giản là kịch bản cơ sở dữ liệu ra với tất cả các đối tượng. Điều này có thể được thực hiện nhanh chóng và dễ dàng với PowerShell.

Sau đó, dữ liệu bạn thực sự cần, không thể được tạo lại, chỉ cần xuất dữ liệu đó ra (một tập lệnh PowerShell cũng có thể làm điều này). Tôi chắc chắn rằng tệp xuất sau đó có thể được nén xuống một kích thước nhỏ và sau đó được chuyển qua kết nối đến trang web của bạn.

Tất nhiên cũng giống như điều này, đề xuất @gbn có thể được viết theo kịch bản để bạn có thể xác định tùy chọn nào mất ít thời gian nhất.


2

Điều này có thể sử dụng khôi phục từng phần . Các đối tượng và nhóm tệp của cơ sở dữ liệu nguồn phải được tổ chức theo cách hỗ trợ việc này. RESTORE yêu cầu các từ khóa cụ thể bổ sung.

Mặc dù khái niệm này có thể mất một chút để làm quen, nhưng số lượng kịch bản để thực hiện không nhiều hơn so với các giải pháp khác được đề xuất.


-1

Nhấp chuột phải và tạo tập lệnh, sau đó thay đổi tên của cơ sở dữ liệu thành mục tiêu (USE db).

Giải thích ở đây


Có gì sai với nó?
Giu-đa
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.