データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

WindowsでOracle Databaseを11.2.0.4から19cへアップグレードする手順(パート2)

Oracle® Database 19cは、市場や企業で広く採用されている自動化データベースの最新リリースです。安定性は、Oracle Database 12c(リリース12.2)ファミリー製品群に属するOracle Database 19cコンポーネントにとって重要な要素となっています。この2部構成のブログ記事シリーズでは、19cのインストールとアップグレードについて解説します。

はじめに

本記事(シリーズ第2回)では、Windows®環境でOracle Databaseを11.2.0.4から19cへアップグレードする手順に焦点を当てます。ここで紹介するのは手動による方法で、Database Upgrade Assistant(DBUA)は使用しません。

インストール手順については、シリーズ第1回をご参照ください。筆者は19cのバイナリをORACLE_HOMEディレクトリd:\app\product\19.0.0\dbhome_1にインストール済みです。

以下の手順に従って、Oracle Databaseを19cへアップグレードしてください。

注意: アップグレード中に問題が発生した場合に備えて、必ず有効なバックアップを作成しておいてください。

ステップ1: インストールファイルのステージング

アップグレードを進められるよう、19.3 RDBMS(Relational Database Management System)のインストールファイルをステージングします。

ステップ2: アップグレード前の準備作業

以下の手順を実行して、アップグレード前プロセスを完了させます。

ステップ2.0: 準備

  1. Metalinkノート884522.1からOracle Database Pre-Upgradeユーティリティをダウンロードします。プリアップグレードツールを実行するには、次のコードを実行します。

    set ORACLE_HOME=d:\app\product\11.2.0.4\dbhome_1
    set ORACLE_BASE=d:\app
    set ORACLE_SID=ABC
    set PATH=%ORACLE_HOME%\bin;%PATH%
    %ORACLE_HOME%\jdk\bin\java -jar <top_dir>\preupgrade.jar TERMINAL TEXT -u sys -p <sys_password>

  2. d:\app\cfgtoollogs\ABC\preupgrade\preupgrade.txtの出力を確認し、プリアップグレードログファイルを見直して、エラーがあれば修正します。

  3. ログ内でAUTOFIXUPと表示されている項目については、プリアップグレード修正スクリプトを実行できます。たとえばd:\app\cfgtoollogs\ABC\preupgrade\preupgrade_fixups.sqlを実行するには、以下のコードを実行します。

    cd d:
    cd d:\app\cfgtoollogs\ABC\preupgrade
    sqlplus sys/<password> as sysdba @preupgrade_fixups.sql

  4. preupgrade_fixups.sqlの出力を確認し、残っている手動作業があれば実施します。

ステップ2.1: pfileのバックアップ

次のコマンドでpfileのバックアップを作成します。

SQL> create pfile='d:\app\init_ABC.ora' from spfile;

ステップ2.2: 無効オブジェクトの整理

SQL*Plusからutlrp.sqlスクリプトを実行して、無効なオブジェクトを再コンパイルします。SYS/SYSTEMスキーマに無効オブジェクトが残っていないことを確認してください。それ以外の無効オブジェクトは別のテーブルに保存しておき、後のアップグレード後の確認作業で照合できるようにします。

SQL>@?/rdbms/admin/utlrp.sql
SQL> create table system.invalids_before_upgrade as select * From dba_invalid_objects;

ステップ2.3: EMリポジトリの削除

以下の手順でEMリポジトリを削除します。

emremove.sqlスクリプトを19cホームから11gホームへコピーします。

copy d:\app\product\19.0.0\dbhome_1\rdbms\admin\emremove.sql  d:\app\product\11.2.0.4\dbhome_1\rdbms\admin
cd d:\app\product\11.2.0.4\dbhome_1\rdbms\admin
sqlplus sys/<password> as sysdba
SET ECHO ON;
SET SERVEROUTPUT ON;
@emremove.sql  

ステップ2.4: OLAPカタログの削除

以下の手順でOLAPカタログを削除します。

cd d:\app\product\11.2.0.4\dbhome_1\olap\
admin\
sqlplus sys/<password> as sysdba @catnoamd.sql

ステップ2.5: APEXの削除

Application Express(APEX)を使用していない場合は、次のコマンドで削除できます。

cd d:\app\product\11.2.0.4\dbhome_1\apex
sqlplus sys/<password> as sysdba @apxremov.sql
drop package htmldb_system;
drop public synonym htmldb_system;

ステップ2.6: RECYCLEBINのパージ

次のコマンドでDBA_RECYCLEBINをパージします。

PURGE DBA_RECYCLEBIN;

ステップ2.7: ディクショナリ統計の収集

次のコマンドでディクショナリ統計を収集します。

EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;

すべての準備が整っていることを確認するため、プリアップグレードツールを再実行します。

ステップ3.0: アップグレード手順

以下のアップグレード手順を実行します。

ステップ3.1: アップグレードの実行

次の手順でアップグレードを行います。

  1. Oracle 11gデータベースをシャットダウンします。

  2. シャットダウン後、管理者権限でCMDを開き、コマンドプロンプトから以下の手順を実行して、Oracle 11gのWindowsサービスをすべて削除します。

    set ORACLE_HOME=d:\app\product\19.0.0\dbhome_1
    set PATH=%ORACLE_HOME%\bin;%PATH%
    set ORACLE_SID=ABC
    sc delete OracleJobSchedulerABC
    sc delete OracleMTSRecoveryService
    sc delete OracleServiceABC
    sc delete OracleVssWriterABC

  3. 次のコマンドでOracle 19cのWindowsサービスを作成します。

    d:\app\product\19.0.0\dbhome_1\bin\ORADIM -NEW -SID ABC -SYSPWD ********* -STARTMODE AUTO -PFILE D:\app\product\19.0.0\dbhome_1\database\INITABC.ORA

  4. Oracle 19cのWindowsサービス作成後、サービスを起動します。

ステップ3.2: Oracleデータベースの起動

19c環境からOracle Databaseをアップグレードモードで起動します。

アップグレードモードで起動したら、以下の手順を実行します。

  1. 次のコマンドを実行します。

    cd d:\app\product\19.0.0\dbhome_1\bin

  2. Windowsコマンドプロンプトからdbupgradeユーティリティを実行します。

  3. アップグレード完了後、データベースを起動し、次のコマンドを実行します。

    SQL> @?\rdbms\admin\utlrp.sql

ステップ4.0: アップグレード後の作業

アップグレードが成功したら、ポストアップグレード修正スクリプトを実行します。

d:\ cd d:\app\cfgtoollogs\ABC\preupgrade
sqlplus sys/<password> as sysdba @postupgrade_fixups.sql

ステップ4.1: タイムゾーンのアップグレード

ポストアップグレード修正スクリプトの実行後、次のコマンドでタイムゾーンをアップグレードします。

sqlplus / as sysdba <<EOF
-- Check current settings.
SELECT * FROM v$timezone_file;
SHUTDOWN IMMEDIATE;
STARTUP UPGRADE;
-- Begin upgrade to the latest version.
SET SERVEROUTPUT ON
DECLARE
  l_tz_version PLS_INTEGER;
BEGIN
  l_tz_version := DBMS_DST.get_latest_timezone_version;
  DBMS_OUTPUT.put_line('l_tz_version=' || l_tz_version);
  DBMS_DST.begin_upgrade(l_tz_version);
END;
/
SHUTDOWN IMMEDIATE;
STARTUP;
-- Do the upgrade.
SET SERVEROUTPUT ON
DECLARE
  l_failures  
  PLS_INTEGER;
BEGIN
  DBMS_DST.upgrade_database(l_failures);
  DBMS_OUTPUT.put_line('DBMS_DST.upgrade_database : l_failures=' || l_failures);
  DBMS_DST.end_upgrade(l_failures);
  DBMS_OUTPUT.put_line('DBMS_DST.end_upgrade : l_failures=' || l_failures);
END;
/
-- Validate time zone.
SELECT * FROM v$timezone_file;

COLUMN property_name FORMAT A30
COLUMN property_value FORMAT A20

SELECT property_name, property_value
FROM   database_properties
WHERE  property_name LIKE 'DST_%'
ORDER BY property_name;
exit;
SQL> select TZ_VERSION from registry$database; 

TZ_VERSIONが古いバージョンを示している場合は、次のコマンドを実行します。

SQL>update registry$database set TZ_VERSION = (select version FROM v$timezone_file);
SQL>commit;
SQL>select TZ_VERSION from registry$database;
TZ_VERSION
----------
32

ステップ4.2: オブジェクト統計の収集

次のコマンドで固定オブジェクト統計を収集します。

sqlplus / as sysdba <<EOF
EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
exit;

ステップ4.3: ディクショナリ統計の収集

アップグレード後に次の文を実行して、ディクショナリ統計を収集します。

EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;

ステップ4.4: 修正済み問題の検証

utlusts.sqlを実行して、問題が残っていないことを確認します。

d:\app\product\19.0.0\dbhome_1\rdbms\admin\utlusts.sql TEXT  

ステップ4.5: 無効オブジェクトの比較

すべての無効オブジェクトを、ステップ2.2で保存したリストと照合します。

ステップ4.6: クリーンアップ

アップグレードを完了させるために、以下の手順を実行します。

  1. listener.oratnsnames.orasqlnet.oraをOracle 11gのORACLE_HOMEディレクトリからOracle 19cのORACLE_HOMEディレクトリへコピーし、oracle_homeパラメータを適宜変更します。

  2. これらのファイルをすべてd:\app\product\19.0.0\dbhome_1\network\adminに配置します。

注意: 後からOracle Databaseを11gへダウングレードする可能性がある場合は、compatible=11.2.0.4の設定を維持してください。

まとめ

以上の手順に従うことで、Windows上のOracle Database 11.2.0.4を19cへスムーズにアップグレードできます。

データベースサービスの詳細については、ぜひご覧ください。

コメントやご質問がある場合は、フィードバックタブをご利用ください。また、私たちとの対話も歓迎します。

  1. お使いのPCはWindows 8に対応している?「Windows 8 Upgrade Assistant」で事前チェックする方法

    Windows 8へのアップグレード、その前に Windows 8が正式リリースされ、いよいよアップグレードするかどうかの判断が求められる時期となりました。Windows XP、Windows Vista、Windows 7からWindows 8へ移行を考えているなら、アップグレード版を購入する前に、自分のパソコンがWindows 8に対応しているかどうかを必ず確認しておきましょう。 「Windows 8 Upgrade Assistant」で互換性をチェック お使いのPCがWindows 8に対応しているかどうかを調べるには、Microsoftが無料で提供している「Windows 8 Up

  2. Windows 10を無料でアップグレードする方法|今でも可能な手順を徹底解説

    カレンダー上では、Microsoftが大々的に宣伝していたWindows 10への無料アップグレードは2016年に終了したことになっています。しかし、実際のところはそう単純ではありません。終了したのは「GWX(Get Windows 10)」ツールだけで、その他のアップグレード用ツールは現在も利用可能であり、無料アップグレードが近いうちに使えなくなるという発表もありません。 期限切れ後も多くのユーザーが問題なくWindows 10へアップグレードできています。ただし、一部のユーザーには「Windows 10 セットアップはプロダクトキーの検証に失敗しました」というエラーメッセージが表示されるこ