Gần đây, Microsoft đã phát hành Gói Dịch vụ 1 cho SQL Server 2012 và họ nhanh chóng làm theo Bản Cập Nhật Tích lũy 1 cho Gói Dịch vụ 1. Lý do cho điều này là gói dịch vụ - do chu kỳ kiểm tra hồi quy và phát triển lâu hơn - không chứa bất kỳ các bản sửa lỗi từ Bản cập nhật tích lũy RTM 3 &4. Vì nhiều người đã chờ đợi - dựa trên sự thiên vị chủ yếu là suy đoán tại thời điểm này - thậm chí bắt đầu thử nghiệm SQL Server 2012 cho đến khi Gói dịch vụ 1 được phát hành, tôi nghĩ có thể hữu ích nếu bao gồm một vài các tình huống bạn có thể gặp phải. Đây hoàn toàn không phải là một bài đăng liên quan đến hiệu suất, nhưng một số thông tin liên quan đến việc gián đoạn dịch vụ, điều này có thể ảnh hưởng đến doanh nghiệp của bạn, SLA, v.v.
CẬP NHẬT - SQL Server 2012 Gói dịch vụ 1 Cập nhật tích lũy 2 (11.0.3339) được phát hành 2013-01-24.
Nếu SQL Server 2012 chưa được cài đặt…
Khi bạn đang cài đặt phiên bản SQL Server mới, bạn muốn thực hiện càng ít bước càng tốt. Thiết lập SQL Server 2012 tốt hơn nhiều về việc truyền tải cả gói dịch vụ và cập nhật tích lũy so với SQL Server 2008/2008 R2 (được Peter Saddow mô tả tại đây và tại đây). Phương pháp này không được dùng nữa, nhưng nó vẫn được hỗ trợ trong SQL Server 2012. Vì vậy, trong khi bạn vẫn có thể sử dụng phương pháp cũ nếu muốn:
D:\setup.exe /Action=Install /PCUSource=C:\SP1ExtractedFolder /CUSource=C:\CU1ExtractedFolder
Phương pháp mới mà bạn nên sử dụng đơn giản hơn nhiều - và không yêu cầu bạn giải nén các gói theo cách thủ công bằng cách sử dụng /x
đối số đầu tiên:
D:\setup.exe /Action=Install /UpdateSource=C:\AllUpdatesFolder
Bạn chỉ cần đặt tất cả các bản cập nhật có liên quan vào cùng một thư mục. Lưu ý rằng bất kỳ bản cập nhật nào bạn nhận được với tên tệp [...]_zip.exe
, bạn cần giải nén để có được phần lõi thực thi. Ví dụ:khi bạn tải xuống Gói Dịch vụ 1 và Cập nhật Tích lũy 1 lần đầu tiên, thư mục tải xuống sẽ giống như sau:
Bạn cần giải nén 455715_intl_x64_zip.exe
bằng cách nhấp đúp vào nó và chọn đường dẫn đầu ra (sử dụng /x
tại dòng lệnh là hợp lệ, nhưng bị bỏ qua). Sau khi hoàn tất, thư mục sẽ trông như thế này. (Tại thời điểm này, bạn có thể xóa 455715...
tệp - mặc dù đã cho biết nó được "nén" như thế nào, tôi phải tự hỏi tại sao họ tiếp tục đặt gói này trong một kho lưu trữ tự giải nén ngay từ đầu.)
Bây giờ, khi bạn chạy dòng lệnh trên, khi bạn đến màn hình Cập nhật sản phẩm trong thiết lập, bạn sẽ thấy rằng nó đã bao gồm cả SP1 và CU1:
Bob Ward làm rất tốt khi mô tả kịch bản này chi tiết hơn ở đây:
Blog CSS:Thiết lập SQL Server 2012 ngày càng thông minh hơn…
Lưu ý rằng bạn có thể giữ tất cả các Gói dịch vụ và Bản cập nhật tích lũy theo thời gian trong cùng một thư mục - nếu bạn sử dụng /UpdateSource
đối số, Thiết lập Máy chủ SQL sẽ đủ thông minh để chọn SP mới nhất và CU mới nhất của nó, bất kể những thứ khác có thể tồn tại trong thư mục đó.
Nếu SQL Server 2012 đã được cài đặt…
Một lần nữa, tất cả thông tin đó sẽ áp dụng nếu bạn đang cài đặt phiên bản SQL Server mới. Mặt khác, tôi có một loạt phiên bản SQL Server 2012 RTM mà tôi muốn vá - và vì tôi không muốn mất bất kỳ bản sửa lỗi nào từ Bản cập nhật tích lũy 3 &4, nên tôi muốn áp dụng cả Gói dịch vụ 1 và Cập nhật tích lũy 1. Tôi đã hy vọng rằng các thông minh dòng trượt tương tự sẽ được tích hợp vào tệp thực thi thiết lập Gói Dịch vụ 1, để nó có thể chỉ cần bao gồm các bản cập nhật CU1. Tôi đã thử logic:
C:\AllUpdatesFolder\SQLServer2012-SP1-KB2674319-x64-ENU.exe /UpdateSource=C:\AllUpdatesFolder
Nhưng điều này cuối cùng dẫn đến lỗi sau:
Đối với công cụ tìm kiếm tốt:
The setting 'UpdateSource' is not allowed when the value of setting 'ACTION' is 'Patch'. Error code 0x84B40005.
(Và có, tôi đã thử đặt thư mục cập nhật CU1 được giải nén ở một vị trí khác.)
Tôi đã xác nhận với Microsoft rằng, mặc dù SP1 rõ ràng có chứa một số mã và logic từ setup.exe lõi, nhưng nó không được xây dựng để cho phép kết hợp Cập nhật tích lũy. Nói cách khác, bạn không thể trượt dòng khi cài đặt gói dịch vụ, chỉ khi cài đặt sản phẩm cốt lõi.
Điều này cũng có nghĩa là bạn sẽ cần thực hiện cài đặt trong hai bước . Tôi đã mở một đề xuất Connect mới, vì slipstreaming được cho là * có giá trị hơn * trong quá trình bảo dưỡng so với trong quá trình cài đặt ban đầu:
Connect # 774109:Allow / UpdateSource cho người cài đặt Gói dịch vụ
Vì vậy, tôi đã tiến hành điều này theo hai bước. Tôi đã cài đặt Gói Dịch vụ 1 và lưu ý rằng không có tệp nào đang được sử dụng có thể yêu cầu khởi động lại:
Và sau khi SP1 hoàn tất, tôi khởi chạy trình cài đặt SP1 CU1. Tuy nhiên, tôi đã gặp lỗi này:
Vì vậy, tôi không chỉ phải thực hiện hai bước để áp dụng các bản vá này mà còn phải khởi động lại ở giữa hai bước. Tôi đã xem các tệp nhật ký cho mỗi lần cài đặt (Detail.txt
) và tôi có thể thấy rằng khi tôi chạy SP1, không có dấu hiệu nào cho thấy Windows đang mong đợi khởi động lại:
(07) 2012-12-12 06:46:38 Slp: Rule 'RebootRequiredCheck' results: IsRebootNotRequired=True
Nhưng sau đó khi tôi chạy CU1 và gặp lỗi, chỉ vài phút sau khi SP1 hoàn tất, tôi thấy trong Detail.txt
mới mà bây giờ Windows * đang * mong đợi khởi động lại:
(07) 2012-12-12 06:53:38 Slp: Windows Update requires a reboot (07) 2012-12-12 06:53:38 Slp: Rule 'RebootRequiredCheck' results: IsRebootNotRequired=False
Tôi không chắc chuyện gì đã xảy ra, vì tôi chắc chắn đã không chạy và chạy Windows Update giữa các bước.
CẬP NHẬT:Nhờ Shau Phang tại Microsoft, chúng tôi đã khám phá ra trong %SystemRoot%\WindowsUpdate.log
rằng bản cập nhật Windows tự động đã bắt đầu sau khi SP1 bắt đầu và kết thúc trước khi tôi bắt đầu cập nhật CU. Tôi cho rằng điều này là do tôi đã đánh thức máy tính và bắt đầu cài đặt gói dịch vụ ngay lập tức; kiểm tra "phải khởi động lại" phải được kích hoạt ở giữa. Tôi xin hoàn toàn chịu trách nhiệm về việc này nếu tôi vừa bật Windows Update và chấp nhận cài đặt mặc định; Nhưng tôi đã không làm. Đây là cài đặt của tôi:
Vì vậy, hãy cẩn thận khi ở ngoài đó.
Kết luận
Đạo lý của câu chuyện là, nếu bạn chưa cài đặt SQL Server 2012, việc chuyển dòng để nhận được bản cập nhật mới nhất trong một hành động - bất kể khi nào bạn sử dụng nó và những bản cập nhật nào khả dụng vào thời điểm đó - sẽ đơn giản và không gây đau đớn.
Nếu bạn đã cài đặt một phiên bản, trong trường hợp đó, gián đoạn dịch vụ và thời gian ngừng hoạt động hầu như luôn là vấn đề nghiêm trọng hơn so với khi cài đặt mới, bạn sẽ cần phải tiếp cận phương pháp vá lỗi của mình một cách cẩn thận và đảm bảo rằng thời gian bảo trì của bạn sẽ cho phép để khởi động lại máy chủ, nếu nó được yêu cầu. Điều này cũng có nghĩa là:hãy lưu ý cài đặt Windows Update của bạn và liệu bản cập nhật nào đã được cài đặt kể từ lần khởi động lại gần đây nhất hay chưa.
Nếu bạn cho rằng đây là một vấn đề quan trọng, vui lòng bỏ phiếu cho các mục Kết nối này và quan trọng hơn, hãy bình luận về tình huống hiện tại có thể ảnh hưởng đến doanh nghiệp của bạn như thế nào.