<Insert Picture Here> Обновление версии с помощью командной строки Игорь Мельников Oracle CIS
<Insert Picture Here>
Обновление версии с помощью
командной строки
Игорь Мельников
Oracle CIS
Ручное обновление
• Например: переход на новый сервер
Server(OLD) Server(NEW)
3) Запустить utlu112i.sql
4) Остановить БД
5) Скопировать файлы БД
1) Установить ПО Oracle11g
2) Скопировать utlu112i.sql
6) Сделать необходимые изменения
7) Запустить процесс обновления
Перечень шагов
• Обновление с помощью командной строки:
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
Проверка готовности к обновлению
• Сбор информации: utlu112i.sql
• Запускается на исходной БД
• Проверяет все init-параметры и выводит сообщения про игнорируемые
и неподдерживаемые в 11g параметры
• Проверяются:
• Компоненты
• Наличие табл. пространства SYSAUX
• Кодовая страница (Characterset)
• Версия файлов Timezone
• Наличие кластерной конфигурации
Info
© 2010 Oracle Corporation 5
Скрипт подготовки
• Получить свежую версию файла utlunmi.sql
• Нужно предварительно его скачать !
• Note:884522.1
Command Line Upgrade
© 2010 Oracle Corporation 6
• utlu112i.sql: информация о СУБД
• Преобразование данных типа time zone должно быть проведено после
завершения обновления
• Рекомендуется
• Необходимо, если тип данных TIMESTAMP WITH TIME ZONE используется
•
•
© 2010 Oracle Corporation 7
Command Line Upgrade
•utlu112i.sql: табличные пространства имеют
необходимый размер?
•
© 2010 Oracle Corporation 8
Command Line Upgrade
•utlu112i.sql: init.ora параметры изменились ?
•
© 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?
•
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
SQL> STARTUP UPGRADE;
• Не обращать внимания на ошибки вида: ORA-00942: table or view does not exist
Command Line Upgrade
Command Line Upgrade
• Создать табличное пространство SYSAUX (только если
исходная БД версии 9i) :
SQL> CREATE TABLESPACE sysaux
DATAFILE 'file' SIZE 500M
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO
ONLINE;
Command Line Upgrade
• Запуск обновления словаря (dictionary) БД:
• Рекомендуется включить протоколирование SQL+:
• Сбор статистики по фиксированным объектам:
SQL> @catupgrd.sql
SQL> SPOOL /tmp/upgrade.log
SQL> execute
dbms_stats.gather_fixed_objects_stats;
14
• Перекомпиляция: • utlrp.sql
• Вызывает utlprp.sql с параметром CPU_COUNT-1
• Автоматически определяет возможность
распараллеливания компиляции в несколько потоков
• Перекомпилирует все объекты в состоянии “INVALID”
• Использует встроенный пакет utl_recomp
• Включает функциональные индексы автоматически
• utlprp.sql может быть вызван напрямую:
• SQL> @utlprp 7
Command Line Upgrade
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_%';
16
• Скрипт: catuppst.sql
• Необходим только при обновлении с 10.1
• Расположен в $O_H/rdbms/admin
• БД должны быть НЕ в режиме upgrade
• Может быть запущен параллельно с utlrp.sql
• Обновляет Automatic Workload repository (AWR)
• Обновляет метаданные ADDM
• Обновляет политики Oracle Label security (OLS)
Command Line Upgrade
17
• Post upgrade скрипт: utlu112s.sql
• Запускается на новой базе данных – в окружении 11g
• Проверяет результат обновления по содержимому DBA_REGISTRY
• Отображает длительность обновления по каждому компоненту
в отдельности
Command Line Upgrade Status
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
• Скрипт для выявления объектов перешедших в состояние 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-объектов
После обновления
• Собрать системную статистику в течении периода типичной
нагрузки - иначе 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');
21
<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
23