SAP HANA安裝與管理工具介紹

SAP提供了多種目的不同的安裝與管理工具來管理HANA系統,以下我們來介紹幾種常用的安裝及管理工具。

工具清單

SAP HANA cockpit:
這是基於web based(run在SAP XS advanced service)的DB集中管理與監控的工具,你必須有該DB(可以是system DB or tenant DB)的相關資訊(例如host name , port number, UID,PWD等等)就可以在這個介面中看到這一個DB的相關資訊(管理與監控功能)同時也有SQL的開發功能。

SAP HANA Studio:
這應該是功能最完整的管理工具,這是一個安裝在你的桌機電腦上且遠端連線到SAP HANA系統(PS就類似MS-SQL管理工具SSMS)。所有的管理監控都可以做,還可以修改HANA系統的設定檔及開發功能(例如ABAP及store procedure等等)

SAP HANA HDBSQL:
這是一個CLI的管理工具,採命令模式管理。你可以進到這個tool 的shell下SQL command或是在OS Layer,下SQL command.

SAP Solution Manager:
這是一個比較High Level的管理工具,它是管理整個SAP的相關解決方案或產品的lifecycle management。所以它不只是管理SAP的infrastructure,同時也能做business process analytics, end-to-end的root cause分析並引導你如何解決相關的issue.

SAP DBA cockpit:
這是一個獨立工具(由SAP ABAP系統產生的),只做HANA DB的管理。

SAP System Landscape Management:
提供自動與集中化的SAP相關平台的整體架構資料管理平台。HDBLCM(HANA database lifecycle manager)負責管理整個 System Landscape Directory(SLD) system. SLD是一個集中化管理整個HANA架構資訊的地方。也就是可以把在site A的HANA架構複製到另一個 site b or C不用再重新設定。如下圖

SAP HANA lifecycle Manager:
關於HANA系統的安裝/升級/設定等,有GUI/CLI/Web 三種介面。

哪麼在那些狀況下會用到這些工具呢?
如果你是要管理HANA DB的話, HANA studio and HANA cockpit會是你常用的,前者是需要安裝程式後者是web base的模式。另外若管理的層面有比較偏OS layer的話,例如HANA的設定檔就會用到studio若是無關OS哪就會比較常用cockpit.
Solution manager較常用在end-to-end的root cause分析以及business process reporting(這個是run在SAP NetWeaver AS for ABAP上)。
Landscape management這是一個進階的自動化管理工具,大都用在維護整個平台的活動上,例如用這一個工具要做系統升級時它可以將我們的系統downtime時間降至最低(這個是跑在SAP NetWeaver AS for Java上)。

各管理工具的詳情

HDBSQL — Command Line Tool介紹

如上面提及,這是一個SQL command的執行工具,同時也能執行store procedure的部分,當然我們也可以列出整個DB的catalog(table/view等等)。
若我們要使用這個工具logon進某個DB命令列大概會是這樣
一次性登入:
> hdbsql [options] -n <要登入的DB名稱> -i <instance_id> -u <du user> -p <password>
互動式登入:
1. > hdbsql 直接敲入這個指令後enter
2. \c [options] -n <db hostname> -i <instance id> -u <db user> -p <password> 進入shell後再輸入相關指令
若你使用multi-tenant db,哪就要輸入該tenant DB名稱,在命令列中加入參數 -d <tenant_db_name>

範例

常用參數
\? : 列出所有可用的命令
\h : help模式,若有不會用的command,在輸入到一半時後面部會可以最後加上這個。
\a[utocommit] [ON/OFF] : 開啟或關閉 Auto commit
\c[onnect] : 連結某個DB
\dc[Pattern] : 列出所有與pattern參數相關的table column,這個可以列出來的column是會根據你現行使用的account.
\de[Pattern] : 列出所有與pattern參數相關的objects的index資訊
\di[sconnect] : 斷開與某個DB的連結
\dp[Pattern] : 列出所有與pattern參數相關的 procedure
\mn{ON/OFF} : 可以進入多行命令模式
\o <filename> : 將執行結果輸出到某個檔案中

範例

輸入-命令行帶入SQL語法
結果

另外命令列太長或會重複使用也可以使用檔案的方式將SQL語法寫入或參數寫入該檔案中,命令列如下
> hdbsql [option] -i <batch-file>
在這個檔案中,若有命令的順序要使用 “,”逗號隔開.命令執行的順序是由第一行開始。

上圖範例中,若autocommit 是關閉的最後一行就必須有commit的指令。否則就不用。

HANA studio介紹

這個管理工具大概可以分成三種角度來看,
— Administrator console
— Information modeler
— Lifecycle management

加入要被管理的DB,需要相關的DB資訊。如下圖範例

上圖中一般使用第一個選項加入,但若你的管理的DB很多你可以從其他的Hana studio 將這些管理的information 出來後,選擇第二個選項將檔案import到該台機器。

分類的項目:
我們在成功連結到需要管理的DB後展開這個DB會有以下這些項目。

Backup : 這不用說,是關於這個DB的備份相關例如備份設定檔或table甚至可以snapshot.
Catalog : 這是資料本身像schemas/tables/functions/procedure等等
Content : 這個可以將這個db所有相關的資料打包後再另一個HANA system使用,像是在測試環境完成測試後打包後傳到正式環境。
Provisioning : 連結外部的資料來源
Security : Users/roles相關設定

Cockpit介紹

這是一個基於 HTML5/ Fiori的使用者介面並可控管多個DB執行以下作業,start and stop systems and databases
monitor databases
configure system settings
manage users and authorizations
backups
另有著SQL query的管理功能並跑在 XSA(HANA XS advanced)上。而且這一個管理工具可以另外安裝於獨立的主機上。

Cockpit架構
cockpit 2.0是安裝在HANA server上的,如同剛剛說它也是獨立的套件可以安裝在獨立的機器上。同時控管多個tenant DB 與system db(HANA system).
主要的原件有 Cockpit manager and cockpit.

Cockpit Architect

由上圖可知會使用到兩種不同的account種類來管理,在OS layer你會需要<sid>admin來管理,由於大多次一次性的工作所以使用offline的方式來實行工作,有需要才傳送命令。且是透過位於該主機的host Agent在該台主機執行命令。另一種是連到DB instance,這個帳號就是位於DB layer的admin帳號,由於有監控的功能存在所有是不斷與DB進行溝通收集資料。

示意圖
進入某個DB instance的畫面

安裝cockpit

如何安裝cockpit於獨立的主機中呢?首先我們需要符合需要的最小OS及硬體標準:
硬體規格 : Intel-based or IBM power system, 16GB以上的記憶體。 HDD請隨意,但若管理很多DB及放比較久的資料當然是越大越好。
OS :
SUSE Linux Enterprise Server(SLES) / Red Hat Enterprise Linux(RHEL)
詳情可以參考,SAP notes 1944799/1984789/2009879/2000167.

哪怎麼安裝呢?安裝的過程跟一般安裝HANA DB是差不多的,使用HDBLCM來安裝。如下圖,我們在linux圖形介面看到 hdblcm.sh後開始終端機模式執行這一個scripts.(需要用root或有root權限的帳號來執行)這一個安裝程式從SAP網站下載下來後是一個SAR的壓縮檔案,需要使用如下命令解開
> SAPCAR -xvf SAPHANACOCKPIT##_$$.sar -manifest Singnature.smf
其中,manifest是create一個signature檔案,這在安裝時會用到, ##$$這些代表版本號。

開始執行hdb;cmgui.sh後,會問你如下資訊。都可以修改
hostname/install path/ SID/ instance number
後面要提輸入Master password (有兩個account會用到 system and Cockpit_admin users).之後開始安裝,安裝最後會出現URL網址。

剛剛提及, cockpit有兩個元件(cockpit manager and cockpit),安裝完成後也會兩個網址出現
cockpit manager : https://hostname:51023 (default port)
cockpit : https://hostname:51021 (default port)- (管理不同的DB instance port number會不一樣,也就是說每個 port number都專屬於一個DB instance)
如果之後cockpit upgrade後,網址可能會變。變動後的網址有兩個方式可以查詢。

Option 1 :
step 1: 使用<sid>admin帳號ssh 進入cockpit server
step 2 : cd <sapmnt>/<SID>/xs/bin (sapmnt通常會是/hana/shared)
step 3 : command : ./xs-admin-login
step 4: 使用 cockpit_admin這個帳號跟你剛剛輸入的master password
step 5: 輸入xs apps, 會列出一堆網址尋找 cookpit-admin-web-app(cockpit mamager) and cockpit-web-app(cockpit)這兩個字串前面帶的網址。如下示意圖

Option 2 : 檢查 installation / upgrade log files

安裝完cockpit之後接著要來做一些設定了,在哪之前我們看一下cockpit的主要功能(如下圖)

key function of Cockpit 2.0 components

Cockpit manager我們可以看到是連結資源用的,就是去註冊需要管理的DB跟給予該DB有哪些帳號可以管控。這比較像是DBA 主管先註冊後幫其團隊的成員給於不同DB的不同控管權限。cockpit就是不同的DB有著不同的管理者。DB explorer使用SQL語法來query關於該DB的 catalog object相關資訊(只有view的功能)功能如下

哪在cockpit admin註冊及分類好群組大概會是怎麼樣呢?可以參考以下示意圖

我們可以看到不同的的帳號管控著不同的DB。

哪通常是怎麼樣的程序呢?參考以下圖示

上圖中的程序,create user/group其中 cockpit user是存在於cockpit server中的跟DB user存在於每個DB中是不一樣的。每一個cockpit user至少需要有一種 role給予,如下圖。

其中 cockpit resource administrator 可以使用SSO(single sign-on),另外註冊資源的第三步”Technical user”需要特別提一下。

Technical User

cockpit不論是管控同一台主機的DB或遠端的,都需要在被管控的DB create “technical user”這一種account.目的是為了收集該DB的監控資料。
最小權限要有 整個 Catalog的讀取權限以及能夠select _SYS_STATISTICS schema.

手動create account如下
CREATE USER <username> PASSWORD < password> NO

FORCE_FIRST_PASSWORD_CHANGE;

GRANT CATALOG READ to <username>;

GRANT SELECT on SCHEMA _SYS_STATISTICS to <username>
若你要進一步對監控資料做更多的管理(不只讀取)就需要再給予權限
GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE on SCHEMA _SYS_TELEMETRY to <username>
technical user有了想相對應的權限之後cockpit才能收集資料。

以上的步驟都完成後,假設我們create兩個user管理不同的HANA system,架構會如同下圖這樣子

使用 cockpit 執行 backup and recovery作業

要執行這些作業在system DB and tenant DB需要有不一樣的權限,有一個種點。如果有權限對system DB做backup或recovery哪對 tenant DB也會有權限。參考下圖

圖一
圖二

圖一我們可以看到單獨對tenant DB做copy or recovery是不行的,我們必須透過system DB對其特定的tenant DB做copy or recovery的作業。

--

--

運用"雲端服務"加速企業的數位轉型願景
運用"雲端服務"加速企業的數位轉型願景

Written by 運用"雲端服務"加速企業的數位轉型願景

我們協助您駕馭名為"雲端運算"的怪獸,馴服它為您所用。諮詢請來信jason.kao@suros.com.tw. https://facebook.com/jason.kao.for.cloud

No responses yet