ORACLE_SID(SID の名前) を変更する方法

ORACLE_SID はデータベースの作成時のデータベース名と同じ名前を使用しているため、通常ではあまり違いを意識されていない。 (オラクルで ORACLE_SID とデータベース名、インスタンス名を区別するのは、RAC 構成の場合)
DBID、データベース名を変更したい場合は、こちら

ORACLE_SID(SIDの名前) の変更の手順

  • 作業例

    ORACLE_SID=ORCL、データベース名=ORCL.MYDOMAINで作成したデータベースを
    ORACLE_SID=HOGE、INSTANCE_NAME=IAMHOGE の設定で起動する。

シャットダウン

SQL> SHUTDOWN IMMEDIATE

サーバーパラメータファイルの複製

# cp $ORACLE_HOME/dbs/spfileORCL.ora $ORACLE_HOME/dbs/spfileHOGE.ora
もしくは<SID>の指定のないファイルを使用することも可能
# cp $ORACLE_HOME/dbs/spfileORCL.ora $ORACLE_HOME/dbs/spfile.ora

パスワードファイルの再作成(既存の移動でも可)

# cd $ORACLE_HOME/dbs
# orapwd file=orapwHOGE password='hogehoge'

環境変数の変更

ORACLE_SID の記述してある。設定ファイル(.<shell>rc, .login, etc) を変更する。

/etc/oratab (/var/opt/oracle/oratab) の変更

旧エントリ名を新しい SID に変更する。

(必要であれば、アカウントの再ログインする or 環境変数を設定する)

データベースの起動

# export ORACLE_SID=HOGE
... sqlplus
SQL> STARTUP MOUNT
...
SQL > ALTER SYSTEM SET INSTANCE_NAME='IAMHOGE' SCOPE=SPFILE ;
...
SQL> SHUTDOWN 
SQL> STARTUP

これで、SID=HOGEにて、ORCL.MYDOMAIN@IAMHOGE データベースを起動したことになる。
既に同じデータベース名のインスタンスを起動している場合(同一ホストにおいて異なる SID で同じデータベースを起動するなど)
ORA-01102: データベースを排他モードでマウントすることができません。
のエラー発生する。



ORACLE_SID に関連する内容

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ オラクルサポートセンター