ปิดการใช้งานหน่วยความจำ SQL โดยบังเอิญต่ำเกินไปที่จะเข้าสู่ระบบฉันจะแก้ไขได้อย่างไร


14

ฉันปิดหน่วยความจำสูงสุดของอินสแตนซ์ SQL Server ของฉันเป็น 15 MB ... ตอนนี้ฉันไม่สามารถเข้าสู่ระบบเพื่อเพิ่มมันได้ ฉันจะเพิ่มหน่วยความจำสูงสุดโดยไม่ต้องเข้าสู่ระบบได้อย่างไร

เวอร์ชันคือ SQL 2008 R2

คำตอบ:


18

เชื่อมต่อโดยใช้การเชื่อมต่อผู้ดูแลระบบโดยเฉพาะ (DAC)ซึ่งรับประกันทรัพยากรจำนวนน้อยที่สุดเพื่อแก้ไขปัญหาเช่นนี้ ตัวอย่างเช่นหากคุณกำลังเชื่อมต่อผ่าน Management Studio ให้เปิดหน้าต่าง New Query และเพียงพิมพ์ADMIN:servernameแทนservernameเมื่อมันพร้อมท์ให้คุณเชื่อมต่อ เพิกเฉยข้อผิดพลาดใด ๆ ที่คุณได้รับซึ่งมักจะไม่เป็นพิษเป็นภัยเพราะเกี่ยวข้องกับ Object Explorer, รายการดร็อปดาวน์ฐานข้อมูล, IntelliSense ฯลฯ และพยายามเชื่อมต่อในนามของคุณ (อนุญาตการเชื่อมต่อ DAC เพียงครั้งเดียว)

ข้อมูลเพิ่มเติมที่นี่ , ที่นี่และการแก้ไขปัญหาบางอย่างที่นี่


7

อีกวิธีหนึ่ง (เนื่องจากเกิดขึ้นสองครั้งก่อนหน้านี้และ DAC หลอกลวงไม่ทำงานสำหรับฉัน) ปิดบริการ SQL Server ลงจากนั้นนำกลับมาในโหมด "การกำหนดค่าขั้นต่ำ" ซึ่งเป็นโหมดผู้ใช้เดี่ยวที่ได้รับการแก้ไข

ผ่านบรรทัดรับคำสั่งไปที่พา ธ สำหรับปฏิบัติการ sqlservr.exe ตามที่ระบุไว้ในบริการ แต่แทนที่จะวิ่งใช้sqlservr.exe -m sqlservr.exe -f"sqlcmd"สิ่งนี้จะอนุญาตการเชื่อมต่อจากแอปพลิเคชันที่มีชื่อเท่านั้นดังนั้นทุกอย่างจะล้มเหลว แต่คุณสามารถเชื่อมต่อเปลี่ยนการตั้งค่าออกคำสั่ง SHUTDOWN จากภายใน SQLCMD จากนั้นนำขึ้นมาตามปกติ


5

จากพรอมต์คำสั่งให้เริ่ม 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


3

ฉันมีปัญหาเดียวกันและไม่มีโชคในการเปิดตัว SSMS หรือ DAC ดังนั้นหวังว่าสิ่งนี้จะช่วยให้บุคคลต่อไปที่อยู่ในความหวาดกลัว

ฉันเปิดตัวตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL (ฉันกำลังเรียกใช้ SQL 2017) บนเซิร์ฟเวอร์เลือก "บริการเซิร์ฟเวอร์ SQL" ในบานหน้าต่างด้านซ้ายแล้วคลิกขวาที่ "SQL Server (MSSQLSERVER)" ในบานหน้าต่างด้านขวา และเลือก "คุณสมบัติ" ในหน้าต่างคุณสมบัติฉันไปที่แท็บ "พารามิเตอร์การเริ่มต้น" และเพิ่มพารามิเตอร์การเริ่มต้น "-f" ฉันเริ่มบริการ SQL ใหม่และเปิดตัวในโหมด " การกำหนดค่าขั้นต่ำ " ฉันสามารถเข้า SSMS และแก้ไขการตั้งค่าหน่วยความจำสูงสุดได้ จากนั้นฉันกลับไปที่แท็บ "พารามิเตอร์การเริ่มต้น" และลบพารามิเตอร์ "-f" และเริ่มบริการอีกครั้ง


1

ปัญหาเดียวกันหน่วยความจำถูกตั้งค่าต่ำเกินไปโดยไม่ได้ตั้งใจ ไม่สามารถเชื่อมต่อโดยใช้ DAC ได้ทำสิ่งต่อไปนี้:

  1. net start "SQL Server (MSSQLSERVER)" /f /m
  2. เชื่อมต่อโดยใช้ SSMS บนเซิร์ฟเวอร์โดยตรงและสามารถเข้าถึงคุณสมบัติและตั้งค่าหน่วยความจำที่ถูกต้อง

1

สิ่งนี้สามารถทำได้โดยใช้คำสั่ง net start / stop หรือคำสั่ง sqlserver.exe ก่อนอื่นมาตรวจสอบว่ามันทำอย่างไรผ่านคำสั่ง net start / stop ไวยากรณ์สำหรับคำสั่ง net start / stop คือ NET START ชื่อบริการสามารถรับได้ดังที่แสดงด้านล่าง

  1. พิมพ์ services.msc ในหน้าต่าง“ RUN” และคลิกตกลง จะเป็นการเปิดกล่องโต้ตอบบริการ
  2. นำทางไปยังอินสแตนซ์ของ SQL Server ที่คุณต้องการรับชื่อบริการและคลิกสองครั้ง สิ่งนี้จะเปิดกล่องโต้ตอบคุณสมบัติสำหรับอินสแตนซ์นั้น คัดลอกชื่อบริการที่ระบุไว้ที่นั่น
  3. --- เปิดใช้งานบริการเป็นโหมดผู้ใช้คนเดียว

    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 รับชื่อบริการโดยใช้วิธีการที่ใช้ร่วมกันข้างต้นและเริ่มตามที่แสดงในภาพด้านบน หรือไปที่บริการและเปิดใช้งาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.