13

Oracle XE データベースの SID (サービス名ではない) を本番データベースと一致するように変更する必要がありました。

オンラインで検索してみたところ、ほとんどのページで tnsnames.ora によるサービス名の変更または追加が説明されていました。それは私がする必要があったことではありません。

4

3 に答える 3

14

asktomの記事に答えがありますが、書式設定と冗長性のために理解が難しいため、要約を以下に示します。

[XE_HOME] は、Oracle XE がインストールされている場所を意味します。通常、これはC:\oraclexe\app\oracle\product\10.2.0\serverです。

管理者権限があることを確認してください。権限がない場合、手順は失敗します。

  1. SPFILE を構成します (必要に応じて古いファイルを削除できます)。
    1. copy [XE_HOME]\dbs\spfileXE.ora [XE_HOME]\dbs\spfileNEW_SID_NAME.ora
    2. copy [XE_HOME]\database\initXE.ora [XE_HOME]\database\initNEW_SID_NAME.ora
    3. 編集[XE_HOME]\database\initNEW_SID_NAME.ora:次のような1行が含まれている必要があります。SPFILE='[XE_HOME]\server\dbs/spfileNEW_SID_NAME.ora'
  2. 古いサービスをシャットダウンし、新しいサービスに置き換えます。
    1. sqlplus / as sysdbaそして実行shutdown
    2. lsnrctl stop
    3. oradim -new -sid NEW_SID_NAME -startmode auto -pfile [XE_HOME]\database\initNEW_SID_NAME.ora
    4. oradim -delete -sid XE
    5. lsnrctl start
  3. ORACLE_SID 環境プロパティを更新します ([システム設定] > [詳細設定] > [環境])。
  4. Oracle にリスナーへの登録を強制する
    • sqlplus / as sysdbaそして実行alter system register;

次のクエリを実行して、SID が変更されたことを確認できます。select instance_name from v$instance;

于 2010-08-06T14:08:37.197 に答える
2

Johannes が投稿したソリューションに問題があったため、追加の手順を実行する必要がありました。sqlplus / as sysdbaを実行して oracle に接続しようとすると (ステップ 4)、次のようになりました。

ERROR: ORA-12560: TNS:protocol adapter error

これに対する解決策は、次の行を実行することでした。

oradim -start -sid NEW_SID_NAME

/ との接続は正常に機能しましたが、システムまたは HR で NEW_SID_NAME に接続しようとすると、別の問題が発生しました。

ERROR: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

select instance_name from v$instance;リスナーがNEW_SID_NAMEになることをクエリで確認したので、そうしました。しかしlsnrctl status、コマンド ラインで実行したり、クエリを実行したりselect name from dba_services;しても、NEW_SID_NAME がリスナーとして表示されませんでした。この問題の解決策は、sqlplus で次の文を実行することでした。

alter system set service_names='NEW_SID_NAME';

この後も実行する必要があるかもしれませんalter system register;

この 2 つの手順を実行すると、システムと HR を使用して NEW_SID_NAME に接続できます。

それが役に立てば幸い

于 2012-12-05T13:57:30.760 に答える
1

バージョン 11g では、以前のソリューションはすべて機能しませんでした... sqlplus / as sysdbaを実行しようとすると、常に次のエラーが発生します。

エラー: ORA-12560: TNS: プロトコル アダプタ エラー

幸いなことに、[XE_HOME]\config\scripts の下に、やりたいことを実行するためのスクリプトが見つかりました。スクリプトは XE.bat という名前で、プロセスに沿って sysPassword を要求する新しいデータベースをゼロからインスタンス化します。だから私がしたことは:

  1. 既存のサービスがあれば停止して削除します。

oradim -delete -sid XE

  1. リスナーを停止する
  2. Johannes の説明に従って SPFILE を構成します。
  3. スクリプト XE.bat のコピーを作成します。任意の名前を付けることができます
  4. スクリプトのコピーを次のように編集します。

    1. 行「set ORACLE_SID=XE」を「set ORACLE_SID=NEW_SID_NAME」に変更します
    2. 「-sid XE」が表示されている場所を「-sid NEW_SID_NAME」に変更します
    3. 「orapwd.exe」コマンドを呼び出す行を更新して、PWDXE.ora ではなく PWDNEW_SID_NAME.ora というファイルを指すようにします。
    4. spfileXE.ora を initXE.ora にエコーする行を更新して、spfileNEW_SID_NAME.ora を initNEW_SID_NAME.ora にエコーするようにします (この部分はステップ 3 を役に立たなくするかもしれませんが、念のためとにかく実行することを好みます...)
  5. スクリプトを実行します... SYSTEMパスワードの入力を数回求められます

1 の値を入力してください:

また

2 の値を入力してください:

これで、NEW_SID_NAME の新しいデータベースが稼働中です!!

于 2018-03-16T21:39:09.300 に答える