博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle的奇葩设置之归档清理作业与rm -rf
阅读量:7096 次
发布时间:2019-06-28

本文共 1351 字,大约阅读时间需要 4 分钟。

    虽然,Linux、Unix主机的定时任务crontab对于应用或数据库服务器的日常维护起到了很大的作用,但是,一旦设置不合理,就会给应用或数据库服务器的正常运行带来潜在的安全隐患。
    在联通有这么奇葩的设置,那个超级不合理的设置是关于oracle数据库归档清理的。主机维护人员为了减轻日常维护负担,将清理任务交给了crontab,放了一个清理脚本在数据库服务器上。令谁都想不到的是脚本清理归档的命令是:rm -rf ....。由于数据库服务器存储空间压力很大,需要该脚本没30分钟运行一次,来释放空间。由于数据库归档进程会不定时运行,有与该脚本耦合的可能,结果还真的发生了。导致数据库正在归档的归档文件被rm -rf强制删除掉了,因而数据库无法完成归档,告警日志一直报错如下:
Wed Jul  9 22:30:46 2014
Errors in file /oracle/admin/cdma/bdump/cdma_arc1_25303.trc:
ORA-19510: 无法设置 984377 区块的大小给文件 "/oradata2/cdma/archivelog/1_2302874_696954518.dbf" (块大小 = 512)
ORA-27037: 无法获得文件状态
    经过查找, /oradata2/cdma/archivelog/1_2302874_696954518.dbf已经不存在了。更严重的后果是,由于正在归档的归档被删除还导致双击异常而发生切换,而且这种由于归档误删除发生双击切换还不止一次。从操作系统的messages文件有印证,如上述告警报错,只要是归档进程正在归档还没完成,而rm -rf定时任务删除了正在归档的文件,都是半点发生的。然后solaris双击软件日志文件检测数据库核心进程异常,就切换oracle数据库到另外一个节点运行,但是数据库到对端运行还是不能完成归档,又发生切换。
    后来,通过与主机、应用协商采用rman自动删除归档来避免正在归档的文件被误删除,具体的命令如下:
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=/oracle/app/oracle/product/10.2.0.5/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl105
rman target / nocatalog log /tmp/rman_delete_arch.log append  
allocate channel c1 type disk;

allocate channel c2 type disk;

allocate channel c3 type disk;

sql 'alter system archive log current';

crosscheck backup;

crosscheck archivelog all;

delete noprompt obsolete;

delete noprompt archivelog all;

EOF
通过归档文件清理脚本的调整,该双击数据库因归档误删除的问题解决了。

转载地址:http://rzoql.baihongyu.com/

你可能感兴趣的文章
vue-devtools
查看>>
使用phpmyadmin导入SQL数据报错:#1062 - Duplicate entry '...
查看>>
Java Script 用对象属性模拟map 实现去重算法
查看>>
如何给按钮加上链接跳转功能
查看>>
ORACLE PL/SQL编程 游标
查看>>
micro:bit 的完整硬件方案
查看>>
bash shell快捷键
查看>>
Android判断是平板还是手机
查看>>
Nginx 499错误
查看>>
Spring Boot实践--集成WebServices基础开发
查看>>
使用history.back(-1)的问题
查看>>
ubuntu 重设crontab -e的默认编辑器
查看>>
[unity3d]unity中C#委托的应用
查看>>
我的友情链接
查看>>
gson 处理泛型
查看>>
pssh 自动化运维
查看>>
主机上的vsphere ha 代理无法访问其它主机的部分管理网络地址
查看>>
网站在架构时要考虑的事情
查看>>
MySQL修改root密码的多种方法
查看>>
android中WebView小结
查看>>