Megosztás:


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. A Linux rendszeren futó SQL Server hibaelhárítása során ne felejtse el áttekinteni a támogatott funkciókat és az ismert korlátozásokat:

A gyakori kérdésekre adott válaszokért tekintse meg a linuxos SQL Server gyakori kérdéseket.

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 nincs localhost 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-tároló állapotát és tárolóazonosítóját a következő parancs futtatásával kaphatja meg (az azonosító az CONTAINER ID oszlop alatt található):

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ő naplót készít ide: /var/opt/mssql/setup-<time stamp representing time of install> Az errorlog fájlokat az alábbi módon nézheti meg bármilyen UTF-16 kompatibilis eszközzel, mint például a vim vagy a cat használatával:

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

A kiterjesztett események egy SQL-paranccsal kérdezhetők le. További információ: Kiterjesztett események.

Összeomlási memória-dumpok

Keressen memóriaképeket a naplókönyvtárban Linux rendszeren. Ellenőrizze a könyvtárban a /var/opt/mssql/log Linux Core-memóriaképeket (.tar.gz2 extension) vagy az SQL minidumpokat (.mdmp extension).

Például az alapvető memóriaképek megtekintéséhez:

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

SQL-memóriaképek esetén használja 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.

A következő szkripttel például elindíthatja SQL Server egyfelhasználós módban:

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

Ez a szkript egyfelhasználós módban indítja el SQL Server a következővel:

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. Ha például az összes /var/opt/mssql adatbázisfájl tulajdonjogát a felhasználóra mssql szeretné módosítani, 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
  • a betöltött tanúsítványok 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 szeretné a teljesítményt, tekintse át a Linux rendszeren futó SQL Server teljesítménybeli ajánlott eljárásait és konfigurációs irányelveit. Ezután fedezze fel a teljesítményproblémák elhárításához rendelkezésre álló eszközöket.

Gyakori problémák

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

    Tekintse meg a Csatlakozás Linux rendszeren SQL Server című cikk hibaelhárítási szakaszát.

  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 /etc/hostname 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 kövesse az utasításokat a jelszó visszaállításához 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:

      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.