Menggunakan SAP HANACleaner adalah salah satu tool untuk mengatasi data backup dan log yang makin membengkak.
SAP Note 2399996 menjelaskan bagaimana cara membersihkan backup catalog, trace files dan lain lain.
Beberapa hal yang ingin disampaikan :
- Ini Python Script dan dapat didownload di https://github.com/chriselswede/hanacleaner

- Harus dijalankan menggunakan user adm di Server SAP HANA nya
- Python nya diinstall di server SAP HANA dan ada dalam PATH
- Python ini terhubung melalui host, port dan DB user yang didaftarkan dalam hdbuserstore
- DB user membutuhkan privileges yang tepat
Skenario :
Nama SID : ch0
Nama user : ch0adm
Nama Host : serperdep
- Dengan skenario di atas, maka kita harus menggunakan user ch0adm. Jika masih menggunakan root, silahkan change user dahulu dengan perintah
su - ch0adm
- Jika sudah change user, untuk memastikannya bisa dicheck dengan perintah:
whoami
- Sekarang buat dulu Host, Port dan DB user. Misalnya kita setting sebagai berikut :
Host : serperdep
KEY : HANACLEANER1KEY
DB User : HANACLEANER1
Password: KataKunci234
Instance Number : 25
- Format perintahnya adalah sebagai berikut :
hdbuserstore SET NAMAKEY namahost:3nn13,namahost:3nn15 DBUSER Passwordyangdiinginkan
nn = instance number
- Perintahnya adalah sebagai berikut :
hdbuserstore SET HANACLEANER1KEY serperdep:32513,serperdep:32515 HANACLEANER1 KataKunci234
- Untuk melihat Host, Port dan DB user yang ada ada bisa menggunakan perintah
hdbuserstore LIST
DATA FILE : /usr/sap/ch0/home/.hdb/serperdep/SSFS_HDB.DAT
KEY FILE : /usr/sap/ch0/home/.hdb/serperdep/SSFS_HDB.KEY
KEY HANACLEANER1KEY
ENV : serperdep:32513,serperdep:32515
USER: HANACLEANER1
- Sekarang membuat user di Server Database SAP HANA
- Bisa lakukan dengan SQL Console di HANAStudio

- Membuat User : HANACLEANER1, perintahnya adalah sebagai berikut :
CREATE USER HANACLEANER1 PASSWORD KataKunci234 NO FORCE_FIRST_PASSWORD_CHANGE;
- Atur agar Password nya tidak pernah expired. Hal ini dipakai untuk “Technical User” saja, dalam kasus kita kali ini, user dipakai untuk maintain file saja.
ALTER USER HANACLEANER1 DISABLE PASSWORD LIFETIME;
- Berikan permission untuk beberapa object
GRANT SELECT , DELETE ON _SYS_STATISTICS.HOST_OBJECT_LOCK_STATISTICS_BASE TO HANACLEANER1;
GRANT SELECT , DELETE ON _SYS_STATISTICS.STATISTICS_ALERTS_BASE TO HANACLEANER1;
GRANT audit admin , audit operator, backup admin, catalog read, log admin, monitor admin, resource admin, trace admin to HANACLEANER1;
- Sekarang kita coba dengan perintah :
python hanacleaner.py -bd 200 -be 5 -br true -k HANACLEANER1KEY
Hasilnya akan seperti di bawah ini:
Will now check most used memory in the file systems. If it hangs there is an issue with df -h, then see if the -fs flag helps.
The most used filesystem is using
83%
***********************************************************
2021-04-06 15:05:47
hanacleaner as thqadm by HANACLEANER1KEY on THQ(25) with
hanacleaner.py -bd 200 -be 5 -br true -k HANACLEANER1KEY
Cleanup Statements will be executed (-es is default true)
Before using HANACleaner read the disclaimer!
python hanacleaner.py --disclaimer
***********************************************************
0 data backup entries and 0 log backup entries were removed from the backup catalog
(Cleaning traces was not done since -tc and -tf were both -1 (or not specified))
(Cleaning dumps was not done since -dr was -1 (or not specified))
(Cleaning of general files was not done since -gr was -1 (or not specified))
(Compression of the backup logs was not done since -zb was negative (or not specified) or this is not more supported for your HANA Version)
(Cleaning of the alerts was not done since -ar was negative (or not specified))
(Cleaning of unknown object locks entries was not done since -kr was negative (or not specified))
(Cleaning of the object history was not done since -om was negative (or not specified))
(Reclaim of free logsements was not done since -lr was negative (or not specified))
(Cleaning of events was not done since -eh and -eu were negative (or not specified))
(Cleaning audit logs was not done since -ur was -1 (or not specified))
(Cleaning of pending emails was not done since -pe was -1 (or not specified))
(Defragmentation was not done since -fl was negative (or not specified))
(Reclaim of row store containers was not done since -rc was negative (or not specified))
(Compression re-optimization was not done since at least one flag in each of the three compression flag groups was negative (or not specified))
(Creation of optimization statistics for virtual tables was not done since -vs was false (or not specified))
(Refresh of optimization statistics for virtual tables was not done since -vnr was not more than 0 (or not specified))
(Cleaning of the hanacleaner logs was not done since -or was negative (or not specified))
- Terlihat tidak ada error. Untuk memudahkan melihat konfigurasi, biasanya saya buat sebuah file yang isinya parameter-parameter yang diinginkan. Untuk contoh kali ini kita buat sebuah file dengan nama konfigurasi.txt yang isinya adalah sebagai berikut :
-bd 200
-be 5
-br true
-k HANACLEANERTHQKEY
- Kemudian cara memanggilnya adalah sebagai berikut :
python hanacleaner.py -ff konfigurasi.txt