oracle-rman全备脚本-level0

news/2025/1/30 19:48:30/文章来源:https://www.cnblogs.com/anshenwang/p/18695300

#!/bin/bash

# 检查是否以 root 用户身份运行
if [ "$EUID" -ne 0 ]; then
echo "Please run as root"
exit
fi

# 配置参数
ORACLE_SID=db19c # 替换为你的数据库实例名称
ORACLE_HOME=/u01/app/oracle/product/19.10.0/db_home/db_1 # Oracle Home 路径
BACKUP_DIR=/data/ora_backup # 备份文件存放目录
TIMESTAMP=$(date +%Y%m%d_%H%M%S) # 时间戳
LOG_FILE=${BACKUP_DIR}/oracle_backup_0_${TIMESTAMP}.log # 日志文件路径

# 切换到 oracle 用户并执行备份命令
su - oracle -c "
export ORACLE_SID=${ORACLE_SID}
export ORACLE_HOME=${ORACLE_HOME}
export PATH=\$ORACLE_HOME/bin:\$PATH

# 创建备份目录(如果不存在)
mkdir -p ${BACKUP_DIR}

# 启动 RMAN 并执行备份
rman target / <<EOR > ${LOG_FILE} 2>&1
RUN {
# 设置备份保留策略(可选)
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

# 删除过期备份(可选)
CROSSCHECK ARCHIVELOG ALL;
DELETE NOPROMPT OBSOLETE;

# 分配通道
ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
ALLOCATE CHANNEL c2 DEVICE TYPE DISK;
ALLOCATE CHANNEL c3 DEVICE TYPE DISK;
ALLOCATE CHANNEL c4 DEVICE TYPE DISK;

# 备份数据库
#BACKUP DATABASE TAG 'FullDatabaseBackup' FORMAT '${BACKUP_DIR}/db_full_%d_%T_%U.bak';
# 备份数据库(Level 0 全量备份)
BACKUP INCREMENTAL LEVEL 0 DATABASE TAG 'FullDatabaseBackup' FORMAT '${BACKUP_DIR}/db_full_level_0_%d_%T_%U.bak';

# 归档当前日志以及备份
sql 'alter system archive log current ';
BACKUP ARCHIVELOG ALL TAG 'ArchiveLogBackup' FORMAT '${BACKUP_DIR}/arch_%d_%T_%U.bak';
###备份过的归档日志不再备份
#BACKUP ARCHIVELOG ALL NOT BACKED UP 1 times TAG 'ArchiveLogBackup' FORMAT '${BACKUP_DIR}/arch_%d_%T_%U.bak';

# 备份控制文件
BACKUP CURRENT CONTROLFILE TAG 'ControlFileBackup' FORMAT '${BACKUP_DIR}/crt_%d_%T_%U.bak';

# 删除已备份的归档日志(可选)
DELETE NOPROMPT ARCHIVELOG ALL BACKED UP 1 TIMES TO DEVICE TYPE DISK;
#删除3天前
#delete noprompt archivelog all completed before 'sysdate-3';
# 释放通道
RELEASE CHANNEL c1;
RELEASE CHANNEL c2;
RELEASE CHANNEL c3;
RELEASE CHANNEL c4;
}
EOR

# 检查备份是否成功
if grep -q 'Finished backup' ${LOG_FILE}; then
echo 'Backup completed successfully. Log file: ${LOG_FILE}'
else
echo 'Backup failed. Check log file for details: ${LOG_FILE}'
fi
"

 

# 删除超过7天的备份文件
find ${BACKUP_DIR} -type f -mtime +7 -exec rm -f {} \;

 

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

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

相关文章

java中的HashSet与 == 和 equals的区别

什么是HashSet 在 Java 中,HashSet 是一个基于哈希表实现的集合类,它实现了 Set 接口 HashSet 的主要特点是:1,2 HashSet 的主要特点是 1,集合中的数据不能够重复 2,存储的数据是无序的(元素的存储顺序与插入顺序无关) 3,允许 null 值: 可以存储一个 null 元素(感觉这个不算)…

java中的HashSet

什么是HashSet 在 Java 中,HashSet 是一个基于哈希表实现的集合类,它实现了 Set 接口 HashSet 的主要特点是:1,2 HashSet 的主要特点是 1,集合中的数据不能够重复 2,存储的数据是无序的(元素的存储顺序与插入顺序无关) 3,允许 null 值: 可以存储一个 null 元素(感觉这个不算)…

记录本地部署自己的DeepSeek 大模型AI

准备工具Ollama:用于简化大型语言模型(LLM)的本地部署和使用,可以同时支持多个大模型,开发者能够方便地在本地环境中运行和测试不同的语言模型,简单的说就是相当于一个容器。官网地址:https://ollama.com/ChatBox AI:是一款用于接入各种大模型的客户端,使在大模型AI时…

CF999

A link首先,每次操作(第一次除外)之前\(s\)一定是一个奇数,那么我们要再加一个奇数才能让它变为偶数分数加一。 那么就是说操作过至少一次后,有几个奇数就有几分。 那么如果有至少一个偶数,那么第一次用偶数可以得分,后面再用奇数可以得分,偶数的不了分,最终得分就是奇…

1.30

1.30 Maze - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)从一个空格走cnt - k个点并标记,然后将没有标记的点设为A即可import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputS…

java中jdk的下载地址

java中jdk的下载地址 https://www.oracle.com/java/technologies/downloads/#java17-windows作者:流年少年 出处:https://www.cnblogs.com/ishoulgodo/ 想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!如果觉得这篇文章…

对国外某网站的SQL注入实战

对国外某网站的SQL注入实战 记录一次某功能点遇到SQL注入漏洞尝试丢到SQLMAP运行虽然成功,但是有些SQL注入类型存在但SQLMAP未识别出来,随后便使用手工注入的方式获得数据库相关数据的随笔 功能点某网站存在URL如下的GET形公告展示点: /xxx/index.php?mod=detail&_id=23…

@所有Mac用户 刺客信条系列登陆Mac平台!

🌟【历史性的跨越】🌟 在无数Mac游戏爱好者的热切期盼中,终于将风靡全球的3A级巨作——刺客信条🌟【历史性的跨越】🌟 在无数Mac游戏爱好者的热切期盼中,终于将风靡全球的3A级巨作——刺客信条系列,成功移植至MacOS系统!这意味着,无论是穿梭于中世纪欧洲的隐秘巷弄…

五、USB PD协议层之控制消息

当Message Header中的Number of Data Objects字段设置为0,控制消息仅由一个Message Header和一个CRC组成。协议层发起控制消息(如,Accept Message, Reject Message 等)。 控制消息类型在消息头的Message Type字段(位4…0)中指定,并汇总在下表中。1、GoodCRC Message Good…

htb support walkthrough window 域渗透

nmap udp端口 nmap -sU 10.10.11.174 Starting Nmap 7.95 ( https://nmap.org ) at 2025-01-30 01:17 UTC Nmap scan report for 10.10.11.174 Host is up (0.092s latency). Not shown: 996 open|filtered udp ports (no-response) PORT STATE SERVICE 53/udp open domai…

01 设计测试用例

设计测试用例的万能思路 针对某个物品/功能进行测试。 万能思路:功能测设 + 界面测试 + 性能测试 + 兼容性测试 + 易用性测试 + 安全测试。总结: 功能测试: 水杯:装水、喝水... 注册场景:注册 + 登录 ​ 想象日常使用中的注册场景有哪些功能。 界面测试: 非软件:颜色…

C++ 实现一个vector

C++如何写一个带有allocator的vector 在STL中,容器一般都有一个allocator模板参数。 allocator用于获取/释放内存及构造/析构内存中元素的分配器。类型必须满足分配器 (Allocator) 。如果 Allocator::value_type 与 T 不同,那么行为未定义(C++20 前)程序非良构(C++20 起)。 模…