Aracılığıyla paylaş


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ü TMPDIRbir 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 /tmpotomatiktir.

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ı, azacsnapkomutunun , veya detailsgibi backuptestile -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 logPathyapı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.

  1. Başarılı tamamlama örneği:

    1. *.result dosyasına çıkış:

      Database # 1 (PR1) : completed ok
      
    2. Çıkış:/var/log/messages

      Dec 17 09:01:13 azacsnap-rhel azacsnap: Database # 1 (PR1) : completed ok
      
  2. Hatanın oluştuğu ve AzAcSnap'ın hatayı yakaladığı örnek çıktı:

    1. *.result dosyasına çıkış:

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

  1. Azure portalında bir Cloud Shell oturumu açın.

  2. Örneğin mkdir azacsnap, bir test dizini oluşturun.

  3. azacsnap dizinine geçin ve AzAcSnap'ın en son sürümünü indirin.

    wget https://aka.ms/azacsnapinstaller
    
  4. Yükleyiciyi yürütülebilir hale getirin, örneğin chmod +x azacsnapinstaller.

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

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

  1. azacsnap.json yapılandırma dosyasında ayarlandığı gibi hizmet sorumlusu dosyasının (azureauth.json) varlığını denetleyin.

  2. 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.
    
  3. 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 $PATHiçinde olmalıdır.

  • Aşağıdaki örnekte, hdbsql komutu kullanıcının $PATHiç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 ekler hdbsql ve azacsnap 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 $PATHkonumuna 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 hdbuserstorehakkı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 hanailetiş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:

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

  2. 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 privilegebir 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: HY000gerekli 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.

Sonraki adımlar