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 に関連する内容