OS: Linux Advanced Server 2.1
DB: Oracle 8.1.7.0 大致思路:
1. 关数据前先清掉无用的SESSION(这段脚本我写好了)
2. 正常关闭数据库(SHUTDOWN NORMAL)
3. 如果数据库不能正常关闭,从日志文件尾部寻找特征串
"ALTER DATABASE CLOSE NORMAL"
如果发现存在,则进行冷备份,否则不进行操作. 各位高手帮我看看,或者提供一个好的Solution. 附件:
1.Killsession.sql
create or replace procedure KillSess
isi_sid number;
i_serial number; cursor cur_sess is
select sid, serial#
from v$session
where status = 'INACTIVE'
and type!= 'BACKGROUD';
Begin
open cur_sess;
loop
fetch cur_sess into i_sid,i_serial;
if cur_sess%notfound then
exit;
end if;
execute immediate 'alter system kill session ''' || i_sid ||','
|| i_serial ||'''';
end loop;
close cur_sess;
End;
/ 2. autoshut.sql
-- This script file is an assistant file with CronTab
-- function: kill all non-background and inactive processesexecute killsess;
alter system checkpoint;
shutdown normal;
exit;
3. nightbak.sh
# crontab:
# 30 21 * * 1-5 sh /vld/dbbackup/nightbak.sh
cat /dbbackup/cronjobs/syspw |sqlplus sys @autoshut.sql
tail alert_ora817.log |grep 'Completed: ALTER DATABASE CLOSE NORMAL' 1>temp
if test -s temp;
then
# echo 'found'
cd /oracle/ora817/oradata
cp *.dbf ./backup
cp *.ctl /backup/ctlfile
else
# echo 'not found'
fi
解决方案 »
- 急求oracle索引失效问题 望指教
- 在Jsp页面中向Oracle插入中文,但查看Oracle中的数据却是乱码,怎么处理不会乱码?(在线等)
- 如何将TimesTen数据库一次性导出?
- job不运行
- SQL-02145: 动态描述符无效
- 关于大批量的业务处理和统计分析处理如何做好?
- 急!oracle安装问题请高手指点!
- 关于存储过程和其调用的问题,简单,高手举手之劳,谢谢
- 一个比较基础的问题
- 11G控件文件丢失,重建控制文件提示“SP2-0042: 未知命令 "DATAFILE" - 其余行忽略。”
- 请问,在Oracle下怎样用Sql语句实现:“指定一个字段为主键;当有记录进入该表时,主键自动加一(就类似Access中的ID字段!)”
- 急死人了!!兄弟们过来帮帮忙,关于connect by prior ... start with...问题!
自己找到了一份,呵呵。
不过里面没有错误处理的部分,还得自己加. 暂时先结贴吧。
中的》管理》
谢谢!