DBMS_ROLLING
PL/SQLパッケージを使用して、Active Data Guardを使用したローリング・アップグレード機能を実装します。この機能によって、Data Guard構成でOracle Databaseソフトウェアをアップグレードするプロセスがローリング形式で効率化されます。Active Data Guardを使用したローリング・アップグレード機能は、Oracle Active Data Guardオプション用のライセンスが必要で、Oracle Database 12cの最初のパッチセットで開始されるデータベース・バージョンのアップグレードに使用できます。
さらに、この機能は、他のデータベース・メンテナンス・タスクでもすぐに使用できます。メンテナンスが実行されるデータベースは、Oracle Database 12cリリース1(12.1)以上で実行される必要があります。このメンテナンス・タスクには次が含まれます。
パーティション化されていない表へのパーティショニングの追加
BasicFiles LOBからSecureFiles LOBへの変更
CLOB
として格納されるXMLType
からバイナリXMLとして格納されるXMLtype
への変更
表をOLTP圧縮したものに変更
関連項目:
|
この章では、次の項目について説明します。
概要
セキュリティ・モデル
DBMS_ROLLING
PL/SQLパッケージは、Oracle Databaseソフトウェアのローリング・アップグレードなど、Data Guardの構成全体にローリング形式で任意の変更を加えるために使用できるプロシージャを提供します。このドキュメントではローリング・アップグレード操作を中心に取り上げていますが、この内容は、ローリングによるすべての変更のデプロイに適用できます。
現行のプライマリ・データベースですべてのプロシージャが実行されます。これにより、リモート・データベース間でローリング・アップグレードに関する様々な操作を実行する際に、移行の混乱が生じる可能性を排除します。必要な場合は、すべてのプロシージャを再度コールして、エラーや中断が発生した後のローリング・アップグレードを再開できます。(このアップグレード・スクリプトもスタンバイでの実行が必要です。)
このパッケージは、ユーザーがローリング・アップグレードを破棄する必要がある場合に、Data Guardの構成をアップグレード前の元の状態に戻すことができるプロシージャも提供します。
ローリング・アップグレードの実際の実行手順は3つに減少しました(Oracle Databaseソフトウェア自体のアップグレードと新しいOracle Databaseソフトウェアのディスク上の設定が除外されました)。Data Guardの構成のサイズによって手順の数が変化することはありません。
DBMS_ROLLING
パッケージでは、概念上、Data Guardの構成を先頭グループと後続グループの2つに分けます。まず、先頭グループのデータベースに対してアップグレード操作(またはデプロイするその他の変更)が実行されます。後続グループのデータベースにおけるOracle Databaseソフトウェア(またはデプロイしているその他すべての変更)のアップグレードは、スイッチオーバー操作後にのみ実行されます。それらはアップグレード対象にならないため、先頭グループのデータベースに加えられた変更の影響を評価する時間を確保できます。
各グループにはマスター・データベースがあります。DBMS_ROLLING.INIT_PLAN
プロシージャで指定される将来のプライマリ・データベースは、先頭グループ・マスター(LGM)と呼ばれる先頭グループのマスターです。一方、元のプライマリ・データベースは、後続グループ・マスター(TGM)と呼ばれる後続グループのマスターです。LGMとTGMを保護するようにデータベースを構成できます。LGMを保護するように指定されたスタンバイは、先頭グループ・スタンバイ(LGS)として参照されます。TGMを保護するように指定されたスタンバイは、後続グループ・スタンバイ(TGS)として参照されます。これらの用語は、このドキュメントを通じて使用されます。
表136-1 DBMS_ROLLINGパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
システムによって生成されたデフォルト値を使用して、ローリング操作計画を初期化します。 |
|
既存のローリング操作計画とそのパラメータ、およびローリング操作に関連付けられたすべてのリソースを破棄します。 |
|
計画のパラメータを検証し、ローリング操作計画を作成または変更します。 |
|
ローリング操作のパラメータを変更します。 |
|
ローリング操作を開始します。 |
|
現在のプライマリ・データベースと一時的なロジカル・スタンバイ・データベースとの間でスイッチオーバーを実行します。 |
|
ローリング操作を終了します。 |
|
ローリング操作を完全にロールバックします。 |
このプロシージャは、システムによって生成されたデフォルト値を使用して、ローリング操作計画を初期化します。
このプロシージャは、計画のパラメータを検証し、ローリング操作計画を作成または変更します。ローリング操作を実行するには、正しく作成された計画が必要です。START_PLAN
プロシージャをコールしてローリング操作を開始するには、このプロシージャから正常に結果が戻される必要があります。計画の作成後にパラメータを変更すると、既存の計画を変更するために、BUILD_PLAN
プロシージャのコールが必要になる場合があります。DBA_ROLLING_EVENTS
ビューでは、SET_PARAMETER
プロシージャをコールすると、計画を再構築する必要があるかどうかが示されます。計画を再構築しないと、ローリング操作を再開しようとしたときに、ORA-45416
エラーが発生します。
このプロシージャは、ローリング操作のパラメータを変更します。
例外
ORA-45400
: 現在のデータベースでは操作は許可されていません
ORA-45408
: パラメータ名が不明です
ORA-45409
: パラメータ値が無効か範囲外です
ORA-45410
: パラメータを変更できません
ORA-45411
: 操作には追加の引数が必要です
ORA-45412
: パラメータの有効範囲引数が不明です
ORA-45413
: パラメータにデフォルト値がありません
ORA-45414
: リモート・データベースに接続できませんでした
ORA-65040
: プラガブル・データベース内からの操作は許可されていません
使用上の注意
パラメータ値を変更すると、既存の計画を変更するために、DBMS_ROLLING.BUILD_PLAN
プロシージャのコールが必要になる場合があります。ユーザーは、パラメータの設定後にDBA_ROLLING_EVENTS
ビューをチェックして、再構築が必要かどうかを判断します。
表136-4に、使用可能なパラメータとその説明を示します。表に記載されているパラメータ名と値は、すべてVARCHAR2
型です。
DBA_ROLLING_PARAMETERS
ビューのMINVAL
およびMAXVAL
列は、パラメータの値の有効範囲を示します。DBMS_ROLLING.INIT_PLAN
プロシージャが正常にコールされるまで、このビューにはパラメータが含まれません。
表136-4 DBMS_ROLLING.SET_PARAMETERプロシージャの有効な値
パラメータ名 | グローバルかどうか | 説明 | デフォルト |
---|---|---|---|
|
はい |
ローリング・アップグレードを停止するまでに |
3600 |
|
はい |
スイッチオーバー操作がアクティブなセッションの完了を待機するかどうかを指定します。1に設定されている場合、 |
0 |
|
はい |
ローリング・アップグレード中に作成されるバックアップ制御ファイルのファイル名。 |
rolling_change_backup.f |
|
はい |
ローリング・アップグレードを停止するまでに |
3600 |
|
はい |
一時的なロジカル・スタンバイのインスタンス化で、REDOにデータ・ディクショナリのスナップショットのロード完了の待機を含めるかどうか。1に設定した場合、 |
|
|
はい |
データ・ディクショナリをREDOに書き込むためにPL/SQLアクティビティを停止する試行と試行の間で待機する時間(秒)。 |
300 |
|
はい |
データ・ディクショナリをREDOに書き込むためにPL/SQLアクティビティの停止を試行する最長時間(秒)。 |
3600 |
|
はい |
|
|
|
はい |
フェイルオーバー・イベントが発生した場合、自動的にアップグレード計画の調整を試行します。このパラメータは、その次の |
|
|
|
|
|
|
はい |
|
|
|
はい |
次のローリング操作の開始時に、前回発生したエラーを無視します。このパラメータは、ローリング・アップグレードを再開するプロシージャのコール時に、値を0に設定します。 |
|
|
はい |
有効になったログのアーカイブ先がVALID状態になるまでの最長待機時間(秒)。 |
600 |
|
はい |
|
|
|
いいえ |
指定したデータベースがメンバーであるアップグレード・グループ。 値 値 |
|
|
はい |
|
600 |
|
はい |
ローリング・アップグレードを停止するまでに |
60 |
|
はい |
|
0 |
|
はい |
|
600 |
|
はい |
ローリング・アップグレードを停止するまでに |
60 |
|
はい |
|
1 |
|
はい |
|
60 |
|
はい |
ローリング・アップグレードを停止するまでに |
60 |
|
はい |
|
0 |
|
はい |
ローリング・アップグレードを停止するまでに |
10800 |
|
はい |
|
1 |
|
はい |
ローリング・アップグレードを停止するまでに |
10800 |
|
はい |
|
1 |
このプロシージャは、ローリング操作を開始します。正常にローリング操作を開始するには、プライマリ・データベースでこのプロシージャを実行する必要があります。START_PLAN
プロシージャが完了すると、LGM(INIT_PLAN
プロシージャ内のfuture_primary
パラメータで識別される)は、完全構成された一時ロジカル・スタンバイ・データベースに変換されます。
例外
ORA-45400
: 現在のデータベースでは操作は許可されていません
ORA-45414
: リモート・データベースに接続できませんでした
ORA-45415
: 指示の実行に失敗しました
ORA-45416
: 計画が再作成されるまで操作を開始できません
ORA-45417
: 現在のフェーズが%sではなかったため、操作は許可されませんでした
ORA-45422
: 操作には既存の計画が必要です
ORA-45426
: 管理対象のリカバリ・プロセスは実行されていません
ORA-45427
: ロジカル・スタンバイREDO Applyプロセスは実行されていません
ORA-45428
: データベースは予期されるデータベース・ロールではありません
ORA-45435
: 管理対象のリカバリ・プロセスが実行されていました
ORA-45436
: ロジカル・スタンバイREDO Applyプロセスが実行されていました
ORA-45438
: データベースがマウント・モードではありません
ORA-45439
: データベースが読取り/書込みモードでオープンしていません
ORA-45486
: データベース更新の進行状況に一貫性がありません
ORA-65040
: プラガブル・データベース内からの操作は許可されていません
このプロシージャでは、現在のプライマリ・データベース(TGMとも呼ばれる)と一時ロジカル・スタンバイ・データベース(LGMとも呼ばれる)の間でスイッチオーバーが実行されます。このプロシージャが正常終了すると、LGMがData Guard構成のプライマリ・ロールを担当します。
例外
ORA-45400
: 現在のデータベースでは操作は許可されていません
ORA-45414
: リモート・データベースに接続できませんでした
ORA-45415
: 指示の実行に失敗しました
ORA-45416
: 計画が再作成されるまで操作を開始できません
ORA-45417
: 現在のフェーズが%sではなかったため、操作は許可されませんでした
ORA-45422
: 操作には既存の計画が必要です
ORA-45426
: 管理対象のリカバリ・プロセスは実行されていません
ORA-45427
: ロジカル・スタンバイREDO Applyプロセスは実行されていません
ORA-45428
: データベースは予期されるデータベース・ロールではありません
ORA-45435
: 管理対象のリカバリ・プロセスが実行されていました
ORA-45436
: ロジカル・スタンバイREDO Applyプロセスが実行されていました
ORA-45438
: データベースがマウント・モードではありません
ORA-45439
: データベースが読取り/書込みモードでオープンしていません
ORA-45486
: データベース更新の進行状況に一貫性がありません
ORA-65040
: プラガブル・データベース内からの操作は許可されていません
このプロシージャは、ローリング操作を終了します。フィジカル・スタンバイとしては前回のプライマリ(TGMとも呼ばれる)が構成され、残りのフィジカル・スタンバイは、将来のプライマリによるアップグレードの再実行をリカバリするために構成されます。
例外
ORA-45400
: 現在のデータベースでは操作は許可されていません
ORA-45414
: リモート・データベースに接続できませんでした
ORA-45415
: 指示の実行に失敗しました
ORA-45416
: 計画が再作成されるまで操作を開始できません
ORA-45417
: 現在のフェーズが%sではなかったため、操作は許可されませんでした
ORA-45422
: 操作には既存の計画が必要です
ORA-45426
: 管理対象のリカバリ・プロセスは実行されていません
ORA-45427
: ロジカル・スタンバイREDO Applyプロセスは実行されていません
ORA-45428
: データベースは予期されるデータベース・ロールではありません
ORA-45435
: 管理対象のリカバリ・プロセスが実行されていました
ORA-45436
: ロジカル・スタンバイREDO Applyプロセスが実行されていました
ORA-45438
: データベースがマウント・モードではありません
ORA-45439
: データベースが読取り/書込みモードでオープンしていません
ORA-45486
: データベース更新の進行状況に一貫性がありません
ORA-65040
: プラガブル・データベース内からの操作は許可されていません
このプロシージャは、構成全体のローリング操作をロールバックします。完了すると、先頭グループに含まれるすべてのデータベースが、元のプライマリ・データベースのフィジカル・スタンバイになります。このプロシージャをコールできるのは、START_PLAN
プロシージャが起動した後で構成のスイッチオーバー操作が発生していない場合のみです。