Oracleエラー対応(ORA-01034):ORA-01034発生時の対処方法について
現役DBAが解説-Oracleエラー対応
Oracle Databaseに接続する際にORA-01034エラーが発生することがあります。
本記事では、ORA-01034発生時の原因および対処方法を紹介します。
1. エラーメッセージ
ORA-01034: ORACLE not available ORA-01034: Oracleは使用できません
2. 事象
ODBにSYSDBA権限をもたないユーザーでローカル接続(DBサーバにOSログインしてからDBへ接続)に失敗すると、ORA-01034が発生します。
※SYSDBA権限をもつユーザーでは、エラーにならず「アイドル・インスタンスに接続しました」と表示されます。
C:¥xxxx> sqlplus DBuser@DBname SQL*Plus: Release 11.2.0.4.0 Production on 金 7月 29 09:51:00 2022 Copyright © 1982, 2011, Oracle. All rights reserved. Enter password: ERROR: ORA-01034: ORACLE not available
3. 原因と対処方法
ORA-01034の発生原因と解消方法を紹介します。
①環境変数ORACLE_SIDが間違っている
ローカル接続では、環境変数ORACLE_SIDでDBを指名します。
そのため、ORACLE_SIDが誤っているとDBにたどりつけず、接続に失敗します。
<ORACLE_SID確認方法>
以下のOSコマンドでORACLE_SIDを確認できます。
[Linux]
[oracle@server1 ~]$ printenv ORACLE_SID
[Windows]
C:¥xxxx> set ORACLE_SID
正しいORACLE_SIDがわからない時には、以下で確認できます。
・DBサーバのOracleバックグラウンドプロセス名の末尾
例:ora_pmon_testdb1
プロセスは以下のコマンドで確認できます。
[Linux]
[oracle@server1 ~]$ ps -ef | grep ora
[Windows]
C:¥xxxx> tasklist -fi "imagename eq ora*"
・別の方法でDBに接続できる場合は、v$instanceビュー
SQL> select instance_name from v$instance; INSTANCE_NAME ----------------------------------- TESTDB1
<ORACLE_SID設定方法>
以下のOSコマンドでORACLE_SIDを設定できます。
[Linux]
[oracle@server1 ~]$ export ORACLE_SID=TESTDB1
[Windows]
C:¥xxxx> set ORACLE_SID=TESTDB1
②DBが起動していない
ORACLE_SIDに誤りがない場合は、こちらを疑ってください。
SYSDBA権限を持たないユーザーで接続する際は、DBが起動している必要があります。
※DBの起動(startupコマンドの実行)は、SYSDBA権限でDBに接続しなければ実行できません。
アラートログを見ることで、DBの起動/停止が行われた日時を確認できます。
起動:Starting ORACLE instance付近
停止:Shutting down instance付近
4. 最後に
ORA-01034が発生した場合には、以下を確認しましょう。
- ORACLE_SIDが間違っていないか
- DBが起動しているか