この章では、スクリプトを使用したOracle Data Minerリポジトリの管理方法について説明します。この章には次のトピックが含まれます:
Oracle Data Minerには、リポジトリのインストールと管理に使用する一連のSQLスクリプトが用意されています。スクリプトは、SQL Developerとともに次のディレクトリにインストールされます。
\SQL_Developer_Home\sqldeveloper\dataminer\scripts
スクリプトは、SQL*PlusまたはSQL Developer Worksheetで実行できます。Oracle Data Minerのスクリプトはすべて、SYSとして実行する必要があります。
注意: Oracle Data Minerスクリプトの多くはSQL Developerと統合されているため、Data GUIを介していくつかの管理機能を使用できます。 |
スクリプトのデフォルトの検索パスを設定する手順:
SQL*Plus: scripts
ディレクトリからSQL*Plusを起動します。
\SQL_Developer_Home\sqldeveloper\dataminer\scripts
SQL Developer Worksheet: Worksheetのプロパティで、デフォルトの検索パスをscripts
ディレクトリに設定します。
SQL Developer Worksheetのプロパティについては、スクリプトで出力する最大行数を500000に変更することも必要です。
リポジトリのバージョンは、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リポジトリをアップグレードするか、データベース・アップグレードを実行する前に、ODMRSYS
とOracle Data Minerユーザー・スキーマを含む、Oracle Data Minerのフル・バックアップを実行する必要があります。Oracle Data Minerには、ユーザー・スキーマを含まずにODMRSYS
内のワークフロー・メタデータをバックアップするためのスクリプトも用意されています。
Database 11.2.0.4以降では、フル・データベース・バックアップと独立に、Oracle Data Minerリポジトリとユーザー・スキーマの、フル・バックアップおよびリストアを実行することができます。Database 11.2.0.1から11.2.0.3では、Oracle Data Minerのフル・バックアップは、フル・データベース・バックアップの一部としてのみ可能です。
Oracle Database 11.2.0.1、11.2.0.2および11.2.0.3では、Oracle Data MinerリポジトリのXML記憶域はオブジェクト・リレーショナルです。これらのデータベースでは、Oracle Data Minerリポジトリとユーザー・スキーマを、データベースのフル・バックアップおよびリストアと独立にバックアップおよびリストアするメカニズムがありません。
データベースをバックアップおよびリストアするには、Oracle Recovery Manager (Oracle RMAN)を使用できます。バックアップからリストアすると、データベースは正確にバックアップ以前の状態になります。部分リストアはサポートされていません。
関連項目: Oracle RMANの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。 |
Oracle Database 11.2.0.4以降では、Oracle Data MinerリポジトリのXML記憶域はバイナリです。これらのデータベースでは、Oracle Data Pumpを使用して、データベースのフル・バックアップおよびリストアと独立に、ODMRSYS
とユーザー・スキーマをバックアップおよびリストアできます。Oracle Data Pumpでは、個々のスキーマをバックアップおよびリストアできます。
別の方法としては、Oracle RMANでOracle Data Minerをバックアップおよびリストアできます。
関連項目:
|
Oracle Data Minerには、ワークフローによって生成されるユーザーのスキーマ内のオブジェクトを含まず、リポジトリ内のワークフロー・メタデータをバックアップするスクリプトが用意されています。この簡略化されたバックアップ戦略はワークフロー仕様を保護し、ユーザーがワークフローをうっかり削除してもリストアできるようにします。ワークフローがリストアされたら、ユーザーはそれを再実行して、すべてのサポート・オブジェクトがユーザーのスキーマに存在することを確認する必要があります。
creatxmlworkflowsbackup2
スクリプトは、ODMRSYS
内のすべてのワークフローを、別個のバックアップ・アカウントのODMR$WORKFLOWS_BACKUP
と呼ばれる表にバックアップします。スクリプトを実行する前に、バックアップ・スキーマが存在し、利用できることを確認します。
構文:
createxmlworkflowsbackup2.sql backup_account
パラメータ:
backup_account
は、バックアップ表ODMR$WORKFLOWS_BACKUP
のスキーマの名前です。
例:
この例は、BACKUPACCT
と呼ばれるバックアップ・アカウントのワークフローをバックアップします:
set serveroutput on @createxmlworkflowsbackup2l BACKUPACCT
createxmlworkflowsbackup2
を実行するたびに、ワークフローの完全なセットがバックアップ表に追加されます。バックアップ・スクリプトには、バックアップ表内に30個までのバックアップが保持されます。古いバックアップは自動的に削除されます。たとえば、毎日バックアップを実行する場合、最大30日間、各ワークフローのリストアを要求できます。
バックアップ・スクリプトでは、DEFINE_MAX_VERSIONS
が、バックアップ表に維持されるバックアップの数を指定します。30以上のバックアップを維持する場合、バックアップ・スクリプトcreatexmlworkflowsbackup2
で、DEFINE_MAX_VERSIONS
の値を希望する数に変更します。
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
このトピックでは、選択的ワークフロー・リストアとフル・ワークフロー・リストアの例を示します。
例5-1 選択的ワークフロー・リストア
先週、ユーザーSCOTT
が誤ってすべてのワークフローを削除してしまったと仮定しましょうADD_ONLY
オプションを使用して、ワークフローをリストアできます。削除してしまったワークフローがどのバージョンのバックアップに含まれているかを確認するには、バックアップの問合せが必要です。バージョンが12の場合、次のスクリプト例はSYSとして実行され、それらのワークフローのみをリロードします。
@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;
例5-2 フル・ワークフロー・リストア
致命的なリポジトリ障害が発生し、最新のバックアップからすべてのワークフローを完全に再ロードすることが必要になった仮定します。DROP_AND_ADD
オプションを使用すると、古いワークフローをすべて削除して、バックアップにあるすべてのワークフローを再ロードすることができます。この例では、ODMRSYS
アカウントとは異なる別のアカウントにバックアップ表が存在します。リカバリには最新バージョンのバックアップが使用されるので、ワークフロー定義のパラメータは必要ありません。
@restorexmlworkflowfrombackup2.sql DROP_AND_ADD BACKUPACCT
SQL Developer 4.0からは、特定のアップグレード・パスにOracle Data Minerの移行スクリプトを使用できます。表5-1で説明されているスクリプトで、Oracle Data Minerリポジトリ・ソフトウェアを以前のバージョンから最新バージョンにアップグレードします。ワークフローはすべて、アップグレード中に保持されます。
関連項目: 『Oracle Data Minerユーザーズ・ガイド』のData Minerリポジトリの移行に関する項を参照してください |
表5-1 Oracle Data Minerのアップグレード・スクリプト
SQL Developerのバージョン | データベースのバージョン | スクリプト | 説明 |
---|---|---|---|
任意のバージョン |
11.2.0.1 - 11.2.0.3 |
詳細は5.4.1項を参照してください。 |
|
3.2.2以下 |
11.2.0.4以上(デフォルトの |
入力パラメータとしてASSM表領域が必要です。これは、ワークフロー・データをXMLオブジェクト記憶域からXMLバイナリ記憶域に移行するために使用されます。 詳細は5.4.2項を参照してください。 |
|
3.2.2以下 |
11.2.0.4以上(デフォルトの |
ワークフロー・データが、XMLオブジェクト記憶域からXMLバイナリ記憶域に移行されます。 詳細は、5.4.3項を参照してください。 |
|
4.0以上 |
11.2.0.4以上 |
今後のリリースで、オブジェクト記憶域からバイナリ記憶域へのXML変換が不要になったときに該当します。 詳細は、5.4.4項を参照してください。 |
|
4.0以上 |
当初は11.2.0.3以下。データベースを11.2.0.4以上にアップグレード |
データベースは、Oracle Data Minerリポジトリとは別にアップグレードできるので、これを考慮する必要があります。スクリプトの選択は、 |
migrateodmr
スクリプトは、ODMRSYS
を、データベースでサポートされている最新のバージョンにアップグレードします。
ODMRUSER
ロールを持つセッションが現在実行中の場合、セッション・オブジェクト・ロックによりアップグレードがブロックされます。session_disconnect
パラメータを使用してアクティブなセッションをすべて切断し、それによりアップグレード・プロセスの進行を可能にすることができます。
構文:
migrateodmr.sql session_disconnect
パラメータ:
session_disconnect
は、次の値の1つを持つことができます。
R
- アクティブなセッションをレポートします。切断はしません。
D
— アクティブなセッションを切断します。レポートはしません。
DR
またはRD
- アクティブなセッションを切断し、レポートします。
例:
この例はODMRSYS
をアップグレードして、アクティブなODMRUSER
セッションをすべて切断し、レポートします。
@migrateodmr DR
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
関連項目: Oracle Database管理者ガイド |
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
関連項目: Oracle Automatic Storage Management管理者ガイド |
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
dropRepositoryAndUserObjects
スクリプトは、Data Minerリポジトリと、ユーザーのスキーマにある関連オブジェクトを削除します。
ODMRUSER
ロールを持つセッションが現在実行中の場合、セッション・オブジェクト・ロックによりアップグレードがブロックされます。session_disconnect
パラメータを使用してアクティブなセッションをすべて切断し、それによりアップグレード・プロセスの進行を可能にすることができます。
構文:
dropRepositoryAndUserObjects.sql
session_disconnect
パラメータ:
session_disconnect
は、次の値の1つを持つことができます。
R
- アクティブなセッションをレポートします。切断はしません。
D
— アクティブなセッションを切断します。レポートはしません。
DR
またはRD
- アクティブなセッションを切断し、レポートします。
例:
この例は、ODMRSYS
、スキーマおよびOracle Data Minerユーザーのスキーマ内の関連オブジェクトを削除し、すべてのアクティブなODMRUSER
セッションを切断およびレポートします。
@dropRepositoryAndUserObjects DR