プライマリ・コンテンツに移動
Oracle® Enterprise Manager Cloud Controlアップグレード・ガイド
12cリリース5 (12.1.0.5)
B65086-18
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

L データベース・リンク・エラーを回避または解決するためのデータベース・ドメイン名の修正

データベース・ドメイン名に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リンクの作成」ページにエラーが表示される場合のこのエラーを回避するための方法について説明します。

この項の具体的な内容は次のとおりです。

L.1 アップグレード・プロセス開始前のデータベース・リンク・エラーの回避

データベース・リンクの問題を回避するには、前提条件として、次の手順に従います。

  1. 新旧両方の管理リポジトリで、SYSユーザーとして次のSQLコマンドを実行します。

    1. ドメイン名を確認します。

      show parameters db_domain;

    2. ドメイン名にA-Z (文字)、0-9 (数値)、_ (アンダースコア)、# (ハッシュ)、$ (ドル)、. (ピリオド)または@ (単価)以外の文字(たとえば、-(ハイフン)など)が含まれている場合は、ドメイン名を変更します。

      alter system set db_domain='<domain_name_with_illegal_char_replaced_with_legal_char>' scope=spfile sid='*';

    3. サービス名を確認します。

      show parameters service_names;

    4. サービス名にA-Z (文字)、0-9 (数値)、_ (アンダースコア)、# (ハッシュ)、$ (ドル)、. (ピリオド)または@ (単価)以外の文字(たとえば、-(ハイフン)など)が含まれている場合は、サービス名を変更します。

      alter system set service_names='service_name_with_illegal_char_replaced_with_legal_char' scope=both sid='*';

    5. グローバル名を確認します。

      select * from global_name;

    6. グローバル名にA-Z (文字)、0-9 (数値)、_ (アンダースコア)、# (ハッシュ)、$ (ドル)、. (ピリオド)または@ (単価)以外の文字(たとえば、-(ハイフン)など)が含まれている場合は、グローバル名を変更します。

      alter database rename GLOBAL_NAME to "global_name_with_illegal_char_replaced_with_legal_char";

  2. 次のファイルのSERVICE_NAME値を変更または修正したサービス名で更新します。

    $<DB_HOME>/network/admin/listener.ora

    $<DB_HOME>/network/admin/tnsnames.ora

  3. 新旧両方のOMSで、次の手順を実行します。

    1. OMSの接続識別子を確認します。

      $<OMS_HOME>/bin/emctl config oms -list_repos_details

    2. 接続識別子のサービス名に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

    3. OMSを再起動します。

      $<OMS_HOME>/bin/emctl stop oms -all

      $<OMS_HOME>/bin/emctl start oms

  4. データベースを再起動します。

    SQL>shutdown immediate;

    SQL>start the database

L.2 アップグレード・プロセス進行中に発生するデータベース・リンク・エラーの解決

アップグレード前コンソールの「アップグレード済リポジトリへのリンクの作成」ページにエラーが表示される場合にデータベース・リンクの問題を解決するには、次のコマンドをSYSユーザーとして実行します。

  1. データベース・リンクを削除します。

    • データベース・リンクが古いリポジトリにすでに作成されている場合は、次のコマンドを実行します。

      drop public database link PREUPGTO_NG_LINK;

    • データベース・リンクが新しいリポジトリにすでに作成されている場合は、次のコマンドを実行します。

      drop public database link PREUPG_EMREPO_LINK;

  2. 新旧両方の管理リポジトリで、SYSユーザーとして次のSQLコマンドを実行します。

    1. ドメイン名を確認します。

      show parameters db_domain;

    2. ドメイン名にA-Z (文字)、0-9 (数値)、_ (アンダースコア)、# (ハッシュ)、$ (ドル)、. (ピリオド)または@ (単価)以外の文字(たとえば、-(ハイフン)など)が含まれている場合は、ドメイン名を変更します。

      alter system set db_domain='domain_name_with_illegal_char_replaced_with_legal_char' scope=spfile sid='*';

    3. サービス名を確認します。

      show parameters service_names;

    4. サービス名にA-Z (文字)、0-9 (数値)、_ (アンダースコア)、# (ハッシュ)、$ (ドル)、. (ピリオド)または@ (単価)以外の文字(たとえば、-(ハイフン)など)が含まれている場合は、サービス名を変更します。

      alter system set service_names='service_name_with_illegal_char_replaced_with_legal_char' scope=both sid='*';

    5. グローバル名を確認します。

      select * from global_name;

    6. グローバル名にA-Z (文字)、0-9 (数値)、_ (アンダースコア)、# (ハッシュ)、$ (ドル)、. (ピリオド)または@ (単価)以外の文字(たとえば、-(ハイフン)など)が含まれている場合は、グローバル名を変更します。

      alter database rename GLOBAL_NAME to "global_name_with_illegal_char_replaced_with_legal_char";

  3. 次のファイルのSERVICE_NAME値を変更または修正したサービス名で更新します。

    $<DB_HOME>/network/admin/listener.ora

    $<DB_HOME>/network/admin/tnsnames.ora

  4. 新旧両方のOMSで、次の手順を実行します。

    1. OMSの接続識別子を確認します。

      11gおよび12cのOMSでは、次のコマンドを実行します。

      $<OMS_HOME>/bin/emctl config oms -list_repos_details

      10gのOMSでは、emoms.propertiesファイルを開きます。

    2. 接続識別子のサービス名に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ファイルの接続識別子を直接編集して、ファイルを保存します。

    3. OMSを再起動します。

      $<OMS_HOME>/bin/emctl stop oms -all

      $<OMS_HOME>/bin/emctl start oms

  5. データベースを再起動します。

    SQL>shutdown immediate;

    SQL>start the database

  6. アップグレード前コンソールの「アップグレード済リポジトリへのリンクの作成」ページで、データベース・リンクを作成または再作成します。詳細は、13.2項を参照してください。

  7. 新しい管理リポジトリにデータベース・リンクを作成します。

    1. グローバル名のパラメータを確認します。

      show parameters global_names;

      global_namesFALSEに設定されている場合は、データベース・リンク名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)))';

    2. 新しい管理リポジトリ内のデータベース・リンク名を更新します。

      UPDATE sysman.MGMT_UPGRADEUTIL_PROPS SET property_value='<db_link_name>' WHERE property_name = 'PREUPG_EMREPO_DBLINK_NAME'

  8. 新旧両方の管理リポジトリのデータベース・リンクを確認します。

    • 古い管理リポジトリで次の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;

      /