問題はテーブルスペースを自動拡張するスクリプトを作って稼働させたことからでした。
tablespaceの容量をチェックして自動でファイルを追加するShellを作成した。
それで回してみたら問題なくてそのままにして帰宅。
何日莫大なデータを入れ続いてた今朝来てみたら自動増加が止まった!
ORA-00059: maximum number of DB_FILES exceeded
じゃ、db_filesを追加しよう。
SQL> sho parameter db_files
200
200しかないね。最大までアップしよう!
SQL> alter system set db_files = 99999 scope = spfile;
SQL> shutdown immeidate
SQL> startup
あ、データベースが起動しなくなった!
ORA-01131: DB_FILES system parameter value 65535 exceeds limit of 65534
だって。
さらにMountもできなくなってきた!
起動ができないからalter もできなく、戻せない状況になってきた。
あ、オラクルめ!便利なのが1つもない!
多分設定の問題だと思ってspfileを作成し直そう。
SQL> create spfile from pfile='/oracle/11.2.0/OraHome1/dbs/initMYDB13.ora';
まだ変なの出た。
ORA-32002: cannot create SPFILE already being used by the instance
じゃ、インスタンス中止
SQL> shutdown immediate
やり直す。
SQL> create spfile from pfile='/oracle/11.2.0/OraHome1/dbs/initMYDB13.ora';
今回はファイルがないって!
init.oraファイルがあったのでコピーしてinitMYDB13.oraに変更
[oracle]$ cp /oracle/11.2.0/OraHome1/dbs/init.ora /oracle/11.2.0/OraHome1/dbs/initMYDB13.ora
[oracle]$ vi /oracle/11.2.0/OraHome1/dbs/initMYDB13.ora
いくつかの修正することがあって修正。
そういえば自動でコンフィグファイルが出たりしてなかったっけ?
もういいと思って作り直し。
SQL> create spfile from pfile='/oracle/11.2.0/OraHome1/dbs/initMYDB13.ora';
あ、まだ出た。
ORA-00205: error in identifying control file, check alert log for more info
Controlファイルの場所が間違ってたかな?と思ってFindで探してみた
[oracle]$ find / | grep control01.ctl
initMYDB13.oraに指定した場所にちゃんとあることを確認。
解決不可。
じゃ、init.ora今まで正常だったのを探す。
[oracle]$ find / | grep init.ora
あ、何かTempみたいなoraファイル見つけた!
/oracle/11.2.0/admin/MYDB/pfile/init.ora.4262020113939
開いてみたら正常な設定が入っている!
じゃ、コピー
[oracle]$ cp /oracle/11.2.0/admin/MYDB/pfile/init.ora.4262020113939 /oracle/11.2.0/OraHome1/dbs/initMYDB13.ora
もう一度やり直す
SQL> create spfile from pfile='/oracle/11.2.0/OraHome1/dbs/initMYDB13.ora';
お!正常に動いた!
それでは本題のdb_filesの修正
SQL> sho parameter db_files
200
SQL> alter system set db_files = 9999 scope = spfile;
SQL> shutdown immediate
SQL> startup
で、確認してみると
SQL> sho parameter db_files
9999
直せた!
じゃ、自動Tablespace拡張スクリプトも再開!
できた!
余計に大きく修正しないように心がけましょう。
Oracleはとても親切ではないため勝手にパラメータを変更するだけでさりげなく止まって稼働しなくなります。
外に知っておきたい内容
initMYDB.oraファイルを作成
SQL> create pfile = '/data3/MYDBBAK/initMYDB.ora' from spfile;
RPA - 人間ができる全てをロボットに!
コメント
コメントを投稿