A Azure-alkalmazás Konzisztens pillanatkép (AzAcSnap) eszköz hibaelhárítása
Ez a cikk azt ismerteti, hogyan háríthatja el a problémákat az Azure NetApp Files és az Azure Large Instance Azure-alkalmazás Konzisztens pillanatkép (AzAcSnap) eszközének használatakor.
Az AzAcSnap-parancsok futtatásakor számos gyakori problémát tapasztalhat. Kövesse az utasításokat a problémák elhárításához. Ha továbbra is problémákat tapasztal, nyisson meg egy szolgáltatáskérést Microsoft ügyfélszolgálata az Azure Portalon, és rendelje hozzá a kérést az SAP HANA nagypéldány-üzenetsorához.
AzAcSnap parancs nem fut
Bizonyos esetekben az AzAcSnap nem indul el a felhasználó környezete miatt.
Nem sikerült létrehozni a CoreCLR-t
Az AzAcSnap a .NET-ben van megírva, a CoreCLR pedig a .NET-alkalmazások végrehajtási motorja, amely olyan funkciókat hajt végre, mint az IL bájtkód betöltése, a gépi kód fordítása és a szemétgyűjtés. Ebben az esetben környezeti probléma akadályozza a CoreCLR motor indítását.
Gyakori ok a korlátozott engedélyek vagy a környezet beállítása az AzAcSnap operációs rendszer felhasználója számára, általában azacsnap.
A hibát Failed to create CoreCLR, HRESULT: 0x80004005
az okozhatja, hogy az azacsnap-felhasználó nem fér hozzá a rendszerhez TMPDIR
.
Feljegyzés
A parancsokkal #
kezdődő összes parancssor a következőként root
fut, és a kezdő >
összes parancssor felhasználóként azacsnap
fut.
Ellenőrizze a tulajdonjogot és az /tmp
engedélyeket (ebben a példában csak a root
felhasználó tud olvasni és írni /tmp
):
# ls -ld /tmp
drwx------ 9 root root 8192 Mar 31 10:50 /tmp
Egy jellemző /tmp
a következő engedélyekkel rendelkezik, amelyek lehetővé teszik az azacsnap-felhasználó számára az azacsnap parancs futtatását:
# ls -ld /tmp
drwxrwxrwt 9 root root 8192 Mar 31 10:51 /tmp
Ha nem lehet módosítani a /tmp
címtárengedélyeket, hozzon létre egy felhasználóspecifikusat TMPDIR
.
Hozzon létre egy felhasználót TMPDIR
azacsnap
:
> mkdir /home/azacsnap/_tmp
> export TMPDIR=/home/azacsnap/_tmp
> azacsnap -c about
WKO0XXXXXXXXXXXNW
Wk,.,oxxxxxxxxxxx0W
0;.'.;dxxxxxxxxxxxKW
Xl'''.'cdxxxxxxxxxdkX
Wx,''''.,lxxxxdxdddddON
0:''''''.;oxdddddddddxKW
Xl''''''''':dddddddddddkX
Wx,''''''''':ddddddddddddON
O:''''''''',xKxddddddoddod0W
Xl''''''''''oNW0dooooooooooxX
Wx,,,,,,'','c0WWNkoooooooooookN
WO:',,,,,,,,;cxxxxooooooooooooo0W
Xl,,,,,,,;;;;;;;;;;:llooooooooldX
Nx,,,,,,,,,,:c;;;;;;;;coooollllllkN
WO:,,,,,,,,,;kXkl:;;;;,;lolllllllloOW
Xl,,,,,,,,,,dN WNOl:;;;;:lllllllllldK
0c,;;;;,,,;lK NOo:;;:clllllllllo0W
WK000000000N NK000KKKKKKKKKKXW
Azure Application Consistent Snapshot Tool
AzAcSnap 7a (Build: 1AA8343)
Fontos
A felhasználó TMPDIR
módosításának véglegessé kell tenni a felhasználó profiljának módosításával (pl. $HOME/.bashrc
vagy $HOME/.bash_profile
). Szükség lenne a rendszer újraindításának TMPDIR
törlésére is, ez általában automatikusan történik /tmp
.
Naplófájlok, eredményfájlok és syslog ellenőrzése
Az AzAcSnap-problémák kivizsgálásához a legjobb információforrások a naplófájlok, az eredményfájlok és a rendszernapló.
Naplófájlok
Az AzAcSnap naplófájlokat a rendszer az AzAcSnap konfigurációs fájl paramétere által logPath
konfigurált könyvtárban tárolja. Az alapértelmezett konfigurációs fájlnév azacsnap.json, az alapértelmezett érték logPath
pedig a ./logs, ami azt jelenti, hogy a naplófájlok a ./logs könyvtárba vannak írva a azacsnap
parancs futtatásának helye alapján. Ha abszolút logPath
helyet hoz létre( például /home/azacsnap/logs), azacsnap
a naplókat mindig a /home/azacsnap/logs fájlba adja ki, függetlenül attól, hogy hol futtatja a azacsnap
parancsot.
A naplófájl neve az alkalmazásnéven alapul, azacsnap
a parancs az alapértelmezett konfigurációs fájlnévvel -c
(például test
backup
details
azacsnap.json) fut. A paranccsal az -c backup
alapértelmezett naplófájlnév azacsnap-backup-azacsnap.log lesz, amelyet a rendszer a konfigurált logPath
könyvtárba ír.
Ez az elnevezési konvenció lehetővé teszi, hogy adatbázisonként több konfigurációs fájlt is használjon a társított naplófájlok megkereséséhez. Ha a konfigurációs fájlnév SID.json, akkor a beállítás használatakor a azacsnap -c backup --configfile SID.json
naplófájl neve azacsnap-backup-SID.log.
Eredményfájlok és syslog
A parancshoz az -c backup
AzAcSnap egy *.result fájlba ír. A *.result fájl célja, hogy magas szintű megerősítést adjon a sikerességről/hibáról. Ha a *.result fájl üres, akkor feltételezze a hibát. A *.result fájlba írt kimenetek szintén a rendszernaplóba kerülnek (például /var/log/messages
) a logger
parancs használatával. A *.result fájlnév ugyanazzal az alapnévvel rendelkezik, mint a naplófájl, így lehetővé teszi az eredményfájl és a konfigurációs fájl és a biztonsági mentési naplófájl egyeztetését. A *.result fájl ugyanabba a helyre kerül, mint a többi naplófájl, és egy egyszerű egysoros kimeneti fájl.
Példa a sikeres befejezésre:
Kimenet *.result fájlba:
Database # 1 (PR1) : completed ok
Kimenet:
/var/log/messages
Dec 17 09:01:13 azacsnap-rhel azacsnap: Database # 1 (PR1) : completed ok
Példakimenet, ahol hiba történt, és az AzAcSnap rögzítette a hibát:
Kimenet *.result fájlba:
Database # 1 (PR1) : failed
Kimenet:
/var/log/messages
Dec 19 09:00:30 azacsnap-rhel azacsnap: Database # 1 (PR1) : failed
A sikertelen "storage tesztelése" parancs hibaelhárítása
Előfordulhat, hogy a parancs azacsnap -c test --test storage
nem fejeződik be sikeresen.
Hálózati tűzfalak ellenőrzése
Az Azure NetApp Files szolgáltatással való kommunikáció meghiúsulhat vagy időtúllépést eredményezhet. A hibaelhárításhoz győződjön meg arról, hogy a tűzfalszabályok nem blokkolják az AzAcSnap rendszert futtató rendszer kimenő forgalmát a következő címekre és TCP/IP-portokra:
https://management.azure.com:443
https://login.microsoftonline.com:443
Konfigurációs fájlok ellenőrzése a Cloud Shell használatával
Tesztelheti, hogy a szolgáltatásnév megfelelően van-e konfigurálva a Cloud Shell használatával az Azure Portalon. A Cloud Shell-tesztek használata a megfelelő konfigurációhoz, megkerülve a virtuális hálózaton vagy virtuális gépen (VM) belüli hálózati vezérlőket.
Készítsen például
mkdir azacsnap
egy tesztkönyvtárat.Váltson az azacsnap könyvtárra, és töltse le az AzAcSnap legújabb verzióját.
wget https://aka.ms/azacsnapinstaller
A telepítő végrehajthatóvá tétele például
chmod +x azacsnapinstaller
.A bináris fájl kinyerése teszteléshez.
./azacsnapinstaller -X -d .
Az eredmények a következő kimenethez hasonlóan néznek ki:
+-----------------------------------------------------------+ | Azure Application Consistent Snapshot Tool Installer | +-----------------------------------------------------------+ |-> Installer version '5.0.2_Build_20210827.19086' |-> Extracting commands into .. |-> Cleaning up .NET extract dir
A Cloud Shell feltöltési/letöltési ikonja segítségével feltöltheti a szolgáltatásnévfájlt, a azureauth.json és az AzAcSnap konfigurációs fájlt( például azacsnap.json) tesztelésre.
Futtassa a
storage
tesztet../azacsnap -c test --test storage
Feljegyzés
A tesztparancs végrehajtása körülbelül 90 másodpercet vehet igénybe.
Sikertelen teszt az Azure Large Instance-ben
A következő hiba például az Azure Large Instance-on való futtatásból azacsnap
származik:
azacsnap -c test --test storage
The authenticity of host '172.18.18.11 (172.18.18.11)' can't be established.
ECDSA key fingerprint is SHA256:QxamHRn3ZKbJAKnEimQpVVCknDSO9uB4c9Qd8komDec.
Are you sure you want to continue connecting (yes/no)?
A hiba elhárításához ne válaszoljon yes
. Győződjön meg arról, hogy a tár IP-címe helyes. A tárolási IP-címet a Microsoft műveleti csapatával ellenőrizheti.
A hiba általában akkor jelenik meg, ha az Azure Large Instance Storage-felhasználó nem rendelkezik hozzáféréssel a mögöttes tárolóhoz. Annak megállapításához, hogy a tárolófelhasználó rendelkezik-e hozzáféréssel a tárolóhoz, futtassa a ssh
parancsot a tárolási platformmal való kommunikáció ellenőrzéséhez.
ssh <StorageBackupname>@<Storage IP address> "volume show -fields volume"
Az alábbi példa a várt kimenetet mutatja be:
ssh clt1h80backup@10.8.0.16 "volume show -fields volume"
vserver volume
--------------------------------- ------------------------------
osa33-hana-c01v250-client25-nprod hana_data_h80_mnt00001_t020_vol
osa33-hana-c01v250-client25-nprod hana_data_h80_mnt00002_t020_vol
Sikertelen teszt az Azure NetApp Files használatával
A következő hiba például az Azure NetApp Files futtatásából azacsnap
származik:
azacsnap --configfile azacsnap.json.NOT-WORKING -c test --test storage
BEGIN : Test process started for 'storage'
BEGIN : Storage test snapshots on 'data' volumes
BEGIN : 1 task(s) to Test Snapshots for Storage Volume Type 'data'
ERROR: Could not create StorageANF object [authFile = 'azureauth.json']
A hiba elhárításához:
Ellenőrizze, hogy létezik-e a szolgáltatásnévfájl ( azureauth.json) a azacsnap.json konfigurációs fájlban megadottak szerint.
Ellenőrizze a naplófájlt (például naplókat/azacsnap-test-azacsnap.log), hogy a szolgáltatásnévfájl rendelkezik-e a megfelelő tartalommal. Az alábbi naplófájlkimenet azt mutatja, hogy az ügyfél titkos kulcsa érvénytelen.
[19/Nov/2020:18:39:49 +13:00] DEBUG: [PID:0020080:StorageANF:659] [1] Innerexception: Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException AADSTS7000215: Invalid client secret is provided.
Ellenőrizze a naplófájlban, hogy a szolgáltatásnév lejárt-e. Az alábbi naplófájl-példa azt mutatja, hogy az ügyfél titkos kulcsai lejártak.
[19/Nov/2020:18:41:10 +13:00] DEBUG: [PID:0020257:StorageANF:659] [1] Innerexception: Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException AADSTS7000222: The provided client secret keys are expired. Visit the Azure Portal to create new keys for your app, or consider using certificate credentials for added security: https://learn.microsoft.com/azure/active-directory/develop/active-directory-certificate-credentials
Tipp.
Az új szolgáltatásnév létrehozásával kapcsolatos további információkért tekintse meg az Install Azure-alkalmazás Konzisztens pillanatkép eszköz útmutatójának Tárolóval való kommunikáció engedélyezése című szakaszát.
A sikertelen "test hana" parancs hibaelhárítása
Előfordulhat, hogy a parancs azacsnap -c test --test hana
nem fejeződik be sikeresen.
A parancs nem található
Az SAP HANA-val való kommunikáció beállításakor a hdbuserstore
program a biztonságos kommunikációs beállítások létrehozására szolgál. Az AzAcSnap programra is szükség van az hdbsql
SAP HANA-val folytatott kommunikációhoz. Ezek a programok általában a /usr/sap/<SID>/SYS/exe/hdb/ vagy /usr/sap/hdbclient alatt találhatók, és a felhasználónál $PATH
kell lenniük.
Az alábbi példában a
hdbsql
parancs nem a felhasználóé$PATH
.hdbsql -n 172.18.18.50 - i 00 -U AZACSNAP "select version from sys.m_database"
If 'hdbsql' is not a typo you can use command-not-found to lookup the package that contains it, like this: cnf hdbsql
Az alábbi példa ideiglenesen hozzáadja a
hdbsql
parancsot a felhasználóhoz$PATH
, lehetővé téveazacsnap
a helyes futtatás engedélyezését.export PATH=$PATH:/hana/shared/H80/exe/linuxx86_64/hdb/
Győződjön meg arról, hogy a telepítő hozzáadta ezeknek a fájloknak a helyét az AzAcSnap-felhasználóhoz $PATH
.
Feljegyzés
Ha véglegesen hozzá szeretne adni a felhasználóhoz$PATH
, frissítse a felhasználó $HOME/.profile fájlját.
Érvénytelen érték a kulcshoz
Ez a parancskimenet azt mutatja, hogy a kapcsolati kulcs nincs megfelelően beállítva a hdbuserstore Set
paranccsal.
hdbsql -n 172.18.18.50 -i 00 -U AZACSNAP "select version from sys.m_database"
* -10104: Invalid value for KEY (AZACSNAP)
A beállításról további információt az hdbuserstore
AzAcSnap használatának első lépései című témakörben talál.
Sikertelen teszt
Amikor az SAP HANA-val folytatott kommunikációt egy teszt futtatásával azacsnap -c test --test hana
ellenőrzi, a következő hibaüzenet jelenhet meg:
> azacsnap -c test --test hana
BEGIN : Test process started for 'hana'
BEGIN : SAP HANA tests
CRITICAL: Command 'test' failed with error:
Cannot get SAP HANA version, exiting with error: 127
A hiba elhárításához:
Ellenőrizze az egyes HANA-példányok konfigurációs fájlját (például azacsnap.json), hogy az SAP HANA-adatbázis értékei helyesek-e.
Futtassa a következő parancsot annak ellenőrzéséhez, hogy a
hdbsql
parancs szerepel-e az elérési úton, és hogy csatlakozni tud-e az SAP HANA-kiszolgálóhoz.hdbsql -n 172.18.18.50 - i 00 -d SYSTEMDB -U AZACSNAP "\s"
Az alábbi példa a parancs helyes futtatásakor megjelenő kimenetet mutatja be:
host : 172.18.18.50 sid : H80 dbname : SYSTEMDB user : AZACSNAP kernel version: 2.00.040.00.1553674765 SQLDBC version: libSQLDBCHDB 2.04.126.1551801496 autocommit : ON locale : en_US.UTF-8 input encoding: UTF8 sql port : saphana1:30013
Nem megfelelő jogosultsági hiba
Ha a futtatás azacsnap
hibát * 258: insufficient privilege
jelez, ellenőrizze, hogy a felhasználó rendelkezik-e a telepítési útmutatóban beállított megfelelő AZACSNAP-adatbázis felhasználói jogosultságokkal. Ellenőrizze a felhasználó jogosultságait a következő paranccsal:
hdbsql -U AZACSNAP "select GRANTEE,GRANTEE_TYPE,PRIVILEGE,IS_VALID,IS_GRANTABLE from sys.granted_privileges " | grep -i -e GRANTEE -e azacsnap
A parancsnak a következő kimenetet kell visszaadnia:
GRANTEE,GRANTEE_TYPE,PRIVILEGE,IS_VALID,IS_GRANTABLE
"AZACSNAP","USER","BACKUP ADMIN","TRUE","FALSE"
"AZACSNAP","USER","CATALOG READ","TRUE","FALSE"
"AZACSNAP","USER","CREATE ANY","TRUE","TRUE"
A hiba további információkat nyújthat a szükséges SAP HANA-jogosultságok, például Detailed info for this error can be found with guid '99X9999X99X9999X99X99XX999XXX999' SQLSTATE: HY000
a . Ebben az esetben kövesse az SAP súgóportáljának GET_INSUFFICIENT_PRIVILEGE_ERROR_DETAILS utasításait, amely a következő SQL-lekérdezés használatát javasolja a szükséges jogosultság részleteinek meghatározásához:
CALL SYS.GET_INSUFFICIENT_PRIVILEGE_ERROR_DETAILS ('99X9999X99X9999X99X99XX999XXX999', ?)
GUID,CREATE_TIME,CONNECTION_ID,SESSION_USER_NAME,CHECKED_USER_NAME,PRIVILEGE,IS_MISSING_ANALYTIC_PRIVILEGE,IS_MISSING_GRANT_OPTION,DATABASE_NAME,SCHEMA_NAME,OBJECT_NAME,OBJECT_TYPE
"99X9999X99X9999X99X99XX999XXX999","2021-01-01 01:00:00.180000000",120212,"AZACSNAP","AZACSNAP","DATABASE ADMIN or DATABASE BACKUP ADMIN","FALSE","FALSE","","","",""
Az előző példában, ha hozzáadja a DATABASE BACKUP ADMIN
jogosultságot a SYSTEMDB AZACSNAP-felhasználójának, meg kell oldania az elégtelen jogosultsági hibát.