2 概要
3.3 データベースの 11.2.0.3 へのアップグレード
3.3.2 手動でのアップグレード
本項では、データベースを手動でアップグレードする方法について説明します。本ガイドでは、以下の手順で データベースのアップグレードを行っていきます。
1. ファイルのバックアップ
2. Database Controlデータの保存 3. アップグレード前情報ツールの実行 4. データベースのアップグレード 5. アップグレード後の確認事項 6. Database Controlのアップグレード
1.ファイルのバックアップ
アップグレードするデータベースをバックアップします。
アップグレード前のOracleホームから11.2.0.3のOracleホームへ構成ファイルをコピーします。
a.初期化パラメータ・ファイルがASMインスタンス内にある場合は、次のコマンドを使用して初期化パラメ
ータ・ファイルをバックアップします。
注:spfileをASMに配置しているデータベースをダウングレードする場合は、ダウングレードする前に初期 化パラメータ・ファイルをリストアする必要があるため、事前にバックアップを取得します。
b.初期化パラメータ・ファイルやパスワード・ファイルがアップグレード前のOracle ホームに存在する場合
は、11.2.0.3のOracleホームへコピーします。また、初期化パラメータ・ファイルは任意の場所に格納でき ますが、11.2.0.3へアップグレード後、アップグレード前のOracleホームに初期化パラメータ・ファイルを格 納しないでください。
SQL> CREATE PFILE [='<pfile_path>'] FROM SPFILE [='<spfile_path>'];
$ cp <BASE_DB_HOME>/dbs <11203_DB_HOME>/dbs
2. Database Controlデータの保存
Database Controlを利用している場合、そのデータのバックアップを取得しておきます。 Database Controlをア ップグレード後、Database Controlのダウングレードが必要となった場合に、バックアップしたデータを利用します。
バックアップの取得を行う場合は、次の手順に従ってください。なお、手順の途中にDatabase Controlのデータを 保存するディレクトリが必要になります。本ガイドでは、Database Control のデータを保存するディレクトリを
<Save_Directory>とします。
次のように環境変数をセットします。
・ORACLE_HOME=<BASE_DB_HOME>
・ORACLE_SID=<DBインスタンス名>
・PATH=<BASE_DB_HOME>/bin:$PATH
・LD_LIBRARY_PATH=<BASE _DB_HOME>/lib:$LD_LIBRARY_PATH
・SHLIB_PATH=<BASE_DB_HOME>/lib:$SHLIB_PATH
バックアップを保存するディレクトリを作成します。
11.2.0.3のOracleホームのbinに移動します。
emdwgrdユーティリティを用いて、バックアップを取得します。
注:emdwgrdユーティリティを実行中に、Oracle DatabaseのSYSユーザーのパスワードの入力を求め られます。
$ export ORACLE_HOME=<BASE_DB_HOME>
$ export ORACLE_SID=<DB インスタンス名>
$ export PATH=<BASE_DB_HOME>/bin:$PATH
$ export LD_LIBRARY_PATH=<BASE_DB_HOME>/lib:$LD_LIBRARY_PATH
$ export SHLIB_PATH=<BASE_DB_HOME>/lib:$SHLIB_PATH
$ cd <11203_DB_HOME>/bin
$ ./emdwgrd -save -sid <DB インスタンス名> -path <Save_Direcroty>
$ mkdir <Save_Direcroty>
3.アップグレード前情報ツールの実行
DBUAを起動する前に、アップグレード前情報ツール(<11203_DB_HOME>/rdbms/admin/utlu112i.sql) を使 用して環境を確認します。アップグレード前情報ツールでは、アップグレードを行う際、データベースに発生する可 能性のある問題について警告が表示されます。アップグレード前情報ツールを実行するには、次の手順を実行し てください。
Oracle Databaseのインストール・ユーザーでシステムにログインします。
次のように環境変数をセットします。
・ORACLE_HOME=<BASE_DB_HOME>
・ORACLE_SID=<DBインスタンス名>
・PATH=<BASE_DB_HOME>/bin:$PATH
<11203_DB_HOME>/rdbms/adminディレクトリへ移動します。
SQL*PlusでSYSDBA権限を持つユーザーとして、データベース・インスタンスに接続します。
アップグレード前検証の結果の取得を開始します。
アップグレード前情報ツールを実行します。
アップグレード前検証の結果の取得を終了します。
SQL> SPOOL upgrade_info.log
SQL> @<11203_DB_HOME>/rdbms/admin/utlu112i.sql
SQL> SPOOL OFF
$ export ORACLE_HOME=<BASE_DB_HOME>
$ export ORACLE_SID=<DB インスタンス名>
$ export PATH=<BASE_DB_HOME>/bin:$PATH
$ sqlplus / as sysdba
$ su - oracle
$ cd <11203_DB_HOME>/rdbms/admin
4.データベースのアップグレード
Oracle Databaseのインストール・ユーザーとしてシステムにログインします。
次のように環境変数をセットします。
・ORACLE_HOME=<BASE_DB_HOME>
・ORACLE_SID=<DBインスタンス名>
・PATH=<BASE_DB_HOME>/bin:$PATH
SQL*PlusでSYSDBA権限を持つユーザーとして、データベース・インスタンスに接続します。
インスタンスを停止します。
SQL*Plusを終了します。
/etc/oratabファイルに11.2.0.3のOracle DatabaseのOracleホームのエントリがあることを確認します。
記載がない場合は書き換えが必要です。次に、/etc/oratab内のファイル出力例を記載します。
次のように環境変数をセットします。
・ORACLE_HOME=<11203_DB_HOME>
・PATH=<11203_DB_HOME>/bin:$PATH
$ cat /etc/oratab +ASM:<11203_GI_HOME>:N orcl:<11203_DB_HOME>:N SQL> SHUTDOWN IMMEDIATE
$ export ORACLE_HOME=<11203_DB_HOME>
$ export PATH=<11203_DB_HOME>/bin:$PATH
$ export ORACLE_HOME=<BASE_DB_HOME>
$ export ORACLE_SID=<DB インスタンス名>
$ export PATH=<BASE_DB_HOME>/bin:$PATH
$ sqlplus / as sysdba
SQL> EXIT
$ su - oracle
この後の手順で、catupgrd.sqlを実行するため、<11203_DB_HOME>/rdbms/adminへ移動します。
SQL*PlusでSYSDBA権限を持つユーザーとして、データベース・インスタンスに接続します。
アップグレード・モードでインスタンスを起動します。ただし、既にインスタンスが起動している場合は一度 停止してからアップグレードモードで起動します。
アップグレード結果の取得を開始します。
catupgrd.sqlスクリプトを実行します。
注:catupgrd.sqlスクリプトの途中でデータベースが停止されます。
SQL*PlusでSYSDBA権限を持つユーザーとして、データベース・インスタンスに再接続します。
データベース・インスタンスを起動します。
注:インスタンス起動時に、廃止された初期化パラメータのリストが表示された場合は、再起動する前 に廃止された初期化パラメータを初期化パラメータ・ファイルから削除します。『Oracle® Database管 理者ガイド 11g リリース 2(11.2)』の「サーバー・パラメータ・ファイルを使用した初期化パラメータの 管理」に関する章を参照してください。
SQL> STARTUP UPGRADE
SQL> SPOOL upgrade.log
SQL> @catupgrd.sql
SQL> STARTUP
$ cd <11203_DB_HOME>/rdbms/admin
$ sqlplus / as sysdba
$ sqlplus / as sysdba
5.アップグレード後の確認事項
アップグレードの結果を把握するため utlu112s.sql を実行します。実行終了後に、データベース・コンポー
ネントがVALIDとなっていることを確認します。
catuppst.sql を実行し、データベースをアップグレード・モードにする必要がないアップグレード操作を実行 します。
utlrp.sqlを実行して、すべてのストアドPL/SQLおよびJavaコードを再コンパイルします。
すべてのパッケージおよびクラスが有効であることを確認します。
SQL*Plusを終了します。
SQL> @utlu112s.sql
SQL> @catuppst.sql
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;
no rows selected
SQL> EXIT
11.2.0.1または11.2.0.2から11.2.0.3へアップグレードした場合、Oracle Clusterwareの構成をアップグ レードします。
・10g R2または11g R1から11.2.0.3へアップグレードした場合、次の手順を実行します。
$ <11203_GI_HOME>/bin/srvctl upgrade database \ -d <db_unique_name> -o <11203_DB_HOME>
次がコマンドの実行例です。ここでは、<db_unique_name>を orcl、
<11203_DB_HOME>を/u01/app/oracle/product/11.2.0.3/dbhome_1 とします。
$/u01/app/oracle/product/11.2.0.3/dbhome_1/bin/srvctl upgrade database -d orcl \ -o /u01/app/oracle/product/11.2.0.3/dbhome_1
$ <11203_GI_HOME>/bin/srvctl add database \
-d <db_unique_name> -o <11203_DB_HOME> -a <DiskGroup>
次がコマンドの実行例です。ここでは、<db_unique_name>を orcl、
<11203_DB_HOME>を/u01/app/oracle/product/11.2.0.3/dbhome_1 とします。
<DiskGroup>を DATA とします。
$/u01/app/oracle/product/11.2.0.3/dbhome_1/bin/srvctl add database -d orcl \ -o /u01/app/oracle/product/11.2.0.3/dbhome_1 –a DATA
6. Database Controlのアップグレード
次のように環境変数をセットします。
・ORACLE_HOME=<11203_DB_HOME>
・PATH=<11203_DB_HOME>/bin:$PATH
emcaコマンドを用いて、Database Controlのアップグレードを行います。
注:アップグレード前のDatabase Controlが起動した状態で行います。
注:emcaコマンドを実行すると、次の情報の入力を求められます。
・アップグレード前のOracle DatabaseのOracleホーム
・データベース・インスタンス名
・リスナー・ポート番号
・ASMインスタンスをリスニングしているリスナー・ポート番号
・アップグレード前のASMのOracleホーム
・ASMインスタンス名
・SYSユーザーのパスワード
・ASMSNMPユーザーのパスワード
$ export ORACLE_HOME=<11203_DB_HOME>
$ export PATH=<11203_DB_HOME>/bin:$PATH
$ emca -upgrade db_asm
7.タイム・ゾーン・ファイル及びタイム・ゾーン・データ付きタイムスタンプのアップグレード
注:アップグレード前情報ツールの検証結果により、タイム・ゾーン・ファイルのアップグレードを求められた場合、
この手順を行います。『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権限を持つユーザーとして、データベース・インスタンスに接続します。
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');
$ export ORACLE_HOME=<11203_DB_HOME>
$ export ORACLE_SID=<DB インスタンス名>
$ export PATH=<11203_DB_HOME>/bin:$PATH
$ sqlplus / as sysdba