Обновление до Oracle Database 11g

Илья Дергунов

Илья Дергунов

Автор статьи. ИТ-специалист с 20 летним стажем, автор большого количества публикаций на профильную тематику (разработка ПО, администрирование, новостные заметки). Подробнее.

Обновление Oracle до версии 11gВ предыдущей моей статье вы научились устанавливать ПО сервера Oracle Database 11g. Естественно, следующий шаг — запуск базы данных с помощью этого программного обеспечения. В большинстве случаев система уже содержит базы данных Oracle, управляемые более ранними версиями ПО сервера. Поэтому необходимо модернизировать (апгрейдить, обновлять) текущие базы данных до версии Oracle Database 11g. В этой статье показано, как обновлять базу данных более ранней версии до версии Oracle Database 11g. Вначале мы бегло ознакомимся с доступными методами модернизации до новой версии, а затем рассмотрим применение нового помощника по обновлению базы данных (Database Upgrade Assistant — DBUA), а также обновление вручную, включая использование новых программных средств Oracle Pre-Upgrade Information Tool (Средство сбора информации перед модернизацией) и Post-Upgrade Status Tool (Средство получения информации о состоянии после обновления).

Способы обновления до версии Oracle Database 11g

Компания Oracle сделала процесс обновления (модернизации) базы данных от Oracle9i (или даже более ранних версий) либо Oracle Database 10g весьма простым, благодаря автоматизации значительной его части. В этом разделе рассмотрены различные пути перехода к БД Oracle 11g.

В зависимости от текущей версии БД, непосредственное обновление до версии Oracle Database 11g Release 1 (11.1) может быть возможна или не возможна. Непосредственное обновление до версии Oracle Database 11g Release 1 возможна, если текущая база данных построена на основе Oracle 9.2.0.4 или более новой версии ПО. Для базы данных Oracle, версия которой предшествует Oracle 9.2.0.4, переход придется выполнить, используя несколько промежуточных версий, как показано в следующих схемах обновления:

Например, переход от базы данных версии 8.1.6 должен был бы выполняться по следующей схеме: обновление версии 8.1.6 до версии 8.1.7; модернизация версии 8.1.7 до версии 9.2.0.8; обновление версии 9.2.0.8 до версии 11.1.

Методы и средства обновления Oracle

Существуют два метода обновление: традиционный метод модернизации вручную и метод с применением Database Upgrade Assistant (DBUA), который автоматизирует процесс обновления. DBUA представляет собой усовершенствованную версию Oracle Data Migration Assistant (Помощник по переносу данных Oracle), который использовался в предшествующих версиях базы данных.


На заметку! Процесс обновления до Oracle Database 11g автоматизирован до некоторой степени даже при его выполнении вручную. В последующих разделах статьи показано использование команды STARTUP UPGRADE в ходе выполнения процесса вручную. После запуска этой команды необходимо запустить главный сценарий обновления, который выполняет модернизацию установленного ПО, не приводя к проблемам взаимозависимости. База данных определяет порядок, в котором нужно обновлять компоненты, запрашивая представление словаря данных DBA_SERVER_REGISTRY. Она запросит также это представление о состоянии каждого компонента после завершения обновления. Новое программное средство Post-Upgrade Status Tool, рассмотренное далее в этой статье, также использует представление DBA_SERVER_REGISTRY. Представление DBA_REGISTRY или DBA_SERVER_REGISTRY содержит информацию о состоянии обновления отдельных компонентов базы данных. Эти представления почти идентичны, за исключением того, что DBA_REGISTRY содержит дополнительный столбец пространства имен. Если в качестве пространства имен установить SERVER, результаты будут идентичными при использовании любого представления словаря данных.


В прошлом для выполнения обновления в ходе процесса приходилось запускать различные сценарии. Но процесс модернизации до Oracle Database 11g требует использования только единственного сценария обновления (пример использования этого сценария приведен позднее ниже в разделе “Обновление вручную”).

Процесс обновления Oracle вручную

Выполнение процесса обновления вручную требует повышенной тщательности: этот процесс подразумевает удаление или изменение всех устаревших параметров инициализации и запуска всех предлагаемых компанией Oracle сценариев модернизации. Преимущество этого метода состоит в том, что можно управлять всем процессом обновления. Однако ему присущи и определенные недостатки: необходимо самому выполнить резервное копирование базы данных, нужно использовать корректные параметры инициализации и потребуется выделить достаточный объем свободного дискового пространства табличному пространству System.


На заметку! Старые утилиты импорта и экспорта по-прежнему доступны для использования, хотя им на смену пришли утилиты Data Pump Export and Import (Потоковый экспорт и импорт данных). Эти утилиты по-прежнему достаточно полезны при наличии очень маленькой базы данных.


Помощник по обновлению базы данных Oracle Database

DBUA выполняет предшествующие установке проверки и автоматически управляет процессом обновления, решая следующие задачи.


Совет. DBUA имеет графический интерфейс, но его можно использовать также в "тихом" режиме.


Средство сбора информации перед обновлением

Прежде чем приступать к обновлению, систему необходимо проверить на предмет любых необходимых изменений. К счастью, теперь мы располагаем утилитой Pre-Upgrade Information Tool (Средство сбора информации перед обновлением), которая выполняет эту задачу. Утилита Pre-Upgrade Information Tool, которая реализуется посредством выполнения поставляемого компанией Oracle сценария, помогает собрать критичную информацию до начала процесса обновления. Слишком часто в прошлом администраторам баз данных приходилось заново запускать процесс модернизации из-за несовместимых настроек инициализации или слишком малого размера табличного пространства. Это новое средство помогает избегнуть подобных ситуаций.


На заметку! И процесс обновления вручную, и DBUA используют одну и ту же утилиту Pre-Upgrade Information Tool. DBUA автоматически запускает ее в ходе начальной проверки.


Pre-Upgrade Information Tool предоставляет следующую информацию.

Программа Pre-Upgrade Information Tool выполнит множество полезных задач. Достаточно реализовать рекомендованные ею изменения, и систем будет готова к обновлению до Oracle Database 11g.

В действительности Pre-Upgrade Information Tool представляет собой SQL-сценарий utlu111i.sql (хранится в каталоге $ORACLE_HOME/rdbms/admin). Для его вызова необходимо выполнить следующую команду: 

SQL> @$ORACLE_HOME/rdbms/admin/utlu111i.sql

Утилита Post-Upgrade Status Tool

Новое программное средство Post-Upgrade Status Tool (Средство получения информации о состоянии после обновления) предоставляет подробную сводку о результатах процесса обновления и перечисляет все действия, которые нужно выполнить для устранения обнаруженных проблем. Отсутствие сообщений об ошибках во время процесса установки не гарантирует, что обновление была выполнена успешно — утилита Post-Upgrade Status Tool просматривает DBA_SERVER_REGISTRY для выяснения состояния каждого компонента базы данных. Если один или более компонентов не были модернизированы правильно, Post-Upgrade Status Tool отобразит подробную информацию о существующих проблемах.


Совет. Средство Post-Upgrade Status Tool запускается автоматически при использовании DBUA. При проведении обновления вручную ее придется запустить самостоятельно.


Совместимость базы данных


Уровень совместимости базы данных устанавливается с помощью параметра инициализации COMPATIBLE — уровень совместимости указывает версию, с которой база данных должна оставаться совместимой. Это важно, поскольку параметр COMPATIBLE помогает обеспечить обратную совместимость с более ранними версиями. В Oracle Database 11g Release 1 значение этого параметра по умолчанию — 11.0.0.0, а минимальное значение — 10.0.0. При выполнении обновления до Oracle 11g и установке значения COMPATIBLE равным 10.0.0 это означает, что можно отменить изменения, выполненные процессом модернизации, и вернуться к более старой версии, если процесс обновления выполняется не так, как ожидалось. В противном случае единственный способ возврата к более старой версии — восстановление ее из резервной копии. Перед выполнением обновления до Oracle Database 11g компания Oracle рекомендует устанавливать параметр COMPATIBLE в 10.0.0, что гарантирует возможность возврата к Oracle Database 10g, если такая необходимость возникнет. Однако за это удобство приходится расплачиваться возможностью использования только ограниченного поднабора новых функциональных возможностей Oracle Database 11g. После того как обновление базы данных прошла успешно и появляется уверенность в необходимости продолжения модернизации, параметр инициализации COMPATIBLE в SPFILE можно установить в соответствие с номером новой версии (11.1.0).


Утилита Post-Upgrade Status Tool предоставляет следующую информацию.

Утилита Post-Upgrade Status Tool также представляет собой SQL-сценарий по имени utlu111s.sql, расположенный в каталоге $ORACLE_HOME/rdbms/admin.

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


Совет. Так какой же из двух методов обновления (DBUA или вручную) лучше? Основополагающие сценарии и процедуры обновления, используемые при обоих методах, идентичны — поэтому выбирайте тот из них, который представляется более удобным.


Подготовка базы данных Oracle к обновлению

Приступая к обновлению до Oracle Database 11g, следует знать о следующих изменениях, касающихся прав доступа, временных меток и хранилища Oracle Database Vault.

Уменьшенные полномочия роли CONNECT

В Oracle Database 11g роль CONNECT обладает только правами CREATE SESSION (создание сеанса) и никакими другими. В предшествующих версиях роль CONNECT имела и другие полномочия, которые автоматически аннулировались во время обновления до Oracle Database 10g. Если каким-либо пользователям, которым в предшествующей версии была назначена роль CONNECT, требуются ранее предоставлявшиеся этой роли полномочия, конкретные полномочия необходимо выдать перед обновлением до Oracle Database 11g.

Установка временной метки с помощью типа данных Time Zone

Если версии часового пояса (time zone), используемые сервером Oracle Database 11g и обновляемой базы данных различны, модернизации будет неудачной. Во избежание этого вначале необходимо обновить существующую базу данных до 4 версии файла часового пояса (путь 5632264—TZ v4 FILE).

Отключение Oracle Database Vault

Перед обновлением базы данных потребуется отключить хранилище Oracle Database Vault, если оно было включено.

Обновление с помощью DBUA

DBUA сочетает задачи, выполняемые утилитой Pre-Upgrade Information Tool и процессом обновления вручную. DBUA автоматически выполняет следующие предшествующие установке действия.

DBUA может выполнять обновление не только конфигурации одиночного экземпляра, но и конфигураций Real Application Clusters и резервной базы данных Oracle.

Запуск DBUA

Чтобы запустить DBUA, просто введите dbua в командной строке операционной системы. Но вначале нужно зарегистрироваться в системе в качестве пользователя oracle. На сервере Windows для запуска утилиты DBUA нужно вызывать команду меню StartAll ProgramsOracleConfiguration and Migration ToolsDatabase Upgrade Assistant (ПускВсе программыOracleСредства конфигурирования и переносаПомощник по обновлению базы данных).

Как уже упоминалось, если не хотите использовать графический интерфейс пользователя, с помощью DBUA можно выполнить обновление в режиме молчания ("тихом" режиме). Это означает, что при вызове DBUA никакие приглашения на выполнение тех или иных действий отображаться не будут.

Например, чтобы вызвать DBUA в режиме молчания для базы данных nina, потребовалось бы выполнить следующую команду:

$ dbua -silent –dbName nina

Вот и все. Текущая база данных будет перенесена в среду версии Oracle Database 11g.

Выполнение DBUA

Рассмотрим шаги автоматического процесса модернизации посредством вызова DBUA из командной строки.

1. Вызовите DBUA с помощью команды

$ dbua 

2. Откроется окно Welcome (Приветствие) графического интерфейса пользователя DBUA, как показано на рис. 9.5. Щелкните на кнопке Next (Далее).

3. В окне Selecting a Database Instance (Выбор экземпляра базы данных) вначале удостоверьтесь, что база данных, которую требуется обновить, запущена. Затем выберите экземпляр, который требуется обновить, и щелкните на кнопке Next.

4. В окне Recompile Invalid Objects (Перекомпилировать неправильные объекты) выберите опцию перекомпиляции неправильно скомпилированных объектов. Процесс обновления всегда признает недействительными несколько объектов базы данных, и у вас имеется возможность разрешения DBUA автоматически перекомпилировать неправильные объекты базы данных сразу после завершения обновления.


Совет. Разрешение ПО Oracle выполнить перекомпиляцию неправильных объектов в ходе процесса обновления аналогично запуску сценария utlrp.sql в ходе модернизации вручную.


5. В следующем окне Choosing a Database Backup Procedure (Выбор процедуры резервного копирования базы данных) можно выбрать опцию выполнения “холодного” резервного копирования базы данных. Если резервное копирование уже выполнялось, выберите опцию I Have Already Backed Up My Database (Я уже выполнил резервное копирование своей базы данных).


Совет. Если процесс обновления выполняется недостаточно успешно и возникает необходимость возврата к предыдущему состоянию базы данных, созданная утилитой DBUA резервная копия БД позволяет это проделать без труда. Резервное копирование можно также выполнить вручную до начала процесса апгрейда. При выборе опции, позволяющей DBUA провести резервное копирование, перед запуском обновления до версии 11.1.0 утилита создаст резервные копии файлов БД в каталоге, указанном в поле Backup Directory (Каталог резервной копии). DBUA так-же создаст файл db_name_restore.sh (db_name_restore.bat в системе Windows), который позволяет при необходимости легко восстановить файлы текущей базы данных.


6. В окне Management Options (Параметры управления) можно сконфигурировать параметры OEM. Для управления базой данных можно выбрать версию Grid Control (Сетевое управление) или Database Control (Управление базой данных) OEM. Компонент Database Control входит в состав установочного пакета, и Oracle автоматически его инсталлирует. Компонент Grid Control нужно устанавливать отдельно. Если ПО Grid Control не было установлено, выберите опцию Database Control.

7. В окне Database Credentials (Полномочия базы данных) нужно выбрать пароли для пользователей Oracle, такие как SYSMAN и DBSNMP.

8. В окне Recovery Configuration (Конфигурация восстановления) можно указать область пакетного восстановления, а также включить функцию архивирования.

9. В окне Network Configuration (Конфигурация сети) на вкладке Listener (Слушатель) можно выбрать регистрацию обновленной базы данных избранными или же всеми слушателями. Если в новом домашнем каталоге Oracle сконфигурированы службы каталогов, нужно на вкладке Directory Service (Служба каталогов) указать, следует ли регистрировать обновленную базу данных службой каталогов.

10. В окне Upgrade Summary (Сводка по апгрейду), показанном на рис. 9.6, отображаются исходные и конечные базы данных и их версии, а также список всех устаревших и новых параметров инициализации. Это окно предоставляет также информацию о предполагаемом времени, которое потребуется для обновления базы данных. Прежде чем начать процесс апгрейда DBUA автоматически останавливает обновляемую базу данных. Чтобы начать процесс, щелкните на кнопке Finish (Готово).

11. По завершении обновления базы данных ее результаты отобразятся в окне Upgrade Results (Результаты апгрейда). На этом этапе предоставляются три возможности:

Восстановление базы данных Oracle, предшествующей обновлению

Если по завершении процесса обновления, выполненного DBUA, апгрейд до новой версии представляется нецелесообразной, можно просто щелкнуть на кнопке Restore (Восстановить) и вернуться к предыдущей версии базы данных. Если DBUA создал резервную копию БД, ПО Oracle автоматически восстановит исходную базу данных и ее исходные параметры. Если программа DBUA не выполняла резервное копирование, она не сможет автоматически возвратить базу данных к предыдущей версии. В этом случае придется воспользоваться резервными копиями и вручную восстановить более раннюю версию БД.

Чтобы вернуться к предыдущей версии БД, можно также впоследствии запустить сценарий, предоставляемый системой Oracle. ПО Oracle автоматически создает этот сценарий при выборе опции резервного копирования базы данных в начале процесса апгрейда.

Обновление Oracle вручную

Чтобы понять, что происходит во время обновления БД, в этом разделе статьи мы рассмотрим процесс обновления вручную. Помните, что многие из этих действий DBUA выполняет автоматически.

Сценарии обновления и перехода к более ранней версии

Ниже описаны различные сценарии, используемые для обновления до Oracle Database 11g. Все эти сценарии можно найти в каталоге $ORACLE_HOME/rdbms/admin.

Ниже приведен перечень действий по обновлению до Oracle Database 11g вручную.

  1. Создайте файл спулинга.
  2. Зарегистрируйтесь в качестве пользователя с полномочиями SYSDBA и запустите утилиту Pre-Upgrade Information Tool. Выполните любые рекомендуемые ею изменения.
  3. Создайте резервную копию базы данных, которую собираетесь модернизировать.
  4. Скопируйте текущий файл init.ora в новое его местоположение в Oracle Database 11g.
  5. Остановите базу данных и снова запустите ее в новом домашнем каталоге Oracle 11g в режиме STARTUP UPGRADE.
  6. Создайте необходимое табличное пространство Sysaux.
  7. Запустите сценарий обновления catupgrd.sql.
  8. Проверьте, не стали ли какие-либо объекты недопустимыми во время обновления базы данных.
  9. Запустите сценарий utlrp.sql, чтобы перекомпилировать любые объекты, которые стали недопустимыми во время обновления базы данных.
  10. Запустите утилиту Post-Upgrade Status Tool.
  11. Завершите запись файла спулинга.
  12. Остановите и запустите новую базу данных.

Все перечисленные действия по обновлению описаны в последующих разделах.

Создание файла спулинга

Создайте файл спулинга для записи процесса обновления, чтобы впоследствии его можно было легко просмотреть: 

SQL> SPOOL upgrade.log

Запуск утилиты Pre-Upgrade Information Tool

Вначале скопируйте утилиту Pre-Upgrade Information Tool ( сценарий utlu11i.sql) из каталога $ORACLE_HOME/rdbms/admin Oracle Database 11g во временный каталог, например, /u01/app/oracle/upgrade. Зарегистрируйтесь в среде SQL*Plus в качестве пользователя SYS. Для запуска утилиты Pre-Upgrade Information Tool выполните следующую команду: 

SQL> @/u01/app/oracle/upgrade/utlu11i.sql

Чтобы просмотреть результаты проверки, выполненной перед модернизацией, отключите спулинг с помощью следующей команды:

SQL> spool off 

Просмотрите файл спулинга upgrade.log на предмет выполнения всех требований для обновления. Пример фрагмента вывода приведен в листинге 9.1.


SQL> @utlu111i.sql
Oracle Database 11.1 Pre-Upgrade Information Tool 01-30-2008 05:33:22
.
**********************************************************************
Database:
**********************************************************************
--> name: ORCL10
--> version: 10.2.0.1.0
--> compatible: 10.2.0.1.0
--> blocksize: 8192
--> platform: Linux IA (32-bit)
--> timezone file: V2
.
**********************************************************************
Tablespaces: [make adjustments in the current environment]
**********************************************************************
--> SYSTEM tablespace is adequate for the upgrade.
.... minimum required size: 723 MB
.... AUTOEXTEND additional space required: 243 MB
--> UNDOTBS1 tablespace is adequate for the upgrade.
.... minimum required size: 471 MB
.... AUTOEXTEND additional space required: 441 MB
--> SYSAUX tablespace is adequate for the upgrade.
.... minimum required size: 412 MB
.... AUTOEXTEND additional space required: 182 MB
--> TEMP tablespace is adequate for the upgrade.
.... minimum required size: 61 MB
.... AUTOEXTEND additional space required: 41 MB
--> EXAMPLE tablespace is adequate for the upgrade.
.... minimum required size: 69 MB
.
**********************************************************************
Update Parameters: [Update Oracle Database 11.1 init.ora or spfile]
**********************************************************************
WARNING: --> "sga_target" needs to be increased to at least 336 MB
.
**********************************************************************
Renamed Parameters: [Update Oracle Database 11.1 init.ora or spfile]
**********************************************************************
-- No renamed parameters found. No changes are required. 
.
**********************************************************************
Obsolete/Deprecated Parameters: [Update Oracle Database 11.1 init.ora or spfile]
**********************************************************************
--> "background_dump_dest" replaced by "diagnostic_dest"
--> "user_dump_dest" replaced by "diagnostic_dest"
--> "core_dump_dest" replaced by "diagnostic_dest"
.
**********************************************************************
Components: [The following database components will be upgraded or installed]
**********************************************************************
--> Oracle Catalog Views [upgrade] VALID
--> Oracle Packages and Types [upgrade] VALID
--> JServer JAVA Virtual Machine [upgrade] VALID
--> Oracle XDK for Java [upgrade] VALID
--> Oracle Workspace Manager [upgrade] VALID
--> OLAP Analytic Workspace [upgrade] VALID
--> OLAP Catalog [upgrade] VALID
--> EM Repository [upgrade] VALID
--> Oracle Text [upgrade] VALID
--> Oracle XML Database [upgrade] VALID
--> Oracle Java Packages [upgrade] VALID
--> Oracle interMedia [upgrade] VALID
--> Spatial [upgrade] VALID
--> Data Mining [upgrade] VALID
--> Expression Filter [upgrade] VALID
--> Rule Manager [upgrade] VALID
--> Oracle OLAP API [upgrade] VALID
.
**********************************************************************
Miscellaneous Warnings
**********************************************************************
WARNING: --> Database is using an old timezone file version.
.... Patch the 10.2.0.1.0 database to timezone file version 4
.... BEFORE upgrading the database. Re-run utlu111i.sql after
.... patching the database to record the new timezone file version.
WARNING: --> Database contains stale optimizer statistics.
.... Refer to the 11g Upgrade Guide for instructions to update
.... statistics prior to upgrading the database.
.... Component Schemas with stale statistics:
.... SYS
.... OLAPSYS
.... SYSMAN
.... CTXSYS
.... XDB
WARNING: --> Database contains schemas with objects dependent on network
packages.
.... Refer to the 11g Upgrade Guide for instructions to configure Network ACLs.
.... USER SYSMAN has dependent objects.
WARNING: --> EM Database Control Repository exists in the database.
.... Direct downgrade of EM Database Control is not supported. Refer to the
.... 11g Upgrade Guide for instructions to save the EM data prior to upgrade.
.
PL/SQL procedure successfully completed.
SQL> spool off

Прежде чем продолжить обновление, проведите все изменения, указанные утилитой Pre-Upgrade Information Tool.

Создание резервной копии базы данных

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


Совет. На этом этапе обязательно установите переменную ORACLE_HOME в соответствии с новым домашним каталогом Oracle, используя формат $ORACLE_BASE/product/11.1/имя_БД.


Копирование файла параметров

Скопируйте текущий файл init.ora в его расположение по умолчанию в новом домашнем каталоге Oracle Database 11g ($ORACLE_HOME/dbs). Потребуется также внести изменения, рекомендуемые утилитой Pre-Upgrade Information Tool. Удалите все устаревшие и неподходящие параметры и добавьте новые параметры, такие как MEMORY_TARGET, автоматизирующий управление памятью.

Если используете файл пароля, переместите или скопируйте этот файл в домашний каталог Oracle Database 11g Release 1 (11.1).

Запуск новой базы данных

Остановите текущую базу данных, если она запущена, и снова запустите ее, используя обновленный файл параметров init.ora, расположенный в новом домашнем каталоге Oracle Database 11g. Убедитесь, что переменные ORACLE_HOME и PATH указывают на новые каталоги Oracle Database 11g Release 1 (11.1). Чтобы запустить базу данных под управлением ПО версии Oracle 11.1, нужно использовать команду STARTUP UPGRADE, которая указывает на необходимость модификации тех параметров инициализации, которые в противном случае вызывали бы ошибки во время обновления (например, новый режим запуска установит значение параметра job_que_processes равным 0). Режим обновления запуска запускает ограниченный сеанс и подготавливает среду к апгрейду.

Пример запуска базы данных с помощью команды STARTUP UPGRADE показан в листинге 9.2. Обратите внимание, что если параметр инициализации хранится в каталоге, используемом по умолчанию ($ORACLE_HOME/dbs), его путь в команде STARTUP UPGRADE можно не указывать.


 

SQL> CONNECT sys/sammyy1 AS SYSDBA
Connected to an idle instance.
SQL> STARTUP UPGRADE
ORACLE instance started.
Total System Global Area            314572800 bytes
Fixed Size                            1236756 bytes
Variable Size                        99164396 bytes
Database Buffers                    213909504 bytes
Redo Buffers                           524288 bytes
Database mounted.
Database opened.
SQL>

Если модернизация выполняется от версии Oracle Database 9i Release 2 (9.2), потребуется создать табличное пространство Sysaux, которое обязательно для версий Oracle 10g и 11g. Код создания табличного пространства Sysaux имеет следующий вид:

SQL> CREATE TABLESPACE sysaux DATAFILE '/u01/app/oracle/sysaux01.dbf'
SIZE 1000m
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO
ONLINE;

Теперь с технической точки зрения база данных преобразована в базу данных версии Oracle Database 11g, как показывает следующий запрос:

SQL> SELECT * FROM V$VERSION;
BANNER
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
PL/SQL Release 11.1.0.6.0 - Production
CORE 11.1.0.6.0 - Production
TNS for Linux: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production
SQL>

На следующем шаге мы выполним фактическое преобразование текущей базы данных в БД версии 11.1.

Запуск сценария обновления базы данных

Из среды Oracle Database 11g Release 1 (11.1) запустите сценарий catupgrd.sql (размещенный в каталоге $ORACLE_HOME/rdbms/admin). Этот сценарий автоматически запускает соответствующий сценарий обновления для модернизируемой версии БД и использует процедуры из пакета DBMS_REGISTRY для проведения обновления различных компонентов.

Зарегистрируйтесь в качестве пользователя с полномочиями SYSDBA и запустите сценарий обновления из новой среды: 

SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql

Сценарий catupgrd.sql создает и изменяет определенные таблицы словарей данных и модернизирует или устанавливает несколько компонентов в новую БД.

Запуск сценария действий по обновлению

По завершении выполнения сценария catupgrd.sql потребуется запустить новый сценарий обновления catuppset.sql для выполнения действий по модернизации, которые не требуют, чтобы база данных пребывала в режиме апгрейда: 

SQL> @$ORACLE_HOME/rdbms/admin/catuppset.sql

Сценарий catuppset.sql можно запускать одновременно со сценарием catupgrd.sql в отдельном сеансе SQL*Plus.

Перезапуск экземпляра

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

Запуск сценария действий, следующих за обновлением

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

SQL> @catuppset.sql

Для экономии времени сценарий catuppset.sql можно запускать одновременно со сценарием catupgrd.sql.

Проверка наличия недопустимых объектов

В ходе процесса обновления Oracle будет создавать, удалять и изменять некоторые объекты базы данных, тем самым делая непригодными к использованию некоторые внутренние пакеты и процедуры Oracle. По завершении выполнения сценария обновления необходимо проверить наличие недопустимых объектов: 

SQL> SELECT count(*) FROM DBA_OBJECTS
WHERE status = 'INVALID';

Перекомпиляция и проверка допустимости объектов

Запустив предоставляемый Oracle сценарий utlrp.sql, можно выполнить перекомпиляцию и проверку допустимости всех объектов, признанных недопустимыми во время процесса обновления. Во время этого процесса сценарий utlrp.sql вызывает сценарий utlprp.sql (упаковщик на основе пакета UTL_RECOMP). Обратите внимание, что если это не сделать сейчас, ПО Oracle будет динамически компилировать каждый из признанных недопустимым объектов при обращении к ним. Однако эта компиляция во время выполнения недопустимых объектов может снизить производительность базы данных.

Все признанные недопустимыми объекты базы данных Oracle можно перекомпилировать с помощью сценария utlrp.sql

SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
. . .
PL/SQL procedure successfully completed.
TIMESTAMP
-----------------------------------------------
COMP_TIMESTAMP UTLRP_END 2008-2-21 15:20:49
PL/SQL procedure successfully completed.
SQL>

Чтобы проверить, не осталось ли каких-то недопустимых объектов, проверку нужно запустить заново: 

SQL> SELECT count(*) FROM dba_objects
WHERE status = 'INVALID';
COUNT(*)
---------------
0
1 row selected.
SQL>

По завершении восстановления допустимости все неверных объектов сценарий utlrp.sql проверяет допустимость каждого отдельного компонента базы данных и обновляет представление DBMS_SERVER_REGISTRY.


На заметку! До тех пор, пока существует резервная копия базы данных, созданная перед началом процесса обновления, всегда можно вернуться к более старой версии БД. Наличие резервной копии чрезвычайно важно, поскольку процесс обновления может оказаться неудачным до его завершения, оставив после себя базу данных, которая будет неработоспособной под управлением предыдущей или модернизированной версии Oracle.


Запуск утилиты Post-Upgrade Status Tool

После завершения процесса обновления нужно запустить утилиту Post-Upgrade Status Tool с помощью следующего сценария: 

SQL> @$ORACLE_HOME/rdbms/admin/utlu111s.sql

Утилита Post-Upgrade Status Tool выводит обобщенную информацию о процессе обновления, которая в случае успешного обновления базы данных должна выглядеть подобно показанному в листинге ниже:


 

Oracle Database 11.1 Upgrade Status Utility
01-30-2008 22:05:04
.
Component Status Version HH:MM:SS
.
Oracle Server VALID 11.1.0.1.0 00:14:01
JServer JAVA Virtual Machine VALID 11.1.0.1.0 00:11:08
Oracle Workspace Manager VALID 11.1.0.1.0 00:00:40
OLAP Analytic Workspace VALID 11.1.0.0.0 00:00:25
OLAP Catalog . VALID 11.1.0.1.0 00:00:50
Oracle OLAP API VALID 11.1.0.1.0 00:00:31
Oracle Enterprise Manager VALID 11.1.0.1.0 00:08:06
Oracle XDK VALID 11.1.0.1.0 00:00:58
Oracle Text VALID 11.1.0.1.0 00:00:45
Oracle XML Database VALID 11.1.0.1.0 00:09:29
Oracle Database Java Packages VALID 11.1.0.1.0 00:01:00
Oracle interMedia VALID 11.1.0.1.0 00:16:11
Spatial VALID 11.1.0.1.0 00:04:43
Oracle Expression Filter VALID 11.1.0.1.0 00:00:13
Oracle Rules Manager VALID 11.1.0.1.0 00:00:11
.
Total Upgrade Time: 01:13:55
PL/SQL procedure successfully completed.
SQL>

Сценарий utlu111s.sql показывает, что компоненты базы данных были обновлены правильно. Отображение состояния INVALID для любого компонента свидетельствует о том, что, скорее всего, проблема будет решена при следующем запуске сценария utlrp.sql. Если это оказывается безуспешным, нужно заново запустить сценарий catupgrd.sql.

Утилита Post-Upgrade Status Tool определяет состояние обновления каждого компонента базы данных, запрашивая представление DBA_SERVER_REGISTRY. Представление DBA_SERVER_REGISTRY можно запросить так, как показано в листинге ниже:


 

SQL> SELECT comp_id, comp_name, version, status
FROM DBA_SERVER_REGISTRY;
COMP_ID       COMP_NAME                       VERSION     STATUS
-----------   -----------------------------   ---------   ---------
CATALOG       Oracle Database Catalog         1.1.1.0.6   VALID
CATPROC       Oracle Database Packages        11.1.0.6    VALID
JAVAVM        JServer JAVA Virtual Machine    11.1.0.6    VALID
CATJAVA       Oracle Database Java Packages   11.1.0.6    VALID
CONTEXT       Oracle Text 11.1.0.6 VALID
SQL>

Утилита Post-Upgrade Status Tool сообщит о результатах выполненного обновления. Если компонент был обновлены неправильно, утилита Post-Upgrade Status Tool подскажет действия, которые потребуется предпринять для устранения проблемы.


Внимание! Не запускайте обновленную базу данных из старого домашнего каталога Oracle — это приведет к повреждению базы данных.


Завершение записи файла спулинга

По завершении выполнения сценария обновления можно отключить спулинг процесса обновления: 

SQL> SPOOL OFF

Перезапуск новой базы данных

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

SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP

Действия по завершении обновления базы Oracle

По завершении обновления вы получаете совершенно новый экземпляр Oracle Database 11g (11.1.0). Конечно, на этом этапе код всех старых приложений остается на уровне Oracle 9.2, Oracle Database 10g или уровне любой версии, от которой выполнялась модернизация. Вам может потребоваться протестировать функциональные возможности новой базы данных, а также старые приложения, чтобы удостовериться в их корректной работе в среде обновленной базы данных.

Целесообразно сразу создать резервную копию новой базы данных. После апгрейда вручную потребуется также изменить пароли для поставляемых Oracle учетных записей пользователей. Может требоваться также изменение файла listener.ora и переход от использования файла init.ora к использованию SPFILE.

Переопределение паролей для более надежной парольной защиты

По завершении процесса обновления может требоваться переопределение паролей пользователей, чтобы можно было воспользоваться преимуществами новой функциональной возможности Oracle Database 11g — чувствительностью к регистру символов. При создании совершенно новой базы данных версии Oracle Database 11g пароли автоматически определяются как чувствительные к регистру символов. Однако при обновлении до Oracle Database 11g пароль каждого пользователя нужно переопределить с помощью оператора ALTER USER. Новая функциональная возможность чувствительности паролей к регистру символов Oracle Database 11g подробно описана в главе 12.

Можно также запустить задания переноса базы данных в новом планировщике Oracle и проверить функцию Automatic Jobs (Автоматически выполняемые задания), Automatic Database Diagnostic Monitor (Монитор автоматической диагностики базы данных) и множество других дополнительных средств, доступных в новой базе данных Oracle Database 11g Release 1.

Возврат к старой версии Oracle

ПО Oracle поддерживает возврат к версиям 10.1 и 10.2. Возврат можно выполнить только к той версии, от которой проводилась модернизация. Например, если модернизация к версии 11.1 выполнялась от версии 10.1, нельзя вернуться к версии 10.2. Однако если значение параметра COMPATIBLE установлено равным 11.0.0 или более высоким, возврат будет невозможным. Возврат к Oracle Database 10g Release 2 (10.2) возможен, если параметр COMPATIBLE установлен в значение 10.2.0 или более низкое. Аналогично, возврат к Oracle Database 10g Release 1 (10.1) возможен, если параметр COMPATIBLE установлен в значение 10.1.0. Ниже приведен перечень действий, которые потребуется выполнить, чтобы возвратить базу данных Oracle Database 11g Release 1 (11.1) к более ранней версии.

1. Зарегистрируйтесь в базе данных в качестве владельца домашнего каталога Oracle Database 11g Release 1 (11.1)

2. Перейдите в каталог $ORACLE_HOME/rdbms/admin и оттуда запустите SQL*Plus.

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

SQL> CONNECT ssys/sammyy1 AS sysdba 

4. Запустите экземпляр базы данных в режиме возврата к более ранней версии:

SQL> STARTUP DOWNGRADE 

5. Удалите пользователя sysman из базы данных:

SQL>DROP USER sysman CASCADE; 

6. Включите спулинг, чтобы отследить эффекты возврата к более ранней версии:

SQL> SPOOL downgrade.log 

7. Введите команду для запуска возврата к более ранней версии:

SQL> @catdwgrd.sql 

8. Сценарий catdowngrd.sql осуществляет возврат базы данных к основной версии, от которой выполнялась модернизация до Oracle Database 11g Release 1. Сразу по завершении выполнения сценария отключите спулинг, как показано в следующем примере: 

SQL> SPOOL OFF

9. Остановите экземпляр базы данных:

SQL> SHUTDOWN IMMEDIATE 

10. Измените переменные ORACLE_HOME и PATH, чтобы они указывали на ту версию, возврат к которой только что был выполнен.

Вас заинтересует / Intresting for you:

Поддерживаемые Oracle типы дан...
Поддерживаемые Oracle типы дан... 9517 просмотров Валерий Павлюков Wed, 24 Oct 2018, 08:00:37
Видеокурс по администрированию...
Видеокурс по администрированию... 10719 просмотров Илья Дергунов Mon, 14 May 2018, 05:08:47
Создание базы данных Oracle
Создание базы данных Oracle 34262 просмотров Александров Попков Wed, 14 Nov 2018, 12:44:39
СУБД Oracle: обзор характерист...
СУБД Oracle: обзор характерист... 15792 просмотров Antoni Fri, 24 Nov 2017, 07:35:05
Печать
Войдите чтобы комментировать

admin аватар
admin ответил в теме #9406 4 года 10 мес. назад
Мануал хорош, только примеры кода разметить бы согласно синтаксису команд (намек Автору).
OraCool аватар
OraCool ответил в теме #8861 6 года 3 мес. назад
Да!!! Зачетный мануал! Автору большое спасибо.!! Ждем такой же по Oracle 12.2! ;-)
apv аватар
apv ответил в теме #8537 6 года 9 мес. назад
Отличный мануал по обновлению Oracle. Для меня полезен особенно гайд по обновлению в ручном режиме. Очень подробный и качественный контент! Автору блога Спасибо!