Oracle的奇葩设置之归档清理作业与rm -rf

简介:     虽然,Linux、Unix主机的定时任务crontab对于应用或数据库服务器的日常维护起到了很大的作用,但是,一旦设置不合理,就会给应用或数据库服务器的正常运行带来潜在的安全隐患。
    虽然,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
通过归档文件清理脚本的调整,该双击数据库因归档误删除的问题解决了。

目录
相关文章
|
SQL Oracle 关系型数据库
oracle11g SAP测试机归档日志暴增排查(二)
oracle11g SAP测试机归档日志暴增排查(二)
612 1
|
Oracle 关系型数据库 Shell
oracle11g SAP测试机归档日志暴增排查(一)
oracle11g SAP测试机归档日志暴增排查(一)
252 1
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的控制文件与归档日志文件
本文介绍了Oracle数据库中的控制文件和归档日志文件。控制文件记录了数据库的物理结构信息,如数据库名、数据文件和联机日志文件的位置等。为了保护数据库,通常会进行控制文件的多路复用。归档日志文件是联机重做日志文件的副本,用于记录数据库的变更历史。文章还提供了相关SQL语句,帮助查看和设置数据库的日志模式。
283 1
【赵渝强老师】Oracle的控制文件与归档日志文件
|
监控 Oracle 关系型数据库
Linux平台Oracle开机自启动设置
【11月更文挑战第8天】在 Linux 平台设置 Oracle 开机自启动有多种方法,本文以 CentOS 为例,介绍了两种常见方法:使用 `rc.local` 文件(较简单但不推荐用于生产环境)和使用 `systemd` 服务(推荐)。具体步骤包括编写启动脚本、赋予执行权限、配置 `rc.local` 或创建 `systemd` 服务单元文件,并设置开机自启动。通过 `systemd` 方式可以更好地与系统启动过程集成,更规范和可靠。
781 2
|
Oracle Ubuntu 关系型数据库
Linux平台Oracle开机自启动设置
【11月更文挑战第7天】本文介绍了 Linux 系统中服务管理机制,并详细说明了如何在使用 systemd 和 System V 的系统上设置 Oracle 数据库的开机自启动。包括创建服务单元文件、编辑启动脚本、设置开机自启动和启动服务的具体步骤。最后建议重启系统验证设置是否成功。
402 1
|
SQL Oracle 关系型数据库
"揭秘!一键解锁Oracle日志清理魔法,让海量归档日志无处遁形,守护数据库健康,告别磁盘空间告急噩梦!"
【8月更文挑战第9天】随着Oracle数据库在企业应用中的普及,归档日志管理对保持数据库健康至关重要。归档日志记录所有更改,对数据恢复极为重要,但也可能迅速占用大量磁盘空间影响性能。利用Oracle提供的RMAN工具,可通过编写Shell脚本来自动清理归档日志。脚本包括设置环境变量、连接数据库、检查和删除指定时间前的日志,并记录执行情况。通过Cron作业定时运行脚本,可有效管理日志文件,确保数据库稳定运行。
540 7
|
Oracle 关系型数据库 Unix
关系型数据库Oracle设置环境变量:
【7月更文挑战第22天】
1526 4
|
存储 SQL Oracle
关系型数据库Oracle归档日志备份
【7月更文挑战第19天】
340 5
|
SQL Oracle 关系型数据库
关系型数据库Oracle设置 RMAN 环境:
【7月更文挑战第25天】
266 2
|
SQL Oracle 关系型数据库
探索 Linux 命令 `db_archive`:Oracle 数据库归档日志的工具
探索 Linux 中的 `db_archive`,实际与 Oracle 数据库归档日志管理相关。在 Oracle 中,归档日志用于恢复,当在线重做日志满时自动归档。管理员可使用 SQL*Plus 查看归档模式,通过 `RMAN` 进行备份和恢复操作。管理归档日志需谨慎,避免数据丢失。了解归档管理对 Oracle 管理员至关重要,确保故障时能快速恢复数据库。

热门文章

最新文章

推荐镜像

更多