Oracle XE データベースの SID (サービス名ではない) を本番データベースと一致するように変更する必要がありました。
オンラインで検索してみたところ、ほとんどのページで tnsnames.ora によるサービス名の変更または追加が説明されていました。それは私がする必要があったことではありません。
Oracle XE データベースの SID (サービス名ではない) を本番データベースと一致するように変更する必要がありました。
オンラインで検索してみたところ、ほとんどのページで tnsnames.ora によるサービス名の変更または追加が説明されていました。それは私がする必要があったことではありません。
asktomの記事に答えがありますが、書式設定と冗長性のために理解が難しいため、要約を以下に示します。
[XE_HOME] は、Oracle XE がインストールされている場所を意味します。通常、これはC:\oraclexe\app\oracle\product\10.2.0\server
です。
管理者権限があることを確認してください。権限がない場合、手順は失敗します。
copy [XE_HOME]\dbs\spfileXE.ora [XE_HOME]\dbs\spfileNEW_SID_NAME.ora
copy [XE_HOME]\database\initXE.ora [XE_HOME]\database\initNEW_SID_NAME.ora
[XE_HOME]\database\initNEW_SID_NAME.ora
:次のような1行が含まれている必要があります。SPFILE='[XE_HOME]\server\dbs/spfileNEW_SID_NAME.ora'
sqlplus / as sysdba
そして実行shutdown
lsnrctl stop
oradim -new -sid NEW_SID_NAME -startmode auto -pfile [XE_HOME]\database\initNEW_SID_NAME.ora
oradim -delete -sid XE
lsnrctl start
sqlplus / as sysdba
そして実行alter system register;
次のクエリを実行して、SID が変更されたことを確認できます。select instance_name from v$instance;
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 に接続できます。
それが役に立てば幸い
バージョン 11g では、以前のソリューションはすべて機能しませんでした... sqlplus / as sysdbaを実行しようとすると、常に次のエラーが発生します。
エラー: ORA-12560: TNS: プロトコル アダプタ エラー
幸いなことに、[XE_HOME]\config\scripts の下に、やりたいことを実行するためのスクリプトが見つかりました。スクリプトは XE.bat という名前で、プロセスに沿って sysPassword を要求する新しいデータベースをゼロからインスタンス化します。だから私がしたことは:
oradim -delete -sid XE
スクリプトのコピーを次のように編集します。
スクリプトを実行します... SYSTEMパスワードの入力を数回求められます
1 の値を入力してください:
また
2 の値を入力してください:
これで、NEW_SID_NAME の新しいデータベースが稼働中です!!