1.Уведомление о начале работ.
2.Остановка приложений
3.Создание точки отката
sql>SELECT flashback_on, log_mode FROM v$database;
sql> alter database flashback on; -- если режим flashback не включен
Смотрим место во fra:
sql>select name, round(space_limit/1048576),round(space_used/1048576),round ((space_used/space_limit)*100) as "% used"
from v$RECOVERY_FILE_DEST;
sql>create restore point RP_1 guarantee flashback database;
4.Проверка целостности исходной БД перед миграцией
cd /oracle/distr/pre
$ sqlplus / as sysdba
sql> alter session set nls_language='American';
sql> @dbupgdiag.sql
sql> exit
5.Проверка БД с помощью hcheck и hout
cd /oracle/distr/pre
$ sqlplus / as sysdba
sql> alter session set nls_language='American';
sql> @hout.sql
sql> @hcheck4.sql
sql> execute hcheck.full
sql> exit
6.Очистить корзину перед обновлением
$ sqlplus /as sysdba
SQL> PURGE DBA_RECYCLEBIN;
7.Проверка версий компонентов:
select substr(comp_id,1,15) comp_id,substr(comp_name,1,30) comp_name, substr(version,1,10) version,status
from dba_registry order by modified;
8.Удалить EM DB Control
$ emctl stop dbconsole
$ sqlplus / as sysdba
SQL> @?/rdbms/admin/emremove.sql
9.Pre Upgrade Steps
cd /u01/app/oracle/distr/pre
$ unzip preupgrade_12.1.0.2.0_15_lf.zip
$ sqlplus / as sysdba
SQL> alter session set nls_language='American';
SQL> @utluppkg.sql
SQL> @preupgrd.sql
10.Анализ логов и запуск скрипта preupgrade_fixups.sql
$ tail -1000 /u01/app/oracle/cfgtoollogs/testdb/preupgrade/preupgrade.log
SQL>@/u01/app/oracle/cfgtoollogs/testdb/preupgrade/preupgrade_fixups.sql
SQL> exit
11.Создание файла параметров и паролей в новом OH:
SQL> create pfile from spfile;
$ cp /u01/app/oracle/product/11.2.0.4/db/dbs/inittestdb.ora /u01/app/oracle/product/12.1.0.2/dbs/
$ cd /u01/app/oracle/product/12.1.0.2/dbs/
vi inittestdb.ora
Пересоздание файла паролей в новом формате 12с
orapwd file=< fname > entries=< users > force=< y/n > password=< SYS password > format=12
Миграция старого файла паролей на новый формат 12c
orapwd file=< fname > entries=< users > force=< y/n > password=< SYS password > format=12 input_file=< input-fname >
Проверка
orapwd describe file=< passwordfile name with location >
<- br="" testdb="">su – oracle
. oraenv < - TESTDB
$ cd $ORACLE_HOME/dbs
$ ls -al orapw*
$ orapwd describe file=orapwtestdb
Password file Description : format=LEGACY ignorecase=N
$ orapwd file=orapwTESTDB entries=10 force=y password=< ... > format=12 input_file=orapwTESTDB
$ orapwd describe file=orapwtestdb
Password file Description : format=12 ignorecase=N
->
12.Upgrade Steps
$ export ORACLE_HOME=/u01/app/oracle/product/12.1.0.2
cd $ORACLE_HOME/rdbms/admin
sqlplus / as sysdba
SQL> startup UPGRADE
SQL> exit
cd $ORACLE_HOME/rdbms/admin
$ORACLE_HOME/perl/bin/perl catctl.pl -n 4 -l $ORACLE_BASE/cfgtoollogs/testdb catupgrd.sql
13.Анализ логов и запуск базы:
tail -1000 $ORACLE_BASE/cfgtoollogs/testdb/catupgrd0.log
tail -1000 $ORACLE_HOME/cfgtoollogs/testdb/upgrade/upg_summary.log
Запуск базы
$ sqlplus / as sysdba
SQL> startup
14.Post Upgrade Steps
cd $ORACLE_HOME/rdbms/admin
$ sqlplus / as sysdba
SQL> @utlu121s.sql
SQL> @catuppst.sql
SQL>@/u01/app/oracle/cfgtoollogs/testdb/preupgrade/postupgrade_fixups.sql
SQL> @utlrp.sql 4
SQL> @utluiobj.sql
SQL> exit
15.Сбор статистики по фиксированным объектам словаря базы данных:
SQL> exec DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
16.Запускаем datapatch
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> shutdown immediate
SQL> startup UPGRADE
SQL> quit
cd $ORACLE_HOME/OPatch
./datapatch -verbose
17.Перекомпиляция инвалидных объектов.
sqlplus /nolog
sql> CONNECT / AS SYSDBA
sql> shutdown
sql> startup
sql> @?/rdbms/admin/utlrp
18.Проверка:
select action,
version||'.'||bundle_id as version_id,
description,
status,
ACTION_TIME,
patch_id
from DBA_REGISTRY_SQLPATCH;
19.Проверка версий компонентов:
select substr(comp_id,1,15) comp_id,
substr(comp_name,1,30) comp_name,
substr(version,1,10) version,status
from dba_registry order by modified;
20.Сетевые настройки
cd $ORACLE_HOME/network/admin
$ vi listener.ora
$ vi sqlpnet.ora
$ lsnrctl start
$ lsnrctl status
21.Установка параметров инициализации экземпляра
!!! Новый параметр compatible пока не выставляем
Устранить известные критические ошибки для версии 12cR1 (12.1.0.2)
-- Bug in 12.1.0.2 - Note 2034610.1
alter system set "_optimizer_aggr_groupby_elim" = FALSE scope=spfile sid='*';
alter system set "_optimizer_reduce_groupby_key" = FALSE scope=spfile sid='*';
-- Bug 18304693 - Note 18304693.8
alter system set "_optimizer_cost_based_transformation"='EXHAUSTIVE' scope=spfile sid='*';
alter system set "_optimizer_reuse_cost_annotations" = FALSE scope=spfile sid='*';
-- Bug 22173980
alter system set "_rowsets_enabled" = FALSE scope=spfile sid='*';
-- Bug 19894622
alter system set "_optimizer_unnest_scalar_sq" = FALSE scope=spfile sid='*';
-- Bug in 12.1.0.2 Bug 21056506
alter system set "_use_single_log_writer" = TRUE scope=spfile sid='*';
-- Bug in 12.1.0.2 Bug 22529728 - Note 22529728.8
alter system set "_optimizer_gather_stats_on_load" = FALSE scope=both sid='*';
Дополнительно можно установить следующие параметры:
alter system set db_files=2048 scope=spfile sid='*';
alter system set processes=1024 scope=spfile sid='*';
alter system set control_file_record_keep_time=30 scope=spfile sid='*';
alter system set cursor_sharing='EXACT' scope=spfile sid='*';
alter system set filesystemio_options='SETALL' scope=spfile sid='*';
alter system set fast_start_mttr_target = 1200 scope=spfile sid='*';
alter system set fast_start_parallel_rollback = LOW scope=spfile sid='*';
alter system set open_cursors=2000 scope=spfile sid='*';
alter system set session_cached_cursors = 200 scope=spfile sid='*';
alter system set open_links=255 scope=spfile sid='*';
alter system set resumable_timeout=120 scope=spfile sid='*';
alter system set job_queue_processes=1000 scope=spfile sid='*';
-- LOG_BUFFER
alter system set log_buffer=67108864 scope=spfile sid='*';
-- deferred_segment_creation
alter system set deferred_segment_creation=FALSE scope=both sid='*';
--
-- Configure to Protect from Data Corruption
--
alter system reset DB_ULTRA_SAFE scope=spfile sid='*';
alter system set db_block_checking="MEDIUM" scope=spfile sid='*';
alter system set db_block_checksum="TYPICAL" scope=spfile sid='*';
alter system set db_lost_write_protect="TYPICAL" scope=spfile sid='*';
sql> SHUTDOWN IMMEDIATE
sql>STARTUP
sql> exit
22.Проверка работы приложений.
Проверка работы приложений на новой версии бд
23.Удаление точки отката
Удаляем только если миграция прошла успешно.
sql> SELECT name, scn, time, database_incarnation#, guarantee_flashback_database, storage_size FROM gv$restore_point;
sql>drop restore point RP_1;
SELECT name, scn, time, database_incarnation#, guarantee_flashback_database, storage_size FROM gv$restore_point;
24.Установка нового compatible
-- Setup new compatible mode
alter system set compatible = "12.1.0.2.0" scope=spfile sid='*';
-- Switch off new adaptive features for run in compatible mode 11gR2
alter system set optimizer_adaptive_features=FALSE scope=both sid='*';
sql> SHUTDOWN IMMEDIATE
sql>STARTUP
sql> exit
25.Уведомление о завершении работ.
Завершение работ:
Работы считаются завершенными после успешного выполнения всех пунктов плана работ.
План отката:
Точку отката не должна быть удалена
Возврат к RESTORE POINT
sql> shutdown immediate;
sql>startup mount;
sql> flashback database to restore point RP_1;
Flashback complete.
Окончательно откроем базу
SQL> alter database open resetlogs;
sql>drop restore point RP_1;