• 検索結果がありません。

本ガイドでは、以下の手順でデータベースとOracle Databaseのダウングレードを行っていきます。

1. 各バージョンに応じたPatchの適用 2. データベースのダウングレードの実行 3. アップグレード後の確認事項

1.各バージョンに応じたPatchの適用

ダウングレードを実行する前の事前準備として、アップグレード前のバージョンに応じた Patch を適用する必要が あります。また、Patch を適用する場合、Opatch のバージョンが最新であることをご確認ください。アップグレード 前のバージョンに応じた適用するPatchは次の通りです。

・11.2.0.1の場合:Patch 9967451を適用

・11.2.0.2の場合:Patch11811073を適用

Patchを適用する場合は次の手順を実行してください。

・11.2.0.1 の場合、Patch 9967451 を適用する必要があります。Patch を MOS からダウンロードしてください。

なお、Patchが保存されたディレクトリを <PATCH_TOP_DIR>とします。

1-1.次のように環境変数をセットしてください。

・ORACLE_HOME=<BASE_DB_HOME>

・PATH=<BASE_DB_HOME>/OPatch:$PATH

1-2.ダウングロードしたZIPファイルを解凍します。

1-3.解凍後、Patchのディレクトリに移動します。

$ unzip -d <PATCH_TOP_DIR>/p9967451_112010_Generic.zip

$ cd <PATCH_TOP_DIR>/9967451

$ export ORACLE_HOME=<BASE_DB_HOME>

$ export PATH=<BASE_DB_HOME>/OPatch:$PATH

1-4.Patchを適用します。

・11.2.0.2 の場合 Patch11811073 を適用する必要があります。Patch を MOS からダウンロードしてください。

なお、Patchが保存されたディレクトリを <PATCH_TOP_DIR>とします。

1-1.次のように環境変数をセットしてください。

・ORACLE_HOME=<BASE_DB_HOME>

・PATH=<BASE_DB_HOME>/OPatch:$PATH

1-2.ZIPファイルでダウングロードしたPatchを解凍します。

1-3.解凍後、Patchのディレクトリに移動します。

1-4.Patchを適用します。

$ opatch apply

$ unzip -d <PATCH_TOP_DIR>/p11811073_112020_Generic.zip

$ cd <PATCH_TOP_DIR>/11811073

$ opatch apply

$ export ORACLE_HOME=<BASE_DB_HOME>

$ export PATH=<BASE_DB_HOME>/OPatch:$PATH

2.データベースのダウングレードの実行

 Oracle Databaseのインストール・ユーザーでシステムにログインします。

 タイム・ゾーン・ファイルの確認をします。

アップグレード前のバージョンが 11.2.0.1 以前のバージョンでデータベースのアップグレード時にタイム・

ゾーンのアップグレードを行った場合、ダウングレードを実行する際にタイム・ゾーン・ファイルのコピーが必 要 と なり ます 。 こ れ は 、 タイ ム ・ ゾ ー ン の ダ ウ ン グ レ ー ドが 行 え ない ため です 。 次 の デ ィレ ク ト リ に timezlrg_14.datとtimezone_14.dat以前のバージョン(1から13まで) のファイルが存在するかを確認し ます。

timezlrg_14.datとtimezone_14.dat以前のバージョン(1 から13まで)までのファイルが存在しない場合 は、<11203_DB_HOME>/oracore/zoneinfo からファイルのコピーを実行してください。次のコマンドはコ ピーが必要な場合、複数回実行してください。

 Database Controlが構成済みの場合、Database Controlを停止します。

 次のように環境変数をセットしてください。

・ORACLE_HOME=<11203_DB_HOME>

・ORACLE_SID=<DBインスタンス名>

・PATH=<11203_DB_HOME>/bin:$PATH

$ export ORACLE_UNQNAME=<db_unque_name>

$ <11203_DB_HOME>/bin/emctl stop dbconsole

$ export ORACLE_HOME=<11203_DB_HOME>

$ export ORACLE_SID=<DB インスタンス名>

$ export PATH=<11203_DB_HOME>/bin:$PATH

$ su - oracle

$ cp <11203_DB_HOME>/oracore/zoneinfo/timezlrg_<version_number>.dat \

<BASE_DB_HOME>/oracore/zoneinfo/timezlrg_<version_number>.dat

$ cp <11203_DB_HOME>/oracore/zoneinfo/timezone_<version_number>.dat \

<BASE_DB_HOME>/oracore/zoneinfo/timezone_<version_number>.dat

<BASE_DB_HOME>/oracore/zoneinfo

 この後の手順でcatdwgrd.sqlを実行するため、<11203_DB_HOME>/rdbms/adminディレクトリへ移動し ます。

 SQL*PlusでSYSDBA権限を持つユーザーとして、データベース・インスタンスに接続します。

 ダウングレードモードでインスタンスを起動します。既にデータベースが起動している場合はインスタンスを 停止してから、ダウングレードモードでインスタンスを再起動します。

 Database Controlが構成されている場合は、SYSMANユーザーを削除します。

 ダウングレード結果の取得を開始します。

 catdwgrd.sqlを実行します。

 ダウングレード結果の取得を終了します。

 インスタンスを停止します。

 SQL*Plusを終了します。

 次のように環境変数をセットします。

・ORACLE_HOME=<BASE_DB_HOME>

SQL> STARTUP DOWNGRADE

SQL> DROP USER sysman CASCADE;

SQL> SPOOL downgrade.log

SQL> @catdwgrd.sql

SQL> SPOOL OFF

SQL> EXIT

$ sqlplus / as sysdba

$ cd <11203_DB_HOME>/rdbms/admin

SQL> SHUTDOWN IMMEDIATE

 バックアップを取得したアップグレード前のバージョンの構成ファイルをリストアします。その後、アップグ レード前の初期化パラメーター・ファイルをリストアします。

・SQL*PlusでSYSDAB権限を持つユーザーとしてデータベース・インスタンスに接続します。

・アップグレード時にバックアップを取ったpfileからspfileを再作成します。

 この後の手順でcatrelod.sqlを実行するため、<BASE_DB_HOME >/rdbms/adminディレクトリへ移動し ます。

 SQL*PlusでSYSDBA権限を持つユーザーとして、データベース・インスタンスに接続します。

 アップグレード・モードでインスタンスを起動します。

 リロード結果の取得を開始します。

 catrelod.sql を実行して、ダウングレードしたデータベース内の該当するバージョンのすべてのデータベー ス・コンポーネントをリロードします。

 リロード結果の取得を終了します。

 インスタンスを再起動します。

SQL> STARTUP UPGRADE

SQL> SPOOL reload.log

SQL> @catrelod.sql

SQL> SHUTDOWN IMMEDIATE SQL> STARTUP

$ cd <BASE_DB_HOME>/rdbms/admin

$ sqlplus / as sysdba

$ sqlplus / as sysdba

SQL> CREATE SPFILE[=’<spfile_path>’] FROM PFILE[=’<pfile_path>’];

SQL> EXIT

SQL> SPOOL OFF

 utlrp.sqlを実行して、残りのすべてのストアドPL/SQLおよびJavaコードを再コンパイルします。

 ダウングレード後、データベースのバージョンが11.2.0.2であることを確認します。

SQL> @utlrp.sql

SQL> SELECT * FROM V$VERSION;

BANNER

--- Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production PL/SQL Release 11.2.0.2.0 - Production

CORE 11.2.0.2.0 Production

TNS for Linux: Version 11.2.0.2.0 - Production NLSRTL Version 11.2.0.2.0 - Production

*11.2.0.3から11.2.0.1または11.2.0.2へダウングレードする場合のみ、実行します。

 Oracle Clusterwareのデータベースの構成情報をダウングレードします。11.2.0.3のOracle Databaseの Oracleホームから、Oracle Databaseのインストール・ユーザーで実行します。

$ <11203_DB_HOME>/srvctl downgrade database -d <db_unique_name> \ -o <BASE_DB_HOME> -t <BASE_DATABASE_VERSION>

次は、11.2.0.2 へのダウングレードの実行です。 ここでは、<db_unique_name>を orcl、

<BASE_DB_HOME>を/u01/app/oracle/product/11.2.0.2/dbhome_1、

<BASE_DATABASE_VERSION>を 11.2.0.2 とします。

$ /u01/app/oracle/product/11.2.0.3/dbhome_1/bin/srvctl downgrade database \ -d orcl –o /u01/app/oracle/product/11.2.0.2/dbhome_1 -t 11.2.0.2

3.Database Controlのデータをリストアします。

 Database Controlをアップグレード前のOracleホームにリストアします。

注:Database Controlが起動した状態で行います。

注:コマンドを実行すると、次の情報の入力を求められます。

・アップグレード前のOracle DatabaseのOracleホーム

・データベース・インスタンス名

・リスナー・ポート 番号

・ASMインスタンスをリスニングしているリスナー・ポート番号

・アップグレード前のASMのOracleホーム

・ASMインスタンス名

・SYSユーザーのパスワード

・ASMSNMPユーザーのパスワード

 次の環境変数を追加します。

・LD_LIBRARY_PATH=<BASE_DB_HOME>/lib:$LD_LIBRARY_PATH

・SHLIB_PATH=<BASE_DB_HOME>/lib:$SHLIB_PATH

 11.2.0.3のOracleホームのbinディレクトリに移動します。

 アップグレード時に作成したDatabase Controlデータのバックアップを、emdwgrdユーティリティを用いて、

リストアします。

注:アップグレード前のリスナーを起動しておく必要があります。

注:emdwgrdユーティリティを実行中に、SYSユーザーのパスワード、SYSMANユーザーのパスワードが 求められます。

$ <11203_DB_HOME>/bin/emca –restore db_asm

$ 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 -restore -sid <DB インスタンス名> -path <Save_Direcroty> \ -tempTablespace TEMP

2 Oracle Grid Infrastructure のダウングレード

Oracle Grid Infrastructureのダウングレードは、アップグレード前のバージョンにより、ダウングレード方法が異 なるため、アップグレード前のバージョンごとにダウングレード方法を記載します。

2.1 10g Release 2 または 11g Release 1 への Oracle Grid Infrastructure の ダウングレード

本項では、Oracle Restart構成のOracle Grid Infrastructureを11.2.0.3から10g R2または11g R2へダウ ングレードする手順について記載します。この手順は、データベースとOracle Databaseのダウングレードが終了 してから実行してください。

 Oracle Grid Infrastructureのインストール・ユーザーでシステムにログインします。

 次のように環境変数をセットします。

・ORACLE_HOME=<BASE_DB_HOME>

・PATH=<BASE_DB_HOME>/bin:$PATH

 11.2.0.3のOracle Grid InfrastructureのOracleホームで、Database Control、データベース・インスタン ス、ディスク・グループ、ASMインスタンスおよびリスナーを停止します。なお、ディスク・グループ、ASMイ ンスタンス、リスナーはSRVCTLコマンドを使用して停止します。

・Database Controlを停止します。

・SQL*Plusを起動し、SYSDBA権限を持つユーザーとして、データベース・インスタンスに接続します。

・データベース・インスタンスを停止します。

・SQL*Plusを終了します。

$ export ORACLE_UNQNAME=<db_unique_name>

$ <11203_ORACLE_HOME>/bin/emctl stop dbconsole

SQL> SHUTDOWN IMMEDIATE

$ export ORACLE_HOME=<BASE_GI_HOME>

$ export PATH=<BASE_GI_HOME>/bin:$PATH

$ sqlplus / as sysdba

SQL> EXIT

$ su - oracle

・次のように環境変数をセットします。

・ORACLE_HOME=<11203_GI_HOME>

・PATH=<11203_GI _HOME>/bin:$PATH

・ASMディスク・グループを停止します。

・ASMインスタンスを停止します。

・リスナーを停止します。

 Oracle Restart構成を解除するため、rootユーザーにログインし、roothas.plを実行します。

 ASMリソースを再作成するため、rootユーザーでlocalconfigを実行し、ASMのOracleホームにリソース を追加します。

注:localconfig addが失敗した場合は、resetオプションの後にアップグレード前のASMのOracleホームを指 定して既存のリソースをリセットします。

 ASMのpfileおよびlisterner.oraがアップグレード前のASMのOracleホームに存在することを確認しま す。

 /etc/oratabがアップグレード前のバージョンを指しているか確認します。

$ srvctl stop diskgroup -g <DiskGroup 名>

$ srvctl stop asm

$ srvctl stop listener

$ su -

# <11203_GI_HOME>/crs/install/roothas.pl -deconfig

# <BASE_ASM_HOME>/bin/localconfig add

$export ORACLE_HOME=<11203_GI_HOME>

$export PATH=<11203_GI_HOME>/bin:$PATH

# <BASE_ASM_HOME>/bin/localconfig reset <BASE_ASM_HOME>

 データベース・インスタンス、ASM インスタンス、リスナーが 11g R2 の ASM ホームおよび Oracle DatabaseのOracleホームで動作することを確認します。

・ユーザーをOracle Databaseのインストール・ユーザーに変更し、次のように環境変数をセットします。

・ORACLE_HOME=<BASE_ASM_HOME>

・ORACLE_SID=<ASMインスタンス名>

・PATH=<BASE_ASM_HOME>/bin:$PATH

・LSNRCTLコマンドを使用し、リスナー名「LISTENER」を起動します。

・SQL*Plus でSYSASM権限を持つユーザーとしてASMインスタンスに接続します。

・ASMインスタンスを起動します。

・SQL*Plusを終了します。

SQL> STARTUP

# su - oracle

$ export ORACLE_HOME=<BASE_ASM_HOME>

$ export ORACLE_SID=<ASM インスタンス名>

$ export PATH=<BASE_ASM_HOME>/bin:$PATH

$ lsnrctl LSNRCTL> START LSNRCTL> EXIT

SQL> EXIT

$ sqlplus / as sysasm

関連したドキュメント