Настроить базу данных для средства согласованных моментальных снимков приложений Azure

В этой статье содержится руководство по настройке базы данных и предварительным требованиям к базе данных для использования с инструментом AzAcSnap для согласованного снимка приложений Azure, который можно использовать с Azure NetApp Files или крупными экземплярами Azure.

Включение взаимодействия с базой данных

В этом разделе объясняется, как включить взаимодействие с базой данных. Используйте следующие вкладки, чтобы правильно выбрать используемую базу данных.

При развертывании на централизованной виртуальной машине необходимо установить и настроить клиент SAP HANA, чтобы пользователь AzAcSnap смог выполнить команды hdbsql и hdbuserstore. Клиент SAP HANA можно скачать на веб-сайте средств разработки SAP.

Средства создания моментальных снимков взаимодействуют с SAP HANA и нуждаются в пользователе с соответствующими разрешениями, чтобы инициировать и освободить точку сохранения базы данных. В следующем примере показана настройка пользователя SAP HANA 2.0 и hdbuserstore для связи с базой данных SAP HANA.

Внимание

Обязательно установите клиент SAP HANA для выполнения hdbsql и hdbuserstore команд на всех узлах, на которых выполняется AzAcSnap. Например, при запуске экземпляра AzAcSnap 1 из узла 1 и экземпляра AzAcSnap 2 из узла 2 клиент SAP HANA должен быть установлен как на узле 1, так и на узле 2.

В следующем примере команды настраивают пользователя (AZACSNAP) в SYSTEMDB в базе данных SAP HANA 2.0. Измените IP-адрес, имена пользователей и пароли соответствующим образом.

  1. Подключитесь к SYSTEMDB:

    hdbsql -n <IP_address_of_host>:30013 -i 00 -u SYSTEM -p <SYSTEM_USER_PASSWORD>
    
    Welcome to the SAP HANA Database interactive terminal.
    
    Type: \h for help with commands
    \q to quit
    
    hdbsql SYSTEMDB=>
    
  2. Создайте пользователя. В этом примере пользователь AZACSNAP создается в SYSTEMDB.

    hdbsql SYSTEMDB=> CREATE USER AZACSNAP PASSWORD <AZACSNAP_PASSWORD_CHANGE_ME> NO FORCE_FIRST_PASSWORD_CHANGE;
    
  3. Предоставьте пользователю разрешения. В этом примере настраивается разрешение AZACSNAP для пользователя, позволяющего выполнять моментальный снимок хранилища, согласованный с базой данных:

    • Для выпусков SAP HANA до версии 2.0 SPS 03:

      hdbsql SYSTEMDB=> GRANT BACKUP ADMIN, CATALOG READ TO AZACSNAP;
      
    • Для выпусков SAP HANA версии 2.0 SPS 04 SAP добавила новые подробные привилегии:

      hdbsql SYSTEMDB=> GRANT BACKUP ADMIN, DATABASE BACKUP ADMIN, CATALOG READ TO AZACSNAP;
      
  4. Необязательно. Запретить истечение срока действия пароля пользователя.

    Примечание.

    Прежде чем вносить это изменение, обратитесь к корпоративной политике.

    В следующем примере отключается срок действия пароля для AZACSNAP пользователя. Без этого изменения пароль пользователя может истечь и помешать правильному выполнению моментальных снимков.

    hdbsql SYSTEMDB=> ALTER USER AZACSNAP DISABLE PASSWORD LIFETIME;
    
  5. Настройте безопасное хранилище пользователей SAP HANA (измените пароль). В этом примере используется команда hdbuserstore из оболочки Linux для настройки безопасного хранилища пользователей SAP HANA:

    hdbuserstore Set AZACSNAP <IP_address_of_host>:30013 AZACSNAP <AZACSNAP_PASSWORD_CHANGE_ME>
    

    Примечание.

    Для всех баз данных SAP HANA, с которыми будет взаимодействовать AzAcSnap, необходимо выполнить этот шаг по настройке безопасного пользовательского хранилища KEY SAP HANA. Например, если AzAcSnap включен client01 и у вас имеется сервер базы данных SAP HANA, установленный на узлах dbserver01 и dbserver02, то команду hdbuserstore Set необходимо выполнить дважды, чтобы настроить два ключа на client01, чтобы AzAcSnap мог взаимодействовать с обоими серверами.

  6. Убедитесь, что вы правильно настроили безопасное хранилище пользователей SAP HANA. hdbuserstore Используйте команду для перечисления выходных данных, как показано в следующем примере. Дополнительные сведения об использовании hdbuserstore доступны на веб-сайте SAP.

    hdbuserstore List
    
    DATA FILE : /home/azacsnap/.hdb/sapprdhdb80/SSFS_HDB.DAT
    KEY FILE : /home/azacsnap/.hdb/sapprdhdb80/SSFS_HDB.KEY
    
    KEY AZACSNAP
      ENV : <IP_address_of_host>:
      USER: AZACSNAP
    

    Примечание.

    Значение KEY поля используется для вопроса конфигурации "Что такое ключ хранилища пользователей SAP HANA HDB (например hdbuserstore List,?").

Использование SSL для связи с SAP HANA

AzAcSnap использует команду SAP HANA для взаимодействия с SAP HANA hdbsql . Использование hdbsql позволяет использовать параметры SSL для шифрования связи с SAP HANA.

AzAcSnap всегда использует следующие параметры при использовании azacsnap --ssl параметра:

  • -e: включает шифрование TLS/SSL. Сервер выбирает самый высокий доступный уровень.
  • -ssltrustcert: указывает, следует ли проверять сертификат сервера.
  • -sslhostnameincert "*": указывает имя узла для проверки удостоверения сервера. При указании "*" в качестве имени узла, проверка имени хоста сервера не выполняется.

Для обмена данными SSL также требуются файлы хранилища ключей и хранилища доверия. Эти файлы можно хранить в расположениях по умолчанию в установке Linux. Но чтобы убедиться, что правильный ключевой материал используется для различных систем SAP HANA (в тех случаях, когда для каждой системы SAP HANA используются разные файлы хранилища ключей и доверия), AzAcSnap ожидает, что файлы key-store и trust-store будут храниться в расположении securityPath . Файл конфигурации AzAcSnap указывает это расположение.

Файлы хранилища ключей

Если вы используете несколько системных идентификаторов (SID) с одним и тем же ключевым материалом, проще создать ссылки в место securityPath, как это определено в конфигурационном файле AzAcSnap. Убедитесь, что эти значения существуют для каждого идентификатора безопасности, использующего SSL.

  • Для openssl: ln $HOME/.ssl/key.pem <securityPath>/<SID>_keystore
  • Для commoncrypto: ln $SECUDIR/sapcli.pse <securityPath>/<SID>_keystore

Если вы используете несколько идентификаторов SID с различными ключевыми материалами для каждого, скопируйте (или переместите и переименуйте) файлы в securityPath место, как определено в конфигурационном файле SID AzAcSnap.

  • Для openssl: mv key.pem <securityPath>/<SID>_keystore
  • Для commoncrypto: mv sapcli.pse <securityPath>/<SID>_keystore

При вызове hdbsql, он добавляет -sslkeystore=<securityPath>/<SID>_keystore в командную строку hdbsql.

Файлы хранилища доверия

Если вы используете несколько идентификаторов SID с тем же самым ключом, создайте жесткие ссылки в расположение securityPath, как это указано в файле конфигурации AzAcSnap. Убедитесь, что эти значения существуют для каждого идентификатора безопасности, использующего SSL.

  • Для openssl: ln $HOME/.ssl/trust.pem <securityPath>/<SID>_truststore
  • Для commoncrypto: ln $SECUDIR/sapcli.pse <securityPath>/<SID>_truststore

Если вы используете несколько идентификаторов SID с различными ключевыми материалами для каждого идентификатора SID, скопируйте (или переместите и переименуйте) файлы в securityPath расположение, как определено в файле конфигурации AzAcSnap для SID.

  • Для openssl: mv trust.pem <securityPath>/<SID>_truststore
  • Для commoncrypto: mv sapcli.pse <securityPath>/<SID>_truststore

Компонент <SID> имен файлов должен быть идентификатором системы SAP HANA во всех верхних регистрах (например, H80 или PR1). При вызове AzAcSnap hdbsql, он добавляет -ssltruststore=<securityPath>/<SID>_truststore в командную строку.

При запуске azacsnap -c test --test hana --ssl openssl, если SID указан в H80 файле конфигурации, он выполняет hdbsql подключения следующим образом:

hdbsql \
    -e \
    -ssltrustcert \
    -sslhostnameincert "*" \
    -sslprovider openssl \
    -sslkeystore ./security/H80_keystore \
    -ssltruststore ./security/H80_truststore
    "sql statement"

В приведенном выше коде символ обратной косой черты (\) представляет собой оболочку командной строки, чтобы повысить четкость нескольких параметров, переданных в командной строке.

Настройка базы данных

В этом разделе объясняется, как настроить базу данных.

Настройка SAP HANA

Существуют изменения, которые можно применить к SAP HANA, чтобы защитить резервные копии журналов и каталог. По умолчанию, basepath_logbackup и basepath_catalogbackup устанавливаются так, чтобы SAP HANA помещала связанные файлы в каталог $(DIR_INSTANCE)/backup/log. Маловероятно, что это местоположение находится на томе, настроенном AzAcSnap для создания моментальных снимков, поэтому хранилищные моментальные снимки не будут защищать эти файлы.

В следующих hdbsql примерах команд показано, как задать пути к логам и каталогам на томах хранилища, к которым AzAcSnap может создавать снимки. Убедитесь, что значения в командной строке соответствуют локальной конфигурации SAP HANA.

Настройка расположения резервного копирования журнала

В этом примере показано изменение basepath_logbackup параметра:

hdbsql -jaxC -n <HANA_ip_address>:30013 -i 00 -u SYSTEM -p <SYSTEM_USER_PASSWORD> "ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistence', 'basepath_logbackup') = '/hana/logbackups/H80' WITH RECONFIGURE"

Настройка расположения резервного копирования каталога

В этом примере показано изменение basepath_catalogbackup параметра. Сначала убедитесь, что basepath_catalogbackup путь существует в файловой системе. Если нет, создайте путь с тем же владельцем, что и каталог.

ls -ld /hana/logbackups/H80/catalog
drwxr-x--- 4 h80adm sapsys 4096 Jan 17 06:55 /hana/logbackups/H80/catalog

Если необходимо создать путь, в следующем примере создается путь и задаются правильные права владения и разрешения. Эти команды необходимо выполнить от имени root.

mkdir /hana/logbackups/H80/catalog
chown --reference=/hana/shared/H80/HDB00 /hana/logbackups/H80/catalog
chmod --reference=/hana/shared/H80/HDB00 /hana/logbackups/H80/catalog
ls -ld /hana/logbackups/H80/catalog
drwxr-x--- 4 h80adm sapsys 4096 Jan 17 06:55 /hana/logbackups/H80/catalog

В следующем примере изменяется параметр SAP HANA:

hdbsql -jaxC -n <HANA_ip_address>:30013 -i 00 -u SYSTEM -p <SYSTEM_USER_PASSWORD> "ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistence', 'basepath_catalogbackup') = '/hana/logbackups/H80/catalog' WITH RECONFIGURE"

Проверка расположений резервных копий журналов и каталогов

После внесения изменений в расположения резервного копирования журналов и каталога убедитесь, что параметры верны с помощью следующей команды.

В этом примере настройки отображаются как SYSTEM параметры. Этот запрос также возвращает DEFAULT параметры для сравнения.

hdbsql -jaxC -n <HANA_ip_address> - i 00 -U AZACSNAP "select * from sys.m_inifile_contents where (key = 'basepath_databackup' or key ='basepath_datavolumes' or key = 'basepath_logbackup' or key = 'basepath_logvolumes' or key = 'basepath_catalogbackup')"
global.ini,DEFAULT,,,persistence,basepath_catalogbackup,$(DIR_INSTANCE)/backup/log
global.ini,DEFAULT,,,persistence,basepath_databackup,$(DIR_INSTANCE)/backup/data
global.ini,DEFAULT,,,persistence,basepath_datavolumes,$(DIR_GLOBAL)/hdb/data
global.ini,DEFAULT,,,persistence,basepath_logbackup,$(DIR_INSTANCE)/backup/log
global.ini,DEFAULT,,,persistence,basepath_logvolumes,$(DIR_GLOBAL)/hdb/log
global.ini,SYSTEM,,,persistence,basepath_catalogbackup,/hana/logbackups/H80/catalog
global.ini,SYSTEM,,,persistence,basepath_datavolumes,/hana/data/H80
global.ini,SYSTEM,,,persistence,basepath_logbackup,/hana/logbackups/H80
global.ini,SYSTEM,,,persistence,basepath_logvolumes,/hana/log/H80

Настройка времени ожидания резервного копирования журнала

Параметр по умолчанию для SAP HANA для выполнения резервного копирования журналов составляет 900 секунды (15 минут). Мы рекомендуем уменьшить это значение до 300 секунд (5 минут). Затем можно выполнять регулярные резервные копии этих файлов (например, каждые 10 минут). Эти резервные копии можно создать, добавив log_backup тома в раздел OTHER томов в файле конфигурации.

hdbsql -jaxC -n <HANA_ip_address>:30013 -i 00 -u SYSTEM -p <SYSTEM_USER_PASSWORD> "ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistence', 'log_backup_timeout_s') = '300' WITH RECONFIGURE"

Проверка тайм-аута резервного копирования журнала

После внесения изменений в время ожидания резервного копирования журнала убедитесь, что время ожидания задано с помощью следующей команды.

В этом примере параметры отображаются в качестве SYSTEM параметров. Этот запрос также возвращает DEFAULT параметры для сравнения.

hdbsql -jaxC -n <HANA_ip_address> - i 00 -U AZACSNAP "select * from sys.m_inifile_contents where key like '%log_backup_timeout%' "
global.ini,DEFAULT,,,persistence,log_backup_timeout_s,900
global.ini,SYSTEM,,,persistence,log_backup_timeout_s,300

Следующие шаги