データベース・ドメイン名にA-Z (文字)、0-9 (数値)、_ (アンダースコア)、# (ハッシュ)、$ (ドル)、. (ピリオド)または@ (単価)以外の文字が含まれている場合、スイッチオーバー操作のRun Presync手順が失敗し、次のエラーがemoms.trc
トレース・ファイルに表示される可能性があります。たとえば、データベース・ドメイン名にハイフン(-)が含まれている場合に次の問題が発生します。
ORA-20000: Found exception Error Message :ORA-02083: database name has illegal character '-' Error Number ;-2083
この付録では、まだアップグレードを開始していない場合のこのエラーの回避方法、およびアップグレードを開始している場合や「アップグレードされたOracle Management Repositoryリンクの作成」ページにエラーが表示される場合のこのエラーを回避するための方法について説明します。
この項の具体的な内容は次のとおりです。
データベース・リンクの問題を回避するには、前提条件として、次の手順に従います。
新旧両方の管理リポジトリで、SYSユーザーとして次のSQLコマンドを実行します。
ドメイン名を確認します。
show parameters db_domain;
ドメイン名にA-Z (文字)、0-9 (数値)、_ (アンダースコア)、# (ハッシュ)、$ (ドル)、. (ピリオド)または@ (単価)以外の文字(たとえば、-(ハイフン)など)が含まれている場合は、ドメイン名を変更します。
alter system set db_domain='<domain_name_with_illegal_char_replaced_with_legal_char>' scope=spfile sid='*';
サービス名を確認します。
show parameters service_names;
サービス名にA-Z (文字)、0-9 (数値)、_ (アンダースコア)、# (ハッシュ)、$ (ドル)、. (ピリオド)または@ (単価)以外の文字(たとえば、-(ハイフン)など)が含まれている場合は、サービス名を変更します。
alter system set service_names='service_name_with_illegal_char_replaced_with_legal_char' scope=both sid='*';
グローバル名を確認します。
select * from global_name;
グローバル名にA-Z (文字)、0-9 (数値)、_ (アンダースコア)、# (ハッシュ)、$ (ドル)、. (ピリオド)または@ (単価)以外の文字(たとえば、-(ハイフン)など)が含まれている場合は、グローバル名を変更します。
alter database rename GLOBAL_NAME to "global_name_with_illegal_char_replaced_with_legal_char";
次のファイルのSERVICE_NAME
値を変更または修正したサービス名で更新します。
$<DB_HOME>/network/admin/listener.ora
$<DB_HOME>/network/admin/tnsnames.ora
新旧両方のOMSで、次の手順を実行します。
OMSの接続識別子を確認します。
$<OMS_HOME>/bin/emctl config oms -list_repos_details
接続識別子のサービス名にA-Z (文字)、0-9 (数値)、_ (アンダースコア)、# (ハッシュ)、$ (ドル)、. (ピリオド)または@ (単価)以外の文字(たとえば、-(ハイフン)など)が含まれている場合は、接続識別子を変更します。
$<OMS_HOME>/bin/emctl config oms -store_repos_details -repos_conndesc '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = example.com)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = service_name_with_illegal_char_replaced_with_legal_char)))' -repos_user sysman
OMSを再起動します。
$<OMS_HOME>/bin/emctl stop oms -all
$<OMS_HOME>/bin/emctl start oms
データベースを再起動します。
SQL>shutdown immediate;
SQL>start the database
アップグレード前コンソールの「アップグレード済リポジトリへのリンクの作成」ページにエラーが表示される場合にデータベース・リンクの問題を解決するには、次のコマンドをSYSユーザーとして実行します。
データベース・リンクを削除します。
データベース・リンクが古いリポジトリにすでに作成されている場合は、次のコマンドを実行します。
drop public database link PREUPGTO_NG_LINK;
データベース・リンクが新しいリポジトリにすでに作成されている場合は、次のコマンドを実行します。
drop public database link PREUPG_EMREPO_LINK;
新旧両方の管理リポジトリで、SYSユーザーとして次のSQLコマンドを実行します。
ドメイン名を確認します。
show parameters db_domain;
ドメイン名にA-Z (文字)、0-9 (数値)、_ (アンダースコア)、# (ハッシュ)、$ (ドル)、. (ピリオド)または@ (単価)以外の文字(たとえば、-(ハイフン)など)が含まれている場合は、ドメイン名を変更します。
alter system set db_domain='domain_name_with_illegal_char_replaced_with_legal_char' scope=spfile sid='*';
サービス名を確認します。
show parameters service_names;
サービス名にA-Z (文字)、0-9 (数値)、_ (アンダースコア)、# (ハッシュ)、$ (ドル)、. (ピリオド)または@ (単価)以外の文字(たとえば、-(ハイフン)など)が含まれている場合は、サービス名を変更します。
alter system set service_names='service_name_with_illegal_char_replaced_with_legal_char' scope=both sid='*';
グローバル名を確認します。
select * from global_name;
グローバル名にA-Z (文字)、0-9 (数値)、_ (アンダースコア)、# (ハッシュ)、$ (ドル)、. (ピリオド)または@ (単価)以外の文字(たとえば、-(ハイフン)など)が含まれている場合は、グローバル名を変更します。
alter database rename GLOBAL_NAME to "global_name_with_illegal_char_replaced_with_legal_char";
次のファイルのSERVICE_NAME値を変更または修正したサービス名で更新します。
$<DB_HOME>/network/admin/listener.ora
$<DB_HOME>/network/admin/tnsnames.ora
新旧両方のOMSで、次の手順を実行します。
OMSの接続識別子を確認します。
11gおよび12cのOMSでは、次のコマンドを実行します。
$<OMS_HOME>/bin/emctl config oms -list_repos_details
10gのOMSでは、emoms.properties
ファイルを開きます。
接続識別子のサービス名にA-Z (文字)、0-9 (数値)、_ (アンダースコア)、# (ハッシュ)、$ (ドル)、. (ピリオド)または@ (単価)以外の文字(たとえば、-(ハイフン)など)が含まれている場合は、接続識別子を変更します。
11gおよび12cのOMSでは、次のコマンドを実行します。
$<OMS_HOME>/bin/emctl config oms -store_repos_details -repos_conndesc '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = example.com)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = service_name_with_illegal_char_replaced_with_legal_char)))' -repos_user sysman
10gのOMSでは、emoms.properties
ファイルの接続識別子を直接編集して、ファイルを保存します。
OMSを再起動します。
$<OMS_HOME>/bin/emctl stop oms -all
$<OMS_HOME>/bin/emctl start oms
データベースを再起動します。
SQL>shutdown immediate;
SQL>start the database
アップグレード前コンソールの「アップグレード済リポジトリへのリンクの作成」ページで、データベース・リンクを作成または再作成します。詳細は、12.2項を参照してください。
新しい管理リポジトリにデータベース・リンクを作成します。
グローバル名のパラメータを確認します。
show parameters global_names;
global_names
がFALSE
に設定されている場合は、データベース・リンク名PREUPG_EMREPO_LINKを使用します。TRUE
に設定されている場合は、データベース・リンク名<value_of_"select * from global_name"_from_the_old_Management_Repository>を使用します。
データベース・リンクを使用するために、次のコマンドを実行します。
CREATE PUBLIC DATABASE LINK <db_link_name> CONNECT TO SYSMAN IDENTIFIED BY welcome1 using '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=example.com)(PORT=1521)))(CONNECT_DATA=(SID=orcl)))';
新しい管理リポジトリ内のデータベース・リンク名を更新します。
UPDATE sysman.MGMT_UPGRADEUTIL_PROPS SET property_value='<db_link_name>' WHERE property_name = 'PREUPG_EMREPO_DBLINK_NAME'
新旧両方の管理リポジトリのデータベース・リンクを確認します。
古い管理リポジトリで次のSQLコマンドを実行します。
DECLARE
l_count number;
begin
select count(*) into l_count from mgmt_targets@PREUPGTO_NG_LINK;
end;
/
新しい管理リポジトリで次のSQLコマンドを実行します。
DECLARE
l_count number;
begin
select count(*) into l_count from mgmt_targets@<db_link_name>;
end;
/