SAP HANA 数据库自动完整备份脚本

news/2025/3/14 11:48:12/文章来源:https://www.cnblogs.com/oradba/p/18771807

    SAP HANA 数据库自动完整备份脚本:

#!/bin/bash
# SAP HANA 全量备份脚本(含日志动态命名与目录管理)
# 时间:2025.03.06

# 全局配置
HDB_USERSTORE_KEY="backup"  #backup key 对应systemdb system 用户权限
BACKUP_BASE_DIR="/backup/hana"
RETENTION_DAYS=7
DB_LIST=("SYSTEMDB" "PRD" "POP")

# 生成带时间戳的日志文件名
LOG_TIMESTAMP=$(date +%Y%m%d_%H%M%S)
LOG_DIR="${BACKUP_BASE_DIR}/logs"
LOG_FILE="${LOG_DIR}/backup_${LOG_TIMESTAMP}.log"

# 创建目录
mkdir -p ${BACKUP_BASE_DIR}/{logs,${DB_LIST[@]}} || exit 1

# 日志函数
log() {
echo "[$(date +'%Y-%m-%d %H:%M:%S')] $1" >> $LOG_FILE
}

# 主流程
log ">>>>>> 备份任务启动 <<<<<<"
for DB_NAME in "${DB_LIST[@]}"; do
# 生成备份文件名(含时间戳)
BACKUP_TIMESTAMP=$(date +%Y%m%d%H%M%S)
BACKUP_FILE="${DB_NAME}_${BACKUP_TIMESTAMP}"
BACKUP_PATH="${BACKUP_BASE_DIR}/${DB_NAME}/${BACKUP_FILE}"

# 执行备份命令
log "开始备份数据库: ${DB_NAME}"
hdbsql -U $HDB_USERSTORE_KEY "BACKUP DATA FOR $DB_NAME USING FILE ('$BACKUP_PATH')" >> $LOG_FILE 2>&1

# 结果检查
if [ $? -eq 0 ]; then
log "备份成功 → ${BACKUP_PATH}"
else
log "错误:${DB_NAME} 备份失败!"
exit 1
fi

# 清理旧备份文件
log "清理 ${DB_NAME} 的过期备份..."
find ${BACKUP_BASE_DIR}/${DB_NAME} -name "*" -mtime +${RETENTION_DAYS} -delete >> $LOG_FILE 2>&1
done

# 清理旧日志文件(保留7天)
log "清理过期日志..."
find ${LOG_DIR} -name "*.log" -mtime +${RETENTION_DAYS} -delete >> $LOG_FILE 2>&1

log ">>>>>> 任务完成 <<<<<<\n"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/898586.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拆解米尔RK3576开发板:瑞芯微第二代AIoT平台如何实现高性价比边缘计算?

文章来源:硬件笔记本最近,AI的风刮得是真猛啊!各种AI工具层出不穷,仿佛一夜之间,人工智能就从科幻走进了现实。作为一名硬件工程师,我自然也按捺不住内心的激动,琢磨着怎么把AI和硬件结合起来,搞点有意思的项目。 这不,机会来了!刚好看到国内知名主板厂商米尔电子新推…

博客迁移~

感谢还在关注本博客的各位朋友 (▽) 我新开了一个博客站点,组织内容跟当前站点的风格不同一样,采用知识花园的形式,内容基本上是我 Obsidian 笔记中挑选出比较完善的部分进行发布,同样也会有像本博客一样的文章,今后大部分内容都会发布在新站点,当然也会适当同步一些文章…

安川机器人DX100示教器维修常见故障合集

在现代工业生产中,安川机器人发挥着极为重要的作用。然而,如同任何设备一样,它们也会遭遇故障,尤其是DX100示教器部分。安川机器人维修、YASKAWA机器人维修(YASKAWA是安川的英文品牌名)、工业机器人维修都是保障生产持续进行的关键环节。对安川机器人示教器维修中的常见故…

SpringSecurity5(5-自定义短信、手机验证码)

本文介绍如何在 Spring Security 中自定义验证码和短信验证码校验,包括生成验证码、存储与校验逻辑、过滤器配置及适配认证流程,确保用户安全登录,同时提升灵活性与可扩展性。适用于登录安全加固及自定义认证需求。图形验证码 SpringSecurity 实现的用户名、密码登录是在 Us…

NineData社区版抢先体验,获取无人机、双肩包、充电宝等周边福利

NineData社区版现已正式上线,支持通过 Docker 部署至本地,保障数据安全与操作留存在本地。为庆祝发布,NineData 开启技术体验官征文活动,邀请开发者分享安装、使用及优化建议等经验。活动设置丰厚奖品,包括大疆无人机、高级旅行箱等,并提供多种加分机制,如真实场景分享和…

EtherCAT转Profinet揭秘网关模块促成西门子PLC与伺服电机通讯的协议转换秘诀案例​

一. 案例背景 西门子1200PLC通过捷米特JM-ECTM-PN(EtherCAT转ProfiNet)网关将松下伺服电机(包括不限于型号MHMFO22D1U2M)或EtherCAT协议的其它设备或连接到ProfiNetPLC上,并在正常运行中支持EtherCAT协议。本产品可作为EtherCAT主站,做为西门子S7-1200系列PLC的从站并在监…

vcftools根据个体id提取数据和删除数据

001、vcftools根据个体id提取数据[b20223040323@admin2 test5]$ ls id.list outcome.vcf [b20223040323@admin2 test5]$ cat id.list GMM5 GMM6 GMM7 GMM8 [b20223040323@admin2 test5]$ grep "^#" outcome.vcf | tail -n 1 | cut -f 10- GMM1 GMM2 GMM3 G…

EtherCAT转Profinet网关助力协议转换推动西门子PLC与伺服电机通讯进程案例​

一、项目背景 在自动化生产系统中,经常会遇到不同品牌设备之间需要进行数据交互和协同工作的情况。本案例中,需要实现西门子1200PLC与松下A6B系列伺服驱动器的通讯,以实现对伺服电机的精确控制。由于两者采用不同的通讯协议,直接通讯存在困难,因此引入JM-ECTM-PN协议转换网…

No.64 Vue---vue引入第三方

一、Swiper官网: https://www.swiper.com.cn/ https://swiperjs.com/vue 安装swiper: 创建一个组件:MySwiper.vue<template><div class="hello"></div><swiper><swiper-slide><img src="D:\JS_proj\ES6Module116\VueDemo\vu…

魔方求解器程序(层先法,java版本)

实现了一个三阶魔方的层先法求解程序:https://github.com/davelet/java-puzzle-resolver 欢迎试用。用法 1. 随机试用 不关注起始状态的话可以用程序的随机拧乱工具打乱然后复原:private Cube cube;private CubeSolver cubeSolver;private CubeShuffler cubeShuffler;@Before…

8款热门CRM系统盘点!优缺点分析,帮你选对适合的!

现在做生意,客户就是金饭碗,谁能把客户维护好,谁就能在市场上占一席之地。 可是,客户多了,信息杂了,跟进不到位、管理混乱、流失率高……这些问题有没有让你头大?所以,一款好用的CRM(客户管理系统)真的太重要了!小编已经整理好的CRM系统模板,自取>>https://s…

微信内H5页面点击链接打开微信小程序

由于公司产品需求,需要在H5页面内打开小程序,查了微信文档解决了问题,解决如下: 1.打开小程序公众平台>账号设置>隐私与安全>配置明文scheme拉起此小程序 配置好后,在H5页面跳转到小程序 window.location.href = weixin://dl/business/?appid=*APPID*&path=…