Oracle Database 11G. Резервирование И Восстановление Баз Данных. Руководство Пользователя11/22/2016 Еще раз про Oracle standby / Хабрахабр. Представим себе ситуацию, когда наш проект, использующий в качестве СУБД Oracle, неожиданно (или с надеждой ожидаемо) стал критически важным для бизнеса (соответственно, появилась готовность выделять средства на обеспечение надежности системы). SQL> — команда вводится в sqlplus. В этой статье везде, где это не определено явно, подразумевается, что sqlplus запущен в административном режиме (sqlplus / as sysdba), а экземпляр базы задан через переменную $ORACLE. Здесь также, если явно не определено что- то другое, подразумевается, что rman запущен командой rman target /, а экземпляр базы задан через переменную $ORACLE. Без них не могут быть открыты файлы данных и поэтому не может быть открыт доступ к информации базы данных. Файлы данных (Data files) — содержат информацию базы данных. Оперативные журналы (Redo logs) — содержат информацию о всех изменениях, произошедших в базе денных. Эта информация может быть использована для восстановления состояния базы при сбоях. Базы данных Oracle и другие продукты. Руководство администратора баз данных. Подробно рассматриваются все ключевые аспекты администрирования баз данных, включая резервное копирование и восстановление, ежедневные задачи. Координатор Евро-Азиатской Группы Пользователей Oracle, Горячее полное резервирование БД; Полное резервирование табличного пространства; Полное. Руководство администратора баз данных. Управление пользователями и безопасность базы данных. Загрузка данных, резервное копирование и восстановление. Руководство пользователя Комплект: Oracle Database 11g Цена: 6040 руб Учетный номер: B28270-02 Страниц: 598 Аннотация: Книга предназначена для администраторов баз данных, выполняющих следующие задачи. Курс посвящен основам управления сервером базы данных Oracle 11g. Управление безопасностью пользователей. Основные концепции, 5978. Резервирование и восстановление баз данных. Руководство пользователя. Руководство администратора. Настройка доступа к библиотекам Oracle OLE DB для Удаление базы данных ДЕЛО с помощью Мастера баз данных. Резервное копирование и восстановление информации. 9-5 операционными системами и СУБД Oracle версии 10g / 11g /12c. База данных Oracle также имеет ретроспективную технологию восстановления ( Oracle Flashback Technology), которая позволяет вернуть базе Эта технология защищает только от логического повреждения данных и ошибок пользователей, поэтому она не в полной мере. Руководство администратора баз данных - энциклопедический справочник по СУБД Oracle 11g, описывающий все инструменты и Управление пользователями и безопасность базы данных Часть V. Загрузка данных, резервное копирование и восстановление Глава 13. Существуют другие файлы, которые формально не входят в базу данных, но важны для успешной работы БД. Файл параметров — используется для описания стартовой конфигурации экземпляра. Файл паролей — позволяет пользователям удаленно подсоединяться к базе данных для выполнения административных задач. Архивные журналы — содержат историю созданных экземпляром оперативных журнальных файлов (их автономные копии). Эти файлы позволяют восстановить базу данных. Используя их и резервы базы данных, можно восстановить потерянный файл данных. Главная идея при создании standby экземпляра состоит в том, чтобы с помощью выполнения транзакций, сохраненных в оперативных или архивных журналах основной БД, поддерживать резервную БД в актуальном состоянии (такой механизм для Oracle называется Data Guard). Отсюда следует первое требование к нашей основной базе — она должна быть запущена в archivelog mode. Вторым требованием является наличие файла паролей. Это позволит удаленно подключаться к нашей БД в административном режиме. Третье требование — это режим force logging. Этот режим нужен для принудительной записи транзакций в redo logs даже для операций, выполняемых с опцией NOLOGGING. Отсутствие этого режима может привести к тому, что на standby базе будут повреждены некоторые файлы данных, т. Т. е., если ваша основная база работает на Linux- сервере, то standby- сервер не может быть под управлением Windows. Все примеры в этой статье будут ориентиваны на unix- системы, однако, их отличие от случая Windows- систем, в основном, состоит только в способе написания путей к файлам. Не забываем также, что обмен данными между основным и standby серверами будет происходить по SQL- Net, поэтому необходимо, чтобы соединения на соответствующий порт (как правило, 1. Будем считать, что наша база называется test. Мы будем так настраивать конфигурацию основной и standby базы, чтобы в любой момент мы могли поменять их роли местами (switchover). Мы планируем, что наша система будет использовать Data Guard protection mode, который называется MAXIMUM PERFORMANCE. Итак, поехали. Для начала поверяем соответствие нашей БД необходимым требованиям. Смотрим, в каком режиме работает наша основная БД: SQL> select name, open. Проверяем наличие файла паролей: SQL> select * from v$pwfile. Включаем режим force logging: SQL> alter database force logging; Переходим к конфигурированию нашей системы. Для начала выполним необходимые настройки на основной базе. Будем сохранять все данные в каталоге /data/backup. Создаем standby redo logs. Они нужны только на standby базе для записи данных, сохраняемых в redo logs на основной базе. На основной базе они нам понадобятся, когда мы будем переключать ее в режим standby и при этом использовать real- time apply redo. Файлы standby redo logs должны быть такого же размера как и online redo logs. Посмотреть размер online redo logs можно с помощью команды: SQL> select bytes from v$log; BYTES- -- -- -- -- -5. Смотрим, какие группы для redo logs есть в нашей базе: SQL> select group# from v$logfile; GROUP#- -- -- -- -- -1. Создаем standby redo logs: SQL> alter database add standby logfile group 4 '/oradata/test/stnbylog. Database altered. SQL> alter database add standby logfile group 5 '/oradata/test/stnbylog. Database altered. SQL> alter database add standby logfile group 6 '/oradata/test/stnbylog. Database altered. Создаем файл с параметрами нашего экземпляра (pfile). Мы будем учитывать, что наша основная база может быть переключена в режим standby, а это требует задания параметров, которые будут использоваться только в standby режиме. SQL> create pfile='/data/backup/pfile. PROD. ora' from spfile; Нам необходимо добавить некоторые параметры в получившийся файл, если их там нет: db. Параметр ASYNC указывает, что данные, сгенерированные транзакцией, не обязательно должны быть получены на standby до завершения транзакции – это не приведет к остановке основной базы, если нет связи со standby. Пока мы не создали standby базу, этот параметр можно поставить в значение DEFER, если мы не хотим видеть лишние сообщения о недоступности standby базы в alert. При таком значении параметра все создаваемые или удаляемые файлы основной базы будут автоматически создаваться или удаляться и на standby базе. Если мы все- таки хотим разместить нашу standby базу в каталогах, отличных от тех, в которых размещена основная база, нам понадобятся дополнительные параметры: db. Поэтому, нам придется в конфигурации использовать то имя, которое есть на данный момент. Посмотреть его можно с помощью команды: SQL> show parameter db. На работающей базе мы не сможем поправить параметр log. Поэтому только добавляем направление копирования в standby базу: SQL> alter system set log. Для этого мы будем пользоваться утилитой rman. Необходимо, чтобы место, где располагается бэкап, из которого мы будем разворачивать standby базу, было точно таким же, как и место, куда мы этот бэкап сохраняли. Для решения этой задачи есть два очевидный пути: скопировать данные бэкапа с основного сервера на standby в точно такой же каталог, созданный там, или использовать для бэкапа сетевой ресурс, который одинаково монтируется на обоих серверах. Запускаем rman на основном сервере: $ rman target /Интересный момент для случая, когда Oracle установлен на Linux. Если у вас установлен пакет Polyglot. Man (Rosetta. Man), то при попытке выполнить $ rman target /может возникнуть ошибка: rman: can't open target. Эта ситуация возникает в случае, если путь до исполняемого файла rman этого пакета — (например, /usr/X1. R6/bin/rman) в переменной окружения $PATH располагается раньше, чем путь до ораклового rman. Тогда rman выдаст ошибку: RMAN- 2. Specification does not match any archivelog in the recovery catalog. Для исправления ситуации необходимо проверить и изменить статусы архивных журналов в репозитории rman. Для этого выполним следующую команду: RMAN> change archivelog all crosscheck; Если бэкап прошел успешно, копируем содержимое каталога /data/backup/ на standby сервер (если мы не использовали общий сетевой ресурс для бэкапа) и приступаем к созданию экземпляра на standby сервере. Для начала нам необходимо установить Oracle на standby- сервере без создания экземпляра БД. Для облегчения дальнейшей жизни пути к $ORACLE. Также устанавливаем все патчи, которые были установлены на основном сервере, для полного соответствия версий Oracle. Создаем конфигурацию listener- а и net service names. Так как для разворачивания копии основной базы на standby сервере мы будем использовать rman, запущенный на боевом сервере, а при этом standby экземпляр базы у нас будет находится в nomount режиме, то нам необходимо явно прописать сервис в listener. В итоге listener. SID. Тут важно не забыть, что нужно создать все каталоги для хранения файлов данных и журналов, а также каталоги adump, bdump, cdump, dpdump, udump, располагающиеся обычно в $ORACLE. Для этого перепишем на standby сервер файл pfile. PROD. ora, переименовав его в pfile. STAN. ora, и внесем необходимые исправления в ту его часть, которую мы редактировали ранее: # эти параметры нам понадобятся для работы в режимах PRIMARY и STANDBYdb. Для этого переходим на основной сервер и запускаем rman. Подключаемся к будущей standby базе и выполняем дуплицирование (мы помним, что бэкап данных и контрольный файл у нас лежат в каталоге, который и с основного сервера и со standby виден как /data/backup): RMAN> connect auxiliary sys@teststan. RMAN> duplicate target database for standby nofilenamecheck dorecover; Параметр nofilenamecheck нам нужен, чтобы rman не ругался на повторяющиеся имена файлов (если мы используем одинаковую структуру каталогов на основном и standby серверах). Если все прошло успешно, то переводим систему в режим автоматического применения транзакций на standby базе. Переключаем журнальный файл и смотрим последний номер архивного журнала на основной базе: SQL> alter system switch logfile; System altered. SQL> select max(sequence#) from v$archived. Тогда их надо вручную скопировать на standby сервер (в нашем случае в каталог /oradata/test/archive), произвести ручную «накатку»: SQL> recover standby database; и после этого опять запустить режим Real- time apply redo: SQL> alter database recover managed standby database using current logfile disconnect; Процессы переключения ролей между экземплярами (switchover) и перевода standby базы в режим primary в случае падения основной базы (failover) имеют множество своих подводных камней, поэтому это тема отдельной статьи.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |