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
解决方案 »
- oracle11g xmldom生成xml的信息问题(PLS-00201)
- 安装maximo 导入数据时,出现的问题?
- 用主键读数据,花了25ms,算慢吗
- SSH2+oracle+两表关联操作-实例
- HELP!HELP!HELP!关于数据导入、导出的问题
- 同时更新一张表的两个字段该怎么写?
- 在字符串中查找数字
- 大家好,问一下关于入门的问题
- 关于NVL函数的一个奇怪之处
- 用vc通过odbc访问oracle问题
- 请问,在Oracle下怎样用Sql语句实现:“指定一个字段为主键;当有记录进入该表时,主键自动加一(就类似Access中的ID字段!)”
- 急死人了!!兄弟们过来帮帮忙,关于connect by prior ... start with...问题!
自己找到了一份,呵呵。
不过里面没有错误处理的部分,还得自己加. 暂时先结贴吧。
中的》管理》
谢谢!