Обновление версии с помощью командной строки (3)

23
<Insert Picture Here> Обновление версии с помощью командной строки Игорь Мельников Oracle CIS

Transcript of Обновление версии с помощью командной строки (3)

Page 1: Обновление версии с помощью командной строки (3)

<Insert Picture Here>

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

командной строки

Игорь Мельников

Oracle CIS

Page 2: Обновление версии с помощью командной строки (3)

Ручное обновление

• Например: переход на новый сервер

Server(OLD) Server(NEW)

3) Запустить utlu112i.sql

4) Остановить БД

5) Скопировать файлы БД

1) Установить ПО Oracle11g

2) Скопировать utlu112i.sql

6) Сделать необходимые изменения

7) Запустить процесс обновления

Page 3: Обновление версии с помощью командной строки (3)

Перечень шагов

• Обновление с помощью командной строки:

1. Установить Oracle Database 11g, патчи

2. Сделать полный бэкап исходной БД (и скопировать)

3. Проанализировать исходную БД с помощью скрипта utlu112i.sql и применить все рекомендации

4. Создать новый листенер с помощью NETCA

5. Переключиться на новое окружение, стартовать БД (startup upgrade) и создать табл. пространство SYSAUX

(если исходная база < 10.1)

6. Запустить скрипт catupgrd.sql и затем: utlrp.sql

7. Проверить результат обновления: utlu112s.sql

8. Запустить catuppst.sql если обновление происходит с

версии 10g

Page 4: Обновление версии с помощью командной строки (3)

Проверка готовности к обновлению

• Сбор информации: utlu112i.sql

• Запускается на исходной БД

• Проверяет все init-параметры и выводит сообщения про игнорируемые

и неподдерживаемые в 11g параметры

• Проверяются:

• Компоненты

• Наличие табл. пространства SYSAUX

• Кодовая страница (Characterset)

• Версия файлов Timezone

• Наличие кластерной конфигурации

Info

Page 5: Обновление версии с помощью командной строки (3)

© 2010 Oracle Corporation 5

Скрипт подготовки

• Получить свежую версию файла utlunmi.sql

• Нужно предварительно его скачать !

• Note:884522.1

Page 6: Обновление версии с помощью командной строки (3)

Command Line Upgrade

© 2010 Oracle Corporation 6

• utlu112i.sql: информация о СУБД

• Преобразование данных типа time zone должно быть проведено после

завершения обновления

• Рекомендуется

• Необходимо, если тип данных TIMESTAMP WITH TIME ZONE используется

Page 7: Обновление версии с помощью командной строки (3)

© 2010 Oracle Corporation 7

Command Line Upgrade

•utlu112i.sql: табличные пространства имеют

необходимый размер?

Page 8: Обновление версии с помощью командной строки (3)

© 2010 Oracle Corporation 8

Command Line Upgrade

•utlu112i.sql: init.ora параметры изменились ?

Page 9: Обновление версии с помощью командной строки (3)

© 2010 Oracle Corporation 9

Command Line Upgrade

• utlu112i.sql: Компоненты и опции ?

• Для удаления(или переустановки) компонент вручную: Note:472937.1 Information On Installed Database Componentsand Schemas

Note.300056.1 Debug and Validate Invalid Objects

Note:753041.1 How to diagnose Components with NON VALID status

Note.733667.1 How to Determine if XDB is Being Used in the Database?

Page 10: Обновление версии с помощью командной строки (3)

10

Command Line Upgrade

• Сбор статистики по словарю (dictionary statistics)

• Нормальный останов БД (IMMEDIATE/NORMAL)

• Изменение init-параметров: • COMPATIBLE 10.1.0

• SGA_TARGET 524MB (32-bit) ... 748MB (64-bit)

• PGA_AGGREGATE_TARGET 25MB

• LOG_ARCHIVE_FORMAT должен содержать %s, %t и %r

• Переместить init.ora/SPFILE и PWDsid.ora в новый

$ORACLE_HOME

• Создать новый листенер 11g (с помощью NETCA)

• Изменить окружение на новый $ORACLE_HOME

Page 11: Обновление версии с помощью командной строки (3)

SQL> STARTUP UPGRADE;

• Не обращать внимания на ошибки вида: ORA-00942: table or view does not exist

Command Line Upgrade

Page 12: Обновление версии с помощью командной строки (3)

Command Line Upgrade

• Создать табличное пространство SYSAUX (только если

исходная БД версии 9i) :

SQL> CREATE TABLESPACE sysaux

DATAFILE 'file' SIZE 500M

EXTENT MANAGEMENT LOCAL

SEGMENT SPACE MANAGEMENT AUTO

ONLINE;

Page 13: Обновление версии с помощью командной строки (3)

Command Line Upgrade

• Запуск обновления словаря (dictionary) БД:

• Рекомендуется включить протоколирование SQL+:

• Сбор статистики по фиксированным объектам:

SQL> @catupgrd.sql

SQL> SPOOL /tmp/upgrade.log

SQL> execute

dbms_stats.gather_fixed_objects_stats;

Page 14: Обновление версии с помощью командной строки (3)

14

• Перекомпиляция: • utlrp.sql

• Вызывает utlprp.sql с параметром CPU_COUNT-1

• Автоматически определяет возможность

распараллеливания компиляции в несколько потоков

• Перекомпилирует все объекты в состоянии “INVALID”

• Использует встроенный пакет utl_recomp

• Включает функциональные индексы автоматически

• utlprp.sql может быть вызван напрямую:

• SQL> @utlprp 7

Command Line Upgrade

Page 15: Обновление версии с помощью командной строки (3)

15

• Контроль процесса перекомпиляции :

Command Line Upgrade

1. Запрос возвращает число оставшихся объектов в состоянии INVALID.

Это число должно уменьшаться с течением времени:

SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6);

2. Запрос возвращает число перекомпилированных объектов

Это число должно увеличиваться с течением времени:

SELECT COUNT(*) FROM UTL_RECOMP_COMPILED;

3. Запрос показывает задания (job-ы) созданные UTL_RECOMP. SELECT job_name FROM dba_scheduler_jobs

WHERE job_name like 'UTL_RECOMP_SLAVE_%';

4. Запрос показывает выполняющиеся задания (job-ы) перекомпиляции:

SELECT job_name FROM dba_scheduler_running_jobs

WHERE job_name like 'UTL_RECOMP_SLAVE_%';

Page 16: Обновление версии с помощью командной строки (3)

16

• Скрипт: catuppst.sql

• Необходим только при обновлении с 10.1

• Расположен в $O_H/rdbms/admin

• БД должны быть НЕ в режиме upgrade

• Может быть запущен параллельно с utlrp.sql

• Обновляет Automatic Workload repository (AWR)

• Обновляет метаданные ADDM

• Обновляет политики Oracle Label security (OLS)

Command Line Upgrade

Page 17: Обновление версии с помощью командной строки (3)

17

• Post upgrade скрипт: utlu112s.sql

• Запускается на новой базе данных – в окружении 11g

• Проверяет результат обновления по содержимому DBA_REGISTRY

• Отображает длительность обновления по каждому компоненту

в отдельности

Command Line Upgrade Status

Page 18: Обновление версии с помощью командной строки (3)

Command Line Upgrade

• Вывод результата работы utlu112s.sql

SQL> @?/rdbms/admin/utlu112s.sql

Oracle Database 11.2 Post-Upgrade Status Tool 05-11-2009 11:23:33

Component Status Version HH:MM:SS

Oracle Server VALID 11.2.0.1.0 00:16:17

JServer JAVA Virtual Machine VALID 11.2.0.1.0 00:05:19

Oracle Workspace Manager VALID 11.2.0.1.0 00:01:01

Oracle Enterprise Manager VALID 11.2.0.1.0 00:10:13

Oracle XDK VALID 11.2.0.1.0 00:00:48

Oracle Text VALID 11.2.0.1.0 00:00:58

Oracle XML Database VALID 11.2.0.1.0 00:04:09

Oracle Database Java Packages VALID 11.2.0.1.0 00:00:33

Oracle Multimedia VALID 11.2.0.1.0 00:07:43

Oracle Expression Filter VALID 11.2.0.1.0 00:00:18

Oracle Rule Manager VALID 11.2.0.1.0 00:00:12

Gathering Statistics 00:04:53

Total Upgrade Time: 00:52:31

Page 19: Обновление версии с помощью командной строки (3)

• Скрипт для выявления объектов перешедших в состояние Invalid: utluiobj.sql

SQL> @?/rdbms/admin/utluiobj.sql

Oracle Database 11.1 Post-Upgrade Invalid Objects Tool 08-03-2010

18:23:09

This tool lists post-upgrade invalid objects that were not invalid

prior to upgrade (it ignores pre-existing pre-upgrade invalid objects).

Owner Object Name Object Type

...

Выявление invalid-объектов

Page 20: Обновление версии с помощью командной строки (3)

После обновления

• Собрать системную статистику в течении периода типичной

нагрузки - иначе CBO будет использовать неверные данные:

SQL> select pname NAME, pval1 VALUE, pval2 INFO

from aux_stats$;

NAME VALUE INFO

-------------------- ---------- ------------------------------

STATUS COMPLETED

DSTART 04-03-2008 12:30

DSTOP 05-03-2008 12:30

FLAGS 1

CPUSPEEDNW 1392,39

IOSEEKTIM 11,405

IOTFRSPEED 25595,605

...

SQL> EXECUTE dbms_stats.gather_system_stats('start');

...

SQL> EXECUTE dbms_stats.gather_system_stats('stop');

Page 21: Обновление версии с помощью командной строки (3)

21

Page 22: Обновление версии с помощью командной строки (3)

<Insert Picture Here>

Игорь Мельников

Старший консультант Oracle СНГ

Email: [email protected]

Phone: +7 (495) 641 14 00

Direct: +7 (495) 641 14 42

Mobile: +7 (915) 205 26 27

Page 23: Обновление версии с помощью командной строки (3)

23