Tôi đang cố gắng xác định cách tốt nhất để triển khai các tập lệnh SQL tới hàng trăm máy chủ phân tán. Tôi có gói SSIS chậm và quy trình OSQL / BATCH rất nhanh.
Tôi đang ở trong một dự án nơi chúng tôi có hàng trăm máy chủ cơ sở dữ liệu được triển khai trong lĩnh vực này. Tôi cần có thể thường xuyên truy vấn các máy chủ và / hoặc áp dụng các kịch bản nâng cấp cơ sở dữ liệu.
Khi chúng tôi chỉ có 20 máy chủ, tôi đã xây dựng gói SSIS để lấy danh sách các máy chủ và xử lý từng máy chủ một. Gói SSIS hoạt động rất tốt, có hàng tấn xử lý lỗi và ghi nhật ký, v.v. Nó có thể chụp các bộ reult từ mỗi máy chủ và lưu trữ chúng ở một vị trí trung tâm để phân tích thêm. Do cách tôi xây dựng nó, tuy nhiên, nó xử lý từng máy chủ một cách thanh thản. 20 Máy chủ mất khoảng 10 phút để xử lý. Tôi đang ở một điểm mà phương pháp này đơn giản là quá chậm.
Trước khi tôi đầu tư nhiều thời gian hơn vào việc viết lại gói này để sinh ra các gói khác (một cho mỗi máy chủ), tôi đã hy vọng nhận được một số lời khuyên từ những người khác ngoài kia đang gặp phải tình huống tương tự.
Bạn sẽ sử dụng SSIS theo cách này, hoặc chuyển sang powershell, hoặc thậm chí OSQL?
Gần như là một trò đùa, tôi đã đào qua kho lưu trữ của mình và rút ra một quy trình hàng loạt mà tôi đã viết 12 năm trước để áp dụng các tập lệnh trên các máy chủ từ xa. Tôi đã thực hiện một vài điều chỉnh (thay đổi thành OSQL) và nó chạy rất nhanh. Tôi có thể xử lý 100 máy chủ trong vòng dưới 20 giây. Tôi khởi chạy nó từ một máy Windows 7, không bị nghẹt thở khi nhiều cửa sổ lệnh được mở.
Nhược điểm của giải pháp OSQL / BATCH là tệp bó được mã hóa cứng với tên máy chủ và mật khẩu. Nhưng nó quá nhanh nên tôi sẽ tiếp tục sử dụng cho đến khi tôi tìm được giải pháp tốt hơn.
Gói SSIS - Gói SSIS hiện tại thực hiện các thao tác sau: - kết nối với máy chủ trung tâm - truy xuất danh sách các máy chủ cần truy vấn - sử dụng bộ chứa trước, kết nối với từng máy chủ (nối tiếp) và thực hiện truy vấn - nếu truy vấn trả về một tập kết quả, thông tin này được ghi lại và lưu trữ tại máy chủ trung tâm - máy chủ trung tâm được cập nhật để phản ánh thành công / thất bại của mỗi máy chủ - tất cả các lỗi được ghi lại ở máy chủ trung tâm