2008-11-17 43 views
7

Theo dõi this question Tôi tự hỏi kế hoạch sao lưu/bảo trì SQL Server của bạn là gì và cách tôi có thể làm cho tốt hơn.Kế hoạch bảo trì/sao lưu SQL Server của bạn là gì?

Hiện tại tôi đang chạy hai gói bảo trì đơn giản từ trình hướng dẫn gói.

Các chạy đầu tiên đêm và không chỉ là về tất cả mọi thứ ...

  • Full sở dữ liệu và giao dịch đăng nhập sao lưu
  • vẹn kiểm tra, xây dựng lại chỉ số, thống kê toán lại, vv (tôi đã kiểm tra tất cả mọi thứ trừ sao lưu gia tăng)

Khác chạy ba giờ một lần và thực hiện sao lưu gia tăng (tôi hoang tưởng, tôi biết đây có thể là quá mức cần thiết).

Sao lưu vào đĩa, sao lưu đầy đủ được gửi tới SAN, được giữ lại trong một tuần.

Bạn nghĩ gì, đây có phải là một kế hoạch hợp lý không? Bất kỳ đề xuất?

EDIT: Đây là SQL Server 2005. DB là 5GB, tăng khoảng 1GB/tháng.

Trả lời

7

Nghe khá hay. Tôi hoang tưởng hơn. Tôi thực hiện hai bản sao lưu đầy đủ hàng ngày và sao lưu nhật ký giao dịch theo giờ. Phụ thuộc vào kích thước của cơ sở dữ liệu hoặc khóa học. Các bản sao lưu được thực hiện trực tiếp vào đĩa và sau đó được sao lưu vào băng hàng đêm.

Có thể bạn không cần thực hiện các tác vụ bảo trì mỗi ngày. Tôi chỉ làm cho họ vào cuối tuần, ngoại trừ một cái bàn mà chúng tôi reindex mỗi đêm. Một lần nữa điều này phụ thuộc vào kích thước và hoạt động của cơ sở dữ liệu.

Nếu bạn có đủ dung lượng ổ cứng và dung lượng đĩa, bạn có thể nén các bản sao lưu đĩa để tiết kiệm dung lượng và chuyển sang băng hoặc vị trí khác nhanh hơn.

2

Tôi không nghĩ bạn là paraniod bằng cách chạy sao lưu cứ 3 giờ một lần. Về cơ bản, kế hoạch dự phòng của bạn phải được đo bằng các yêu cầu khôi phục của bạn. Bao lâu bạn có thể đủ khả năng để được xuống trong khi bạn phục hồi vs bao nhiêu dữ liệu là bạn sẵn sàng để mất trước khi bạn đang xuống. Đối với SQL Server, bạn có thể thu nhỏ lượng dữ liệu mà bạn sẵn sàng giảm đáng kể bằng cách thêm các bản sao lưu nhật ký giao dịch vào gói dự phòng của bạn. Nhiều người làm việc này sau mỗi vài phút tùy thuộc vào số lượng giao dịch đi qua hệ thống. Để thực hiện khôi phục, bạn chỉ cần khôi phục lại toàn bộ cuối cùng, gia tăng cuối cùng và sau đó tất cả các bản sao lưu nhật ký giao dịch kể từ khi gia tăng. Điều này có thể cung cấp cho bạn một sự mất mát tối thiểu của dữ liệu nhưng nó có thể mất một chút whle để áp dụng tất cả các bản sao lưu nhật ký giao dịch. Tôi thấy những điều sau khá thường xuyên: sao lưu đầy đủ - Weekly sao lưu Incremental - hàng đêm sao lưu Log - mỗi vài phút tùy thuộc vào yêu cầu (có thể tốt một lần một giờ vv)

3

Bạn nên nói chuyện với người dùng của bạn/khách hàng/người quản lý dữ liệu - bất cứ điều gì bạn gọi cho họ. Họ cần phải có một sự hiểu biết rõ ràng về việc họ có thể mất bao nhiêu công sức. Viết một SLA nếu bạn không có. Bạn không muốn bất kỳ bất ngờ khi nói đến tin xấu.

Họ cũng cần phải hiểu rằng việc khôi phục cần có thời gian. Bạn cần lên kế hoạch cho kế hoạch khôi phục của mình để tạo thời gian khôi phục có thể chấp nhận được. Điều này có nghĩa là một bản sao lưu toàn bộ hàng ngày, 4 khác biệt và sao lưu nhật ký cứ 5 phút một lần. Đây không phải là điên rồ hoặc hoang tưởng như Marcus Erickson nói - tất cả đều đi xuống thông tin của bạn và giá trị đồng đô la mà tổ chức của bạn đặt vào nó.

1

Hãy nhớ thực hiện các lần bắn mà bạn thực sự cố gắng khôi phục từ các bản sao lưu bạn tạo (cho hệ thống thử nghiệm). Điều này nên được thực hiện có lẽ mỗi tháng một lần.

1

Tối thiểu tôi khuyên bạn nên cho khách hàng của mình là thực hiện sao lưu toàn bộ hàng đêm của cơ sở dữ liệu và sau đó sao lưu giao dịch 3 giờ một lần. Nó luôn làm tôi ngạc nhiên khi có bao nhiêu người không bao giờ thiết lập một bản sao lưu. Đó luôn là những cuộc gọi xấu.

1

Theo tôi cách tốt nhất là:

Tận dụng cơ sở dữ liệu sao lưu đầy đủ mỗi 12 giờ

BACKUP DATABASE database TO DISK = 'd:/full.bak'

một bản sao lưu khác biệt mỗi sáu giờ, trong trường hợp thất bại nó làm cho dễ dàng hơn để khôi phục quá trình

BACKUP DATABASE database TO DISK = 'd:/diff.bak' WITH DIFFERENTIAL

và, tất nhiên, sao lưu nhật ký giao dịch h là tốt hơn để làm cho mỗi giờ.

BACKUP LOG database TO DISK = 'log.bak'

Nếu trường hợp thất bại quá trình phục hồi sẽ tiếp theo:

  • Các sao lưu đầy đủ cuối cùng
  • Các khác biệt cuối cùng log backup
  • Các giao dịch cuối cùng

Nó phải được thừa nhận rằng nó tốt hơn để sử dụng mô hình phục hồi đầy đủ để phục hồi theo thời gian.

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