Megosztás a következőn keresztül:


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 rootfut, é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, azacsnapa parancs az alapértelmezett konfigurációs fájlnévvel -c(például testbackupdetailsazacsnap.json) fut. A paranccsal az -c backup alapértelmezett naplófájlnév azacsnap-backup-azacsnap.log lesz, amelyet a rendszer a konfigurált logPathkö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.

  1. Példa a sikeres befejezésre:

    1. Kimenet *.result fájlba:

      Database # 1 (PR1) : completed ok
      
    2. Kimenet:/var/log/messages

      Dec 17 09:01:13 azacsnap-rhel azacsnap: Database # 1 (PR1) : completed ok
      
  2. Példakimenet, ahol hiba történt, és az AzAcSnap rögzítette a hibát:

    1. Kimenet *.result fájlba:

      Database # 1 (PR1) : failed
      
    2. 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.

  1. Az Azure Portalon nyisson meg egy Cloud Shell-munkamenetet.

  2. Készítsen például mkdir azacsnapegy tesztkönyvtárat.

  3. Váltson az azacsnap könyvtárra, és töltse le az AzAcSnap legújabb verzióját.

    wget https://aka.ms/azacsnapinstaller
    
  4. A telepítő végrehajthatóvá tétele például chmod +x azacsnapinstaller.

  5. 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
    
  6. 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.

  7. 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:

  1. Ellenőrizze, hogy létezik-e a szolgáltatásnévfájl ( azureauth.json) a azacsnap.json konfigurációs fájlban megadottak szerint.

  2. 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.
    
  3. 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 $PATHkell 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éve azacsnap 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 hdbuserstoreAzAcSnap 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 hanaellenő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:

  1. 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.

  2. 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 privilegejelez, 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: HY000a . 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.

Következő lépések