![]() 前へ |
![]() 次へ |
このトピックには、次の項目が含まれます。
<drive>:¥Program Files¥Qarbon¥viewlet Builder3jre¥lib¥fontsにフォントが見つかりません
IMP-00003: Oracleエラー30371が発生しました。ORA-30371: 同じ列で2ディメンション以上のレベルを定義することはできません。
ORA-04020 オブジェクトをロックしようとしてデッドロックを検出しました。またはORA-04021 オブジェクトのロック待ちでタイムアウトが発生しました
原因と処置
reset_owbcc_home.sqlの実行中にOWB_HOMEの入力を求められたとき、OWB_HOMEの無効なパスを入力しました。WindowsとUNIXを含むすべてのプラットフォームでは、入力するパスでスラッシュを使用し、大文字と小文字を区別する必要があります。ここで入力したパスは、オペレーティング・システムで認識されるWarehouse Builderホームのパスとの間で、大文字と小文字が完全に一致している必要があります。
UNIXの場合、入力する正しいパスとして、OWN_HOMEディレクトリのパスを入力してください。Windowsの場合、OWN_HOMEディレクトリの正しいパスを判断するには、デフォルトのWindowsコマンド・プロンプトの一部として表示されるパスを確認し、バックスラッシュをUNIXスタイルのスラッシュに置き換えます。末尾にはスラッシュを指定しません。たとえば、Windowsコマンド・プロンプトが次のとおりであるとします。
C:¥Oracle¥My_OWB_Home¥>
この場合、入力するテキストは次のようになります。
C:/Oracle/My_OWB_Home
SYSユーザーにSYSDBA資格証明およびREMOTE_LOGIN_PASSWORDFILE=EXCLUSIVEが付与されています。次のCONNECT文を発行して、資格証明を確認できます。
SQL> CONNECT sys@tns_name_of_db AS SYSDBA;
パスワードの入力: sys_password
データベースがREMOTE_LOGIN_PASSWORDFILE=NONEを使用して構成されていると、文が失敗します。
次の文でデータベースを再構成します。
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE。存在しない場合はパスワード・ファイルを作成します。
前の項目がオプションにない場合、次の項目を使用してデータベースを再構成します。
O7_DICTIONARY_ACCESSIBILITY=TRUE
start_service.sqlを使用して、サーバー・ホスト上でサービスを開始できます。
サーバー・ホスト上でサービスを実行できない場合は、local_service_login.shまたはlocal_service_login.batのいずれか適切なスクリプトを使用して、ローカル・コンピュータ上でコントロール・センター・サービスを開始します。このスクリプトは次のように使用します。
local_service_login.sh [-startup | -closedown] OWB_HOME
このモードでは、コントロール・センター・サービスはローカル・コンピュータ上で実行され、そのコンピュータが使用可能で「コントロール・センター」に接続可能な場合のみ使用できます。
サービスのステータスを判断するには、スクリプトshow_service.sqlを使用します。
NAMESPACESERVICEIMPLが無効である可能性があります。リポジトリ所有者にSYS.V_$SESSIONに対するSELECT権限がない場合は、Warehouse Builderリポジトリ・スキーマに対するデータベースのエクスポートまたはインポートの後にこのエラーが発生します。原因は次の手順で診断できます。
SQL*Plusで、Warehouse Builderリポジトリ・スキーマに接続します。
SQLプロンプトで、次のコマンドを入力します。
ALTER PACKAGE NAMESPACESERVICEIMPL compile body;
警告: パッケージ本体がコンパイル・エラーによって変更されましたが表示された場合は、SQLプロンプトで次のコマンドを入力します。
show errors;
次のエラーは、Warehouse Builderリポジトリ所有者にSYS.V_$SESSIONに対するSELECT権限がないことを意味します。
PL/SQL: SQL statement ignored PLS-00201: Identifier 'SYS.V_$SESSION' must be declared
SQL*Plusで、SYSユーザーとして接続します。
SQLプロンプトで、次のコマンドを入力します。
grant SELECT on V_$SESSION to Warehouse Builder_Repository_Owner;
Repository_Ownerに接続します。
SQLプロンプトで、次のコマンドを入力します。
alter package NAMESPACESERVICEIMPL compile;
SYSユーザーにはSYSDBA資格証明があります。これは、SQL*Plusで次のconnect文を発行して確認できます。
connect sys/sys_password@TNS_NAME_OF_DB as sysdba;
標準データベース・インストールでは、REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVEであるために前述のconnect文が有効であり、デフォルトのパスワード・ファイルがインストール・プロセスによって作成されます。
データベースが次の文を使用して構成されているとします。
REMOTE_LOGIN_PASSWORDFILE=NONE。この場合、次の文が失敗します。
connect sys/sys_password@TNS_NAME_OF_DB as sysdba;
この場合、2つの選択肢があります。
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE。存在しない場合はパスワード・ファイルを作成します。
O7_DICTIONARY_ACCESSIBILITY=TRUE。この設定では、次の文を使用します。
connect sys/sys_password@TNS_NAME_OF_DB。この文が実行されると、Warehouse BuilderアシスタントはSYSユーザーに接続します。
NAS_DATAディレクトリに正常に抽出したことを確認します。
OWB_HOMEから、Name and Addressサーバーを開始します。
Windowsの場合は、owb¥bin¥win32¥NAStart.batを実行します。
UNIXの場合は、owb/bin/unix/NASTART.shを実行します。
ログ・ファイルowb¥bin¥admin¥NASvr.logを開きます。
ログには、インストール済の国のリストが表示されます。
このリストが表示されない場合は、リージョナル・ライブラリ・データを正しいロケーションに抽出したことを確認します。データを誤ったロケーションに抽出している場合は、データを再インストールするか、正しいファイル・パスを指すようにowb¥bin¥admin¥NameAddr.propertiesファイルを変更します。NameAddr.propertiesファイルを変更した場合は、次のようにName and Addressサーバーを停止して再起動します。
Windowsの場合、サーバーを開始するにはowb¥bin¥win32¥NAStart.batを実行します。サーバーを停止するにはowb¥bin¥win32¥NAStop.batを実行します。
UNIXの場合、サーバーを開始するにはowb/bin/unix/NAStart.shを実行します。サーバーを停止するにはowb/bin/unix/NAStop.shを実行します。
インストールを確認した後、Name and AddressサーバーはName and Address演算子を使用するマッピングの実行時に自動的に開始されるため、必要に応じて停止できます。
「自動エクステント」が「オン」に設定されていることを確認します。
|
注意: タスクを実行するためEnterprise Managerを使用する権限をOWBリポジトリ・ユーザーに付与するには、SQL*Plusで次のコマンドを入力します。GRANT SELECT any dictionary to "&OWB repository user"; |
owbclient.batファイルの-mxパラメータに定義された最大ヒープ・サイズを使用して実行されます。owbclient.batファイルの-Dlimitパラメータは、Warehouse Builderメモリー・マネージャがJavaガベージ・コレクションの支援を開始するメモリーしきい値(Dlimitの80%)を指定します。-mxパラメータ値を変更した場合は、-Dlimitパラメータを同じ値または値の90%以上に設定します。-Dlimitをこれより低い値に設定すると、Warehouse Builderのパフォーマンスに悪影響を与える場合があります。-Dlimitパラメータを増やします。
Warehouse Builderを終了します。
このファイルをテキスト・エディタで開きます。
Windowsの場合は、$OWBHOME¥bin¥win32¥ombplus.batを開きます。
UNIXの場合は、$OWBHOME¥bin¥win32¥owbclient.shを開きます。
-Dlimitパラメータを334に変更します。
保存してファイルを閉じます。
Warehouse Builderを再起動します。
MAX_ENABLED_ROLESパラメータの値を超えると発生します。init.oraファイルのMAX_ENABLED_ROLESパラメータの値を増やします。リポジトリまたはターゲット・スキーマを削除すると、関連付けられたロールも削除されます。SQL*PlusからSYSユーザーに接続します。
Create user test_lj identified by test_lj; Grant connect, resource to test_lj;
次の内容でOWB_HOME/owb/bin/unix/test.shを作成します。
../unix/loadjava -thin -verbose -order -resolve -user 'test_lj/test_lj@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hpdgpa3)(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=dgpadw)))' ../../lib/int/rtpserver.jar
ディレクトリをOWB_HOME/owb/bin/unix/に変更します。
test.shを実行します。
OWB_HOMEからTNS名にアクセスできるようにすることが必要です。アクセスできるようにするには、OWB_HOMEからNet Configuration Assistantを実行した後で、コントロール・センター・サービスを再起動します。
データベース・リンク用にTNS名を設定するには、データベース・サーバー・ホームからTNS名にアクセスできるようにすることが必要です。このようにするには、データベース・サーバー・ホームからNet Configuration Assistantを実行します。
SERVICE_NAMEが、TNSNAMES.ORA内のネット・サービス名エントリのCONNECT_DATAセクションのサブ句として追加されます。これによって、以前のデータベース・リリース(例、Oracle Database8i(8.1.x))の(SID=SIDname)サブ句が置換されます。TNSNAMES.ORAファイルを実装します。
個別のサービスとして識別するSIDごとに、LISTENER.ORAのGLOBAL_DBNAMEパラメータを使用します。このパラメータの値をSERVICE_NAMEパラメータの値として使用します。この処置のためにLISTENER.ORAに対して行った変更を有効にするには、リスナー・プロセスを停止して再起動する必要があります。
INIT.ORAに存在するパラメータSERVICE_NAMESおよびDB_DOMAINの値を使用して、TNSNAMES.ORAで使用するSERVICE_NAMEの値を決定します。この値の有効な構造はSERVICE_NAMES.DB_DOMAINで、2つのINIT.ORA値をピリオドで区切ります。たとえば、SERVICE_NAMESがBIKESでDB_DOMAINがCOMの場合、SERVICE_NAMEはBIKES.COMになります。
DB_DOMAINパラメータがINIT.ORAに設定されていない場合、またはGLOBAL_DBNAMEがLISTENER.ORAにない場合は、INIT.ORAのSERVICE_NAMESをTNSNAMES.ORAでSERVICE_NAMEパラメータに対して使用できます。
たとえば、INIT.ORAにSERVICE_NAMES = "TEST817"が含まれ、db_domainが設定されていない場合、TNSNAMES.ORAエントリはCONNECT_DATA =(SERVICE_NAME = "TEST817"))となります。
init.oraのSERVICE_NAMESパラメータに複数の値を指定した場合、使用できるのはいずれか1つの値です。SERVICE_NAMESが設定されていない場合は、INIT.ORAファイル内のDB_NAME.DB_DOMAINパラメータを使用できます。
SERVICE_NAMESおよびDB_DOMAINがINIT.ORAに設定されておらず、GLOBAL_DBNAMEがLISTENER.ORAにない場合、TNSNAMES.ORAファイルのSERVICE_NAMEはDB_NAMEになります。
SYSユーザーとしてログインし、コマンドSELECT * FROM GLOBAL_NAME;を入力すると、原因を確認できます。古いデータベースのグローバル名が新しいデータベースのグローバル名と一致していない場合に、ドメインの不一致によってこのエラーが発生します。ALTER DATABASE RENAME GLOBAL_NAME TO xxx10G.US.ORACLE.COM;の文のようなコマンドを発行して新しいデータベースの「グローバル名」にドメイン名を追加するか、コネクタを再配布します。
コネクタの配布の詳細は、Oracle Warehouse Builderユーザーズ・ガイドを参照してください。
select_catalog_role権限で作成されます。複数のWarehouse Builderターゲット・スキーマで同じディメンション・オブジェクトを定義すると、Oracle Exportによって複製がエクスポート・ファイルに作成されるため、インポート時にこのエラーが発生します。SYSユーザーとして接続します。
SQL*Plusでrevoke select_catalog_role from OLD_Target_Schema;という文を入力します。
ターゲット・スキーマをOracle.DMPファイルに再度エクスポートし、Oracle Databaseにインポートします。
ORACLE_HOMEとPATHが正しく設定されていることを確認します。Oracleホーム・ディレクトリはOWB_HOMEを指し示している必要があります。PATH変数は、OWB_HOME¥binディレクトリを、他のOracle製品よりも前に含むように設定します。
TNSNames.oraファイルが正しく構成されていることを確認します。
Windowsの場合は、Oracle Databaseプログラム・グループからNet Configuration Assistantを開始し、「ローカル・ネット・サービス名構成」を選択してTNSNames.oraを構成します。
UNIXの場合は、ORACLE_HOMEとPATHをWarehouse Builder 11gリリース2(11.2)用のOWB_HOMEに設定し、OWB_HOME/bin/netcaを実行してNet Configuration Assistantを開始します。「ローカル・ネット・サービス名構成」を選択してTNSNames.oraを構成します。
sys.dbms_aqをロックしようとすると、ランタイム・アシスタントが停止してエラー・ログにこれらのエラーが作成されます。SYSユーザーとしてログインし、次の例に示すような問合せを使用して、アドバンスト・キュー・パッケージをPinしているユーザー・セッションを識別します。
column s.sid format a5;
column s.serial# format a8;
column s.username format a10;
column objectname format a10;
select distinct
s.sid,
s.serial#,
s.username,
x.kglnaobj as objectname
from
dba_kgllock l,
v$session s,
x$kgllk x
where
l.kgllktype = 'Pin' and
s.saddr = l.kgllkuse and
s.saddr = x.kgllkuse and
x.kglnaobj in ('DBMS_AQ', 'DBMS_AQADM');
次に、表示される出力の例を示します。
SID SERIAL# USERNAME OBJECTNAME --- ------- -------- ---------- 9 29623 RTU_4942 DBMS_AQ
SIDおよびシリアル番号をメモし、次のコマンドを発行してユーザー・セッションを強制終了します。
ALTER SYSTEM KILL SESSION 'SIDNoted, SerialNumberNoted';
たとえば、このエラーの出力例に表示されたセッションを中断するには、次のコマンドを入力します。
ALTER SYSTEM KILL SESSION '9,29623';