Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается, как устранять неполадки при использовании инструмента Azure Application Consistent Snapshot (AzAcSnap), обеспечивающего согласованность снимков приложений.
При выполнении команд AzAcSnap может возникнуть несколько распространенных проблем. Следуйте инструкциям по устранению неполадок.
Внимание
Чтобы обеспечить точное устранение неполадок и поддержку, необходимо воспроизвести проблемы с помощью последнего выпуска AzAcSnap. Обновите до последней версии, прежде чем сообщать о каких-либо проблемах. Если у вас по-прежнему возникли проблемы, перейдите на портал Azure и выберите "Поддержка и устранение неполадок" и выполните поиск рекомендаций по проблемам с AzAcSnap, это позволяет открыть запрос на обслуживание для поддержки Майкрософт.
Проверка файлов журналов, файлов результатов и системного журнала
Некоторые из лучших источников информации для изучения проблем AzAcSnap — это файлы журнала, файлы результатов и системный журнал.
Файлы журналов
Файлы журнала AzAcSnap хранятся в каталоге, настроенном logPath параметром в файле конфигурации AzAcSnap. Имя файла конфигурации по умолчанию — azacsnap.json, а значение logPath по умолчанию — ./logs, что означает, что файлы журналов записываются в каталог ./logs относительно того, где azacsnap выполняется команда. Если вы указываете для logPath абсолютное расположение, например /home/azacsnap/logs, azacsnap всегда выводит журналы в /home/azacsnap/logs, независимо от того, где выполняется команда azacsnap.
Имя файла журнала основано на имени приложения, azacsnap, команде, запускаемой с -c, например, backup, test, или имени файла конфигурации по умолчанию, например, details. С помощью команды -c backup имя файла журнала по умолчанию будет azacsnap-backup-azacsnap.log, он будет записан в каталог, настроенный logPath.
Это соглашение об именовании позволяет использовать несколько файлов конфигурации, по одному на базу данных, чтобы помочь найти связанные файлы журнала. Если имя файла конфигурации SID.json, то имя файла журнала azacsnap -c backup --configfile SID.json при использовании параметра .
Файлы результатов и системный журнал
В команду -c backup AzAcSnap записывает в файл *.result.
Целью файла *.result является предоставление высокого уровня подтверждения успешности или сбоя. Если файл *.result пуст, то следует считать это сбоем. Все выходные данные, записанные в файл *.result , также выводится в системный журнал (например, /var/log/messagesс помощью logger команды). Имя файла *.result имеет то же базовое имя, что и файл журнала, чтобы разрешить сопоставление файла результатов с файлом конфигурации и файлом журнала резервного копирования. Файл *.result помещается в то же место, что и другие файлы журнала, и это простой однострочный выходной файл.
Пример успешного завершения:
Вывод в файл *.result:
Database # 1 (PR1) : completed okВыходные данные в
/var/log/messages:Dec 17 09:01:13 azacsnap-rhel azacsnap: Database # 1 (PR1) : completed ok
Пример выходных данных, в которых произошел сбой, и AzAcSnap захватил ошибку:
Вывод в файл *.result:
Database # 1 (PR1) : failedВыходные данные в
/var/log/messages:Dec 19 09:00:30 azacsnap-rhel azacsnap: Database # 1 (PR1) : failed
Команда AzAcSnap не будет выполняться
В некоторых случаях AzAcSnap не запускается из-за среды пользователя.
Не удалось создать CoreCLR
AzAcSnap написан в .NET, а CoreCLR — это механизм выполнения для приложений .NET. Он выполняет такие функции, как загрузка байт-кода IL, компиляция в машинный код и сборка мусора. В случае ошибок CoreCLR возникает проблема с окружающей средой, блокирующая запуск ядра CoreCLR.
Распространенная причина — ограниченные разрешения или настройка окружения для пользователя операционной системы AzAcSnap, обычно azacsnap.
Ошибка Failed to create CoreCLR, HRESULT: 0x80004005 может быть вызвана отсутствием права на запись для пользователя azacsnap к системе TMPDIR.
Примечание.
Все строки команд, начиная с # этого, выполняются как rootкоманды, все строки команд, начиная > с пользователя, выполняются от имени azacsnap пользователя.
/tmp Проверьте владение и разрешения (обратите внимание, что только root пользователь может читать и записывать в/tmp):
# ls -ld /tmp
drwx------ 9 root root 8192 Mar 31 10:50 /tmp
Типичный /tmp имеет следующие разрешения, которые позволяют пользователю azacsnap выполнять команду azacsnap:
# ls -ld /tmp
drwxrwxrwt 9 root root 8192 Mar 31 10:51 /tmp
Если невозможно изменить разрешения каталога /tmp, создайте пользовательский каталог TMPDIR.
Сделайте 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)
Внимание
Изменение TMPDIR у пользователя должно стать постоянным, если изменить его профиль (например, $HOME/.bashrc или $HOME/.bash_profile). Это изменение означает, что при перезагрузке системы потребуется вручную очистить TMPDIR. Эта TMPDIR очистка обычно выполняется автоматически для /tmp.
Устранение неполадок неудачной команды "тестовое хранилище"
azacsnap -c test --test storage Команда может завершиться не успешно.
Проверка сетевых брандмауэров
Взаимодействие с Azure NetApp Files может завершиться сбоем или истечением времени ожидания. Чтобы устранить неполадки, убедитесь, что правила брандмауэра не блокируют исходящий трафик из системы, на котором запущен AzAcSnap, на следующие адреса и ПОРТы TCP/IP:
https://management.azure.com:443https://login.microsoftonline.com:443
Использование Cloud Shell для проверки файлов конфигурации
Конфигурацию AzAcSnap можно проверить с помощью Cloud Shell на портале Azure. Использование тестов Cloud Shell для правильной настройки, обход сетевых элементов управления в виртуальной сети или виртуальной машине.
Внимание
Устранение проблем, связанных с разрешениями, выходит за рамки этого руководства.
На портале Azure откройте
bashсеанс Cloud Shell.Создайте тестовый каталог, например
mkdir azacsnap.Перейдите в каталог
azacsnapи скачайте последнюю версию AzAcSnap.cd azacsnap wget https://aka.ms/azacsnap-linuxСделайте скачанный двоичный файл исполняемым.
chmod +x azacsnap-linuxСоздайте файл конфигурации AzAcSnap (например
azacsnap.json, для тестирования). Это можно сделать с помощью программыvi, или воспользоваться значком загрузки Cloud Shell для отправки файла конфигурации AzAcSnap, а также, при необходимости, файла учетной записи (например,azureauth.json), если этот метод все еще используется для аутентификации.Список деталей моментального снимка.
./azacsnap -c detailsЗапустите тест хранилища.
./azacsnap -c test --test storageПримечание.
Выполнение тестовой команды может занять около 90 секунд.
SubscriptionNotFound
При использовании AzAcSnap в среде, отличной от общедоступного облака, например в облаке для государственных организаций США, подключение к Azure Resource Manager может быть нацелено на неправильную конечную точку управления Azure. В этом случае AzAcSnap может вернуть код SubscriptionNotFound ошибки с сообщением The subscription '99z999zz-99z9-99zz-99zz-9z9zz999zz99' could not be found. об ошибке В этом случае необходимо настроить AzAcSnap для использования правильной среды.
Неудачный тест с помощью Azure NetApp Files
Следующий пример ошибки заключается в запуске теста хранилища с azacsnap помощью Azure NetApp Files:
azacsnap -c test --test storage
"Не имеет авторизации"
Пример выходных данных из файла журнала:
The client '00001111-aaaa-2222-bbbb-3333cccc4444' with object id 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb' does not have authorization to perform action 'Microsoft.NetApp/netAppAccounts/read' over scope ...
Эта ошибка может возникнуть из-за использования на виртуальной машине как системно назначенной управляемой идентификации, так и назначаемого пользователем удостоверения для аутентификации.
Чтобы устранить эту проблему, используйте одно из следующих решений:
- Отключите или удалите управляемое удостоверение, назначаемое системой.
- Настройте AzAcSnap для использования метода Service Principal для аутентификации.
Не удалось создать объект StorageANF.
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']
Для устранения этой ошибки сделайте следующее:
Проверьте наличие файла субъекта-службы azureauth.json, как указано в файле конфигурации azacsnap.json.
Проверьте файл журнала, например, журналы/azacsnap-test-azacsnap.log, чтобы узнать, имеет ли файл директора службы правильное содержимое. В следующем выводе файла журнала показано, что секретный ключ клиента недействителен.
[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.Проверьте файл журнала, чтобы узнать, истек ли срок действия учетной записи службы. В следующем примере файла журнала показано, что срок действия ключей секрета клиента истек.
[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
Совет
Дополнительные сведения о создании новой учетной записи службы см. в разделе Включение взаимодействия с хранилищем в руководстве по установке утилиты для создания согласованных снимков приложений Azure.
Неудачный тест на большом экземпляре Azure
Следующий пример ошибки возникает при запуске azacsnap на крупном экземпляре Azure.
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:AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00.
Are you sure you want to continue connecting (yes/no)?
Чтобы устранить эту ошибку, не отвечайте yes. Убедитесь, что IP-адрес хранилища правильный. Вы можете подтвердить IP-адрес хранилища с помощью группы операций Майкрософт.
Эта ошибка обычно возникает, когда у пользователя хранилища крупных экземпляров Azure нет доступа к базовому хранилищу. Чтобы определить, имеет ли пользователь хранилища доступ к хранилищу, выполните ssh команду, чтобы проверить связь с платформой хранилища.
ssh <StorageBackupname>@<Storage IP address> "volume show -fields volume"
В следующем примере показаны ожидаемые выходные данные:
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
Устранение неполадок команды 'test hana'
azacsnap -c test --test hana Команда может завершиться не успешно.
Команда не найдена
При настройке связи с SAP HANA программа hdbuserstore используется для создания параметров безопасного подключения. AzAcSnap требует программу hdbsql для всех связей с SAP HANA. Обычно эти программы находятся в разделе /usr/sap/SID</>SYS/exe/hdb/ или /usr/sap/hdbclient и должны находиться в пользовательской $PATHсреде.
В следующем примере
hdbsqlкоманда не входит в систему пользователя$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В следующем примере к пользовательскому
hdbsqlвременно добавляется команда$PATH, что позволяетazacsnapправильно выполняться.export PATH=$PATH:/hana/shared/H80/exe/linuxx86_64/hdb/
Убедитесь, что установщик добавил расположение этих файлов в базу пользователя AzAcSnap.
Примечание.
Чтобы постоянно добавить в $PATH, обновите файл $HOME/.profile пользователя.
Недопустимое значение ключа
В выводе этой команды показано, что ключ подключения неправильно настроен командой hdbuserstore Set.
hdbsql -n 172.18.18.50 -i 00 -U AZACSNAP "select version from sys.m_database"
* -10104: Invalid value for KEY (AZACSNAP)
Дополнительные сведения о настройке hdbuserstore см. в статье «Начало работы с AzAcSnap».
Неудачный тест с помощью SAP HANA
При проверке взаимодействия с SAP HANA с помощью теста azacsnap -c test --test hanaможет возникнуть следующая ошибка:
> 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
Для устранения этой ошибки сделайте следующее:
Проверьте файл конфигурации, например azacsnap.json для каждого экземпляра HANA, чтобы убедиться, что значения базы данных SAP HANA верны.
Выполните следующую команду, чтобы убедиться, что
hdbsqlкоманда находится в пути и может подключиться к серверу SAP HANA.hdbsql -n 172.18.18.50 - i 00 -d SYSTEMDB -U AZACSNAP "\s"В следующем примере показаны выходные данные при правильном выполнении команды:
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
Ошибка недостаточной привилегии в SAP HANA
Если при выполнении azacsnap возникает ошибка * 258: insufficient privilege, убедитесь, что у пользователя есть соответствующие привилегии в базе данных AZACSNAP, настроенные в соответствии с руководством по установке. Проверьте привилегии пользователя с помощью следующей команды:
hdbsql -U AZACSNAP "select GRANTEE,GRANTEE_TYPE,PRIVILEGE,IS_VALID,IS_GRANTABLE from sys.granted_privileges " | grep -i -e GRANTEE -e azacsnap
Команда должна возвращать следующие выходные данные:
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"
Ошибка может предоставить дополнительные сведения для определения необходимых привилегий SAP HANA, таких как Detailed info for this error can be found with guid '99X9999X99X9999X99X99XX999XXX999' SQLSTATE: HY000. В этом случае следуйте инструкциям на портале справки SAP — GET_INSUFFICIENT_PRIVILEGE_ERROR_DETAILS, которые рекомендуют использовать следующий SQL-запрос для определения сведений о необходимых привилегиях:
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","","","",""
В предыдущем примере добавление привилегии DATABASE BACKUP ADMIN пользователю AZACSNAP из SYSTEMDB должно устранить ошибку с недостаточной привилегией.