クリーン・アップ操作

Oracleホームとコンテナ・データベースは貴重な記憶域を消費するため、使用しなくなった場合はクリーン・アップして領域を解放できます。この操作により、不要になった未使用の空のOracleホームまたはコンテナ・データベース(CDB)が削除され、領域およびリソースの管理が容易になります。

ノート:

対象のホームに関連付けられているターゲットがある場合、対象のホームに対してクリーン・アップは実行されません。クリーン・アップを実行する前に、Oracleホーム内のすべてのターゲットにパッチを適用する必要があります。RACデータベースOracleホームの場合は、Oracleホーム名のすべてのノードをカンマ区切りの値で渡す必要があり、いずれかのノードからもクリーン・アップを実行できません。

Oracleホームのクリーンアップ

Oracleホームには、同じホームの複数の古いバージョンが存在していることがあり、それらによって領域が使用されています。任意の時点で保持されるこれらの以前のバージョンのOracleホームの数を変更するには、emctl set property -name oracle.sysman.emInternalSDK.db.gis.lineageLength -sysman_pwd $em_sysman_pwd –value <value>のようにEMCTLのプロパティを使用します。ここで、<value>は保持する必要があるOracleホームの数です。格納されるバージョン数のデフォルト値は3です。

たとえば、4つのバージョンのOracleホーム(4つ目のバージョンからターゲットが実行されている)があり、valueを3に設定した場合は、最初のバージョンのOracleホームのみを削除できます。同様に、valueを1に設定した場合は、ターゲットが実行されている現在のOracleホームのみが保持され、他の3つのホームは削除されます。

Oracleホームをクリーン・アップするには、次の2つの方法があります。
  • データベースまたはクラスタ・ターゲット・リストを指定することで、最近パッチが適用されたフリート・メンテナンス・データベースの古いOracleホームをクリーン・アップできます。クリーン・アップ操作では、パッチが適用されたデータベース・ターゲットまたはクラスタ・ターゲットの古い適切なOracleホームが検索され、クリーン・アップが実行されます。
  • 系統パス内に孤立したホームがある場合は、Oracleホームのリストをdb_software_maintenance動詞に直接渡すことで、これらをクリーン・アップできます。

Oracleホームのクリーン・アップを実行するには、次のコマンド文字列をEM CLIに入力する必要があります。

emcli db_software_maintenance -performOperation 
-name="cleanup"
-purpose="CLEANUP_SOFTWARE" 
-target_list=<List of home targets>
-target_type=oracle_home 
-normal_credential=NORMALCRED:SYSMAN
-privilege_credential=ROOTCRED:SYSMAN
-workDir=<working directory>
入力変数の説明
  • name: これは操作の一意の名前です。
  • purpose: CLEANUP_SOFTWARE、このpurposeはOracleホームにのみ使用します。
  • target_list: クリーン・アップする必要があるデータベース、クラスタまたはOracleホーム・ターゲットのカンマ区切りのリストです。
  • target_type: この操作が実行されるターゲットのタイプ。
  • normal_credential: <Named Credential: Credential Owner>の形式で入力する必要があります。次に各要素の説明を示します。
    • <Named Credential>: Oracleホームがデプロイされるホストの名前付き資格証明。
    • <Credential Owner>: この名前付き資格証明を所有するEnterprise Managerユーザー。
  • privilege_credential: この資格証明にはroot権限が必要であり、<Named Credential: Credential Owner>の形式で入力する必要があります。
    • <Named Credential>: Oracleホームがデプロイされるホストの名前付き資格証明。
    • <Credential Owner>: この名前付き資格証明を所有するEnterprise Managerユーザー。
    これらの資格証明は、スクリプトをルートとして実行するために使用されます。
  • force: このオプション・フラグのデフォルト値はfalseです。このフラグをtrueに設定すると、データベースが含まれている系統内での中断などの潜在的な競合が存在していても、Oracleホームのクリーン・アップを強制的に実行します。

    デフォルト値のfalseでは、Oracleホームのクリーン・アップ実行時に競合が発生すると、プロセスが停止して、EM CLIコンソールに警告メッセージが表示されます。

Windows単一インスタンス・データベースでのOracleホームのクリーン・アップの例:

emcli db_software_maintenance 
-performOperation -name="Clean"
-purpose=CLEANUP_SOFTWARE -target_list=ORCLTDE.abc.example.com
-target_type=oracle_database
-normal_credential="LOCALADMIN:SYSMAN"
-workDir="C:\Users\LocalAdmin\work"

クリーン・アップに使用可能なOracleホームのレポートの取得

また、クリーン・アップの対象となるホームが表示されるがそれ以降のアクションは実行されないreportonly操作を実行できます。資格証明は、reportonly操作には必要ありません。

Oracleホームのクリーン・アップのレポートを取得するには、次の2つの方法があります:
  • 指定されたtarget_typeの指定されたtarget_listのOracleホームをリストします:
    emcli db_software_maintenance 
    -performOperation 
    -name="cleanup"
    -purpose="CLEANUP_SOFTWARE" 
    -target_list=<List of home targets>
    -target_type=oracle_home 
    -reportonly=true
  • フィルタを使用してOracleホームをリストします:
    emcli db_software_maintenance 
    -performOperation 
    -name="cleanup"
    -purpose="CLEANUP_SOFTWARE" 
    -filter="target_type:host#target_list:<List of host targets>"
    -reportonly=true
入力変数の説明
  • filter: target_type (必須)およびtarget_list (オプション)は、- target_type:cluster#target_list: <List of cluster targets>という形式で指定できます
  • reportOnly: デフォルト値はfalseです。trueに設定すると、クリーン・アップの対象となるOracleホームまたはCDBが出力されますが、これらは削除されません。

    ノート:

    古いCDBに関連付けられたプラガブル・データベース(PDB)がある場合、このフラグにCDBまたはOracle Homeはクリーン・アップに適格ではありませんが表示されます。PDBが新しいOracleホームまたはCDBを指していることを確認します。

コンテナ・データベースのクリーン・アップ

フリート・メンテナンスのパッチ適用操作が発生すると、新しいOracleホームと新しいコンテナ・データベースがデプロイされます。個々のPDBインスタンスにパッチが適用されると、新しくデプロイされたCDBに再配置されます。CDB内のすべてのPDBにパッチを適用したら、古いCDBを削除する必要があります。db_software_maintenance動詞の一部であるCLEANUP操作は、パッチ適用サイクルの完了時に古いCDBの削除を自動化します。

ノート:

コンテナ・データベースをクリーン・アップすると、CDBに対応する適切なホームがすべて削除されます。
Oracleコンテナ・データベースのクリーン・アップを実行するには、次のコマンド文字列をEM CLIに入力する必要があります:
emcli db_software_maintenance 
-performOperation 
-purpose="CLEANUP"
-target_list =<target CDB names> 
-target_type=oracle_pdb  
-name="Cleanup CDBs"
-normal_credential=NORMALCRED:SYSMAN  
-privilege_credential=ROOTCRED:SYSMAN 
-workDir=<working directory>
次のコマンド文字列を使用して、失われた系統のOracleコンテナ・データベースをクリーン・アップできます。
emcli db_software_maintenance 
-performOperation 
-purpose="CLEANUP"
-target_list =<target CDB names>  
-target_type=<oracle_database/rac_database> 
-name="Cleanup orphan CDBs" 
-normal_credential=NORMALCRED:SYSMAN
-privilege_credential=ROOTCRED:SYSMAN  
-workDir=<working directory>
コンテナ・データベースをクリーニングするための入力変数の説明
  • name: これは操作の一意の名前です。
  • purpose: CLEANUP、このpurposeはCDBのクリーン・アップにのみ使用します。
  • target_type: この操作が実行されるターゲットのタイプ。
  • target_list: クリーン・アップする必要があるターゲットのカンマ区切りのリストです。
  • normal_credential: <Named Credential: Credential Owner>の形式で入力する必要があります。次に各要素の説明を示します。
    • <Named Credential>: CDBがデプロイされているOracleホームの名前付き資格証明。
    • <Credential Owner>: この名前付き資格証明を所有するEnterprise Managerユーザー。
  • privilege_credential: これは<Named Credential: Credential Owner>という形式で入力する必要があります。ここで、
    • <Named Credential>: CDBがデプロイされたホストの名前付き資格証明。
    • <Credential Owner>: この名前付き資格証明を所有するEnterprise Managerユーザー。
    これらの資格証明は、スクリプトをルートとして実行するために使用されます。
  • force: オプションのフラグで、デフォルト値はfalseです。Oracleホームのクリーン・アップは、そのホームから実行されているデータベースに影響します。デフォルトでは、このホームから実行されているプロセス(データベース、リスナー、クラスタ)が見つかった場合、クリーン・アップはスキップされます。force=trueフラグを指定すると、検証をスキップし、このホームから実行されているすべてのプロセスを削除できます。これにより、Enterprise Managerでも検出されなかったすべてのプロセスがホームから削除されます。

    ノート:

    これは非常に破壊的な操作であり、プロシージャは5分の遅延後に開始し、プロシージャを中断する機会を提供します。
  • reportOnly: デフォルト値はfalseです。trueに設定すると、削除可能なCDBが出力されますが、データベースは削除されません。

    古いCDBに関連付けられたPDBがある場合、フラグに、CDBまたはOracle Homeはクリーン・アップに適格ではありませんと表示されます。PDBが新しいOracle HomeまたはCDBを指していることを確認します。

    ノート:

    reportOnlyを使用する場合、資格証明は必要ありません。

ノート:

CLEANUP_SOFTWARE、データベース・ソフトウェアのメンテナンス・タスク、db_software_maintenanceの使用の詳細は、次を参照してください。