Azure Uygulaması Tutarlı Anlık Görüntü (AzAcSnap) aracının sorunlarını giderme
Bu makalede, Azure NetApp Files ve Azure Büyük Örnek için Azure Uygulaması Lication Tutarlı Anlık Görüntü (AzAcSnap) aracını kullanırken karşılaşılan sorunların nasıl giderilir açıklanmaktadır.
AzAcSnap komutlarını çalıştırırken çeşitli yaygın sorunlarla karşılaşabilirsiniz. Sorunları gidermek için yönergeleri izleyin. Sorun yaşamaya devam ediyorsanız Azure portalından Microsoft Desteği için Hizmet İsteği'ni açın ve isteği SAP HANA Büyük Örnek kuyruğuna atayın.
AzAcSnap komutu çalışmıyor
Bazı durumlarda AzAcSnap, kullanıcının ortamından dolayı başlatılmaz.
CoreCLR oluşturulamadı
AzAcSnap .NET'te yazılır ve CoreCLR, IL bayt kodu yükleme, makine koduna derleme ve çöp toplama gibi işlevleri gerçekleştiren .NET uygulamaları için bir yürütme altyapısıdır. Bu durumda CoreCLR altyapısının başlatılmasını engelleyen bir ortam sorunu vardır.
Yaygın nedenlerden biri AzAcSnap işletim sistemi kullanıcısı için sınırlı izinler veya ortam kurulumudur( genellikle 'azacsnap').
Hataya Failed to create CoreCLR, HRESULT: 0x80004005
azacsnap kullanıcısının sistemin TMPDIR
öğesine yazma erişiminin olmaması neden olabilir.
Not
ile #
başlayan tüm komut satırları olarak root
çalıştırılır ve ile >
başlayan tüm komut satırları kullanıcı olarak azacsnap
çalıştırılır.
/tmp
Sahiplik ve izinleri denetleyin (bu örnekte yalnızca root
kullanıcının okuyup yazabileceğine dikkat edin/tmp
):
# ls -ld /tmp
drwx------ 9 root root 8192 Mar 31 10:50 /tmp
Bir tipik /tmp
, azacsnap kullanıcısının azacsnap komutunu çalıştırmasına izin veren aşağıdaki izinlere sahiptir:
# ls -ld /tmp
drwxrwxrwt 9 root root 8192 Mar 31 10:51 /tmp
Dizin izinlerini değiştirmek /tmp
mümkün değilse, kullanıcıya özgü TMPDIR
bir oluşturun.
Kullanıcı için azacsnap
bir TMPDIR
yapın:
> 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)
Önemli
Kullanıcının TMPDIR
profilini değiştirerek (ör. $HOME/.bashrc
veya $HOME/.bash_profile
) kullanıcının profilinin değiştirilmesi kalıcı hale getirilmelidir. Sistem yeniden başlatmada TMPDIR
temizlemeye de gerek olacaktır; bu genellikle için /tmp
otomatiktir.
Günlük dosyalarını, sonuç dosyalarını ve syslog'ı denetleme
AzAcSnap sorunlarını araştırmak için en iyi bilgi kaynaklarından bazıları günlük dosyaları, sonuç dosyaları ve sistem günlüğü.
Günlük dosyaları
AzAcSnap günlük dosyaları, AzAcSnap yapılandırma dosyasında parametresi tarafından logPath
yapılandırılan dizinde depolanır. Varsayılan yapılandırma dosya adı azacsnap.json ve için logPath
varsayılan değer ./logs'tır; bu da günlük dosyalarının komutun çalıştığı yere azacsnap
göre ./logs dizinine yazıldığı anlamına gelir. /home/azacsnap/logs gibi mutlak bir konum oluşturursanızlogPath
, azacsnap
komutu nerede çalıştırdığınızdan bağımsız olarak günlükleri her zaman /home/azacsnap/logs dizinine aktarırazacsnap
.
Günlük dosya adı, uygulama adını, azacsnap
komutunun , veya details
gibi backup
test
ile -c
çalıştırılmasını ve azacsnap.json gibi varsayılan yapılandırma dosya adını temel alır. komutuyla-c backup
, tarafından logPath
yapılandırılan dizine yazılan varsayılan günlük dosya adı azacsnap-backup-azacsnap.log olacaktır.
Bu adlandırma kuralı, ilişkili günlük dosyalarının bulunmasına yardımcı olmak için veritabanı başına bir tane olmak üzere birden çok yapılandırma dosyasına olanak tanır. Yapılandırma dosya adı SID.json, seçeneği kullanılırken azacsnap -c backup --configfile SID.json
günlük dosya adı azacsnap-backup-SID.log.
Sonuç dosyaları ve syslog
Komutu için -c backup
AzAcSnap bir *.result dosyasına yazar. *.result dosyasının amacı, başarı/başarısızlık için üst düzey onay sağlamaktır. *.result dosyası boşsa, başarısız olduğunu varsayalım. *.result dosyasına yazılan tüm çıkışlar, komutu kullanılarak sistem günlüğüne de (örneğin, /var/log/messages
) çıkıştırlogger
. *.result dosya adı, sonuç dosyasını yapılandırma dosyası ve yedekleme günlük dosyasıyla eşleştirmeye izin vermek için günlük dosyasıyla aynı temel ada sahiptir. *.result dosyası diğer günlük dosyalarıyla aynı konuma gider ve basit bir satır çıkış dosyasıdır.
Başarılı tamamlama örneği:
*.result dosyasına çıkış:
Database # 1 (PR1) : completed ok
Çıkış:
/var/log/messages
Dec 17 09:01:13 azacsnap-rhel azacsnap: Database # 1 (PR1) : completed ok
Hatanın oluştuğu ve AzAcSnap'ın hatayı yakaladığı örnek çıktı:
*.result dosyasına çıkış:
Database # 1 (PR1) : failed
Çıkış:
/var/log/messages
Dec 19 09:00:30 azacsnap-rhel azacsnap: Database # 1 (PR1) : failed
Başarısız olan 'test storage' komutunun sorunlarını giderme
Komut azacsnap -c test --test storage
başarıyla tamamlanmayabilir.
Ağ güvenlik duvarlarını denetleme
Azure NetApp Files ile iletişim başarısız olabilir veya zaman aşımına neden olabilir. Sorun gidermek için güvenlik duvarı kurallarının AzAcSnap çalıştıran sistemden aşağıdaki adreslere ve TCP/IP bağlantı noktalarına giden trafiği engellemediğinden emin olun:
https://management.azure.com:443
https://login.microsoftonline.com:443
Yapılandırma dosyalarını doğrulamak için Cloud Shell kullanma
Azure portalı üzerinden Cloud Shell kullanarak hizmet sorumlusunun doğru yapılandırılıp yapılandırılmadığını test edebilirsiniz. Doğru yapılandırma için Cloud Shell testlerini kullanma, bir sanal ağ veya sanal makine (VM) içindeki ağ denetimlerini atlama.
Azure portalında bir Cloud Shell oturumu açın.
Örneğin
mkdir azacsnap
, bir test dizini oluşturun.azacsnap dizinine geçin ve AzAcSnap'ın en son sürümünü indirin.
wget https://aka.ms/azacsnapinstaller
Yükleyiciyi yürütülebilir hale getirin, örneğin
chmod +x azacsnapinstaller
.Test için ikili dosyasını ayıklayın.
./azacsnapinstaller -X -d .
Sonuçlar aşağıdaki çıkışa benzer:
+-----------------------------------------------------------+ | Azure Application Consistent Snapshot Tool Installer | +-----------------------------------------------------------+ |-> Installer version '5.0.2_Build_20210827.19086' |-> Extracting commands into .. |-> Cleaning up .NET extract dir
Cloud Shell Karşıya Yükleme/İndirme simgesini kullanarak hizmet sorumlusu dosyasını, azureauth.json ve azacsnap.json gibi AzAcSnap yapılandırma dosyasını test etmek üzere karşıya yükleyin.
storage
Testi çalıştırın../azacsnap -c test --test storage
Not
Test komutunun tamamlanması yaklaşık 90 saniye sürebilir.
Azure Büyük Örneği üzerinde başarısız test
Aşağıdaki hata örneği, Azure Büyük Örneği'ni çalıştırmaya azacsnap
yöneliktir:
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)?
Bu hatayı gidermek için yanıt yes
vermeyin. Depolama IP adresinizin doğru olduğundan emin olun. Depolama IP adresini Microsoft operasyon ekibiyle onaylayabilirsiniz.
Hata genellikle Azure Büyük Örnek depolama kullanıcısının temel alınan depolamaya erişimi olmadığında görünür. Depolama kullanıcısının depolamaya erişimi olup olmadığını belirlemek için komutunu çalıştırarak ssh
depolama platformuyla iletişimi doğrulayın.
ssh <StorageBackupname>@<Storage IP address> "volume show -fields volume"
Aşağıdaki örnekte beklenen çıkış gösterilmektedir:
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
Azure NetApp Files ile test başarısız oldu
Aşağıdaki hata örneği, Azure NetApp Files ile çalışma azacsnap
örneğidir:
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']
Bu hatayı gidermek için:
azacsnap.json yapılandırma dosyasında ayarlandığı gibi hizmet sorumlusu dosyasının (azureauth.json) varlığını denetleyin.
Hizmet sorumlusu dosyasının doğru içeriğe sahip olup olmadığını görmek için günlük dosyasını (örneğin , günlükler/azacsnap-test-azacsnap.log) denetleyin. Aşağıdaki günlük dosyası çıktısı, istemci gizli anahtarı geçersiz olduğunu gösterir.
[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.
Hizmet sorumlusunun süresinin dolduğunu görmek için günlük dosyasını denetleyin. Aşağıdaki günlük dosyası örneği, istemci gizli anahtarı anahtarlarının süresinin dolduğunu gösterir.
[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
İpucu
Yeni bir Hizmet Sorumlusu oluşturma hakkında daha fazla bilgi için Yükleme Azure Uygulaması Lication Tutarlı Anlık Görüntü aracı kılavuzundaki Depolama ile iletişimi etkinleştirme bölümüne bakın.
Başarısız 'test hana' komutunun sorunlarını giderme
Komut azacsnap -c test --test hana
başarıyla tamamlanmayabilir.
Komut bulunamadı
SAP HANA ile iletişimi ayarlarken, hdbuserstore
güvenli iletişim ayarlarını oluşturmak için program kullanılır. AzAcSnap ayrıca SAP HANA ile tüm iletişimler hdbsql
için programı gerektirir. Bu programlar genellikle /usr/sap/SID>/<SYS/exe/hdb/ veya /usr/sap/hdbclient altındadır ve kullanıcının $PATH
içinde olmalıdır.
Aşağıdaki örnekte,
hdbsql
komutu kullanıcının$PATH
içinde değildir.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
Aşağıdaki örnek, komutunu kullanıcının
$PATH
öğesine geçici olarak eklerhdbsql
veazacsnap
düzgün çalışmasına izin verir.export PATH=$PATH:/hana/shared/H80/exe/linuxx86_64/hdb/
Yükleyicinin bu dosyaların konumunu AzAcSnap kullanıcısının $PATH
konumuna eklediğinden emin olun.
Not
Kullanıcının dosyasına kalıcı olarak eklemek için kullanıcının $PATH
$HOME/.profile dosyasını güncelleştirin.
Anahtar için geçersiz değer
Bu komut çıktısı, bağlantı anahtarının komutuyla hdbuserstore Set
doğru ayarlanmamış olduğunu gösterir.
hdbsql -n 172.18.18.50 -i 00 -U AZACSNAP "select version from sys.m_database"
* -10104: Invalid value for KEY (AZACSNAP)
kurulumu hdbuserstore
hakkında daha fazla bilgi için bkz . AzAcSnap kullanmaya başlama.
Başarısız test
ile bir test çalıştırarak SAP HANA ile azacsnap -c test --test hana
iletişimi doğrularken aşağıdaki hatayı alabilirsiniz:
> 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
Bu hatayı gidermek için:
SAP HANA veritabanı değerlerinin doğru olduğundan emin olmak için her HANA örneğinde azacsnap.json yapılandırma dosyasını denetleyin.
Komutun yolda olduğunu
hdbsql
ve SAP HANA sunucusuna bağlanabildiğini doğrulamak için aşağıdaki komutu çalıştırın.hdbsql -n 172.18.18.50 - i 00 -d SYSTEMDB -U AZACSNAP "\s"
Aşağıdaki örnekte, komut doğru çalıştırıldığında çıkış gösterilmektedir:
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
Yetersiz ayrıcalık hatası
çalıştırma azacsnap
gibi * 258: insufficient privilege
bir hata gösteriyorsa, kullanıcının yükleme kılavuzuna göre ayarlanmış uygun AZACSNAP veritabanı kullanıcı ayrıcalıklarına sahip olup olmadığını denetleyin. Aşağıdaki komutla kullanıcının ayrıcalıklarını doğrulayın:
hdbsql -U AZACSNAP "select GRANTEE,GRANTEE_TYPE,PRIVILEGE,IS_VALID,IS_GRANTABLE from sys.granted_privileges " | grep -i -e GRANTEE -e azacsnap
Komut aşağıdaki çıkışı döndürmelidir:
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"
Hata, gibi Detailed info for this error can be found with guid '99X9999X99X9999X99X99XX999XXX999' SQLSTATE: HY000
gerekli SAP HANA ayrıcalıklarını belirlemeye yardımcı olmak için daha fazla bilgi sağlayabilir. Bu durumda, gerekli ayrıcalığı belirlemek için aşağıdaki SQL sorgusunun kullanılmasını öneren SAP Yardım Portalı - GET_INSUFFICIENT_PRIVILEGE_ERROR_DETAILS yönergelerini izleyin:
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","","","",""
Yukarıdaki örnekte, SYSTEMDB'nin AZACSNAP kullanıcısına ayrıcalık eklemek DATABASE BACKUP ADMIN
, yetersiz ayrıcalık hatasını çözmelidir.