Меню Рубрики

Oracle linux как перенести бд на другой сервер скопировав home

RMAN и перенос базы на другой сервер

В этом посте моего блога я покажу Вам как можно восстановить базу данных Oracle на другом хосте. В этом случае DBID базы данных будет таким же, как и исходная база данных. Вся сложность заключается в том, что когда вы хотите создать новую копию базы данных, используйте RMAN DUPLICATE . Это изменит DBID новой базы данных.

В этом примере имя моей тестовой базы данных dbase1 и она запущены на машине neptune. Целевая задача состоит в том, чтобы сделать резервную копию на машине neptune и залить эту копию на резервную машину saturn, и далее выполнить процесс восстановление экземпляра базы на машине saturn.

Шаг 1. На машине neptun делаем бэкап базы, выполняя команды в утилите RMAN:

Шаг 2. Передаем созданные две части бэкапа на целевую машину (с сервера neptune на saturn), используем команды оболочки bash на unix-сервере:

Шаг 3.Определяем DBID базы на исходной машине Neptune, обращаясь к представлению v$database :

Шаг 4.Теперь выполняем команды на целевой машине Saturn. Прежде всего установим ORACLE_SID

Шаг 5. Установим DBID и восстановим spfile из файла pfile:

Подсказка! Откройте pfile в редакторе, если хотите поменять расположение файлов базы данных

Шаг 6. Запускаем экземпляр с использованием pfile:

Шаг 7. Восстанавливаем управляющие файлы (controlfile) и монтируем базу:

Шаг 8. С помощью SQL*Plus указываем файлы данных (data file) и имена журналов redo log:

Шаг 9. Каталогизируем бекапы:

Шаг 10. Если вы хотите использовать имена файлов, отличные от исходных, то создаем специальный скрипт с использованием SET NEWNAME :

Шаг 11.Открываем базу данных (переводим в состояние Open) с использование опции resetlogs :

Источник

Клонирование базы Oracle

Администраторы баз данных Oracle Database постоянно обновляют разрабатываемые и тестируемые базы данных, и иногда им бывает нужно клонировать базы данных для того, чтобы протестировать стратегии резервного копирования и восстановления. Если база данных имеет небольшой размер, простой процедуры Data Pump Export/Import вполне хватит, но большинство баз данных ей не поддается. Клонировать базы данных Oracle можно тремя различными способами:

  • с применением RMAN-команды DUPLICATE;
  • с использованием интерфейса OEM Database Control;
  • выполняя копирование базы данных вручную с помощью SQL*Plus.

На заметку! Создание обходной (failover) базы данных на случай кризиса не является главной целью клонирования баз данных — для этого применяются резервные (standby) базы данных.

Применение RMAN для клонирования базы данных

В RMAN предлагается команда DUPLICATE, которая позволяет создавать новую базу данных из резервных копий RMAN. Файлы резервных копий восстанавливаются в целевой базе данных, после чего выполняется процедура неполного восстановления, завершающаяся открытием новой базы данных с помощью команды OPEN RESETLOGS. Преимущество подхода с применением RMAN состоит в том, что все перечисленные выше шаги выполняются автоматически, без участия со стороны пользователя. Дублированная база данных может как представлять собой точную копию исходной базы данных, так и содержать только какое-то ее подмножество.

Ниже перечислены шаги, необходимые для выполнения такого вида клонирования базы данных.

1. Создайте новый файл init.ora для вспомогательной базы данных. Этот файл должен содержать следующие параметры, изменяющие имя файлов данных и файлов журналов, чтобы для новой базы данных не использовались файлы исходной базы данных:

  • DB_FILE_NAME_CONVERT — преобразует имена файлов данных целевой базы данных в имена файлов данных дублированной базы данных;
  • DB_FILE_NAME_CONVERT — преобразует имена файлов журналов повторного выполнения, принадлежащие исходной базе данных, в имена файлов журналов повторного выполнения, принадлежащие дублированной базе данных.

2. Запустите экземпляр исходной базы данных, причем обязательно в режиме NOMOUNT.

3. Подключите каталог восстановления к исходной и вспомогательной базе данных:

4. Выполните RMAN-команду DUPLICATE, как показано ниже:

Прежде чем выполнять команду DUPLICATE DATABASE, нужно обязательно делать хранящиеся на диске резервные копии доступными для дублированного экземпляра, либо перенеся их на целевой сервер вручную, либо применив для этого NFS или разделяемые диски.

Перечисленные выше шаги являются очень упрощенной иллюстрацией процесса дублирования базы данных с помощью RMAN; более подробное описание этого процесса можно найти в документации Oracle. При выполнении команды DUPLICATE TARGET DATABASE TO. , как показывалось выше, утилита RMAN будет останавливать вспомогательную базу данных и запускать ее заново, а затем выполнять следующие шаги.

  • Восстанавливать все файлы с резервными копиями, принадлежащие целевой базе данных, во вспомогательной базе данных с использованием всех доступных архивных журналов повторного выполнения.
  • Открывать дублированную базу данных с применением параметра RESETLOGS.

На заметку! Какое бы дублирование базы данных не выполнялось — основанное на использовании резервных копий или активное — утилите RMAN всегда требуется проводить неполное восстановление. Объясняется это тем, что утилита RMAN не делает резервную копию оперативных журналов повторного выполнения, принадлежащих исходной базе данных. Она создает дублированные файлы данных во вспомогательном экземпляре и восстанавливает их с помощью архивных журналов повторного выполнения.

В предыдущем примере было показано, как дублировать базу данных за счет использования файлов резервных копий исходной базы данных. Тем не менее, базу данных можно дублировать и без участия всяких резервных копий за счет применения нового приема, называемого активным дублированием базы данных (active database duplication). Этот прием позволяет копировать файлы активной базы данных по сети прямо во вспомогательный экземпляр. Именно поэтому его еще также называют сетевым дублированием (network-enabled duplication). Далее приводится краткое описание этого приема.

В случае создания дубликата базы данных на другом хосте при дублировании базы данных, для дубликата и исходной базы данных может использоваться одинаковая структура каталогов и идентичные имена файлов данных. То есть переименовывать файлы в дублированной базе данных в такой ситуации не потребуется. Однако вместо этого вместе с командой DUPLICATE DATABASE необходимо указать конструкцию NOFILENAMECHECK, во избежание выполнения ненужных проверок на предмет того, чтобы на одном и том же хосте не использовались одинаковые имена файлов.

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

Сначала нужно создать файл паролей Oracle, поскольку выполнение активного дублирования базы данных без него не возможно. Пароль SYSDBA в файле паролей дублированной базы данных должен выглядеть точно так, как и в исходной базе данных. При желании можно просто заставлять RMAN скопировать файл паролей исходной базы данных на целевой хост, указав в команде DUPLICATE DATABASE значение для параметра PASSWORD FILE. Команда, которую можно использовать для создания файла паролей, выглядит так:

Как уже было сказано выше, вместо того, чтобы применять такую команду, можно просто добавить к команде DUPLICATE DATABASE конструкцию PASSWORD FILE и заставить утилиту RMAN скопировать файл паролей исходной базы данных в целевую.

Хотя в этом примере дубликат и создается на том же самом сервере, из-за того, что применяется метод активного дублирования, необходимо обязательно позаботиться о том, чтобы обе базы данных использовали Oracle Net. Для этого достаточно добавить имя дублированной базы данных в файл listener.ora на хост-сервере, как показано ниже:

После внесения этого изменения потребуется перезапустить службу слушателя. Еще необходимо внести следующее изменение в файл tnsnames.ora:

Далее следует создать для вспомогательного экземпляра файл параметров инициализации. Из-за того, что в рассматриваемом примере для именования файла дублированной базы данных будет использоваться прием с параметром SPFILE, в этом файле параметров потребуется добавить только один параметр — DB_NAME:

Реальные имена файлов можно будет указать в значениях параметров DB_FILE_NAME_CONVERT и LOG_FILE_NAME_CONVERT прямо в самой команде DUPLICATE DATABASE.

Далее понадобится запустить вспомогательный экземпляр в режиме NOMOUNT:

Показанный здесь вспомогательный экземпляр использует простой файл параметров инициализации, в котором содержится только параметр DB_NAME. Однако позже в команде DUPLICATE DATABASE будет указана конструкция SPFILE, что приведет к копированию файла SPFILE исходной базы данных в стандартный каталог вспомогательного экземпляра.

Далее необходимо запустить утилиту RMAN и подключиться к исходной базе данных, вспомогательной базе данных и каталогу восстановления, как показано ниже:

Теперь осталось только выполнить команду DUPLICATE DATABASE, как показано ниже, чтобы создать дублированную базу данных за счет использования файлов активной базы данных по сети:

Указание в команде DUPLICATE DATABASE конструкции SPFILE вынуждает утилиту RMAN копировать файл SPFILE исходной базы данных на сервер, обслуживающий вспомогательную базу данных, а параметры, задаваемые в этой конструкции — вносить в него соответствующие изменения. После этого RMAN останавливает вспомогательный экземпляр и запускает его снова с использованием уже нового отредактированного файла SPFILE.

В частности, в настоящем примере утилита RMAN сначала обновляет файл SPFILE исходной базы данных с помощью значений, которые были указаны в конструкциях PARAMETER_NAME_CONVERT и SET, а затем останавливает вспомогательный экземпляр и перезапускает его снова с использованием уже нового SPFILE. После этого утилита RMAN начинает копировать файлы исходной базы данных по сети. По завершении процесса копирования утилита RMAN, прежде чем открывать дублированную базы данных, выполняет для нее процедуру RECOVER. В ходе процесса дублирования базы данных RMAN делает следующее.

  • Копирует файлы данных, но не файлы, находящиеся в области быстрого восстановления.
  • Копирует необходимые файлы архивных журналов повторного выполнения.
  • Поскольку была указана конструкция SPFILE, копирует файл SPFILE исходной базы данных в целевую.
  • Копирует файл паролей, если указывалась конструкция PASSWORDFILE.
  • Воссоздает файлы оперативных журналов повторного выполнения.
  • Воссоздает управляющие файлы для целевой базы данных.
  • Воссоздает временные файлы в каталоге, который указан в параметре DB_CREATE_FILE_DEST.

Прием активного дублирования базы данных является самым простым способом для дублирования базы данных, поскольку не требует использования предыдущих резервных копий RMAN.

Применение Database Control для клонирования базы данных

В OEM Database Control предлагается специальный мастер — Clone Database Wizard (Мастер клонирования базы данных), который помогает проходить процесс клонирования базы данных шаг за шагом. Ниже перечислены основные функциональные возможности этого механизма клонирования.

  • Клонировать допускается любую базу данных Oracle версии 8.1.7 или выше.
  • Исходная база данных может находиться как в режиме ARCHIVELOG, так и в режиме NOARCHIVELOG.
  • Выполнять клонирование базы данных можно и когда она находится в открытом состоянии. Для осуществления операции клонирования в Database Control на внутреннем уровне применяется утилита RMAN.
  • Database Control будет делать резервную копию файлов данных и восстанавливать их из нее в новом месте, а затем проводить процедуру RECOVER с использованием архивных журналов повторного выполнения.
  • Database Control будет создавать новый экземпляр, файл паролей, любые необходимые сетевые файлы, а также файлы init.ora и SPFILE.
  • Database Control будет автоматически запускать новый экземпляр в открытом режиме.

Ниже описаны шаги, требуемые для выполнения клонирования базы данных с помощью Database Control.

  1. Подключитесь к Database Control, отобразите домашнюю страницу базы данных (Database Home Page) и перейдите на вкладку Maintenance (Обслуживание).
  2. Щелкните на элементе Clone Database (Клонировать базы данных) в разделе Data Movement (Перемещение данных); он находится под элементом Move Database files group (Переместить группу файлов базы данных).
  3. На странице Source Type (Тип источника) выберите вариант Clone a Running Database Instance (Клонировать работающий экземпляр базы данных).
  4. На странице Source Working Directory (Рабочий каталог источника) введите имя пользователя и пароль операционной системы и щелкните на кнопке Next (Далее).
  5. На странице Select Destination (Выберите цель) введите имя новой базы данных и имя целевого хоста и щелкните на кнопке Next.
  6. На странице Destination Options (Параметры цели) при желании настройте места для размещения файлов базы данных и щелкните на кнопке Next.
  7. На странице Schedule (Расписание) укажите, нужно базу данных клонировать немедленно или в более позднее время, и щелкните на кнопке Next.
  8. На странице Clone Database Review (Клонирование базы данных: Обзор), показанной на рисунке ниже, проверьте информацию об исходной и целевой базе данных и щелкните на кнопке Submit Job (Отправить задание), чтобы начать операцию клонирования.

Клонирование базы данных вручную

Для выполнения клонирования базы данных вручную сначала нужно воспользоваться утилитами операционной системы для копирования всех файлов исходной базы данных в целевое место. Если это место находится на том же сервере, тогда еще потребуется изменить имя базы данных, а если на другом, тогда можно оставить и то же самое имя. Сначала делается резервная копия управляющего файла исходной базы данных в файл трассировки (с помощью оператора ALTER DATABASE BACKUP CONTROLFILE TO TRACE), а затем с использованием содержимого этого файла трассировки создается новый управляющий файл, который поможет создать новый клон базы данных.

Ниже приведен краткий перечень шагов, требуемых для выполнения клонирования базы данных вручную. Процедура выглядит довольно просто, причем большую часть времени отнимает само копирование файлов базы данных из исходного в целевое место. Предполагается, что исходная база данных носит имя prod, а целевая — test.

1. Скопируйте файлы базы данных prod в целевое место.

2. Подготовьте текстовый файл для создания управляющего файла для новой базы данных:

3. В целевом месте создайте все необходимые каталоги для различных файлов.

4. Скопируйте из производственной (исходной) базы данных в целевую четыре следующих набора файлов: файлы параметров, управляющие файлы, файлы данных и файлы журналов повторного выполнения.

5. Во всех файлах клона базы данных измените имя базы данных на test.

6. Выполните оператор CREATE DATABASE, который был подготовлен с помощью оператора ALTER DATABASE BACKUP CONTROLFILE TO TRACE.

7. Создайте управляющий файл для базы данных test с помощью следующего оператора:

Это приведет к получению новой базы данных по имени test и нового управляющего файла, указывающего на скопированную (целевую) версию производственной базы данных.

8. Как только появится приглашение после выполнения предыдущей команды, запустите такую команду:

9. И, наконец, измените глобальное имя созданной только что базы данных с помощью следующей команды:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Настройка vpn l2tp mac os
  • Настройка vnc mac os
  • Настройка tor browser mac os
  • Настройка tcp ip mac os
  • Настройка syslog server на mac os