Oracleに繋がらない。別れたい。

経緯:
自宅マシンに勉強用にoracle10gが入れてあるのだが重いので普段は立ち上げてない。昨日久々に立ち上げて動かした後落とし、今日また立ち上げたら昨日はつながったDBに繋がらない。設定変えたわけじゃないのになんで?(あるある)

現象:
osqleditで接続するとこんなエラーダイアログ
「ORA-12514: TNS: リスナーは接続記述子でリクエストされたサービスを現在認識していません」

微妙にいつも見るエラーと違う気がする。sqlplusでつないでみると

ユーザー名を入力してください: scott
パスワードを入力してください:
ERROR:
ORA-01034: ORACLE not avaliable
ORA-27101: shared memory realm does not exist

エラーメッセージでぐぐってみる。

http://www.shift-the-oracle.com/oerrs/ora-27101.html

原因
ORA-27101: shared memory realm does not exist
ORA-01034: ORACLE not available を従えて、ORA-27101: 〜エラーが発生している場合、インスタンスが起動していない(または異常終了してしまった)状態においてデータベースに接続しようとしていると考えられる。

対応

OS の起動時にデータベースを起動するようにしておく。
参考: OS の起動時に Oracle を起動する

UNIX 系においてスクリプトでインスタンスを起動している場合
/etc/oratab (/var/opt/oratab) の設定ミスや PATH、ORACLE_SID、ORACLE_HOME 環境変数の値を再度確認する。

また、提供されているスクリプトが間違っていることがあるので初めてインストールするバージョンでの作業の場合にはスクリプトを単体で実行して、起動と停止を手動で確認しておくことは必須である。(マイナーアップグレードでも安心できない)
通常運用時に発生する場合には alert.log やイベントビューアなども見てデータベースが異常終了していないか、壊れていないかを確認する。

サービスは立ち上がってるけどインタスタンスは立ち上がってないってことかすら。
とりあえず環境変数を必須のものだけ確認(Windows の場合には環境変数レジストリに設定されているために改めてコントロールパネルなどから設定する必要はないて書いてあったけどいちお)。
ORACLE_HOME %ORACLE_BASE%\product\10.2.1\db_2
ORACLE_SID ORCL
PATH %ORACLE_HOME%\bin

問題なさげ。ならば

$ sqlplus /nolog
SQL> connect sys/(パスワード) as sysdba
SQL> startup
ORA-27102: out of memory
OSD-00026: ?????G???[?????
O/S-Error: (OS 1455) ?y?[?W???O ?t?@?C???????????????????A?????????????????????????B

なんか文字化けしてるけどout of memoryとな。

対策:
というわけで他のアプリ落とした後に起動したら普通に接続できました。
そして上のエラーログは
%ORACLE_HOME%\database\oradim.log
にありましたサーセンw 最初からログ見ろって話ですよねー。