首页  >  文章  >  数据库  >  Oracle备份脚本执行失败解决实例

Oracle备份脚本执行失败解决实例

WBOY
WBOY原创
2016-06-07 16:48:581314浏览

随着技术环境的不断发展和增加,运维部门面对的运行环境呈现大规模和复杂两个趋势。一两个运维人员管理公司成百上千台服务器的情

随着技术环境的不断发展和增加,运维部门面对的运行环境呈现大规模和复杂两个趋势。一两个运维人员管理公司成百上千台服务器的情况将来会是常见的事情。这个时候,集中监控、自动运维平台是解决问题最好的方法。本篇我们就介绍一个切换到集中备份环境中出现的小问题。

--------------------------------------分割线 --------------------------------------

推荐阅读:

RMAN 配置归档日志删除策略

Oracle基础教程之通过RMAN复制数据库

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密

--------------------------------------分割线 --------------------------------------

1、问题说明

一个原先在Windows环境上运行的Oracle服务器,原来是使用服务器上自己编写的脚本进行备份。执行脚本通过windows的计划任务调用执行,长期没有任何问题。
 
有一天负责服务器的同事突然联系,说连续几天备份过程失败。在日志上,,明确显示失败。
一般情况下,生产环境各种配置是比较稳定的,不会有特别的变更。笔者要来了错误日志查看。

恢复管理器: Release 10.2.0.1.0 - Production on 星期六 1月 4 22:13:05 2014

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

RMAN> connect target *

2> run{

3> backup database plus archivelog delete input;

4> crosscheck archivelog all;

5> delete noprompt expired backupset;

6> delete noprompt obsolete;

7> }

8>

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

ORA-01031: insufficient privileges

 

恢复管理器完成。

 

报错内容不存在语句命令的情况,而是执行权限错误。而之前的日志显示,相同的备份执行一直没有问题,脚本也没有修改。

 

2、问题分析

调用脚本是两个文件,Windows的BAT和RMAN的txt文件。Rman_bk.bat是主要的执行对象,脚本如下:

rman nocatalog @backup_command.txt Log=rman_log1.log append

命令脚本backup_command.txt如下:

connect target /

run{

backup database plus archivelog delete input;

crosscheck archivelog all;

delete noprompt expired backupset;

delete noprompt obsolete;

}

执行报错权限错误,最大的可能是在操作系统用户匿名登录时候,被拒绝。此时可以试验一下用操作系统用户是不是可以用sqlplus登录。

默认登录没有什么问题,说明匿名登录机制没有被修改。手工执行bat文件,实验结果如下:

执行过程看似正常,备份日志信息如下:

恢复管理器: Release 10.2.0.1.0 - Production on 星期三 1月 8 17:12:47 2014

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

RMAN> connect target *

2> run{

3> backup database plus archivelog delete input;

4> crosscheck archivelog all;

5> delete noprompt expired backupset;

6> delete noprompt obsolete;

7> }

8>

连接到目标数据库: OTSTEST (DBID=2884314031)

使用目标数据库控制文件替代恢复目录

 

启动 backup 于 08-1月 -14

当前日志已存档

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=132 devtype=DISK

通道 ORA_DISK_1: 正在启动存档日志备份集

(篇幅原因,有省略……)

输入存档日志线程 =1 序列 =4151 记录 ID=1144 时间戳=835178418

手工执行脚本没有问题。看似很诡异的问题~

更多详情见请继续阅读下一页的精彩内容:

linux

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn