Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:Linux üzerinde SQL Server
Bu makalede, Linux'ta veya Linux kapsayıcısında çalışan SQL Server sorunlarının nasıl giderleneceği açıklanır. Linux'ta SQL Server sorunlarını giderirken desteklenen özellikleri ve bilinen sınırlamaları gözden geçirmeyi unutmayın:
- Linux üzerinde SQL Server 2022 için
Sürüm notları - Linux üzerinde SQL Server 2019 için Sürüm notları
- Linux üzerinde SQL Server 2017 için
Sürüm notları
Sıkça sorulan soruların yanıtları için Linux üzerinde SQL Server SSSbölümüne bakın.
Bağlantı hatalarını giderme
Linux SQL Server örneğine bağlanmakta güçlük çekiyorsanız denetlenecek birkaç şey vardır.
kullanarak
localhostyerel olarak bağlanamıyorsanız bunun yerine 127.0.0.1 IP adresini kullanmayı deneyin.localhostöğesinin bu adresle düzgün bir şekilde eşlenmemiş olması mümkün.Sunucu adının veya IP adresinin istemci makinenizden erişilebilir olduğunu doğrulayın.
Ubuntu makinenizin IP adresini bulmak için aşağıdaki örnekte olduğu gibi komutunu çalıştırabilirsiniz
ifconfig:sudo ifconfig eth0 | grep 'inet addr'Red Hat için komutunu aşağıdaki örnekte olduğu gibi kullanabilirsiniz
ip addr:sudo ip addr show eth0 | grep "inet"Tavsiye
Bu tekniğin bir özel durumu Azure VM'leriyle ilgilidir. Azure VM'leri için Azure portalında VM'nin genel IP'sini bulun.
Varsa, güvenlik duvarında SQL Server bağlantı noktasını (varsayılan 1433) açıp açmadığınızdan emin olun.
Azure VM'leri için, varsayılan SQL Server bağlantı noktası için bir ağ güvenlik grubu kuralına sahip olup olmadığınızı denetleyin.
Kullanıcı adının ve parolanın yazım hatası, ek boşluk veya yanlış büyük/küçük harf içermediğini doğrulayın.
Protokol ve bağlantı noktası numarasını aşağıdaki örnekte olduğu gibi sunucu adıyla açıkça ayarlamayı deneyin:
tcp:servername,1433.Ağ bağlantısı sorunları, bağlantı hatalarına ve zaman aşımlarına da neden olabilir. Bağlantı bilgilerinizi ve ağ bağlantınızı doğruladıktan sonra bağlantıyı yeniden deneyin.
SQL Server hizmetini yönetme
Aşağıdaki bölümde SQL Server Linux kapsayıcılarının yürütülmesinin nasıl yönetileceğini gösterilmektedir. Linux hizmetlerini yönetmek için bkz. Linux üzerinde SQL Server hizmetlerini başlatma, durdurma ve yeniden başlatma.
SQL Server Linux kapsayıcısının yürütülmesini yönetme
Aşağıdaki komutu çalıştırarak en son oluşturulan SQL Server Linux kapsayıcısının durumunu ve kapsayıcı kimliğini alabilirsiniz (Kimlik sütunun CONTAINER ID altındadır):
sudo docker ps -l
Aşağıdaki komutları kullanarak SQL Server hizmetini gerektiği gibi durdurabilir veya yeniden başlatabilirsiniz:
sudo docker stop <container ID>
sudo docker restart <container ID>
Tavsiye
Linux kapsayıcıları için daha fazla sorun giderme ipucu için bkz. SQL Server Docker kapsayıcıları sorunlarını giderme.
Günlük dosyalarına erişme
SQL Server Veritabanı Altyapısı, hem Linux hem de kapsayıcı yüklemelerindeki /var/opt/mssql/log/errorlog dosyasına günlük tutar. Bu dizine göz atmak için süper kullanıcı modunda olmanız gerekir.
Yükleyici burada günlüğe kaydeder: /var/opt/mssql/setup-<time stamp representing time of install>errorlog UTF-16 uyumlu herhangi bir araçla, örneğin vim veya cat ile dosyalara şöyle göz atabilirsiniz:
sudo cat errorlog
İsterseniz, aşağıdaki komutla dosyaları daha fazla veya daha az okumak için UTF-8'e dönüştürebilirsiniz:
sudo iconv -f UTF-16LE -t UTF-8 <errorlog> -o <output errorlog file>
Genişletilmiş olaylar
Genişletilmiş olaylar sql komutuyla sorgulanabilir. Daha fazla bilgi için bkz. genişletilmiş olaylar.
Çökme dökümleri
Linux'ta günlük dizininde dökümleri arayın. Linux Core dökümleri (/var/opt/mssql/log uzantı) veya SQL minidökmeler (.tar.gz2 uzantı) için .mdmp dizini altında kontrol edin.
Örneğin, çekirdek dökümlerini görüntülemek için:
sudo ls /var/opt/mssql/log | grep .tar.gz2
SQL dökümleri için şu betiği kullanın:
sudo ls /var/opt/mssql/log | grep .mdmp
SQL Server'ı en az yapılandırmada veya tek kullanıcı modunda başlatma
SQL Server'ı en az yapılandırma modunda başlatma
Yapılandırma değeri ayarı (örneğin, aşırı işleme belleği) sunucunun başlatılmasını engelliyorsa bu mod kullanışlıdır.
sudo -u mssql /opt/mssql/bin/sqlservr -f
SQL Server'ı tek kullanıcı modunda başlatma
Bazen başlangıç seçeneğini -mkullanarak sql server örneğini tek kullanıcı modunda başlatmanız gerekebilir. Daha fazla bilgi için bkz. başlangıç parametreleri. Örneğin, sunucu yapılandırma seçeneklerini değiştirmek veya bozuk master bir veritabanını veya başka bir sistem veritabanını kurtarmak isteyebilirsiniz.
Örneğin, SQL Server'ı tek kullanıcı modunda başlatmak için aşağıdaki betiği kullanın:
sudo -u mssql /opt/mssql/bin/sqlservr -m
Bu betik SQL Server'ı sqlcmd ile tek kullanıcı modunda başlatır:
sudo -u mssql /opt/mssql/bin/sqlservr -m sqlcmd
Gelecekteki başlatma sorunlarını önlemek için linux üzerinde SQL Server'ı her zaman kullanıcıyla mssql başlatmanız gerekir. Örneğin: sudo -u mssql /opt/mssql/bin/sqlservr [STARTUP OPTIONS]
SQL Server'ı yanlışlıkla başka bir kullanıcıyla başlatırsanız, SQL Server'ı mssql ile başlatmadan önce SQL Server veritabanı dosyalarının sahipliğini kullanıcıya geri değiştirmeniz gerekir. Örneğin, altındaki /var/opt/mssql tüm veritabanı dosyalarının sahipliğini kullanıcıya değiştirmek için mssql aşağıdaki komutu çalıştırın:
chown -R mssql:mssql /var/opt/mssql/
Sistem veritabanlarını yeniden oluşturma
Son çare olarak, master ve model veritabanlarını varsayılan sürümlere yeniden oluşturmayı seçebilirsiniz.
Uyarı
Bu işlem tehlikelidir, çünkü kullanıcı veritabanlarınız hakkında bilgiler de dahil yapılandırdığınız tüm SQL Server sistem verilerini silebilirsiniz (ancak kullanıcı veritabanlarının kendisi değil).
Kullanıcı veritabanlarını daha sonra örneğe eklemeniz gerekir. Ayrıca aşağıdakiler dahil olmak üzere sistem veritabanlarında depolanan diğer bilgileri de siler:
- veritabanı ana anahtarı (DMK) bilgileri
- Yüklenmiş tüm sertifikalar
masteriçinde. - hesabın
saparolası - işle ilgili bilgiler
msdbkaynağından - Veritabanı Posta bilgileri
msdb -
sp_configureSeçenekler
Sertifikalarınız ve özel anahtarlarınız da yedeklenmediği sürece saydam veri şifrelemesi (TDE) ile şifrelenmiş kullanıcı veritabanlarını yeniden ekleyemezsiniz.
Bu adımları yalnızca etkilerini anlıyorsanız kullanın.
SQL Server Veritabanı Altyapısını Durdurma
sudo systemctl stop mssql-serversqlservr'ı
force-setupparametresiyle çalıştırmasudo -u mssql /opt/mssql/bin/sqlservr --force-setupGelecekteki başlatma sorunlarını önlemek için linux üzerinde SQL Server'ı her zaman kullanıcıyla
mssqlbaşlatmanız gerekir."Kurtarma tamamlandı" iletisini gördükkten sonra Ctrl+C tuşlarına basın. Bu işlem SQL Server'ın kapatılmasını sağlar.
Parolayı
sayeniden ayarlayın.sudo /opt/mssql/bin/mssql-conf set-sa-passwordDikkat
Parolanız,SQL Server varsayılan
parola ilkesine uygun olmalıdır. Varsayılan olarak, parola en az sekiz karakter uzunluğunda olmalı ve şu dört kümeden üçünün karakterlerini içermelidir: büyük harfler, küçük harfler, 10 tabanındaki basamaklar ve simgeler. Parolalar en çok 128 karakter uzunluğunda olabilir. Mümkün olduğunca uzun ve karmaşık parolalar kullanın. SQL Server'ı başlatın ve tüm kullanıcı veritabanlarını geri yükleme veya yeniden ekleme dahil olmak üzere sunucuyu yeniden yapılandırın.
sudo systemctl start mssql-server
Performansı geliştirme
Veritabanı tasarımı, donanım ve iş yükü talepleri dahil olmak üzere performansı etkileyen birçok faktör vardır. Performansı geliştirmek istiyorsanız linux üzerinde SQL Server için performans en iyi yöntemleri ve yapılandırma yönergeleri makalesindeki en iyi yöntemleri gözden geçirerek başlayın. Ardından performans sorunlarını gidermek için kullanılabilir araçlardan bazılarını keşfedin.
- Sorgu Deposu’nu kullanarak performansı izleme
- sistem dinamik yönetim görünümleri
- SQL Server Management Studio'da Performans Panosu
Yaygın sorunlar
Uzak SQL Server örneğine bağlanamazsınız.
Linux üzerinde SQL Server'a bağlanma makalesinin sorun giderme bölümüne bakın.
Hata iletisiyle karşılaşırsınız:
ERROR: Hostname must be 15 characters or less.Bu, SQL Server paketini yüklemeye çalışan makinenin adı 15 karakterden uzun olduğunda oluşan bilinen bir sorundur. Şu anda makinenin adını değiştirmek dışında bir geçici çözüm yoktur. Hem
/etc/hostnamehem de/etc/hostsdüzenleyerek, ana bilgisayar adını değiştirerek, her dosyayı kaydederek ve bilgisayarı yeniden başlatarak bunu yapabilirsiniz.Sistem yöneticisi (
sa) parolası sıfırlanmalıdır ve bu da SQL Server hizmetini geçici olarak durdurur.Parolayı
saunutursanız veya başka bir nedenle sıfırlamanız gerekirse aşağıdaki adımları izleyin.Konak terminalinde oturum açın, aşağıdaki komutları çalıştırın ve parolayı sıfırlamak
saiçin istemleri izleyin:sudo systemctl stop mssql-server sudo /opt/mssql/bin/mssql-conf setupDikkat
Parolanız,SQL Server varsayılan
parola ilkesine uygun olmalıdır. Varsayılan olarak, parola en az sekiz karakter uzunluğunda olmalı ve şu dört kümeden üçünün karakterlerini içermelidir: büyük harfler, küçük harfler, 10 tabanındaki basamaklar ve simgeler. Parolalar en çok 128 karakter uzunluğunda olabilir. Mümkün olduğunca uzun ve karmaşık parolalar kullanın. Parolalardaki özel karakterler hatalara veya oturum açma hatalarına neden olabilir.
SQL Server parolasında bazı karakterler kullanıyorsanız, Bunları Linux komut satırında kullanırken ters eğik çizgiyle kaçış yapmanız gerekebilir. Örneğin, bir terminal komutu/kabuk betiğinde kullandığınızda dolar işaretinden (
$) kaçmalısınız:Çalışmaz:
sudo sqlcmd -S myserver -U sa -P Test$$Çalışır mı:
sqlcmd -S myserver -U sa -P Test\$\$
İlgili içerik
Yardım alın
- SQL için Fikirler: SQL Server'ın geliştirilmesine yönelik önerileriniz mi var?
- Microsoft Soru-Cevap (SQL Server)
- DBA Stack Exchange (etiket sql-server): SQL Server soruları sorun
- Stack Overflow (etiket sql-server): SQL geliştirme sorularının yanıtları
- Microsoft SQL Server Lisans Koşulları ve Bilgileri
- İş kullanıcıları için destek seçenekleri
- Ek SQL Server Yardım ve Geri Bildirim
SQL belgelerine katkıda bulunma
SQL içeriğini kendiniz düzenleyebildiğinizi biliyor muydunuz? Bunu yaparsanız, belgelerimizin geliştirilmesine yardımcı olmakla kalmaz, aynı zamanda sayfaya katkıda bulunan olarak da kabul edilirsiniz.
Daha fazla bilgi için Bkz. Microsoft Learn belgelerini düzenleme.