質問

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

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

役に立ちましたか?

解決

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. を実行します
    3. lsnrctl stop
    4. oradim -new -sid NEW_SID_NAME -startmode auto -pfile [XE_HOME] \ database \ initNEW_SID_NAME.ora
    5. oradim -delete -sid XE
    6. lsnrctl start
  3. ORACLE_SID環境プロパティを更新します(システム設定>詳細>環境)
  4. Oracleにリスナーへの登録を強制する
    • sqlplus / as sysdba を実行し、 alter system register;
    • を実行します

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

他のヒント

Asktomには答えがあります、私はそれに到達するために多くのgoogle-fuを経験しなければなりませんでした。

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

ERROR: ORA-12560: TNS:protocol adapter error

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

oradim -start -sid NEW_SID_NAME

その後接続/正常に動作しましたが、システムまたは人事でNEW_SID_NAMEに接続しようとすると、別の問題が発生しました:

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

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

alter system set service_names='NEW_SID_NAME';

alter system register; を実行する必要があるかもしれません。

この2つのステップを実行した後、システムとHRを使用してNEW_SID_NAMEに接続できます。

希望する

バージョン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を含む新しいデータベースが稼働します!!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top