• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

oracle数据库自动备份的实现历程

发布: 2007-4-22 19:48 | 作者: 未知    | 来源: 网络     | 查看: 42次 | 进入软件测试论坛讨论

领测软件测试网

oracle数据库自动备份的实现历程

 问题描述:
oracle自动备份脚本的实现。

错误提示1:
Message file RMAN<lang>.msb not found
 
Verify that ORACLE_HOME is set properly
 
。。。。。。

错误原因:
自动执行的不能够识别相应的命令,需要在自动备份脚本中显式的声明oracle的环境变量。

错误提示2:
standard in must be a tty
 
。。。。。。

错误原因:
不能在cron使用su或者管道等操作,必须将su命令移动到相关的shell脚本中。

错误提示3:
Argument     Value          Description
-----------------------------------------------------------------------------
target       quoted-string  connect-string for target database
catalog      quoted-string  connect-string for recovery catalog
nocatalog    none           if specified, then no recovery catalog
cmdfile      quoted-string  name of input command file
log          quoted-string  name of output message log file
trace        quoted-string  name of output debugging message log file
append       none           if specified, log is opened in append mode
debug        optional-args  activate debugging
msgno        none           show RMAN-nnnn prefix for all messages
send         quoted-string  send a command to the media manager
pipe         string         building block for pipe names
timeout      integer        number of seconds to wait for pipe input
checksyntax  none           check the command file for syntax errors
-----------------------------------------------------------------------------
Both single and double quotes (' or ") are accepted for a quoted-string.
Quotes are not required unless the string contains embedded white-space.
 
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00556: could not open CMDFILE "backup_ar.rcv"
 
。。。。。。


错误原因:
需要在cmdfile中指明绝对路径,不能因为shell脚本调用的cmdfile是在同一个目录下就可以直接使用文件名

或者直接使用./

正确示例代码:

1、#cron文件
0 12,18 * * * /home/oracle/bak_sh/backup_ar.sh
#表示每天12,18点对数据库归档日至进行全备份

2、入口shell文件,文件名:backup_ar.sh
export ORACLE_HOME=/home/u01/app/oracle/oracle/product/10.2.0/db_1
export ORACLE_SID=test
export LANG=en_US.UTF-8
/home/u01/app/oracle/oracle/product/10.2.0/db_1/bin/rman cmdfile = backup_ar.rcv

3、rman备份脚本
connect target /
connect catalog rman/rman@rman
run{
allocate channel d1 device type disk;
sql 'alter system archive log current';
backup archivelog all delete input
  format '/opt/rmanback/full_%u_%p_%c.ac' filesperset = 3;
release channel d1;
}

学习入口(来自论坛):
1、两种办法
一是用root的crontab,*/2 * * * * a.sh --》su - oracle -c a.sh
一是在a.sh里加上oracle的环境。


2、我们做的cron测试
实例:
Vi /etc/cron.minly/new.sh
内容:
Su – oracle –c “/home/oracle/mginfo.sh”

Vi /home/oracle/mginfo.sh
内容:
Exp mginfotech/mginfotech file=mginfotech.dmp log=mginfotech.log

Vi /etc/crontab
内容:
59 23 * * * root run-parts /etc/cron.minly
每晚23:59分钟执行


cron中无法读取环境变量
在shell中显示地export环境变量
export ORACLE_HOME=/opt/ora9/product/9.2
export ORACLE_SID=oracle
export NLS_LANG=xxxxx
然后再试

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网