- บทความ
บทความนี้แสดงขั้นตอนการแก้ไขปัญหาทั่วไปที่คุณอาจพบเมื่อคุณใช้การอัปเดตแบบสะสม (CU) หรือ Service Pack (SP) กับอินสแตนซ์ Microsoft SQL Server ของคุณ นอกจากนี้ยังให้รายละเอียดเกี่ยวกับการแก้ไขข้อความแสดงข้อผิดพลาดหรือเงื่อนไขที่เกี่ยวข้องกับการอัปเดตต่อไปนี้:
การรอการจัดการการกู้คืน Database Engine ล้มเหลว
ข้อความและข้อผิดพลาด912และ3417เมื่อเรียกใช้สคริปต์การอัปเกรด- เกิดข้อผิดพลาดในการติดตั้งเนื่องจากไฟล์ MSI หรือ MSP (อัพเดต) หายไปในแคช Windows Installer
ไดเร็กทอรีข้อมูลระบบ Database Engine ในรีจิสทรีไม่ถูกต้อง
หรือไดเร็กทอรีบันทึกผู้ใช้ในรีจิสทรีไม่ถูกต้อง
ข่าว.ไม่พบเส้นทางเครือข่าย
และข้อความแสดงข้อผิดพลาดอื่นๆ ที่คุณได้รับเมื่อบริการรีจิสทรีระยะไกลหรือการแชร์ของผู้ดูแลระบบถูกปิดใช้งานสำหรับอินสแตนซ์ Always On Failover Cluster (FCI) หรือ Always On Availability Groups
ข้อมูลเกี่ยวกับวิธีการติดตั้งโปรแกรมปรับปรุงสะสมและเซอร์วิสแพ็ค
ส่วนนี้ให้ข้อมูลเกี่ยวกับการติดตั้ง CU และ SP
สำหรับ Microsoft SQL Server 2016 และเวอร์ชันก่อนหน้า:
- ก่อนติดตั้ง CU ตรวจสอบให้แน่ใจว่าอินสแตนซ์ SQL Server ของคุณอยู่ในระดับ SP ที่ถูกต้องสำหรับ CU นั้น ตัวอย่างเช่น คุณไม่สามารถใช้ CU17 สำหรับ SQL 2016 SP2 ก่อนที่จะใช้ SP2 สำหรับอินสแตนซ์ SQL Server 2016
- คุณสามารถใช้ CU ล่าสุดสำหรับพื้นฐาน SP เฉพาะโดยไม่ต้องใช้ CU ก่อนหน้าสำหรับ Service Pack นั้น ตัวอย่างเช่น หากคุณต้องการใช้ CU17 สำหรับอินสแตนซ์ SQL Server 2016 SP2 คุณสามารถข้ามไปใช้กับ CU14, CU15 และ CU16 ได้หากไม่ได้ติดตั้งและใช้ CU17 โดยตรง
สำหรับ Microsoft SQL Server 2017 และเวอร์ชันที่สูงกว่า คุณสามารถใช้ CU ล่าสุดที่มีอยู่ได้ตลอดเวลา (ไม่มี Service Pack สำหรับ SQL Server 2017 และรุ่นที่ใหม่กว่า)
ก่อนใช้ CU หรือ SP ตรวจสอบให้แน่ใจว่าติดตั้งอินสแตนซ์ที่คุณกำลังอัปเดตอย่างถูกต้อง ไม่สามารถติดตั้งไฟล์โปรแกรม SQL Server และไฟล์ข้อมูลภายใต้:
- ดิสก์ไดรฟ์แบบถอดได้
- ระบบไฟล์ที่ใช้การบีบอัด
- ไดเร็กทอรีที่มีไฟล์ระบบอยู่
- ไดรฟ์ที่ใช้ร่วมกันในอินสแตนซ์คลัสเตอร์ล้มเหลว
ถ้าคุณคุณลักษณะโปรแกรมฐานข้อมูลเพิ่มหลังจากใช้ CU หรือ SP กับอินสแตนซ์ คุณควรอัปเดตคุณลักษณะใหม่ให้เป็นระดับเดียวกับโปรแกรมอินสแตนซ์ก่อนที่จะใช้ CU หรือ SP ใหม่
วิธีการแก้ไขปัญหาทั่วไป
แยกข้อผิดพลาดโดยทำตามขั้นตอนต่อไปนี้:
- เลือกบนหน้าจอความผิดพลาดของกระบวนการตั้งค่ารายละเอียดออกจาก
- เช็คอินโฟลเดอร์%programfiles%\Microsoft SQL Server\nnn\Setup Bootstrap\Logสรุป.txtในส่วนคุณลักษณะของผลิตภัณฑ์ที่ค้นพบเพื่อตรวจสอบว่าคุณสมบัติใด ๆ ที่แสดงอยู่รายงานข้อผิดพลาดหรือไม่ ในกรณีนี้ คุณสามารถมุ่งเน้นไปที่การแก้ไขปัญหาที่ส่งผลกระทบต่อคุณลักษณะนี้
- ไปที่โฟลเดอร์ย่อยที่มีชื่อปปปปMMdd_HHmmss(ซ.ข. 20220618_174947) ที่สอดคล้องกับเวลาล้มเหลวที่รายงานซึ่งคุณกำลังมุ่งเน้น เป้าหมายคือการมีไฟล์คุณลักษณะเฉพาะ ไฟล์ ERRORLOG และDetails.txt-วันที่เพื่อตรวจสอบเท่าที่จำเป็น
- นำทางไปยังโฟลเดอร์ย่อย \MSSQLSERVER และค้นหาไฟล์บันทึกเฉพาะสำหรับคุณลักษณะที่ล้มเหลว ตัวอย่าง:sql_engine_core_inst_Cpu64_1.log. สำหรับข้อผิดพลาดของสคริปต์การอัปเกรด ให้ตรวจสอบSQLServer_ERRORLOG_date_time.txtไฟล์ที่เกี่ยวข้องกับเวลาที่การอัปเกรดล้มเหลว
- เปิดรายละเอียด.txtไฟล์บันทึกและค้นหาคำหลัก "ข้อผิดพลาด" ไม่ใช่ทุกข้อผิดพลาดที่ถือว่าสำคัญ
สำหรับข้อมูลเพิ่มเติม โปรดดูที่ดูและอ่านไฟล์บันทึกการตั้งค่า SQL Server.
ค้นหาสถานการณ์ที่ตรงกับสถานการณ์ของคุณใน 2-3 ส่วนถัดไป จากนั้นทำตามขั้นตอนการแก้ไขปัญหาที่เกี่ยวข้อง หากไม่มีสถานการณ์ที่ตรงกัน ให้มองหาตัวชี้เพิ่มเติมในไฟล์บันทึก
ข้อผิดพลาด 912 และ 3417 และ "ข้อผิดพลาดในการรอตัวจัดการการกู้คืนโปรแกรมฐานข้อมูล"
สคริปต์การอัปเกรด T-SQL มาพร้อมกับการอัปเดตแบบสะสมของ SQL Server แต่ละรายการ ซึ่งทำงานหลังจากไบนารีของ SQL Server ถูกแทนที่ด้วยเวอร์ชันล่าสุด หากสคริปต์ T-SQL เหล่านี้ไม่ทำงานด้วยเหตุผลบางประการ โปรแกรมติดตั้งจะรายงานข้อผิดพลาด "ข้อผิดพลาดในการรอการจัดการการกู้คืนโปรแกรมฐานข้อมูล" ในส่วนรายละเอียดข้อผิดพลาด ตั้งค่าบันทึกข้อผิดพลาด912และ3417ในบันทึกข้อผิดพลาดของ SQL Server ปัจจุบัน ข้อผิดพลาด 912 และ 3417 เกี่ยวข้องกับความล้มเหลวในการอัปเกรดสคริปต์ฐานข้อมูลและความล้มเหลวในการกู้คืนฐานข้อมูลหลักตามลำดับ ข้อความที่อยู่ก่อนหน้าข้อผิดพลาด 912 โดยทั่วไปจะให้ข้อมูลเกี่ยวกับสาเหตุของข้อผิดพลาดที่พบขณะเรียกใช้สคริปต์การอัปเกรด
ทำตามขั้นตอนเหล่านี้เพื่อแก้ไขข้อผิดพลาดเหล่านี้:
- สำหรับข้อมูลโดยละเอียดเกี่ยวกับข้อผิดพลาด โปรดดูบันทึกข้อผิดพลาดของ SQL Server (ERRORLOG)
- หากต้องการข้ามการเรียกใช้สคริปต์การอัปเกรด ให้เริ่ม SQL Server โดยใช้ติดตามธง 902.
- แก้ไขสาเหตุของข้อผิดพลาดตามสถานการณ์ต่างๆ
สถานการณ์ต่อไปนี้แสดงสาเหตุที่พบบ่อยที่สุดของข้อผิดพลาดของสคริปต์การอัปเกรดและวิธีแก้ไขปัญหาที่เกี่ยวข้อง
ส่วนฐานข้อมูลแค็ตตาล็อก SSISDB ของกลุ่มความพร้อมใช้งาน
ถ้าฐานข้อมูลแค็ตตาล็อก SQL Server Integration Services (SSISDB) ของคุณถูกเพิ่มลงในกลุ่มความพร้อมใช้งานตลอดเวลา การอัปเกรดสคริปต์อาจล้มเหลว ดูส่วนสำหรับข้อมูลเพิ่มเติมการอัปเกรด SSISDB ในกลุ่มความพร้อมใช้งาน. วิธีแก้ไขปัญหานี้:
- ลบ
SSISDB
จากกลุ่มความพร้อมใช้งาน - รันการอัพเกรด CU
- สอบถามหลังทำเสร็จ
SSISDB
ของการอัปเกรดจะคืนค่ากลุ่มความพร้อมใช้งานตลอดเวลา
ขาดการเข้าสู่ระบบ ##MS_SSISSServerCleanupJobLogin##
บริการ SQL Server ไม่สามารถเริ่มต้นได้หลังจากใช้โปรแกรมแก้ไข SQL Server และ SQL Server สร้างข้อผิดพลาด 15151 ข้อความต่อไปนี้อาจปรากฏในบันทึกข้อผิดพลาดของ SQL Server:
ข้อผิดพลาด: 15151 ความรุนแรง: 16 สถานะ: 1.ไม่พบการเข้าสู่ระบบ '##MS_SSISServerCleanupJobLogin##' เนื่องจากไม่มีอยู่หรือคุณไม่ได้รับอนุญาต
ปัญหานี้อาจเกิดขึ้นได้เนื่องจากการเข้าสู่ระบบถูกลบด้วยตนเองหรือสิ่งนี้คำแนะนำไม่ถูกติดตาม ทำตามขั้นตอนเหล่านี้เพื่อแก้ไขปัญหา:
เริ่ม SQL Server ด้วยติดตามธง 902.
สร้างการเข้าสู่ระบบใหม่ (เซิร์ฟเวอร์หลัก) บนเซิร์ฟเวอร์
สร้างการเข้าสู่ระบบ [##MS_SSISServerCleanupJobLogin##]WITH PASSWORD=N'
',DEFAULT_DATABASE=[master],DEFAULT_LANGUAGE=[us_english],CHECK_EXPIRATION=OFF,CHECK_POLICY=OFF; สลับไปยังฐานข้อมูล
SSISDB
และจับคู่ผู้ใช้ที่มีอยู่กับการเข้าสู่ระบบที่สร้างขึ้นใหม่:ใช้ SSISDBGOALTER USER[##MS_SSISServerCleanupJobUser##] ด้วย LOGIN =[##MS_SSISServerCleanupJobLogin##]
กำหนดค่าผู้ใช้/บทบาทระบบไม่ถูกต้องในฐานข้อมูล msdb
ส่วนนี้มีขั้นตอนในการแก้ไขปัญหาผู้ใช้ระบบหรือบทบาทที่กำหนดค่าไม่ถูกต้องในmsdb
ฐานข้อมูล.
สคีมา TargetServersRole และ Security role
สิ่งเหล่านี้ใช้ในสภาพแวดล้อมหลายเซิร์ฟเวอร์ ตามค่าเริ่มต้น Security role จะอยู่บทบาทเซิร์ฟเวอร์เป้าหมายอยู่ในครอบครองดีบีโอและบทบาทเป็นเจ้าของสิ่งนั้นTargetServersRole-Schema. หากคุณเปลี่ยนการแมปนี้โดยไม่ได้ตั้งใจ และการอัปเดตที่คุณกำลังติดตั้งมีการเปลี่ยนแปลงในบทบาทใดๆ เหล่านี้ การอัปเกรดอาจล้มเหลวและส่งคืน ID ข้อผิดพลาด 2714:มีวัตถุชื่อ 'TargetServersRole' ในฐานข้อมูลอยู่แล้ว
ทำตามขั้นตอนต่อไปนี้หลังจากที่คุณตั้งค่าสถานะการสืบค้นกลับของ SQL Server902
ได้เริ่มต้น:
หยุด SQL Server และเริ่มใช้งานที902นู๋.
สำหรับอินสแตนซ์เริ่มต้น:
NET เริ่ม MSSQLSERVER /T902
สำหรับอินสแตนซ์ที่มีชื่อ:
NET เริ่มต้น MSSQL$INSTANCENAME /T902
รักษาความปลอดภัยของคุณ
msdb
ฐานข้อมูล.ฐานข้อมูลสำรอง msdb ไปยังดิสก์ = '<โฟลเดอร์สำรอง>'
สร้างรายชื่อผู้ใช้ (ถ้ามี) ที่เป็นส่วนหนึ่งของบทบาทนี้ในปัจจุบัน
ลบสิ่งเหล่านั้นบทบาทเซิร์ฟเวอร์เป้าหมายม้วนโดยใช้คำสั่งต่อไปนี้:
ดำเนินการ msdb.dbo.sp_droprole @rolename = N'TargetServersRole'
เมื่อต้องการตรวจสอบว่าปัญหาได้รับการแก้ไขแล้ว ให้รีสตาร์ทอินสแตนซ์ SQL Server โดยไม่ปิดแฟล็กการติดตาม
902
ใช้.ใส่ผู้ใช้จากขั้นตอนที่ 2 เข้ามาคืนค่า TargetServersRole แล้ว.
หลักการตามใบรับรองที่เป็นเจ้าของวัตถุผู้ใช้
หลักล้อมรอบด้วยเครื่องหมายแฮชคู่ (###) ถูกสร้างขึ้นจากใบรับรองเมื่อติดตั้ง SQL Server สิ่งเหล่านี้ถือเป็นหลักการที่ระบบสร้างขึ้น จะต้องไม่เชื่อมโยงกับหลักการของฐานข้อมูลที่มีวัตถุผู้ใช้ในmsdb
หรือฐานข้อมูลอื่นๆ หากบันทึกข้อผิดพลาดระบุว่ามีข้อผิดพลาดเกี่ยวกับการเข้าสู่ระบบเหล่านี้ ให้ทำตามขั้นตอนเหล่านี้:
- เริ่ม SQL Server โดยใช้ติดตามธง 902.
- เปลี่ยนความเป็นเจ้าของวัตถุที่ได้รับผลกระทบเป็นผู้ใช้รายอื่น
- เริ่ม SQL Server โดยไม่มีแฟล็กการติดตาม
902
ใหม่เพื่อให้สคริปต์การอัปเกรดทำงานเสร็จสิ้น
สังเกต
แม้ว่าความล้มเหลวในการเรียกใช้สคริปต์การอัปเกรดเป็นสาเหตุที่พบบ่อยที่สุดของข้อผิดพลาด "ล้มเหลวในการรอการจัดการการคืนค่ากลไกจัดการฐานข้อมูล" ข้อผิดพลาดนี้อาจเกิดขึ้นได้จากสาเหตุอื่นๆ เช่นกัน ข้อผิดพลาดหมายความว่าตัวติดตั้งการอัปเดตไม่สามารถเริ่มบริการหรือทำให้ออนไลน์ได้หลังจากติดตั้งการอัปเดตแล้ว ในทั้งสองกรณี การแก้ไขปัญหารวมถึงการตรวจสอบบันทึกข้อผิดพลาดและบันทึกการตั้งค่าเพื่อระบุสาเหตุของข้อผิดพลาดและดำเนินการที่เหมาะสม
ข้อผิดพลาดในการตั้งค่าเกิดจากไฟล์การติดตั้งหายไปในแคชของ Windows
แอปพลิเคชัน เช่น SQL Server ที่ใช้เทคโนโลยี Windows Installer สำหรับกระบวนการติดตั้งจะจัดเก็บไฟล์ที่สำคัญไว้ในแคช Windows Installer ตำแหน่งเริ่มต้นของตัวติดตั้งคือC:\Windows\Installer. ไฟล์เหล่านี้จำเป็นสำหรับการถอนการติดตั้งและอัปเดตแอปพลิเคชัน ซึ่งเป็นเอกลักษณ์เฉพาะของคอมพิวเตอร์เครื่องนี้ หากไฟล์เหล่านี้ถูกลบโดยไม่ตั้งใจหรือถูกบุกรุก การอัปเดตแอปพลิเคชันที่ต้องใช้ไฟล์เหล่านี้จะล้มเหลว ใช้วิธีใดวิธีหนึ่งต่อไปนี้ตามรายการด้านล่างกู้คืนไฟล์แคช Windows Installer ที่หายไปมีการอธิบายเพื่อแก้ไขเงื่อนไขนี้:
- ซ่อมแซมการติดตั้ง SQL Server
- ใช้สิ่งนั้นแก้ไขเครื่องมือMSI.
- ใช้สิ่งนั้นFindSQLInstalls.vbs-สคริปต์.
- กู้คืนไฟล์ด้วยตนเอง
- กู้คืนไฟล์จากการสำรองข้อมูลสถานะระบบ
- ตรวจสอบและดำเนินการตามขั้นตอนด้านล่างกู้คืนไฟล์แคช Windows Installer ที่ขาดหายไปที่จะอธิบาย
การตั้งค่าล้มเหลวเนื่องจากข้อมูลหรือตำแหน่งบันทึกไม่ถูกต้องในรีจิสทรี
ฐานข้อมูลเริ่มต้นและพาธไฟล์บันทึกที่คุณระบุระหว่างการติดตั้งจะถูกบันทึกไว้ในรีจิสทรีภายใต้HKEY_LOCAL_MACHINE\HKLM\Software\Microsoft\MicrosoftSQL Server\MSSQL{nn}.MyInstanceบันทึกไว้ เมื่อคุณติดตั้ง CU หรือ SP ตำแหน่งเหล่านี้จะถูกตรวจสอบโดยกระบวนการติดตั้ง หากการตรวจสอบล้มเหลว คุณอาจได้รับข้อผิดพลาดที่คล้ายกับข้อความต่อไปนี้:
เกิดข้อผิดพลาดในการติดตั้งคุณลักษณะอินสแตนซ์ของบริการโปรแกรมฐานข้อมูล SQL Server ไดเร็กทอรีข้อมูลระบบ Database Engine ในรีจิสทรีไม่ถูกต้อง
ไดเร็กทอรีบันทึกผู้ใช้ในรีจิสทรีไม่ถูกต้อง ตรวจสอบคีย์ DefaultLog ภายใต้กลุ่มอินสแตนซ์ชี้ไปยังไดเร็กทอรีที่ถูกต้อง
เมื่อต้องการแก้ไขปัญหานี้ ให้ทำดังต่อไปนี้:
- เชื่อมต่อกับอินสแตนซ์ SQL Server โดยใช้ SQL Server Management Studio (SSMS)
- ใน Object Browser คลิกขวาที่อินสแตนซ์ SQL Server เลือกลักษณะเฉพาะแล้วทางซ้ายการตั้งค่าฐานข้อมูลออกจาก
- ใส่ด้านล่างตำแหน่งเริ่มต้นของฐานข้อมูลแน่นอนว่า
ข้อมูล
และบันทึก
เป็นโฟลเดอร์ที่ถูกต้อง - ลองติดตั้ง CU หรือ SP อีกครั้ง
โหนด Windows Server Failover Clustering (WSFC) ที่กำหนดค่าไม่ถูกต้อง
เพื่อให้การทำงานและการบำรุงรักษา SQL Server Failover Cluster Instance (FCI) เป็นไปอย่างราบรื่น ให้ปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดที่ระบุไว้ในก่อนการติดตั้งการทำคลัสเตอร์ล้มเหลวและที่จะอธิบาย หากข้อผิดพลาดเกิดขึ้นเมื่อใช้ CU หรือ SP ให้ตรวจสอบเงื่อนไขต่อไปนี้:
- ตรวจสอบให้แน่ใจว่าบริการรีจิสทรีระยะไกลเปิดใช้งานและทำงานบนโหนดทั้งหมดของคลัสเตอร์ WSFC
- หากบัญชีบริการสำหรับ SQL Server ไม่ใช่ผู้ดูแลระบบในคลัสเตอร์ Windows ของคุณ ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานการใช้ร่วมกันของผู้ดูแลระบบ (C$ เป็นต้น) บนโหนดทั้งหมด สำหรับข้อมูลเพิ่มเติม โปรดดูที่ภาพรวมของปัญหาที่อาจเกิดขึ้นเมื่อไม่มีส่วนแบ่งการดูแลระบบ. หากใช้ร่วมกันเหล่านี้ไม่ได้รับการกำหนดค่าอย่างถูกต้อง คุณอาจสังเกตเห็นอาการต่อไปนี้ตั้งแต่หนึ่งอาการขึ้นไปเมื่อพยายามติดตั้ง CU หรือ SP:
- การอัปเดตใช้เวลานานในการดำเนินการให้เสร็จสิ้นหรือไม่ตอบสนอง บันทึกการตั้งค่าไม่แสดงความคืบหน้า
- บันทึกการตั้งค่ามีข้อความดังต่อไปนี้:
ไม่พบเส้นทางเครือข่าย
System.UnauthorizedAccessException: พยายามดำเนินการโดยไม่ได้รับอนุญาต
ข้อมูลเพิ่มเติม
- ค้นหารายการอัปเดตที่มีอยู่ในปัจจุบันทั้งหมดสำหรับเวอร์ชัน SQL Server ของคุณและตำแหน่งการดาวน์โหลดดูการกำหนดเวอร์ชัน รุ่น และระดับการอัปเดต - SQL Server.
- สำหรับข้อมูลเพิ่มเติมเกี่ยวกับความสามารถในการรองรับและลำดับเวลาการบำรุงรักษาสำหรับเวอร์ชัน SQL Server ของคุณ โปรดไปที่หน้าวงจรชีวิตผลิตภัณฑ์ของ Microsoft.
- สำหรับข้อมูลเกี่ยวกับรูปแบบการให้บริการสำหรับ SQL Server รุ่นต่างๆ โปรดดูรูปแบบการบำรุงรักษาส่วนเพิ่มสำหรับการอัปเดต SQL Serverและรูปแบบการบริการที่ทันสมัยสำหรับ SQL 2017 และเวอร์ชันที่ใหม่กว่า.
- ค้นหาข้อมูลทั่วไปเกี่ยวกับการอัปเกรด SQL Serverดูติดตั้งการอัปเดตการให้บริการ SQL Server.
- สำหรับข้อมูลเกี่ยวกับการอัปเดตความปลอดภัยสำหรับ SQL Server และผลิตภัณฑ์อื่นๆ โปรดดูที่คู่มือการอัปเดตความปลอดภัย.
- สำหรับข้อมูลเกี่ยวกับคำศัพท์มาตรฐานที่เกี่ยวข้องกับการอัปเดตของ Microsoft โปรดดูคำอธิบายของคำศัพท์มาตรฐานที่ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์ของ Microsoft.
- สำหรับข้อมูลเกี่ยวกับวิธีแก้ไขปัญหาการตั้งค่าที่อาจเกิดขึ้นในสภาพแวดล้อมที่มีความปลอดภัยสูง โปรดดูที่การติดตั้ง SQL Server ล้มเหลวหากบัญชีการตั้งค่าไม่มีสิทธิ์ของผู้ใช้เฉพาะ.