友! 我们在服务器上的Data Guard配置中有许多主数据库及其物理备用数据库。单个服务器上的每个主数据库和单个服务器上的每个物理备用数 在EM12c中,我们已配置调度程序作业以备份我们的主数据库。不幸的是,当服务器真的很忙时,代理暂停备份执行,我们没有按照计划进行备份。
因此,我们从EM12c禁用了备份作业,并希望使用过程DBMS_SCHEDULER.CREATE_JOB
在物理备用数据库上执行备份。
由于Physical Standby是只读数据库和主数据库的每块副本,我必须在主数据库上创建计划作业,并将其应用于待机状态。
所以,问题是:有可能吗?如果,是的 - 如何在脚本中实现这一点?
这样的事情:
check database_role
if role='PHYSICAL STANDBY'
then execute backup script
else nothing to do..
如果不可能,哪种解决方案最适合解决此任务? 有没有办法解决这个问题没有创建cron任务与每个服务器上的单个脚本?是否可以使用恢复目录数据库中的一个全局脚本?
Kris说,我无法从物理备用数据库运行预定作业。 所以,我将使用crontab安排我的linux脚本。 我的linux脚本是:
#! /usr/bin/bash
LOG_PATH=/home/oracle/scripts/logs; export LOG_PATH
TASK_NAME=backup_database_inc0; export TASK_NAME
CUR_DATE=`date +%Y.%m.%d-%H:%M`; export CUR_DATE
LOGFILE=$LOG_PATH/$TASK_NAME.$CUR_DATE.log; export LOGFILE
rman target / catalog rmancat/<pswd>@rmancat script 'backup_database' log $LOGFILE
if [ $? -eq 0 ]
then
mail -s "$ORACLE_UNQNAME Backup Status: SUCCESS" dba@server.mail< $LOGFILE
exit 0
else
mail -s "$ORACLE_UNQNAME Backup Status: FAILED" dba@server.mail< $LOGFILE
exit 1
我不想在每台主机上创建linux文件,以便从我的恢复目录中调用备份全局脚本。是否可以在所有主机上配置集中式备份执行计划?我可以将ssh从一个主机配置到所有数据库主机并执行我的linux脚本进行备份吗?
提前感谢您的回答。
答案 0 :(得分:0)
我强烈建议您使用Enterprise Manager运行备份作业。 EM与rman目录和每个实例很好地集成,因此您可以只设置rman execute global script命令。其他一切都是由EM完成的。
我计划通过EM作业调度程序仅在备用数据库上运行该作业,而无需在切换期间更改任何内容。
我只需要级联这些工作。所以我有一步检查目标是否处于待机状态,如果该步骤成功,那么我正在运行备份。如果不是,则下一步不会运行。
通过这种方式,监控也与全局数据库监控集成在一起。您不必在OS级别的shell脚本中设置错误捕获。