6 Oracle Data Minerリポジトリの管理
- Oracle Data Miner管理スクリプトについて
Oracle Data Minerには、リポジトリのインストールと管理に使用する一連のSQLスクリプトが用意されています。 - Oracle Data Minerスクリプトのパスの設定
SQL*PlusまたはSQL Developer Webシートを使用して、Oracle Data Minerスクリプトのパスを設定できます。 - リポジトリのステータスとバージョンの判定
リポジトリのバージョンは、Oracle Data Minerクライアントのバージョンと互換である必要があります。クライアントとサーバーのバージョンに互換性がない場合、クライアントはサーバーに接続できません。 - リポジトリのバックアップとリストア
Oracle Data Minerリポジトリをアップグレードするか、データベース・アップグレードを実行する前に、ODMRSYS
とOracle Data Minerユーザー・スキーマを含む、Oracle Data Minerのフル・バックアップを実行する必要があります。 - リポジトリの移行
この項では、リポジトリの移行に関連するトピックについて説明します。 - リポジトリの削除
dropRepositoryAndUserObjects
スクリプトは、Data Minerリポジトリと、ユーザーのスキーマにある関連オブジェクトを削除します。
6.1 Oracle Data Miner管理スクリプトについて
Oracle Data Minerには、リポジトリのインストールと管理に使用する一連のStructured Query Language (SQL)スクリプトが用意されています。
SQLスクリプトは、SQL Developerとともに次のディレクトリにインストールされます。
SQL_Developer_Home\sqldeveloper\dataminer\scripts
SQLスクリプトは、SQL*PlusまたはSQL Developer Worksheetで実行できます。Oracle Data Minerのスクリプトはすべて、DBA権限で実行する必要があります。
ノート:
Oracle Data Minerスクリプトの多くはSQL Developerと統合されているため、データ・グラフィカル・ユーザー・インタフェースを介していくつかの管理機能を使用できます。
親トピック: Oracle Data Minerリポジトリの管理
6.2 Oracle Data Minerスクリプトのパスの設定
SQL*PlusまたはSQL Developer Webシートを使用して、Oracle Data Minerスクリプトのパスを設定できます。
スクリプトのデフォルトの検索パスを設定するには:
-
SQL*Plus:
scripts
ディレクトリからSQL*Plusを起動します。SQL_Developer_Home\sqldeveloper\dataminer\scripts
-
SQL Developer Worksheet: Worksheetのプロパティで、デフォルトの検索パスを
scripts
ディレクトリに設定します。SQL Developer Worksheetのプロパティについては、スクリプトで出力する最大行数を500000に変更することも必要です。
親トピック: Oracle Data Minerリポジトリの管理
6.3 リポジトリのステータスとバージョンの判定
リポジトリのバージョンは、Oracle Data Minerクライアントのバージョンと互換である必要があります。クライアントとサーバーのバージョンに互換性がない場合、クライアントはサーバーに接続できません。
次の問合せは、リポジトリのバージョンとステータスを返します。
set echo on;
-- value of VERSION and REPOSITORY_STATUS
SELECT property_name, property_str_value
FROM ODMRSYS.ODMR$REPOSITORY_PROPERTIES
WHERE property_name IN ('VERSION','REPOSITORY_STATUS', 'WF_VERSION');
PROPERTY_NAME PROPERTY_STR_VALUE
------------------------------ ------------------------------
REPOSITORY_STATUS LOADED
VERSION 12.1.0.2.3
WF_VERSION 12.1.0.2.3
Oracle Data Minerリポジトリには、ステータスを示す値としてNOT_LOADED
とLOADED
の2つがあります。ステータスNOT_LOADED
は通常、SQL Developerの新しいバージョンまたは新しいパッチ・リリースをサポートするためにリポジトリをアップグレード中であることを示します。アップグレードが完了すると、ステータスがLOADED
になります。
親トピック: Oracle Data Minerリポジトリの管理
6.4 リポジトリのバックアップとリストア
Oracle Data Minerリポジトリをアップグレードするか、データベース・アップグレードを実行する前に、ODMRSYS
とOracle Data Minerユーザー・スキーマを含む、Oracle Data Minerのフル・バックアップを実行する必要があります。
Oracle Data Minerには、ユーザー・スキーマを含まずにODMRSYS
内のワークフロー・メタデータをバックアップするためのスクリプトも用意されています。
- フル・バックアップおよびリストア
Oracle Database 11.2.0.4以降では、フル・データベース・バックアップと独立に、Oracle Data Minerリポジトリとユーザー・スキーマの、フル・バックアップおよびリストアを実行することができます。 - ワークフローのみのバックアップ
Oracle Data Minerには、ワークフローによって生成されるユーザーのスキーマ内のオブジェクトを含まず、リポジトリ内のワークフロー・メタデータをバックアップするスクリプトが用意されています。 - ワークフローのみのリストア
createxmlworkflowsbackup2
で作成されたバックアップ表からワークフローをリストアできます。 - ワークフローのみのリストアの例
このトピックでは、選択的ワークフロー・リストアとフル・ワークフロー・リストアの例を示します。
親トピック: Oracle Data Minerリポジトリの管理
6.4.1 全体バックアップとリストア
Oracle Database 11.2.0.4以降では、フル・データベース・バックアップと独立に、Oracle Data Minerリポジトリとユーザー・スキーマの、フル・バックアップおよびリストアを実行することができます。
- Database 11.2.0.4以降のフル・バックアップおよびリストア
Oracle Database 11.2.0.4以降では、Oracle Data MinerリポジトリのXML記憶域はバイナリです。これらのデータベースでは、Oracle Data Pumpを使用して、データベースのフル・バックアップおよびリストアと独立に、ODMRSYS
とユーザー・スキーマをバックアップおよびリストアできます。
親トピック: リポジトリのバックアップとリストア
6.4.1.1 Database 11.2.0.4以降のフル・バックアップおよびリストア
Oracle Database 11.2.0.4以降では、Oracle Data MinerリポジトリのXML記憶域はバイナリです。これらのデータベースでは、Oracle Data Pumpを使用して、データベースのフル・バックアップおよびリストアと独立に、ODMRSYS
とユーザー・スキーマをバックアップおよびリストアできます。
Oracle Data Pumpを使用して、個々のスキーマをバックアップおよびリストアできます。別の方法としては、Oracle RMANでOracle Data Minerをバックアップおよびリストアできます。
親トピック: 全体バックアップとリストア
6.4.2 ワークフローのみのバックアップ
Oracle Data Minerには、ワークフローによって生成されるユーザーのスキーマ内のオブジェクトを含まず、リポジトリ内のワークフロー・メタデータをバックアップするスクリプトが用意されています。
この簡略化されたバックアップ戦略はワークフロー仕様を保護し、ワークフローをうっかり削除してもリストアできるようにします。ワークフローがリストアされたら、それを再実行して、すべてのサポート・オブジェクトがユーザーのスキーマに存在することを確認する必要があります。creatxmlworkflowsbackup2
スクリプトは、ODMRSYS
内のすべてのワークフローを、別個のバックアップ・アカウントのODMR$WORKFLOWS_BACKUP
と呼ばれる表にバックアップします。スクリプトを実行する前に、バックアップ・スキーマが存在し、利用できることを確認します。
構文:
createxmlworkflowsbackup2.sql backup_account
パラメータ:
backup_account
は、バックアップ表ODMR$WORKFLOWS_BACKUP
のスキーマの名前です。
この例は、BACKUPACCT
と呼ばれるバックアップ・アカウントのワークフローをバックアップします:
set serveroutput on
@createxmlworkflowsbackup2l BACKUPACCT
ノート:
dropRepositoryAndUserObjects
スクリプトは、リポジトリを削除するときに、すべてのバックアップ表を削除します。dropRepositoryAndUserObjects
スクリプトを実行してリポジトリを削除すると、すべてのワークフロー・バックアップが失われます。
createxmlworkflowsbackup2
を実行するたびに、ワークフローの完全なセットがバックアップ表に追加されます。バックアップ・スクリプトには、バックアップ表内に30個までのバックアップが保持されます。古いバックアップは自動的に削除されます。たとえば、毎日バックアップを実行する場合、最大30日間、各ワークフローのリストアを要求できます。
バックアップ・スクリプトでは、DEFINE_MAX_VERSIONSが、バックアップ表に維持されるバックアップの数を指定します。30以上のバックアップを維持する場合、バックアップ・スクリプトcreatexmlworkflowsbackup2
で、DEFINE_MAX_VERSIONSの値を希望する数に変更します。
関連項目
親トピック: リポジトリのバックアップとリストア
6.4.3 ワークフローのみのリストア
createxmlworkflowsbackup2
で作成されたバックアップ表からワークフローをリストアできます。
createxmlworkflowsbackup2
で作成されたバックアップ表からワークフローをリストアするには、restorexmlworkflowfrombackup2
スクリプトを実行します。
restorexmlworkflowfrombackup2.sql
は、バックアップ表からOracle Data Minerリポジトリにワークフローをリストアします。使用方法は次のとおりです。
構文:
restorexmlworkflowfrombackup2.sql [option] [backup_account] [workflow_definition]
パラメータ:
option は、次の値を1つ取るオプションのパラメータです。
-
ADD_ONLY
— リポジトリにすでに存在していないワークフローをリストアし、存在しないプロジェクトを必要に応じて作成します。(デフォルト) -
DROP_AND_ADD
— リポジトリにある既存のワークフローとプロジェクトを削除したうえで、すべてのワークフローをバックアップからリストアし、存在しないプロジェクトは必要に応じて作成します。 -
OVERRIDE_ONLY
— リポジトリにすでに存在するワークフローのみをリストアします。 -
OVERRIDE_AND_ADD
—OVERRIDE_ONLY
とADD_ONLY
の両方のオプションを適用します。
backup_account
は、workflow_definition
が指定されない限りオプションで、指定された場合には必須です。バックアップ・アカウントを指定しない場合、ワークフローはリポジトリにあるバックアップ表からリストアされます。バックアップ表が存在しない場合、例外が発生します。
workflow_definition
は、どのワークフローをバックアップからリストアするかを指定する表またはビューを特定する、オプションのパラメータです。表またはビューには、USER_NAME
、PROJECT_NAME
、WORKFLOW_NAME
、VERSION
の4つの列が必要です。表の各行が、リストアするワークフローを特定します。VERSION
の値がnullの場合は、最新バージョンの値がリストアに使用されます。ワークフロー定義を何も指定しない場合は、最新のバックアップ・バージョンがデフォルトになります
例:
この例は、リポジトリ内のすべてのワークフローを削除して、BACKUPACCT
内のバックアップ表からワークフローをリストアします。
set serverput on
@restorexmlworkflowfrombackup2 DROP_AND_ADD BACKUPACCT
関連項目
親トピック: リポジトリのバックアップとリストア
6.4.4 ワークフローのみのリストアの例
このトピックでは、選択的ワークフロー・リストアとフル・ワークフロー・リストアの例を示します。
例6-1 選択的ワークフロー・リストア
先週、ユーザーSCOTT
が誤ってすべてのワークフローを削除してしまったと仮定しましょう。ADD_ONLY
オプションを使用して、ワークフローをリストアできます。削除してしまったワークフローがどのバージョンのバックアップに含まれているかを確認するには、バックアップの問合せが必要です。バージョンが12の場合、次のスクリプト例はDBA権限で実行され、それらのワークフローのみをリロードします。
@restorexmlworkflowfrombackup2.sql ADD_ONLY BACKUPACCT BACKUPACCT.WORKFLOW_V
次に示すWORKFLOW_V
ビューは、ユーザーSCOTT
に存在するすべてのワークフローを、指定したバージョンのバックアップから選択します。
CREATE VIEW BACKUPACCT.WORKFLOW_V AS
SELECT user_name, project_name, workflow_name, version
FROM backupacct.odmr$workflows_backup
WHERE user_name='SCOTT' AND version = 12;
例6-2 フル・ワークフロー・リストア
致命的なリポジトリ障害が発生し、最新のバックアップからすべてのワークフローを完全に再ロードすることが必要になった仮定します。DROP_AND_ADD
オプションを使用すると、古いワークフローをすべて削除して、バックアップにあるすべてのワークフローを再ロードすることができます。この例では、ODMRSYS
アカウントとは異なる別のアカウントにバックアップ表が存在します。リカバリには最新バージョンのバックアップが使用されるので、ワークフロー定義のパラメータは必要ありません。
@restorexmlworkflowfrombackup2.sql DROP_AND_ADD BACKUPACCT
親トピック: リポジトリのバックアップとリストア
6.5 リポジトリの移行
この項では、リポジトリの移行に関連するトピックについて説明します。
内容は次のとおりです。
- ODMRSYSのアップグレード
migratebinaryodmr
スクリプトは、バイナリXML記憶域を使用するODMRSYS
スキーマ内のワークフロー・データをアップグレードします。ODMRSYS
表領域は、Oracle Automatic Segment Space Management (ASSM)表領域です。 - リポジトリを移行するスクリプト
SQL Developer 4.0からは、特定のアップグレード・パスにOracle Data Minerの移行スクリプトを使用できます。 - 新しいODMRSYS表領域のオブジェクト・リレーショナルからバイナリへのアップグレード
upgradeRepoWithNewTableSpace
スクリプトは、指定された表領域を、オブジェクト・リレーショナルからバイナリXML記憶域にアップグレードし、ODMRSYS
内のワークフロー・データを新しい表領域に移行します。新しい表領域は、Oracle Automatic Segment Space Management (Oracle ASSM)表領域である必要があります。 - ODMRSYSのオブジェクト・リレーショナルからバイナリへのアップグレード
upgradeRepoFromORtoBinary
スクリプトは、ODMRSYS
ワークフロー・データを、オブジェクト・リレーショナルのXML記憶域からバイナリXML記憶域に移行します。アップグレードされたODMRSYS
表領域は、Oracle Automatic Segment Space Management (ASSM)表領域です。
親トピック: Oracle Data Minerリポジトリの管理
6.5.1 ODMRSYSのアップグレード
migratebinaryodmr
スクリプトは、バイナリXML記憶域を使用するODMRSYS
スキーマ内のワークフロー・データをアップグレードします。ODMRSYS
表領域は、Oracle Automatic Segment Space Management (ASSM)表領域です。
ODMRUSER
ロールを持つセッションが現在実行中の場合、セッション・オブジェクト・ロックによりアップグレードがブロックされます。session_disconnectパラメータを使用してアクティブなセッションをすべて切断し、それによりアップグレード・プロセスの進行を可能にすることができます。
構文:
@migratebinaryodmr.sql session_disconnect
パラメータ:
session_disconnectは、次の値の1つを持つことができます。
R — アクティブなセッションをレポートします。切断はしません。
D — アクティブなセッションを切断します。レポートはしません。
DRまたはRD — アクティブなセッションを切断し、レポートします。
例:
この例はODMRSYS
内のバイナリXMLワークフロー・データをアップグレードして、アクティブなODMRUSER
セッションをすべて切断し、レポートします。
@migratebinaryodmr DR
親トピック: リポジトリの移行
6.5.2 リポジトリを移行するスクリプト
SQL Developer 4.0からは、特定のアップグレード・パスにOracle Data Minerの移行スクリプトを使用できます。
表6-1 Oracle Data Minerのアップグレード・スクリプト
SQL Developerのバージョン | データベースのバージョン | スクリプト | 説明 |
---|---|---|---|
4.0以降 | 11.2.0.4以降 | migratebinaryodmr.sql |
今後のリリースで、オブジェクト記憶域からバイナリ記憶域へのXML変換が不要になったときに該当します。 |
4.0以降 | 当初は11.2.0.3以前。データベースを11.2.0.4以降にアップグレード | upgradeRepoWithNewTableSpace.sql またはupgradeRepoFromORtoBinary.sql |
データベースは、Oracle Data Minerリポジトリとは別にアップグレードできるので、これを考慮する必要があります。スクリプトの選択は、ODMRSYS 表領域がASSMかどうかによって異なります。
|
3.2.2以前 | 11.2.0.4以降(デフォルトのODMRSYS 表領域がASSMベースではない)
|
upgradeRepoWithNewTableSpace.sql |
入力パラメータとしてASSM表領域が必要です。これは、ワークフロー・データをXMLオブジェクト記憶域からXMLバイナリ記憶域に移行するために使用されます。 |
3.2.2以前 |
11.2.0.4以降(デフォルトの |
upgradeRepoFromORtoBinary.sql |
ワークフロー・データが、XMLオブジェクト記憶域からXMLバイナリ記憶域に移行されます。 |
親トピック: リポジトリの移行
6.5.3 新しいODMRSYS表領域のオブジェクト・リレーショナルからバイナリへのアップグレード
upgradeRepoWithNewTableSpace
スクリプトは、指定された表領域を、オブジェクト・リレーショナルからバイナリのXML記憶域にアップグレードし、ODMRSYS
内のワークフロー・データを新しい表領域に移行します。新しい表領域は、Oracle Automatic Segment Space Management (Oracle ASSM)表領域である必要があります。
ODMRUSER
ロールを持つセッションが現在実行中の場合、セッション・オブジェクト・ロックによりアップグレードがブロックされます。session_disconnectパラメータを使用してアクティブなセッションをすべて切断し、アップグレード・プロセスの進行を可能にできます。
構文:
upgradeRepoWithNewTableSpace.sql ASSMtablespace session_disconnect
パラメータ:
ASSMtablespaceは、ASSM表領域の名前です。
session_disconnectは、次の値の1つを持つことができます。
R — アクティブなセッションをレポートします。切断はしません。
D — アクティブなセッションを切断します。レポートはしません。
DRまたはRD — アクティブなセッションを切断し、レポートします。
例:
この例は、ODMRSYS
内のオブジェクト・リレーショナルXMLデータを、バイナリXML記憶域を使用する新しいASSM表領域、my_ASSM_space
に移行します。いずれかのODMRUSER
セッションがアクティブである場合、それは切断され、レポートされます。
@upgradeRepoWithNewTableSpace my_ASSM_space DR
親トピック: リポジトリの移行
6.5.4 ODMRSYSのオブジェクト・リレーショナルからバイナリへのアップグレード
upgradeRepoFromORtoBinary
スクリプトは、ODMRSYS
ワークフロー・データを、オブジェクト・リレーショナルのXML記憶域からバイナリXML記憶域に移行します。アップグレードされたODMRSYS
表領域は、Oracle Automatic Segment Space Management (ASSM)表領域です。
ODMRUSER
ロールを持つセッションが現在実行中の場合、セッション・オブジェクト・ロックによりアップグレードがブロックされます。session_disconnectパラメータを使用してアクティブなセッションをすべて切断し、それによりアップグレード・プロセスの進行を可能にすることができます。
構文:
@upgradeRepoFromORtoBinary.sql session_disconnect
パラメータ:
session_disconnectは、次の値の1つを持つことができます。
R — アクティブなセッションをレポートします。切断はしません。
D — アクティブなセッションを切断します。レポートはしません。
DRまたはRD — アクティブなセッションを切断し、レポートします。
例:
この例は、ODMRSYS
をオブジェクト・リレーショナルXML記憶域からバイナリXML記憶域にアップグレードします。アップグレードされた表領域は、ASSMベースです。いずれかのODMRUSER
セッションがアクティブである場合、それは切断され、レポートされます。
@upgradeRepoFromORtoBinary DR
親トピック: リポジトリの移行
6.6 リポジトリの削除
dropRepositoryAndUserObjects
スクリプトは、Data Minerリポジトリと、ユーザーのスキーマにある関連オブジェクトを削除します。
ODMRUSER
ロールを持つセッションが現在実行中の場合、セッション・オブジェクト・ロックによりアップグレードがブロックされます。session_disconnectパラメータを使用してアクティブなセッションをすべて切断し、アップグレード・プロセスの進行を可能にできます。
構文:
dropRepositoryAndUserObjects.sql session_disconnect
パラメータ:
session_disconnectは、次の値の1つを持つことができます。
R — アクティブなセッションをレポートします。切断はしません。
D — アクティブなセッションを切断します。レポートはしません。
DRまたはRD — アクティブなセッションを切断し、レポートします。
例:
この例は、ODMRSYS
、スキーマおよびOracle Data Minerユーザーのスキーマ内の関連オブジェクトを削除し、すべてのアクティブなODMRUSER
セッションを切断およびレポートします。
@dropRepositoryAndUserObjects DR