【发布时间】:2017-02-22 17:37:39
【问题描述】:
朋友们! 我们在服务器上的 Data Guard 配置中有很多主数据库及其物理备用数据库。单个服务器上的每个主数据库和单个服务器上的每个物理备用数据库。 在 EM12c 中,我们为备份主数据库配置了调度程序作业。不幸的是,当服务器真的很忙时,Agent 会暂停备份执行,我们没有按计划进行备份。
因此,我们从 EM12c 禁用了备份作业,并希望使用过程 DBMS_SCHEDULER.CREATE_JOB 在物理备用服务器上执行备份。
由于物理备用是只读数据库和主数据库的每个块副本,我必须在主数据库上创建计划作业并将其应用于备用。
所以,问题是:这可能吗?如果,是的 - 如何在脚本中实现这一点??
类似这样的:
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 脚本进行备份吗?
提前感谢您的回答。
【问题讨论】:
-
物理备用数据库不运行任何调度程序作业。无论如何,RMAN 脚本通常是从 OS 调度程序调度的...但是,您可以从恢复目录存储和调用全局脚本...请参阅有关使用存储脚本的文档:docs.oracle.com/database/121/BRADV/rcmcatdb.htm#BRADV89669
-
嗨,克里斯。感谢您的回复。我了解我无法从物理备用数据库运行计划作业。我将使用 crontab 安排我的 linux 脚本,我有一个新问题..) 我将把它写在问题正文中..
-
我的问题已经解决了!稍后再回答..
标签: oracle12c dbms-scheduler standby rman dataguard