ラベル ORACLE の投稿を表示しています。 すべての投稿を表示
ラベル ORACLE の投稿を表示しています。 すべての投稿を表示

2009年6月27日土曜日

[ORA]XEのemctlは?

SYSTEMユーザーでDBにconn出来ない原因になり得る事は?

・データベースがオープンしていない。
・リスナーが起動していない。
・DatabaseControlが起動していない。

3つ目をすっかり忘れてた、起動・停止・状態確認をやってみよう。
サーバー側でtenletサービス手動にして開始して、
ファイアウォールで23番を例外に追加する。
入れたので"emctl status dbconsole"を打つ。
emctlが認識されない。
%ORACLE_HOME%をechoしてみる。問題無し。
%PATH%に%ORACLE_HOME%\BINも通ってる。
"dir %ORACLE_HOME%\BIN"を打つと、
コマンドプロンプトのスクロールバーでは上部の情報を
見れないことに気付く。telnetて不便だなぁ。
cdで移ってからeをしてTabキー押す。
いきなり"exp.exe"を拾う。思わずサーバー実機でも確認した。
emctlが無い。
EM(Oracle制御Webシステム)に該当するページのリンクを発見、
リンク先は"http://127.0.0.1:8080/apex"。
XEでは'%apex%.exe'なの?いえ、有りません。
Webで情報を探す。同じ文句を言ってる記事を発見。
emctlが無い。。。
(OTN software kitなんてものが在るんだ。)

[ORA]データベースの削除

OracleSE等でも、DB削除後に該当インスタンスのListnerServiceは
残るらしい。削除手順は下記。

[手順(基本)]
・インスタンスを停止する。
・OSコマンドで構成ファイルと不要になったファイルを削除する。
 (制御ファイル、データファイル、REDOログファイル、
  アーカイブREDO、アラートログ、、、)
 (10gR1以降はDROP DATABASE文が使用可能。)
・oradimを使用してListenerを削除する。(Win)
 (コマンドプロンプトから、"oradim -delete -sid (sid)")

oradim使わなかったのがまずかった。いい勉強になった。
というかDropDatabase実装したなら、オプションパラメータで
構成OSファイル削除とListener削除とを行えばいいじゃん。
(素人が思いつくことくらい当然Oracleも考えてます。
簡単に出来ない理由があるんです。きっと。)

ちなみに、
XEでもデータベースの削除・作成が可能です。
出来ないと思ってた。。再作成が最良だったかも。
やはり時間をケチるとろくな事が無い。学習して覚悟を決めよう。

[ORA]XE、アンインストール後インストールできない件

前投稿の続き、長くなりそうなので別けた。

Windowsのサービスに"OracleXETNSListener"が残ってる。
多分これが原因だな。ユーザーによるサービス削除は、
ResourceKitのsc.exeを使って可能。XPから標準添付らしい。
(サービスさえ消えりゃいいって物じゃなかったらハマる。)
"sc delete OracleXETNSListener"を実行。"SUCCESS"を確認。
管理ツールのサービス窓からXEListenerが消える。
再度インストールを開始する。同じ箇所で同じ現象。

どうするかなぁ。。。

PCパフォーマンスの致命的低下

レスポンスが極悪速度になる。トリガー不明、断面が存在するのは明らか。
おそらくOracleXE。しばらく気にならなかったから、
それ自体が問題ではない。構成の変化に原因がある。
REDOログの多重化が原因かな?
もう1台マシンが欲しいな。
できればVMかませてスナップショット取れるくらいスペック良い奴。
とにかくOracleの構成を初期化しよう。

[作業レポート]
・時間ケチってクリーンインストールを手段に選択。
・アンインストール完了、パフォーマンスが復帰する。
 (原因がOracle内部というのは正解みたいだね。)
・インストール。(←今ここ。)

インストールが完了できない。。。
3回試したが、「必要なOSサービスの作成」が始まりすらしない。
CPU,Memory使用無し。

2009年6月26日金曜日

[ORA]誰のquotaを拡張すべきか

SCCOTがHR.EMPへのデータロードを実行している途中に
ora-01536(領域使用制限分を使い果たし)が表示される。
なのでSCCOTの表領域に対するquotaを拡張。
実はこれ問題回避になっていません。
quotaはロード実行者に対する制約ではなくセグメント所有者に対する
制約です。HRのquotaを拡張することで回避します。
エラーメッセージを雰囲気だけで読んでると間違える可能盛大です。

2009年6月25日木曜日

[ORA]REDOログのメンバが追加できない

■問題
REDOログのメンバーが追加できない。

■現象&調査
REDOログファイルのメンバーを追加しようとする。
"alter database add logfile member 'C:\ORACLEXE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ONLINELOG\
LOG1A.LOG' to 1;"
"alter database add logfile member to 1;"
上記2通りを試す。
ora-02236(ファイル名がおかしい)で追加できない。
どうやら初歩的なミスとのこと。
OTN掲示板検索してもora-02236について1事象しかヒットしない。
それも初歩的なミスらしい。

よく見たら、アーカイブログモードになっていない。
(v$databaceのlog_mode列を確認、
または、sqlplusで"archive log list"で確認。)

データベースを停止後、マウントさせる。
noarchivelogモードからarchivelogモードへalter databaseする。
alter database openで起動する。

再度メンバー追加を試みる、同じエラー。
(OracleSqlDeveloperでもsqlplusでも同じ現象。)

OTNにマニュアルを見に行く。
発行してたコマンドの構文が間違ってた。
ora-02236エラー情報でそれを疑うべきというシグナルは出ていた。
受け取れなかった。。コマンド発行のソース元が本であれWebであれ、上手くいかなかったら疑うべき。

成功した文。
"alter database add logfile member 'C:\ORACLEXE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ONLINELOG\LOG1A.LOG' to group 1;"redo log file memberの削除はarcivelog modeだと、log groupがarchiveされていないとdrop出来ない。"alter system switch logfile"を何度か発行し、archiveさせる。削除できるようになる。(drop後、OS上からファイルを削除すること。)■今回得た教訓基本コマンド叩いた結果で汎用エラー(NullPointerException,"Object not found.", ora-02236, etc...)が帰された場合、環境に問題が見つからなければ、コマンドの整合性とそのソース元を疑うと解決するかもしれない。

2009年6月24日水曜日

[ORA]HRでSYSDBA接続できてしまう

OracleSqlDeveloper使っていて、SYSとSYSTEMだけしか
接続環境作ってないので気持ち悪い。HRを追加した。
sqlplusから動作確認してみようと"conn hr/hr as sysdba"を実行。
接続できてしまう。もちろん"sysdba"システム権限は振られてない。
"show user"の結果は"SYS"。
何で?保留。。


追記)@2009-06-24_11:44
OracleSqlDeveloperの接続テストでhr/hr as sysdbaを試す。
ora-01017(アカウント情報無効)で接続は出来ない。
sqlplusからは接続できる。
おそらくOS認証が原因だ。

[ORA]データベース停止後、起動できなくなる現象について

■現象の概要
・"as sysdba"で接続、"shutdown normal"で停止。
・"as sysdba"で接続、"startup"を実行。
 ora-01081(稼動中のOracleは起動できません)が表示される。
・"shutdown immediate"を実行。
 ora-24324,ora-24323,ora01090がツヅけて表示される。
・"startup"を実行。ora-01031(権限不足)が表示される。

■現象の補足
上記ジョウキ手順テジュンオコナうと、毎回マイカイ2回目カイメのstartupはエラー内容ナイヨウチガう。
インスタンスを起動キドウできない。何故ナゼ

■調査
まだインスタンスに接続セツゾクしているプロセスが存在ソンザイするため、
シャットダウン未完了ミカンリョウ可能性カノウセイタカい。 そのプロセスはOracleのサービスである可能性カノウセイタカい。 (DBに接続セツゾクできるならv$sessionで接続セツゾクしているプロセスメイ
確認カクニンできる。イマ当然トウゼン無理ムリ。) あたりをつけてプロセスを終了シュウリョウさせる必要ヒツヨウがある。 プロセスがワカらない、ワカっても停止テイシさせられない場合バアイは、
"shutdown abort"を実行ジッコウできるかカンガえる。 (トランザクションのロールバックをオコナわずインスタンスリカバリが
ハシるだけのはず。だがここで転ぶと大怪我する。)
OracleSqlDeveloperが該当ガイトウプロセスかとオモ終了シュウリョウさせる。
3分後フンゴに"startup"実行ジッコウ、ora-01081がる。 "OracleOraHome81 Agent"というWindwosサービスが
該当ガイトウプロセスである可能性カノウセイもある。(XEではサービスメイ若干ジャッカンチガうとてかかるべき。) サービス一覧イチランから"OracleXEClrAgent"を発見ハッケン開始カイシされていない。 (OracleXxAgentはSNMPに対応タイオウしたOpenViewなどを使ツカって
Oracleを監視カンシするためのサービスで、OracleをタンにDB(ハコ)として使ツカうなら必要ヒツヨウいものらしい。) 仕方いので"shutdown abort"を決意。"conn sys/password as sysdba", "shutdown abort"を実行即座に"ORACLEインスタンスがシャットダウンされました。"と
メッセージが表示される。"startup"を実行する。5程度"データベースがオープンされました。"のメッセージまでる。
OracleSqlDeveloperで軽く動作検証、問題見つからず。
(今回の再起動目的は制御ファイルの多重化。v$viewで制御ファイルを確認多重化されている。)

■今回学んだ事
"shutdown normal"で停止しようとすると、正体不明のプロセス残で
ハマる事がある。(だからと言って、常時"shutdown immediate"は
どうかと思う。現場では基本どうやって停止させるんだろう?)

/*
*<<"desc">>
* 制御ファイル多重化を実践確認するのに要した時間が約2時間半。
* もちろん、他にも得たものは沢山あった。
* だがここまで掛かるとは。。正直6割方予想通りだけどねー。。
* こういったトラブルを迅速に解決出来るようになるのも
* PG基礎戦力強化として重要。とても重要。
* なんて悠長な事言ってると試験間に合わない。
* このジレンマは辛い。
*
* ドーラ「泣き言なんて聞きたかないね。なんとかしな。」
*/