热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

OracleDataGuard(RAC+DG)归档删除策略及脚本

DataGuard备库归档文件删除策略,此次备库的归档删除策略是在单机版的基础上进行升级,增加了日志功能,支持对2个节点RAC主库的

Data Guard 备库归档文件删除策略,此次备库的归档删除策略是在单机版的基础上进行升级,增加了日志功能,支持对2个节点RAC主库的

1、Data Guard 主库归档文件删除策略:

当我们设置:

RMAN>configure archivelog deletion policy to applied on standby;

在Maximum Availability和 Maximum Performance下,RMAN备份归档文件的时候,,加上delete input的时候,归档会被删除。

RMAN> configure archivelog deletion policy to none;

此时归档删除策略会被取消。

2、Data Guard 备库归档文件删除策略

此次备库的归档删除策略是在单机版的基础上进行升级,增加了日志功能,支持对2个节点RAC主库的归档文件在备库上删除的功能,可以作为计划任务执行也可以以交互的形式单独执行。

由于备库一般不执行rman备份计划,所以需要脚本删除这些归档日志文件。

[Oracle@ backup_scripts]$ vim delstarch.sh

export ORACLE_THREAD=$1
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=bdspoc
export SHELL_DIR=/u01/app/oracle/backup_scripts
export DATE=$(date +%Y-%m-%d\ %H:%M:%S)
if [ ! $ORACLE_THREAD ];then
read -p "Enter deleted thread[1|2]: "
DB_THREAD=$REPLY
else
DB_THREAD=$ORACLE_THREAD
fi
if [ $DB_THREAD == 1 ];then
del_seq=`ls /arch|grep ^1|cut -f2 -d_|sort -n |head -1`
echo $del_seq "is the minimum archlog sequence"
$ORACLE_HOME/bin/sqlplus -s "sys/***** as sysdba" <$SHELL_DIR/max_sn.log
set head off;
set feedback;
select max(sequence#) from v\$log_history where THREAD#=1;
exit;
eof
max_sn=`cat /u01/app/oracle/backup_scripts/max_sn.log|awk '{print $1}'|grep ^[0-9]`
#保留最近的20个归档,其他都删除
max_sn=`expr $max_sn - 20`
echo $max_sn "is the maximum archlog sequence"
while [ $del_seq -lt $max_sn ]
do
DATE=$(date +%Y%m%d_%H%M%S)
rm /arch/1_"$del_seq"_816281825.arc
DATE=$(date +%Y-%m-%d\ %H:%M:%S)
#由于log_archive_format 为%t_%s_%r.arc类型,%r为resetlog id
echo "$DATE" /arch/1_"$del_seq"_816281825.arc >> $SHELL_DIR/delarch.log
del_seq=`expr $del_seq + 1`
echo "$DATE" 1_"$del_seq"_816281825.arc
done
elif [ $DB_THREAD == 2 ];then
del_seq=`ls /arch|grep ^2|cut -f2 -d_|sort -n |head -1`
echo $del_seq "is the minimum archlog sequence"
$ORACLE_HOME/bin/sqlplus -s "sys/***** as sysdba" <$SHELL_DIR/max_sn.log
set head off;
set feedback;
select max(sequence#) from v\$log_history where upper(THREAD#)=2;
exit;
eof
max_sn=`cat /u01/app/oracle/backup_scripts/max_sn.log|awk '{print $1}'|grep ^[0-9]`
max_sn=`expr $max_sn - 20`
echo $max_sn "is the maximum archlog sequence"
while [ $del_seq -lt $max_sn ]
do
rm /arch/2_"$del_seq"_816281825.arc
DATE=$(date +%Y-%m-%d\ %H:%M:%S)
echo "$DATE" /arch/2_"$del_seq"_816281825.arc >> $SHELL_DIR/delarch.log
echo "$DATE" 2_"$del_seq"_816281825.arc has been deleted
del_seq=`expr $del_seq + 1`
done
else
echo "$DATE" There has a fault db_thread value! >> $SHELL_DIR/delarch.log
fi

可以交互式执行,例如:

[oracle@ backup_scripts]$ sh delstarch.sh
Enter deleted thread[1|2]: 1 --选择删除从哪个节点归档来的日志文件

也可以做成计划任务执行该脚本

[root@ ~]# crontab -l

0 1 * * * su - oracle -c /u01/app/oracle/backup_scripts/delstarch.sh 1

0 2 * * * su - oracle -c /u01/app/oracle/backup_scripts/delstarch.sh 2

每天1点执行1节点归档来的日志文件,2点执行2节点归档来的日志文件。

推荐阅读:

Oracle 11G RAC 修改归档模式

Oracle RMAN 清除归档日志

Oracle 11g Flashback Data Archive(闪回数据归档)


推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • 本文介绍了在MacOS系统上安装MySQL的步骤,并详细说明了如何设置MySQL服务的开机启动和如何修改MySQL的密码。通过下载MySQL的macos版本并按照提示一步一步安装,在系统偏好设置中可以找到MySQL的图标进行设置。同时,还介绍了通过终端命令来修改MySQL的密码的具体操作步骤。 ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • 本文详细介绍了使用 SQL Load 和 Excel 的 Concatenate 功能将数据导入 ORACLE 数据库的方法和步骤,同时介绍了使用 PL/SQL tools 将数据导入临时表的方法。此外,还提供了一个转链接,可参考更多相关内容。摘要共计XXX字。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • oracle恢复失败,RMAN数据库恢复失败解决一例
    问题:这是一个从RAC环境的数据库的RAMN备份恢复到一个单机数据库的操作。当恢复数据文件和恢复正常,但在open数据库时出报下面的错误。--rman备 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了在SQL中查询分组后每组行数的统计方法。通过使用count()函数和GROUP BY子句可以统计每组的行数,但是如何统计所有组的行数呢?本文提供了一种实现方法,并给出了相应的SQL查询语句。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 推荐一个ASP的内容管理框架(ASP Nuke)的优势和适用场景
    本文推荐了一个ASP的内容管理框架ASP Nuke,并介绍了其主要功能和特点。ASP Nuke支持文章新闻管理、投票、论坛等主要内容,并可以自定义模块。最新版本为0.8,虽然目前仍处于Alpha状态,但作者表示会继续更新完善。文章还分析了使用ASP的原因,包括ASP相对较小、易于部署和较简单等优势,适用于建立门户、网站的组织和小公司等场景。 ... [详细]
  • 本文介绍了如何在MySQL中将零值替换为先前的非零值的方法,包括使用内联查询和更新查询。同时还提供了选择正确值的方法。 ... [详细]
author-avatar
nuabolalalala4_135
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有