rman 每日备份

简介: --1. 查看归档文件位置,默认为 flash recovery areashow parameter db_recovery_file_dest--查看asm文件大小,注意oracle...
--1. 查看归档文件位置,默认为 flash recovery area
show parameter db_recovery_file_dest


--查看asm文件大小,注意oracle按磁盘比例分配数据,比如一个disk_group中的两个磁盘分别为10g,20g,现分配3g数据文件,则10g分配1g,20g的分配2g
select name,failgroup,path,total_mb,free_mb,free_mb/total_mb from v$asm_disk;


--2.更改flash recovery areas 配置
alter system set db_recovery_file_dest_size=4g scope=both;


--更改归档路径到本地,注意两个路径不能相同
alter system set log_archive_dest='location=/u01/arch1' scope=spfile;
alter system set log_archive_dest_1='location=/u01/arch2' scope=spfile;


--更改归档路径为默认,既把相应的路径设置为空
alter system set log_archive_dest='' scope=spfile;
alter system set log_archive_dest_1='' scope=spfile;
alter system set log_archive_dest_2='' scope=spfile;
--闪回恢复目录
select name,SPACE_LIMIT,SPACE_USED from v$recovery_file_dest;
--归档目录
SELECT * FROM v$archive_dest;


--3. 配置恢复目录
--创建恢复目录表空间和用户
create tablespace catalog_ts datafile size 50m;
create user catalog identified by catalog default tablespace catalog_ts;
grant recovery_catalog_owner to catalog;


select * from dba_sys_privs where grantee='RECOVERY_CATALOG_OWNER';


rman target / catalog catalog/catalog


--在rman中创建恢复目录
create catalog tablespace catalog_ts;


--drop catalog;
--drop catalog;
--create catalog tablespace catalog_ts;
--注册数据库
register database;


--4.rman配置参数更改


--控制文件自动备份
configure controlfile autobackup on;
--备份并行度为2
configure device type disk parallelism 2;
--打开备份优化,能不备就不备了
CONFIGURE BACKUP OPTIMIZATION ON;
--备份文件保存数设置为5份
configure retention policy to redundancy 5;
--备份文件保存天数设置为35天
configure retention policy to recovery window of 35 days;


--5.自动备份脚本


###周日0级备份,周四1级备份,其他2级备份


########################################################################
##   incremental_hot_database_backup.sh      ##
##   created by rudy gao                     ##
##        2014-06-03                         ##
#########################################################################
#!/bin/ksh 
export LANG=en_US
BACKUP_DATE=`date +%d`
#get absolute path of file
RMAN_LOG_FILE=`pwd`/`basename ${0}`_`date +%a`.out
TODAY=`date`
USER=`id|cut -d "(" -f2|cut -d ")" -f1`
echo "-----------------$TODAY-------------------">$RMAN_LOG_FILE
ORACLE_HOME=/u01/app/product/db
export ORACLE_HOME
RMAN=$ORACLE_HOME/bin/rman
export RMAN
ORACLE_SID=orcl
export ORACLE_SID
ORACLE_USER=oracle
export ORACLE_USER
 
echo "ORACLE_SID: $ORACLE_SID">>$RMAN_LOG_FILE
echo "ORACLE_HOME:$ORACLE_HOME">>$RMAN_LOG_FILE
echo "ORACLE_USER:$ORACLE_USER">>$RMAN_LOG_FILE
echo "==========================================">>$RMAN_LOG_FILE
echo "BACKUP DATABASE BEGIN......">>$RMAN_LOG_FILE
echo "                   ">>$RMAN_LOG_FILE
chmod 666 $RMAN_LOG_FILE
 
WEEK_DAILY=`date +%a`
 
case  "$WEEK_DAILY" in
       "Mon")
            BAK_LEVEL=2
            ;;
       "Tue")
            BAK_LEVEL=2
            ;;
       "Wed")
            BAK_LEVEL=2
            ;;
       "Thu")
            BAK_LEVEL=1
            ;;
       "Fri")
            BAK_LEVEL=2
            ;;
       "Sat")
            BAK_LEVEL=2
            ;;
       "Sun")
            BAK_LEVEL=0
            ;;
       "*")
            BAK_LEVEL=error
   ;;
esac
#BAK_LEVEL=0
export BAK_LEVEL=$BAK_LEVEL 
echo "Today is : $WEEK_DAILY  incremental level= $BAK_LEVEL">>$RMAN_LOG_FILE
 
RUN_STR="
BAK_LEVEL=$BAK_LEVEL
export BAK_LEVEL
ORACLE_HOME=$ORACLE_HOME
export ORACLE_HOME
ORACLE_SID=$ORACLE_SID
export ORACLE_SID
$RMAN TARGET / CATALOG catalog/catalog  msglog $RMAN_LOG_FILE << EOF
run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup  incremental level= $BAK_LEVEL  skip inaccessible filesperset 3 database tag='orcl_lev"$BAK_LEVEL"' ;
 
sql 'alter system archive log current';
 
backup archivelog all tag='back_arc' skip inaccessible  filesperset 3 not  backed up 1 times  delete input;
 
backup current controlfile tag='bak_ctlfile' ;
backup spfile tag='bak_spfile';
 
release channel c2;
release channel c1;
}
report obsolete; 
delete noprompt obsolete; 
crosscheck backup; 
delete noprompt expired backup;
list backup summary; 
resync catalog;
EOF
"
 # Initiate the command string 
 
if [ "$CUSER" = "root" ] 
then 
    echo "Root Command String: $RUN_STR" >> $RMAN_LOG_FILE     
    su - $ORACLE_USER -c "$RUN_STR" >> $RMAN_LOG_FILE 
    RSTAT=$? 
else 
    echo "User Command String: $RUN_STR" >> $RMAN_LOG_FILE     
    /bin/sh -c "$RUN_STR" >> $RMAN_LOG_FILE 
    RSTAT=$? 
fi 
 
# --------------------------------------------------------------------------- 
# Log the completion of this script. 
# --------------------------------------------------------------------------- 
if [ "$RSTAT" = "0" ] 
then 
    LOGMSG="ended successfully" 
else 
    LOGMSG="ended in error" 
fi 
 
echo >> $RMAN_LOG_FILE 
echo Script $0 >> $RMAN_LOG_FILE 
echo ==== $LOGMSG on `date` ==== >> $RMAN_LOG_FILE 
echo >> $RMAN_LOG_FILE 
 
exit $RSTAT 










--6.备份脚本设置
chmod u+x incremental_hotbackup.sh
crontab -e
00 1 * * * /u01/scripts/incremental_hotbackup.sh
crontab -l


--7.相关视图


--查看备份进度,注意备份时间超过6秒,才能在此视图中看到进度
 SELECT SID,OPNAME, SERIAL#, CONTEXT, SOFAR, TOTALWORK,
ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"
FROM V$SESSION_LONGOPS
WHERE OPNAME LIKE 'RMAN%'
AND OPNAME NOT LIKE '%aggregate%'
AND TOTALWORK != 0
AND SOFAR <> TOTALWORK
order by "%_COMPLETE"
desc






--备份结果的详细信息
--BACKUP_TYPE列标记该备份集中包含的文件类型,有下列几个值:
--L:表示包含归档重做日志文件;
--D:表示数据文件完全备份;
--I:表示增量备份。
SELECT * FROM V$BACKUP_SET; 


--当前创建的备份集信息
SELECT * FROM V$BACKUP_PIECE;


--记录了备份集中发现的损坏的数据块
SELECT * FROM v$backup_corruption;


--更多的备份信息,请查看v$backup_*视图




--8.如果有必要,删除oem中的备份job

目录
相关文章
|
9天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
7天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
本文讲解 Prompt 基本概念与 10 个优化技巧,结合学术分析 AI 应用的需求分析、设计方案,介绍 Spring AI 中 ChatClient 及 Advisors 的使用。
361 130
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
|
8天前
|
人工智能 Java API
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
本文介绍AI大模型的核心概念、分类及开发者学习路径,重点讲解如何选择与接入大模型。项目基于Spring Boot,使用阿里云灵积模型(Qwen-Plus),对比SDK、HTTP、Spring AI和LangChain4j四种接入方式,助力开发者高效构建AI应用。
350 122
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
|
20天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1338 8
|
2天前
|
存储 JSON 安全
加密和解密函数的具体实现代码
加密和解密函数的具体实现代码
190 136
|
6天前
|
监控 JavaScript Java
基于大模型技术的反欺诈知识问答系统
随着互联网与金融科技发展,网络欺诈频发,构建高效反欺诈平台成为迫切需求。本文基于Java、Vue.js、Spring Boot与MySQL技术,设计实现集欺诈识别、宣传教育、用户互动于一体的反欺诈系统,提升公众防范意识,助力企业合规与用户权益保护。
|
19天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1435 87
|
6天前
|
JavaScript Java 大数据
基于JavaWeb的销售管理系统设计系统
本系统基于Java、MySQL、Spring Boot与Vue.js技术,构建高效、可扩展的销售管理平台,实现客户、订单、数据可视化等全流程自动化管理,提升企业运营效率与决策能力。