Oracle Databaseは、アップグレード元のリリースにのみダウングレードできます。たとえば、Oracle Database 10gリリース1(10.1.0.5)からOracle Database 11gリリース2(11.2)にアップグレードした場合は、その後、Oracle Database 10gリリース2(10.2)にダウングレードすることはできず、Oracle Database 10gリリース1(10.1.0.5)にのみダウングレードできます。
この章の内容は次のとおりです。
関連項目: オペレーティング・システム固有のダウングレードの説明については、ご使用のオペレーティング・システムの『Oracle Databaseインストレーション・ガイド』を参照してください。 |
データベースがアップグレードされる前の元のリリースに基づいて、メジャー・リリースとパッチ・セット・リリースの両方をダウングレードできます。メジャー・リリースのダウングレードは、Oracle Database 11gリリース1(11.1.0.6)、Oracle Database 10gリリース2(10.2.0.2)およびOracle Database 10gリリース1(10.1.0.5)へのダウングレードがサポートされています。パッチ・セットのダウングレードは、11.2以前のすべてのパッチ・リリースへのダウングレードがサポートされています。
注意: Oracle Database Express Editionからアップグレードされたデータベースをダウングレードすることはできません。 |
Oracle Database 11gリリース2(11.2)データベースとともにOracle Database Vaultがインストールされている場合は、リリース11.1.0.6および11.1.0.7にのみダウングレードできます。
データベースにメッセージ・ゲートウェイまたはWorkspace Managerが存在する場合でも、それらはリリース10.2.0.4以前のOracle Databaseパッチ・セットには含まれません。したがって、ダウングレード前にすべての関連パッチをリリース10.2.0.3またはリリース10.1.0.5のOracleホームに個別に適用する必要があります。
Oracle Enterprise Managerのダウングレードはサポートされていません。ただし、データベースをアップグレードする前にOracle Enterprise Manager Database Controlのファイルおよびデータを保存した場合、データベースのダウングレード後に古いバージョンのDatabase Controlをリストアできます。
注意: Oracle Data Pumpのデータベースの全体エクスポートをINCLUDE=DBLINK パラメータとともに使用して、ダウングレードするデータベースへのインポートに適したダンプ・ファイルに、すべてのデータベース・リンクをエクスポートする必要があります。その後、このダンプ・ファイルは、ダウングレード後にデータベース・リンクを置き換えるために使用できます。 |
ご使用のOracle Databaseリリースの互換性レベルをチェックして、非互換性があるかどうかを確認します(非互換性がある場合は、ダウングレードできません)。Oracle Database 11gリリース2(11.2)データベースのの互換性レベルが11.2.0
以上である場合は、ダウングレードできません。
Oracle Database 11gリリース1(11.1)にダウングレードする場合は、COMPATIBLE
初期化パラメータを11.0.0
以下に設定する必要があります。
Oracle Database 10gリリース2(10.2)にダウングレードする場合は、COMPATIBLE
初期化パラメータを10.2.0
以下に設定する必要があります。
Oracle Database 10gリリース1(10.1)にダウングレードする場合は、COMPATIBLE
初期化パラメータを10.1.0
に設定する必要があります。
データベースでSPFILEを使用している場合、ダウングレード先の以前のリリースではサポートされていない新しいパラメータが、インストールまたはアップグレード時に追加されていることがあります。ダウングレード後、新しいパラメータによって、データベースが起動できない場合があります。そのため、以前のリリースでサポートされていないパラメータをSPFILEから削除する必要があります。『Oracle Real Application Clusters管理およびデプロイメント・ガイド』の説明に従って、ALTER SYSTEM
文のSET
句を使用することで、SPFILEの設定を変更できます。
ダウングレード元の現行リリースの新しいパラメータの詳細は、そのリリースの『Oracle Database新機能ガイド』を参照してください。
ダウングレードする前に、Oracle Database 11gリリース2(11.2)データベースに対し、全体バックアップを実行します。『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』で説明されている手順に従います。
関連項目: 詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。 |
Oracle Database 11gリリース2(11.2)データベースは、メジャー・リリースまたは関連するパッチ・セット・アップグレードへダウングレードできます。
データベースを以前のリリースにダウングレードするには、次の手順を実行します。
データベースでOracle Database Vaultを有効にしている場合は、次を行う必要があります。
SYS
アカウントにDatabase VaultのDV_PATCH_ADMIN
ロールを付与します。
データベースをダウングレードする前に、Database Vaultを無効にします。
関連項目: Oracle Database Vaultを無効にする手順は、『Oracle Database Vault管理者ガイド』を参照してください。 |
以前にデータベースをアップグレードし、DBMS_DST
PL/SQLパッケージを使用してそのデータベースのタイムゾーンのバージョンを更新した場合は、ダウングレード前に以前のリリースのOracleホームに同じバージョンのタイムゾーン・ファイルのパッチを適用する必要があります。
たとえば、DSTv4を使用するLinux x64上のリリース10.2.0.4データベースをリリース11.2.0.2にアップグレードし、DBMS_DST
を実行してこのデータベースをDSTv14に更新したとします。この場合、リリース11.2.0.3から10.2.0.4にダウングレードする前に、リリース10.2.0.4側に対してLinux x64向けの10.2.0.4用DSTv14パッチを適用する必要があります。これにより、TIMESTAMP
WITH
TIME
ZONE
データが取得中に論理的に破損することがなくなります。
データベースで使用されているタイムゾーン・ファイルのバージョンを確認するには、次の手順を実行します。
SELECT value$ FROM sys.props$ WHERE NAME = 'DST_PRIMARY_TT_VERSION';
関連項目: タイムゾーン・ファイルの適用の詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。 |
Oracle Database 11gリリース2(11.2)へのアップグレード時にORA_TZFILE
環境変数をtimezone.dat
ファイルのフルパス名に設定した場合は、後でデータベースをダウングレードする際にその設定を解除する必要があります。
Oracleホーム・ディレクトリには、次の2つのタイムゾーン・ファイルがあります。
デフォルトのタイムゾーン・ファイル
$ORACLE_HOME/oracore/zoneinfo/timezonelrg.dat
小さいタイムゾーン・ファイル
$ORACLE_HOME/oracore/zoneinfo/timezone.dat
ORA_TZFILE
変数の設定を解除しなかった場合、小さい方のタイムゾーン・ファイルを使用してデータベースに接続すると、次のエラーが発生する可能性があります。
SP2-1503: Unable to initialize Oracle call interface SP2-0152: ORACLE may not be functioning properly
関連項目: 日時データ型およびタイムゾーン・サポートの詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。 |
データベースにOracle Application Expressがある場合は、Oracle Database 11gリリース2(11.2)のORACLE_HOME/apex/
ディレクトリからOracleホーム外部のディレクトリ(システムの一時ディレクトリなど)にapxrelod.sql
ファイルをコピーする必要があります。
このファイルの新しい場所を記録します。
固定オブジェクトに基づいてオブジェクトを作成した場合は、これらのオブジェクトを削除して、ORA-00600
エラーの発生を回避します。ダウングレード後にこれらのオブジェクトを再作成できます。
Oracle Database 11gリリース2(11.2)のOracleホーム・ディレクトリの所有者としてシステムにログインします。
この手順は、Enterprise Manager Database Controlがデータベースにすでに構成されている場合にのみ実行する必要があります。
次の手順を実行して、Database Controlを停止します。
ORACLE_UNQNAME
環境変数をデータベースの一意の名前に設定します。
次のコマンドを実行します。
ORACLE_HOME/bin/emctl stop dbconsole
ダウングレード中のデータベースがOracle RACデータベースの場合は、すべてのインスタンスでこの手順を実行します。
Oracle RACデータベースを10gリリース1(10.1)にダウングレードする場合は、Oracle Clusterwareスタックを停止する前に余分な投票ディスクを削除する必要があります。
使用する投票ディスクの数を確認し、投票ディスクのパスを表示するには、次のコマンドを実行します。
Oracle_Clusterware_Home/bin/crsctl query css votedisk
次のコマンドを実行して、前述の手順で検出した追加の投票ディスクをそれぞれ削除します。path
は、前述の手順で表示されたFile
Name
列内の投票ディスクのパスです。
Oracle_Clusterware_Home/bin/crsctl delete css votedisk path
次に例を示します。
Oracle_Clusterware_Home/bin/crsctl delete css votedisk /share/cluster2/vote_cluster2.dbf
最後の投票ディスクは削除しないでください。
システム・プロンプトで、ORACLE_HOME/rdbms/admin
ディレクトリへ移動します。
注意: クラスタ・データベースをダウングレードしている場合は、インスタンスを完全に停止し、CLUSTER_DATABASE 初期化パラメータをFALSE に設定します。ダウングレードが完了した後、このパラメータの設定をTRUE に戻す必要があります。 |
SQL*Plusを使用して、SYSDBA
権限を持つユーザーとして、データベース・インスタンスに接続します。
DOWNGRADE
モードでインスタンスを起動します。
SQL> STARTUP DOWNGRADE
PFILE
オプションを使用して、初期化パラメータ・ファイルの場所を指定する必要がある場合があります。
データベース内にEnterprise Managerが構成されている場合は、Enterprise Managerユーザーを削除します。
DROP USER sysman CASCADE;
注意: この手順を実行すると、MGMT*シノニムが無効になる場合があります。シノニムを有効にするには、「Oracle Databaseのダウングレード後のOracle Enterprise Managerのリストア」のガイドラインに従います。 |
変更と問題を追跡するために、結果をログ・ファイルにスプールするようにシステムを設定します。
SQL> SPOOL downgrade.log
SQL> @catdwgrd.sql
スクリプトの実行についての注意は、次のとおりです。
Oracle Database 11gリリース2(11.2)に付属するスクリプトのバージョンを使用する必要があります。
Oracle Database 11gリリース2(11.2)の環境でスクリプトを実行する必要があります。
このスクリプトによって、データベース内のすべてのOracle Databaseコンポーネントがアップグレード元のメジャー・リリースまたはOracle Database 11gパッチ・リリースにダウングレードされます。
このスクリプトまたは残りの手順のいずれかのスクリプトを実行中になんらかの問題が発生した場合は、問題を解決してスクリプトを再実行します。必要に応じて、この章で説明されているスクリプトのいずれかを実行できます。
コンポーネントのダウングレードに失敗した場合、ORA-39709
エラーが表示され、SQL*Plusセッションは、Oracle Databaseデータ・ディクショナリをダウングレードせずに終了します。すべてのコンポーネントは、Oracle Databaseのデータ・ディクショナリをダウングレードする前に、正常にダウングレードする必要があります。catdwgrd.sql
スクリプトを再実行する前に、問題を特定して修正する必要があります。
スクリプト結果のログ・ファイルへのスプーリングをオフにします。
SQL> SPOOL OFF
次に、スプール・ファイルを確認して、ダウングレード中にエラーが発生しなかったかどうかを検証します。手順13で、スプール・ファイル名をdowngrade.log
としました。このファイルで見つけた問題を修正し、必要に応じてダウングレード・スクリプトを再実行します。
注意: ダウングレード・スクリプトを初めて実行した結果を保存する場合は、再実行する前に、downgrade.log を他の名前に変更してください。 |
インスタンスを停止します。
SQL> SHUTDOWN IMMEDIATE
SQL*Plusを終了します。
ご使用のオペレーティング・システムがLinuxまたはUNIXの場合、次の環境変数がダウングレード先のリリースのディレクトリを指定するように変更してください。
ORACLE_HOME
PATH
また、oratab
ファイル、およびORACLE_HOME
値を設定するすべてのクライアント・スクリプトが、ダウングレードされたOracleホームを指していることを確認する必要があります。
関連項目: ご使用のオペレーティング・システムでのその他の重要な環境変数の設定に関する詳細は、ご使用のオペレーティング・システムの『Oracle Databaseインストレーション・ガイド』を参照してください。 |
ご使用のオペレーティング・システムがWindowsの場合、次の手順を実行します。
Oracle Database 11gリリース2(11.2)のデータベースのすべてのOracleサービス(OracleService
SID
など)を停止します。SID
はインスタンスの名前です。
たとえば、SIDがORCLの場合、コマンド・プロンプトで次のように入力します。
C:\> NET STOP OracleServiceORCL
関連項目: 『Oracle Database Net Services管理者ガイド』 |
コマンド・プロンプトでORADIM
コマンドを発行して、Oracleサービスを削除します。たとえば、SIDがORCLの場合、次のコマンドを入力します。
C:\> ORADIM -DELETE -SID ORCL
コマンド・プロンプトでORADIM
コマンドを使用して、ダウングレードするデータベースのOracleサービスを作成します。
C:\> ORADIM -NEW -SID SID -INTPWD PASSWORD -MAXUSERS USERS -STARTMODE AUTO -PFILE ORACLE_HOME\DATABASE\INITSID.ORA
この構文には次の変数が含まれます。
変数 | 説明 |
---|---|
SID |
ダウングレードするデータベースと同じSID名です。 |
PASSWORD |
データベース・インスタンスのパスワードです。SYSDBA 権限で接続するユーザー用のパスワードです。-INTPWD オプションは必須ではありません。これを指定しない場合、オペレーティング・システムの認証が使用され、パスワードは不要です。 |
USERS |
SYSDBA 権限およびSYSOPER 権限を付与できるユーザーの最大数です。 |
ORACLE_HOME |
ダウングレード先のデータベースのOracleホーム・ディレクトリです。-PFILE オプションを使用して、(Oracleホーム・ディレクトリのドライブを含む)フルパス名を指定する必要があります。 |
たとえば、ダウングレード先がOracle Database 10gリリース2(10.2)、SIDがORCL
、PASSWORDがTWxy5791
、USERSの最大数が10、ORACLE_HOMEディレクトリがC:\ORANTの場合、次のコマンドを入力します。
C:\> ORADIM -NEW -SID ORCL -INTPWD TWxy5791 -MAXUSERS 10 -STARTMODE AUTO -PFILE C:\ORANT\DATABASE\INITORCL.ORA
注意: データベースをダウングレードする際に、Windowsレジストリの設定を変更する必要はありません。必要な変更は、すべてORADIM ユーティリティによって自動的に行われます。 |
ダウングレード先のリリースの構成ファイル(パラメータ・ファイル、パスワード・ファイルなど)をリストアします。
Oracle RACデータベースの場合は、次のコマンドを実行して、データベースを単一インスタンス・モードに戻します。
set CLUSTER_DATABASE=FALSE
注意: クラスタ・データベースをダウングレードしている場合は、そのクラスタ・データベースのインスタンスを構成するすべてのノードでこの手順を実行してください。CLUSTER_DATABASE 初期化パラメータをFALSE に設定します。ダウングレードが完了した後、この初期化パラメータの設定をTRUE に戻す必要があります。 |
システム・プロンプトで、以前のリリースのORACLE_HOME
/rdbms/admin
ディレクトリへ移動します。
SQL*Plusを起動します。
SYSDBA
権限を持つユーザーとして、データベース・インスタンスに接続します。
インスタンスを起動します。
SQL> STARTUP UPGRADE
変更と問題を追跡するために、結果をログ・ファイルにスプールするようにシステムを設定します。
SQL> SPOOL reload.log
catrelod.sql
を実行します。
SQL> @catrelod.sql
catrelod.sql
スクリプトを使用すると、ダウングレードしたデータベース内の該当するバージョンのすべてのデータベース・コンポーネントが再ロードされます。
Oracle Database 11gリリース1(11.1.0.6)へダウングレードしている場合は、xsrelod.sql
スクリプトを実行します。
SQL> @xsrelod.sql
xsrelod.sql
スクリプトを実行すると、次のエラーを回避できます。
PLS-00306: wrong number or types of arguments in call to 'INVALIDATE_DSD_CACHE' DBMS_XS_DATA_SECURITY_EVENTS PL/SQL: Statement ignored
注意: PLS-00306エラーは、Oracle Databaseリリース11.2.0.7以上では問題になりません。 |
Oracle Database 10gリリース1(10.1.0.5)へのダウングレード中で、データベースにXDBが存在する場合は、dbmsxdbt.sql
スクリプトを実行します。
@dbmsxdbt.sql
dbmsxdbt.sql
スクリプトを実行すると、XDB.DBMS_XDBT
パッケージを再ロードするときに次のエラーを回避できます。
PLS-00201: identifier 'CTXSYS.CTX_OUTPUT' must be declaredPLS-00201: identifier 'CTX_DDL' must be declared
Oracle Database 11gリリース1以下にダウングレードする際にデータベースにOracle Application Expressがある場合は、ディレクトリを(手順4で)apxrelod.sql
スクリプトをコピーしたディレクトリに変更する必要があります。apxrelod.sql
スクリプトを実行して、Oracle Application Expressを手動で再ロードします。
SQL> @apxrelod.sql
apxrelod.sql
スクリプトを実行すると、次のエラーが原因でパッケージAPEX_030200.WWV_FLOW_HELP
がINVALID
になることを回避できます。
PLS-00201: identifier 'CTX_DDL' must be declared
スクリプト結果のログ・ファイルへのスプーリングをオフにします。
SQL> SPOOL OFF
次に、スプール・ファイルを確認して、すべてのパッケージおよびプロシージャのコンパイルが成功したかどうかを検証します。手順25で、スプール・ファイル名をreload.log
としました。このファイルで見つけた問題を処理し、必要に応じて適切なスクリプトを再実行します。
通常の操作のために、インスタンスを停止し、再起動します。
SQL> SHUTDOWN IMMEDIATE SQL> STARTUP
PFILE
オプションを使用して、初期化パラメータ・ファイルの場所を指定する必要がある場合があります。
データベースがOracle Label Security用に構成されていて、Oracle Database 10gリリース1(10.1)からダウングレードする場合、次の手順を実行します。
olstrig.sql
スクリプトを、Oracle Database 11gリリース2(11.2)のOracleホームからダウングレード後のデータベースのバージョンのOracleホームにコピーします。
olstrig.sql
を実行し、Oracle Label Securityのポリシーを適用して、表のDMLトリガーを再作成します。
SQL> @olstrig.sql
詳細は、『Oracle Label Security管理者ガイド』を参照してください。
utlrp.sql
スクリプトを実行します。
SQL> @utlrp.sql
utlrp.sql
スクリプトは、以前INVALID
状態だったパッケージ、プロシージャ、型などのすべての既存のPL/SQLモジュールを、再コンパイルします。
SQL*Plusを終了します。
クラスタ・データベースをダウングレードする場合は、次のコマンドを実行してOracle Clusterwareのデータベース構成をダウングレードする必要があります。
$ srvctl downgrade database -d db-unique-name -o old_ORACLE_HOME -t to_relnum
[ここで、db-unique-name
はインスタンス名ではなくデータベース名であり、old_ORACLE_HOME
は、ダウングレードされたデータベースが実行される古いOracleホームの場所です。この例では、to_relnum
は、データベースのダウングレード後のリリース番号です(例: 11.2.0.1.0)。]
注意: デフォルトでは、指定したユーザーはサーバー・プールを作成できます。この権限を持つオペレーティング・システム・ユーザーを制限するには、特定のユーザーをCRS管理者のリストに追加することをお薦めします。関連項目: CRS管理者のリストへのユーザーの追加の詳細は、『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください |
注意: このコマンドは、データベースのダウングレード後のOracleホームからではなく、現在のOracleホームから実行してください。 |
データベースがダウングレードされました。
Oracle Databaseのダウングレード後の作業が必要となる場合があります。この項には次のトピックが含まれます:
新しいデータベースをOracle Database 10gまたはOracle Database 11gリリース1にダウングレードする場合は、ダウングレード手順の実行後にリスナーを再作成する必要があります。Oracle Net Managerを実行して古いリスナーを削除し、新しいリスナーを作成します。
Oracle Enterprise ManagerのコンソールからOracle Net Managerを起動するには、「ツール」メニューから「サービス管理」を選択し、「Oracle Net Manager」を選択します。
Microsoft Windowsの場合、「スタート」メニューから「プログラム」を選択し、「Oracle - HOME_NAME」を選択します。次に、「Configuration and Migration Tools」を選択し、「Net Manager」を選択します。
関連項目: 『Oracle Database Net Services管理者ガイド』 |
このタスクは、なんらかの形式でダウングレード中であり、Oracle Enterprise Managerがホストに構成されている場合にのみ実行する必要があります。Oracle Enterprise Managerを前の状態にリストアするには、アップグレードを実行する前にOracle Enterprise Managerのファイルおよびデータを保存しておく必要があります。
これがOracle Clusterwareを使用したOracle RACデータベースである場合は、emca -restore
コマンドを実行する前にsrvctl
を使用してデータベースを登録する必要があります。これは、ダウングレード後のデータベースのバージョンのORACLE_HOME
/binから実行する必要があります。
関連項目: srvctl に関する詳細は、『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。 |
適切なオプションを指定してemca
-restore
コマンドを実行し、Oracle Enterprise Manager Database ControlまたはOracle Enterprise Manager Grid Controlを古いOracleホームにリストアします。指定するオプションは、ダウングレード中のデータベースがOracle RACデータベースかOracle ASMデータベースかによって、次のように異なります。
注意: この手順では、Oracle Database 11gリリース2(11.2)バージョンのemca を使用します。emca の詳細は、『Oracle Database管理者ガイド』を参照してください。 |
Oracle ASMがない単一インスタンスのOracle Database
111Home/bin/emca -restore db
次の情報の入力を求められます。
リストアするデータベースのOracleホーム
データベースSID
リスナー・ポート番号
Oracle ASMがないOracle RACデータベース
111Home/bin/emca -restore db -cluster
次の情報の入力を求められます。
リストアするデータベースのOracleホーム
データベースの一意の名前
リスナー・ポート番号
単一インスタンスのOracle ASMインスタンス
111Home/bin/emca -restore asm
次の情報の入力を求められます。
リストアするデータベースのOracleホーム
Oracle ASMポート
Oracle ASM SID
Oracle RACインスタンス上のOracle ASM
111Home/bin/emca -restore asm -cluster
次の情報の入力を求められます。
リストアするデータベースのOracleホーム
Oracle ASMポート
Oracle ASMがある単一インスタンスのOracle Database
111Home/bin/emca -restore db_asm
次の情報の入力を求められます。
リストアするデータベースのOracleホーム
データベースSID
リスナー・ポート番号
Oracle ASMポート
Oracle ASMホーム
Oracle ASM SID [+ASM]
Oracle RACデータベースおよびASMインスタンス
111Home/bin/emca -restore db_asm -cluster
次の情報の入力を求められます。
リストアするデータベースのOracleホーム
データベースの一意の名前
リスナー・ポート番号
Oracle ASMポート
Oracle ASM Oracleホーム
Oracle ASM SID [+ASM]
emca
の出力は、指定するオプションおよびプロンプトで入力する値によって様々です。
インプレース・パッチ・セット・アップグレードでは、パッチ・セットを適用する前に保存した元のホームのバックアップをリストアする必要があります。この手順は、Oracle RAC環境内のすべてのノードに対して繰り返す必要があります。インプレース・パッチ・セット・アップグレードでは、emca
-restore
コマンドを実行する必要はありません。
emca
-restore
プロシージャの終了後、emdwgrd
ユーティリティを使用して、Oracle Enterprise Managerデータベースのファイルおよびデータをリストアする準備ができます。Oracle Database 11gリリース2(11.2)ホームからemdwgrdユーティリティを実行する必要があります。ただし、ORACLE_HOME
および他の環境変数を、アップグレードが実行される前のOracleホームを指すように設定する必要があります。
次の手順は、LinuxおよびUNIX用です。この手順をWindowsで実行する場合は、emdwgrd
をemdwgrd.bat
に置き換えてください。
次の手順に従って、Database Controlのファイルおよびデータをリストアします。
ORACLE_HOME
を、データベースがアップグレードされる前のOracleホームに設定します。
インプレース・パッチ・セット・アップグレードでは、元のホームのバックアップを(11.1.0.6からアップグレードしている場合はOracle Bug#7131048の個別パッチを使用して)リストアして、ORACLE_HOME
を現行のOracleホームに設定します。
ORACLE_SID
を、アップグレード後にダウングレードされたデータベースのSIDに設定します。
データベースがアップグレードされる前のOracleホームを指すように、PATH
、LD_LIBRARY_PATH
およびSHLIB_PATH
を設定します。
Oracle Database 11gリリース2(11.2)のホームに移動します。
cd ORACLE_HOME/bin
次のいずれかを実行します。
単一インスタンス・データベースの場合は、次のコマンドを実行します。SID
はアップグレード後にダウングレードされたデータベースのSIDで、save_directory
は、Database Controlのファイルおよびデータの保存時に選択した記憶域の場所へのパスです。
emdwgrd -restore -sid SID -path save_sirectory -tempTablespace TEMP
Oracle RACデータベースの場合、クラスタ・ノード間のリモート・コピーが必要です。構成済のリモート・コピーを示す環境変数を定義します。次に例を示します。
setenv EM_REMCP /usr/bin/scp
その後、次のrestore
コマンドを実行します。
emdwgrd -restore -tempTablespace TEMP -cluster -sid SID10g -path save_directory
10gのOracleホームが共有デバイス上にある場合は、前述のコマンドラインに-shared
を追加します。
emdwgrd
により要求された場合は、SYSおよびSYSMANパスワードを入力します。
単一インスタンスのデータベースの場合は、emdwgrd
ユーティリティによって次のような内容が出力されます。
Sat Apr 28 09:27:09 2007 - Verify EM DB Control files ... pass Sat Apr 28 09:27:09 2007 - Validating DB Connection to DB102 ... pass Sat Apr 28 09:27:19 2007 - Validating TEMP tablespace in DB102 ... pass Sat Apr 28 09:27:20 2007 - creating directory ... created Sat Apr 28 09:27:20 2007 - Stopping DB Control ... stopped Sat Apr 28 09:27:21 2007 - dropping sysman schema ... dropped Sat Apr 28 09:27:22 2007 - recreating sysman user ... recreated Sat Apr 28 09:27:23 2007 - Restoring DB Control files ... restored Sat Apr 28 09:27:23 2007 - Importing sysman schema ... imported Sat Apr 28 09:30:42 2007 - recompiling invalid objects ... recompiled Sat Apr 28 09:30:54 2007 - Starting DB Control ... started Sat Apr 28 09:32:37 2007 - DB Control was restored successfully.
emdwgrd
の終了時に、Oracle Enterprise Manager Database Controlは古いOracleホームにダウングレードされています。
Oracle RACデータベースの場合は、emdwgrd
ユーティリティによって次のような内容が出力されます。
$ /scratch/oracle/product/11.1.0/db_1/bin/emdwgrd -srcOracleHome $ORACLE_HOME -sid DB102 -path /scratch/rpattabh/ravi/tmp/dbcdir5 -restore –cluster -tempTablespace TEMP Enter sys password for database DB102? ***** Enter sysman password for database DB102? ***** Sat Apr 28 09:27:09 2007 - Verify EM DB Control files ... pass Sat Apr 28 09:27:09 2007 - Validating DB Connection to DB102 ... pass Sat Apr 28 09:27:19 2007 - Validating TEMP tablespace in DB102 ... pass Sat Apr 28 09:27:20 2007 - creating directory ... created Sat Apr 28 09:27:20 2007 - Stopping DB Control on all Nodes stbdq04, r101b1, /oradbnas/sangeeta/10.1.0/db, stop, 0 stbdq05, r101b2, /oradbnas/sangeeta/10.1.0/db, stop, 1 Please Execute '/tmp/racdwgrd_dbctl.sh' on Node1, Node2. Press yes to continue when the operations are successful. Continue (yes/no) ? y ... stopped Sat Apr 28 09:27:21 2007 - dropping sysman schema ... dropped Sat Apr 28 09:27:22 2007 - recreating sysman user ... recreated Sat Apr 28 09:27:23 2007 - Restoring DB Control files Executing Restore directories to node Node1 Executing Restore directories to node Node2 ... restored Sat Apr 28 09:27:23 2007 - Importing sysman schema ... imported Sat Apr 28 09:30:42 2007 - recompiling invalid objects ... recompiled Sat Apr 28 09:32:37 2007 - DB Control was restored successfully. Sat Apr 28 09:33:54 2007 - Starting DB Control On All nodes Please Execute '/tmp/racdwgrd_dbctl.sh' on Node1, Node2. Press yes to continue when the operations are successful. Continue (yes/no) ? y ... started Sat Apr 28 09:38:57 2007 - Dump directory was dropped successfully.
Oracle Database Vaultを使用している場合は、データベースをダウングレードする前にこれを無効にするように指示がありました。ダウングレード後にOracle Database Vaultを使用するには、これを再有効化する必要があります。
ダウングレード後にOracle Database Vaultを有効化するには、次の手順を実行します。
DV_OWNER
ロールを付与されているユーザーとしてSQL*Plusに接続します。
次の文を発行します。
ALTER TRIGGER DVSYS.DV_BEFORE_DDL_TRG ENABLE; ALTER TRIGGER DVSYS.DV_AFTER_DDL_TRG ENABLE;
関連項目: 『Oracle Database Vault管理者ガイド』 |
Oracle Clusterware構成をOracle Clusterware 11gリリース2(11.2)のアップグレード前の状態にリストアできます。そのためには、アップグレード前のリリースをリストアする必要があります。11gリリース2(11.2)のアップグレード処理中またはアップグレード処理後に実行した構成変更は削除され、リカバリできません。
関連項目:
|
ダウングレードする前に、Oracle Data Pumpのデータベースの全体エクスポートをINCLUDE=DBLINK
パラメータとともに使用して、ダウングレードするデータベースへのインポートに適したダンプ・ファイルに、すべてのデータベース・リンクをエクスポートする必要があります。その後、このダンプ・ファイルは、ダウングレード後にデータベース・リンクを置き換えるために使用できます。
新しく作成するデータベース・リンク(ダウングレード元の新しいリリースを実行中に作成する可能性があるデータベース・リンク)のパスワードを確認します。以前のリリース11.1にダウングレードした後でデータベース・リンク・パスワードをリセットする必要があるため、データベース・リンク・パスワードが必要です。これは、新しいリリースへのアップグレード後に新しく作成したdblinkにのみ必要です。
データベース・リンク・パスワードがリセットされない場合、そのデータベース・リンクの使用を試みると内部エラーが表示されます。Oracleサーバーがデータベース・リンクのパスワードを取得できないときにOracleトレース・ファイルに記録される内部エラーは、「ORA-00600: [kzdlk_zt2 err], [18446744073709551601]」です。また、ダウングレード完了後に、dblinkを再作成することもできます。
注意: 新しいOracle Databaseリリース11.2のアップグレード実行中に、ORA-00600の問題に影響されない新しいデータベース・リンクを作成する場合、Oracle Supportに問い合せることができます。 |
Oracleでは、Oracle Databaseをダウングレードする際に発生する可能性のある問題に関してトラブルシューティング情報を提供しています。このリリースに関する最新情報については、『Oracle Databaseプラットフォーム共通日本語README』を参照してください。
Oracle Grid Infrastructureのリリース11.2のダウングレードの失敗
Oracle Grid Infrastructureのリリース11.2のダウングレードが失敗した場合は、https://support.oracle.com
でLinux/Unixに関するサポート・ノート「How to Proceed from Failed Upgrade to Grid Infrastructure」(ID 969254.1)を参照してください。対応を実行する前に、ノート全体を読んでおくことをお薦めします。
11.2.0.1 xsrelod.sqlスクリプトで発生したエラー
Oracle Databaseをリリース11.2.0.2または11.2.0.3からリリース11.2.0.1にダウングレードする場合、リリース11.2.0.1に付属するxsrelod.sql
スクリプトからエラーが発生する場合があります。この問題が発生するのは、リリース11.2.0.1にダウングレードした後に、XML DB索引を有効化しようとした場合のみです。エラー「ORA-01418: 指定した索引は存在しません。」が発生する可能性がありますが、無視して問題ありません。
Oracle Multimedia imrelod.sqlスクリプトで発生したエラー
Oracle Databaseをリリース11.2.0.2にダウングレードする場合、リリース11.2.0.2に付属するimrelod.sql
スクリプトからエラーが発生する場合があります。ORA-20000: レジストリ内のOracle ORDIMコンポーネントのステータスがDOWNGRADEDです。Oracle Multimediaをアップグレード、ダウングレードまたはパッチ適用する前にOracle ORDIMをインストールし、有効化しておく必要があります、というエラーは無視して問題ありません。
Oracle Databaseのダウングレードが原因の無効なオブジェクトCTX_FILTER_CACHE_STATISTICS
Oracle Databaseのダウングレード後に、次の無効なテキスト・オブジェクトが表示される場合があります。
CTX_FILTER_CACHE_STATISTICS (synonym) CTX_FILTER_CACHE_STATISTICS (view)
Oracle Databaseの現行リリースでこの問題を修正するには、catdwgrd.sql
スクリプトの実行後、catrelod.sql
スクリプトの実行前に、次の2つのコマンドを発行します。
SQL> drop public synonym ctx_filter_cache_statistics; SQL> drop view ctx_filter_cache_statistics;