ODMRSYSとOracle Data Minerユーザー・スキーマを含む、Oracle Data Minerのフル・バックアップを実行する必要があります。dropRepositoryAndUserObjectsスクリプトは、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と統合されているため、データ・グラフィカル・ユーザー・インタフェースを介していくつかの管理機能を使用できます。
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クライアントのバージョンと互換である必要があります。クライアントとサーバーのバージョンに互換性がない場合、クライアントはサーバーに接続できません。
次の問合せは、リポジトリのバージョンとステータスを返します。
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内のワークフロー・メタデータをバックアップするためのスクリプトも用意されています。
createxmlworkflowsbackup2で作成されたバックアップ表からワークフローをリストアできます。Oracle Database 11.2.0.4以降では、フル・データベース・バックアップと独立に、Oracle Data Minerリポジトリとユーザー・スキーマの、フル・バックアップおよびリストアを実行することができます。
ODMRSYSとユーザー・スキーマをバックアップおよびリストアできます。 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
注意:
dropRepositoryAndUserObjectsスクリプトは、リポジトリを削除するときに、すべてのバックアップ表を削除します。dropRepositoryAndUserObjectsスクリプトを実行してリポジトリを削除すると、すべてのワークフロー・バックアップが失われます。
createxmlworkflowsbackup2を実行するたびに、ワークフローの完全なセットがバックアップ表に追加されます。バックアップ・スクリプトには、バックアップ表内に30個までのバックアップが保持されます。古いバックアップは自動的に削除されます。たとえば、毎日バックアップを実行する場合、最大30日間、各ワークフローのリストアを要求できます。
バックアップ・スクリプトでは、DEFINE_MAX_VERSIONSが、バックアップ表に維持されるバックアップの数を指定します。30以上のバックアップを維持する場合、バックアップ・スクリプトcreatexmlworkflowsbackup2で、DEFINE_MAX_VERSIONSの値を希望する数に変更します。
関連項目
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
関連項目
このトピックでは、選択的ワークフロー・リストアとフル・ワークフロー・リストアの例を示します。
例5-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;
例5-2 フル・ワークフロー・リストア
致命的なリポジトリ障害が発生し、最新のバックアップからすべてのワークフローを完全に再ロードすることが必要になった仮定します。DROP_AND_ADDオプションを使用すると、古いワークフローをすべて削除して、バックアップにあるすべてのワークフローを再ロードすることができます。この例では、ODMRSYSアカウントとは異なる別のアカウントにバックアップ表が存在します。リカバリには最新バージョンのバックアップが使用されるので、ワークフロー定義のパラメータは必要ありません。
@restorexmlworkflowfrombackup2.sql DROP_AND_ADD BACKUPACCT
この項では、リポジトリの移行に関連するトピックについて説明します。
内容は次のとおりです。
migratebinaryodmrスクリプトは、バイナリXML記憶域を使用するODMRSYSスキーマ内のワークフロー・データをアップグレードします。ODMRSYS表領域は、Oracle Automatic Segment Space Management (ASSM)表領域です。upgradeRepoWithNewTableSpaceスクリプトは、指定された表領域を、オブジェクト・リレーショナルからバイナリXML記憶域にアップグレードし、ODMRSYS内のワークフロー・データを新しい表領域に移行します。新しい表領域は、Oracle Automatic Segment Space Management (Oracle ASSM)表領域である必要があります。upgradeRepoFromORtoBinaryスクリプトは、ODMRSYSワークフロー・データを、オブジェクト・リレーショナルのXML記憶域からバイナリXML記憶域に移行します。アップグレードされたODMRSYS表領域は、Oracle Automatic Segment Space Management (ASSM)表領域です。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
SQL Developer 4.0からは、特定のアップグレード・パスにOracle Data Minerの移行スクリプトを使用できます。
表5-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バイナリ記憶域に移行されます。 |
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
関連項目
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
関連項目
dropRepositoryAndUserObjectsスクリプトは、Data Minerリポジトリと、ユーザーのスキーマにある関連オブジェクトを削除します。
ODMRUSERロールを持つセッションが現在実行中の場合、セッション・オブジェクト・ロックによりアップグレードがブロックされます。session_disconnectパラメータを使用してアクティブなセッションをすべて切断し、アップグレード・プロセスの進行を可能にできます。
構文:
dropRepositoryAndUserObjects.sql session_disconnect
パラメータ:
session_disconnectは、次の値の1つを持つことができます。
R - アクティブなセッションをレポートします。切断はしません。
D — アクティブなセッションを切断します。レポートはしません。
DRまたはRD - アクティブなセッションを切断し、レポートします。
例:
この例は、ODMRSYS、スキーマおよびOracle Data Minerユーザーのスキーマ内の関連オブジェクトを削除し、すべてのアクティブなODMRUSERセッションを切断およびレポートします。
@dropRepositoryAndUserObjects DR