Tôi có Cơ sở dữ liệu SQL Server 1,4TB đang vật lộn ồ ạt với I / O đĩa. Chúng tôi đã cài đặt một mảng SSD mới vào máy chủ sẽ giải quyết tất cả các vấn đề của chúng tôi, chúng tôi chỉ đang tranh luận về cách tốt nhất để di chuyển cơ sở dữ liệu. Lý tưởng nhất là chúng ta có thể làm điều đó mà không có thời gian chết, đó là tốt nhất. Nhưng trong trường hợp lựa chọn là giữa hai ngày hoạt động kém (ví dụ như trong khi sao chép dữ liệu) so với hai giờ ngừng hoạt động, thì lựa chọn sau có thể tốt hơn.
Cho đến nay, các giải pháp chúng tôi đưa ra là:
Bản sao đơn giản. Lấy DB ngoại tuyến, sao chép các tệp qua, thay đổi vị trí trong SQL Server và đưa nó trở lại trực tuyến. Số liệu thô ước tính việc này sẽ mất tới năm giờ, điều này không thực sự chấp nhận được, nhưng đó là giải pháp dễ nhất.
Bản sao cấp khối. Sử dụng tiện ích giống như rsync, chúng tôi sao chép các tệp trên nền trong khi DB hoạt động. Khi chúng tôi sẵn sàng di chuyển, chúng tôi đưa DB ngoại tuyến, tạo một bản sao vi sai bằng cách sử dụng tiện ích này, sau đó trỏ máy chủ SQL vào các tệp mới và đưa nó trực tuyến. Thời gian ở đây là không rõ. Chúng tôi không biết sẽ mất bao lâu để phân tích chênh lệch 1,4TB và sao chép nó qua. Mối quan tâm khác của chúng tôi là bản sao ở cấp độ khối sẽ khiến các tệp ở trạng thái không thể đọc được bởi SQL Server và chúng tôi sẽ lãng phí thời gian của chúng tôi.
Di chuyển SQL. Tạo một tệp dữ liệu SQL 1,4TB mới trên đĩa mới và vô hiệu hóa tự động phát trên tất cả các tệp khác. Sau đó, lần lượt chạy DBBC SHRINKFILE (-file_name-, EMPTYFILE) trên tất cả các tệp dữ liệu khác. Khi tất cả dữ liệu đã được xử lý, tôi sẽ lấy một cửa sổ được lên lịch tại một thời điểm nào đó để di chuyển tệp MDF sang SSD và xóa các tệp không sử dụng khác. Tôi thích điều này vì nó giảm thiểu thời gian chết. Nhưng tôi không biết điều này sẽ kéo dài bao lâu và liệu nó có gây ra sự suy giảm hiệu suất trong khi nó đang diễn ra hay không.
Chúng tôi không có bất kỳ loại môi trường tải & hiệu suất nào để kiểm tra điều này. Tôi có thể xác minh rằng các chiến lược sẽ hoạt động trên môi trường dàn dựng của chúng tôi, nhưng không ảnh hưởng và không phải là hiệu suất.
don't know how long it will take to do a differential analysis of 1.4TB
ít nhất là miễn là phải đọc dữ liệu đó. Tôi không nghĩ rằng ý tưởng rsync tiết kiệm nhiều nếu có bất cứ điều gì. rsync được thực hiện để đối phó với các mạng chậm.