3 インストール環境と事前準備
4.3 データベースの 11.2.0.3 へのアップグレード
4.3.3 CLI を用いたアップグレード
- 52 -
Copyright© 2012, Oracle. All rights reserved.
この後の手順で、catupgrd.sqlを実行するため、<11203_DB_HOME>/rdbms/adminへ移動します。
> cd <11203_DB_HOME>/rdbms/admin
SQL*PlusでSYSDBA権限を持つユーザーとして、データベース・インスタンスに接続します。
> sqlplus / as sysdba
アップグレード・モードでインスタンスを起動します。ただし、既にインスタンスが起動している場合は一度 停止してからアップグレードモードで起動します。
SQL> STARTUP UPGRADE
アップグレード結果の取得を開始します。
SQL> SPOOL upgrade.log
catupgrd.sqlスクリプトを実行します。
SQL> @catupgrd.sql
注:catupgrd.sqlスクリプトの途中でデータベースが停止されます。
SQL*PlusでSYSDBA権限を持つユーザーとして、データベース・インスタンスに再接続します。
> sqlplus / as sysdba
データベース・インスタンスを起動します。
SQL> STARTUP
注:インスタンス起動時に、廃止された初期化パラメータのリストが表示された場合は、再起動する前に廃止 された初期化パラメータを初期化パラメータ・ファイルから削除します。『Oracle® Database 管理者ガイド
11g リリース2(11.2)』の「サーバー・パラメータ・ファイルを使用した初期化パラメータの管理」に関する章を
参照してください。
4.3.3.2 アップグレード後の確認事項
アップグレードの結果を把握するため utlu112s.sql を実行します。実行終了後に、データベース・コン ポーネントがVALIDとなっていることを確認します。
SQL> @utlu112s.sql
catuppst.sql を実行し、データベースをアップグレード・モードにする必要がないアップグレード操作を実 行します。
SQL> @catuppst.sql
utlrp.sqlを実行して、すべてのストアドPL/SQLおよびJavaコードを再コンパイルします。
SQL> @utlrp.sql
すべてのパッケージおよびクラスが有効であることを確認します。
SQL> SELECT count(*) FROM dba_invalid_objects;
SQL> SELECT distinct object_name FROM dba_invalid_objects;
出力結果例:無効なオブジェクトの数が出力されます。出力結果が 0 件であればすべてのパッケー ジおよびクラスが有効であると確認できます。
SQL> select count(*) from dba_invalid_objects;
COUNT(*) --- 0
SQL> select distinct object_name from dba_invalid_objects;
レコードが選択されませんでした。
SQL*Plusを終了します。
SQL> EXIT
- 54 -
Copyright© 2012, Oracle. All rights reserved.
11.2.0.1または11.2.0.2から11.2.0.3へアップグレードした場合、Oracle Clusterwareの構成をアップ グレードします。
> <11203_GI_HOME>\bin\srvctl upgrade database -d <db_unique_name> -o <11203_DB_HOME>
次がコマンドの実行例です。ここでは、<db_unique_name>を orcl、
<11203_DB_HOME>を D:\app\oracle\product\11.2.0.3\dbhome_1 とします。
> D:\app\oracle\product\11.2.0.3\dbhome_1\bin\srvctl upgrade database -d orcl % -o D:\app\oracle\product\11.2.0.3\dbhome_1
・10g R2または11g R1から11.2.0.3へアップグレードした場合、次の手順を実行します。
> <11203_GI_HOME>\bin\srvctl add database -d <db_unique_name> -o <11203_DB_HOME> -a %
<DiskGroup>
次がコマンドの実行例です。ここでは、<db_unique_name>を orcl、
<11203_DB_HOME>を D:\app\oracle\product\11.2.0.3\dbhome_1 とします。
<DiskGroup>を DATA とします。
> D:\app\oracle\product\11.2.0.3\dbhome_1\bin\srvctl add database -d orcl % -o D:\app\oracle\product\11.2.0.3\dbhome_1 –a DATA
4.3.3.3 Database Control のアップグレード
次のように環境変数をセットします。
・ORACLE_HOME=<11203_DB_HOME>
・PATH=<11203_DB_HOME>¥bin;$PATH
emcaコマンドを用いて、Database Controlのアップグレードを行います。
> emca -upgrade db_asm
注:アップグレード前のDatabase Controlが起動した状態で行います。
注:emcaコマンドを実行すると、次の情報の入力を求められます。
・アップグレード前のOracle DatabaseのOracleホーム
・データベース・インスタンス名
・リスナー・ポート番号
・ASMインスタンスをリスニングしているリスナー・ポート番号
・アップグレード前のASMのOracleホーム
・ASMインスタンス名
・SYSユーザーのパスワード
・ASMSNMPユーザーのパスワード
4.3.3.4 タイム・ゾーン・ファイル及びタイム・ゾーン・データ付きタイムスタンプの アップグレード
注:アップグレード前情報ツールの検証結果により、タイム・ゾーン・ファイルのアップグレードを求められた場合、
この手順を行います。『Oracle® Databaseグローバリゼーション・サポート・ガイド11gリリース2(11.2)』の「タ イム・ゾーン・ファイルおよびタイム・ゾーン・データ付きタイムスタンプのアップグレード」も合わせて参照してくだ さい。
7-1.タイム・ゾーン・ファイルおよびタイム・ゾーン・データ付きタイムスタンプのアップグレードの準備
次のように環境変数をセットします。
・ORACLE_HOME=<11203_DB_HOME>
・ORACLE_SID=<DBインスタンス名>
・PATH=<11203_DB_HOME>¥bin;$PATH
SQL*PlusでSYSDBA権限を持つユーザーとして、データベース・インスタンスに接続します。
> sqlplus / as sysdba
DBMS_DST.CREATE_AFFECTED_TABLEプロシージャ、
DBMS_DST.CREATE_ERROR_TABLEプロシージャを使用して、エラー表、および影響を受け
るタイムスタンプとタイム・ゾーン情報の表を作成します。
SQL> EXEC DBMS_DST.CREATE_AFFECTED_TABLE('my_affected_tables');
SQL> EXEC DBMS_DST.CREATE_ERROR_TABLE('my_error_table');
DBMS_DST.BEGIN_PREPARE(<versioin_number>) プロシージャを実行します。DBMS_DST権限 情報の詳細は、『Oracle® Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス11g リ リース2(11.2)』を参照してください。DBMS_DST.BEGIN_PREPARE(<versioin_number>) プロシー ジャを実行し、「DST_PRIMARY_TT_VERSION」と「DST_SECONDARY_TT_VERSION」のバージョ ンと「DST_UPGRADE_STATE」の状態を確認します。
SQL> EXEC DBMS_DST.BEGIN_PREPARE(14);
PL/SQL プロシージャが正常に完了しました。
SQL> SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME LIKE 'DST_%' ORDER BY PROPERTY_NAME;
PROPERTY_NAME VALUE --- --- DST_PRIMARY_TT_VERSION 4
DST_SECONDARY_TT_VERSION 14 DST_UPGRADE_STATE PREPARE
DBMS_DST.FIND_AFFECTED_TABLESプロシージャを実行して影響を受けるデータを確認します。
SQL> EXEC DBMS_DST.FIND_AFFECTED_TABLES(affected_tables =>
'my_affected_tables',log_errors => TRUE,log_errors_table => 'my_error_table');
- 56 -
Copyright© 2012, Oracle. All rights reserved.
my_affected_tables表で影響を受ける表を確認します。
SQL> SELECT * FROM my_affected_tables;
my_affected_tables表でエラーのある表を確認します。
SQL> SELECT * FROM my_error_table;
SYS.DST$AFFECTED_TABLES.ERROE_COUNTでエラー件数が1以上の場合、
SYS.DST$ERROR_TABLEをチェックします。
SQL> SELECT * FROM SYS.DAT$AFFECTED_TABLES;
DBMS_DST.END_PREPAREプロシージャを実行し、準備ウィンドウを終了します。
SQL> EXEC DBMS_DST.END_PREPARE;
DATABASE_PROPERTIES表のDST_UPGRADE_STATEが「PREPARE」から「NONE」になってい ることを確認します。
SQL> SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME LIKE 'DST_%' ORDER BY PROPERTY_NAME;
PROPERTY_NAME VALUE --- --- DST_PRIMARY_TT_VERSION 14 DST_SECONDARY_TT_VERSION 0 DST_UPGRADE_STATE NONE
7-2.タイム・ゾーン・ファイルおよびタイム・ゾーン・データ付きタイムスタンプのアップグレードのステップ
データベースを停止します。
SQL> SHUTDOWN IMMEDIATE
アップグレード・モードで、データベースを起動します。
SQL> STARTUP UPGRADE
DBMS_DST.BEGIN_UPGRADE(<versioin_number>) プロシージャを実行します。
DBMS_DST.BEGIN_ UPGRADE(<versioin_number>) プロシージャを実行し、DSTの状態を確認し ます。
SQL> exec DBMS_DST.BEGIN_UPGRADE(14);
SQL> SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME LIKE 'DST_%' ORDER BY PROPERTY_NAME;
PROPERTY_NAME VALUE --- --- DST_PRIMARY_TT_VERSION 14
DST_SECONDARY_TT_VERSION 4 DST_UPGRADE_STATE UPGRADE
データベースを通常のモードで再起動します。
SQL> SHUTDOWN IMMEDIATE SQL> STARTUP
DBMS_DST.UPGRADE_DATABASEプロシージャを実行して、すべての表内のTSTZデータをアップ グレードします。
SQL> VAR numfail number SQL> 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 => TRUE,
error_on_nonexisting_time => TRUE);
DBMS_OUTPUT.PUT_LINE('Failures:'|| :numfail);
END;
/
DBA_TSTZ_TABLES表でアップグレードが終了しているかを確認します。
「UPGRADE_IN_PROGRESS」列の結果が全て「NO」となっていればアップグレードが終了しています。
「YES」の場合はアップグレード実行中です。
SQL> select * from DBA_TSTZ_TABLES;
OWNERTABLE_NAME UPGRADE_IN_PROGRESS
--- --- --- SYSOPTSTAT_HIST_CONTROL$ NO
SYSWRI$_OPTSTAT_IND_HISTORY NO SYSWRI$_OPTSTAT_OPR NO SYSSCHEDULER$_WINDOW NO :
省略
DBMS_DST.END_UPGRADEプロシージャを実行して、アップグレード・ウィンドウを終了します。
SQL> BEGIN
DBMS_DST.END_UPGRADE(:numfail);
END;
/
- 58 -
Copyright© 2012, Oracle. All rights reserved.
アップグレードの確認
DATABASE_PROPERTIES表を確認し、「DST_UPGRADE_STATE」が「NONE」、
「DST_PRIMARY_TT_VERSION」が「14」となっていればアップグレードが完了しています。
SQL> SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME LIKE 'DST_%' ORDER BY PROPERTY_NAME;
PROPERTY_NAME VALUE --- --- DST_PRIMARY_TT_VERSION 14
DST_SECONDARY_TT_VERSION 0 DST_UPGRADE_STATE NONE
アップグレードの終了
アップグレードは以上で終了です。また、データベースのバージョンを確認する場合、11.2.0.3 の
SQL*Plus で SYSDBA 権限をもつユーザーとしてデータベース・インスタンスに接続し、データベースの
バージョンを確認します。
> set ORACLE_HOME=<11203_DB_HOME>
> set ORACLE_SID=<DB インスタンス名>
> set PATH=<11203_DB_HOME>\bin;$PATH
> sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Tue Oct 18 22:50:45 2011 Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the partitioning, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options
SQL> select * from v$version;
BANNER
--- Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Linux: Version 11.2.0.3.0 - Production NLSRTL Version 11.2.0.3.0 - Production
以上で、データベースのアップグレードが完了しました。