Oracle のアップグレード 10.2 → 11.2 その③ [DBMS]
Oracle のアップグレード 10g (10.2) から 11g (11.2) へのアップグレードです。
前回はアップグレード前処理からアップグレード直前まで来ました。
完了ボタンでアップグレードが開始されます。
アップグレード中
完了です。
最後にアップグレード結果画面が出ます。
DBUAによるアップグレードが完了したら後処理を実施します。
今回はだいたい以下を行っています。
アップグレード後処理
タイムゾーン・パッチ(→Ver.11)
推奨パラメータ設定
パッチ後処理
統計情報更新(全て)
アーカイブモード変更(→ARCHIVE)
------------------------------------------
-- 11.2.0.1 Upgrade
@?/rdbms/admin/utlu112s.sql
@?/rdbms/admin/utluiobj.sql
-- TimeZoneFile
@TimeZoneFile.sql
-- parameters
@11gparameters.sql
-- 8795792
exec SYS.DBMS_METADATA_UTIL.LOAD_STYLESHEETS;
-- 9003931
@?\rdbms\admin\prvsash.plb
@?\rdbms\admin\prvtash.plb
-- 9006105
@?\rdbms\admin\prvtdput.plb
-- 9930151
@?\rdbms\admin\catost.sql
-- 11.2.0.1 Patch 5: 9966926
@?\Bundle\Patch5\catcpu.sql
@?\rdbms\admin\utlrp.sql
-- update stats
EXECUTE dbms_stats.gather_dictionary_stats;
EXECUTE dbms_stats.gather_database_stats(cascade=>true, gather_sys=>true);
-- archive on
shutdown immediate;
startup mount exclusive;
alter database archivelog;
alter database open;
------------------------------------------
これを post_upgrade.sql にして実行しました。
TimeZoneFile.sqlの中身はこんな感じ。(ベストではないと思ってますが…)
------------------------------------------
CONNECT / AS SYSDBA
SHUTDOWN IMMEDIATE;
STARTUP UPGRADE;
SELECT * FROM v$timezone_file;
PURGE DBA_RECYCLEBIN;
TRUNCATE TABLE SYS.DST$TRIGGER_TABLE;
TRUNCATE TABLE SYS.DST$AFFECTED_TABLES;
TRUNCATE TABLE SYS.DST$ERROR_TABLE;
VARIABLE DST_VERSION_NEW NUMBER
BEGIN
:DST_VERSION_NEW := 11;
DBMS_DST.BEGIN_UPGRADE(:DST_VERSION_NEW);
END;
/
SHUTDOWN IMMEDIATE
STARTUP
VAR numfail number
BEGIN
DBMS_DST.UPGRADE_DATABASE(:numfail,
parallel => TRUE,
log_errors => TRUE,
log_errors_table => 'SYS.DST$ERROR_TABLE',
log_triggers_table => 'SYS.DST$TRIGGER_TABLE',
error_on_overlap_time => FALSE,
error_on_nonexisting_time => FALSE);
END;
/
VAR fail number
BEGIN
DBMS_DST.END_UPGRADE(:fail);
END;
/
SELECT * FROM v$timezone_file;
------------------------------------------
次に Listener の移行です。
まずは、10g で動いている Listener を止め、スタートアップも無効にします。
Listener 構成ファイルを 10g → 11g へコピーします。
listener.ora については ORACLE_HOME が設定されているのでこれを変更するのと、トレースファイル出力先 ADR_BASE_LISTENER を設定します。
以下のコマンドで Listener サービスを作成します。
lsnrctl start
新しい Listener サービスが作成されている事を確認し、スタートアップを自動に変更します。
最後にOracle10gを削除します。
スタートメニューから 10g の Universal Installer を起動します。
「製品の削除」を押します。
「環境」タブで 10g のチェックを外して「適用」ボタンを押します。
「内容」タブで 10g のOracleホームにチェックして「削除」ボタンを押します。
確認画面で「はい」を押して削除します。
完了です。
最後に残った Oracle 10g のフォルダを削除して完了です。
前回はアップグレード前処理からアップグレード直前まで来ました。
完了ボタンでアップグレードが開始されます。
アップグレード中
完了です。
最後にアップグレード結果画面が出ます。
DBUAによるアップグレードが完了したら後処理を実施します。
今回はだいたい以下を行っています。
アップグレード後処理
タイムゾーン・パッチ(→Ver.11)
推奨パラメータ設定
パッチ後処理
統計情報更新(全て)
アーカイブモード変更(→ARCHIVE)
------------------------------------------
-- 11.2.0.1 Upgrade
@?/rdbms/admin/utlu112s.sql
@?/rdbms/admin/utluiobj.sql
-- TimeZoneFile
@TimeZoneFile.sql
-- parameters
@11gparameters.sql
-- 8795792
exec SYS.DBMS_METADATA_UTIL.LOAD_STYLESHEETS;
-- 9003931
@?\rdbms\admin\prvsash.plb
@?\rdbms\admin\prvtash.plb
-- 9006105
@?\rdbms\admin\prvtdput.plb
-- 9930151
@?\rdbms\admin\catost.sql
-- 11.2.0.1 Patch 5: 9966926
@?\Bundle\Patch5\catcpu.sql
@?\rdbms\admin\utlrp.sql
-- update stats
EXECUTE dbms_stats.gather_dictionary_stats;
EXECUTE dbms_stats.gather_database_stats(cascade=>true, gather_sys=>true);
-- archive on
shutdown immediate;
startup mount exclusive;
alter database archivelog;
alter database open;
------------------------------------------
これを post_upgrade.sql にして実行しました。
TimeZoneFile.sqlの中身はこんな感じ。(ベストではないと思ってますが…)
------------------------------------------
CONNECT / AS SYSDBA
SHUTDOWN IMMEDIATE;
STARTUP UPGRADE;
SELECT * FROM v$timezone_file;
PURGE DBA_RECYCLEBIN;
TRUNCATE TABLE SYS.DST$TRIGGER_TABLE;
TRUNCATE TABLE SYS.DST$AFFECTED_TABLES;
TRUNCATE TABLE SYS.DST$ERROR_TABLE;
VARIABLE DST_VERSION_NEW NUMBER
BEGIN
:DST_VERSION_NEW := 11;
DBMS_DST.BEGIN_UPGRADE(:DST_VERSION_NEW);
END;
/
SHUTDOWN IMMEDIATE
STARTUP
VAR numfail number
BEGIN
DBMS_DST.UPGRADE_DATABASE(:numfail,
parallel => TRUE,
log_errors => TRUE,
log_errors_table => 'SYS.DST$ERROR_TABLE',
log_triggers_table => 'SYS.DST$TRIGGER_TABLE',
error_on_overlap_time => FALSE,
error_on_nonexisting_time => FALSE);
END;
/
VAR fail number
BEGIN
DBMS_DST.END_UPGRADE(:fail);
END;
/
SELECT * FROM v$timezone_file;
------------------------------------------
次に Listener の移行です。
まずは、10g で動いている Listener を止め、スタートアップも無効にします。
Listener 構成ファイルを 10g → 11g へコピーします。
listener.ora については ORACLE_HOME が設定されているのでこれを変更するのと、トレースファイル出力先 ADR_BASE_LISTENER を設定します。
以下のコマンドで Listener サービスを作成します。
lsnrctl start
新しい Listener サービスが作成されている事を確認し、スタートアップを自動に変更します。
最後にOracle10gを削除します。
スタートメニューから 10g の Universal Installer を起動します。
「製品の削除」を押します。
「環境」タブで 10g のチェックを外して「適用」ボタンを押します。
「内容」タブで 10g のOracleホームにチェックして「削除」ボタンを押します。
確認画面で「はい」を押して削除します。
完了です。
最後に残った Oracle 10g のフォルダを削除して完了です。
コメント 0