119 lines
5.7 KiB
Markdown
119 lines
5.7 KiB
Markdown
# SAP HANA Automation Scripts
|
|
|
|
This repository contains a collection of Bash and Batch scripts designed to automate various administrative and monitoring tasks for SAP HANA databases.
|
|
|
|
## Installation
|
|
|
|
To get started, you can use the `install.sh` script to download and set up the tools:
|
|
|
|
```sh
|
|
bash -c "$(curl -sSL https://install.technopunk.space)"
|
|
```
|
|
|
|
This command will download and execute the `install.sh` script, which provides an interactive menu to select and install individual tools.
|
|
|
|
## Tools Overview
|
|
|
|
Here's a breakdown of the scripts included in this repository:
|
|
|
|
### 1. `install.sh` (Script Downloader)
|
|
|
|
* **Purpose**: An interactive script to download and manage other scripts from a remote `packages.conf` file.
|
|
* **Features**:
|
|
* Presents a menu of available tools.
|
|
* Checks for updates to installed scripts.
|
|
* Shows a `diff` for configuration files before overwriting.
|
|
* Automatically makes downloaded shell scripts executable.
|
|
* **Usage**: Run the script and follow the on-screen prompts.
|
|
|
|
### 2. `packages.conf` (Configuration for `install.sh`)
|
|
|
|
* **Purpose**: Defines the list of available scripts, their versions, and their download URLs for `install.sh`.
|
|
* **Format**: An associative array `SCRIPT_PACKAGES` where keys are package names and values are `version|URL1 URL2...`.
|
|
|
|
### 3. `clean.sh` (File Cleaner)
|
|
|
|
* **Purpose**: Deletes files older than a specified retention period in given directories.
|
|
* **Usage**: `./clean.sh <retention_days>:<path> [<retention_days>:<path> ...]`
|
|
* **Example**: `./clean.sh 30:/var/log 7:/tmp/downloads`
|
|
|
|
### 4. `hanatool.sh` (SAP HANA Schema and Tenant Management Tool)
|
|
|
|
* **Purpose**: A versatile tool for exporting/importing HANA schemas and performing tenant backups.
|
|
* **Features**:
|
|
* Export a schema.
|
|
* Import a schema (with optional renaming).
|
|
* Perform a full tenant backup.
|
|
* Supports compression (`tar.gz`).
|
|
* Dry-run mode to preview commands.
|
|
* Ntfy.sh notifications for completion/failure.
|
|
* Custom `hdbsql` path.
|
|
* **Usage**:
|
|
* Schema: `./hanatool.sh [USER_KEY] export|import [SCHEMA_NAME] [PATH] [OPTIONS]`
|
|
* Schema Rename: `./hanatool.sh [USER_KEY] import-rename [SCHEMA_NAME] [NEW_SCHEMA_NAME] [PATH] [OPTIONS]`
|
|
* Tenant: `./hanatool.sh [USER_KEY] backup [PATH] [OPTIONS]`
|
|
* **Options**: `-t, --threads N`, `-c, --compress`, `-n, --dry-run`, `--ntfy <token>`, `--hdbsql <path>`, `-h, --help`
|
|
|
|
### 5. `hdb_keymanager.sh` (SAP HANA Secure User Store Key Manager)
|
|
|
|
* **Purpose**: An interactive script to manage SAP HANA `hdbuserstore` keys.
|
|
* **Features**:
|
|
* Create new secure keys with interactive prompts.
|
|
* Delete existing keys from a selection list.
|
|
* Test connections for existing keys.
|
|
* Includes rollback functionality if a newly created key fails to connect.
|
|
* **Usage**: `./hdb_keymanager.sh` (runs an interactive menu)
|
|
|
|
### 6. `update.bat` (Git Update Script for Windows)
|
|
|
|
* **Purpose**: A simple Windows Batch script to stage all changes, commit with a user-provided message, and push to a Git repository.
|
|
* **Usage**: `update.bat`
|
|
|
|
### 7. `aurora/aurora.sh` (HANA Aurora Refresh Script)
|
|
|
|
* **Purpose**: Automates the refresh of a "Aurora" schema (a copy of a production schema) for testing or development.
|
|
* **Configuration**: Uses `aurora/aurora.conf`.
|
|
* **Features**:
|
|
* Exports a source schema.
|
|
* Imports and renames it to an Aurora schema.
|
|
* Updates company name fields in the imported schema.
|
|
* Can drop existing Aurora schema before refresh.
|
|
* Grants privileges to a specified user.
|
|
* Runs post-import SQL scripts.
|
|
* **Usage**: The script runs automatically based on the settings in `aurora/aurora.conf`. It is typically scheduled via cron.
|
|
|
|
### 8. `aurora/aurora.conf` (Configuration for `aurora.sh`)
|
|
|
|
* **Purpose**: Configures the `aurora.sh` script, including source schema, target user, backup directory, `hdbsql` path, and post-import SQL scripts.
|
|
|
|
### 9. `backup/backup.sh` (SAP HANA Automated Backup Script)
|
|
|
|
* **Purpose**: Performs automated schema exports and/or tenant backups for SAP HANA databases, typically via cronjobs.
|
|
* **Configuration**: Uses `backup/backup.conf`.
|
|
* **Features**:
|
|
* Supports schema exports for multiple schemas.
|
|
* Performs full tenant data backups.
|
|
* Optionally backs up the SYSTEMDB.
|
|
* Supports compression for both schema exports and tenant backups.
|
|
* Configurable backup types (`schema`, `tenant`, `all`).
|
|
* **Usage**: `./backup/backup.sh` (all settings are read from `backup.conf`)
|
|
|
|
### 10. `backup/backup.conf` (Configuration for `backup.sh`)
|
|
|
|
* **Purpose**: Configures the `backup.sh` script, including `hdbsql` path, user keys, base backup directory, backup type, compression settings, and schema names to export.
|
|
|
|
### 11. `monitor/monitor.sh` (SAP HANA Monitoring Script)
|
|
|
|
* **Purpose**: Monitors SAP HANA processes, disk usage, and log segment states, sending ntfy.sh notifications for alerts.
|
|
* **Configuration**: Uses `monitor/monitor.conf`.
|
|
* **Features**:
|
|
* Checks if all HANA processes are running (GREEN status).
|
|
* Monitors disk usage for specified directories against a threshold.
|
|
* Analyzes HANA log segments for 'Truncated' and 'Free' percentages against thresholds.
|
|
* Sends detailed notifications via ntfy.sh.
|
|
* Uses a lock file to prevent multiple instances from running.
|
|
* **Usage**: `./monitor/monitor.sh` (all settings are read from `monitor.conf`)
|
|
|
|
### 12. `monitor/monitor.conf` (Configuration for `monitor.sh`)
|
|
|
|
* **Purpose**: Configures the `monitor.sh` script, including company name, ntfy.sh settings, HANA connection details, monitoring thresholds (disk usage, log segments), and directories to monitor. |