Duy trì cơ sở dữ liệu 24x7 là một chủ đề khá lớn với nhiều tùy chọn để xem xét. Chủ đề rộng này có nhiều mục để xem xét, nhưng chúng ta có thể thử và chạm vào một số điểm cao.
Những gì đầu tiên bạn sẽ muốn xác định là, trong khi nhiều hoạt động là 24x7, thường có thời gian hoạt động thấp. Bạn có thể tận dụng những thời điểm này để chạy bảo trì để bạn giảm nhiễu bạn sẽ có trên cơ sở dữ liệu. Thứ hai là bạn sẽ cần dành một chút thời gian cho việc ngừng hoạt động hoàn toàn (đối với những thứ như gói dịch vụ hoặc di chuyển cơ sở dữ liệu), vì vậy bạn sẽ cần phải thương lượng các cửa sổ bảo trì đầy đủ với quản lý của mình. Đối với các mục cụ thể, bạn sẽ cần xem xét và lập kế hoạch cho từng mục, cũng như tận dụng các công cụ của mình một cách thích hợp. Các phần quan trọng là bạn phải PLAN mỗi trong số này, bất kỳ ví dụ tôi cung cấp rất nhiều "dặm của bạn có thể thay đổi".
Sao lưu
Các bản sao lưu thường không có tác động lớn đến khối lượng công việc, nhưng phải được tính vì chúng có thể tiêu thụ rất nhiều I / O. Bạn sẽ muốn sắp xếp những thứ này một cách thích hợp và theo dõi lượng thời gian cần thiết để hoàn thành. Rào cản lớn nhất ở đây là trong một hoạt động 24x7, bạn có thể sẽ không thể thực hiện sao lưu toàn bộ hàng đêm vào mỗi tối trong tuần. Bạn sẽ muốn lập kế hoạch khi bạn có thể thực hiện đầy đủ, khi bạn đang sử dụng vi sai và thời gian lưu cho cả hai kết hợp với sao lưu nhật ký của bạn.
Ví dụ, tôi chạy sao lưu toàn bộ cơ sở dữ liệu của mình vào tối Chủ nhật (hoạt động thấp nhất), chênh lệch vào tất cả các đêm khác (Thứ Hai-Thứ Bảy). Tôi giữ hai tuần đầy đủ và khác biệt trên đĩa, nhật ký trong hai ngày qua. Điều này cho tôi đủ linh hoạt để phục hồi, nhưng tôi có thể phải khôi phục các bản sao lưu từ băng nếu cần thiết.
Chỉ số / Thống kê bảo trì
Đây là loại bảo trì tích cực phổ biến nhất mà bạn sẽ phải đối phó. Bạn không thể tránh nó, nhưng bạn có thể giảm thiểu tác động. Nguyên tắc ban đầu là bạn chỉ nên bảo trì những đồ vật cần nó. Hướng dẫn chung là chỉ xây dựng lại các chỉ mục lớn hơn 30% bị phân mảnh và lớn hơn 1000 trang . Nếu bạn có số liệu thống kê tự động cập nhật , việc này sẽ xử lý hầu hết việc bảo trì số liệu thống kê của bạn, nhưng công việc hàng đêm để giữ mọi thứ đồng bộ không phải là ý tưởng tồi.
Nếu bạn có Phiên bản doanh nghiệp, bạn cũng có quyền truy cập vào một số tùy chọn khác để quản lý bảo trì. Đầu tiên là Tái tạo chỉ mục trực tuyến , sẽ cho phép bạn xây dựng lại các chỉ mục trong khi chúng vẫn đang được sử dụng (về cơ bản, nó xây dựng chỉ mục cạnh nhau, sau đó hoán đổi nó). Bạn cũng có thể tận dụng phân vùng cho các bảng "lớn" để giảm thời gian xây dựng lại cần thiết.
Đặt cược tốt nhất của bạn cho loại bảo trì này, nếu bạn không có tập lệnh tùy chỉnh xử lý các thực tiễn tốt nhất này, là sử dụng tập lệnh Bảo trì của Ola Hallengren . Đây là khá dễ dàng để thiết lập và cấu hình và có nhiều hướng dẫn được xây dựng trong.
Kiểm tra tính nhất quán của DBCC
Tùy thuộc vào khối lượng công việc chung của bạn, bạn có thể thấy các kiểm tra DBCC bị gián đoạn cho hoạt động của mình. Có hai cách phổ biến để giảm thiểu tác động DBCC cho cơ sở dữ liệu của bạn:
PHYSICAL_ONLY
- Chạy tùy chọn này sẽ kiểm tra cơ sở dữ liệu của bạn ở cấp độ trang vật lý và tránh kiểm tra đầy đủ xâm lấn hơn. Điều này sẽ bao gồm việc xác định các loại tham nhũng có khả năng nhất.
- Kiểm tra bản sao được khôi phục - Nếu bạn có dung lượng, bạn có thể khôi phục cơ sở dữ liệu sang phiên bản khác và chạy kiểm tra DBCC đối với bản sao được khôi phục. Điều này sẽ kể một câu chuyện tương tự về cơ sở dữ liệu trực tiếp của bạn, nhưng rõ ràng bạn sẽ không can thiệp vào hoạt động. Một số lựa chọn thay thế khác ở đây đang chạy DBCC dựa trên bản sao được gửi đi hoặc db được nhân đôi.
Bài đăng blog này cung cấp chi tiết hơn về các tùy chọn của bạn.
Công việc hàng loạt / ETL
Điều này thực sự đi vào cách bạn thiết kế các quy trình của bạn. ETL của bạn luôn có thể can thiệp vào các bảng OLTP trực tiếp (giống như bất kỳ ứng dụng nào khác), vì vậy một số lưu ý cần lưu ý:
- Lịch trình công việc như vậy xung quanh bảo trì khác của bạn và trong thời gian hoạt động thấp.
- Đúng kích thước công việc sao cho nó được xử lý theo cả hai hiệu suất và để lô đó không quá lớn đến nỗi nó khóa bảng của bạn trong nhiều giờ. Ví dụ về các đầu của phổ: Hàng-by-agonizing-row (RBAR) so với một hàng xóa hàng.
- Sử dụng bảng giai đoạn và ngoại tuyến xử lý dữ liệu của bạn khi thích hợp. Chỉ chạm vào những thứ sống khi thực sự cần thiết.
Phần kết luận
Một lần nữa, có rất nhiều mặt đất để bao phủ ở đây. Đây không phải là một hướng dẫn toàn diện, mà là một tổng quan cấp cao về một số phương pháp. Tôi thậm chí đã không thảo luận về các tùy chọn có tính sẵn sàng cao (chẳng hạn như Nhóm khả dụng và Phân cụm chuyển đổi dự phòng). Bạn sẽ cần xem lại từng mục và xây dựng kế hoạch về cách xử lý. Theo nhiều cách, bạn cũng sẽ cần phải lặp đi lặp lại và tinh chỉnh công việc của bạn khi bạn tiến về phía trước.
Tài nguyên bổ sung:
Kỹ năng SQL duy trì thực hành tốt nhất VLDB