SQL Server hibaelhárítása Linux rendszeren

A következőkre vonatkozik:SQL Server Linux rendszeren

Ez a cikk a Linux rendszeren vagy Linux-tárolóban futó SQL Server hibaelhárítását ismerteti.

Az SQL Server on Linux hibaelhárításakor lásd:

Csatlakozási hibák elhárítása

Ha nehézségei vannak a Linux SQL Server-példányhoz való csatlakozással, néhány dolgot ellenőriznie kell.

  • Ha nem tud helyileg localhostcsatlakozni a használatával , próbálja meg inkább a 127.0.0.1 IP-címet használni. Lehetséges, hogy a(z) localhost nincs megfelelően leképezve erre a címre.

  • Ellenőrizze, hogy a kiszolgáló neve vagy IP-címe elérhető-e az ügyfélgépről.

    Az Ubuntu gép IP-címének megkereséséhez futtassa a ifconfig parancsot az alábbi példában látható módon:

    sudo ifconfig eth0 | grep 'inet addr'
    

    A Red Hat esetében az ip addr alábbi példában látható parancsot használhatja:

    sudo ip addr show eth0 | grep "inet"
    

    Jótanács

    A technika alól az egyik kivétel az Azure-beli virtuális gépekre vonatkozik. Azure-beli virtuális gépek esetén keresse meg a virtuális gép nyilvános IP-címét a Azure Portal.

  • Ha van, ellenőrizze, hogy megnyitotta-e az SQL Server portot (alapértelmezés szerint 1433) a tűzfalon.

  • Azure-beli virtuális gépek esetén ellenőrizze, hogy rendelkezik-e hálózati biztonsági csoportra vonatkozó szabállyal az alapértelmezett SQL Server porthoz.

  • Ellenőrizze, hogy a felhasználónév és a jelszó nem tartalmaz-e elírásokat, szóközöket vagy helytelen kis- és nagybetűket.

  • Próbálja meg explicit módon beállítani a protokollt és a portszámot a kiszolgáló nevével, az alábbi példához hasonlóan: tcp:servername,1433.

  • A hálózati kapcsolati problémák csatlakozási hibákat és időtúllépéseket is okozhatnak. A kapcsolati adatok és a hálózati kapcsolat ellenőrzése után próbálja meg újra a kapcsolatot.

Az SQL Server szolgáltatás kezelése

A következő szakasz bemutatja, hogyan kezelheti a SQL Server Linux-tárolók végrehajtását. A Linux-szolgáltatások kezeléséhez lásd: SQL Server szolgáltatások indítása, leállítása és újraindítása Linux rendszeren.

A SQL Server Linux-tároló végrehajtásának kezelése

A legutóbb létrehozott SQL Server Linux konténer státuszát és azonosítóját a következő parancs futtatásával kaphatod meg. Az azonosító az oszlop CONTAINER ID alatt van.

sudo docker ps -l

Szükség szerint leállíthatja vagy újraindíthatja az SQL Server szolgáltatást a következő parancsokkal:

sudo docker stop <container_id>
sudo docker restart <container_id>

Jótanács

A Linux-tárolókra vonatkozó további hibaelhárítási tippekért lásd: SQL Server Docker-tárolók hibaelhárítása.

Hozzáférés a naplófájlokhoz

A SQL Server adatbázismotor a Linux- és a tárolótelepítésekben is naplózik a /var/opt/mssql/log/errorlog fájlba. A könyvtár böngészéséhez szuperfelhasználói módban kell lennie.

A telepítő a naplófájlokat a(z) /var/opt/mssql/setup-<installation_timestamp> helyre írja.

A fájlokat bármilyen UTF-16-kompatibilis eszközzel, például a vim-mel vagy a cat-tel böngészheted errorlog az alábbiakban:

sudo cat errorlog

Ha szeretné, a fájlokat UTF-8 formátumba is konvertálhatja, hogy többé-kevésbé olvashassa őket a következő paranccsal:

sudo iconv -f UTF-16LE -t UTF-8 <errorlog> -o <output errorlog file>

Bővített események

Kiterjesztett eseményeket SQL parancs segítségével lehet lekérdezni. További információért lásd: Kiterjesztett események áttekintése.

Összeomlási memória-dumpok

Keressen dömpöket a naplókönyvtárban Linux alatt. Nézd meg a /var/opt/mssql/log könyvtár alatt Linux core dumpokat (.tar.gz2 kiterjesztést) vagy SQL minidumpokat (.mdmp extension).

Például, a magfájlok megtekintéséhez:

sudo ls /var/opt/mssql/log | grep '\.tar\.gz2$'

SQL minidumpokhoz használd ezt a szkriptet:

sudo ls /var/opt/mssql/log | grep '\.mdmp$'

Az SQL Server indítása minimális konfigurációban vagy egyfelhasználós módban

Az SQL Server indítása minimális konfigurációs módban

Ez a mód akkor hasznos, ha egy konfigurációs érték beállítása (például a memória túlterhelése) megakadályozza a kiszolgáló indítását.

sudo -u mssql /opt/mssql/bin/sqlservr -f

Sql Server indítása egyfelhasználós módban

Előfordulhat, hogy az SQL Server egy példányát egyfelhasználós módban kell elindítania az indítási beállítással -m. További információ: Indítási paraméterek. Előfordulhat például, hogy módosítani szeretné a kiszolgáló konfigurációs beállításait, vagy helyreállítani egy sérült master adatbázist vagy más rendszeradatbázist.

Például az alábbi szkripttel indítsd el az SQL Server-t egyfelhasználós módban:

sudo -u mssql /opt/mssql/bin/sqlservr -m

Ez a szkript SQL Server indul el egyfelhasználós módban, korlátozva az sqlcmd ügyfél kapcsolatait (az alkalmazás nevét SQLCMD nagybetűvel kell megadni):

sudo -u mssql /opt/mssql/bin/sqlservr -m"SQLCMD"

A jövőbeni indítási problémák elkerülése érdekében mindig indítsa el SQL Server Linuxon mssql a felhasználóval. Például: sudo -u mssql /opt/mssql/bin/sqlservr [STARTUP OPTIONS]

Ha véletlenül elindítja az SQL Server szolgáltatást egy másik felhasználóval, vissza kell változtatnia az SQL Server adatbázisfájlok tulajdonjogát a mssql felhasználóra, mielőtt elindítaná az SQL Servert a systemd rendszerrel. Például, ha az összes /var/opt/mssql alatt található adatbázisfájl tulajdonjogát a mssql felhasználóra szeretné átruházni, futtassa a következő parancsot:

chown -R mssql:mssql /var/opt/mssql/

Rendszeradatbázisok újraépítése

Végső megoldásként dönthet úgy, hogy az master és model adatbázisokat visszaállítja az alapértelmezett verziókra.

Figyelmeztetés

Ez a folyamat veszélyes, mert törölheti az összes konfigurált SQL Server rendszeradatot , beleértve a felhasználói adatbázisokkal kapcsolatos információkat is (de magukat a felhasználói adatbázisokat nem).

Ezt követően csatolnia kell a felhasználói adatbázisokat a példányhoz. Törli a rendszeradatbázisokban tárolt egyéb információkat is, többek között:

  • adatbázis-főkulcs (DMK) adatai
  • minden betöltött tanúsítvány master
  • a fiók jelszava sa
  • Munkával kapcsolatos információk msdb
  • Adatbázis Levelezési információk innen: msdb
  • sp_configure beállítások

A transzparens adattitkosítással (TDE) titkosított felhasználói adatbázisokat csak akkor csatolhatja újra, ha a tanúsítványokról és a titkos kulcsokról is biztonsági másolatot készítenek.

Csak akkor használja ezeket a lépéseket, ha tisztában van a következményekkel.

  1. SQL Server adatbázismotor leállítása

    sudo systemctl stop mssql-server
    
  2. Futtassa sqlservr a következő paraméterrel force-setup :

    sudo -u mssql /opt/mssql/bin/sqlservr --force-setup
    

    A jövőbeni indítási problémák elkerülése érdekében mindig indítsa el SQL Server Linuxon mssql a felhasználóval.

  3. A "Helyreállítás befejeződött" üzenet megjelenése után nyomja le a Ctrl+C billentyűkombinációt. Ez leállítja a SQL Server.

  4. Konfigurálja újra a jelszót sa .

    sudo /opt/mssql/bin/mssql-conf set-sa-password
    

    Figyelmeztetés

    A jelszónak az SQL Server alapértelmezett jelszóházirendetkell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.

  5. Indítsa el az SQL Servert, és konfigurálja újra a kiszolgálót, beleértve a felhasználói adatbázisok visszaállítását vagy újbóli csatolását.

    sudo systemctl start mssql-server
    

A teljesítmény javítása

Számos tényező befolyásolja a teljesítményt, beleértve az adatbázis kialakítását, a hardvert és a számítási feladatokat. Ha javítani szeretne a teljesítményen, először tekintse át az ajánlott eljárásokat ismertető cikkeket:

Ezután ismerkedjen meg a teljesítményproblémák elhárításához elérhető eszközök némelyikével.

Gyakori problémák

  1. Nem tud csatlakozni a távoli SQL Server példányhoz.

    Lásd : Kapcsolati hibák elhárítása.

  2. A következő hibaüzenet jelenik meg: ERROR: Hostname must be 15 characters or less.

    Ez egy ismert probléma, amely akkor fordul elő, ha a SQL Server csomagot telepíteni próbáló gép neve 15 karakternél hosszabb. Jelenleg nincs más megoldás, mint a gép nevének megváltoztatása. Ezt úgy teheti meg, hogy szerkeszti mind a /etc/hostname, mind a /etc/hosts, módosítja a gazdagépnevet, menti az egyes fájlokat, és újraindítja a számítógépet.

  3. A rendszergazdai (sa) jelszót alaphelyzetbe kell állítani, ami ideiglenesen leállítja az SQL Server szolgáltatást.

    Ha elfelejti a jelszót sa , vagy más okból vissza kell állítania, kövesse az alábbi lépéseket.

    Jelentkezzen be a gazdagép-terminálra, futtassa a következő parancsokat, és a jelszó visszaállításához kövesse az utasításokat: sa.

    sudo systemctl stop mssql-server
    sudo /opt/mssql/bin/mssql-conf setup
    

    Figyelmeztetés

    A jelszónak az SQL Server alapértelmezett jelszóházirendetkell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.

  4. A jelszavak speciális karakterei hibákat vagy bejelentkezési hibákat okozhatnak.

    Ha bizonyos karaktereket használ a SQL Server jelszóban, előfordulhat, hogy fordított perjellel kell feloldania őket, amikor a Linux parancssorban használja őket. Például a dollárjelet ($) kell feloldania, amikor terminálparancsban/parancsértelmezőben használja:

    • Nem működik:

      sudo sqlcmd -S myserver -U sa -P Test$$
      
    • Működik:

      sudo sqlcmd -S myserver -U sa -P Test\$\$
      

Segítség kérése

Közreműködés az SQL dokumentációjában

Tudta, hogy saját maga szerkesztheti az SQL-tartalmakat? Ha így tesz, nem csak a dokumentáció fejlesztésében segít, hanem az oldal közreműködőjeként is jóváírást kap.

További információ: Microsoft Learn-dokumentáció szerkesztése.