Резервное копирование Oracle Physical Standby через задание DBMS_SCHEDULER

Друзья! У нас есть много первичных баз данных с их физическими резервными базами данных в конфигурациях Data Guard на серверах. Каждая первичная база данных на одном сервере и каждый физический резерв на одном сервере. В EM12c мы настроили задания планировщика для резервного копирования наших основных баз данных. К сожалению, когда сервер действительно занят, агент приостанавливает выполнение резервного копирования, и у нас нет резервного копирования по расписанию.

Итак, мы отключили наши задания резервного копирования из EM12c и хотим выполнить резервное копирование в физическом режиме ожидания, используя процедуру DBMS_SCHEDULER.CREATE_JOB,

Поскольку Physical Standby является базой данных, доступной только для чтения, и копией первичной базы данных для каждого блока, я должен создать задание расписания на Primary, и оно будет применено к резервной.

Итак, вопрос: возможно ли это? И если да - как это реализовать в сценарии??

Что-то вроде этого:

check database_role 
if role='PHYSICAL STANDBY' 
then execute backup script 
else nothing to do..

Если это невозможно, какое решение является лучшим для решения этой задачи? Есть ли способ решить эту проблему без создания задачи cron с одним скриптом на каждом сервере? Можно ли использовать один глобальный скрипт из базы данных каталога восстановления?

Крис сказал, что я не могу запустить запланированные задания из физической резервной базы данных. Итак, я планирую свой скрипт Linux с помощью crontab. Мой 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 для резервного копирования?

Заранее спасибо за ваши ответы.

1 ответ

Я настоятельно рекомендую использовать Enterprise Manager для запуска заданий резервного копирования. EM прекрасно интегрируется с каталогом rman и каждым экземпляром, так что вы можете настроить только команду rman execute global script. Все остальное сделано EM.

У меня запланировано выполнение задания только в режиме ожидания через планировщик заданий EM без необходимости что-либо менять во время переключения.

Я просто должен каскадировать работу. Таким образом, у меня есть один шаг, проверяющий, находится ли цель в режиме ожидания, и если этот шаг успешен, тогда я выполняю резервное копирование. Если это не так, следующий шаг не выполняется.

Таким образом, мониторинг также интегрирован с глобальным мониторингом базы данных. Вам не нужно настраивать перехват ошибок внутри скрипта на уровне ОС.

Другие вопросы по тегам