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: 準備
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>d:\app\cfgtoollogs\ABC\preupgrade\preupgrade.txtの出力を確認し、プリアップグレードログファイルを見直して、エラーがあれば修正します。
ログ内でAUTOFIXUPと表示されている項目については、プリアップグレード修正スクリプトを実行できます。たとえばd:\app\cfgtoollogs\ABC\preupgrade\preupgrade_fixups.sqlを実行するには、以下のコードを実行します。
cd d:
cd d:\app\cfgtoollogs\ABC\preupgrade
sqlplus sys/<password> as sysdba @preupgrade_fixups.sqlpreupgrade_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: アップグレードの実行
次の手順でアップグレードを行います。
Oracle 11gデータベースをシャットダウンします。
シャットダウン後、管理者権限で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次のコマンドで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
Oracle 19cのWindowsサービス作成後、サービスを起動します。
ステップ3.2: Oracleデータベースの起動
19c環境からOracle Databaseをアップグレードモードで起動します。
アップグレードモードで起動したら、以下の手順を実行します。
次のコマンドを実行します。
cd d:\app\product\19.0.0\dbhome_1\bin
Windowsコマンドプロンプトからdbupgradeユーティリティを実行します。
アップグレード完了後、データベースを起動し、次のコマンドを実行します。
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: クリーンアップ
アップグレードを完了させるために、以下の手順を実行します。
listener.ora、tnsnames.ora、sqlnet.oraをOracle 11gのORACLE_HOMEディレクトリからOracle 19cのORACLE_HOMEディレクトリへコピーし、oracle_homeパラメータを適宜変更します。
これらのファイルをすべて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へスムーズにアップグレードできます。
データベースサービスの詳細については、ぜひご覧ください。
コメントやご質問がある場合は、フィードバックタブをご利用ください。また、私たちとの対話も歓迎します。
-
お使いの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
-
Windows 10を無料でアップグレードする方法|今でも可能な手順を徹底解説
カレンダー上では、Microsoftが大々的に宣伝していたWindows 10への無料アップグレードは2016年に終了したことになっています。しかし、実際のところはそう単純ではありません。終了したのは「GWX(Get Windows 10)」ツールだけで、その他のアップグレード用ツールは現在も利用可能であり、無料アップグレードが近いうちに使えなくなるという発表もありません。 期限切れ後も多くのユーザーが問題なくWindows 10へアップグレードできています。ただし、一部のユーザーには「Windows 10 セットアップはプロダクトキーの検証に失敗しました」というエラーメッセージが表示されるこ