94 lines
6.2 KiB
Markdown
94 lines
6.2 KiB
Markdown
# 🚀 SAP HANA Automation Scripts
|
|
|
|
This repository offers a comprehensive collection of Bash and Batch scripts designed to streamline various administrative and monitoring tasks for SAP HANA databases. Automate your routine operations and enhance your database management efficiency!
|
|
|
|
## ⚙️ Installation
|
|
|
|
To quickly set up these powerful tools on your server, simply execute the following command:
|
|
|
|
```sh
|
|
bash -c "$(curl -sSL https://install.technopunk.space)"
|
|
```
|
|
|
|
This command will download and run our interactive `install.sh` script, guiding you through the selection and installation of individual tools. No manual downloads required!
|
|
|
|
## 🛠️ Tools Overview
|
|
|
|
Here's a detailed look at the automation scripts available in this repository:
|
|
|
|
### 1. `cleaner.sh` (File Cleaner) 🧹
|
|
|
|
* **Purpose**: This script efficiently deletes files older than a specified retention period from given directories. It's designed to help manage disk space by automatically removing aged files.
|
|
* **Usage**: `./cleaner.sh <retention_days>:<path> [<retention_days>:<path> ...]`
|
|
* **Example**: `./cleaner.sh 30:/var/log 7:/tmp/downloads`
|
|
|
|
### 2. `hanatool.sh` (SAP HANA Schema & Tenant Management) 🗄️
|
|
|
|
* **Purpose**: A versatile command-line utility for SAP HANA, enabling quick exports and imports of schemas, as well as full tenant backups. It supports various options for flexible database management.
|
|
* **Features**:
|
|
* Export/Import schemas (with optional renaming).
|
|
* Perform full tenant backups.
|
|
* Supports `tar.gz` compression for efficient storage.
|
|
* Dry-run mode for command preview without execution.
|
|
* Ntfy.sh notifications for task completion/failure alerts.
|
|
* Custom `hdbsql` path support for flexible environments.
|
|
* Option to replace existing objects during import.
|
|
* **Usage**:
|
|
* Schema Export/Import: `./hanatool.sh [USER_KEY] export|import [SCHEMA_NAME] [PATH] [OPTIONS]`
|
|
* Schema Rename Import: `./hanatool.sh [USER_KEY] import-rename [SCHEMA_NAME] [NEW_SCHEMA_NAME] [PATH] [OPTIONS]`
|
|
* Tenant Backup: `./hanatool.sh [USER_KEY] backup [PATH] [OPTIONS]`
|
|
* **Options**: `-t, --threads N`, `-c, --compress`, `-n, --dry-run`, `--ntfy <token>`, `--replace`, `--hdbsql <path>`, `-h, --help`
|
|
|
|
### 3. `keymanager.sh` (SAP HANA Secure User Store Key Manager) 🔑
|
|
|
|
* **Purpose**: An interactive script designed to simplify the creation, deletion, and testing of SAP HANA `hdbuserstore` keys. It includes a rollback mechanism for failed key creations to ensure system integrity.
|
|
* **Features**:
|
|
* Interactive menu for key management.
|
|
* Create new secure keys with guided prompts for host, instance, tenant, and user.
|
|
* Delete existing keys from a dynamic selection list.
|
|
* Test connections for existing keys to verify functionality.
|
|
* Automatic rollback (deletion) of newly created keys if connection test fails.
|
|
* **Usage**: `./keymanager.sh` (runs an interactive menu)
|
|
|
|
### 4. `aurora/` (HANA Aurora Refresh Suite) 🌅
|
|
|
|
* **Purpose**: This suite automates the refresh of "Aurora" schemas, which are copies of production schemas used for testing or development. It ensures these environments are up-to-date with production data.
|
|
* **Components**:
|
|
* `aurora.sh`: The main script that orchestrates the refresh process.
|
|
* `aurora.conf`: Configuration file for `aurora.sh`, defining source schema, target user, paths, and post-import actions.
|
|
* **Features**:
|
|
* Drops existing Aurora schema before refresh (optional).
|
|
* Exports a specified source schema from production.
|
|
* Imports the exported data and renames it to the Aurora schema.
|
|
* Updates company name fields within the newly imported schema.
|
|
* Grants necessary privileges to a designated user on the Aurora schema.
|
|
* Executes custom post-import SQL scripts for further data manipulation or setup.
|
|
* **Usage**: Designed for automated execution, typically scheduled via cron, with all settings managed in `aurora/aurora.conf`.
|
|
|
|
### 6. `backup/` (SAP HANA Automated Backup Suite) 💾
|
|
|
|
* **Purpose**: This suite provides automated solutions for performing schema exports and/or full tenant backups for SAP HANA databases. It's ideal for setting up reliable, scheduled backup routines via cronjobs.
|
|
* **Components**:
|
|
* `backup.sh`: The core script that executes the backup operations.
|
|
* `backup.conf`: Configuration file for `backup.sh`, specifying `hdbsql` path, user keys, backup directories, types, compression settings, and schemas to export.
|
|
* **Features**:
|
|
* Supports various backup types: schema export, tenant data backup, or both.
|
|
* Optionally backs up the SYSTEMDB.
|
|
* Configurable compression for both schema exports and tenant backups to save disk space.
|
|
* Uses `hdbuserstore` keys for secure database connections.
|
|
* **Usage**: `./backup/backup.sh` (all operational parameters are read from `backup/backup.conf`).
|
|
|
|
### 7. `monitor/` (SAP HANA Monitoring Suite) 📊
|
|
|
|
* **Purpose**: This suite continuously monitors critical aspects of SAP HANA databases, including process status, disk usage, and log segment states. It sends proactive alerts via ntfy.sh when predefined thresholds are exceeded.
|
|
* **Components**:
|
|
* `monitor.sh`: The main script that performs the monitoring checks.
|
|
* `monitor.conf`: Configuration file for `monitor.sh`, defining company name, ntfy.sh settings, HANA connection details, monitoring thresholds (disk usage, log segments, backup age), and directories to monitor.
|
|
* **Features**:
|
|
* Checks if all SAP HANA processes are running with a 'GREEN' status.
|
|
* Monitors disk usage for specified directories against a configurable percentage threshold.
|
|
* Analyzes HANA log segments for 'Truncated' and 'Free' percentages, alerting if they fall outside acceptable ranges.
|
|
* Monitors the age of the last successful complete data backup, alerting if it exceeds a defined time threshold.
|
|
* Sends detailed notifications via ntfy.sh for critical alerts and resolutions.
|
|
* Utilizes a lock file to prevent multiple instances from running concurrently.
|
|
* **Usage**: `./monitor/monitor.sh` (all monitoring parameters and thresholds are read from `monitor/monitor.conf`). |