Sao chép cơ sở dữ liệu và cập nhật nó - Sao chép hoặc SSIS?


7

Tôi muốn sao chép cơ sở dữ liệu, trên cùng một máy chủ và cập nhật cơ sở dữ liệu bằng cách chạy dịch vụ theo lịch trình một lần một ngày hoặc để SQL Server 2008 xử lý nội bộ này.

Chúng ta không cần phải chuyển đổi dữ liệu, chỉ cần sao chép từ DatabaseA sang DatabaseB (nhưng không bao giờ từ DatabaseB sang DatabaseA).

Bạn sẽ thiết lập điều này theo các dịch vụ Nhân rộng hoặc công việc SSIS? Những lợi thế và bất lợi của mỗi là gì?

Lý do tôi đang làm là vì vậy tôi có thể có một ứng dụng dàn để đọc và ghi vào cơ sở dữ liệu dàn, nhưng sau đó mỗi đêm, bất kỳ dữ liệu mới nào từ cơ sở dữ liệu trực tiếp đều được kéo vào cơ sở dữ liệu dàn.

Cơ sở dữ liệu trực tiếp được cập nhật hàng ngày với các sự kiện mới và chúng tôi muốn đảm bảo rằng môi trường dàn dựng giống với môi trường sống càng nhiều càng tốt.

Cảm ơn, Greg.


Cùng một trường hợp hay khác nhau?
RateControl

Câu trả lời:


7

Tôi sẽ chỉ sao lưu / khôi phục. Điều này thực hiện điều tương tự, xác thực câu chuyện khôi phục của bạn và cũng sẽ dễ dàng xử lý các thay đổi lược đồ / đối tượng - mà không thực sự đặt bất kỳ căng thẳng quá mức nào vào cơ sở dữ liệu hiện tại (bạn đã sao lưu rồi phải không?). Nếu nó ở trên một máy chủ khác (hoặc nếu bạn đã tách chúng ra), tôi có thể đề xuất vận chuyển nhật ký thay vì phản chiếu hoặc sao chép, theo cách đó bạn có thể hiểu được khoảng thời gian giữa các lần sao lưu nhật ký, thời gian trì hoãn khôi phục, loại nào Cửa sổ bảo trì để sử dụng, vv Tất nhiên ngay cả trên một máy chủ khác, một bản sao lưu / khôi phục rất đơn giản sẽ hoạt động tốt.


Cảm ơn. Đây chính xác là những gì tôi muốn làm với rắc rối tối thiểu.
gfyans

4

Tôi muốn có một kịch bản khôi phục

Và tôi cũng sẽ khôi phục lại bản sao lưu "thực" mới nhất: bằng cách này bạn cũng kiểm tra tính toàn vẹn của tệp sao lưu (tất nhiên nó có thể bị hỏng sau đó nhưng thật tuyệt khi có). Kịch bản mới này không nên tự sao lưu.

Chúng tôi có cái này trong cửa hàng hiện tại của chúng tôi nhưng khôi phục vào môi trường phi sản xuất

Tôi sẽ không sử dụng SSIS hoặc sao chép: bạn muốn toàn bộ cơ sở dữ liệu để chỉ cần khôi phục.


2

Nếu bạn có phiên bản Enterprise, bạn có thể sử dụng database snapshotsđó là một quá trình rất nhanh. Mặt khác, bạn có thể tạo các tập lệnh TSQL để sao lưu và khôi phục DB của mình và lên lịch cho các tập lệnh này trong tác nhân SQL. Phác thảo sơ bộ các bước: Tạo tập lệnh SQL để sao lưu DB của bạn. Lịch trình kịch bản sao lưu này để chạy trong thời gian sử dụng thấp. Sau đó tạo một tập lệnh SQL khác để khôi phục DB của bạn từ bản sao lưu được tạo ở bước trước. Lên lịch cho tập lệnh khôi phục để chạy vào thời điểm trong ngày mà bạn muốn có bản sao cập nhật của DB.

Sao chép được sử dụng nhiều hơn cho các cơ sở dữ liệu phân tán và có thể là quá mức cần thiết cho đến bây giờ.


Làm thế nào anh ta có thể sử dụng một ảnh chụp nhanh cơ sở dữ liệu khi ứng dụng dàn cần ghi vào bản sao mà không ảnh hưởng đến nguồn?
Aaron Bertrand

@Aaron Bertrand bạn nói đúng. Tôi đã bỏ lỡ phần mà DB dàn dựng cần phải được ghi vào. Ảnh chụp chỉ được đọc bản sao. Cảm ơn.
StanleyJohns

1

Nếu nó trên cùng một máy và ví dụ, tôi sẽ đi với ảnh chụp nhanh. Chủ yếu không có bảo trì bao gồm, chỉ cần chăm sóc không gian trên ổ đĩa bạn đã đặt, bởi vì nếu là cơ sở dữ liệu được sử dụng nhiều, nó sẽ phát triển khá nhanh.

Nếu trên một máy khác, bất kỳ quy trình nào mô phỏng vận chuyển nhật ký hoặc thậm chí khôi phục đơn giản tệp sao lưu cuối cùng cũng đủ. Tôi đồng ý với Stan rằng sao chép hoặc bất kỳ quy trình SSIS nào sẽ là quá mức cho tình huống của bạn. Bản sao có quá nhiều gánh nặng khi được sử dụng trong nhiệm vụ đơn giản này và SSIS sẽ chỉ là một sự phức tạp quá mức.


Làm thế nào anh ta có thể sử dụng một ảnh chụp nhanh cơ sở dữ liệu khi ứng dụng dàn cần ghi vào bản sao mà không ảnh hưởng đến nguồn?
Aaron Bertrand

@Aaron: Tôi nghĩ rằng tôi đã không đọc phần cuối của câu hỏi, về việc viết vào cơ sở dữ liệu này :-). Trong trường hợp này, ảnh chụp nhanh dĩ nhiên là không hợp lệ và tôi sẽ đi theo giải pháp, sao lưu và khôi phục của bạn. Btw, làm thế nào để đăng nhập vận chuyển giúp cho việc này? Trong LS, cơ sở dữ liệu ở chế độ khôi phục hoặc ở chế độ chờ, chỉ đọc ... :-).
Mary

Bạn có thể đăng nhập tàu cho đến khi bạn sẵn sàng sử dụng thứ cấp làm cơ sở dữ liệu theo giai đoạn, sau đó khôi phục bằng recovery. Khi bạn sử dụng xong, bạn chỉ cần khởi tạo lại vận chuyển nhật ký. Tôi đã thực hiện các giải pháp hoàn toàn tự động chính xác như thế này trong quá khứ.
Aaron Bertrand
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.