Резервное копирование и восстановление базы данных Oracle на виртуальной машине Linux в Azure с помощью Azure Backup
Область применения: ✔️ виртуальные машины Linux
В этой статье показано использование Azure Backup для создания моментальных снимков дисков виртуальной машины, которые включают файлы Базы данных Oracle и область быстрого восстановления Oracle. С помощью Azure Backup можно создавать полные моментальные снимки диска, которые подходят в качестве резервных копий и хранятся в хранилище Служб восстановления.
Azure Backup также обеспечивает согласованные с приложениями резервные копии, которые гарантируют, что для восстановления данных не требуется больше исправлений. Резервные копии, согласованные с приложениями, работают как с файловой системой, так и с базами данных Oracle Automatic Storage Management (ASM).
Восстановление данных, согласованных с приложениями, сокращает время восстановления, поэтому вы можете быстро вернуться в запущенное состояние. Восстановление Oracle Database по-прежнему необходимо после восстановления. Вы можете упростить восстановление с помощью архивных файлов журнала повтора Oracle, которые записываются и хранятся в отдельной общей папке Azure.
В этой статье рассматриваются следующие задачи:
- Создайте резервную копию базы данных с согласованной с приложениями резервной копии.
- Восстановление и восстановление базы данных из точки восстановления.
- Восстановление виртуальной машины из точки восстановления.
Предварительные требования
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье Краткое руководство по Bash в Azure Cloud Shell.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в разделе Запуск Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, приведены в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Чтобы выполнить резервное копирование и восстановление, необходимо сначала создать виртуальную машину Linux с установленным экземпляром Oracle Database 12.1 или более поздней версии.
Создайте экземпляр Oracle Database, выполнив действия, описанные в разделе Создание экземпляра Базы данных Oracle на виртуальной машине Azure.
Подготовка среды
Чтобы подготовить среду, выполните следующие действия.
Подключение к виртуальной машине
Используйте следующую команду для создания сеанса Secure Shell (SSH) с виртуальной машиной. Замените
<publicIpAddress>
значением общедоступного адреса для виртуальной машины.ssh azureuser@<publicIpAddress>
Переключитесь на роль пользователя root (привилегированного):
sudo su -
oracle
Добавьте пользователя в файл /etc/sudoers:echo "oracle ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
Настройка хранилища Файлы Azure для архивированных файлов журнала повтора Oracle
Архивные файлы журнала повтора экземпляра Oracle Database играют важную роль в восстановлении базы данных. В них хранятся зафиксированные транзакции, необходимые для отката из базы данных snapshot, выполненных в прошлом.
Когда база данных находится в ARCHIVELOG
режиме , она архивирует содержимое файлов журнала повтора в сети, когда они становятся полными и переключаются. Вместе с резервной копией они необходимы для восстановления на определенный момент времени при потере базы данных.
Oracle предоставляет возможность архивировать файлы журнала повтора в разных расположениях. По крайней мере одно из этих назначений должно находиться в удаленном хранилище, поэтому оно отделяется от хранилища узла и защищено независимыми моментальными снимками. Файлы Azure соответствует этим требованиям.
Общая папка Azure — это хранилище, которое вы подключаете к виртуальной машине Linux или Windows в качестве обычного компонента файловой системы с помощью протокола SMB или сетевой файловой системы (NFS). Сведения о настройке общей папки Azure в Linux (с помощью протокола SMB 3.0) для использования в качестве хранилища архивных журналов см. в статье Подключение общей папки Azure SMB в Linux. После завершения настройки вернитесь к этому руководству и выполните все оставшиеся действия.
Подготовьте базы данных
В этой части процесса предполагается, что вы выполнили инструкции По созданию экземпляра базы данных Oracle на виртуальной машине Azure. В результате имеем следующее:
- У вас есть экземпляр Oracle с именем
oratest1
, работающий на виртуальной машине с именемvmoracle19c
. - Вы используете стандартный скрипт Oracle
oraenv
с его зависимостью от стандартного файла конфигурации Oracle /etc/oratab для настройки переменных среды в сеансе оболочки.
Выполните следующие действия для каждой базы данных на виртуальной машине.
Переключитесь на пользователя
oracle
.sudo su - oracle
Задайте переменную
ORACLE_SID
среды, запустивoraenv
скрипт. Вам будет предложено ввестиORACLE_SID
имя.. oraenv
Добавьте общую папку Azure в качестве другого назначения для файлов журнала архива базы данных.
На этом шаге предполагается, что вы настроили и подключили общую папку Azure на виртуальной машине Linux. Для каждой базы данных, установленной на виртуальной машине, создайте подкаталог с именем идентификатора безопасности базы данных (SID).
В этом примере имя точки подключения — ,
/backup
а идентификатор безопасности —oratest1
. Таким образом, вы создаете подкаталог/backup/oratest1
и меняете владельца наoracle
пользователя. Замените/backup/SID
имя точки подключения и идентификатор безопасности базы данных.sudo mkdir /backup/oratest1 sudo chown oracle:oinstall /backup/oratest1
Выполните подключение к базе данных:
sqlplus / as sysdba
Запустите базу данных, если она еще не запущена:
SQL> startup
Задайте первое место назначения журнала архива базы данных в каталоге общей папки, созданном ранее:
SQL> alter system set log_archive_dest_1='LOCATION=/backup/oratest1' scope=both;
Определите целевую точку восстановления (RPO) для базы данных.
Чтобы обеспечить согласованность RPO, рассмотрите частоту архивации файлов журнала повтора в сети. Частота определяется следующими факторами:
- Размер файлов журнала повтора в сети. По мере заполнения файла журнала в Сети он переключается и архивируется. Чем больше файл журнала в Интернете, тем дольше требуется для заполнения. Добавленное время уменьшает частоту создания архива.
- Параметр
ARCHIVE_LAG_TARGET
параметра определяет максимально допустимое количество секунд, прежде чем текущий файл журнала в сети должен быть переключён и заархивирован.
Чтобы свести к минимуму частоту переключения и архивации, наряду с сопутствующей операцией контрольной точки файлы журнала повтора Oracle в интернете обычно имеют большой размер (например, 1024 млн, 4096 млн или 8192 млн). В занятой среде базы данных журналы, скорее всего, будут переключаться и архивироваться каждые несколько секунд или минут. В менее активной базе данных они могут захархивироваться за несколько часов или дней до архивирования последних транзакций, что значительно снизит частоту архивации.
Рекомендуется настроить так
ARCHIVE_LAG_TARGET
, чтобы обеспечить согласованность RPO. Значение 5 минут (300 секунд) является разумным значением дляARCHIVE_LAG_TARGET
. Это гарантирует, что любая операция восстановления базы данных может быть восстановлена в течение 5 минут с момента сбоя.Чтобы задать
ARCHIVE_LAG_TARGET
, выполните следующую команду:SQL> alter system set archive_lag_target=300 scope=both;
Чтобы лучше понять, как развертывать высокодоступные экземпляры Oracle Database в Azure с нулевым значением RPO, см. статью Эталонные архитектуры для Oracle Database.
Убедитесь, что база данных находится в режиме журнала архивации, чтобы задействовать оперативное резервное копирование.
Сначала проверьте состояние архива журнала:
SQL> SELECT log_mode FROM v$database; LOG_MODE ------------ NOARCHIVELOG
Если он находится в
NOARCHIVELOG
режиме , выполните следующие команды:SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> ALTER DATABASE ARCHIVELOG; SQL> ALTER DATABASE OPEN; SQL> ALTER SYSTEM SWITCH LOGFILE;
Создайте таблицу для проверки операций резервного копирования и восстановления:
SQL> create user scott identified by tiger quota 100M on users; SQL> grant create session, create table to scott; SQL> connect scott/tiger SQL> create table scott_table(col1 number, col2 varchar2(50)); SQL> insert into scott_table VALUES(1,'Line 1'); SQL> commit; SQL> quit
Резервное копирование данных с помощью Azure Backup
Служба Azure Backup предоставляет решения для резервного копирования данных и их восстановления из облака Microsoft Azure. Служба Azure Backup предоставляет независимые и изолированные резервные копии для защиты от случайного удаления исходных данных. Резервные копии хранятся в хранилище Служб восстановления со встроенным управлением точками восстановления, поэтому при необходимости можно выполнить восстановление.
В этом разделе вы используете Azure Backup для создания моментальных снимков запущенной виртуальной машины и экземпляров Oracle Database с согласованием приложений. Базы данных помещаются в режим резервного копирования, что позволяет выполнять транзакционно согласованное оперативное резервное копирование, в то время как Azure Backup занимает snapshot дисков виртуальной машины. Snapshot является полной копией хранилища, а не добавочным snapshot или snapshot копирования при записи. Это эффективное средство восстановления базы данных.
Преимущество использования Azure Backup моментальных снимков, согласованных с приложениями, заключается в том, что они быстро выполняются независимо от размера базы данных. Вы можете использовать snapshot для операций восстановления сразу после его выполнения, не дожидаясь его передачи в хранилище Служб восстановления.
Чтобы использовать Azure Backup для резервного копирования базы данных, выполните следующие действия.
- Общие сведения о платформе Azure Backup.
- Подготовка среды для создания резервной копии, согласованной с приложениями.
- Настройка резервного копирования, согласованного с приложениями.
- Запуск согласованного с приложениями резервного копирования виртуальной машины.
Общие сведения о платформе Azure Backup
Служба Azure Backup предоставляет платформу для обеспечения согласованности приложений при резервном копировании виртуальных машин Windows и Linux для различных приложений. Эта платформа включает вызов предварительного скрипта для замораживание приложений перед выполнением snapshot дисков. Он вызывает пост-скрипт для разморозки приложений после завершения snapshot.
Корпорация Майкрософт усовершенствовала платформу, чтобы служба Azure Backup предоставляла упакованные предварительные и пост-скрипты для выбранных приложений. Эти предварительные и пост-скрипты уже загружены в образ Linux, поэтому вам нечего устанавливать. Вы просто назовете приложение, а затем Azure Backup автоматически вызывает соответствующие скрипты. Корпорация Майкрософт управляет упакованными скриптами предварительного и последующего выполнения, поэтому вы можете быть уверены в их поддержке, владении и допустимости.
В настоящее время поддерживаемыми приложениями для расширенной платформы являются Oracle 12.x или более поздней версии и MySQL. Дополнительные сведения см. в разделе Матрица поддержки для управляемых резервных копий виртуальных машин Azure.
Вы можете создавать собственные скрипты для Azure Backup для использования с базами данных до версии 12.x. Примеры скриптов доступны на сайте GitHub.
При каждом резервном копировании расширенная платформа запускает скрипты предварительного и последующего выполнения на всех экземплярах Базы данных Oracle, установленных на виртуальной машине. Параметр configuration_path
в файле workload.conf указывает на расположение файла Oracle /etc/oratab (или пользовательского файла, который следует синтаксису oratab). Дополнительные сведения см. в статье Настройка резервных копий, согласованных с приложениями.
Azure Backup выполняет скрипты предварительного и последующего выполнения для каждой базы данных, указанной в файле, на который configuration_path
указывает. Исключениями являются строки, начинающиеся с #
(рассматривается как комментарий) или +ASM
(экземпляр Oracle ASM).
Расширенная платформа Azure Backup выполняет оперативное резервное копирование экземпляров Oracle Database, работающих в ARCHIVELOG
режиме . Скрипты до и после используют ALTER DATABASE BEGIN
команды и END BACKUP
для обеспечения согласованности приложений.
Чтобы резервное копирование базы данных было согласовано, базы данных в NOARCHIVELOG
режиме должны быть полностью выключены перед запуском snapshot.
Подготовка среды для создания резервной копии, согласованной с приложениями
Oracle Database использует разделение ролей заданий, чтобы обеспечить разделение обязанностей с использованием минимальных привилегий. Он связывает отдельные группы операционных систем (ОС) с отдельными административными ролями базы данных. Пользователи могут получить различные привилегии базы данных в зависимости от их членства в группах ОС.
Роль SYSBACKUP
базы данных (универсальное имя OSBACKUPDBA
) предоставляет ограниченные привилегии для выполнения операций резервного копирования в базе данных. Azure Backup требуется.
Во время установки Oracle рекомендуется использовать backupdba
в качестве имени группы ОС для связи с ролью SYSBACKUP
. Но вы можете использовать любое имя, поэтому сначала необходимо определить имя группы ОС, представляющей роль Oracle SYSBACKUP
.
Переключитесь на пользователя
oracle
.sudo su - oracle
Задайте среду Oracle:
export ORACLE_SID=oratest1 export ORAENV_ASK=NO . oraenv
Определите имя группы ОС, представляющей роль Oracle
SYSBACKUP
:grep "define SS_BKP" $ORACLE_HOME/rdbms/lib/config.c
Результат должен быть аналогичным приведенному ниже:
#define SS_BKP_GRP "backupdba"
В выходных данных значение, заключенное в двойные кавычки, — это имя группы ОС Linux, в которой выполняется внешняя проверка подлинности роли Oracle
SYSBACKUP
. В нашем примере он выглядит следующим образом:backupdba
. Запишите фактическое значение.Убедитесь, что группа ОС существует, выполнив следующую команду. Замените
<group name>
значением, возвращенным предыдущей командой (без кавычек).grep <group name> /etc/group
Результат должен быть аналогичным приведенному ниже:
backupdba:x:54324:oracle
Важно!
Если выходные данные не соответствуют значению группы ОС Oracle, полученному на шаге 3, используйте следующую команду, чтобы создать группу ОС, представляющую роль Oracle
SYSBACKUP
. Замените<group name>
именем группы, полученной на шаге 3.sudo groupadd <group name>
Создайте пользователя резервного копирования с именем
azbackup
, который принадлежит группе ОС, проверенной или созданной на предыдущих шагах. Замените<group name>
именем проверенной группы. Пользователь также добавляется в группу,oinstall
чтобы разрешить ему открывать диски ASM.sudo useradd -g <group name> -G oinstall azbackup
Настройте проверку подлинности внешними средствами для нового пользователя, выполняющего резервное копирование.
Пользователь
azbackup
резервного копирования должен иметь доступ к базе данных с помощью внешней проверки подлинности, чтобы пароль не оспаривался. Чтобы включить этот доступ, необходимо создать пользователя базы данных, который проходит внешнюю проверку подлинности с помощьюazbackup
. База данных использует префикс для имени пользователя, которое необходимо найти.Выполните следующие действия для каждой базы данных, установленной на виртуальной машине.
Войдите в базу данных с помощью SQL Plus и проверка параметры по умолчанию для внешней проверки подлинности:
sqlplus / as sysdba SQL> show parameter os_authent_prefix SQL> show parameter remote_os_authent
Выходные данные должны выглядеть так, как в следующем примере, который отображается
ops$
в виде префикса имени пользователя базы данных:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ os_authent_prefix string ops$ remote_os_authent boolean FALSE
Создайте пользователя базы данных с именем
ops$azbackup
для внешней проверки подлинностиazbackup
для пользователя и предоставьтеSYSBACKUP
права:SQL> CREATE USER ops$azbackup IDENTIFIED EXTERNALLY; SQL> GRANT CREATE SESSION, ALTER SESSION, SYSBACKUP TO ops$azbackup;
Если при выполнении инструкции появляется сообщение об ошибке
ORA-46953: The password file is not in the 12.2 format
GRANT
, выполните следующие действия, чтобы перенести файл orapwd в формат 12.2. Выполните эти действия для каждого экземпляра Oracle Database на виртуальной машине.Выход из SQL Plus.
Переместите файл пароля со старым форматом в файл с новым названием.
Выполните миграцию файла с паролем.
Удалите старый файл.
Выполните следующие команды:
mv $ORACLE_HOME/dbs/orapworatest1 $ORACLE_HOME/dbs/orapworatest1.tmp orapwd file=$ORACLE_HOME/dbs/orapworatest1 input_file=$ORACLE_HOME/dbs/orapworatest1.tmp rm $ORACLE_HOME/dbs/orapworatest1.tmp
Повторно запустите
GRANT
операцию в SQL Plus.
Создайте хранимую процедуру для записи резервных копий сообщений в журнал оповещений базы данных. Используйте следующий код для каждой базы данных, установленной на виртуальной машине:
sqlplus / as sysdba SQL> GRANT EXECUTE ON DBMS_SYSTEM TO SYSBACKUP; SQL> CREATE PROCEDURE sysbackup.azmessage(in_msg IN VARCHAR2) AS v_timestamp VARCHAR2(32); BEGIN SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') INTO v_timestamp FROM DUAL; DBMS_OUTPUT.PUT_LINE(v_timestamp || ' - ' || in_msg); SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.ALERT_FILE, in_msg); END azmessage; / SQL> SHOW ERRORS SQL> QUIT
Настройка резервного копирования, согласованного с приложениями
Переключитесь на роль пользователя root (привилегированного):
sudo su -
Проверьте папку /etc/azure . Если его нет, создайте рабочий каталог для резервной копии, согласованной с приложениями:
if [ ! -d "/etc/azure" ]; then mkdir /etc/azure fi
Проверьте наличие файла workload.conf в папке. Если его нет, создайте его в каталоге /etc/azure и предоставьте ему следующее содержимое. Комментарии должны начинаться с
[workload]
. Если файл уже существует, просто измените поля, чтобы они соответствовали следующему содержимому. В противном случае следующая команда создает файл и заполняет его содержимое:echo "[workload] workload_name = oracle configuration_path = /etc/oratab timeout = 90 linux_user = azbackup" > /etc/azure/workload.conf
Файл workload.conf имеет следующий формат:
- Параметр
workload_name
указывает тип рабочей нагрузки базы данных. В этом случае установка параметра в значениеOracle
позволяет Azure Backup выполнять правильные предварительные и пост-скрипты (команды согласованности) для экземпляров Базы данных Oracle. - Параметр
timeout
указывает максимальное время (в секундах), в течение которых каждая база данных должна завершить моментальные снимки хранилища. - Параметр
linux_user
указывает учетную запись пользователя Linux, которую Azure Backup использует для выполнения операций замора базы данных. Вы создали этого пользователяazbackup
ранее. - Параметр
configuration_path
указывает абсолютный путь к текстовому файлу на виртуальной машине. В каждой строке указан экземпляр базы данных, запущенный на виртуальной машине. Обычно это файл /etc/oratab , создаваемый Oracle во время установки базы данных, но это может быть любой файл с любым выбранным именем. Он должен соответствовать следующим правилам формата:- Файл является текстовым. Каждое поле разделено символом двоеточия (
:
). - Первое поле в каждой строке — это имя экземпляра
ORACLE_SID
. - Второе поле в каждой строке — это абсолютный путь для
ORACLE_HOME
этого экземпляраORACLE_SID
. - Весь текст после первых двух полей игнорируется.
- Если строка начинается со знака фунта (
#
), вся строка игнорируется в качестве комментария. - Если первое поле имеет значение
+ASM
, обозначающее экземпляр Oracle ASM, оно игнорируется.
- Файл является текстовым. Каждое поле разделено символом двоеточия (
- Параметр
Запуск согласованного с приложениями резервного копирования виртуальной машины
В портал Azure перейдите в группу ресурсов rg-oracle и выберите виртуальную машину vmoracle19c.
На панели Резервное копирование :
- В разделе Хранилище служб восстановления выберите Создать.
- Для имени хранилища используйте myVault.
- В поле Группа ресурсов выберите rg-oracle.
- Для параметра Выбор политики резервного копирования используйте значение (new) DailyPolicy. Если вы хотите изменить частоту резервного копирования или диапазон хранения, выберите Создать политику .
Выберите Включить резервное копирование.
Процесс резервного копирования не запускается, пока не истечет запланированное время. Чтобы настроить немедленное резервное копирование, сделайте следующее:
В области группы ресурсов выберите только что созданное хранилище Служб восстановления с именем myVault. Возможно, вам потребуется обновить страницу, чтобы увидеть ее.
На панели myVault — элементы резервного копирования в разделе BACKUP ITEM COUNT (ЧИСЛО ЭЛЕМЕНТОВ РЕЗЕРВНОГО КОПИРОВАНИЯ) выберите значение счетчика элементов резервной копии.
На панели Элементы резервного копирования (виртуальная машина Azure) нажмите кнопку с многоточием (...), а затем выберите Создать резервную копию.
Примите значение по умолчанию Сохранить резервную копию Till и нажмите кнопку ОК. Дождитесь завершения процесса резервного копирования.
Чтобы просмотреть состояние задания резервного копирования, выберите Задания резервного копирования.
Выберите задание резервного копирования, чтобы просмотреть сведения о его состоянии.
Хотя выполнение snapshot занимает всего несколько секунд, передача его в хранилище может занять некоторое время. Задание резервного копирования не будет завершено до завершения передачи.
Для резервного копирования, согласованного с приложениями, уделите все ошибки в файле журнала по адресу /var/log/azure/Microsoft.Azure.RecoveryServices.VMSnapshotLinux/extension.log.
Восстановление виртуальной машины
Восстановление всей виртуальной машины означает, что вы восстанавливаете виртуальную машину и подключенные к ней диски на новую виртуальную машину из выбранной точки восстановления. Это действие также восстанавливает все базы данных, которые выполняются на виртуальной машине. После этого необходимо восстановить каждую базу данных.
Чтобы восстановить всю виртуальную машину, выполните следующие действия.
- Остановите и удалите виртуальную машину.
- Восстановите виртуальную машину.
- Задайте общедоступный IP-адрес.
- Восстановите базу данных.
При восстановлении виртуальной машины есть два варианта main:
- Восстановите виртуальную машину, из которой изначально были созданы резервные копии.
- Восстановление (клонирование) новой виртуальной машины, не затрагивая виртуальную машину, с которой изначально были созданы резервные копии.
Первые шаги в этом упражнении (остановка, удаление и восстановление виртуальной машины) имитируют первый вариант использования.
Остановка и удаление виртуальной машины
В портал Azure перейдите к виртуальной машине vmoracle19c и выберите Остановить.
Когда виртуальная машина больше не работает, выберите Удалить , а затем — Да.
Восстановление виртуальной машины
Создайте учетную запись хранения для промежуточного хранения в портал Azure:
В портал Azure выберите + Создать ресурс, а затем найдите и выберите Учетная запись хранения.
В области Создание учетной записи хранения выполните следующие действия.
- В поле Группа ресурсов выберите существующую группу ресурсов rg-oracle.
- В поле Имя учетной записи хранения введите oracrestore.
- Убедитесь, что для параметра Расположение задан тот же регион, что и все другие ресурсы в группе ресурсов.
- Задайте для свойства Производительностьзначение Стандартный.
- В поле Тип учетной записи выберите StorageV2 (общего назначения версии 2) .
- В поле Репликация выберите Локально избыточное хранилище (LRS) .
Выберите Просмотр и создание, а затем нажмите кнопку Создать.
В портал Azure найдите хранилище служб восстановления myVault и выберите его.
На панели Обзор выберите Элементы резервного копирования. Затем выберите Виртуальная машина Azure, которая должна иметь ненулевое число для ПАРАМЕТРА BACKUP ITEM COUNT.
В области Элементы резервного копирования (виртуальная машина Azure) выберите виртуальную машину vmoracle19c .
На панели vmoracle19c выберите точку восстановления с типом согласованности Application Consistent. Нажмите кнопку с многоточием (...), а затем щелкните Восстановить виртуальную машину.
На панели Восстановление виртуальной машины выполните следующие действия.
Щелкните Создать.
В поле Тип восстановления выберите Создать виртуальную машину.
В поле Имя виртуальной машины введите vmoracle19c.
В поле Виртуальная сеть выберите vmoracle19cVNET.
Подсеть автоматически заполняется в зависимости от выбранной виртуальной сети.
Для промежуточного расположения для восстановления виртуальной машины требуется учетная запись хранения Azure в той же группе ресурсов и регионе. Вы можете выбрать учетную запись хранения или задачу восстановления, настроенную ранее.
Чтобы восстановить виртуальную машину, нажмите кнопку Восстановить .
Чтобы просмотреть состояние процесса восстановления, выберите Задания, а затем — Задания резервного копирования.
Выберите операцию восстановления Выполняется , чтобы отобразить сведения о состоянии процесса восстановления.
Задание общедоступного IP-адреса
После восстановления виртуальной машины необходимо переназначить исходный IP-адрес новой виртуальной машине.
В портал Azure перейдите к виртуальной машине с именем vmoracle19c. Ему назначены новый общедоступный IP-адрес и сетевой адаптер, аналогичные vmoracle19c-nic-XXXXXXXXXXXXX, но у него нет DNS-адреса. После удаления исходной виртуальной машины ее общедоступный IP-адрес и сетевой адаптер были сохранены. Следующие действия повторно присоединяют их к новой виртуальной машине.
Остановите виртуальную машину.
Перейдите в раздел Сеть.
Выберите Подключить сетевой интерфейс. Выберите исходный сетевой адаптер vmoracle19cVMNic, с которым по-прежнему связан исходный общедоступный IP-адрес. Нажмите кнопку ОК.
Отсоедините сетевой адаптер, созданный с помощью операции восстановления виртуальной машины, так как он настроен в качестве основного интерфейса. Выберите Отключить сетевой интерфейс, выберите сетевую карту, похожую на vmoracle19c-nic-XXXXXXXXXXXXXXXX, а затем нажмите кнопку ОК.
Теперь у повторно созданной виртуальной машины есть исходная сетевая карта, связанная с исходным IP-адресом и правилами группы безопасности сети.
Назад на панель Обзор и нажмите кнопку Пуск.
Восстановление базы данных
Чтобы восстановить базу данных после полного восстановления виртуальной машины, выполните приведенные далее действия.
Повторно подключитесь к виртуальной машине:
ssh azureuser@<publicIpAddress>
После восстановления всей виртуальной машины важно восстановить базы данных на ней, выполнив следующие действия для каждой базы данных.
Возможно, экземпляр запущен, так как при автозапуске была предпринята попытка запустить базу данных при запуске виртуальной машины. Однако база данных требует восстановления и, скорее всего, будет находиться только на этапе подключения. Выполните подготовительное завершение работы перед началом этапа подключения:
sudo su - oracle sqlplus / as sysdba SQL> shutdown immediate SQL> startup mount
Выполните восстановление базы данных.
Важно указать
USING BACKUP CONTROLFILE
синтаксис, чтобы сообщить командеRECOVER AUTOMATIC DATABASE
, что восстановление не должно останавливаться на номере изменения системы Oracle (SCN), записанном в восстановленном файле управления базой данных.Восстановленный файл управления базой данных был snapshot вместе с остальной частью базы данных. Имя SCN, хранящееся в нем, находится на момент времени snapshot. После этого могут быть записаны транзакции, и вы хотите выполнить восстановление до точки последней транзакции, зафиксированной в базе данных.
SQL> recover automatic database using backup controlfile until cancel;
После применения последнего доступного архивного файла журнала введите
CANCEL
для завершения восстановления.После успешного завершения восстановления появится сообщение
Media recovery complete
.Однако при использовании
BACKUP CONTROLFILE
предложения команда восстановления игнорирует файлы журнала в сети. Возможно, для завершения восстановления на определенный момент времени требуются изменения в текущем журнале повтора в сети. В этом случае могут появиться сообщения, аналогичные следующим примерам:SQL> recover automatic database until cancel using backup controlfile; ORA-00279: change 2172930 generated at 04/08/2021 12:27:06 needed for thread 1 ORA-00289: suggestion : /u02/fast_recovery_area/ORATEST1/archivelog/2021_04_08/o1_mf_1_13_%u_.arc ORA-00280: change 2172930 for thread 1 is in sequence #13 ORA-00278: log file '/u02/fast_recovery_area/ORATEST1/archivelog/2021_04_08/o1_mf_1_13_%u_.arc' no longer needed for this recovery ORA-00308: cannot open archived log '/u02/fast_recovery_area/ORATEST1/archivelog/2021_04_08/o1_mf_1_13_%u_.arc' ORA-27037: unable to obtain file status Linux-x86_64 Error: 2: No such file or directory Additional information: 7 Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
Важно!
Если текущий журнал повтора в сети потерян или поврежден и вы не можете его использовать, вы можете отменить восстановление на этом этапе.
Чтобы исправить эту ситуацию, можно определить, какой журнал в сети не был архивирован, и указать полное имя файла в запросе.
Откройте базу данных.
Параметр
RESETLOGS
является обязательным, если командаRECOVER
используетUSING BACKUP CONTROLFILE
параметр .RESETLOGS
создает новую инкарнацию базы данных путем сброса журнала повторов обратно в начало, так как невозможно определить, какая часть предыдущей инкарнации базы данных была пропущена при восстановлении.SQL> alter database open resetlogs;
Убедитесь, что содержимое базы данных было восстановлено:
SQL> select * from scott.scott_table;
Резервное копирование и восстановление базы данных Oracle на виртуальной машине Linux в Azure завершено.
Дополнительные сведения о командах и концепциях Oracle см. в документации oracle, в том числе:
- Выполнение управляемого пользователем Oracle резервного копирования всей базы данных
- Выполнение полного управляемого пользователем восстановления базы данных
- Команда STARTUP Oracle
- Команда RECOVER Oracle
- Команда ALTER DATABASE Oracle
- Параметр LOG_ARCHIVE_DEST_n Oracle
- Параметр ARCHIVE_LAG_TARGET Oracle
Удаление виртуальной машины
Вы можете удалить ставшие ненужными группу ресурсов, виртуальную машину и все связанные с ней ресурсы следующим образом:
Отключите обратимое удаление резервных копий в хранилище:
az backup vault backup-properties set --name myVault --resource-group rg-oracle --soft-delete-feature-state disable
Остановите защиту виртуальной машины и удалите резервные копии:
az backup protection disable --resource-group rg-oracle --vault-name myVault --container-name vmoracle19c --item-name vmoracle19c --delete-backup-data true --yes
Удалите группу ресурсов, включая все ресурсы:
az group delete --name rg-oracle
Дальнейшие действия
Создание высокодоступных виртуальных машин
Ознакомьтесь с примерами Azure CLI для развертывания виртуальных машин