設定 Azure 應用程式 一致快照集工具的資料庫
本文提供一個指南,說明如何設定資料庫和資料庫必要條件,以搭配您搭配 Azure NetApp Files 或 Azure 大型實例使用 Azure 應用程式 一致快照集工具(AzAcSnap)。
啟用與資料庫的通訊
本節說明如何啟用與資料庫的通訊。 使用下列索引標籤來正確選取您所使用的資料庫。
如果您正在部署至集中式虛擬機器,您必須安裝並設定 SAP HANA 用戶端,以讓 AzAcSnap 使用者可以執行 hdbsql
和 hdbuserstore
命令。 您可以從 SAP 開發工具網站下載 SAP HANA 用戶端。
快照集工具會與 SAP HANA 通訊,並需要具有適當權限的使用者來起始和發行資料庫儲存點。 下列範例顯示 SAP HANA 2.0 使用者的設定,以及用於與 SAP HANA 資料庫通訊的 hdbuserstore
。
下列範例命令會在 SAP HANA 2.0 資料庫上的 SYSTEMDB 中設定使用者 (AZACSNAP
)。 視需要變更 IP 位址、使用者名稱和密碼。
連線到 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=>
建立使用者。 此範例會在 SYSTEMDB 中建立
AZACSNAP
使用者:hdbsql SYSTEMDB=> CREATE USER AZACSNAP PASSWORD <AZACSNAP_PASSWORD_CHANGE_ME> NO FORCE_FIRST_PASSWORD_CHANGE;
授與使用者權限。 此範例會設定
AZACSNAP
使用者的權限,從而允許執行資料庫一致儲存體快照集:上至 2.0 SPS 03 版的 SAP HANA 版本:
hdbsql SYSTEMDB=> GRANT BACKUP ADMIN, CATALOG READ TO AZACSNAP;
針對從 2.0 SPS 04 版開始的 SAP HANA 版本,SAP 新增了更精細的權限:
hdbsql SYSTEMDB=> GRANT BACKUP ADMIN, DATABASE BACKUP ADMIN, CATALOG READ TO AZACSNAP;
選擇性:避免使用者密碼到期。
注意
進行這項變更之前,請先確認公司原則。
下列範例會停用
AZACSNAP
使用者的密碼到期。 如果沒有這項變更,使用者的密碼可能會過期,並防止正確擷取快照集。hdbsql SYSTEMDB=> ALTER USER AZACSNAP DISABLE PASSWORD LIFETIME;
設定 SAP HANA 安全使用者存放區 (變更密碼)。 此範例會使用 Linux 殼層中的
hdbuserstore
命令來設定 SAP HANA 安全使用者存放區:hdbuserstore Set AZACSNAP <IP_address_of_host>:30013 AZACSNAP <AZACSNAP_PASSWORD_CHANGE_ME>
請檢查您是否已正確設定 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
將 SSL 用於與 SAP HANA 通訊
AzAcSnap 會使用 SAP HANA 的 hdbsql
命令與 SAP HANA 通訊。 使用 hdbsql
可讓您使用 SSL 選項來加密與 SAP HANA 的通訊。
使用 azacsnap --ssl
選項時,AzAcSnap 一律會使用下列選項:
-e
:啟用 TLS/SSL 加密。 伺服器會選擇可用的最高值。-ssltrustcert
:指定是否驗證伺服器憑證。-sslhostnameincert "*"
:指定驗證伺服器身分識別的主機名稱。 若將"*"
指定為主機名稱,系統就不會驗證伺服器的主機名稱。
SSL 通訊也需要金鑰存放區和信任存放區檔案。 這些檔案有可能儲存在預設的 Linux 安裝位置。 但為了確保將正確的金鑰資料用於各種 SAP HANA 系統 (適用於每個 SAP HANA 系統使用不同的金鑰存放區和信任存放區檔案的情況),AzAcSnap 預期金鑰存放區和信任存放區檔案會儲存在 securityPath
位置。 AzAcSnap 設定檔會指定此位置。
金鑰存放區檔案
如果使用具有相同金鑰資料的多個系統識別碼 (SID),則更容易建立連結至 AzAcSnap 設定檔中所定義的 securityPath
位置。 請確定每個使用 SSL 的 SID 都有這些值。
- 對於
openssl
:ln $HOME/.ssl/key.pem <securityPath>/<SID>_keystore
- 對於
commoncrypto
:ln $SECUDIR/sapcli.pse <securityPath>/<SID>_keystore
若使用多個 SID,且每個 SID 具有不同的金鑰資料,請將檔案複製 (或移動並重新命名) 到 SID AzAcSnap 設定檔中所定義的 securityPath
位置。
- 對於
openssl
:mv key.pem <securityPath>/<SID>_keystore
- 對於
commoncrypto
:mv sapcli.pse <securityPath>/<SID>_keystore
當 AzAcSnap 呼叫 hdbsql
時,其會新增 -sslkeystore=<securityPath>/<SID>_keystore
至 hdbsql
命令列。
信任存放區檔案
如果使用具有相同金鑰資料的多個 SID,請建立永久連結至 AzAcSnap 設定檔中所定義的 securityPath
位置。 請確定每個使用 SSL 的 SID 都有這些值。
- 對於
openssl
:ln $HOME/.ssl/trust.pem <securityPath>/<SID>_truststore
- 對於
commoncrypto
:ln $SECUDIR/sapcli.pse <securityPath>/<SID>_truststore
若使用多個 SID,且每個 SID 都有不同的金鑰資料,請將檔案複製 (或移動並重新命名) 到 SID AzAcSnap 設定檔中所定義的 securityPath
位置。
- 對於
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
如須建立路徑,下列範例會建立路徑,並設定正確的所有權和權限。 您必須以根身分執行這些命令。
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