Felsöka verktyget Azure Application Consistent Snapshot (AzAcSnap)
Den här artikeln beskriver hur du felsöker problem när du använder verktyget Azure Application Consistent Snapshot (AzAcSnap) för Azure NetApp Files och Azure Large Instance.
Du kan stöta på flera vanliga problem när du kör AzAcSnap-kommandon. Följ anvisningarna för att felsöka problemen. Om du fortfarande har problem öppnar du en tjänstbegäran för Microsoft-support från Azure-portalen och tilldelar begäran till den stora SAP HANA-instanskön.
Kommandot AzAcSnap körs inte
I vissa fall startar inte AzAcSnap på grund av användarens miljö.
Det gick inte att skapa CoreCLR
AzAcSnap är skrivet i .NET och CoreCLR är en körningsmotor för .NET-appar som utför funktioner som il byte-kodinläsning, kompilering till maskinkod och skräpinsamling. I det här fallet finns det ett miljöproblem som hindrar CoreCLR-motorn från att starta.
En vanlig orsak är begränsade behörigheter eller miljöinställningar för AzAcSnap-operativsystemanvändaren, vanligtvis "azacsnap".
Felet Failed to create CoreCLR, HRESULT: 0x80004005
kan orsakas av bristande skrivåtkomst för azacsnap-användaren till systemets TMPDIR
.
Kommentar
Alla kommandorader som börjar med #
är kommandon som körs som root
, alla kommandorader som börjar med >
körs som azacsnap
användare.
/tmp
Kontrollera ägarskap och behörigheter (observera i det här exemplet att endast root
användaren kan läsa och skriva till /tmp
):
# ls -ld /tmp
drwx------ 9 root root 8192 Mar 31 10:50 /tmp
En typisk /tmp
har följande behörigheter, vilket gör att azacsnap-användaren kan köra kommandot azacsnap:
# ls -ld /tmp
drwxrwxrwt 9 root root 8192 Mar 31 10:51 /tmp
Om det inte går att ändra /tmp
katalogbehörigheterna skapar du en användarspecifik TMPDIR
.
Gör en TMPDIR
för azacsnap
användaren:
> 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)
Viktigt!
Om du ändrar användarens TMPDIR
måste du göra det permanent genom att ändra användarens profil (t.ex. $HOME/.bashrc
eller $HOME/.bash_profile
). Det skulle också finnas ett behov av att rensa TMPDIR
vid systemomstart, detta är vanligtvis automatiskt för /tmp
.
Kontrollera loggfiler, resultatfiler och syslog
Några av de bästa informationskällorna för att undersöka AzAcSnap-problem är loggfilerna, resultatfilerna och systemloggen.
Loggfiler
AzAcSnap-loggfilerna lagras i katalogen som konfigureras av parametern logPath
i AzAcSnap-konfigurationsfilen. Standardkonfigurationsfilnamnet är azacsnap.json och standardvärdet för logPath
är ./logs, vilket innebär att loggfilerna skrivs till katalogen ./logs i förhållande till där azacsnap
kommandot körs. Om du gör en logPath
absolut plats, till exempel /home/azacsnap/logs, azacsnap
matar du alltid ut loggarna till /home/azacsnap/logs, oavsett var du kör azacsnap
kommandot.
Loggfilnamnet baseras på programnamnet, azacsnap
, kommandot kör med -c
, till exempel backup
, test
eller details
, och standardkonfigurationsfilnamnet, till exempel azacsnap.json. -c backup
Med kommandot skulle ett standardloggfilnamn vara azacsnap-backup-azacsnap.log, skrivet i katalogen som konfigurerats av logPath
.
Den här namngivningskonventionen gör det möjligt för flera konfigurationsfiler, en per databas, att hjälpa till att hitta de associerade loggfilerna. Om konfigurationsfilnamnet är SID.json är loggfilnamnet när du använder azacsnap -c backup --configfile SID.json
alternativet azacsnap-backup-SID.log.
Resultatfiler och syslog
-c backup
För kommandot skriver AzAcSnap till en *.result-fil. Syftet med filen *.result är att ge en bekräftelse på lyckade/misslyckade resultat på hög nivå. Om filen *.result är tom förutsätter du att den misslyckas. Alla utdata som skrivs till filen *.result skickas också till systemloggen (till exempel /var/log/messages
) med hjälp logger
av kommandot . Filnamnet *.result har samma basnamn som loggfilen för matchning av resultatfilen med konfigurationsfilen och loggfilen för säkerhetskopiering. Filen *.result hamnar på samma plats som de andra loggfilerna och är en enkel enradsutdatafil.
Exempel på lyckat slutförande:
Utdata till *.result-fil :
Database # 1 (PR1) : completed ok
Utdata till
/var/log/messages
:Dec 17 09:01:13 azacsnap-rhel azacsnap: Database # 1 (PR1) : completed ok
Exempel på utdata där ett fel har inträffat och AzAcSnap fångade felet:
Utdata till *.result-fil :
Database # 1 (PR1) : failed
Utdata till
/var/log/messages
:Dec 19 09:00:30 azacsnap-rhel azacsnap: Database # 1 (PR1) : failed
Felsöka misslyckat testlagringskommando
Kommandot azacsnap -c test --test storage
kanske inte har slutförts.
Kontrollera nätverksbrandväggar
Kommunikationen med Azure NetApp Files kan misslyckas eller överskrida tidsgränsen. Om du vill felsöka kontrollerar du att brandväggsreglerna inte blockerar utgående trafik från systemet som kör AzAcSnap till följande adresser och TCP/IP-portar:
https://management.azure.com:443
https://login.microsoftonline.com:443
Använda Cloud Shell för att verifiera konfigurationsfiler
Du kan testa om tjänstens huvudnamn är korrekt konfigurerat med hjälp av Cloud Shell via Azure-portalen. Använda Cloud Shell-tester för korrekt konfiguration och kringgå nätverkskontroller i ett virtuellt nätverk eller en virtuell dator (VM).
Öppna en Cloud Shell-session i Azure-portalen.
Skapa en testkatalog, till exempel
mkdir azacsnap
.Växla till katalogen azacsnap och ladda ned den senaste versionen av AzAcSnap.
wget https://aka.ms/azacsnapinstaller
Gör installationsprogrammet körbart, till exempel
chmod +x azacsnapinstaller
.Extrahera binärfilen för testning.
./azacsnapinstaller -X -d .
Resultatet ser ut som följande utdata:
+-----------------------------------------------------------+ | Azure Application Consistent Snapshot Tool Installer | +-----------------------------------------------------------+ |-> Installer version '5.0.2_Build_20210827.19086' |-> Extracting commands into .. |-> Cleaning up .NET extract dir
Använd ikonen Ladda upp/ladda ned i Cloud Shell för att ladda upp tjänstens huvudnamnsfil azureauth.json och AzAcSnap-konfigurationsfilen, till exempel azacsnap.json, för testning.
storage
Kör testet../azacsnap -c test --test storage
Kommentar
Testkommandot kan ta cirka 90 sekunder att slutföra.
Det gick inte att testa den stora Azure-instansen
Följande felexempel är från att köras azacsnap
på Azure Large Instance:
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)?
Om du vill felsöka det här felet ska du inte svara yes
. Kontrollera att lagrings-IP-adressen är korrekt. Du kan bekräfta lagrings-IP-adressen med Microsofts driftteam.
Felet visas vanligtvis när Azure Large Instance-lagringsanvändaren inte har åtkomst till den underliggande lagringen. För att avgöra om lagringsanvändaren har åtkomst till lagringen ssh
kör du kommandot för att verifiera kommunikationen med lagringsplattformen.
ssh <StorageBackupname>@<Storage IP address> "volume show -fields volume"
I följande exempel visas förväntade utdata:
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
Det gick inte att testa med Azure NetApp Files
Följande felexempel är från att köras azacsnap
med Azure NetApp Files:
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']
Så här felsöker du det här felet:
Kontrollera att det finns en tjänsthuvudnamnsfil, azureauth.json, som anges i azacsnap.json konfigurationsfilen.
Kontrollera loggfilen, till exempel loggar/azacsnap-test-azacsnap.log, för att se om tjänstens huvudnamnsfil har rätt innehåll. Följande loggfilutdata visar att klienthemlighetsnyckeln är ogiltig.
[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.
Kontrollera loggfilen för att se om tjänstens huvudnamn har upphört att gälla. Följande loggfilsexempel visar att klienthemlighetsnycklarna har upphört att gälla.
[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://video2.skills-academy.com/azure/active-directory/develop/active-directory-certificate-credentials
Dricks
Mer information om hur du genererar ett nytt huvudnamn för tjänsten finns i avsnittet Aktivera kommunikation med lagring i verktygsguiden Installera Azure Application Consistent Snapshot.
Felsöka det misslyckade kommandot "test hana"
Kommandot azacsnap -c test --test hana
kanske inte har slutförts.
Kommandot hittades inte
När du konfigurerar kommunikation med SAP HANA hdbuserstore
används programmet för att skapa inställningarna för säker kommunikation. AzAcSnap kräver också programmet hdbsql
för all kommunikation med SAP HANA. Dessa program är vanligtvis under /usr/sap/<SID>/SYS/exe/hdb/ eller /usr/sap/hdbclient och måste finnas i användarens $PATH
.
I följande exempel
hdbsql
finns kommandot inte i användarens$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
I följande exempel läggs
hdbsql
kommandot tillfälligt till i användarens$PATH
, vilket gör att det gårazacsnap
att köra korrekt.export PATH=$PATH:/hana/shared/H80/exe/linuxx86_64/hdb/
Kontrollera att installationsprogrammet har lagt till platsen för dessa filer i AzAcSnap-användarens $PATH
.
Kommentar
Om du vill lägga till permanent i användarens $PATH
uppdaterar du användarens $HOME/.profile-fil .
Ogiltigt värde för nyckel
Det här kommandot visar att anslutningsnyckeln inte har konfigurerats korrekt med hdbuserstore Set
kommandot .
hdbsql -n 172.18.18.50 -i 00 -U AZACSNAP "select version from sys.m_database"
* -10104: Invalid value for KEY (AZACSNAP)
Mer information om hur du konfigurerar finns i hdbuserstore
Kom igång med AzAcSnap.
Misslyckat test
När du verifierar kommunikationen med SAP HANA genom att köra ett test med azacsnap -c test --test hana
kan du få följande fel:
> 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
Så här felsöker du det här felet:
Kontrollera konfigurationsfilen, till exempel azacsnap.json för varje HANA-instans, för att säkerställa att SAP HANA-databasvärdena är korrekta.
Kör följande kommando för att kontrollera att
hdbsql
kommandot finns i sökvägen och att det kan ansluta till SAP HANA-servern.hdbsql -n 172.18.18.50 - i 00 -d SYSTEMDB -U AZACSNAP "\s"
I följande exempel visas utdata när kommandot körs korrekt:
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
Otillräckligt behörighetsfel
Om körningen azacsnap
visar ett fel, till exempel * 258: insufficient privilege
, kontrollerar du att användaren har rätt AZACSNAP-databasanvändarbehörigheter konfigurerade enligt installationsguiden. Kontrollera användarens behörigheter med följande kommando:
hdbsql -U AZACSNAP "select GRANTEE,GRANTEE_TYPE,PRIVILEGE,IS_VALID,IS_GRANTABLE from sys.granted_privileges " | grep -i -e GRANTEE -e azacsnap
Kommandot ska returnera följande utdata:
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"
Felet kan ge ytterligare information som hjälper dig att fastställa nödvändiga SAP HANA-privilegier, till exempel Detailed info for this error can be found with guid '99X9999X99X9999X99X99XX999XXX999' SQLSTATE: HY000
. I det här fallet följer du anvisningarna på SAP-hjälpportalen – GET_INSUFFICIENT_PRIVILEGE_ERROR_DETAILS, som rekommenderar att du använder följande SQL-fråga för att fastställa information om den behörighet som krävs:
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","","","",""
I föregående exempel bör du lösa det otillräckliga behörighetsfelet DATABASE BACKUP ADMIN
genom att lägga till behörigheten till SYSTEMDB:s AZACSNAP-användare.