2010-05-24 37 views
6

Tôi có một trang demo nơi bất kỳ ai cũng có thể đăng nhập và kiểm tra giao diện quản lý.Cách tốt nhất để tự động khôi phục cơ sở dữ liệu mỗi giờ

Mỗi giờ tôi muốn xóa tất cả dữ liệu trong Cơ sở dữ liệu SQL 2008 và khôi phục dữ liệu từ bản gốc.

Phần mềm cổng đỏ có một số công cụ tuyệt vời cho việc này, tuy nhiên chúng vượt quá ngân sách của tôi ngay bây giờ.

Tôi có thể tạo bản sao dự phòng của tệp dữ liệu của cơ sở dữ liệu, sau đó có ứng dụng giao diện điều khiển C# xóa nó và sao chép bản gốc. Sau đó, tôi có thể có một nhiệm vụ lịch trình cửa sổ để chạy .exe mỗi giờ.

Rất đơn giản và miễn phí ... thao tác này có hoạt động không?

Tôi đang sử dụng SQL Server 2008 R2 Web phiên bản

Tôi hiểu rằng Red Gate phần mềm là kỹ thuật tốt hơn vì tôi có thể thiết lập nó để phân tích các db và chỉ cập nhật các hồ sơ đã được thay đổi, và cách tiếp cận tôi có ở trên giống như một "cái búa tạ".

+0

Không chắc liệu phiên bản của bạn có hỗ trợ tính năng này hay không nhưng bạn cũng có thể xem ảnh chụp nhanh. Bạn có thể tạo một bản chụp cơ sở dữ liệu của bạn và khôi phục nó thường xuyên. Cơ sở dữ liệu cần phải ở chế độ người dùng đơn lẻ khi bạn khôi phục nó. – flup

Trả lời

9

Thật đơn giản và miễn phí ... thao tác này có hoạt động không?

Vâng, bạn có thể làm điều đó như thế, chỉ cần nhớ để đặt DB trong chế độ người dùng đơn lẻ trước khi khôi phục nó bằng cách khác khôi phục của bạn sẽ thất bại

dụ kịch bản

USE master 
GO 

ALTER DATABASE YourDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE 
GO 



RESTORE DATABASE YourDB FROM DISK=N'D:\Backup\Pristine.BAK' WITH FILE = 1, 
NOUNLOAD, REPLACE, STATS = 10 
GO 

ALTER DATABASE YourDB SET MULTI_USER 
GO 
+0

Tuyệt vời, tôi sẽ chỉ thiết lập lịch biểu là một công việc trong SQL để chạy điều này mỗi giờ. cảm ơn! – aron

1

Điều này có thể được viết kịch bản bằng SQL và được lên lịch dưới dạng công việc trên máy chủ để thực thi mỗi giờ một lần. Vì bạn có một bản sao lưu, tôi giả sử, đó là nguyên sơ, sau đó tất cả những gì bạn cần làm là lấy cơ sở dữ liệu ngoại tuyến, khôi phục từ bản sao lưu, đưa cơ sở dữ liệu trở lại trực tuyến. Tất cả điều này có thể được viết kịch bản. Bạn có cần các script không?

+0

Xin chào websch01ar, vâng, hãy gửi email cho tôi. Cảm ơn aron {at} uswebpro (period) com – aron

0

Bạn có thể cũng tách cơ sở dữ liệu, ghi đè lên dữ liệu và đăng nhập các tệp từ mẫu của bạn (trước đó được tách ra) và sau đó đính kèm lại.

+0

đúng, nhưng đó không phải là tự động – aron

+0

@aron Nó có thể được tự động theo cách tương tự như khôi phục. Bạn có thể sử dụng gói SSIS được lập lịch biểu, một tập lệnh sử dụng xp_cmdshell hoặc kịch bản lệnh Windows bên ngoài với sqlcmd cho các hoạt động SQL. –

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