Сохранение данных о производительности исходной базы данных
Для успешного процесса миграции следует сохранить информацию о максимальном количестве аспектов работы информационной системы. Данная информация будет являться отправной точкой, ориентируясь на которую, можно судить об изменения в производительности системы или отдельных её компонентов.
Получение данных должно осуществляться на исходной системе, используя следующие подходы:
Покомпонентное тестирование: Должно включать в себя набор запросов, операций или заданий которые критичны для деятельности компании. Тестирование проводиться на тестовой системе до миграции и после миграции. Основные критерии, которые должны учитываться при сравнении итоговых результатов - это совпадение результирующих данных и время выполнения;
Нагрузочное тестирование: Проводится одновременное выполнение большого количества типичных операций, с уровнем активности, совпадающим с текущей эксплуатируемой системой. Для разработки нагрузочных средств можно использовать продукты компании ЦФТ или сторонние специализированные продукта, например Load Runner. Следует иметь в виду, что на данный момент опция Oracle Real Application Testing не совместима с продуктами на основе «ЦФТ-Платформа Развития»;
Статистика производительности исходной системы: Проводится сбор информации о текущей работе информационной системы.
Для сохранения статистики производительности можно использовать следующие решения:
Пакет STATSPACK. Рекомендуется делать снимки (SNAPSHOT) c уровнем не ниже 7. Частоту снимков рекомендуется делать не реже чем через 15 минут.
Генерация файлов расширенной трассировки, с последующим созданием из них SQL Tuning Set.
В случае наличия пакета Tuning Pack, можно использовать возможности пакета DBMS_SQLPA для создания набора запросов (SQL Tuning Set ) из кэша базы данных.
В случае использования 3L серверов приложений «ЦФТ-Платформа Развития», рекомендуется включить логирование запросов на серверах приложения. В логах будут фиксироваться тексты запросов, вызовы операций, значения параметров и время выполнения запросов или операций.
Помимо информации о производительности базы данных, следует сохранить информация о производительности аппаратных ресурсов сервера. Обязательно должна включаться следующая информация:
Загрузка процессоров сервера;
Использование памяти сервера;
Загрузка дисковой подсистемы сервера;
Рекомендуется сохранить информацию о текущем окружении исходной системы, как-то параметры операционной системы, параметры базы данных, информация об установленных исправлениях и пр. Для выполнения данной задачи рекомендуется использовать набор утилит Remote Diagnostic Agent (RDA), который доступен на сайте поддержки Oracle.
В связи с изменениями в алгоритмах сбора статистики также рекомендуется провести сбор статистики, используемой оптимизатором для построения планов выполнения запросов. Для сохранения статистики следует использовать пакет DBMS_STATS.
Перед проведением миграции необходимо провести сохранение (export) собранных статистических данных производительности системы, а именно :
Сохранить (export) схему пользователя PERFSTAT;
Сохранить (export) данные AWR;
Сохранение данных статистики, используемой оптимизатором.
-
Проведение миграции
-
Начало миграции
Выполните полное копирование (backup) базы данных. Данная сохраненная копия может быть использована в случае возникновения сбоев при проведении обновления. При выполнении тестовой миграции замерьте время полного копирования базы. В дальнейшем это время следует учитывать при планировании миграции основной системы.
Скопируйте из каталогов с программным обеспечением Oracle 11g Release 2 из подкаталога rdbms/admin SQL-скрипт utlu112i.sql на сервер с базой данных Oracle 10g Release 2. Далее подключитесь к запущенной базе 10g с правами DBA и выполните данный скрипт.
Пример запуска :
sqlplus /as sysdba
SQL> spool Database_Info.log
SQL> @utlu112i.sql
SQL> spool off
Не смотря на то, что данный скрипт выполняется при использовании Database Upgrade Assistant автоматически, рекомендуется предварительно выполнить его самостоятельно, так как замечания или требования по результатам работы данного скрипта, могут потребовать существенного изменения в организации плана или проведения работ при осуществлении миграции.
Во время проведения миграции не допускается подключение пользователей к базе данных или выполнение процессов.
Для системы «ЦФТ-Банк» обязательно остановите все прикладные задания, выполняемые по расписанию. Для этого используйте АРМ «Навигатор» - меню «Система» - представление «Выполнение заданий по расписанию» - «Список заданий». Колонка «Состояние» для всех заданий должна иметь значение «Остановлено» или «Блокировано». Для остановки заданий используйте прикладную операцию «Удалить из очереди заданий»
-
-
Остановите все прослушивающие процессы (LISTENER) для сетевых соединений. Например :
lsnrctl stop
Остановите все процессы, работающие с базой данных и запускаемые в операционной системе через CRON или подсистему AT.
Остановите процесс «Аудит менеджера». Для этого необходимо подключиться к базе данных с правами AUDM или DBA. Пример:
sqlplus AUDM
Password: ****
SQL> exec audm.aud_mgr.stop;
SQL> select * from audm.settings where name = ‘STATUS’ ;
NAME VALUE
-------------------- -----------
STATUS STOP
Состояние Аудит менеджера должно быть STOP.
Остановите процесс прикладного блокировщика (LOCK_INFO). Для этого необходимо подключиться к базе данных с правами IBS (владельца схемы) или DBA. Пример :
$ sqlplus IBS
Password: ****
SQL> select action,module,client_info from v$session where module like ‘LOCK%’ ;
ACTION MODULE CLIENT_INFO
--------------------- -------------------- -------------
Locks for IBS 0 LOCK_INFO Version 18.5
SQL> exec ibs.rtl.lock_stop ;
Процедура PL/SQL успешно завершена.
SQL> select action,module,client_info from v$session where module like ‘LOCK%’ ;
строки не выбраны
В результате в списке процессов базы данных не должно быть никаких процессов менеджера блокировок (LOCK_INFO).
Проверьте состояние заданий, выполняющихся по расписанию. Все задания должны быть удалены (REMOVE) или отключены (BROKEN).
Пример :
$ sqlplus / as sysdba
SQL> select job,priv_user,what from dba_jobs ;
строки не выбраны
Проверьте, что в базе данных отсутствуют файлы, которым требуется восстановление. Пример :
$ sqlplus / as sysdba
SQL> select * from v$recover_file;
строки не выбраны
Проверьте, что в базе данных отсутствуют файлы в состоянии BACKUP. Пример :
$ sqlplus / as sysdba
SQL> select * from v$backup where status!=‘NOT ACTIVE’;
строки не выбраны
Проверьте, что завершены все репликации. Пример :
$ sqlplus / as sysdba
SQL> select distinct(trunc(last_refresh)) from dba_snapshot_refresh_times;
строки не выбраны
Убедитесь, что у пользователей SYS и SYSTEM табличное пространство по умолчанию SYSTEM. Пример :
SQL> select username, default_tablespace from dba_users
where username in (‘SYS’,’SYSTEM’);
Для изменения табличного пространства по умолчанию используйте команды:
SQL> alter user sys default tablespace SYSTEM;
SQL> alter user system default tablespace SYSTEM;
Удалите записи из таблицы AUD$ и переместите её в табличное пространство SYSAUX :
$ sqlplus / as sysdba
SQL> truncate table AUD$;
SQL> alter table AUD$ move tablespace SYSAUX ;
SQL> alter index I_AUD_TIMESTAMP rebuild ;
Если требуется сохранить старые данные системного аудита, проведите предварительно выгрузке данных.
Если в базе данных используется ручное управление сегментами отката (manual rollback), необходимо провести настройте базу данных на автоматическое управление сегментами отката (automatic).
Соберите статистику по словарю базы данных
$ sqlplus / as sysdba
SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
Удалите представления и синонимы созданные для совместимости с Oracle 9i.
SQL> DROP SYNONYM IBS.ALL_SYNONYMS ;
SQL> DROP VIEW ALL_SYNONYMS_920X ;
-
В связи с изменениями в политике безопасности в Oracle 11g Release 2 пользовательские роли с паролями не могут являться ролями по умолчанию. Поэтому необходимо отключить использование паролей в ролях системы.
Подготовьте скрипт для получения списка пользовательских ролей с использованием паролей, используя следующие команды :
SQL> col s format a60
SQL> set feedback off
SQL> set heading off
SQL> spool role_no_pass.sql
SQL> select 'alter role '||role||' not identified;' s from dba_roles where password_required='YES' and role not in (select role from dba_application_roles) order by role;
SQL> spool off
Пример содержимого файла role_no_pass.sql :
alter role AUDIT_ADMIN not identified;
alter role IBS_ADMIN not identified;
alter role IBS_EDIS_ADMIN not identified;
alter role IBS_PICKER not identified;
alter role IBS_RC$ADMIN not identified;
alter role IBS_RC$USER not identified;
alter role IBS_REVISOR not identified;
alter role IBS_UADMIN not identified;
alter role IBS_UPICKER not identified;
alter role IBS_USER not identified;
alter role IZH_RC$ADMIN not identified;
alter role IZH_RC$USER not identified;
alter role KOM_RC$ADMIN not identified;
alter role KOM_RC$USER not identified;
alter role ZSB_RC$ADMIN not identified;
alter role ZSB_RC$USER not identified;
Выполните команды из файла role_no_pass.sql. Пример :
$ sqlplus / as sysdba @role_no_pass.sql
Скрипт должен отработать без ошибок.
-
Для ускорения процедуры миграции рекомендуется отключить режим генерации архивных журналов и отсылки их на резервный узел (Standby).
Запустите базу данных в режиме MOUNT и отключите режим архивирования. Пример :
SQL> startup mount
SQL> select log_mode from v$database ;
LOG_MODE
------------
ARCHIVELOG
SQL> alter database noarchivelog ;
Database altered.
SQL> select log_mode from v$database ;
LOG_MODE
------------
NOARCHIVELOG
Если используется ли режим flashback отключите его. Пример :
SQL> alter database open;
Database altered.
SQL> alter database flashback off;
Database altered.
SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
NO
Проведите очистку удалённых объектов.
Пример:
sqlplus / as sysdba @role_no_pass.sql
SQL>PURGE dba_recyclebin;
Остановите базу данных в режиме NORMAL или IMMEDIATE.
Пример:
SQL> shutdown immediate
-
Проведение миграции с использованием Database Upgrade Assistant
Для проведения миграции рекомендуется использовать средство Database Upgrade Assistant. Использование данного инструмента имеет следующие достоинства :
Автоматизирует большинство задач;
Поддерживает Real Application Cluster, Single instance и ASM;
Информирует о необходимых требованиях по миграции;
Сообщает об ошибках при проведении миграции;
Создаёт отчёт о выполнении миграции в виде HTML файла;
Поддерживает интерфейс для выполнения заранее подготовленных команд.
Перед выполнением миграции рекомендуется сделать резервную копию базы данных, хотя Database Upgrade Assistant может выполнить данную операцию и во время подготовки к миграции. Если вы производиться создание копии базы данных с использованием Database Upgrade Assistant, то производиться сохранение всех файлов базы данных в каталоге, который вы укажете. После останова базы данных, запускается процедура копирования файлов базы данных. Сжатие файлов не производится. Вместе с копией файлов базы данных Database Upgrade Assistant создает скрипт для проведения восстановления базы данных.
В процессе проведения обновления, Database Upgrade Assistant автоматически создает или модифицирует табличные пространства, вызывает скрипты и создает новые конфигурационные файлы (файлы параметров и файл прослушивающего процесса) в новом ORACLE_HOME.
Перед запуском обновления Database Upgrade Assistant проводит следующие проверки :
Неверных или ошибочных пользователей или роли;
Неверных или ошибочных типов данных или объектов;
Неподдерживаемых кодировок;
Количество необходимых ресурсов для проведения обновления (свободное место, сегменты отката и т.д.)
Необходимых скриптов для проведения обновления;
Запущенных прослушивающих процессов.
Информация о данных проверках формируется в виде HTML отчета перед проведением обновления.
-
Запуск Database Upgrade Assistant
На платформах Linux и Unix для запуска Database Upgrade Assistant используйте команду dbua. Перед запуском, убедитесь, что у вас переменные окружения и ORACLE_HOME настроены на использование новой версии Oracle 11g Release 2.
Если на платформе используется ASM, то Database Upgrade Assistant предложит провести обновление ASM. В этом случае, рекомендуется проводить обновление ASM в отдельной сессии Database Upgrade Assistant из ORACLE_HOME c установленным Oracle Grid Infrastructure.
Далее будет предложено указать базу для проведения обновления. Если ваша база не указана в данном списке, убедитесь, что она указана в файле oratab. Для Unix платформ данный файл находиться в каталоге /etc, для платформы Solaris в каталоге /var/opt/oracle .
Одновременно можно проводить обновление только одной базы.
-
Предупреждение об объектах в состоянии INVALID
В случае наличия в базе данных объектов в состоянии INVALID выдается предупреждение.
Обратите внимание, что все действия, выполняемые Database Upgrade Assistant и результаты, сохраняются в виде log-файлов в каталоге ORACLE_HOME/cfgtools/dbua/SID/upgradeN , где N число миграций, которые были выполнены с использованием данного экземпляра Database Upgrade Assistant.
-
Перекомпиляция объектов, обновление временных зон, резервное копирование
Можно задать количество потоков, которые будут использоваться для перекомпиляции объектов по завершению миграции. Количество потоков рекомендуется задавать равным или немного меньшим, чем общее количество процессоров в системе.
Рекомендуется указать проведение обновления данных, имеющие тип с информацией о временных зонах. В частности к таковым относиться тип TIMESTAMP WITH TIME ZONE.
Если ранее не было произведено создание резервной копии базы данных, то создание таковой можно выполнить с использованием Database Configuration Assistant.
В процессе миграции, можно изменить способ хранения файлов базы данных, например, задать копирование базы данных на ASM.
-
Указание области сохранения логов и каталога журналов
Возможно указать параметр Fast recovery area для мигрированной базы и подкаталог для хранения диагностической информации (настройка Diagnostic Destination)
В случае использования Oracle Grid Control 10g или выше, можно указать сервер с установленным сервисов Grid Control, для автоматической регистрации базы данных.
В случае использования служб типа Oracle Internet Directory или использования прослушивающих процессов с настройками, отличными от стандартных, можно указать какой прослушивающий процесс использовать после миграции для подключения клиентских соединений.
Настройку сетевых подключений можно провести после проведения процедуры обновления базы данных.
В случае если вы указываете имя прослушивающего процесса, убедитесь, что указанное имя определяется, то есть указано в tnsnames.ora или зарегистрировано в сетевых сервисах типа LDAP.
-
Отчёт о готовности проведению обновления
Выдается отчет о готовности базы данных к проведению миграции. Данный отчёт содержит следующую информацию :
Наименование, версию и ORACLE_HOME старой и новой базы;
Подкаталог с сохранённой копией базы данных, доступное место и необходимое место для проведения миграции;
Перечень игнорированных предупреждений, если таковые были;
Компоненты базы данных, которые будут обновлены в процессе миграции;
Параметры базы данных, которые будут изменены в процессе миграции;
Каталог с расположением файлов базы данных;
Список процессов LISTENER, созданных в системе.
Копия данного отчёта в формате HTML, сохраняется в каталоге с логами Database Upgrade Assistant в файле PreUpgradeResults.html. Если замечаний нет, то при нажатии на кнопку Finish, будет запущена процедура миграции.
Перед запуском процедуры миграции еще раз убедитесь, что созданы резервные копий или создана копия в каталоге указанном как «Backup Directory» или откажитесь от проведения миграции.
-
Контроль процесса миграции
Состояние процесса миграции отражается в виде линейки прогресса. Контролировать выполнение команд и их результат можно, используя файл Oracle_Server.log в подкаталоге с логами Database Upgrade Assistant.
-
Сообщения об ошибках в процессе миграции
В случае возникновения ошибок появляется соответствующее сообщение с выбором «Ignore» или «Abort».
Если ошибка достаточно серьёзная и не может быть автоматически устранена существуют следующие возможности :
Выберите «Ignore» для того, чтобы продолжить процесс миграции. Вы можете в дальнейшем устранить проблему , перезапустить Database Upgrade Assistant и завершить пропущенные этапы;
Выберите «Abort» для остановки процесса миграции. Если было произведено сохранение копии базы данных с использованием Database Upgrade Assistant, будет предложено провести восстановление базы данных. Рекомендуется устранить причину возникновения ошибки и повторить миграцию базы данных. В некоторых случаях возможно ручное завершение процедуры миграции базы данных.
Для восстановления базы данных из копии, созданной Database Upgrade Assistant, используйте скрипт, находящийся в каталоге указанном как «Backup Directory». Имя скрипта для восстановления _restore.sh , где имя базы.
В случае успешного завершения процесса миграции выдаётся сообщение о завершении обновления и формируется итоговый отчёт.
Копия данного отчёта в формате HTML, сохраняется в каталоге с логами Database Upgrade Assistant в файле UpgradeResults.html.
-
Завершение миграции
Отредактируйте файлы настроек для прослушивающих процессов EXTPROC. Запустите прослушивающий процесс (EXTPROC) для обслуживания внешних процедур. Обратите внимание, что в версии Oracle 11g Release 2 не поставляются библиотеки для совместимости с 32-bit приложениями, в частности отсутствует 32-bit версия агента для внешних процедур extproc32.
Отредактируйте файлы сетевых настроек для работы с новой версией базы данных (LISTENER.ORA, SQLNET.ORA) . Запустите прослушивающий процесс (LISTENER) для обслуживания сетевых подключений.
Необходимо провести перестроение представления DBA_AUDIT_TRAIL. Для этого необходимо выполнить SECOND9.BAT из подкаталога AUDMGR каталога обновления технологического ядра. Скрипт необходимо запускать с рабочей станции под управлением Windows. В качестве параметра необходимо указать строку соединения до схемы SYS. Пример запуска:
SECOND.BAT SYS/SYS@IBSO
Проверьте настройки прикладных пользователей, используя АРМ «Администратор доступа» - меню «Системные справочники» - «Профили» настройки c именем «ALTER_SESSION». Данные настройки хранят уникальные сессионные параметры базы данных. Допускается использование следующих параметров для использования в Oracle 11g Release 2:
"optimizer_features_enable"='10.2.0.4'
"_hash_join_enabled"=false
"_optimizer_sortmerge_join_enabled"=false
"_optimizer_undo_cost_change"='10.1.0.3'
"_b_tree_bitmap_plans"=false
Однако следует иметь в виду, что решение об использование данных параметров следует применять по результатам функционального и нагрузочного тестирования.
После обновления базы данных в системе автоматически устанавливаются системные задачи (SCHEDULE). Пример:
$ sqlplus / as sysdba
SQL> col job_name format a24
SQL> col comments format a64
SQL> select job_name,state , comments from dba_scheduler_jobs
JOB_NAME STATE COMMENTS
------------------------------ --------------- ---------------------------------------------------
XMLDB_NFS_CLEANUP_JOB DISABLED
BSLN_MAINTAIN_STATS_JOB SCHEDULED Oracle defined automatic moving window baseline
statistics computation job
DRA_REEVALUATE_OPEN_FAILURES SCHEDULED Reevaluate open failures for DRA
HM_CREATE_OFFLINE_DICTIONARY DISABLED Create offline dictionary in ADR for DRAname
translation
ORA$AUTOTASK_CLEAN SCHEDULED Delete obsolete AUTOTASK repository data
FILE_WATCHER DISABLED File watcher job
SM$CLEAN_AUTO_SPLIT_MERGE SCHEDULED auto clean job for auto split merge
RSE$CLEAN_RECOVERABLE_SCRIPT SCHEDULED auto clean job for recoverable script
AUTO_SPACE_ADVISOR_JOB DISABLED auto space advisor maintenance job
GATHER_STATS_JOB DISABLED Oracle defined automatic optimizer statistics
collection job
FGR$AUTOPURGE_JOB DISABLED file group auto-purge job
PURGE_LOG SCHEDULED purge log job
MGMT_STATS_CONFIG_JOB SCHEDULED OCM Statistics collection job.
MGMT_CONFIG_JOB SCHEDULED Configuration collection job.
Описание основных заданий:
PURGE_LOG – задание для автоматической чистки логов заданий подсистемы DBMS_SCHEDULE.
FGR$AUTOPURGE_JOB По умолчанию данное задание отключено.
GATHER_STATS_JOB - задание по автоматическому сбору статистики по таблицам. По умолчанию задание настроено на ежедневный сбор статистики. Рекомендуется отключить.
Для останова используйте команду :
SQL> exec dbms_scheduler.disable(‘GATHER_STATS_JOB’);
AUTO_SPACE_ADVISOR_JOB – запускает Automatic Space Advisor , который собирает информацию о распределении пространства в сегментах базы данных. Данная информация доступна через Enterprise Manager или соответствующие PL/SQL пакеты
Для останова используйте команду :
SQL> exec dbms_scheduler.disable(‘AUTO_SPACE_ADVISOR_JOB’);
-
Начиная с версии Oracle 11g Release 2 пакеты UTL_TCP, UTL_HTTP, UTL_SMTP, UTL_MAIL для своей работы требуют наличия подсистемы XML DB. Для установки данной подсистемы необходимо выполнить следующие шаги:
Необходимо проверить, что параметр базы данных compatible имеет значение 11.2.0 или выше. Если параметр имеет меньше значение, необходимо установить его в значение 11.2.0 и перезапустить базу данных.
Создайте отдельное табличное пространство XDB для хранения данных подсистемы XML DB. Пример:
$ sqlplus / as sysdba
SQL> create tablespace XDB datafile ‘/db1/oradata/XDB.dbf’ size 200m ;
Размер табличного пространства должен составлять не менее 200 Mb.
Выполните скрипт по установке XML DB.
$ sqlplus / as sysdba
SQL> spool catqm.log
SQL> @?/rdbms/admin/catqm.sql XDB XDB TEMP YES
SQL> spool off
Скрипт должен отработать без ошибок.
Для проверки состояния установленной компоненты XML DB выполните :.
$ sqlplus / as sysdba
SQL> col ver format a20
SQL> col status format a20
SQL> select dbms_registry.version('XDB') ver,dbms_registry.status('XDB') status from dual ;
VER STATUS
-------------------- --------------------
11.2.0.2.0 VALID
Если вывод данных команд отличается, значит установка XML DB не была корректна проведена.
Необходимо создать правила ACL, позволяющие пакетам типа UTL_TCP,UTL_HTTP,UTL_SMTP,UTL_MAIL обращаться к сетевым ресурсам. Если предполагается работа в режиме совместимости с 10g Release 2, то можно использовать правила указанные в приложении 4.
Проверьте работоспособность подсистем FIO,XML, LOCK_INFO.
В случае успешной миграции, включите режим архивирования журналов, выполните процедуру резервного копирования базы данных, пересоздайте базу (или базы) на STANDBYсерверах.
Запустите процессы и задач, запускаемые через утилиту CRON или подсистему AT.
Запустите системные задания по расписанию. Для этого используйте АРМ «Навигатор». Далее можно использовать операцию «Запуск системных заданий» из меню «Выполнение заданий по расписанию». Обязательно должны быть запущены «Задание проверки лицензионной информации» и «Задание обновления кэш-пайп»
Запустите прикладные задания по расписанию. Для этого используйте АРМ «Навигатор» - меню «Система» - представление «Выполнение заданий по расписанию».
Запустите прикладной процесс аудит менеджера (AUDM).
$ sqlplus / as sysdba
SQL>exec audm.aud_mgr.submit;
|