ฉันปิดหน่วยความจำสูงสุดของอินสแตนซ์ SQL Server ของฉันเป็น 15 MB ... ตอนนี้ฉันไม่สามารถเข้าสู่ระบบเพื่อเพิ่มมันได้ ฉันจะเพิ่มหน่วยความจำสูงสุดโดยไม่ต้องเข้าสู่ระบบได้อย่างไร
เวอร์ชันคือ SQL 2008 R2
ฉันปิดหน่วยความจำสูงสุดของอินสแตนซ์ SQL Server ของฉันเป็น 15 MB ... ตอนนี้ฉันไม่สามารถเข้าสู่ระบบเพื่อเพิ่มมันได้ ฉันจะเพิ่มหน่วยความจำสูงสุดโดยไม่ต้องเข้าสู่ระบบได้อย่างไร
เวอร์ชันคือ SQL 2008 R2
คำตอบ:
เชื่อมต่อโดยใช้การเชื่อมต่อผู้ดูแลระบบโดยเฉพาะ (DAC)ซึ่งรับประกันทรัพยากรจำนวนน้อยที่สุดเพื่อแก้ไขปัญหาเช่นนี้ ตัวอย่างเช่นหากคุณกำลังเชื่อมต่อผ่าน Management Studio ให้เปิดหน้าต่าง New Query และเพียงพิมพ์ADMIN:servernameแทนservernameเมื่อมันพร้อมท์ให้คุณเชื่อมต่อ เพิกเฉยข้อผิดพลาดใด ๆ ที่คุณได้รับซึ่งมักจะไม่เป็นพิษเป็นภัยเพราะเกี่ยวข้องกับ Object Explorer, รายการดร็อปดาวน์ฐานข้อมูล, IntelliSense ฯลฯ และพยายามเชื่อมต่อในนามของคุณ (อนุญาตการเชื่อมต่อ DAC เพียงครั้งเดียว)
ข้อมูลเพิ่มเติมที่นี่ , ที่นี่และการแก้ไขปัญหาบางอย่างที่นี่
อีกวิธีหนึ่ง (เนื่องจากเกิดขึ้นสองครั้งก่อนหน้านี้และ DAC หลอกลวงไม่ทำงานสำหรับฉัน) ปิดบริการ SQL Server ลงจากนั้นนำกลับมาในโหมด "การกำหนดค่าขั้นต่ำ" ซึ่งเป็นโหมดผู้ใช้เดี่ยวที่ได้รับการแก้ไข
ผ่านบรรทัดรับคำสั่งไปที่พา ธ สำหรับปฏิบัติการ sqlservr.exe ตามที่ระบุไว้ในบริการ แต่แทนที่จะวิ่งใช้sqlservr.exe -m sqlservr.exe -f"sqlcmd"สิ่งนี้จะอนุญาตการเชื่อมต่อจากแอปพลิเคชันที่มีชื่อเท่านั้นดังนั้นทุกอย่างจะล้มเหลว แต่คุณสามารถเชื่อมต่อเปลี่ยนการตั้งค่าออกคำสั่ง SHUTDOWN จากภายใน SQLCMD จากนั้นนำขึ้นมาตามปกติ
จากพรอมต์คำสั่งให้เริ่ม sqlCmd โดยใช้ Didicated Administrator Connection (DAC) :
C: \> sqlcmd -S ชื่อเซิร์ฟเวอร์ -U sa -P –A
เมื่อคุณเชื่อมต่อแล้วให้ดำเนินการดังต่อไปนี้เพื่อตั้งค่าหน่วยความจำเป็น 4Gigs ควรจะเพียงพอที่จะให้คุณเชื่อมต่อใหม่โดยใช้เครื่องมือจัดการสตูดิโอ
sp_configure 'แสดงตัวเลือกขั้นสูง', 1; ไป กำหนดค่า; ไป sp_configure 'หน่วยความจำเซิร์ฟเวอร์สูงสุด', 4096; ไป กำหนดค่า; ไป
ข้อมูลเพิ่มเติมเกี่ยวกับ DAC: การเชื่อมต่อผู้ดูแลระบบโดยเฉพาะ (DAC) https://msdn.microsoft.com/en-us/library/ms189595(v=sql.105).aspx
ฉันมีปัญหาเดียวกันและไม่มีโชคในการเปิดตัว SSMS หรือ DAC ดังนั้นหวังว่าสิ่งนี้จะช่วยให้บุคคลต่อไปที่อยู่ในความหวาดกลัว
ฉันเปิดตัวตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL (ฉันกำลังเรียกใช้ SQL 2017) บนเซิร์ฟเวอร์เลือก "บริการเซิร์ฟเวอร์ SQL" ในบานหน้าต่างด้านซ้ายแล้วคลิกขวาที่ "SQL Server (MSSQLSERVER)" ในบานหน้าต่างด้านขวา และเลือก "คุณสมบัติ" ในหน้าต่างคุณสมบัติฉันไปที่แท็บ "พารามิเตอร์การเริ่มต้น" และเพิ่มพารามิเตอร์การเริ่มต้น "-f" ฉันเริ่มบริการ SQL ใหม่และเปิดตัวในโหมด " การกำหนดค่าขั้นต่ำ " ฉันสามารถเข้า SSMS และแก้ไขการตั้งค่าหน่วยความจำสูงสุดได้ จากนั้นฉันกลับไปที่แท็บ "พารามิเตอร์การเริ่มต้น" และลบพารามิเตอร์ "-f" และเริ่มบริการอีกครั้ง
ปัญหาเดียวกันหน่วยความจำถูกตั้งค่าต่ำเกินไปโดยไม่ได้ตั้งใจ ไม่สามารถเชื่อมต่อโดยใช้ DAC ได้ทำสิ่งต่อไปนี้:
net start "SQL Server (MSSQLSERVER)" /f /mสิ่งนี้สามารถทำได้โดยใช้คำสั่ง net start / stop หรือคำสั่ง sqlserver.exe ก่อนอื่นมาตรวจสอบว่ามันทำอย่างไรผ่านคำสั่ง net start / stop ไวยากรณ์สำหรับคำสั่ง net start / stop คือ NET START ชื่อบริการสามารถรับได้ดังที่แสดงด้านล่าง
--- เปิดใช้งานบริการเป็นโหมดผู้ใช้คนเดียว
C: \ Program Server \ 130 \ Tools \ Binn SQL Files \ Microsoft SQL เริ่มต้น "SQL Server (MSSQLSERVER)" / f / m เริ่มบริการ SQL Server (MSSQLSERVER) บริการ SQL Server (MSSQLSERVER) เริ่มต้นได้สำเร็จ เชื่อมต่อโดยใช้ SSMS บนเซิร์ฟเวอร์โดยตรงและสามารถเข้าถึงคุณสมบัติและตั้งค่าหน่วยความจำที่ถูกต้อง หรือเรียกใช้คำสั่งด้านล่าง: - sp_configure 'แสดงตัวเลือกขั้นสูง', 1; กำหนดค่าใหม่ GO sp_configure 'หน่วยความจำเซิร์ฟเวอร์สูงสุด', 4096; กำหนดค่าใหม่ ไป
- ออกจากโหมดผู้ใช้คนเดียวโดยหยุดบริการ
C:\Program Files\Microsoft SQL Server\130\Tools\Binn>net stop "SQL Server (MSSQL
SERVER)"
ในการเริ่มต้น SQL Instance ในโหมดผู้ใช้หลายคนให้หยุดบริการโดยใช้ net stop ดังที่แสดงด้านบนแล้วเริ่มโดยไม่ระบุพารามิเตอร์ \ m ดังที่แสดงด้านล่าง
C:\Program Files\Microsoft SQL Server\130\Tools\Binn>net start "SQL Server (MSSQLSERVER)"
The SQL Server (MSSQLSERVER) service is starting.
The SQL Server (MSSQLSERVER) service was started successfully.
สิ่งหนึ่งที่ควรทราบที่นี่คือการเริ่มต้นอินสแตนซ์ของเซิร์ฟเวอร์ SQL ไม่ได้เริ่มบริการตัวแทนของเซิร์ฟเวอร์ SQL ในการเริ่มต้น SQL Server Agent รับชื่อบริการโดยใช้วิธีการที่ใช้ร่วมกันข้างต้นและเริ่มตามที่แสดงในภาพด้านบน หรือไปที่บริการและเปิดใช้งาน