Sao lưu và khôi phục 10-20 cơ sở dữ liệu SQL Server về trạng thái ~ đồng bộ?


15

Tôi cần sao lưu 10-20 cơ sở dữ liệu SQL Server 2008 R2 với kích thước từ 10-50 GB, trong khi chúng trực tuyến và được sử dụng đồng thời bởi một ứng dụng doanh nghiệp. Tôi cũng cần khôi phục chúng về trạng thái được đồng bộ hóa phần lớn trên tất cả các cơ sở dữ liệu (tôi có thể dành tối đa vài giây không đồng bộ giữa các cơ sở dữ liệu). Mục đích là để thu thập dữ liệu sản xuất cho môi trường QA / DEV.

Tôi rất muốn không yêu cầu cơ sở dữ liệu chạy phục hồi hoàn toàn và đưa ra phương pháp sao lưu dành riêng cho việc thu thập dữ liệu cho môi trường QA và vẫn độc lập với quy trình sao lưu chính không thuộc quyền kiểm soát của tôi.

Đối với khách hàng của tôi, sẽ mất 1-2 giờ để chụp 20 bản sao lưu đầy đủ với tốc độ ~ 30 GB mỗi bản. Điều này làm cho việc sao lưu toàn bộ tuần tự không được chấp nhận vì cơ sở dữ liệu sẽ quá không đồng bộ khi chạy trong phục hồi đơn giản.

Tôi đang tìm kiếm một ý tưởng tốt hơn những ý tưởng này:

IDEA 1: Ảnh chụp nhanh cấp SAN của đĩa VM. xcopy MDF / LDF từ ảnh chụp nhanh.

Khi các tệp được sao chép được đính kèm vào một phiên bản máy chủ khác, quá trình khôi phục của nó sẽ tạo ra các cơ sở dữ liệu nhất quán được chụp nhanh cùng lúc.
Googling xung quanh đã thuyết phục tôi đây là một ý tưởng tồi, ít nhất là vì tôi có thể nhận được desync so với master / msdb / etc.

IDEA 2: Phối hợp sao lưu và khôi phục đồng bộ phức tạp trên tất cả các cơ sở dữ liệu

Điều này đòi hỏi tôi yêu cầu cơ sở dữ liệu chạy trong phục hồi hoàn toàn, điều mà tôi không muốn. Bắt đầu sao lưu song song cho tất cả các cơ sở dữ liệu trước thời hạn (T0). Khi đạt được T0, hãy sao lưu tất cả các bản ghi (sẽ mất ít nhất vài phút). Lấy vô số các bản sao lưu và cố gắng khôi phục chúng & cuộn các bản ghi tiến / lùi để có được trạng thái nhất quán trên các cơ sở dữ liệu, liên quan đến T0.
Điều này đòi hỏi rất nhiều kế hoạch và kịch bản để sử dụng nó một cách đáng tin cậy vì vậy tôi sẽ cố gắng hết sức để tránh nó.

Tôi có thiếu một số giải pháp khác không?

PS1: Tôi rất thích có thể sử dụng ảnh chụp nhanh db . Ý tưởng là bắt đầu một ảnh chụp nhanh trên mỗi db (sẽ kết thúc sau vài giây), sau đó sao lưu đầy đủ từng cái một cách liên tục trong vài phút / giờ sau. Sau đó khôi phục tất cả chúng trên một máy chủ khác và hoàn nguyên từng cái vào ảnh chụp nhanh. AFAIK kịch bản này là không thể vì ảnh chụp nhanh không thể được sao lưu cùng với cơ sở dữ liệu. Chúng chỉ có thể được khôi phục tại chỗ, trên máy chủ nơi chúng được tạo. Ngoài ra, họ yêu cầu Phiên bản doanh nghiệp mà tôi không có cho tất cả khách hàng.

PS2: Nếu bạn biết về giải pháp của bên thứ 3 có khả năng tạo các bản sao lưu được đồng bộ hóa chéo db, vui lòng đề cập đến nó.


Phiên bản của máy chủ SQL cho kịch bản này với phiên bản của nó là gì? và khoảng kích thước của cơ sở dữ liệu chúng ta đang nói ở đây là gì?
KASQLDBA

Câu trả lời:


12

Tôi cần sao lưu 10-20 dbs SQL Server được sử dụng đồng thời bởi một ứng dụng doanh nghiệp, trong khi chúng trực tuyến, theo cách để khôi phục chúng về trạng thái được đồng bộ hóa phần lớn trên tất cả các dbs

Những gì bạn đang tìm kiếm là một bản sao lưu nhất quán trên tất cả các cơ sở dữ liệu khách hàng của bạn, bạn nên sử dụng các bản sao lưu ĐẦY ĐỦ cùng với Marked Transactions(nhấn mạnh vào phần in đậm):

Khi bạn thực hiện các cập nhật liên quan đến hai hoặc nhiều cơ sở dữ liệu, cơ sở dữ liệu liên quan , bạn có thể sử dụng các dấu giao dịch để khôi phục chúng về điểm nhất quán hợp lý . Tuy nhiên, phục hồi này sẽ mất bất kỳ giao dịch nào được cam kết sau khi nhãn hiệu được sử dụng làm điểm khôi phục. Đánh dấu giao dịch chỉ phù hợp khi bạn đang kiểm tra cơ sở dữ liệu liên quan hoặc khi bạn sẵn sàng để mất các giao dịch đã cam kết gần đây.

nhập mô tả hình ảnh ở đây

Hãy chắc chắn rằng bạn đã sao lưu nhật ký giao dịch adhoc COPY_ONLY, nếu không việc khôi phục của bạn sẽ là một nỗi đau, vì bất kỳ sao lưu nhật ký giao dịch adhoc nào mà không COPY_ONLYphá vỡ chuỗi nhật ký. Để phòng ngừa, bạn có thể hạn chế người dùng chỉ sử dụng các COPY_ONLYbản sao lưu .

Tôi cần một giải pháp cho SQL Server phiên bản 2008 R2 trở lên. Kích thước Db lên tới 50 GB mỗi db và thời gian sao lưu tất cả chúng có thể hơn 1-2 giờ.

Giao dịch được đánh dấu sẽ làm việc cho tình huống của bạn. Điều duy nhất để tạo các bản sao lưu song song là cho STRIPEchúng, nhưng sau đó bạn sẽ đảm bảo rằng bạn không bị mất các bản sao lưu. Để làm cho chúng nhanh hơn, bạn có thể chơi với BUFFERCOUNTMAXTRANSFERSIZE.

Bạn nên sử dụng nén sao lưu cũng như kích hoạt khởi tạo tập tin tức thì .

Tham khảo


1
Chỉ cần một lưu ý nhỏ, not usingnén sao lưu có thể tăng tốc độ sao lưu thậm chí nhiều hơn ... nếu bạn có không gian lưu trữ cho nó.
Shawn Melton

4
Khi lưu trữ chậm hơn, tôi nghi ngờ rằng chi phí nén sẽ hợp lý hơn, vì thời gian lưu trên I / O sẽ lớn hơn thời gian thêm dành cho CPU. Khi lưu trữ nhanh hơn, lợi ích của việc nén có trọng số lớn hơn nhiều đối với không gian lưu trữ.
Aaron Bertrand

@ShawnMelton Tôi đồng ý với bạn, nhưng khi chuyển các bản sao lưu, các bản sao lưu được nén sẽ nhanh hơn nhiều để chuyển. Các bản sao lưu sẽ nhanh mà không cần nén (tùy thuộc vào hệ thống lưu trữ) nhưng nghĩ về lợi ích từ việc nén, tôi có xu hướng bật nó lên trong môi trường của mình.
Kin Shah

@Kin, tôi không nghĩ các giao dịch m là một giải pháp ở đây vì: A) Chúng dường như không được thiết kế để hoạt động trên một máy chủ khác với máy chủ đã thực hiện sao lưu. Một số người đã khắc phục điều đó bằng cách khôi phục các hàng thành logmarkhistory nhưng tôi không thể sử dụng hành vi không có giấy tờ. B) Tôi không thể thay đổi mã cho ứng dụng của mình để thêm hỗ trợ cho giao dịch m. Tôi sẽ cần bắt đầu các giao dịch m đặc biệt từ các tập lệnh sao lưu của mình và nếu tôi hiểu chính xác , chúng sẽ trì hoãn tất cả các giao dịch mới hơn cho đến khi các giao dịch cũ hơn nhãn hiệu được cam kết. Điều này ảnh hưởng đến tính khả dụng của ứng dụng là một điểm dừng chính.
bogdan

3
Có một chút không rõ ràng những gì bạn đang thực sự hỏi ở đây. Đầu tiên bạn có một môi trường phục hồi hoàn toàn, sau đó bạn có một vài khách hàng với chiến lược sao lưu riêng. Bạn không muốn thay đổi lớp ứng dụng, bạn không muốn nhận bất kỳ bản sao lưu sql nào và bạn không muốn bất kỳ bản sao cấp khối nào, nhưng bạn mong đợi một giải pháp. Các yêu cầu liên tục thay đổi mọi thứ liên quan đến 'công việc' thực tế đều bị từ chối. Thật không may, chúng tôi không có trang web magic.stackexchange.com.
Tom V - Đội Monica

7

Nếu bạn đang chạy sao lưu đầy đủ cũng như sao lưu nhật ký giao dịch (và nếu bạn thấy dữ liệu này quan trọng), bạn có thể sao chép các bản sao lưu và sao lưu nhật ký giao dịch vào hệ thống kiểm tra và thực hiện khôi phục kịp thời để khôi phục cơ sở dữ liệu + - cùng một lúc.

Tùy thuộc vào việc tất cả các cơ sở dữ liệu cư trú trên cùng một máy SQL Server hay đồng hồ máy chủ được đồng bộ hóa tốt như thế nào, bạn sẽ có thể phù hợp với mục tiêu 'đồng bộ hóa vài giây'.

Nó có thể là một chút của một giải pháp hỗ trợ ban nhạc nhưng sẽ đáp ứng các yêu cầu và khá đơn giản và không tốn kém.

Nếu bạn không có bản sao lưu đầy đủ và bản sao lưu nhật ký giao dịch từ cơ sở dữ liệu quan trọng của bạn (đang trong quá trình khôi phục hoàn toàn), bạn thực sự cần phải sửa đổi chiến lược sao lưu của mình. Ảnh chụp nhanh cấp SAN thực sự khắc phục được việc có cơ sở dữ liệu ở chế độ khôi phục hoàn toàn vì dù sao bạn cũng không thể thực hiện khôi phục kịp thời.

Xin vui lòng đọc những gì MrDenny nói về nó



1

Trong các trường hợp mà bạn đã chỉ ra, bạn đã xem các bản sao lưu VSS thông qua nhà cung cấp VSS là bên thứ 3 hoặc dựa trên Microsoft chưa? Bạn có thể thực hiện sao lưu COPY_ONLY sẽ không phá vỡ chuỗi khôi phục sản xuất của bạn và bạn nên kết thúc với một bản sao lưu của tất cả các cơ sở dữ liệu mà sau đó bạn có thể khôi phục ở nơi khác trong phạm vi hợp lý của mình. Hãy nhớ rằng bản sao lưu VSS có một số cơ chế và nhược điểm giống như ảnh chụp nhanh cơ sở dữ liệu trong đó cơ sở dữ liệu rất tích cực có thể gây ra sự cố không gian đĩa do các tệp thưa thớt được sử dụng. Hãy xem tài nguyên TechNet trên dịch vụ SQL Writer tại đây và các bản sao lưu VSS của SQL Server tại đây .

Để thực hiện việc này thông qua Windows Server Backup, bạn sẽ làm theo các bước của trình hướng dẫn để sao lưu thủ công, đảm bảo rằng bạn chọn sao lưu VSS trên cài đặt cấu hình tùy chỉnh trong Cài đặt VSS. Điều này sẽ cho phép sao lưu Windows Server của bạn không can thiệp vào bất kỳ bản sao lưu nào khác được thực hiện trên máy chủ. Xem tài liệu tham khảo Windows Server Backup để biết chi tiết.


Tôi đã coi VSS như một giải pháp thay thế cho việc chụp ảnh đĩa ở cấp độ hypanneror / SAN. Tôi đã bao gồm những trường hợp này trong giải pháp của mình (được đăng bây giờ dưới dạng câu trả lời bổ sung) cho khách hàng sử dụng phục hồi đơn giản.
bogdan

1

Tôi sẽ bình chọn @ Kin là câu trả lời vì đây là câu hỏi đầu tiên phù hợp với câu hỏi. Tôi cuối cùng đã tìm thấy một câu trả lời bổ sung và tôi sẽ mô tả nó dưới đây.

Đối với những khách hàng sử dụng mô hình khôi phục đơn giản, tôi sẽ yêu cầu một bản sao của các loại gỗ & LDF được trích xuất từ ​​một ảnh chụp nhanh đĩa tạm thời được chụp ở T0 ở cấp độ ảo hóa hoặc SAN. Tôi có thể sử dụng những thứ này để phục hồi các dbs ở trạng thái từ T0.

Đối với khách hàng sử dụng mô hình khôi phục hoàn toàn, tôi sẽ yêu cầu:

  • Các bản sao từ quy trình sao lưu MAIN của bản sao lưu đầy đủ mới nhất đã hoàn thành trước T0 + chuỗi tối thiểu các bản sao lưu nhật ký giao dịch tiếp theo bao gồm T0. Sau đó tôi có thể thực hiện một điểm trong thời gian phục hồi đến T0.

  • Truy cập để thực hiện COPY_ONLYsao lưu phụ trợ của riêng tôi . Tôi sẽ bắt đầu tất cả chúng song song tại T0, sẽ mất không quá vài giây và là mối quan tâm chính số 1 của tôi. Sau đó, khi khôi phục, tôi sẽ thực hiện khôi phục kịp thời cho FirstLSN từ mỗi bản sao lưu. Cái hay của việc này là nó không yêu cầu tôi phải tương tác với quá trình sao lưu MAIN, đó là mối quan tâm khác của tôi, họ thậm chí có thể cắt các bản ghi trong khi các bản COPY_ONLYsao lưu của tôi đang chạy mà không ảnh hưởng đến sự gắn kết của chúng.


0

Tôi làm điều này nhiều lần trong năm cho QA và các môi trường khác là bản sao của sản xuất. Đối với khôi phục, chế độ khôi phục hoàn toàn là thực sự cần thiết và khôi phục đến một thời điểm hoạt động tốt. Ngoài ra còn có rất nhiều bản sao và rất hiếm khi chúng ta gặp lỗi 'hàng không tìm thấy' sau khi khôi phục đến một thời điểm. Chúng tôi cũng sử dụng phương pháp sao chép / chụp nhanh SAN cho một bản sao sản xuất ở xa về mặt địa lý và cũng hoạt động tốt để có cơ sở dữ liệu được đồng bộ hó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.