Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik: SQL Server 2016 (13.x) és újabb verziók
Ez a cikk hibaelhárítási útmutatást nyújt a Machine Learning Serviceshez használt SQL Server Launchpad szolgáltatással kapcsolatos problémákhoz. A Launchpad szolgáltatás támogatja az R- és Python-szkriptek külső végrehajtását. Több probléma is megakadályozhatja a launchpad indítását, beleértve a konfigurációs problémákat, a módosításokat vagy a hiányzó hálózati protokollokat.
Annak meghatározása, hogy a Launchpad fut-e
Nyissa meg SQL Server Configuration Manager. A parancssorból írja be az SQLServerManager13.msc, az SQLServerManager14.msc vagy az SQLServerManager15.msc parancsot.
Jegyezze fel azt a szolgáltatásfiókot, amely alatt a Launchpad fut. Minden olyan példánynak, ahol az R vagy a Python engedélyezve van, a Launchpad szolgáltatás saját példányával kell rendelkeznie. Egy elnevezett példány szolgáltatása például az MSSQLLaunchpad$InstanceName fájlhoz hasonló lehet.
Ha a szolgáltatás le van állítva, indítsa újra. Az újraindításkor, ha a konfigurációval kapcsolatos problémák merülnek fel, a rendszer közzétehet egy üzenetet a rendszer eseménynaplójában, és a szolgáltatás ismét leáll. A szolgáltatás leállásáról a rendszer eseménynaplójában tájékozódhat.
Tekintse át a RSetup.log tartalmát, és győződjön meg arról, hogy nincsenek hibák a beállításban. A 0-s kóddal való kilépés üzenet például azt jelzi, hogy a szolgáltatás nem indul el.
Egyéb hibák kereséséhez tekintse át a rlauncher.log tartalmát.
A Launchpad szolgáltatásfiók ellenőrzése
Az alapértelmezett szolgáltatásfiók lehet "NT Service$SQL2016", "NT Service$SQL2017" vagy "NT Service$SQL2019". Az utolsó rész az SQL-példány nevétől függően változhat.
A Launchpad szolgáltatás (Launchpad.exe) alacsony jogosultságú szolgáltatásfiók használatával fut. Az R és a Python elindításához és az adatbázispéldánysal való kommunikációhoz azonban a Launchpad szolgáltatásfiókhoz a következő felhasználói jogosultságok szükségesek:
- Szolgáltatásként való bejelentkezés (SeServiceLogonRight)
- Folyamatszintű jogosultsági token cseréje (SeAssignPrimaryTokenPrivilege)
- Az átlépési ellenőrzés megkerülése (SeChangeNotifyPrivilege)
- Folyamat memóriakvótáinak módosítása (SeIncreaseQuotaSizePrivilege)
Ezekről a felhasználói jogosultságokról a Windows-szolgáltatásfiókok és -engedélyek konfigurálása című szakasz "Windows-jogosultságok és jogosultságok" című szakaszában olvashat.
Jótanács
Ha ismeri az SQL Server-diagnosztika támogatási diagnosztikai platformjának (SDP) használatát, az SDP használatával áttekintheti a kimeneti fájlt MachineName_UserRights.txtnéven.
A Launchpad felhasználói csoportja nem tud helyileg bejelentkezni
A Machine Learning Services telepítése során az SQL Server létrehozza az SQLRUserGroup Windows felhasználói csoportot, majd kiosztja azt az SQL Serverhez való csatlakozáshoz és külső szkriptfeladatok futtatásához szükséges összes jogosultsággal. Ha ez a felhasználói csoport engedélyezve van, akkor Python-szkriptek futtatására is használható.
Azokban a szervezetekben azonban, ahol szigorúbb biztonsági szabályzatokat léptetnek érvénybe, előfordulhat, hogy a csoport által megkövetelt jogosultságokat manuálisan eltávolították, vagy a szabályzat automatikusan visszavonta őket. Ha a jogosultságok el lettek távolítva, a Launchpad már nem tud csatlakozni az SQL Serverhez, és az SQL Server nem tudja meghívni a külső futtatókörnyezetet.
A probléma megoldásához győződjön meg arról, hogy az SQLRUserGroup csoport rendelkezik a helyi bejelentkezés engedélyezése rendszerjogokkal.
További információ: Windows-szolgáltatásfiókok és -engedélyek konfigurálása.
Külső szkriptek futtatására vonatkozó engedélyek
Még ha a Launchpad megfelelően van konfigurálva is, hibát ad vissza, ha a felhasználó nem rendelkezik R- vagy Python-szkriptek futtatására vonatkozó engedéllyel.
Ha az SQL Servert adatbázis-rendszergazdaként telepítette, vagy Ön az adatbázis tulajdonosa, automatikusan megkapja ezt az engedélyt. Más felhasználók azonban általában korlátozottabb engedélyekkel rendelkeznek. Ha R-szkriptet próbálnak futtatni, launchpad-hibaüzenetet kapnak.
A probléma megoldásához az SQL Server Management Studióban a biztonsági rendszergazda az alábbi szkript futtatásával módosíthatja az SQL-bejelentkezést vagy a Windows-felhasználói fiókot:
GRANT EXECUTE ANY EXTERNAL SCRIPT TO <username>
További információ: GRANT.
Gyakori launchpad-hibák
Ez a szakasz a Launchpad által visszaadott leggyakoribb hibaüzeneteket sorolja fel.
"Nem lehet elindítani a futtatókörnyezetet az R-szkripthez"
Ha az R-felhasználók (a Pythonhoz is használt) Windows-csoportja nem tud bejelentkezni az R-szolgáltatásokat futtató példányra, a következő hibákat tapasztalhatja:
R-szkriptek futtatásakor keletkező hibák:
Az "R" szkript futtatókörnyezete nem indítható el. Ellenőrizze az "R" futtatókörnyezet konfigurációját.
Külső szkripthiba történt. Nem sikerült elindítani a futtatókörnyezetet.
Az SQL Server Launchpad szolgáltatás által generált hibák:
Nem sikerült inicializálni a indítót RLauncher.dll
Nincsenek regisztrálva indító dll-ek!
A biztonsági naplók azt jelzik, hogy az NT SERVICE-fiók nem tudott bejelentkezni
Az SQL Server 2016 R Services telepítésével kapcsolatban további információt az SQL Server 2016 R Services telepítése című témakörben talál a felhasználói csoport számára a szükséges engedélyek megadásáról.
Megjegyzés:
Ez a korlátozás nem vonatkozik arra az esetre, ha SQL-bejelentkezésekkel R-szkripteket futtat távoli munkaállomásról.
"Bejelentkezési hiba: a felhasználó nem kapta meg a kért bejelentkezési típust"
Az SQL Server Launchpad alapértelmezés szerint a következő fiókot használja indításkor: NT Service\MSSQLLaunchpad. A fiókot úgy konfigurálja az SQL Server, hogy minden szükséges engedéllyel rendelkezzen.
Ha egy másik fiókot rendel a Launchpadhez, vagy az SQL Server-gépen lévő szabályzat eltávolítja a jogosultságot, előfordulhat, hogy a fiók nem rendelkezik a szükséges engedélyekkel, és a következő hibaüzenet jelenhet meg:
ERROR_LOGON_TYPE_NOT_GRANTED 1385 (0x569) bejelentkezési hiba: a felhasználó nem kapta meg a kért bejelentkezési típust ezen a számítógépen.
Ha meg szeretné adni a szükséges engedélyeket az új szolgáltatásfióknak, használja a Helyi biztonsági házirend alkalmazást, és frissítse a fiók engedélyeit, hogy az tartalmazza a következő engedélyeket:
- Egy folyamat memóriakvótáinak módosítása (SeIncreaseQuotaPrivilege)
- Az átlépési ellenőrzés megkerülése (SeChangeNotifyPrivilege)
- Szolgáltatásként való bejelentkezés (SeServiceLogonRight)
- Folyamatszintű jogosultsági token cseréje (SeAssignPrimaryTokenPrivilege)
"Nem lehet kommunikálni a Launchpad szolgáltatással"
Ha telepítette, majd engedélyezte a gépi tanulást, de ez a hiba r- vagy Python-szkript futtatásakor jelenik meg, előfordulhat, hogy a példány Launchpad szolgáltatása leállt.
Egy Windows parancssorból nyissa meg az SQL Server Configuration Managert. További információ: SQL Server Configuration Manager.
Kattintson a jobb gombbal a példány SQL Server launchpadjére, majd válassza a Tulajdonságok lehetőséget.
Válassza a Szolgáltatás lapot, majd ellenőrizze, hogy fut-e a szolgáltatás. Ha nem fut, módosítsa a Start módotautomatikusra, majd válassza az Alkalmaz lehetőséget.
A szolgáltatás újraindítása általában megoldja a problémát, hogy a gépi tanulási szkriptek fussanak. Ha az újraindítás nem oldja meg a problémát, jegyezze fel az elérési utat és az argumentumokat a Bináris elérési út tulajdonságban, és tegye a következőket:
a). Tekintse át a indító .config fájlját, és győződjön meg arról, hogy a munkakönyvtár érvényes.
b. Győződjön meg arról, hogy a Launchpad által használt Windows-csoport képes csatlakozni az SQL Server-példányhoz.
c) Ha módosítja valamelyik szolgáltatástulajdonságot, indítsa újra a Launchpad szolgáltatást.
"A tmpFile létrehozása végzetes hiba miatt meghiúsult"
Ebben a forgatókönyvben sikeresen telepítette a gépi tanulási funkciókat, és a Launchpad fut. Megpróbál futtatni néhány egyszerű R- vagy Python-kódot, de a Launchpad az alábbihoz hasonló hibával meghiúsul:
Nem sikerült kommunikálni az R-szkript futtatókörnyezetével. Kérjük, ellenőrizze az R futtatási környezet követelményeit.
A külső szkript futtatókörnyezete ugyanakkor a következő üzenetet írja az STDERR-üzenet részeként:
Végzetes hiba: a tmpfile létrehozása nem sikerült.
Ez a hiba azt jelzi, hogy a Launchpad által használni kívánt fiók nem rendelkezik engedéllyel az adatbázisba való bejelentkezéshez. Ez a helyzet akkor fordulhat elő, ha szigorú biztonsági szabályzatokat vezetnek be. Annak megállapításához, hogy ez a helyzet-e, tekintse át az SQL Server naplóit, és ellenőrizze, hogy a bejelentkezéskor megtagadták-e a MSSQLSERVER01 fiókot. Ugyanez az információ található meg a naplókban, amelyek kifejezetten az R_SERVICES vagy PYTHON_SERVICES szolgáltatásokhoz tartoznak. Keresse meg az ExtLaunchError.log fájlt.
Alapértelmezés szerint 20 fiók van beállítva és társítva a Launchpad.exe folyamathoz, a neveik MSSQLSERVER01-től MSSQLSERVER20-ig terjednek. Ha nagy mértékben használja az R-t vagy a Pythont, növelheti a fiókok számát.
A probléma megoldásához győződjön meg arról, hogy a csoport engedélyezi a helyi bejelentkezést arra a helyi példányra, ahol a gépi tanulási funkciók telepítve és engedélyezve lettek. Bizonyos környezetekben ennél az engedélyszintnél szükség lehet a hálózati rendszergazda által adott csoportházirend-objektum kivételre.
"Nincs elég kvóta a parancs feldolgozásához"
Ez a hiba számos dolog egyikét jelentheti:
Előfordulhat, hogy a launchpad nem rendelkezik elegendő külső felhasználóval a külső lekérdezés futtatásához. Ha például egyszerre több mint 20 külső lekérdezést futtat, és csak 20 alapértelmezett felhasználó van, előfordulhat, hogy egy vagy több lekérdezés meghiúsul.
Nincs elegendő memória az R-feladat feldolgozásához. Ez a hiba leggyakrabban egy alapértelmezett környezetben fordul elő, ahol az SQL Server a számítógép erőforrásainak akár 70 százalékát is használhatja. A kiszolgáló konfigurációjának módosításáról az erőforrások R általi nagyobb kihasználtsága érdekében történő módosításáról a Python oktatóanyaga nyújt tájékoztatást: Lineáris regressziós modell üzembe helyezése SQL machine learning használatával.
"Nem található csomag"
Ha R-kódot futtat az SQL Serveren, és megkapja ezt az üzenetet, de nem kapta meg az üzenetet, amikor ugyanazt a kódot futtatta az SQL Serveren kívül, az azt jelenti, hogy a csomag nem az SQL Server által használt alapértelmezett könyvtárhelyre lett telepítve.
Ez a hiba sokféleképpen fordulhat elő:
Telepített egy új csomagot a kiszolgálón, de megtagadták a hozzáférést, ezért az R egy felhasználói könyvtárba telepítette a csomagot.
Telepítette az R-szolgáltatásokat, majd telepített egy másik R-eszközt vagy kódtárakat, például az RStudio-t.
A példány által használt R-csomagtár helyének meghatározásához nyissa meg az SQL Server Management Studiót (vagy bármely más adatbázis-lekérdezési eszközt), csatlakozzon a példányhoz, majd futtassa a következő tárolt eljárást:
EXECUTE sp_execute_external_script
@language = N'R',
@script = N' print(normalizePath(R.home())); print(.libPaths());';
Mintaeredmények
STDOUT-üzenet(ek) külső szkriptből:
[1] "C:\Program Files\Microsoft SQL Server\MSSQL13. SQL2016\R_SERVICES"
[1] "C:/Program Files/Microsoft SQL Server/MSSQL13. SQL2016/R_SERVICES/library"
A probléma megoldásához újra kell telepítenie a csomagot az SQL Server-példánytárba.
Megjegyzés:
Ha frissítette az SQL Server 2016 egy példányát a Microsoft R programcsomag legújabb verziójának használatára, az alapértelmezett könyvtár helye eltérő. További információ: Az R-kódtár alapértelmezett helye.
Launchpad nem megfelelő DLL-ek miatt leáll
Ha az adatbázismotort más funkciókkal telepíti, kijavítja a kiszolgálót, majd később hozzáadja a Machine Learning szolgáltatást az eredeti adathordozó használatával, előfordulhat, hogy a Machine Learning-összetevők nem megfelelő verziója lesz telepítve. Amikor a Launchpad egy verzió-különbséget észlel, leáll, és létrehoz egy memóriaképfájlt.
A probléma elkerülése érdekében mindenképpen telepítse az új szolgáltatásokat a kiszolgálópéldányokkal azonos javításszinten.
A frissítés helytelen módja:
- Telepítse az SQL Server 2016-ot R-szolgáltatások nélkül.
- Frissítse az SQL Server 2016 2. kumulatív frissítését.
- Telepítse az R Servicest (In-Database) az RTM-adathordozó használatával.
A frissítés helyes módja:
- Telepítse az SQL Server 2016-ot R-szolgáltatások nélkül.
- Frissítse az SQL Server 2016-ot a kívánt javításszintre. Telepítse például az 1. szervizcsomagot, majd a 2. kumulatív frissítést.
- Ha a funkciót a megfelelő javításszinten szeretné hozzáadni, futtassa újra az SP1 és a CU2 beállítást, majd válassza az R Services (In-Database) lehetőséget.
A Launchpad nem indul el, ha 8dot3 jelölés szükséges.
Megjegyzés:
Régebbi rendszereken a Launchpad indítása sikertelen lehet, ha 8dot3 jelölési követelmény van. Ezt a követelményt a későbbi kiadásokban eltávolítottuk. Az SQL Server 2016 R Services ügyfeleinek az alábbiak egyikét kell telepíteniük:
- SQL Server 2016 SP1 és CU1: KB3208177 – 1. kumulatív frissítés az SQL Server 2016 SP1-hez.
- SQL Server 2016 RTM, 3. kumulatív frissítés és ez a gyorsjavítás, amely igény szerint elérhető.
Az R-vel való kompatibilitás érdekében az SQL Server 2016 R Services (In-Database) megkövetelte azt a meghajtót, amelyen a szolgáltatás telepítve van, hogy támogassa a rövid fájlnevek létrehozását a 8dot3 jelölés használatával. A 8.3-as fájlnevet rövid fájlnévnek is nevezik, és a Microsoft Windows korábbi verzióival való kompatibilitásra vagy a hosszú fájlnevek alternatívájaként használják.
Ha az R telepítendő kötete nem támogatja a rövid fájlneveket, előfordulhat, hogy az SQL Serverről R-t indító folyamatok nem tudják megtalálni a megfelelő végrehajtható fájlt, és a Launchpad nem indul el.
Áthidaló megoldásként engedélyezheti a 8dot3 jelölést azon a köteten, amelyen az SQL Server telepítve van, és ahol az R Services telepítve van. Ezután meg kell adnia a munkakönyvtár rövid nevét az R Services konfigurációs fájljában.
A 8dot3 jelölés engedélyezéséhez futtassa az fsutil segédprogramot az
8dot3nameargumentummal.A 8dot3 jelölés engedélyezése után nyissa meg a RLauncher.config fájlt, és jegyezze fel a tulajdonságot
WORKING_DIRECTORY. A fájl megkereséséről további információt a Python- és R-szkriptek SQL Server Machine Learning Services használatával történő hibaelhárításához az Adatok összegyűjtése című témakörben talál.Az fsutil segédprogram és a fájlargumentum használatával adjon meg egy rövid elérési utat a WORKING_DIRECTORY megadott mappához.
Szerkessze a konfigurációs fájlt úgy, hogy ugyanazt a munkakönyvtárat adja meg, amelyet a WORKING_DIRECTORY tulajdonságban megadott. Másik lehetőségként megadhat egy másik munkakönyvtárat, és kiválaszthat egy meglévő elérési utat, amely már kompatibilis a 8dot3 jelöléssel.