แก้ไขปัญหาทั่วไปในการติดตั้ง SQL Server Cumulative Updates (CU) - SQL Server (2023)

  • บทความ

บทความนี้แสดงขั้นตอนการแก้ไขปัญหาทั่วไปที่คุณอาจพบเมื่อคุณใช้การอัปเดตแบบสะสม (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 ใหม่

วิธีการแก้ไขปัญหาทั่วไป

แยกข้อผิดพลาดโดยทำตามขั้นตอนต่อไปนี้:

  1. เลือกบนหน้าจอความผิดพลาดของกระบวนการตั้งค่ารายละเอียดออกจาก
  2. เช็คอินโฟลเดอร์%programfiles%\Microsoft SQL Server\nnn\Setup Bootstrap\Logสรุป.txtในส่วนคุณลักษณะของผลิตภัณฑ์ที่ค้นพบเพื่อตรวจสอบว่าคุณสมบัติใด ๆ ที่แสดงอยู่รายงานข้อผิดพลาดหรือไม่ ในกรณีนี้ คุณสามารถมุ่งเน้นไปที่การแก้ไขปัญหาที่ส่งผลกระทบต่อคุณลักษณะนี้
  3. ไปที่โฟลเดอร์ย่อยที่มีชื่อปปปปMMdd_HHmmss(ซ.ข. 20220618_174947) ที่สอดคล้องกับเวลาล้มเหลวที่รายงานซึ่งคุณกำลังมุ่งเน้น เป้าหมายคือการมีไฟล์คุณลักษณะเฉพาะ ไฟล์ ERRORLOG และDetails.txt-วันที่เพื่อตรวจสอบเท่าที่จำเป็น
  4. นำทางไปยังโฟลเดอร์ย่อย \MSSQLSERVER และค้นหาไฟล์บันทึกเฉพาะสำหรับคุณลักษณะที่ล้มเหลว ตัวอย่าง:sql_engine_core_inst_Cpu64_1.log. สำหรับข้อผิดพลาดของสคริปต์การอัปเกรด ให้ตรวจสอบSQLServer_ERRORLOG_date_time.txtไฟล์ที่เกี่ยวข้องกับเวลาที่การอัปเกรดล้มเหลว
  5. เปิดรายละเอียด.txtไฟล์บันทึกและค้นหาคำหลัก "ข้อผิดพลาด" ไม่ใช่ทุกข้อผิดพลาดที่ถือว่าสำคัญ

สำหรับข้อมูลเพิ่มเติม โปรดดูที่ดูและอ่านไฟล์บันทึกการตั้งค่า SQL Server.

ค้นหาสถานการณ์ที่ตรงกับสถานการณ์ของคุณใน 2-3 ส่วนถัดไป จากนั้นทำตามขั้นตอนการแก้ไขปัญหาที่เกี่ยวข้อง หากไม่มีสถานการณ์ที่ตรงกัน ให้มองหาตัวชี้เพิ่มเติมในไฟล์บันทึก

ข้อผิดพลาด 912 และ 3417 และ "ข้อผิดพลาดในการรอตัวจัดการการกู้คืนโปรแกรมฐานข้อมูล"

สคริปต์การอัปเกรด T-SQL มาพร้อมกับการอัปเดตแบบสะสมของ SQL Server แต่ละรายการ ซึ่งทำงานหลังจากไบนารีของ SQL Server ถูกแทนที่ด้วยเวอร์ชันล่าสุด หากสคริปต์ T-SQL เหล่านี้ไม่ทำงานด้วยเหตุผลบางประการ โปรแกรมติดตั้งจะรายงานข้อผิดพลาด "ข้อผิดพลาดในการรอการจัดการการกู้คืนโปรแกรมฐานข้อมูล" ในส่วนรายละเอียดข้อผิดพลาด ตั้งค่าบันทึกข้อผิดพลาด912และ3417ในบันทึกข้อผิดพลาดของ SQL Server ปัจจุบัน ข้อผิดพลาด 912 และ 3417 เกี่ยวข้องกับความล้มเหลวในการอัปเกรดสคริปต์ฐานข้อมูลและความล้มเหลวในการกู้คืนฐานข้อมูลหลักตามลำดับ ข้อความที่อยู่ก่อนหน้าข้อผิดพลาด 912 โดยทั่วไปจะให้ข้อมูลเกี่ยวกับสาเหตุของข้อผิดพลาดที่พบขณะเรียกใช้สคริปต์การอัปเกรด

ทำตามขั้นตอนเหล่านี้เพื่อแก้ไขข้อผิดพลาดเหล่านี้:

  1. สำหรับข้อมูลโดยละเอียดเกี่ยวกับข้อผิดพลาด โปรดดูบันทึกข้อผิดพลาดของ SQL Server (ERRORLOG)
  2. หากต้องการข้ามการเรียกใช้สคริปต์การอัปเกรด ให้เริ่ม SQL Server โดยใช้ติดตามธง 902.
  3. แก้ไขสาเหตุของข้อผิดพลาดตามสถานการณ์ต่างๆ

สถานการณ์ต่อไปนี้แสดงสาเหตุที่พบบ่อยที่สุดของข้อผิดพลาดของสคริปต์การอัปเกรดและวิธีแก้ไขปัญหาที่เกี่ยวข้อง

ส่วนฐานข้อมูลแค็ตตาล็อก SSISDB ของกลุ่มความพร้อมใช้งาน

ถ้าฐานข้อมูลแค็ตตาล็อก SQL Server Integration Services (SSISDB) ของคุณถูกเพิ่มลงในกลุ่มความพร้อมใช้งานตลอดเวลา การอัปเกรดสคริปต์อาจล้มเหลว ดูส่วนสำหรับข้อมูลเพิ่มเติมการอัปเกรด SSISDB ในกลุ่มความพร้อมใช้งาน. วิธีแก้ไขปัญหานี้:

  1. ลบSSISDBจากกลุ่มความพร้อมใช้งาน
  2. รันการอัพเกรด CU
  3. สอบถามหลังทำเสร็จSSISDBของการอัปเกรดจะคืนค่ากลุ่มความพร้อมใช้งานตลอดเวลา

ขาดการเข้าสู่ระบบ ##MS_SSISSServerCleanupJobLogin##

บริการ SQL Server ไม่สามารถเริ่มต้นได้หลังจากใช้โปรแกรมแก้ไข SQL Server และ SQL Server สร้างข้อผิดพลาด 15151 ข้อความต่อไปนี้อาจปรากฏในบันทึกข้อผิดพลาดของ SQL Server:

ข้อผิดพลาด: 15151 ความรุนแรง: 16 สถานะ: 1.ไม่พบการเข้าสู่ระบบ '##MS_SSISServerCleanupJobLogin##' เนื่องจากไม่มีอยู่หรือคุณไม่ได้รับอนุญาต

ปัญหานี้อาจเกิดขึ้นได้เนื่องจากการเข้าสู่ระบบถูกลบด้วยตนเองหรือสิ่งนี้คำแนะนำไม่ถูกติดตาม ทำตามขั้นตอนเหล่านี้เพื่อแก้ไขปัญหา:

  1. เริ่ม SQL Server ด้วยติดตามธง 902.

  2. สร้างการเข้าสู่ระบบใหม่ (เซิร์ฟเวอร์หลัก) บนเซิร์ฟเวอร์

    สร้างการเข้าสู่ระบบ [##MS_SSISServerCleanupJobLogin##]WITH PASSWORD=N'',DEFAULT_DATABASE=[master],DEFAULT_LANGUAGE=[us_english],CHECK_EXPIRATION=OFF,CHECK_POLICY=OFF;
  3. สลับไปยังฐานข้อมูลSSISDBและจับคู่ผู้ใช้ที่มีอยู่กับการเข้าสู่ระบบที่สร้างขึ้นใหม่:

    ใช้ SSISDBGOALTER USER[##MS_SSISServerCleanupJobUser##] ด้วย LOGIN =[##MS_SSISServerCleanupJobLogin##]

กำหนดค่าผู้ใช้/บทบาทระบบไม่ถูกต้องในฐานข้อมูล msdb

ส่วนนี้มีขั้นตอนในการแก้ไขปัญหาผู้ใช้ระบบหรือบทบาทที่กำหนดค่าไม่ถูกต้องในmsdbฐานข้อมูล.

สคีมา TargetServersRole และ Security role

สิ่งเหล่านี้ใช้ในสภาพแวดล้อมหลายเซิร์ฟเวอร์ ตามค่าเริ่มต้น Security role จะอยู่บทบาทเซิร์ฟเวอร์เป้าหมายอยู่ในครอบครองดีบีโอและบทบาทเป็นเจ้าของสิ่งนั้นTargetServersRole-Schema. หากคุณเปลี่ยนการแมปนี้โดยไม่ได้ตั้งใจ และการอัปเดตที่คุณกำลังติดตั้งมีการเปลี่ยนแปลงในบทบาทใดๆ เหล่านี้ การอัปเกรดอาจล้มเหลวและส่งคืน ID ข้อผิดพลาด 2714:มีวัตถุชื่อ 'TargetServersRole' ในฐานข้อมูลอยู่แล้วทำตามขั้นตอนต่อไปนี้หลังจากที่คุณตั้งค่าสถานะการสืบค้นกลับของ SQL Server902ได้เริ่มต้น:

  1. หยุด SQL Server และเริ่มใช้งานที902นู๋.

    สำหรับอินสแตนซ์เริ่มต้น:

    NET เริ่ม MSSQLSERVER /T902

    สำหรับอินสแตนซ์ที่มีชื่อ:

    NET เริ่มต้น MSSQL$INSTANCENAME /T902
  2. รักษาความปลอดภัยของคุณmsdbฐานข้อมูล.

    ฐานข้อมูลสำรอง msdb ไปยังดิสก์ = '<โฟลเดอร์สำรอง>'
  3. สร้างรายชื่อผู้ใช้ (ถ้ามี) ที่เป็นส่วนหนึ่งของบทบาทนี้ในปัจจุบัน

  4. ลบสิ่งเหล่านั้นบทบาทเซิร์ฟเวอร์เป้าหมายม้วนโดยใช้คำสั่งต่อไปนี้:

    ดำเนินการ msdb.dbo.sp_droprole @rolename = N'TargetServersRole'
  5. เมื่อต้องการตรวจสอบว่าปัญหาได้รับการแก้ไขแล้ว ให้รีสตาร์ทอินสแตนซ์ SQL Server โดยไม่ปิดแฟล็กการติดตาม902ใช้.

  6. ใส่ผู้ใช้จากขั้นตอนที่ 2 เข้ามาคืนค่า TargetServersRole แล้ว.

หลักการตามใบรับรองที่เป็นเจ้าของวัตถุผู้ใช้

หลักล้อมรอบด้วยเครื่องหมายแฮชคู่ (###) ถูกสร้างขึ้นจากใบรับรองเมื่อติดตั้ง SQL Server สิ่งเหล่านี้ถือเป็นหลักการที่ระบบสร้างขึ้น จะต้องไม่เชื่อมโยงกับหลักการของฐานข้อมูลที่มีวัตถุผู้ใช้ในmsdbหรือฐานข้อมูลอื่นๆ หากบันทึกข้อผิดพลาดระบุว่ามีข้อผิดพลาดเกี่ยวกับการเข้าสู่ระบบเหล่านี้ ให้ทำตามขั้นตอนเหล่านี้:

  1. เริ่ม SQL Server โดยใช้ติดตามธง 902.
  2. เปลี่ยนความเป็นเจ้าของวัตถุที่ได้รับผลกระทบเป็นผู้ใช้รายอื่น
  3. เริ่ม 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 ภายใต้กลุ่มอินสแตนซ์ชี้ไปยังไดเร็กทอรีที่ถูกต้อง

เมื่อต้องการแก้ไขปัญหานี้ ให้ทำดังต่อไปนี้:

  1. เชื่อมต่อกับอินสแตนซ์ SQL Server โดยใช้ SQL Server Management Studio (SSMS)
  2. ใน Object Browser คลิกขวาที่อินสแตนซ์ SQL Server เลือกลักษณะเฉพาะแล้วทางซ้ายการตั้งค่าฐานข้อมูลออกจาก
  3. ใส่ด้านล่างตำแหน่งเริ่มต้นของฐานข้อมูลแน่นอนว่าข้อมูลและบันทึกเป็นโฟลเดอร์ที่ถูกต้อง
  4. ลองติดตั้ง CU หรือ SP อีกครั้ง

โหนด Windows Server Failover Clustering (WSFC) ที่กำหนดค่าไม่ถูกต้อง

เพื่อให้การทำงานและการบำรุงรักษา SQL Server Failover Cluster Instance (FCI) เป็นไปอย่างราบรื่น ให้ปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดที่ระบุไว้ในก่อนการติดตั้งการทำคลัสเตอร์ล้มเหลวและที่จะอธิบาย หากข้อผิดพลาดเกิดขึ้นเมื่อใช้ CU หรือ SP ให้ตรวจสอบเงื่อนไขต่อไปนี้:

  1. ตรวจสอบให้แน่ใจว่าบริการรีจิสทรีระยะไกลเปิดใช้งานและทำงานบนโหนดทั้งหมดของคลัสเตอร์ WSFC
  2. หากบัญชีบริการสำหรับ 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 ล้มเหลวหากบัญชีการตั้งค่าไม่มีสิทธิ์ของผู้ใช้เฉพาะ.

References

Top Articles
Latest Posts
Article information

Author: Duncan Muller

Last Updated: 01/04/2024

Views: 5383

Rating: 4.9 / 5 (79 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Duncan Muller

Birthday: 1997-01-13

Address: Apt. 505 914 Phillip Crossroad, O'Konborough, NV 62411

Phone: +8555305800947

Job: Construction Agent

Hobby: Shopping, Table tennis, Snowboarding, Rafting, Motor sports, Homebrewing, Taxidermy

Introduction: My name is Duncan Muller, I am a enchanting, good, gentle, modern, tasty, nice, elegant person who loves writing and wants to share my knowledge and understanding with you.