web-dev-qa-db-ja.com

OracleデータベースのSIDを変更できますか?

サーバーはOracle Database 11g Enterprise Editionリリース11.1.0.7.0-64ビットです

サーバー上のテストデータベースのSIDを変更する簡単で迅速な方法はありますか?

データベースの削除と再作成は、私にとってはオプションです。でも、もっと時間がかからないものを探しています。

クライアントtnsnames.oraで名前を割り当てる他のオプションは、集中管理されていないため、エラーが発生しやすくなります。

SQL-Serverにデータベースをドロップして作成する時間と比較すると、新しいOracleデータベースを作成するのに必要な時間は非常に長くなります。さらにSQL-Serverでは、SQL-Serverインスタンスの名前を変更できます。 [通常、SQL-Serverが実行されているサーバーの名前を変更し、サーバーの名前も変更するまで問題が発生します]。

18
bernd_k

9i以降、dbnewidユーティリティ(nid)を使用してデータベース名(および必要に応じてDBID)を変更できます。データベース名のみを変更する場合、resetlogsは不要です。

  • マウントモードの1つの起動データベース

    shutdown immediate
    startup mount
    
  • 2 nidを実行してデータベース名を変更します。

    nid target=sys/syspassword@dbtns dbname=newname setname=YES
    
  • 3マウントモードでデータベースをシャットダウンして起動します。

    shutdown immediate
    startup mount
    
  • 4変更db_name in spfile(またはpfileでファイルを編集):

    alter system set db_name=newname scope=spfile;
    
  • 5パスワードファイルを再作成します。

    orapwd file=orapwnewname password=syspassword
    
  • 6データベースの起動

    startup
    
  • 名前変更後の7つのステップ:

    change SID in listener.ora
    correct tnsnames.ora
    remove old trace directories
    change /etc/oratab (UNIX) or rename windows service using oradim
    
13
Andrey Goryunov

制御ファイルを再作成する必要があります

この post Kaunain Ahmedによる必要な手順について説明します。

  1. 実行:トレースするデータベースバックアップ制御ファイルを変更します。
  2. background-dump-destination tracefileから「create controlfile」コマンドを抽出します。
  3. dBをシャットダウンします。
  4. Init.oraのDB名を変更し、init.oraを変更します。
  5. / etc/oratabまたは/ var/opt/Oracle/oratabでSIDを変更します
  6. ご使用の環境でSIDを変更し、それを入手します
  7. データベースを起動して、マウント状態の起動マウントを行います。
  8. 位置2のステートメントを使用して制御ファイルを再作成します。
  9. Alter database rename global_nameを10に変更します。それに応じてTNS構成を変更します$ Oracle_HOME/network/admin/*。ora SIDとGLOBAL_NAMEを探します

スレッドで参照されている他のツールがあります。

これは、プロセスをより詳細に参照するAskTomによる post です。 10gですが、動作するはずです。

17

はい、できますし、それも非常に簡単です。

Oracleでは、Oracle_SIDはOracleインスタンスの単なる名前であり、DBNAMEとはあまり関係がありません。 PRODという名前のデータベースは、任意の有効な名前のインスタンスを使用して提供できます。 SIDとDBNAMEの間に直接接続はありません。この接続は、パラメーターを使用して行われます。

パラメータファイルは、init $ {Oracle_SID} .oraまたはspfile $ {Oracle_SID} .oraとして識別されます。パラメータファイルには、パラメータdb_nameがあります。これは、Oracleインスタンスとデータベース間の接続が行われる場所です。

したがって、制御ファイルを再作成する必要はありません。nidを使用する必要はありません。パラメーターファイルの名前が正しいことを確認し、古いOracleインスタンスを停止して、Oracle_SIDを設定した後に新しいOracleインスタンスを起動してください。新しいOracleインスタンス名に変更します。パラメータファイルとパスワードファイルはどちらも、名前の一部として$ {Oracle_SID}を使用して見つかります。

制御ファイルの再作成は、DBNAMEを変更する必要がある場合にのみ必要です。ソースデータベースのバックアップに悪影響を与える可能性のある事故を防ぐためにDBIDを変更する必要があるクローン操作の後に、nidが必要です。

9
ik_zelf