Tanpa sengaja menolak memori SQL terlalu rendah untuk masuk, bagaimana cara memperbaikinya?

14

Saya menolak Memori Maksimum dari contoh SQL Server saya menjadi 15 MB ... Sekarang saya tidak bisa masuk untuk meningkatkannya. Bagaimana saya bisa menambah memori maksimum tanpa masuk?

Versi adalah SQL 2008 R2

CamronBute
sumber

Jawaban:

18

Sambungkan menggunakan Dedicated Administrator Connection (DAC) , yang dijamin sumber daya dalam jumlah minimal untuk menyelesaikan masalah persis seperti ini. Misalnya, jika Anda terhubung melalui Management Studio, luncurkan jendela Pertanyaan Baru dan ketikkan ADMIN:servernamealih-alih servernameketika diminta untuk terhubung. Abaikan setiap kesalahan yang Anda dapatkan yang biasanya tidak berbahaya karena terkait dengan Object Explorer, daftar dropdown database, IntelliSense, dll. Juga mencoba untuk terhubung atas nama Anda (hanya satu koneksi DAC yang diizinkan).

Info lebih lanjut di sini , di sini , dan beberapa pemecahan masalah di sini .

Aaron Bertrand
sumber
7

Atau (karena sudah terjadi dua kali sebelumnya dan trik DAC tidak bekerja untuk saya), matikan layanan SQL Server, lalu bawa kembali dalam mode "konfigurasi minimal", yang merupakan versi modifikasi dari mode single-user.

Melalui baris perintah, buka jalur untuk dieksekusi sqlservr.exe, seperti yang tercantum dalam layanan. Tapi alih-alih berjalan sqlservr.exe -m, gunakan sqlservr.exe -f"sqlcmd". Ini HANYA akan memungkinkan koneksi dari aplikasi yang dinamai, jadi semuanya akan gagal, tetapi Anda akan dapat terhubung, mengubah pengaturan, mengeluarkan perintah SHUTDOWN dari dalam SQLCMD, kemudian membawanya secara normal.

mbourgon
sumber
5

Dari command prompt, mulailah sqlCmd menggunakan Didicated Administrator Connection (DAC). :

    C: \> sqlcmd -S ServerName -U sa -P –A

Setelah Anda terhubung jalankan yang berikut untuk mengatur memori ke 4Gigs. seharusnya cukup untuk memungkinkan Anda terhubung kembali menggunakan alat studio Manajemen.

sp_configure 'tampilkan opsi lanjutan', 1;  
PERGILAH  
RECONFIGURE;  
PERGILAH  
sp_configure 'max server memory', 4096;  
PERGILAH  
RECONFIGURE;  
PERGILAH  

Lebih lanjut tentang DAC lihat: Dedicated Administrator Connection (DAC) https://msdn.microsoft.com/en-us/library/ms189595(v=sql.105).aspx

Bruno M.
sumber
3

Saya hanya memiliki masalah yang sama dan tidak beruntung meluncurkan SSMS atau DAC, jadi semoga ini akan membantu orang berikutnya yang panik.

Saya meluncurkan Manajer Konfigurasi SQL Server (saya menjalankan SQL 2017) di server, memilih "SQL Server Services" di panel sebelah kiri dan kemudian mengklik kanan pada "SQL Server (MSSQLSERVER)" di panel sebelah kanan dan pilih "properti". Di jendela Properties, saya pergi ke tab "Parameter Startup" dan menambahkan parameter startup "-f". Saya memulai kembali Layanan SQL dan diluncurkan dalam mode " konfigurasi minimal ". Saya kemudian bisa masuk ke SSMS dan memperbaiki pengaturan Max Memory. Saya kemudian kembali ke tab "Parameter Startup" dan menghapus parameter "-f" dan memulai kembali layanan sekali lagi.

BD.
sumber
1

Masalah yang sama, memori diatur terlalu rendah karena kesalahan. Tidak dapat terhubung menggunakan DAC, lakukan hal berikut:

  1. net start "SQL Server (MSSQLSERVER)" /f /m
  2. Terhubung menggunakan SSMS di server secara langsung dan dapat mencapai properti dan mengatur pengaturan memori yang benar.
Vad
sumber
1

Ini bisa dilakukan dengan menggunakan perintah net start / stop atau dengan perintah sqlserver.exe. Pertama-tama mari kita periksa bagaimana hal itu dilakukan melalui perintah start / stop net Sintaks untuk perintah start / stop net adalah NET START Nama layanan dapat diperoleh seperti yang ditunjukkan di bawah ini.

  1. Ketik services.msc di jendela "RUN" dan klik OK. Ini akan membuka kotak dialog layanan.
  2. Buka contoh SQL Server yang Anda inginkan untuk mendapatkan nama layanan dan klik dua kali. Ini akan membuka kotak dialog properti untuk contoh itu. Salin nama layanan yang tercantum di sana.
  3. --- mengaktifkan layanan adalah mode satu pengguna

    C: \ Program Files \ Microsoft SQL Server \ 130 \ Tools \ Binn> mulai bersih "SQL Server (MSSQLSERVER)" / f / m Layanan SQL Server (MSSQLSERVER) mulai. Layanan SQL Server (MSSQLSERVER) dimulai dengan sukses. Terhubung menggunakan SSMS di server secara langsung dan dapat mencapai properti dan mengatur pengaturan memori yang benar. Atau jalankan perintah di bawah ini: - sp_configure 'show options advanced', 1; GO RECONFIGURE; GO sp_configure 'max server memory', 4096; GO RECONFIGURE; PERGILAH

--menghapus dari mode pengguna tunggal dengan menghentikan layanan

C:\Program Files\Microsoft SQL Server\130\Tools\Binn>net stop "SQL Server (MSSQL
SERVER)"

Untuk memulai SQL Instance dalam mode multi-pengguna, hentikan layanan menggunakan net stop seperti yang ditunjukkan di atas dan kemudian mulai tanpa menentukan parameter \ m seperti yang ditunjukkan di bawah ini.

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.

Satu hal yang perlu diperhatikan di sini adalah memulai SQL Server Instance tidak memulai layanan SQL Server Agent. Untuk memulai Agen SQL Server, dapatkan nama layanan menggunakan metode yang dibagikan di atas dan mulai seperti yang ditunjukkan pada gambar di atas. Atau Buka layanan dan aktifkan.

Poonam bhatia
sumber