サービス・インスタンスの作成前後にカスタム・スクリプトを実行できます。これらのリクエストは、データベースが作成されたマシン上のいくつかの追加ホスト・コマンドから、新規にプロビジョニングされたデータベース上で追加のブック・アクティビティやその他の操作を実行するコマンドまで、多岐にわたります。
同様に、サービスのクリーンアップ中に行った変更のやり直しが必要な場合、サービス・インスタンスの削除後にスクリプトを実行できます。
カスタム・スクリプトはいくつかのガイドラインに従う必要があり、次の4つの部分で構成されています。
レスポンス・ファイル: レスポンス・ファイルには、サービス・テンプレートおよびリクエスト固有の情報が含まれます。カスタム・スクリプトが実行される前に、リクエスト・プロシージャにより、自動計算されるSID、データベースがデプロイされるホストなど、サービス・テンプレートやリクエスト固有のデータからのデータが含まれるレスポンス・ファイル(名前/値ペアのファイル)が生成されます。
ドライバ・スクリプト: リクエスト・プロシージャにより呼び出される主要なドライバ・スクリプトです。ドライバ・スクリプトは、レスポンス・ファイルの場所を指定する1つの引数のみを受け入れます。
その他のスクリプト: ドライバ・スクリプトの他に、その他のPerlまたはSQLスクリプトを指定できます。これらのスクリプトは、ドライバ・スクリプトから呼び出す必要があります。
追加変数: 状況に応じて、カスタム・スクリプトにより使用される追加の変数が含まれるファイルを含めることができます。
スクリプトを作成したら、これらをディレクティブとしてソフトウェア・ライブラリにアップロードする必要があります。説明ページに、ディレクティブの名前および説明が表示されます。「構成」タブをクリックします。
図30-1 前処理または後処理DBスクリプト: 構成
ドライバ・スクリプトは、INPUT_FILE
形式の1つのコマンドライン引数を受け入れます。この変数は、生成されたレスポンス・ファイルの場所を実行時に指定するために使用されます。「ファイルの選択」タブをクリックします。
図30-2 前処理または後処理DBスクリプト: ファイルの選択
カスタム・スクリプトで必要となるすべての追加ファイルを指定します。スクリプトは、データベース・インスタンスまたはデータベース・サービスが作成または削除されたホストと同じホストから実行できます。
注意:
スクリプトの内容を変更する必要がある場合は、新しいバージョンのスクリプトをソフトウェア・ライブラリにアップロードする必要があります。最新バージョンのスクリプトを使用するには、サービス・テンプレートの編集ウィザードを起動して、スクリプトの更新されたバージョンを選択してテンプレートを保存する必要があります。これにより、最新バージョンのスクリプトが使用されるようになります。
SQL後スクリプトを作成し、ソフトウェア・ライブラリにアップロードできます。セルフ・サービス管理者は、サービス・テンプレートの作成中にスクリプトを選択できます。スクリプトを指定する手順は、次のとおりです。
ソフトウェア・ライブラリ内のサンプル・スクリプトを使用できます。サンプル・スクリプトを表示するには、「エンタープライズ」メニューから、「プロビジョニングとパッチ適用」を選択し、「ソフトウェア・ライブラリ」を選択します。DBaaSフォルダを選択し、次に「ディレクティブ」を選択して、サンプル・フォルダをクリックしてカスタム・スクリプトを表示します。
図30-3 サンプル・スクリプト
この項の内容は次のとおりです。
次の表に、DBaaSのリクエスト作成の前処理および後処理スクリプトの入力パラメータを示します。
表30-1 DBaaS: リクエスト作成の前処理および後処理スクリプトの入力パラメータ
変数名 | 説明 | 例 |
---|---|---|
ssaRequestId |
SSAユーザー・リクエストのリクエストID。 |
3 |
ssaUser |
SSAユーザー名。 |
Ssa_user1 |
ssaTargetName |
ゾーン・ターゲット名。 |
Myzone1 |
ssaTargetType |
ゾーン・ターゲット・タイプ。 |
Self_service_zone |
zoneTargetName |
ゾーン・ターゲット名。 |
Myzone1 |
zoneTargetType |
ゾーン・ターゲット・タイプ。 |
Self_service_zone |
DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN |
PDBターゲットの作成前に実行されるソフトウェア・ライブラリのディレクティブのURN。 |
oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1 |
DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN |
PDBターゲットの作成後に実行されるソフトウェア・ライブラリのディレクティブのURN。 |
oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1 |
SEL_HOST |
新しいデータベースが作成される配置の一部として選択されるホスト。 |
Myhost.oracle.com |
MEM_SIZE |
リクエストされるデータベースのメモリー・サイズ。これは、SGAおよびPGAの集計サイズの合計または合計メモリー・サイズになります。 |
2324 |
STORAGE_SIZE |
リクエストされたデータベースの合計記憶域サイズ |
2324 |
HOST_CREDS |
データベースが作成されるホストの資格証明。 |
Mycred1:dbaas_admin |
PROFILE_COMPONENT_URN |
プロファイル・コンポーネントURN。 |
oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:E9C8A650EFA5291DE04354B2F00AFF3E:0.1 |
WORK_DIR |
プロビジョニング関連ファイルをステージングするために使用される一時作業ディレクトリ |
/tmp |
DB_ADMIN_PASSWORD_SAME |
sys、systemおよびdbsnmpに指定されたパスワードが同じかどうかを示します。 |
はい |
DB_ORACLE_HOME_LOC |
新しいデータベースの作成元となる、選択されたホストのOracleホーム。 |
/scratch/aime/oraclehomes/dbbase/112030/dbhome1 |
DB_ORACLE_BASE_LOC |
選択されたOracleホームのOracleベース。 |
/scratch/aime/oraclehomes/dbbase |
TOTAL_MEMORY |
選択されたデータベースの合計メモリー(メモリー管理タイプがAMMの場合)。 |
0 |
SGA_MEMORY |
データベースに設定されたSGAメモリーの値。 |
1744 |
PGA_MEMORY |
データベースに設定されたPGAターゲットの値。 |
580 |
INIT_PARAMS |
サービス・テンプレートに設定された初期化パラメータ値のリスト。値は、paramName=paramValue[,paramName=paramValue]として格納されます。 |
processes=150,cluster_database=FALSE,db_name=,open_cursors=300,sga_target=1828716544,db_block_size=8192,audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,diagnostic_dest={ORACLE_BASE},*.cpu_count=0,db_recovery_file_dest={ORACLE_BASE}/fast_recovery_area,log_archive_format=%t_%s_%r.dbf,compatible=11.2.0.0.0,audit_trail=DB,remote_login_passwordfile=EXCLUSIVE,undo_tablespace=UNDOTBS1,db_recovery_file_dest_size=4322230272,control_files=("{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl", "{ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}/control02.ctl"),pga_aggregate_target=608174080 |
DATABASE_TYPE |
リクエストの一部としてプロビジョニングされるデータベースのタイプ。 |
oracle_databaseまたはrac_database |
USER_NAME |
マスター・アカウントとして扱われ、リクエストされたデータベースへのログインに使用されるユーザー名(任意のOracleデフォルト・アカウント以外)。 |
Useracct1 |
INSTANCE_COUNT |
リクエストの対象がRACデータベースの場合に作成されるデータベース・インスタンスの数。 |
1 |
COMMON_DB_SID |
一意のデータベース名の生成に使用される、サービス・テンプレートで指定されたSID接頭辞。 |
db000000 |
COMMON_DOMAIN_NAME |
Enterprise Managerでのデータベース・ターゲットの作成に使用される、サービス・テンプレートで指定されたデータベース・ドメイン名。 |
Mycompany.com |
LISTENER_PORT |
データベースがアタッチされるホストのリスナーのポート番号。 |
1521 |
REF_ZONE |
検証で使用される参照ゾーン。 |
Myzone1 |
REF_POOL |
参照ゾーンで選択されるプール。 |
Mypool1 |
REF_HOST |
プールから選択される参照ホスト。 |
Myhost1.oracle.com |
REF_TGT |
プールから選択される参照ホスト |
Myhost1.oracle.com |
COMMON_GLOBAL_DB_NAME |
グローバル・データベース・ドメイン・ネーム。 |
db000000.myhost.oracle.com |
次の表に、DBaaSのリクエスト削除の前処理および後処理スクリプトの入力パラメータを示します。
表30-2 DBaaS: リクエスト削除の前処理および後処理スクリプトの入力パラメータ
変数名 | 説明 | ExampleDB |
---|---|---|
DB_SID |
削除対象に選択されたデータベースのデータベースSID。これは、データベースに接続するために使用できます。 |
db000000 |
HOST_NAME |
削除対象に選択されたDBが存在するホストの名前。 |
Myhost.oracle.com |
DATABASE_TGT_GUID |
削除対象に選択されたデータベースのGUID |
E9C5A1149C266846E04354B2F00A9D7B |
HOST_CREDS |
データベース・ホストにログインしてOracleホームにアクセスするための資格証明。 |
MYCREDS:DBAAS_ADMIN |
ROOT_CREDS |
プールの指定に従ってスーパーユーザーとしてホストにログインするためのルート資格証明。 |
MYROOTCREDS:DBAAS_ADMIN |
TARGET_GUID |
削除対象に選択されたデータベースのGUID。 |
E9C5A1149C266846E04354B2F00A9D7B |
BACKUP_ENABLED |
バックアップがスナップ・クローン・データベース・ターゲットに対して有効化されているかどうか。 |
True |
WORK_DIR |
削除に使用される一時作業ディレクトリ。 |
/tmp/workdir1 |
CUSTOM_DEL_PRE_SCRIPTS_URN |
スキーマの削除前に実行されるソフトウェア・ライブラリのディレクティブのURN。 |
oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1 |
CUSTOM_DEL_POST_SCRIPTS_URN |
スキーマの削除後に実行されるソフトウェア・ライブラリのディレクティブのURN。 |
oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1 |
次の表に、Schema as a Serviceのリクエスト作成の前処理および後処理スクリプトの入力パラメータを示します。
表30-3 SchaaS: リクエスト作成の前処理および後処理スクリプトの入力パラメータ
変数名 | 説明 | ExampleDB |
---|---|---|
ssaRequestID |
SSAユーザー・リクエストのリクエストID。 |
3 |
ssaUser |
SSAユーザー名。 |
Ssa_user1 |
ssaTargetName |
ゾーン・ターゲット名。 |
Myzone1 |
ssaTargetType |
ゾーン・ターゲット・タイプ。 |
Self_service_zone |
zoneTargetName |
ゾーン・ターゲット名。 |
Myzone1 |
zoneTargetType |
ゾーン・ターゲット・タイプ。 |
Self_service_zone |
SCHAAS_CUSTOM_PRE_SCRIPTS_URN |
スキーマ・ターゲットの作成前に実行されるソフトウェア・ライブラリのディレクティブのURN。 |
oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1 |
REQUEST_NAME |
リクエストの名前。 |
SYSMAN - Tue Oct 29 02:04:21 PDT 2013_CREATE_4_41 |
SERV_TEMPLATE_GUID |
サービス・テンプレートguid。 |
E9C5A1149C266846E04354B2F00A9D7B |
CREATE_SCHEMA_OPTION |
空のスキーマまたはプロファイルによるスキーマの作成を区別するオプション。可能な値は、EMPTY_SCHEMASまたはSCHEMAS_FROM_PROFILEです。 |
EMPTY_SCHEMAS |
MAX_NUMBER_OF_SCHEMAS |
ユーザーがプロファイルを選択しない場合に許可するスキーマの最大数。空のスキーマの作成オプションが選択されている場合にのみ適用されます。 |
4 |
MASTER_ACCOUNT |
選択されたスキーマのリストからのマスター・アカウント。 |
MySchema |
ROLE_NAME |
すべてのスキーマに割り当てられるデータベース・ロールの名前。 |
Mynewrole1 |
SCHEMA_PRIVILEGES |
ユーザー・アカウントに適用されるスキーマ権限のリスト。 |
CREATE VIEW, CREATE DIR |
ENFORCE_STORAGE_CONSTRAINT |
サービス・リクエストに記憶域制約を強制します。可能な値は、trueまたはfalseです。 |
True |
INITIAL_BLOCK_SIZE |
表領域の初期サイズ。 |
2048M |
AUTO_EXTEND_BLOCK_SIZE |
自動拡張ブロック・サイズ。 |
100M |
TABLESPACE_ENCRYPTION_ALGORITHM |
表領域の暗号化に使用されるアルゴリズム |
AES128 |
SHARED_STORAGE_LOCATION |
選択されたプールのホスト全体にダンプ・ファイルが配置される共有ステージングの場所。スキーマ作成オプションが既存のプロファイルに基づく設定である場合にのみ指定します。 |
/oradbnfs/dumpfiles/ |
DBSERVICE_NAME |
リクエスト中に提供されるデータベース・サービス名。 |
Service_88A370FC0FC1 |
DB_ORACLE_HOME_LOC |
新しいスキーマが作成されるデータベースのOracleホーム。 |
/scratch/aime/app/aime/11.2.0/dbhome_1 |
COMMON_DB_SID |
ホストでデータベースが接続できるサービスの名前。 |
Mydb1 |
REMAP_SCHEMA_LIST |
ターゲットに作成されるスキーマのリスト。 |
MySchema |
次の表に、Schema as a Serviceのリクエスト削除の前処理および後処理スクリプトの入力パラメータを示します。
表30-4 SchaaS: リクエスト削除の前処理および後処理スクリプトの入力パラメータ
変数名 | 説明 | 例 |
---|---|---|
DB_CONNECT_STRING |
データベースへの接続を確立するための接続文字列。 |
DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myhost.oracle.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED)(SID= Myservice1))) |
SCHEMA_NAME |
削除対象に選択されたスキーマの名前。 |
Myservice1 |
PERM_TABLESPACE_NAME |
プライマリ表領域。 |
Myschema1 |
HOST_NAME |
削除対象に選択されたDBが存在するホストの名前。 |
Myhost.oracle.com |
DATABASE_CREDS |
データベースに接続するために使用される名前付き資格証明。 |
MYDBCREDS:DBAAS_ADMIN |
GI_CREDS |
RACの場合にグリッド・インフラストラクチャに接続するために使用される名前付き資格証明。 |
MYHOSTCREDS:DBAAS_ADMIN |
WORK_DIR |
一時作業ディレクトリ |
/tmp/myworkdir1 |
CUSTOM_DEL_PRE_SCRIPTS_URN |
スキーマの削除前に実行されるソフトウェア・ライブラリのディレクティブのURN |
oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1 |
CUSTOM_DEL_POST_SCRIPTS_URN |
スキーマの削除後に実行されるソフトウェア・ライブラリのディレクティブのURN |
oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1 |
次の表に、PDB as a Serviceのリクエスト作成の前処理および後処理スクリプトの入力パラメータを示します。
表30-5 PDBaaS: リクエスト作成の前処理および後処理スクリプトの入力パラメータ
変数名 | 説明 | 例 |
---|---|---|
ssaRequestId |
SSAユーザー・リクエストのリクエストID。 |
3 |
ssaUser |
SSAユーザー名。 |
Ssa_user1 |
ssaTargetName |
ゾーン・ターゲット名。 |
Myzone1 |
ssaTargetType |
ゾーン・ターゲット・タイプ。 |
Self_service_zone |
PDBAAS_CUSTOM_PRE_SCRIPTS_URN |
PDBターゲットの作成前に実行されるソフトウェア・ライブラリのディレクティブのURN。 |
oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1 |
PDBAAS_CUSTOM_POST_SCRIPTS_URN |
PDBターゲットの作成後に実行されるソフトウェア・ライブラリのディレクティブのURN。 |
oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1 |
CREATE_PDB_OPTION |
空のPDBまたはプロファイルによるPDBが含まれるプラガブル・データベースを作成するオプション。可能な値は、EMPTY_PDBまたはPDB_FROM_PROFILEです。 |
EMPTY_PDB |
PDB_CONNECT_STRING |
プラガブル・データベースへの接続を確立するための接続文字列。 |
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost.mycompany.com)(PORT=1531)))(CONNECT_DATA=(SERVICE_NAME=svc_mypdb)(INSTANCE_NAME=CDB01)(UR=A)(SERVER=DEDICATED))) |
PDB_NAME |
作成されるPDBターゲットの名前。 |
mypdb |
CDB_CONNECT_STRING |
コンテナ・データベースへの接続を確立するための接続文字列。 |
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost.mycompany.com)(PORT=1531)))(CONNECT_DATA=(SID=CDB01))) |
MAX_TABLESPACE_ALLOWED |
Pluggable Database as a Serviceで許可される表領域の最大数。 |
10 |
ENFORCE_STORAGE_CONSTRAINT |
サービス・リクエストに記憶域制約を強制します。可能な値は、trueまたはfalseです。 |
True |
TABLESPACE_ENCRYPTION_ALGORITHM |
表領域の暗号化に使用されるアルゴリズム。 |
AES128 |
TABLESPACE_SIZE |
一意のデータベース名の生成に使用される、サービス・テンプレートで指定されたSID接頭辞。 |
mydb |
PDB_SID_PREFIX |
新しいプラガブル・データベースのSID接頭辞。 |
Mypdb1 |
SHARED_STAGE_LOCATION |
選択されたプールのホスト全体にダンプ・ファイルが配置される共有ステージングの場所。 |
/oradbnfs/dumpfiles/ |
PDB_ADMIN_USER_NAME |
新しいプラガブル・データベースの管理者ユーザー名。 |
Myadmin |
PDB_SERVICE_NAME_PREFIX |
プラガブル・データベースのサービス名の接頭辞。 |
Service |
PDBSERVICE_NAME |
プラガブル・データベースのサービス名。 |
Service_000 |
DB_ORACLE_HOME_LOC |
新しいスキーマが作成されるデータベースのOracleホーム。 |
/scratch/aime/app/aime/11.2.0/dbhome_1 |
COMMON_DB_SID |
ホストでデータベースが接続できるサービスの名前。 |
Mydb1 |
ROLE_OPTION |
プラガブル・データベース管理者に割り当てられる「カスタム新規ロール/既存のロールのロール・オプション」。 |
CUSTOM_NEW_ROLE |
INIT_PARAMS |
サービス・テンプレートに設定された初期化パラメータ値のリスト。値は、paramName=paramValue[,paramName=paramValue]として格納されます。 |
*.open_cursors 300,*.cursor_sharing EXACT |
CUSTOM_ROLE_NAME |
プラガブル・データベース管理者に割り当てられるデータベース・ロールの名前。 |
PDBAAS_OCT_29_2013_02_27_AM |
CUSTOM_ROLE_DESC |
作成される新しいロールの説明。 |
プラガブル・データベース管理者に割り当てられる新しいDBロール。 |
PRIVILEGES |
プラガブル・データベース管理者に適用されるカスタム新規ロールの権限のリスト。 |
CREATE SESSION, ALTER SESSION, CREATE DIMENSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE, CREATE ANY SEQUENCE, CREATE ANY INDEX, CREATE JOB, CREATE ANY MATERIALIZED VIEW, CREATE ANY TABLE, CREATE ANY TRIGGER, CREATE ANY TYPE, CREATE ANY VIEW, CREATE ANY SYNONYM, CREATE ANY DIRECTORY, SELECT ANY DICTIONARY |
ROLES |
すべてのスキーマに割り当てられるデータベース・ロールの名前。 |
Mynewrole1 |
DB_ORACLE_HOME_LOC |
選択されたコンテナ・データベースのOracleホーム。 |
/scratch/aime/oraclehomes/dbbase/121010/dbhome1 |
COMMON_DB_SID |
新しいPDBの作成場所となる選択されたコンテナ・データベースのデータベースSID。 |
cdb |
次の表に、PDB as a Serviceのリクエスト削除の前処理および後処理スクリプトの入力パラメータを示します。
表30-6 SchaaS: リクエスト削除の前処理および後処理スクリプトの入力パラメータ
変数名 | 説明 | 例 |
---|---|---|
DB_CONNECT_STRING |
データベースへの接続を確立するための接続文字列。 |
DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myhost.oracle.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED)(SID= mypdb0001))) |
PDB_NAME |
削除対象に選択されたPDBターゲットの名前。 |
Mypdb001 |
HOST_NAME |
削除対象に選択されたPDBが存在するホストの名前。 |
Myhost.oracle.com |
DATABASE_CREDS |
データベースに接続するために使用される名前付き資格証明。 |
MYDBCREDS:DBAAS_ADMIN |
GI_CREDS |
RACの場合にグリッド・インフラストラクチャに接続するために使用される名前付き資格証明。 |
MYHOSTCREDS:DBAAS_ADMIN |
WORK_DIR |
一時作業ディレクトリ |
/tmp/myworkdir1 |
CUSTOM_DEL_PRE_SCRIPTS_URN |
PDBターゲットの削除前に実行されるソフトウェア・ライブラリのディレクティブのURN。 |
oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1 |
CUSTOM_DEL_POST_SCRIPTS_URN |
PDBターゲットの削除後に実行されるソフトウェア・ライブラリのディレクティブのURN。 |
oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1 |
この項には、DBaaS、Schema as ServiceおよびPDB as a Serviceのいくつかのサンプル入力ファイルが含まれます。
例30-1 DBaaSのサンプル入力ファイル
ssaRequestId=2 ssaUser=ssa_user1 ssaTargetName=My Zone ssaTargetType=self_service_zone zoneTargetName=My Zone zoneTargetType=self_service_zone SEL_HOST=myhost.oracle.com MEM_SIZE=2324 STORAGE_SIZE=2324 HOST_CREDS=AIME:SYSMAN INIT_PARAMS=processes=150,cluster_database=FALSE,db_name=,open_cursors=300, sga_target=1828716544,db_block_size=8192,audit_file_dest={ORACLE_BASE}/admin/ {DB_UNIQUE_NAME}/adump,diagnostic_dest={ORACLE_BASE},*.cpu_count=0,db_recovery _file_dest={ORACLE_BASE}/fast_recovery_area,log_archive_format=%t_%s _%r.dbf,compatible=11.2.0.0.0,audit_trail=DB,remote_login _passwordfile=EXCLUSIVE,undo_tablespace=UNDOTBS1,db_recovery_file_dest _size=4322230272,control_files=("{ORACLE_BASE}/oradata/{DB_UNIQUE _NAME}/control01.ctl", "{ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE _NAME}/control02.ctl"),pga_aggregate_target=608174080 PROFILE_COMPONENT_URN=oracle:defaultService:em:provisioning:1:cmp:COMP _Component:SUB_DbProfile:E9C8A650EFA5291DE04354B2F00AFF3E:0.1 DATABASE_TYPE=oracle_database WORK_DIR=/tmp DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN=oracle:defaultService:em:provisioning:1:cmp:COMP _Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1 USER_NAME=rv INSTANCE_COUNT=2 DB_ADMIN_PASSWORD_SAME=true COMMON_DB_SID=db000000 COMMON_DOMAIN_NAME=mycompany.com LISTENER_PORT=1527 COMMON_GLOBAL_DB_NAME=db000000.myhost.oracle.com DB_ORACLE_HOME_LOC=/scratch/aime/oraclehomes/dbbase/112030/dbhome1 DB_ORACLE_BASE_LOC=/scratch/aime/oraclehomes/dbbase TOTAL_MEMORY=0 SGA_MEMORY=1744 PGA_MEMORY=580 MEM_SIZE=2324 STORAGE_SIZE=2324 REF_ZONE=My Zone REF_POOL=dbpool1 REF_HOST=myhost.oracle.com REF_TGT= myhost.oracle.com
例30-2 サンプルSQLスクリプト
REM --- your custom sql script --- REM --- sample: select * from v$database --- REM --- If there are more that one sql file all files can be uploaded to the same component, and be called from the main script using @/<staging location>/sqlfile1.sql ----
例30-3 Schema as a Serviceのサンプル入力ファイル
ssaRequestId=1 ssaUser=SYSMAN ssaTargetName=My Zone ssaTargetType=self_service_zone zoneTargetName=My Zone zoneTargetType=self_service_zone REQUEST_NAME=SYSMAN - Tue Oct 29 02:04:21 PDT 2013_CREATE_4_41 SERV_TEMPLATE_GUID=E9C5A1149C266846E04354B2F00A9D7B CREATE_SCHEMA_OPTION=EMPTY_SCHEMAS MAX_NUMBER_OF_SCHEMAS=4 REMAP_SCHEMA_LIST=MySchema MASTER_ACCOUNT=MySchema ROLE_NAME=schtemplate1_Oct_29_2013_02 SCHEMA_PRIVILEGES=CREATE SESSION,CREATE DIMENSION,CREATE INDEXTYPE,CREATE OPERATOR,CREATE PROCEDURE,CREATE SEQUENCE,CREATE TABLE,CREATE TRIGGER,CREATE TYPE,CREATE VIEW,CREATE SYNONYM ENFORCE_STORAGE_CONSTRAINT=false SCHAAS_CUSTOM_PRE_SCRIPTS_URN=oracle:defaultService:em:provisioning:1:cmp:COMP _Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1 DBSERVICE_NAME=Service_88A370FC0FC1 DB_ORACLE_HOME_LOC=/scratch/aime/oraclehomes/dbbase/112030/dbhome1 COMMON_DB_SID=refdb
例30-4 PDB as a Serviceのサンプル入力ファイル
ssaRequestId=3 ssaUser=SYSMAN ssaTargetName=My Zone ssaTargetType=self_service_zone zoneTargetName=My Zone zoneTargetType=self_service_zone CREATE_PDB_OPTION=EMPTY_PDB MAX_TABLESPACE_ALLOWED=2 ENFORCE_STORAGE_CONSTRAINT=true TABLESPACE_ENCRYPTION_ALGORITHM=None PDBAAS_CUSTOM_POST_SCRIPTS_URN=oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:0008270085383BBDE0535C56F20AB27E:0.5 PDB_SID_PREFIX=PDB PDB_ADMIN_USER_NAME=oracle PDB_SERVICE_NAME_PREFIX=svc_pdbps1 PDBSERVICE_NAME=svc_pdbps1 ROLE_OPTION=CUSTOM_NEW_ROLE INIT_PARAMS=*.open_cursors=300,*.cursor_sharing=EXACT CUSTOM_ROLE_NAME=PDBAAS_JUN_12_2014_23_16_PM CUSTOM_ROLE_DESC=New db role to be assigned to pluggable database administrator. PRIVILEGES=CREATE SESSION,ALTER SESSION,CREATE DIMENSION,CREATE INDEXTYPE,CREATE ANY OPERATOR,CREATE ANY PROCEDURE,CREATE ANY SEQUENCE,CREATE ANY INDEX,CREATE JOB,CREATE ANY MATERIALIZED VIEW,CREATE ANY TABLE, CREATE ANY TRIGGER, CREATE ANY TYPE, CREATE ANY VIEW, CREATE ANY SYNONYM, CREATE ANY DIRECTORY, SELECT ANY DICTIONARY DB_ORACLE_HOME_LOC=/scratch/12c_rdbms/product/12.1.0/dbhome_1 COMMON_DB_SID=CDB06 PDB_NAME=pdbps1 PDB_CONNECT_STRING=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=xx.example.com)(PORT=1531)))(CONNECT_DATA=(SERVICE_NAME=svc_pdbps1)(INSTANCE_NAME=CDB06)(UR=A)(SERVER=DEDICATED))) CDB_CONNECT_STRING=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=xx.example.com)(PORT=1531)))(CONNECT_DATA=(SID=CDB06)))
この項では、PerlとSQLのPDBaaS用サンプル・スクリプトを示します。
例30-5 サンプルPDBaaS Perlスクリプト
use Getopt::Long; use File::Path; use File::Spec; #Store the passed input file path in a variable my $fileName = $ARGV[0]; #Print the input file content as it is... print "Printing the variable values received from cloud request ...\n"; open IN,"<",$fileName or die "Can't open file due to :$!"; while(<>){ print $_; } close IN; #Reads a text file with var=values pairs line delimited #Setting the values in the environment sub readDat { #Grab the passed parameter my $filename = $_[0]; my @Data; #The ubiquitous $i counter my $i = 0; #Register a filehandle local (*DATFILE); #Open the file for read open (DATFILE, $filename) or print ( "Can't open $filename: $1"); #Read through the file one line at a time FORA:while (<DATFILE>) { #Skip over any comments if ( /#.*/ ) { next FORA; } #Clean up any extraneous garbage chomp; # no newline s/^\s+//; # no leading white s/\s+$//; # no trailing white # If clean up eliminated any data worth reading #l ets skip to the next line next unless length; # We can't load the lines with $VARS as we will #loose any values so we'll make sure to escape them #(the $'s that is) s/\$/\\\$/g; #localizing $var and $value to make sure # they are clean out on every read. my ($var, $value) = split(/=/,$_); # Load variable into enviroment $ENV{$var}="$value"; $i++; } } print "Loading custom variables into ENV..\n"; readDat("custom_sample_variables.txt"); print "Print custom variables...\n"; print "VAR1=" . $ENV{'VAR1'} . "\n" ; print "VAR2=" . $ENV{'VAR2'} . "\n"; print "VAR3=" . $ENV{'VAR3'} . "\n"; print "Loading cloud variables into ENV..\n"; readDat($fileName); my $service_name="$ENV{'COMMON_DB_SID'}"; $ENV{"ORACLE_HOME"}="$ENV{'DB_ORACLE_HOME_LOC'}"; #find sid by parsing pmon process. my $pmon_ora = ".*pmon_".$service_name.".*"; my $process = `ps -eaf |grep $pmon_ora |grep -v grep`; chomp($process); my $sid = ( split "pmon_", $process )[ -1 ]; $ENV{"ORACLE_SID"}= $sid; print "Executing attached SQL ...\n"; my $CMD = $ENV{"ORACLE_HOME"} . "/bin/sqlplus / as sysdba \@sample.sql $ENV{\"PDB_NAME\"}"; print "Firing SQL ...\n"; print "$CMD\n"; system($CMD); my $ERROR_CODE = $?; print "Error code is $ERROR_CODE \n"; if ( $ERROR_CODE == 0 ) { print "Script Completed\n"; } else { print "Error occured while executing \n"; }
例30-6 サンプルPDBaaS SQLスクリプト
alter session set container=&1; REM --- you custom sql goes here --- select name, con_id from v$pdbs; exit;
例30-7 サンプルPDBaaS RACスクリプト
alter session set container=&1; REM --- you custom sql goes here --- select name, con_id from gv$pdbs; exit;