مثل أي برنامج آخر، يحتاج Microsoft SQL Server إلى التحديث باستمرار. تقوم Microsoft بشكل روتيني بإصدار حزم الخدمة لـ SQL Server التي يجب تثبيتها. لتثبيت حزمة خدمة، يمكنك إما الاتصال بوحدة تحكم عن بعد لـ SQL Server، وتشغيل المثبت، والنقر فوق المعالج، أو يمكنك القيام بذلك بالطريقة السهلة.
يدعم كل مثبت حزمة خدمة لـ SQL Server عمليات التثبيت الصامت. يمكّنك نوع التثبيت هذا من استخدام سطر الأوامر لبدء عملية التثبيت. بالإضافة إلى ذلك، فهو يمكّنك أيضًا من أتمتة عملية تثبيت حزمة الخدمة لواحد أو عشرات أو مئات من خوادم SQL في وقت واحد.
بمجرد معرفة كيفية تثبيت حزمة الخدمة بصمت عبر سطر الأوامر، يمكنك بعد ذلك إنشاء أداة أتمتة باستخدام PowerShell لنشر حزم الخدمة بسرعة وكفاءة.
المتطلبات الأساسية
تتناول هذه المقالة التفصيلية كيفية نشر حزم خدمة SQL Server باستخدام PowerShell من كمبيوتر بعيد. للمتابعة، تأكد من أن لديك ما يلي:
- خادم SQL للتحديث (لا يهم الإصدار)
- أذونات المستخدم لتثبيت حزمة الخدمة على SQL Server
- التحكم عن بعد بوويرشيل متاح على خادم SQL البعيد
- تم تنزيل مثبت حزمة الخدمة (يمكنك العثور على كافة حزم الخدمة هنا.)
- معرفة متوسطة المستوى بالبرمجة النصية PowerShell
إذا كان كل شيء على ما يرام، فلنبدأ!
لتثبيت حزمة الخدمة بصمت وعن بعد، يستغرق الأمر خمس خطوات تقريبًا:
- تأكد من عدم وجود عملية إعادة تشغيل معلقة للخادم.
- انسخ مثبت حزمة الخدمة إلى خادم SQL البعيد.
- قم باستخراج المثبت المضغوط.
- بدء المثبت بصمت.
- تنظيف المثبت.
اختبار إعادة التشغيل المعلقة
نظرًا لأنه لا يمكن تثبيت حزمة الخدمة ما لم يكن Windows Server في انتظار إعادة التشغيل، فيجب عليك التحقق من هذا الموقف مقدمًا. إحدى الطرق السريعة للقيام بذلك هي استخدام PowerShell. أفضّل استخدام وظيفة تسمى إعادة التشغيل في انتظار الاختبار. من خلال توجيه هذه الوظيفة إلى الخادم، فإنها تقوم بإرجاع صواب/خطأ بسيط، مما يسمح لك بمعرفة ما إذا كان الخادم في انتظار إعادة التشغيل.
انسخ مثبت حزمة الخدمة إلى خادم SQL
بعد ذلك، انسخ برنامج التثبيت الذي قمت بتنزيله من Microsoft إلى خادم SQL البعيد. أفترض أن الكمبيوتر الذي تنسخ برنامج التثبيت منه موجود في نفس مجال Active Directory مثل SQL Server. إذا كان كلا الجهازين في نفس مجال Active Directory، فلا داعي للقلق بشأن توفير بيانات اعتماد بديلة لأوامر PowerShell.
بافتراض أن حزمة الخدمة موجودة على محرك الأقراص الثابتة المحلي الخاص بك هي C:SQLServerServicePacksSQL2016SP2.exe وأن خادم SQL البعيد الخاص بك يسمى SQLSRV، افتح وحدة تحكم PowerShell وقم بتشغيل:
Copy-Item -Path C:SQLServerServicePacksSQL2016SP2.exe -DestinationPath \SQLSRVc$
يجب أن يكون لديك الآن مثبت حزمة الخدمة على جذر محرك الأقراص C الخاص بخادم SQL الخاص بك.
بمجرد وصول المثبت إلى الخادم، يمكنك استخراج محتويات المثبت. لاستخراج المثبت، استخدم الوسائط /extract:"C:TempSQLSP" /quiet
. باستخدام اسم الملف من المثال السابق، قم بتشغيل التعليمات البرمجية التالية على SQL Server:
C:SQLServerServicePacksSQL2016SP2.exe /extract:"C:TempSQLSP" /quiet
نظرًا لأنك تقوم بتثبيت حزمة خدمة عن بعد، فلن تحتاج إلى فتح جلسة وحدة تحكم RDP على الخادم للقيام بذلك. بدلا من ذلك، يمكنك استخدام وظيفة تسمى استدعاء البرنامجوهي وظيفة PowerShell التي تمكنك من تنفيذ العمليات عن بعد.
يمكنك تشغيل استخراج محتويات حزمة الخدمة على خادم SQL البعيد، باستخدام الكود التالي:
Invoke-Program -ComputerName SQLSRV -FilePath 'C:SQLServerServicePacksSQL2016SP2.exe' -ArgumentList "/extract:"C:TempSQLSP" /quiet"
تنفيذ مثبت حزمة الخدمة
عند هذه النقطة، أنت جاهز لبدء عملية التثبيت. باستخدام Invoke-Program
يعمل PowerShell مرة أخرى، ويقوم بتشغيل برنامج التثبيت setup.exe الذي تم استخراجه من الملف الأصلي، ويقدم /q
و /allinstances
يتحول إليه. فهو يخبر مثبت حزمة الخدمة بعدم إظهار نافذة التثبيت وتصحيح كافة مثيلات SQL على الخادم.
يمكنك مشاهدة مثال لبدء تشغيل برنامج التثبيت هنا:
Invoke-Program -ComputerName SQLSRV -FilePath "C:TempSQLSPsetup.exe" -ArgumentList "/q /allinstances"
تنظيف المثبت
إذا سارت الأمور على ما يرام، فسيكون لديك SQL Server محدث بمجرد انتهاء عملية التثبيت. لديك مهمة أخيرة للقيام بها، وهي التنظيف.
بافتراض أنك لا تريد ترك الملفات التي قمت بنقلها مسبقًا إلى الخادم، قم بإزالتها باستخدام أمر Remove-Item PowerShell. ومع ذلك، يجب عليك توفير المسار إلى المجلد الذي استخرجه الملف الأصلي والمثبت الأصلي. وإليك كيفية القيام بذلك:
Remove-Item -Path "\SQLSRVc$SQLServerServicePacksSQL2016SP2.exe","\SQLSRVc$tempSQLSP" -Recurse -Force
ملخص
لقد نجحت في تثبيت حزمة خدمة SQL Server عن بعد باستخدام ملف وبرنامج PowerShell النصي. الآن بعد أن امتلكت المهارات اللازمة لتحديث SQL Server لخادم واحد، يمكنك بسهولة توسيع هذا الرمز إلى خوادم متعددة.
لنشر حزمة خدمة على خوادم متعددة، استخدم بنيات PowerShell مثل حلقة foreach. ضع الكود الذي تعلمته في هذه المقالة داخل حلقة foreach لمعالجة واحد أو مائة خادم SQL في وقت واحد بسرعة!
(العلامات للترجمة)مايكروسوفت