Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server – Linux
Tento článek popisuje, jak řešit potíže s SQL Serverem běžícím v Linuxu nebo v kontejneru Linuxu. Při řešení potíží s SQL Serverem v Linuxu nezapomeňte zkontrolovat podporované funkce a známá omezení:
- Poznámky k vydání pro SQL Server 2022 na Linuxu
- Poznámky k vydání pro SQL Server 2019 na Linuxu
- poznámky k verzi pro SQL Server 2017 pro Linux
Odpovědi na nejčastější dotazy najdete v Nejčastější dotazy k SQL Serveru na Linuxu.
Řešení potíží se selháními připojení
Pokud máte potíže s připojením k instanci SQL Serveru s Linuxem, můžete zkontrolovat několik věcí.
Pokud se nemůžete připojit místně pomocí
localhost, zkuste místo toho použít IP adresu 127.0.0.1. Je možné, želocalhostnení správně přiřazeno k této adrese.Ověřte, že je název serveru nebo IP adresa dostupné z klientského počítače.
Pokud chcete najít IP adresu počítače s Ubuntu, můžete příkaz spustit
ifconfigjako v následujícím příkladu:sudo ifconfig eth0 | grep 'inet addr'Pro Red Hat můžete použít
ip addrpříkaz jako v následujícím příkladu:sudo ip addr show eth0 | grep "inet"Návod
Jedna výjimka z této techniky souvisí s virtuálními počítači Azure. Pro virtuální počítače Azure vyhledejte veřejnou IP adresu virtuálního počítače na webu Azure Portal.
Pokud je to možné, zkontrolujte, že jste v bráně firewall otevřeli port SQL Serveru (výchozí 1433).
U virtuálních počítačů Azure zkontrolujte, jestli máte pravidlo skupiny zabezpečení sítě pro výchozí port SQL Serveru.
Ověřte, že uživatelské jméno a heslo neobsahují překlepy, nadbytečné mezery nebo nesprávné použití velkých/malých písmen.
Zkuste explicitně nastavit protokol a číslo portu s názvem serveru jako v následujícím příkladu:
tcp:servername,1433.Problémy s připojením k síti můžou také způsobit chyby připojení a vypršení časových limitů. Po ověření informací o připojení a připojení k síti zkuste připojení zopakovat.
Správa služby SQL Serveru
Následující část ukazuje, jak spravovat spouštění kontejnerů SQL Serveru Linux. Informace o správě služeb pro Linux najdete v tématu Spuštění, zastavení a restartování služeb SQL Serveru v Linuxu.
Správa spouštění kontejneru SQL Serveru s Linuxem
Stav a ID kontejneru nejnovějšího vytvořeného kontejneru SQL Serveru s Linuxem můžete získat spuštěním následujícího příkazu (ID je pod sloupcem CONTAINER ID ):
sudo docker ps -l
Službu SQL Serveru můžete podle potřeby zastavit nebo restartovat pomocí následujících příkazů:
sudo docker stop <container ID>
sudo docker restart <container ID>
Návod
Další tipy pro řešení potíží pro kontejnery Linuxu najdete v tématu Řešení potíží s kontejnery Dockeru SQL Serveru.
Přístup k souborům protokolu
Databázový engine SQL Serveru protokoluje do souboru /var/opt/mssql/log/errorlog v instalacích na Linuxu a v kontejnerech. Abyste mohli tento adresář procházet, musíte být v režimu superuživatele .
Instalační program zapisuje logy sem: /var/opt/mssql/setup-<time stamp representing time of install> Soubory můžete procházet pomocí libovolného nástroje kompatibilního s UTF-16, jako je errorlog nebo cat, například takto:
sudo cat errorlog
Pokud chcete, můžete také převést soubory na UTF-8 a přečíst je více nebo méně pomocí následujícího příkazu:
sudo iconv -f UTF-16LE -t UTF-8 <errorlog> -o <output errorlog file>
Rozšířené události
Rozšířené události je možné dotazovat pomocí příkazu SQL. Další informace najdete v rozšířených událostech.
Soubory se záznamem o selhání
Vyhledejte výpisy v adresáři logů v Linuxu. Zkontrolujte v adresáři /var/opt/mssql/log výpisy jádra Linuxu (.tar.gz2 přípona) nebo minivýpisy SQL (.mdmp přípona).
Pokud například chcete zobrazit základní výpisy paměti:
sudo ls /var/opt/mssql/log | grep .tar.gz2
Pro výpisy paměti SQL použijte tento skript:
sudo ls /var/opt/mssql/log | grep .mdmp
Spuštění SQL Serveru v minimální konfiguraci nebo v režimu jednoho uživatele
Spuštění SQL Serveru v minimálním režimu konfigurace
Tento režim je užitečný, pokud nastavení konfigurační hodnoty (například přetěžování paměti) zabrání spuštění serveru.
sudo -u mssql /opt/mssql/bin/sqlservr -f
Spuštění SQL Serveru v režimu jednoho uživatele
Někdy může být nutné spustit instanci SQL Serveru v režimu jednoho uživatele pomocí možnosti spuštění -m. Další informace najdete v tématu spouštěcí parametry. Můžete například chtít změnit možnosti konfigurace serveru nebo obnovit poškozenou databázi master nebo jinou systémovou databázi.
Například pomocí následujícího skriptu spusťte SQL Server v režimu jednoho uživatele:
sudo -u mssql /opt/mssql/bin/sqlservr -m
Tento skript spustí SQL Server v režimu jednoho uživatele pomocí sqlcmd:
sudo -u mssql /opt/mssql/bin/sqlservr -m sqlcmd
Sql Server byste měli vždy spustit v Linuxu mssql s uživatelem, abyste zabránili budoucím problémům se spuštěním. Příklad: sudo -u mssql /opt/mssql/bin/sqlservr [STARTUP OPTIONS]
Pokud omylem spustíte SQL Server s jiným uživatelem, musíte předtím, než SQL Server spustíte pomocí mssql, změnit vlastnictví databázových souborů SQL Serveru zpět na uživatele . Pokud například chcete změnit vlastnictví všech databázových souborů pod /var/opt/mssql uživatelem mssql , spusťte následující příkaz:
chown -R mssql:mssql /var/opt/mssql/
Opětovné sestavení systémových databází
Jako poslední možnost se můžete rozhodnout znovu sestavit databáze master a model na výchozí verze.
Výstraha
Tento proces je nebezpečný, protože můžete odstranit všechna systémová data SYSTÉMU SQL Server , která jste nakonfigurovali, včetně informací o uživatelských databázích (ale ne samotných uživatelských databází).
Potom je potřeba připojit uživatelské databáze k instanci. Odstraní také další informace uložené v systémových databázích, včetně:
- Informace o hlavním klíči databáze (DMK)
- všechny certifikáty načtené do
master - heslo pro
saúčet - informace o zaměstnání z
msdb - Informace o databázové poště z
msdb -
sp_configuremožnosti
Nemůžete znovu připojit žádné uživatelské databáze zašifrované transparentním šifrováním dat (TDE), pokud nejsou zálohovány také vaše certifikáty a privátní klíče.
Tyto kroky použijte pouze v případě, že pochopíte důsledky.
Zastavení databázového stroje SQL Serveru
sudo systemctl stop mssql-serverSpuštění sqlservru s parametrem
force-setupsudo -u mssql /opt/mssql/bin/sqlservr --force-setupSql Server byste měli vždy spustit v Linuxu
mssqls uživatelem, abyste zabránili budoucím problémům se spuštěním.Jakmile se zobrazí zpráva "Obnovení je dokončeno", stiskněte Ctrl+C. Tím se vypne SQL Server.
Překonfigurujte
saheslo.sudo /opt/mssql/bin/mssql-conf set-sa-passwordUpozornění
Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá.
Spusťte SQL Server a znovu nakonfigurujte server, včetně obnovení nebo opětovného připojení všech uživatelských databází.
sudo systemctl start mssql-server
Zvýšení výkonu
Mnoho faktorů ovlivňuje výkon, včetně návrhu databáze, hardwaru a požadavků na úlohy. Pokud chcete zlepšit výkon, začněte tím, že si projděte osvědčené postupy v článku, osvědčené postupy výkonu a pokyny pro konfiguraci SQL Serveru v Linuxu. Pak prozkoumejte některé z dostupných nástrojů pro řešení potíží s výkonem.
- Monitorování výkonu s využitím úložiště dotazů
- zobrazení dynamické správy systému
- Řídicí panel výkonu v aplikaci SQL Server Management Studio
Běžné problémy
Ke vzdálené instanci SQL Serveru se nemůžete připojit.
Projděte si část věnovanou řešení potíží v článku Připojení k SQL Serveru v Linuxu.
Zobrazí se chybová zpráva:
ERROR: Hostname must be 15 characters or less.Jedná se o známý problém, ke kterému dochází vždy, když název počítače, který se pokouší nainstalovat balíček SQL Serveru, je delší než 15 znaků. V současné době neexistují žádná alternativní řešení než změna názvu počítače. Můžete to provést úpravou
/etc/hostnamei/etc/hosts, změnou názvu hostitele, uložením každého souboru a restartováním počítače.Heslo správce
sasystému () musí být resetovat, což dočasně zastaví službu SQL Serveru.Pokud heslo zapomenete
sanebo ho potřebujete resetovat z nějakého jiného důvodu, postupujte takto.Přihlaste se k hostitelskému terminálu, spusťte následující příkazy a podle pokynů resetujte
saheslo:sudo systemctl stop mssql-server sudo /opt/mssql/bin/mssql-conf setupUpozornění
Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá.
Speciální znaky v heslech můžou způsobit chyby nebo selhání přihlášení.
Pokud v hesle SQL Serveru použijete nějaké znaky, budete je muset při použití na příkazovém řádku Linuxu utéct zpětným lomítkem. Například musíte escapeovat znak dolaru (
$), kdykoli ho použijete v příkazu terminálu nebo skriptu.Nefunguje:
sudo sqlcmd -S myserver -U sa -P Test$$Funguje to.
sqlcmd -S myserver -U sa -P Test\$\$
Související obsah
Získejte pomoc 
- Návrhy pro SQL: Máte návrhy na vylepšení SQL Serveru?
- Microsoft Q &A (SQL Server)
- DBA Stack Exchange (značka sql-server): Položte dotazy k SQL Serveru
- Stack Overflow (značka sql-server): Odpovědi na otázky týkající se vývoje SQL
- licenčních podmínek a informací pro Microsoft SQL Server
- Možnosti podpory pro firemní uživatele
- další nápověda a zpětná vazba k SQL Serveru
Přispějte k dokumentaci SQL
Věděli jste, že obsah SQL můžete upravovat sami? Pokud to uděláte, nejen že vám pomůžete vylepšit naši dokumentaci, ale také jste získali kredit jako přispěvatel na stránku.
Další informace naleznete v Upravit dokumentaci Microsoft Learn.