Làm thế nào tốt nhất tôi nên xử lý một cơ sở dữ liệu đang phát triển nhanh chóng?


7

Tôi có một cơ sở dữ liệu mà tôi cần phải duy trì.

Đáng buồn thay, việc thiết lập và sử dụng cơ sở dữ liệu đó tôi không thể thay đổi, nhiều (nhờ một số chính trị nội bộ).

Nó đang chạy trên SQL Server 2008r2.

Nó chỉ tồn tại được 5 ngày và đã tăng từ 20 GB lên đến 120 GB trong thời gian đó. (về cơ bản hầu hết dữ liệu sẽ bị xóa và sau đó được nhập, nhưng như tôi nói tôi không thể kiểm soát khía cạnh đó)

Tôi rất thích chạy các công việc hàng đêm để thu nhỏ cơ sở dữ liệu và sắp xếp lại các chỉ mục, nhưng tôi biết rằng đó là một chặng đường dài từ các thực tiễn tốt nhất và có thể dẫn đến nhiều vấn đề hơn tôi đã gặp phải!

CÂU HỎI

  • Cách tốt nhất để xử lý cơ sở dữ liệu tăng kích thước nhanh chóng là gì?
  • Tôi có nên xem xét việc di chuyển nhóm tệp xung quanh để giữ kích thước vật lý trên đĩa không?
  • Có cách nào để ngăn chặn máy chủ hết dung lượng trong vòng một tháng không?

2
Bạn có thể cho chúng tôi biết mô hình phục hồi bạn đang sử dụng? Ngoài ra, bạn có thể mở rộng ý nghĩa của bạn bằng cách "xóa rồi nhập" không?
Liam Confrey

Mô hình khôi phục đơn giản và bằng cách "xóa và nhập" Tôi có nghĩa là thay vì sử dụng CẬP NHẬT XÓA và XÓA. Tôi biết nó xấu, cực kỳ tệ hại nhưng nó không phải là thứ tôi có thể thay đổi!
James Sinclair

Câu trả lời:


11

Tôi không khuyên bạn nên thu nhỏ các tệp cơ sở dữ liệu của mình trừ khi bạn hoàn toàn chắc chắn rằng không gian sẽ không còn cần thiết nữa . Tại sao thu nhỏ mỗi đêm chỉ để nó phát triển mỗi ngày? Bạn sẽ gặp phải những điểm khó khăn khi thu nhỏ các tệp dữ liệu của mình và bạn buộc bản thân phải chịu tác động về hiệu suất khi các tệp cơ sở dữ liệu cần phát triển trong ngày .

Nếu nó tăng vọt lên tới 120 GB vì yêu cầu không gian ban đầu, có an toàn không khi nói rằng cơ sở dữ liệu sẽ không lớn hơn thế (rõ ràng là với một số bộ đệm)? Kích thước cơ sở dữ liệu của bạn một cách thích hợp.

Mặt khác, nếu cơ sở dữ liệu sẽ liên tục phát triển và bạn không có bất kỳ đầu vào nào về sự tăng trưởng dữ liệu xảy ra (nói cách khác, nếu bạn không thể lưu trữ dữ liệu khỏi cơ sở dữ liệu) thì bạn chỉ cần đảm bảo rằng có không gian ổ đĩa rộng rãi cho sự tăng trưởng cần thiết.

Bạn có biết tập tin cơ sở dữ liệu nào đang phát triển không? Có những hành vi khác nhau sẽ khiến các tệp dữ liệu phát triển, trái ngược với nhật ký giao dịch tăng lên cũng như duy trì kích thước của chúng. Nếu nhật ký giao dịch là khách hàng chính của không gian vì giao dịch được ghi nhật ký nhiều, bạn có thể xem xét sao lưu nhật ký giao dịch thường xuyên hơn để đảm bảo nhật ký được sử dụng thường xuyên hơn (có một số điểm dừng ở đây, vì giao dịch mở, vì vậy điều này có thể không thực hiện được mọi mặt).

Thêm thông tin xung quanh những gì đang phát triển và kịch bản là cần thiết để có được cụ thể hơn, nhưng tôi không khuyên bạn nên thu nhỏ các tệp cơ sở dữ liệu theo lịch trình .


3

Dựa trên thông tin bạn đã cung cấp, tôi sẽ nói cách tốt nhất để quản lý cơ sở dữ liệu này là ngồi lại với người dùng cốt lõi, xác định tốc độ tăng trưởng dự kiến ​​trong 1, 3, 5 và 7 năm. Định cỡ trước các tệp dữ liệu theo kích thước 3 năm của người dùng, cho phép tự động tăng trưởng theo mức tăng có thể quản lý lên đến kích thước 5 năm nếu không có cơ sở dữ liệu đạt kích thước 3 năm nhanh hơn dự kiến ​​và đảm bảo bạn có đủ ổ đĩa và dung lượng lưu trữ để xử lý kích thước 7 năm, bao gồm tất cả các chiến lược sao lưu và kế hoạch DR của bạn.

Tôi sẽ thêm một cảnh báo: Vì bạn đang sử dụng R2, bạn có thể muốn xem xét việc cài đặt Điểm kiểm soát tiện ích cho trường hợp cơ sở dữ liệu. Điều này sẽ cho phép bạn theo dõi không gian được sử dụng trong (các) tệp dữ liệu. Nếu đầu vào ban đầu của dữ liệu thực sự lớn hơn 5 lần so với mức cần thiết, bạn có thể xác định điều này và định cỡ lại các tệp dữ liệu thành kích thước nhỏ hơn và sau đó bắt đầu kế hoạch tăng trưởng 1-7 năm.

Thông tin UCP MSDN


0

Bạn đề cập rằng các bản ghi được "thay đổi bằng cách sử dụng XÓA và CHERTN không CẬP NHẬT". Nếu đó là trường hợp thì bạn có thể xác nhận rằng sự tăng trưởng chỉ nằm trong các tệp cơ sở dữ liệu chứ không phải các tệp nhật ký không?

Nếu bạn có nhiều thông lượng và mỗi CẬP NHẬT đang được nhân đôi dưới dạng XÓA / XÁC NHẬN thì bạn có thể sẽ thấy mức tăng trưởng nhật ký thông thường cao hơn - điều đó nên được tìm thấy miễn là các bản sao lưu của bạn được thực hiện thường xuyên và nhật ký được cắt ngắn độc đáo.

Tôi sẽ nhận được một tài liệu bảng tính và bắt đầu ghi nhật ký kích thước dữ liệu / nhật ký mỗi ngày để xem bao lâu trước khi bạn hết phòng thực tế. (Có lẽ bạn nhận được một biểu đồ đẹp hiển thị đường xu hướng phù hợp hướng tới dung lượng ổ đĩa tối đa của bạn) Bạn không chỉ định dung lượng tối đa có sẵn, nhưng ngay cả với 1TB dung lượng lưu trữ, bạn có thể thấy việc sử dụng đĩa gây ra sự cố I / O đặc biệt "bận rộn".

Nếu bạn có thể cho thấy rằng bạn sẽ sớm đạt được năng lực, điều đó có thể tạo ra một cuộc tranh luận tốt cho quản lý;)

Những thứ sẽ làm giảm sự tăng trưởng (một chút). Chuyển đổi datetime thành datetime2, nvarchar thành varchar, v.v ... khi thích hợp sẽ cạo một số byte (tắt dữ liệu và các chỉ mục trên dữ liệu), nhưng có lẽ bạn sẽ cần thời gian chết để làm điều này. Chạy http://www.brentozar.com/blitzindex/ trên các bảng chính, bạn có thể tìm thấy các chỉ mục có số lần đọc 0 có thể được loại bỏ một cách an toàn nếu không ai có ý định sử dụng chúng.

Hãy chắc chắn rằng tất cả các bảng của bạn đều có các chỉ mục được nhóm tốt, theo kinh nghiệm (có giới hạn) của tôi, các bảng lớn có thể giảm một nửa kích thước nếu chúng chưa có và nếu bạn thực hiện theo các thực tiễn tốt nhất, bạn sẽ ít bị phân mảnh hơn: https: // www .simple-talk.com / sql / learn-sql-server / hiệu quả-clustered-indexes /

Điều này có thể mua cho bạn thời gian, nhưng chỉ những thay đổi về cấu trúc sẽ giải quyết được gốc rễ của vấn đề.

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.