Chúng tôi đã thực hiện các loại Thử nghiệm cơ bản khác nhau và Luôn luôn vượt qua trong nhiều thử nghiệm. Cuối cùng chúng tôi đã thực hiện một bài kiểm tra viết nặng cho Luôn luôn và nó đã cho kết quả đáng ngạc nhiên.
Các chi tiết thử nghiệm thực tế có ở đây, mục tiêu là để xem liệu nhóm sẵn có của Luôn luôn có thể chịu được tải ghi cao hay không.
Tôi có hai máy ảo, mỗi máy chạy trên 8 lõi và 17GB RAM được phân bổ cho SQL Server.
Chúng tôi đã viết một kịch bản để tạo ra I / O viết hợp lý (trong 20 chủ đề).
Mỗi luồng về cơ bản sẽ chèn 24 MB dữ liệu vào một bảng và xóa trong một vòng lặp vô tận.
Trong vòng 15 phút sau khi chạy thử, ước tính thời gian phục hồi khi chuyển đổi dự phòng tự động đạt 12 phút, khá tệ. Chúng tôi đã thử chuyển đổi dự phòng để xác nhận nếu nó thực sự mất 12 phút, mất khoảng 5 phút vẫn còn quá cao. Ngoài ra, nếu chúng tôi tiếp tục thử nghiệm trong ba giờ, ETA phục hồi gần 3 giờ và phải mất hàng giờ để khôi phục khi chuyển đổi dự phòng (rõ ràng điều này không nên xảy ra nếu đó là chuyển đổi dự phòng cụm, vì tất cả các giao dịch đều được giao dịch cam kết).
Rất nhiều điều ..
Rõ ràng là synchronous
bản sao thứ cấp không thể theo kịp với tải chính đang tạo (mặc dù cả hai máy có cùng cấu hình). Và tác dụng phụ của việc này là nhật ký chính sẽ tiếp tục phát triển (ngay cả khi chúng tôi thực hiện sao lưu nhật ký, nó không thể cắt bớt nhật ký).
Chúng tôi biết rằng thứ cấp sử dụng một luồng trên mỗi 4 lõi CPU để thực hiện lại, điều này có vẻ như là một giới hạn rõ ràng. Nếu chính đang chạy 100 luồng để tạo tải, thì thứ cấp không thể sử dụng nhiều luồng đó.
Ngoài ra, chính thực hiện tất cả các giao dịch trong bộ nhớ và để tệp dữ liệu thực tế ghi vào các điểm kiểm tra. Tuy nhiên, có vẻ như thứ cấp phải đọc tất cả các giao dịch từ ổ đĩa nhật ký vật lý và làm lại. Nhóm nhật ký trên thứ cấp được cho là làm cho quá trình này nhanh hơn? Nhưng nó không làm tốt công việc trong kịch bản này.
Cuối cùng là câu hỏi cho các chuyên gia của Luôn luôn:
- Có ai biết làm thế nào
redo
chính xác quá trình xảy ra?- nó được lưu trữ?
- là vùng đệm liên quan đến tất cả?
Có sử dụng nhóm nhật ký thứ cấp để lưu trữ các mục nhật ký để làm lại không?
Kích thước của hồ bơi đăng nhập là gì? Nó có thể phát triển đến bộ nhớ tối đa có sẵn?
Khi làm lại xảy ra, luồng làm lại đọc các trang vào vùng đệm và duy trì chúng như thể đó là một giao dịch bình thường?
Nếu thứ cấp không thể theo kịp thì làm sao các bài báo của Luôn luôn nói rằng thời gian phục hồi là vài giây?
Điều này làm cho phần khả dụng cao của Nhóm sẵn sàng bị nghi ngờ, vì những thời gian phục hồi này là không bền vững.
[Chỉnh sửa bởi người hỏi] Làm rõ, vì mọi người dường như nghĩ rằng điều này đã được trả lời, các giao dịch chính thực sự được thừa nhận (tức là nhật ký được làm cứng), vì trạng thái của thứ cấp luôn được "đồng bộ hóa". Vì vậy, nó không phải là một vấn đề với việc làm cứng nhật ký. Vì vậy, đó là quá trình làm lại đang diễn ra mãi mãi khi chuyển đổi dự phòng. Điều này có nghĩa là Luôn luôn sẽ mất nhiều thời gian hơn để khôi phục hơn là không có nó cho bất kỳ tải nào tạo ra log> làm lại dung lượng luồng.